[INFO] cloning repository https://github.com/0xhappyboy/solana-trader
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/0xhappyboy/solana-trader" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xhappyboy%2Fsolana-trader", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xhappyboy%2Fsolana-trader'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 603167de0e42f9ddfce1697f35fd265c0ed3acc4
[INFO] testing 0xhappyboy/solana-trader/603167de0e42f9ddfce1697f35fd265c0ed3acc4 against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xhappyboy%2Fsolana-trader" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/0xhappyboy/solana-trader
[INFO] finished tweaking git repo https://github.com/0xhappyboy/solana-trader
[INFO] tweaked toml for git repo https://github.com/0xhappyboy/solana-trader written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/0xhappyboy/solana-trader on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/0xhappyboy/solana-trader 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded quote v1.0.41
[INFO] [stderr]   Downloaded spl-token-2022 v10.0.0
[INFO] [stderr]   Downloaded spl-type-length-value v0.9.0
[INFO] [stderr]   Downloaded spl-pod v0.7.1
[INFO] [stderr]   Downloaded solana-program-error v3.0.0
[INFO] [stderr]   Downloaded serde-big-array v0.5.1
[INFO] [stderr]   Downloaded solana-pubkey v3.0.0
[INFO] [stderr]   Downloaded solana-address v1.1.0
[INFO] [stderr]   Downloaded solana-sha256-hasher v3.1.0
[INFO] [stderr]   Downloaded solana-hash v4.0.1
[INFO] [stderr]   Downloaded solana-atomic-u64 v3.0.0
[INFO] [stderr]   Downloaded solana-define-syscall v4.0.1
[INFO] [stderr]   Downloaded five8_const v1.0.0
[INFO] [stderr]   Downloaded solana-seed-derivable v3.0.0
[INFO] [stderr]   Downloaded solana-derivation-path v3.0.0
[INFO] [stderr]   Downloaded solana-sdk-ids v3.0.0
[INFO] [stderr]   Downloaded solana-instruction v3.0.0
[INFO] [stderr]   Downloaded solana-program-option v3.0.0
[INFO] [stderr]   Downloaded spl-discriminator v0.5.1
[INFO] [stderr]   Downloaded solana-msg v3.0.0
[INFO] [stderr]   Downloaded spl-transfer-hook-interface v2.1.0
[INFO] [stderr]   Downloaded solana-signer v3.0.0
[INFO] [stderr]   Downloaded solana-transaction-error v3.0.0
[INFO] [stderr]   Downloaded solana-instruction-error v2.0.0
[INFO] [stderr]   Downloaded five8 v0.2.1
[INFO] [stderr]   Downloaded solana-sanitize v3.0.1
[INFO] [stderr]   Downloaded solana-seed-phrase v3.0.0
[INFO] [stderr]   Downloaded solana-signature v3.1.0
[INFO] [stderr]   Downloaded solana-address v2.0.0
[INFO] [stderr]   Downloaded solana-define-syscall v3.0.0
[INFO] [stderr]   Downloaded solana-slot-history v3.0.0
[INFO] [stderr]   Downloaded solana-epoch-schedule v3.0.0
[INFO] [stderr]   Downloaded five8 v1.0.0
[INFO] [stderr]   Downloaded solana-account-info v3.0.0
[INFO] [stderr]   Downloaded solana-program-memory v3.0.0
[INFO] [stderr]   Downloaded solana-sha256-hasher v2.3.0
[INFO] [stderr]   Downloaded toml_edit v0.23.7
[INFO] [stderr]   Downloaded solana-cpi v3.0.0
[INFO] [stderr]   Downloaded spl-token-confidential-transfer-ciphertext-arithmetic v0.4.1
[INFO] [stderr]   Downloaded spl-memo-interface v2.0.0
[INFO] [stderr]   Downloaded solana-slot-hashes v3.0.0
[INFO] [stderr]   Downloaded solana-hash v3.1.0
[INFO] [stderr]   Downloaded solana-sdk-macro v3.0.0
[INFO] [stderr]   Downloaded solana-program-entrypoint v3.1.0
[INFO] [stderr]   Downloaded solana-last-restart-slot v3.0.0
[INFO] [stderr]   Downloaded solana-clock v3.0.0
[INFO] [stderr]   Downloaded solana-sdk-ids v2.2.1
[INFO] [stderr]   Downloaded solana-atomic-u64 v2.2.1
[INFO] [stderr]   Downloaded solana-decode-error v2.3.0
[INFO] [stderr]   Downloaded spl-program-error v0.8.0
[INFO] [stderr]   Downloaded spl-program-error-derive v0.6.0
[INFO] [stderr]   Downloaded solana-sysvar-id v3.0.0
[INFO] [stderr]   Downloaded solana-program-pack v3.0.0
[INFO] [stderr]   Downloaded solana-hash v2.3.0
[INFO] [stderr]   Downloaded solana-stable-layout v3.0.0
[INFO] [stderr]   Downloaded spl-token-group-interface v0.7.1
[INFO] [stderr]   Downloaded solana-instructions-sysvar v3.0.0
[INFO] [stderr]   Downloaded solana-serialize-utils v3.1.0
[INFO] [stderr]   Downloaded solana-fee-calculator v3.0.0
[INFO] [stderr]   Downloaded solana-define-syscall v2.3.0
[INFO] [stderr]   Downloaded solana-system-interface v2.0.0
[INFO] [stderr]   Downloaded solana-borsh v3.0.0
[INFO] [stderr]   Downloaded solana-curve25519 v3.1.5
[INFO] [stderr]   Downloaded spl-elgamal-registry-interface v0.1.0
[INFO] [stderr]   Downloaded solana-sysvar v3.0.0
[INFO] [stderr]   Downloaded solana-rent v3.0.0
[INFO] [stderr]   Downloaded solana-epoch-rewards v3.0.0
[INFO] [stderr]   Downloaded solana-sysvar v2.3.0
[INFO] [stderr]   Downloaded solana-sysvar-id v2.2.1
[INFO] [stderr]   Downloaded solana-sanitize v2.2.1
[INFO] [stderr]   Downloaded solana-system-interface v1.0.0
[INFO] [stderr]   Downloaded solana-program-error v2.2.2
[INFO] [stderr]   Downloaded solana-msg v2.2.1
[INFO] [stderr]   Downloaded solana-cpi v2.2.1
[INFO] [stderr]   Downloaded solana-stable-layout v2.2.1
[INFO] [stderr]   Downloaded solana-account-info v2.3.0
[INFO] [stderr]   Downloaded solana-program-memory v2.3.1
[INFO] [stderr]   Downloaded solana-clock v2.2.2
[INFO] [stderr]   Downloaded solana-sdk-macro v2.2.1
[INFO] [stderr]   Downloaded solana-slot-history v2.2.1
[INFO] [stderr]   Downloaded solana-slot-hashes v2.2.1
[INFO] [stderr]   Downloaded solana-rent v2.2.1
[INFO] [stderr]   Downloaded solana-program-entrypoint v2.3.0
[INFO] [stderr]   Downloaded solana-last-restart-slot v2.2.1
[INFO] [stderr]   Downloaded solana-instructions-sysvar v2.2.2
[INFO] [stderr]   Downloaded solana-serialize-utils v2.2.1
[INFO] [stderr]   Downloaded solana-fee-calculator v2.2.1
[INFO] [stderr]   Downloaded solana-epoch-schedule v2.2.1
[INFO] [stderr]   Downloaded solana-epoch-rewards v2.2.1
[INFO] [stderr]   Downloaded solana-program-pack v2.2.1
[INFO] [stderr]   Downloaded solana-program-option v2.2.1
[INFO] [stderr]   Downloaded spl-tlv-account-resolution v0.11.1
[INFO] [stderr]   Downloaded spl-token-metadata-interface v0.8.0
[INFO] [stderr]   Downloaded spl-token-confidential-transfer-proof-generation v0.5.1
[INFO] [stderr]   Downloaded spl-token-confidential-transfer-proof-extraction v0.5.1
[INFO] [stderr]   Downloaded spl-token v8.0.0
[INFO] [stderr]   Downloaded solana-pubkey v2.4.0
[INFO] [stderr]   Downloaded solana-stake-interface v1.2.1
[INFO] [stderr]   Downloaded solana-instruction v2.3.0
[INFO] [stderr]   Downloaded solana-transaction-status v3.1.5
[INFO] [stderr]   Downloaded spl-token-interface v2.0.0
[INFO] [stderr]   Downloaded deranged v0.5.4
[INFO] [stderr]   Downloaded solana-serde-varint v3.0.0
[INFO] [stderr]   Downloaded solana-reward-info v3.0.0
[INFO] [stderr]   Downloaded solana-commitment-config v3.1.0
[INFO] [stderr]   Downloaded solana-account-decoder-client-types v3.1.5
[INFO] [stderr]   Downloaded rusticata-macros v4.1.0
[INFO] [stderr]   Downloaded oid-registry v0.6.1
[INFO] [stderr]   Downloaded spl-token-2022-interface v2.1.0
[INFO] [stderr]   Downloaded spl-associated-token-account-interface v2.0.0
[INFO] [stderr]   Downloaded solana-short-vec v3.0.0
[INFO] [stderr]   Downloaded solana-transaction-status-client-types v3.1.5
[INFO] [stderr]   Downloaded unreachable v1.0.0
[INFO] [stderr]   Downloaded solana-account v3.2.0
[INFO] [stderr]   Downloaded solana-loader-v3-interface v6.1.0
[INFO] [stderr]   Downloaded solana-transaction-context v3.1.5
[INFO] [stderr]   Downloaded ascii v0.9.3
[INFO] [stderr]   Downloaded solana-transaction v3.0.2
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.4
[INFO] [stderr]   Downloaded solana-loader-v2-interface v3.0.0
[INFO] [stderr]   Downloaded spl-generic-token v2.0.1
[INFO] [stderr]   Downloaded solana-vote-interface v4.0.4
[INFO] [stderr]   Downloaded serde_with_macros v3.15.0
[INFO] [stderr]   Downloaded solana-message v3.0.1
[INFO] [stderr]   Downloaded solana-stake-interface v2.0.1
[INFO] [stderr]   Downloaded solana-address-lookup-table-interface v3.0.0
[INFO] [stderr]   Downloaded solana-nonce v3.0.0
[INFO] [stderr]   Downloaded solana-config-interface v2.0.0
[INFO] [stderr]   Downloaded combine v3.8.1
[INFO] [stderr]   Downloaded cc v1.2.41
[INFO] [stderr]   Downloaded solana-account-decoder v3.1.5
[INFO] [stderr]   Downloaded solana-streamer v3.1.5
[INFO] [stderr]   Downloaded x509-parser v0.14.0
[INFO] [stderr]   Downloaded solana-sbpf v0.13.1
[INFO] [stderr]   Downloaded agave-reserved-account-keys v3.1.5
[INFO] [stderr]   Downloaded asn1-rs v0.5.2
[INFO] [stderr]   Downloaded compression-core v0.4.29
[INFO] [stderr]   Downloaded compression-codecs v0.4.31
[INFO] [stderr]   Downloaded serde_with v3.15.0
[INFO] [stderr]   Downloaded async-compression v0.4.32
[INFO] [stderr]   Downloaded flate2 v1.1.4
[INFO] [stderr]   Downloaded solana-svm-feature-set v3.1.5
[INFO] [stderr]   Downloaded solana-shred-version v3.0.0
[INFO] [stderr]   Downloaded solana-keccak-hasher v3.0.0
[INFO] [stderr]   Downloaded solana-example-mocks v3.0.0
[INFO] [stderr]   Downloaded solana-presigner v3.0.0
[INFO] [stderr]   Downloaded asn1-rs-impl v0.1.0
[INFO] [stderr]   Downloaded rustls-webpki v0.103.7
[INFO] [stderr]   Downloaded solana-zk-sdk v4.0.0
[INFO] [stderr]   Downloaded solana-serde v3.0.0
[INFO] [stderr]   Downloaded solana-epoch-stake v3.0.0
[INFO] [stderr]   Downloaded solana-blake3-hasher v3.0.0
[INFO] [stderr]   Downloaded ed25519-dalek-bip32 v0.3.0
[INFO] [stderr]   Downloaded asn1-rs-derive v0.4.0
[INFO] [stderr]   Downloaded rustls-platform-verifier v0.6.1
[INFO] [stderr]   Downloaded webpki-root-certs v1.0.3
[INFO] [stderr]   Downloaded rustls-native-certs v0.8.1
[INFO] [stderr]   Downloaded fastbloom v0.14.0
[INFO] [stderr]   Downloaded gethostname v0.2.3
[INFO] [stderr]   Downloaded dlopen2 v0.5.0
[INFO] [stderr]   Downloaded dlopen2_derive v0.3.0
[INFO] [stderr]   Downloaded caps v0.5.5
[INFO] [stderr]   Downloaded solana-tls-utils v3.1.5
[INFO] [stderr]   Downloaded solana-quic-definitions v3.0.0
[INFO] [stderr]   Downloaded solana-net-utils v3.1.5
[INFO] [stderr]   Downloaded solana-svm-type-overrides v3.1.5
[INFO] [stderr]   Downloaded solana-measure v3.1.5
[INFO] [stderr]   Downloaded percentage v0.1.0
[INFO] [stderr]   Downloaded num v0.2.1
[INFO] [stderr]   Downloaded num-rational v0.2.4
[INFO] [stderr]   Downloaded num-complex v0.2.4
[INFO] [stderr]   Downloaded quanta v0.12.6
[INFO] [stderr]   Downloaded nonzero_ext v0.3.0
[INFO] [stderr]   Downloaded histogram v0.6.9
[INFO] [stderr]   Downloaded raw-cpuid v11.6.0
[INFO] [stderr]   Downloaded no-std-compat v0.4.1
[INFO] [stderr]   Downloaded solana-offchain-message v3.0.0
[INFO] [stderr]   Downloaded solana-inflation v3.0.0
[INFO] [stderr]   Downloaded solana-fee-structure v3.0.0
[INFO] [stderr]   Downloaded num-bigint v0.2.6
[INFO] [stderr]   Downloaded pem v1.1.1
[INFO] [stderr]   Downloaded governor v0.6.3
[INFO] [stderr]   Downloaded spinning_top v0.3.0
[INFO] [stderr]   Downloaded futures-timer v3.0.3
[INFO] [stderr]   Downloaded solana-connection-cache v3.1.5
[INFO] [stderr]   Downloaded solana-rpc-client-api v3.1.5
[INFO] [stderr]   Downloaded solana-rpc-client-types v3.1.5
[INFO] [stderr]   Downloaded solana-version v3.1.5
[INFO] [stderr]   Downloaded jsonrpc-core v18.0.0
[INFO] [stderr]   Downloaded solana-rpc-client v3.1.5
[INFO] [stderr]   Downloaded solana-feature-gate-interface v3.0.0
[INFO] [stderr]   Downloaded spl-math v0.3.0
[INFO] [stderr]   Downloaded solana-time-utils v3.0.0
[INFO] [stderr]   Downloaded solana-packet v3.0.0
[INFO] [stderr]   Downloaded solana-tpu-client v3.1.5
[INFO] [stderr]   Downloaded reqwest-middleware v0.4.2
[INFO] [stderr]   Downloaded console v0.16.1
[INFO] [stderr]   Downloaded solana-pubsub-client v3.1.5
[INFO] [stderr]   Downloaded tungstenite v0.28.0
[INFO] [stderr]   Downloaded tokio-tungstenite v0.28.0
[INFO] [stderr]   Downloaded solana-client-traits v3.0.0
[INFO] [stderr]   Downloaded solana-rpc-client-nonce-utils v3.1.5
[INFO] [stderr]   Downloaded solana-quic-client v3.1.5
[INFO] [stderr]   Downloaded async-lock v3.4.1
[INFO] [stderr]   Downloaded raydium-sdk v0.2.6
[INFO] [stderr]   Downloaded spl-token v9.0.0
[INFO] [stderr]   Downloaded solana-tool v0.1.1
[INFO] [stderr]   Downloaded pump-sdk v0.2.6
[INFO] [stderr]   Downloaded uint v0.10.0
[INFO] [stderr]   Downloaded solana-program v2.3.0
[INFO] [stderr]   Downloaded solana-vote-interface v2.2.6
[INFO] [stderr]   Downloaded solana-short-vec v2.2.1
[INFO] [stderr]   Downloaded solana-serde-varint v2.2.2
[INFO] [stderr]   Downloaded solana-secp256k1-recover v2.2.1
[INFO] [stderr]   Downloaded solana-native-token v2.3.0
[INFO] [stderr]   Downloaded solana-message v2.4.0
[INFO] [stderr]   Downloaded solana-bincode v2.2.1
[INFO] [stderr]   Downloaded solana-loader-v4-interface v2.2.1
[INFO] [stderr]   Downloaded solana-loader-v2-interface v2.2.1
[INFO] [stderr]   Downloaded solana-feature-gate-interface v2.2.2
[INFO] [stderr]   Downloaded solana-example-mocks v2.2.1
[INFO] [stderr]   Downloaded solana-address-lookup-table-interface v2.2.2
[INFO] [stderr]   Downloaded solana-borsh v2.2.1
[INFO] [stderr]   Downloaded solana-nonce v2.2.1
[INFO] [stderr]   Downloaded solana-transaction-error v2.2.1
[INFO] [stderr]   Downloaded solana-loader-v3-interface v5.0.0
[INFO] [stderr]   Downloaded solana-keccak-hasher v2.2.1
[INFO] [stderr]   Downloaded solana-account v2.2.1
[INFO] [stderr]   Downloaded solana-blake3-hasher v2.2.1
[INFO] [stderr]   Downloaded solana-big-mod-exp v2.2.1
[INFO] [stderr]   Downloaded solana-epoch-rewards-hasher v3.0.0
[INFO] [stderr]   Downloaded spl-associated-token-account v8.0.0
[INFO] [stderr]   Downloaded meteora-sdk v0.7.0
[INFO] [stderr]   Downloaded solana-big-mod-exp v3.0.0
[INFO] [stderr]   Downloaded solana-epoch-info v3.0.0
[INFO] [stderr]   Downloaded solana-native-token v3.0.0
[INFO] [stderr]   Downloaded solana-rayon-threadlimit v3.1.5
[INFO] [stderr]   Downloaded solana-keypair v3.0.1
[INFO] [stderr]   Downloaded solana-cluster-type v3.0.0
[INFO] [stderr]   Downloaded solana-udp-client v3.1.5
[INFO] [stderr]   Downloaded solana-transaction-metrics-tracker v3.1.5
[INFO] [stderr]   Downloaded solana-program v3.0.0
[INFO] [stderr]   Downloaded solana-secp256k1-recover v3.0.0
[INFO] [stderr]   Downloaded synstructure v0.12.6
[INFO] [stderr]   Downloaded solana-sdk v3.0.0
[INFO] [stderr]   Downloaded solana-hard-forks v3.0.0
[INFO] [stderr]   Downloaded solana-metrics v3.1.5
[INFO] [stderr]   Downloaded agave-feature-set v3.1.5
[INFO] [stderr]   Downloaded solana-perf v3.1.5
[INFO] [stderr]   Downloaded solana-client v3.1.5
[INFO] [stderr]   Downloaded solana-network-client v0.1.5
[INFO] [stderr]   Downloaded der-parser v8.2.0
[INFO] [stderr]   Downloaded reqwest v0.12.25
[INFO] [stderr]   Downloaded regex v1.12.1
[INFO] [stderr]   Downloaded webpki-roots v1.0.3
[INFO] [stderr]   Downloaded regex-syntax v0.8.7
[INFO] [stderr]   Downloaded regex-automata v0.4.12
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b
[INFO] running `Command { std: "docker" "start" "11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling const-oid v0.9.6
[INFO] [stderr]    Compiling hashbrown v0.16.0
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling toml_datetime v0.7.3
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling borsh v1.5.7
[INFO] [stderr]    Compiling five8_core v0.1.2
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling solana-sanitize v3.0.1
[INFO] [stderr]    Compiling five8 v1.0.0
[INFO] [stderr]    Compiling indexmap v2.11.4
[INFO] [stderr]    Compiling solana-atomic-u64 v3.0.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling five8_const v1.0.0
[INFO] [stderr]    Compiling five8 v0.2.1
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling find-msvc-tools v0.1.4
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling bs58 v0.5.1
[INFO] [stderr]    Compiling toml_parser v1.0.4
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling cc v1.2.41
[INFO] [stderr]    Compiling solana-msg v3.0.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling toml_edit v0.23.7
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling solana-atomic-u64 v2.2.1
[INFO] [stderr]    Compiling solana-program-memory v3.0.0
[INFO] [stderr]    Compiling solana-sanitize v2.2.1
[INFO] [stderr]    Compiling hashbrown v0.13.2
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]    Compiling solana-decode-error v2.3.0
[INFO] [stderr]    Compiling five8_const v0.1.4
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]    Compiling solana-derivation-path v3.0.0
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling solana-seed-derivable v3.0.0
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]    Compiling serde_bytes v0.11.19
[INFO] [stderr]    Compiling solana-define-syscall v3.0.0
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling litemap v0.8.0
[INFO] [stderr]    Compiling writeable v0.6.1
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling solana-program-option v3.0.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling borsh-derive-internal v0.10.4
[INFO] [stderr]    Compiling borsh-schema-derive-internal v0.10.4
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling unreachable v1.0.0
[INFO] [stderr]    Compiling flate2 v1.1.4
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling compression-core v0.4.29
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling ascii v0.9.3
[INFO] [stderr]    Compiling compression-codecs v0.4.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling borsh-derive v1.5.7
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling solana-sdk-macro v3.0.0
[INFO] [stderr]    Compiling borsh-derive v0.10.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling borsh v0.10.4
[INFO] [stderr]    Compiling bytemuck v1.24.0
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling pbkdf2 v0.11.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling solana-seed-phrase v3.0.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling sha3 v0.10.8
[INFO] [stderr]    Compiling rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling num_enum_derive v0.7.5
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling zerovec v0.11.4
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling merlin v3.0.0
[INFO] [stderr]    Compiling webpki-roots v1.0.3
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling solana-hash v4.0.1
[INFO] [stderr]    Compiling solana-program-error v3.0.0
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling solana-instruction-error v2.0.0
[INFO] [stderr]    Compiling solana-sha256-hasher v3.1.0
[INFO] [stderr]    Compiling solana-hash v3.1.0
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling serde-big-array v0.5.1
[INFO] [stderr]    Compiling solana-transaction-error v3.0.0
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling solana-hash v2.3.0
[INFO] [stderr]    Compiling bv v0.11.1
[INFO] [stderr]    Compiling solana-fee-calculator v3.0.0
[INFO] [stderr]    Compiling solana-sha256-hasher v2.3.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.7
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling num_enum v0.7.5
[INFO] [stderr]    Compiling solana-short-vec v3.0.0
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling potential_utf v0.1.3
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling solana-address v2.0.0
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling solana-pubkey v2.4.0
[INFO] [stderr]    Compiling solana-address v1.1.0
[INFO] [stderr]    Compiling solana-pubkey v3.0.0
[INFO] [stderr]    Compiling solana-sdk-ids v3.0.0
[INFO] [stderr]    Compiling solana-instruction v3.0.0
[INFO] [stderr]    Compiling solana-signature v3.1.0
[INFO] [stderr]    Compiling solana-sysvar-id v3.0.0
[INFO] [stderr]    Compiling solana-account-info v3.0.0
[INFO] [stderr]    Compiling solana-signer v3.0.0
[INFO] [stderr]    Compiling solana-clock v3.0.0
[INFO] [stderr]    Compiling solana-epoch-schedule v3.0.0
[INFO] [stderr]    Compiling solana-slot-hashes v3.0.0
[INFO] [stderr]    Compiling solana-rent v3.0.0
[INFO] [stderr]    Compiling solana-program-entrypoint v3.1.0
[INFO] [stderr]    Compiling solana-slot-history v3.0.0
[INFO] [stderr]    Compiling solana-epoch-rewards v3.0.0
[INFO] [stderr]    Compiling solana-last-restart-slot v3.0.0
[INFO] [stderr]    Compiling solana-serialize-utils v3.1.0
[INFO] [stderr]    Compiling http v1.3.1
[INFO] [stderr]    Compiling solana-instructions-sysvar v3.0.0
[INFO] [stderr]    Compiling solana-instruction v2.3.0
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling solana-sdk-ids v2.2.1
[INFO] [stderr]    Compiling solana-sysvar v3.0.0
[INFO] [stderr]    Compiling aes-gcm-siv v0.11.1
[INFO] [stderr]    Compiling solana-zk-sdk v4.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling solana-account v3.2.0
[INFO] [stderr]    Compiling solana-message v3.0.1
[INFO] [stderr]    Compiling solana-system-interface v2.0.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling serde_with_macros v3.15.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling spl-discriminator-syn v0.2.1
[INFO] [stderr]    Compiling combine v3.8.1
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling hash32 v0.3.1
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling rustc-demangle v0.1.26
[INFO] [stderr]    Compiling serde_with v3.15.0
[INFO] [stderr]    Compiling spl-discriminator-derive v0.2.0
[INFO] [stderr]    Compiling solana-sysvar-id v2.2.1
[INFO] [stderr]    Compiling cfg_eval v0.1.2
[INFO] [stderr]    Compiling iri-string v0.7.8
[INFO] [stderr]    Compiling spl-discriminator v0.5.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling solana-serde-varint v3.0.0
[INFO] [stderr]    Compiling solana-cpi v3.0.0
[INFO] [stderr]    Compiling solana-program-pack v3.0.0
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling spl-pod v0.7.1
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling solana-sbpf v0.13.1
[INFO] [stderr]    Compiling async-compression v0.4.32
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling spl-type-length-value v0.9.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling solana-transaction v3.0.2
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling solana-curve25519 v3.1.5
[INFO] [stderr]    Compiling solana-borsh v3.0.0
[INFO] [stderr]    Compiling solana-sdk-macro v2.2.1
[INFO] [stderr]    Compiling solana-svm-feature-set v3.1.5
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling agave-feature-set v3.1.5
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling ed25519-dalek-bip32 v0.3.0
[INFO] [stderr]    Compiling solana-commitment-config v3.1.0
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling deranged v0.5.4
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling solana-keypair v3.0.1
[INFO] [stderr]    Compiling solana-transaction-context v3.1.5
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling spl-token-confidential-transfer-proof-extraction v0.5.1
[INFO] [stderr]    Compiling spl-generic-token v2.0.1
[INFO] [stderr]    Compiling solana-reward-info v3.0.0
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling solana-version v3.1.5
[INFO] [stderr]    Compiling solana-msg v2.2.1
[INFO] [stderr]    Compiling solana-time-utils v3.0.0
[INFO] [stderr]    Compiling data-encoding v2.9.0
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling solana-program-error v2.2.2
[INFO] [stderr]    Compiling time v0.3.44
[INFO] [stderr]    Compiling asn1-rs-derive v0.4.0
[INFO] [stderr]    Compiling rusticata-macros v4.1.0
[INFO] [stderr]    Compiling spl-token-metadata-interface v0.8.0
[INFO] [stderr]    Compiling spl-token-group-interface v0.7.1
[INFO] [stderr]    Compiling spl-token-confidential-transfer-proof-generation v0.5.1
[INFO] [stderr]    Compiling hyper-util v0.1.17
[INFO] [stderr]    Compiling solana-address-lookup-table-interface v3.0.0
[INFO] [stderr]    Compiling solana-nonce v3.0.0
[INFO] [stderr]    Compiling solana-cluster-type v3.0.0
[INFO] [stderr]    Compiling solana-inflation v3.0.0
[INFO] [stderr]    Compiling asn1-rs-impl v0.1.0
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling gethostname v0.2.3
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]    Compiling regex-syntax v0.8.7
[INFO] [stderr]    Compiling asn1-rs v0.5.2
[INFO] [stderr]    Compiling spl-token-2022-interface v2.1.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.25
[INFO] [stderr]    Compiling spl-token-interface v2.0.0
[INFO] [stderr]    Compiling regex-automata v0.4.12
[INFO] [stderr]    Compiling solana-packet v3.0.0
[INFO] [stderr]    Compiling solana-system-interface v1.0.0
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling oid-registry v0.6.1
[INFO] [stderr]    Compiling solana-program-memory v2.3.1
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling solana-account-info v2.3.0
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling solana-metrics v3.1.5
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling solana-clock v2.2.2
[INFO] [stderr]    Compiling solana-serde v3.0.0
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling rustls-native-certs v0.8.1
[INFO] [stderr]    Compiling dlopen2_derive v0.3.0
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling regex v1.12.1
[INFO] [stderr]    Compiling ff v0.13.1
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling solana-account-decoder-client-types v3.1.5
[INFO] [stderr]    Compiling quinn-udp v0.5.14
[INFO] [stderr]    Compiling solana-perf v3.1.5
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling base16ct v0.2.0
[INFO] [stderr]    Compiling siphasher v1.0.1
[INFO] [stderr]    Compiling Inflector v0.11.4
[INFO] [stderr]    Compiling sec1 v0.7.3
[INFO] [stderr]    Compiling fastbloom v0.14.0
[INFO] [stderr]    Compiling solana-rayon-threadlimit v3.1.5
[INFO] [stderr]    Compiling group v0.13.0
[INFO] [stderr]    Compiling dlopen2 v0.5.0
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.1
[INFO] [stderr]    Compiling reqwest-middleware v0.4.2
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling der-parser v8.2.0
[INFO] [stderr]    Compiling jsonrpc-core v18.0.0
[INFO] [stderr]    Compiling solana-transaction-status-client-types v3.1.5
[INFO] [stderr]    Compiling solana-stake-interface v2.0.1
[INFO] [stderr]    Compiling solana-vote-interface v4.0.4
[INFO] [stderr]    Compiling solana-config-interface v2.0.0
[INFO] [stderr]    Compiling solana-loader-v3-interface v6.1.0
[INFO] [stderr]    Compiling raw-cpuid v11.6.0
[INFO] [stderr]    Compiling solana-epoch-info v3.0.0
[INFO] [stderr]    Compiling caps v0.5.5
[INFO] [stderr]    Compiling crypto-bigint v0.5.5
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling solana-svm-type-overrides v3.1.5
[INFO] [stderr]    Compiling quinn v0.11.9
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling solana-rpc-client-types v3.1.5
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling solana-measure v3.1.5
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling lru-slab v0.1.2
[INFO] [stderr]    Compiling console v0.16.1
[INFO] [stderr]    Compiling quinn-proto v0.11.13
[INFO] [stderr]    Compiling solana-account-decoder v3.1.5
[INFO] [stderr]    Compiling libsecp256k1-core v0.2.2
[INFO] [stderr]    Compiling quanta v0.12.6
[INFO] [stderr]    Compiling elliptic-curve v0.13.8
[INFO] [stderr]    Compiling solana-net-utils v3.1.5
[INFO] [stderr]    Compiling num v0.2.1
[INFO] [stderr]    Compiling x509-parser v0.14.0
[INFO] [stderr]    Compiling solana-rpc-client-api v3.1.5
[INFO] [stderr]    Compiling solana-quic-definitions v3.0.0
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling rfc6979 v0.4.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling spinning_top v0.3.0
[INFO] [stderr]    Compiling no-std-compat v0.4.1
[INFO] [stderr]    Compiling unit-prefix v0.5.1
[INFO] [stderr]    Compiling nonzero_ext v0.3.0
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling indicatif v0.18.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling governor v0.6.3
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling solana-tls-utils v3.1.5
[INFO] [stderr]    Compiling solana-transaction-metrics-tracker v3.1.5
[INFO] [stderr]    Compiling ecdsa v0.16.9
[INFO] [stderr]    Compiling percentage v0.1.0
[INFO] [stderr]    Compiling solana-connection-cache v3.1.5
[INFO] [stderr]    Compiling pem v1.1.1
[INFO] [stderr]    Compiling solana-feature-gate-interface v3.0.0
[INFO] [stderr]    Compiling arc-swap v1.7.1
[INFO] [stderr]    Compiling histogram v0.6.9
[INFO] [stderr]    Compiling solana-rpc-client v3.1.5
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling k256 v0.13.4
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling solana-streamer v3.1.5
[INFO] [stderr]    Compiling libsecp256k1-gen-ecmult v0.2.1
[INFO] [stderr]    Compiling libsecp256k1-gen-genmult v0.2.1
[INFO] [stderr]    Compiling solana-rent v2.2.1
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling solana-slot-hashes v2.2.1
[INFO] [stderr]    Compiling solana-serialize-utils v2.2.1
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling solana-keccak-hasher v3.0.0
[INFO] [stderr]    Compiling solana-fee-calculator v2.2.1
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling solana-example-mocks v3.0.0
[INFO] [stderr]    Compiling libsecp256k1 v0.6.0
[INFO] [stderr]    Compiling async-lock v3.4.1
[INFO] [stderr]    Compiling solana-secp256k1-recover v3.0.0
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling solana-client-traits v3.0.0
[INFO] [stderr]    Compiling solana-cpi v2.2.1
[INFO] [stderr]    Compiling solana-big-mod-exp v3.0.0
[INFO] [stderr]    Compiling solana-pubsub-client v3.1.5
[INFO] [stderr]    Compiling solana-stable-layout v3.0.0
[INFO] [stderr]    Compiling solana-epoch-stake v3.0.0
[INFO] [stderr]    Compiling solana-blake3-hasher v3.0.0
[INFO] [stderr]    Compiling solana-short-vec v2.2.1
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling solana-hard-forks v3.0.0
[INFO] [stderr]    Compiling solana-native-token v3.0.0
[INFO] [stderr]    Compiling solana-epoch-rewards-hasher v3.0.0
[INFO] [stderr]    Compiling solana-program v3.0.0
[INFO] [stderr]    Compiling solana-shred-version v3.0.0
[INFO] [stderr]    Compiling sha2 v0.9.9
[INFO] [stderr]    Compiling solana-quic-client v3.1.5
[INFO] [stderr]    Compiling solana-udp-client v3.1.5
[INFO] [stderr]    Compiling solana-stake-interface v1.2.1
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling solana-instructions-sysvar v2.2.2
[INFO] [stderr]    Compiling solana-program-entrypoint v2.3.0
[INFO] [stderr]    Compiling solana-offchain-message v3.0.0
[INFO] [stderr]    Compiling solana-epoch-schedule v2.2.1
[INFO] [stderr]    Compiling solana-epoch-rewards v2.2.1
[INFO] [stderr]    Compiling solana-last-restart-slot v2.2.1
[INFO] [stderr]    Compiling solana-slot-history v2.2.1
[INFO] [stderr]    Compiling solana-bincode v2.2.1
[INFO] [stderr]    Compiling solana-transaction-error v2.2.1
[INFO] [stderr]    Compiling solana-presigner v3.0.0
[INFO] [stderr]    Compiling solana-fee-structure v3.0.0
[INFO] [stderr]    Compiling solana-sdk v3.0.0
[INFO] [stderr]    Compiling solana-message v2.4.0
[INFO] [stderr]    Compiling solana-sysvar v2.3.0
[INFO] [stderr]    Compiling solana-nonce v2.2.1
[INFO] [stderr]    Compiling solana-address-lookup-table-interface v2.2.2
[INFO] [stderr]    Compiling solana-account v2.2.1
[INFO] [stderr]    Compiling solana-program-pack v2.2.1
[INFO] [stderr]    Compiling spl-memo-interface v2.0.0
[INFO] [stderr]    Compiling spl-associated-token-account-interface v2.0.0
[INFO] [stderr]    Compiling solana-keccak-hasher v2.2.1
[INFO] [stderr]    Compiling solana-serde-varint v2.2.2
[INFO] [stderr]    Compiling spl-program-error-derive v0.6.0
[INFO] [stderr]    Compiling solana-program-option v2.2.1
[INFO] [stderr]    Compiling solana-vote-interface v2.2.6
[INFO] [stderr]    Compiling solana-feature-gate-interface v2.2.2
[INFO] [stderr]    Compiling solana-example-mocks v2.2.1
[INFO] [stderr]    Compiling solana-loader-v4-interface v2.2.1
[INFO] [stderr]    Compiling spl-program-error v0.8.0
[INFO] [stderr]    Compiling solana-loader-v3-interface v5.0.0
[INFO] [stderr]    Compiling agave-reserved-account-keys v3.1.5
[INFO] [stderr]    Compiling solana-big-mod-exp v2.2.1
[INFO] [stderr]    Compiling solana-loader-v2-interface v2.2.1
[INFO] [stderr]    Compiling solana-stable-layout v2.2.1
[INFO] [stderr]    Compiling solana-loader-v2-interface v3.0.0
[INFO] [stderr]    Compiling solana-blake3-hasher v2.2.1
[INFO] [stderr]    Compiling solana-rpc-client-nonce-utils v3.1.5
[INFO] [stderr]    Compiling solana-tpu-client v3.1.5
[INFO] [stderr]    Compiling solana-borsh v2.2.1
[INFO] [stderr]    Compiling solana-native-token v2.3.0
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling uint v0.10.0
[INFO] [stderr]    Compiling solana-transaction-status v3.1.5
[INFO] [stderr]    Compiling spl-tlv-account-resolution v0.11.1
[INFO] [stderr]    Compiling spl-token v9.0.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling solana-client v3.1.5
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling spl-transfer-hook-interface v2.1.0
[INFO] [stderr]    Compiling spl-associated-token-account v8.0.0
[INFO] [stderr]    Compiling spl-elgamal-registry-interface v0.1.0
[INFO] [stderr]    Compiling spl-token-confidential-transfer-ciphertext-arithmetic v0.4.1
[INFO] [stderr]    Compiling spl-token v8.0.0
[INFO] [stderr]    Compiling spl-token-2022 v10.0.0
[INFO] [stderr]    Compiling solana-secp256k1-recover v2.2.1
[INFO] [stderr]    Compiling solana-program v2.3.0
[INFO] [stderr]    Compiling solana-network-client v0.1.5
[INFO] [stderr]    Compiling spl-math v0.3.0
[INFO] [stderr]    Compiling solana-tool v0.1.1
[INFO] [stderr]    Compiling meteora-sdk v0.7.0
[INFO] [stderr]    Compiling pump-sdk v0.2.6
[INFO] [stderr]    Compiling raydium-sdk v0.2.6
[INFO] [stderr]    Compiling solana-network-sdk v0.5.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `tokio::task::JoinHandle`
[INFO] [stdout]   --> src/scan.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::task::JoinHandle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:843:24
[INFO] [stdout]     |
[INFO] [stdout] 843 |                     if (!info.is_swap) {
[INFO] [stdout]     |                        ^             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 843 -                     if (!info.is_swap) {
[INFO] [stdout] 843 +                     if !info.is_swap  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:863:36
[INFO] [stdout]     |
[INFO] [stdout] 863 | ...                   if (log.contains("MintTo")) {
[INFO] [stdout]     |                          ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 863 -                                 if (log.contains("MintTo")) {
[INFO] [stdout] 863 +                                 if log.contains("MintTo")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:866:36
[INFO] [stdout]     |
[INFO] [stdout] 866 | ...                   if (log.contains("Burn")) {
[INFO] [stdout]     |                          ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 866 -                                 if (log.contains("Burn")) {
[INFO] [stdout] 866 +                                 if log.contains("Burn")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:878:36
[INFO] [stdout]     |
[INFO] [stdout] 878 | ...                   if (log.contains("MintTo")) {
[INFO] [stdout]     |                          ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 878 -                                 if (log.contains("MintTo")) {
[INFO] [stdout] 878 +                                 if log.contains("MintTo")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:881:36
[INFO] [stdout]     |
[INFO] [stdout] 881 | ...                   if (log.contains("Burn")) {
[INFO] [stdout]     |                          ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 881 -                                 if (log.contains("Burn")) {
[INFO] [stdout] 881 +                                 if log.contains("Burn")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:893:36
[INFO] [stdout]     |
[INFO] [stdout] 893 | ...                   if (log.contains("IncreaseLiquidityV2")) {
[INFO] [stdout]     |                          ^                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 893 -                                 if (log.contains("IncreaseLiquidityV2")) {
[INFO] [stdout] 893 +                                 if log.contains("IncreaseLiquidityV2")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:896:36
[INFO] [stdout]     |
[INFO] [stdout] 896 | ...                   if (log.contains("Burn")) {
[INFO] [stdout]     |                          ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 896 -                                 if (log.contains("Burn")) {
[INFO] [stdout] 896 +                                 if log.contains("Burn")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:918:36
[INFO] [stdout]     |
[INFO] [stdout] 918 | ...                   if (log.contains("AddLiquidity")) {
[INFO] [stdout]     |                          ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 918 -                                 if (log.contains("AddLiquidity")) {
[INFO] [stdout] 918 +                                 if log.contains("AddLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:921:36
[INFO] [stdout]     |
[INFO] [stdout] 921 | ...                   if (log.contains("RemoveLiquidity")) {
[INFO] [stdout]     |                          ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 921 -                                 if (log.contains("RemoveLiquidity")) {
[INFO] [stdout] 921 +                                 if log.contains("RemoveLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:942:36
[INFO] [stdout]     |
[INFO] [stdout] 942 | ...                   if (log.contains("AddBalanceLiquidity")) {
[INFO] [stdout]     |                          ^                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 942 -                                 if (log.contains("AddBalanceLiquidity")) {
[INFO] [stdout] 942 +                                 if log.contains("AddBalanceLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:945:36
[INFO] [stdout]     |
[INFO] [stdout] 945 | ...                   if (log.contains("RemoveBalanceLiquidity")) {
[INFO] [stdout]     |                          ^                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 945 -                                 if (log.contains("RemoveBalanceLiquidity")) {
[INFO] [stdout] 945 +                                 if log.contains("RemoveBalanceLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:962:36
[INFO] [stdout]     |
[INFO] [stdout] 962 | ...                   if (log.contains("IncreaseLiquidity")) {
[INFO] [stdout]     |                          ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 962 -                                 if (log.contains("IncreaseLiquidity")) {
[INFO] [stdout] 962 +                                 if log.contains("IncreaseLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:965:36
[INFO] [stdout]     |
[INFO] [stdout] 965 | ...                   if (log.contains("DecreaseLiquidity")) {
[INFO] [stdout]     |                          ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 965 -                                 if (log.contains("DecreaseLiquidity")) {
[INFO] [stdout] 965 +                                 if log.contains("DecreaseLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:995:24
[INFO] [stdout]     |
[INFO] [stdout] 995 |                     if (!info.is_swap) {
[INFO] [stdout]     |                        ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 995 -                     if (!info.is_swap) {
[INFO] [stdout] 995 +                     if !info.is_swap  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1010:28
[INFO] [stdout]      |
[INFO] [stdout] 1010 |                         if (log.contains("Instruction: Deposit")) {
[INFO] [stdout]      |                            ^                                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1010 -                         if (log.contains("Instruction: Deposit")) {
[INFO] [stdout] 1010 +                         if log.contains("Instruction: Deposit")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1013:28
[INFO] [stdout]      |
[INFO] [stdout] 1013 |                         if (log.contains("Instruction: MintTo")) {
[INFO] [stdout]      |                            ^                                   ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1013 -                         if (log.contains("Instruction: MintTo")) {
[INFO] [stdout] 1013 +                         if log.contains("Instruction: MintTo")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1016:28
[INFO] [stdout]      |
[INFO] [stdout] 1016 |                         if (log.contains("Instruction: Burn")) {
[INFO] [stdout]      |                            ^                                 ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1016 -                         if (log.contains("Instruction: Burn")) {
[INFO] [stdout] 1016 +                         if log.contains("Instruction: Burn")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1019:28
[INFO] [stdout]      |
[INFO] [stdout] 1019 |                         if (log.contains("Instruction: Withdraw")) {
[INFO] [stdout]      |                            ^                                     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1019 -                         if (log.contains("Instruction: Withdraw")) {
[INFO] [stdout] 1019 +                         if log.contains("Instruction: Withdraw")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1023:24
[INFO] [stdout]      |
[INFO] [stdout] 1023 |                     if (deposit && mintTo) {
[INFO] [stdout]      |                        ^                 ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1023 -                     if (deposit && mintTo) {
[INFO] [stdout] 1023 +                     if deposit && mintTo  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1026:24
[INFO] [stdout]      |
[INFO] [stdout] 1026 |                     if (burn && withdraw) {
[INFO] [stdout]      |                        ^                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1026 -                     if (burn && withdraw) {
[INFO] [stdout] 1026 +                     if burn && withdraw  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/scan.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 Err(e) => {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/scan.rs:363:33
[INFO] [stdout]     |
[INFO] [stdout] 363 | ...                   Err(e) => {
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/scan.rs:276:25
[INFO] [stdout]     |
[INFO] [stdout] 276 |                     Err(e) => {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `decimals`
[INFO] [stdout]    --> src/tool.rs:413:41
[INFO] [stdout]     |
[INFO] [stdout] 413 |     pub fn validate_amount(amount: u64, decimals: u8) -> bool {
[INFO] [stdout]     |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decimals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/trade/info.rs:345:17
[INFO] [stdout]     |
[INFO] [stdout] 341 |                 (pre, post) => {
[INFO] [stdout]     |                 ----------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 345 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `legacy`
[INFO] [stdout]    --> src/trade/info.rs:435:44
[INFO] [stdout]     |
[INFO] [stdout] 435 |                 TransactionVersion::Legacy(legacy) => {}
[INFO] [stdout]     |                                            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `Legacy`
[INFO] [stdout]     |
[INFO] [stdout] 435 -                 TransactionVersion::Legacy(legacy) => {}
[INFO] [stdout] 435 +                 TransactionVersion::Legacy(solana_sdk::transaction::Legacy::Legacy) => {}
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 435 |                 TransactionVersion::Legacy(_legacy) => {}
[INFO] [stdout]     |                                            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `partial_inst`
[INFO] [stdout]    --> src/trade/info.rs:467:29
[INFO] [stdout]     |
[INFO] [stdout] 467 | ...                   partial_inst,
[INFO] [stdout]     |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partial_inst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/trade/info.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         tx: &EncodedConfirmedTransactionWithStatusMeta,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:596:12
[INFO] [stdout]     |
[INFO] [stdout] 596 |         if let (pre_balances, post_balances) = (&meta.pre_balances, &meta.post_balances) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:624:40
[INFO] [stdout]     |
[INFO] [stdout] 624 | ...                   if let account_keys = &parsed_msg.account_keys {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:660:32
[INFO] [stdout]     |
[INFO] [stdout] 660 | ...                   if let account_keys = &parsed_msg.account_keys {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:662:40
[INFO] [stdout]     |
[INFO] [stdout] 662 | ...                   if let pubkey = &fee_payer.pubkey {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:711:12
[INFO] [stdout]     |
[INFO] [stdout] 711 |           if let (pre_token_balances, post_token_balances) =
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 712 | |             (&meta.pre_token_balances, &meta.post_token_balances)
[INFO] [stdout]     | |_________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:809:12
[INFO] [stdout]     |
[INFO] [stdout] 809 |         if let logs = &meta.log_messages {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]     --> src/trade/info.rs:1046:12
[INFO] [stdout]      |
[INFO] [stdout] 1046 |         if let instructions = &parsed_msg.instructions {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]      = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]     --> src/trade/info.rs:1144:24
[INFO] [stdout]      |
[INFO] [stdout] 1144 |                     if let account_keys = &parsed_msg.account_keys {
[INFO] [stdout]      |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]      = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]     --> src/trade/info.rs:1149:32
[INFO] [stdout]      |
[INFO] [stdout] 1149 | ...                   if let (from_pubkey, to_pubkey) = (&from_acc.pubkey, &to_acc.pubkey) {
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]      = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `total_inflows` is assigned to, but never used
[INFO] [stdout]   --> src/trade/signer_sol.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut total_inflows = 0u64;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_total_inflows` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_inflows` is never read
[INFO] [stdout]   --> src/trade/signer_sol.rs:32:21
[INFO] [stdout]    |
[INFO] [stdout] 32 |                     total_inflows += pre - post;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lib.rs:165:23
[INFO] [stdout]     |
[INFO] [stdout] 165 |             .map_err(|e| UnifiedError::Error(0.0))?;
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lib.rs:160:61
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let pubkey = Pubkey::from_str(&public_key).map_err(|e| UnifiedError::Error(0.0))?;
[INFO] [stdout]     |                                                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mode` is never read
[INFO] [stdout]   --> src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Solana {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 29 |     mode: Mode,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_max_amount_for_mint`, `extract_address_from_log`, and `get_token_decimals_for_mint` are never used
[INFO] [stdout]    --> src/trade/info.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | impl TransactionInfo {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 146 |     // Get the maximum amount of a specified token address
[INFO] [stdout] 147 |     fn get_max_amount_for_mint(&self, mint: &str) -> Option<u64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn extract_address_from_log(log: &str, key: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn get_token_decimals_for_mint(&self, mint: &str) -> Option<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mintTo` should have a snake case name
[INFO] [stdout]     --> src/trade/info.rs:1006:29
[INFO] [stdout]      |
[INFO] [stdout] 1006 |                     let mut mintTo: bool = false;
[INFO] [stdout]      |                             ^^^^^^ help: convert the identifier to snake case: `mint_to`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6m 39s
[INFO] running `Command { std: "docker" "inspect" "11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `tokio::task::JoinHandle`
[INFO] [stdout]   --> src/scan.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::task::JoinHandle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:843:24
[INFO] [stdout]     |
[INFO] [stdout] 843 |                     if (!info.is_swap) {
[INFO] [stdout]     |                        ^             ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 843 -                     if (!info.is_swap) {
[INFO] [stdout] 843 +                     if !info.is_swap  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:863:36
[INFO] [stdout]     |
[INFO] [stdout] 863 | ...                   if (log.contains("MintTo")) {
[INFO] [stdout]     |                          ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 863 -                                 if (log.contains("MintTo")) {
[INFO] [stdout] 863 +                                 if log.contains("MintTo")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:866:36
[INFO] [stdout]     |
[INFO] [stdout] 866 | ...                   if (log.contains("Burn")) {
[INFO] [stdout]     |                          ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 866 -                                 if (log.contains("Burn")) {
[INFO] [stdout] 866 +                                 if log.contains("Burn")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:878:36
[INFO] [stdout]     |
[INFO] [stdout] 878 | ...                   if (log.contains("MintTo")) {
[INFO] [stdout]     |                          ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 878 -                                 if (log.contains("MintTo")) {
[INFO] [stdout] 878 +                                 if log.contains("MintTo")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:881:36
[INFO] [stdout]     |
[INFO] [stdout] 881 | ...                   if (log.contains("Burn")) {
[INFO] [stdout]     |                          ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 881 -                                 if (log.contains("Burn")) {
[INFO] [stdout] 881 +                                 if log.contains("Burn")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:893:36
[INFO] [stdout]     |
[INFO] [stdout] 893 | ...                   if (log.contains("IncreaseLiquidityV2")) {
[INFO] [stdout]     |                          ^                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 893 -                                 if (log.contains("IncreaseLiquidityV2")) {
[INFO] [stdout] 893 +                                 if log.contains("IncreaseLiquidityV2")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:896:36
[INFO] [stdout]     |
[INFO] [stdout] 896 | ...                   if (log.contains("Burn")) {
[INFO] [stdout]     |                          ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 896 -                                 if (log.contains("Burn")) {
[INFO] [stdout] 896 +                                 if log.contains("Burn")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:918:36
[INFO] [stdout]     |
[INFO] [stdout] 918 | ...                   if (log.contains("AddLiquidity")) {
[INFO] [stdout]     |                          ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 918 -                                 if (log.contains("AddLiquidity")) {
[INFO] [stdout] 918 +                                 if log.contains("AddLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:921:36
[INFO] [stdout]     |
[INFO] [stdout] 921 | ...                   if (log.contains("RemoveLiquidity")) {
[INFO] [stdout]     |                          ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 921 -                                 if (log.contains("RemoveLiquidity")) {
[INFO] [stdout] 921 +                                 if log.contains("RemoveLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:942:36
[INFO] [stdout]     |
[INFO] [stdout] 942 | ...                   if (log.contains("AddBalanceLiquidity")) {
[INFO] [stdout]     |                          ^                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 942 -                                 if (log.contains("AddBalanceLiquidity")) {
[INFO] [stdout] 942 +                                 if log.contains("AddBalanceLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling solana-network-sdk v0.5.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:945:36
[INFO] [stdout]     |
[INFO] [stdout] 945 | ...                   if (log.contains("RemoveBalanceLiquidity")) {
[INFO] [stdout]     |                          ^                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 945 -                                 if (log.contains("RemoveBalanceLiquidity")) {
[INFO] [stdout] 945 +                                 if log.contains("RemoveBalanceLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:962:36
[INFO] [stdout]     |
[INFO] [stdout] 962 | ...                   if (log.contains("IncreaseLiquidity")) {
[INFO] [stdout]     |                          ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 962 -                                 if (log.contains("IncreaseLiquidity")) {
[INFO] [stdout] 962 +                                 if log.contains("IncreaseLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:965:36
[INFO] [stdout]     |
[INFO] [stdout] 965 | ...                   if (log.contains("DecreaseLiquidity")) {
[INFO] [stdout]     |                          ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 965 -                                 if (log.contains("DecreaseLiquidity")) {
[INFO] [stdout] 965 +                                 if log.contains("DecreaseLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:995:24
[INFO] [stdout]     |
[INFO] [stdout] 995 |                     if (!info.is_swap) {
[INFO] [stdout]     |                        ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 995 -                     if (!info.is_swap) {
[INFO] [stdout] 995 +                     if !info.is_swap  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1010:28
[INFO] [stdout]      |
[INFO] [stdout] 1010 |                         if (log.contains("Instruction: Deposit")) {
[INFO] [stdout]      |                            ^                                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1010 -                         if (log.contains("Instruction: Deposit")) {
[INFO] [stdout] 1010 +                         if log.contains("Instruction: Deposit")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1013:28
[INFO] [stdout]      |
[INFO] [stdout] 1013 |                         if (log.contains("Instruction: MintTo")) {
[INFO] [stdout]      |                            ^                                   ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1013 -                         if (log.contains("Instruction: MintTo")) {
[INFO] [stdout] 1013 +                         if log.contains("Instruction: MintTo")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1016:28
[INFO] [stdout]      |
[INFO] [stdout] 1016 |                         if (log.contains("Instruction: Burn")) {
[INFO] [stdout]      |                            ^                                 ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1016 -                         if (log.contains("Instruction: Burn")) {
[INFO] [stdout] 1016 +                         if log.contains("Instruction: Burn")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1019:28
[INFO] [stdout]      |
[INFO] [stdout] 1019 |                         if (log.contains("Instruction: Withdraw")) {
[INFO] [stdout]      |                            ^                                     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1019 -                         if (log.contains("Instruction: Withdraw")) {
[INFO] [stdout] 1019 +                         if log.contains("Instruction: Withdraw")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1023:24
[INFO] [stdout]      |
[INFO] [stdout] 1023 |                     if (deposit && mintTo) {
[INFO] [stdout]      |                        ^                 ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1023 -                     if (deposit && mintTo) {
[INFO] [stdout] 1023 +                     if deposit && mintTo  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1026:24
[INFO] [stdout]      |
[INFO] [stdout] 1026 |                     if (burn && withdraw) {
[INFO] [stdout]      |                        ^                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1026 -                     if (burn && withdraw) {
[INFO] [stdout] 1026 +                     if burn && withdraw  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/scan.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 Err(e) => {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/scan.rs:363:33
[INFO] [stdout]     |
[INFO] [stdout] 363 | ...                   Err(e) => {
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/scan.rs:276:25
[INFO] [stdout]     |
[INFO] [stdout] 276 |                     Err(e) => {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `decimals`
[INFO] [stdout]    --> src/tool.rs:413:41
[INFO] [stdout]     |
[INFO] [stdout] 413 |     pub fn validate_amount(amount: u64, decimals: u8) -> bool {
[INFO] [stdout]     |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decimals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/trade/info.rs:345:17
[INFO] [stdout]     |
[INFO] [stdout] 341 |                 (pre, post) => {
[INFO] [stdout]     |                 ----------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 345 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `legacy`
[INFO] [stdout]    --> src/trade/info.rs:435:44
[INFO] [stdout]     |
[INFO] [stdout] 435 |                 TransactionVersion::Legacy(legacy) => {}
[INFO] [stdout]     |                                            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `Legacy`
[INFO] [stdout]     |
[INFO] [stdout] 435 -                 TransactionVersion::Legacy(legacy) => {}
[INFO] [stdout] 435 +                 TransactionVersion::Legacy(solana_sdk::transaction::Legacy::Legacy) => {}
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 435 |                 TransactionVersion::Legacy(_legacy) => {}
[INFO] [stdout]     |                                            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `partial_inst`
[INFO] [stdout]    --> src/trade/info.rs:467:29
[INFO] [stdout]     |
[INFO] [stdout] 467 | ...                   partial_inst,
[INFO] [stdout]     |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partial_inst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/trade/info.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         tx: &EncodedConfirmedTransactionWithStatusMeta,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:596:12
[INFO] [stdout]     |
[INFO] [stdout] 596 |         if let (pre_balances, post_balances) = (&meta.pre_balances, &meta.post_balances) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:624:40
[INFO] [stdout]     |
[INFO] [stdout] 624 | ...                   if let account_keys = &parsed_msg.account_keys {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:660:32
[INFO] [stdout]     |
[INFO] [stdout] 660 | ...                   if let account_keys = &parsed_msg.account_keys {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:662:40
[INFO] [stdout]     |
[INFO] [stdout] 662 | ...                   if let pubkey = &fee_payer.pubkey {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:711:12
[INFO] [stdout]     |
[INFO] [stdout] 711 |           if let (pre_token_balances, post_token_balances) =
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 712 | |             (&meta.pre_token_balances, &meta.post_token_balances)
[INFO] [stdout]     | |_________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:809:12
[INFO] [stdout]     |
[INFO] [stdout] 809 |         if let logs = &meta.log_messages {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]     --> src/trade/info.rs:1046:12
[INFO] [stdout]      |
[INFO] [stdout] 1046 |         if let instructions = &parsed_msg.instructions {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]      = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]     --> src/trade/info.rs:1144:24
[INFO] [stdout]      |
[INFO] [stdout] 1144 |                     if let account_keys = &parsed_msg.account_keys {
[INFO] [stdout]      |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]      = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]     --> src/trade/info.rs:1149:32
[INFO] [stdout]      |
[INFO] [stdout] 1149 | ...                   if let (from_pubkey, to_pubkey) = (&from_acc.pubkey, &to_acc.pubkey) {
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]      = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `total_inflows` is assigned to, but never used
[INFO] [stdout]   --> src/trade/signer_sol.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut total_inflows = 0u64;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_total_inflows` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_inflows` is never read
[INFO] [stdout]   --> src/trade/signer_sol.rs:32:21
[INFO] [stdout]    |
[INFO] [stdout] 32 |                     total_inflows += pre - post;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lib.rs:165:23
[INFO] [stdout]     |
[INFO] [stdout] 165 |             .map_err(|e| UnifiedError::Error(0.0))?;
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lib.rs:160:61
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let pubkey = Pubkey::from_str(&public_key).map_err(|e| UnifiedError::Error(0.0))?;
[INFO] [stdout]     |                                                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mode` is never read
[INFO] [stdout]   --> src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Solana {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 29 |     mode: Mode,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_max_amount_for_mint`, `extract_address_from_log`, and `get_token_decimals_for_mint` are never used
[INFO] [stdout]    --> src/trade/info.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | impl TransactionInfo {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 146 |     // Get the maximum amount of a specified token address
[INFO] [stdout] 147 |     fn get_max_amount_for_mint(&self, mint: &str) -> Option<u64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn extract_address_from_log(log: &str, key: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn get_token_decimals_for_mint(&self, mint: &str) -> Option<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mintTo` should have a snake case name
[INFO] [stdout]     --> src/trade/info.rs:1006:29
[INFO] [stdout]      |
[INFO] [stdout] 1006 |                     let mut mintTo: bool = false;
[INFO] [stdout]      |                             ^^^^^^ help: convert the identifier to snake case: `mint_to`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/block.rs:262:28
[INFO] [stdout]     |
[INFO] [stdout] 262 |                         if (tx.is_swap()) {
[INFO] [stdout]     |                            ^            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 262 -                         if (tx.is_swap()) {
[INFO] [stdout] 262 +                         if tx.is_swap()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task::JoinHandle`
[INFO] [stdout]   --> src/scan.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::task::JoinHandle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/scan.rs:424:28
[INFO] [stdout]     |
[INFO] [stdout] 424 |                         if (trade.is_swap()) {
[INFO] [stdout]     |                            ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 424 -                         if (trade.is_swap()) {
[INFO] [stdout] 424 +                         if trade.is_swap()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:843:24
[INFO] [stdout]     |
[INFO] [stdout] 843 |                     if (!info.is_swap) {
[INFO] [stdout]     |                        ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 843 -                     if (!info.is_swap) {
[INFO] [stdout] 843 +                     if !info.is_swap  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:863:36
[INFO] [stdout]     |
[INFO] [stdout] 863 | ...                   if (log.contains("MintTo")) {
[INFO] [stdout]     |                          ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 863 -                                 if (log.contains("MintTo")) {
[INFO] [stdout] 863 +                                 if log.contains("MintTo")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:866:36
[INFO] [stdout]     |
[INFO] [stdout] 866 | ...                   if (log.contains("Burn")) {
[INFO] [stdout]     |                          ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 866 -                                 if (log.contains("Burn")) {
[INFO] [stdout] 866 +                                 if log.contains("Burn")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:878:36
[INFO] [stdout]     |
[INFO] [stdout] 878 | ...                   if (log.contains("MintTo")) {
[INFO] [stdout]     |                          ^                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 878 -                                 if (log.contains("MintTo")) {
[INFO] [stdout] 878 +                                 if log.contains("MintTo")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:881:36
[INFO] [stdout]     |
[INFO] [stdout] 881 | ...                   if (log.contains("Burn")) {
[INFO] [stdout]     |                          ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 881 -                                 if (log.contains("Burn")) {
[INFO] [stdout] 881 +                                 if log.contains("Burn")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:893:36
[INFO] [stdout]     |
[INFO] [stdout] 893 | ...                   if (log.contains("IncreaseLiquidityV2")) {
[INFO] [stdout]     |                          ^                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 893 -                                 if (log.contains("IncreaseLiquidityV2")) {
[INFO] [stdout] 893 +                                 if log.contains("IncreaseLiquidityV2")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:896:36
[INFO] [stdout]     |
[INFO] [stdout] 896 | ...                   if (log.contains("Burn")) {
[INFO] [stdout]     |                          ^                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 896 -                                 if (log.contains("Burn")) {
[INFO] [stdout] 896 +                                 if log.contains("Burn")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:918:36
[INFO] [stdout]     |
[INFO] [stdout] 918 | ...                   if (log.contains("AddLiquidity")) {
[INFO] [stdout]     |                          ^                            ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 918 -                                 if (log.contains("AddLiquidity")) {
[INFO] [stdout] 918 +                                 if log.contains("AddLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:921:36
[INFO] [stdout]     |
[INFO] [stdout] 921 | ...                   if (log.contains("RemoveLiquidity")) {
[INFO] [stdout]     |                          ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 921 -                                 if (log.contains("RemoveLiquidity")) {
[INFO] [stdout] 921 +                                 if log.contains("RemoveLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:942:36
[INFO] [stdout]     |
[INFO] [stdout] 942 | ...                   if (log.contains("AddBalanceLiquidity")) {
[INFO] [stdout]     |                          ^                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 942 -                                 if (log.contains("AddBalanceLiquidity")) {
[INFO] [stdout] 942 +                                 if log.contains("AddBalanceLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:945:36
[INFO] [stdout]     |
[INFO] [stdout] 945 | ...                   if (log.contains("RemoveBalanceLiquidity")) {
[INFO] [stdout]     |                          ^                                      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 945 -                                 if (log.contains("RemoveBalanceLiquidity")) {
[INFO] [stdout] 945 +                                 if log.contains("RemoveBalanceLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:962:36
[INFO] [stdout]     |
[INFO] [stdout] 962 | ...                   if (log.contains("IncreaseLiquidity")) {
[INFO] [stdout]     |                          ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 962 -                                 if (log.contains("IncreaseLiquidity")) {
[INFO] [stdout] 962 +                                 if log.contains("IncreaseLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:965:36
[INFO] [stdout]     |
[INFO] [stdout] 965 | ...                   if (log.contains("DecreaseLiquidity")) {
[INFO] [stdout]     |                          ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 965 -                                 if (log.contains("DecreaseLiquidity")) {
[INFO] [stdout] 965 +                                 if log.contains("DecreaseLiquidity")  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/trade/info.rs:995:24
[INFO] [stdout]     |
[INFO] [stdout] 995 |                     if (!info.is_swap) {
[INFO] [stdout]     |                        ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 995 -                     if (!info.is_swap) {
[INFO] [stdout] 995 +                     if !info.is_swap  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1010:28
[INFO] [stdout]      |
[INFO] [stdout] 1010 |                         if (log.contains("Instruction: Deposit")) {
[INFO] [stdout]      |                            ^                                    ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1010 -                         if (log.contains("Instruction: Deposit")) {
[INFO] [stdout] 1010 +                         if log.contains("Instruction: Deposit")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1013:28
[INFO] [stdout]      |
[INFO] [stdout] 1013 |                         if (log.contains("Instruction: MintTo")) {
[INFO] [stdout]      |                            ^                                   ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1013 -                         if (log.contains("Instruction: MintTo")) {
[INFO] [stdout] 1013 +                         if log.contains("Instruction: MintTo")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1016:28
[INFO] [stdout]      |
[INFO] [stdout] 1016 |                         if (log.contains("Instruction: Burn")) {
[INFO] [stdout]      |                            ^                                 ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1016 -                         if (log.contains("Instruction: Burn")) {
[INFO] [stdout] 1016 +                         if log.contains("Instruction: Burn")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1019:28
[INFO] [stdout]      |
[INFO] [stdout] 1019 |                         if (log.contains("Instruction: Withdraw")) {
[INFO] [stdout]      |                            ^                                     ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1019 -                         if (log.contains("Instruction: Withdraw")) {
[INFO] [stdout] 1019 +                         if log.contains("Instruction: Withdraw")  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1023:24
[INFO] [stdout]      |
[INFO] [stdout] 1023 |                     if (deposit && mintTo) {
[INFO] [stdout]      |                        ^                 ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1023 -                     if (deposit && mintTo) {
[INFO] [stdout] 1023 +                     if deposit && mintTo  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]     --> src/trade/info.rs:1026:24
[INFO] [stdout]      |
[INFO] [stdout] 1026 |                     if (burn && withdraw) {
[INFO] [stdout]      |                        ^                ^
[INFO] [stdout]      |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1026 -                     if (burn && withdraw) {
[INFO] [stdout] 1026 +                     if burn && withdraw  {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/scan.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 Err(e) => {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/scan.rs:363:33
[INFO] [stdout]     |
[INFO] [stdout] 363 | ...                   Err(e) => {
[INFO] [stdout]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/scan.rs:276:25
[INFO] [stdout]     |
[INFO] [stdout] 276 |                     Err(e) => {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `decimals`
[INFO] [stdout]    --> src/tool.rs:413:41
[INFO] [stdout]     |
[INFO] [stdout] 413 |     pub fn validate_amount(amount: u64, decimals: u8) -> bool {
[INFO] [stdout]     |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decimals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/trade/info.rs:345:17
[INFO] [stdout]     |
[INFO] [stdout] 341 |                 (pre, post) => {
[INFO] [stdout]     |                 ----------- matches any value
[INFO] [stdout] ...
[INFO] [stdout] 345 |                 _ => {
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `legacy`
[INFO] [stdout]    --> src/trade/info.rs:435:44
[INFO] [stdout]     |
[INFO] [stdout] 435 |                 TransactionVersion::Legacy(legacy) => {}
[INFO] [stdout]     |                                            ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `Legacy`
[INFO] [stdout]     |
[INFO] [stdout] 435 -                 TransactionVersion::Legacy(legacy) => {}
[INFO] [stdout] 435 +                 TransactionVersion::Legacy(solana_sdk::transaction::Legacy::Legacy) => {}
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 435 |                 TransactionVersion::Legacy(_legacy) => {}
[INFO] [stdout]     |                                            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `partial_inst`
[INFO] [stdout]    --> src/trade/info.rs:467:29
[INFO] [stdout]     |
[INFO] [stdout] 467 | ...                   partial_inst,
[INFO] [stdout]     |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partial_inst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/trade/info.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         tx: &EncodedConfirmedTransactionWithStatusMeta,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:596:12
[INFO] [stdout]     |
[INFO] [stdout] 596 |         if let (pre_balances, post_balances) = (&meta.pre_balances, &meta.post_balances) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:624:40
[INFO] [stdout]     |
[INFO] [stdout] 624 | ...                   if let account_keys = &parsed_msg.account_keys {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:660:32
[INFO] [stdout]     |
[INFO] [stdout] 660 | ...                   if let account_keys = &parsed_msg.account_keys {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:662:40
[INFO] [stdout]     |
[INFO] [stdout] 662 | ...                   if let pubkey = &fee_payer.pubkey {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:711:12
[INFO] [stdout]     |
[INFO] [stdout] 711 |           if let (pre_token_balances, post_token_balances) =
[INFO] [stdout]     |  ____________^
[INFO] [stdout] 712 | |             (&meta.pre_token_balances, &meta.post_token_balances)
[INFO] [stdout]     | |_________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/trade/info.rs:809:12
[INFO] [stdout]     |
[INFO] [stdout] 809 |         if let logs = &meta.log_messages {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]     --> src/trade/info.rs:1046:12
[INFO] [stdout]      |
[INFO] [stdout] 1046 |         if let instructions = &parsed_msg.instructions {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]      = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]     --> src/trade/info.rs:1144:24
[INFO] [stdout]      |
[INFO] [stdout] 1144 |                     if let account_keys = &parsed_msg.account_keys {
[INFO] [stdout]      |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]      = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]     --> src/trade/info.rs:1149:32
[INFO] [stdout]      |
[INFO] [stdout] 1149 | ...                   if let (from_pubkey, to_pubkey) = (&from_acc.pubkey, &to_acc.pubkey) {
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]      = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `total_inflows` is assigned to, but never used
[INFO] [stdout]   --> src/trade/signer_sol.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let mut total_inflows = 0u64;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_total_inflows` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_inflows` is never read
[INFO] [stdout]   --> src/trade/signer_sol.rs:32:21
[INFO] [stdout]    |
[INFO] [stdout] 32 |                     total_inflows += pre - post;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lib.rs:165:23
[INFO] [stdout]     |
[INFO] [stdout] 165 |             .map_err(|e| UnifiedError::Error(0.0))?;
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/lib.rs:160:61
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let pubkey = Pubkey::from_str(&public_key).map_err(|e| UnifiedError::Error(0.0))?;
[INFO] [stdout]     |                                                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mode` is never read
[INFO] [stdout]   --> src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Solana {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 29 |     mode: Mode,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_max_amount_for_mint`, `extract_address_from_log`, and `get_token_decimals_for_mint` are never used
[INFO] [stdout]    --> src/trade/info.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | impl TransactionInfo {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 146 |     // Get the maximum amount of a specified token address
[INFO] [stdout] 147 |     fn get_max_amount_for_mint(&self, mint: &str) -> Option<u64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn extract_address_from_log(log: &str, key: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn get_token_decimals_for_mint(&self, mint: &str) -> Option<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` in tuple element 0 that must be used
[INFO] [stdout]    --> src/scan.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |         tokio::join!(handle1, handle2);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` in tuple element 1 that must be used
[INFO] [stdout]    --> src/scan.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |         tokio::join!(handle1, handle2);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `mintTo` should have a snake case name
[INFO] [stdout]     --> src/trade/info.rs:1006:29
[INFO] [stdout]      |
[INFO] [stdout] 1006 |                     let mut mintTo: bool = false;
[INFO] [stdout]      |                             ^^^^^^ help: convert the identifier to snake case: `mint_to`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `futures::Future` that must be used
[INFO] [stdout]    --> src/trade/mod.rs:754:9
[INFO] [stdout]     |
[INFO] [stdout] 754 |         t_info.display();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 10.93s
[INFO] running `Command { std: "docker" "inspect" "11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `tokio::task::JoinHandle`
[INFO] [stderr]   --> src/scan.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use tokio::task::JoinHandle;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:843:24
[INFO] [stderr]     |
[INFO] [stderr] 843 |                     if (!info.is_swap) {
[INFO] [stderr]     |                        ^             ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 843 -                     if (!info.is_swap) {
[INFO] [stderr] 843 +                     if !info.is_swap  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:863:36
[INFO] [stderr]     |
[INFO] [stderr] 863 | ...                   if (log.contains("MintTo")) {
[INFO] [stderr]     |                          ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 863 -                                 if (log.contains("MintTo")) {
[INFO] [stderr] 863 +                                 if log.contains("MintTo")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:866:36
[INFO] [stderr]     |
[INFO] [stderr] 866 | ...                   if (log.contains("Burn")) {
[INFO] [stderr]     |                          ^                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 866 -                                 if (log.contains("Burn")) {
[INFO] [stderr] 866 +                                 if log.contains("Burn")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:878:36
[INFO] [stderr]     |
[INFO] [stderr] 878 | ...                   if (log.contains("MintTo")) {
[INFO] [stderr]     |                          ^                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 878 -                                 if (log.contains("MintTo")) {
[INFO] [stderr] 878 +                                 if log.contains("MintTo")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:881:36
[INFO] [stderr]     |
[INFO] [stderr] 881 | ...                   if (log.contains("Burn")) {
[INFO] [stderr]     |                          ^                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 881 -                                 if (log.contains("Burn")) {
[INFO] [stderr] 881 +                                 if log.contains("Burn")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:893:36
[INFO] [stderr]     |
[INFO] [stderr] 893 | ...                   if (log.contains("IncreaseLiquidityV2")) {
[INFO] [stderr]     |                          ^                                   ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 893 -                                 if (log.contains("IncreaseLiquidityV2")) {
[INFO] [stderr] 893 +                                 if log.contains("IncreaseLiquidityV2")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:896:36
[INFO] [stderr]     |
[INFO] [stderr] 896 | ...                   if (log.contains("Burn")) {
[INFO] [stderr]     |                          ^                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 896 -                                 if (log.contains("Burn")) {
[INFO] [stderr] 896 +                                 if log.contains("Burn")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:918:36
[INFO] [stderr]     |
[INFO] [stderr] 918 | ...                   if (log.contains("AddLiquidity")) {
[INFO] [stderr]     |                          ^                            ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 918 -                                 if (log.contains("AddLiquidity")) {
[INFO] [stderr] 918 +                                 if log.contains("AddLiquidity")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:921:36
[INFO] [stderr]     |
[INFO] [stderr] 921 | ...                   if (log.contains("RemoveLiquidity")) {
[INFO] [stderr]     |                          ^                               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 921 -                                 if (log.contains("RemoveLiquidity")) {
[INFO] [stderr] 921 +                                 if log.contains("RemoveLiquidity")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:942:36
[INFO] [stderr]     |
[INFO] [stderr] 942 | ...                   if (log.contains("AddBalanceLiquidity")) {
[INFO] [stderr]     |                          ^                                   ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 942 -                                 if (log.contains("AddBalanceLiquidity")) {
[INFO] [stderr] 942 +                                 if log.contains("AddBalanceLiquidity")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:945:36
[INFO] [stderr]     |
[INFO] [stderr] 945 | ...                   if (log.contains("RemoveBalanceLiquidity")) {
[INFO] [stderr]     |                          ^                                      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 945 -                                 if (log.contains("RemoveBalanceLiquidity")) {
[INFO] [stderr] 945 +                                 if log.contains("RemoveBalanceLiquidity")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:962:36
[INFO] [stderr]     |
[INFO] [stderr] 962 | ...                   if (log.contains("IncreaseLiquidity")) {
[INFO] [stderr]     |                          ^                                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 962 -                                 if (log.contains("IncreaseLiquidity")) {
[INFO] [stderr] 962 +                                 if log.contains("IncreaseLiquidity")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:965:36
[INFO] [stderr]     |
[INFO] [stderr] 965 | ...                   if (log.contains("DecreaseLiquidity")) {
[INFO] [stderr]     |                          ^                                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 965 -                                 if (log.contains("DecreaseLiquidity")) {
[INFO] [stderr] 965 +                                 if log.contains("DecreaseLiquidity")  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:995:24
[INFO] [stderr]     |
[INFO] [stderr] 995 |                     if (!info.is_swap) {
[INFO] [stderr]     |                        ^             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 995 -                     if (!info.is_swap) {
[INFO] [stderr] 995 +                     if !info.is_swap  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]     --> src/trade/info.rs:1010:28
[INFO] [stderr]      |
[INFO] [stderr] 1010 |                         if (log.contains("Instruction: Deposit")) {
[INFO] [stderr]      |                            ^                                    ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1010 -                         if (log.contains("Instruction: Deposit")) {
[INFO] [stderr] 1010 +                         if log.contains("Instruction: Deposit")  {
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]     --> src/trade/info.rs:1013:28
[INFO] [stderr]      |
[INFO] [stderr] 1013 |                         if (log.contains("Instruction: MintTo")) {
[INFO] [stderr]      |                            ^                                   ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1013 -                         if (log.contains("Instruction: MintTo")) {
[INFO] [stderr] 1013 +                         if log.contains("Instruction: MintTo")  {
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]     --> src/trade/info.rs:1016:28
[INFO] [stderr]      |
[INFO] [stderr] 1016 |                         if (log.contains("Instruction: Burn")) {
[INFO] [stderr]      |                            ^                                 ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1016 -                         if (log.contains("Instruction: Burn")) {
[INFO] [stderr] 1016 +                         if log.contains("Instruction: Burn")  {
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]     --> src/trade/info.rs:1019:28
[INFO] [stderr]      |
[INFO] [stderr] 1019 |                         if (log.contains("Instruction: Withdraw")) {
[INFO] [stderr]      |                            ^                                     ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1019 -                         if (log.contains("Instruction: Withdraw")) {
[INFO] [stderr] 1019 +                         if log.contains("Instruction: Withdraw")  {
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]     --> src/trade/info.rs:1023:24
[INFO] [stderr]      |
[INFO] [stderr] 1023 |                     if (deposit && mintTo) {
[INFO] [stderr]      |                        ^                 ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1023 -                     if (deposit && mintTo) {
[INFO] [stderr] 1023 +                     if deposit && mintTo  {
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]     --> src/trade/info.rs:1026:24
[INFO] [stderr]      |
[INFO] [stderr] 1026 |                     if (burn && withdraw) {
[INFO] [stderr]      |                        ^                ^
[INFO] [stderr]      |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]      |
[INFO] [stderr] 1026 -                     if (burn && withdraw) {
[INFO] [stderr] 1026 +                     if burn && withdraw  {
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/scan.rs:175:21
[INFO] [stderr]     |
[INFO] [stderr] 175 |                 Err(e) => {
[INFO] [stderr]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/scan.rs:363:33
[INFO] [stderr]     |
[INFO] [stderr] 363 | ...                   Err(e) => {
[INFO] [stderr]     |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/scan.rs:276:25
[INFO] [stderr]     |
[INFO] [stderr] 276 |                     Err(e) => {
[INFO] [stderr]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `decimals`
[INFO] [stderr]    --> src/tool.rs:413:41
[INFO] [stderr]     |
[INFO] [stderr] 413 |     pub fn validate_amount(amount: u64, decimals: u8) -> bool {
[INFO] [stderr]     |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_decimals`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/trade/info.rs:345:17
[INFO] [stderr]     |
[INFO] [stderr] 341 |                 (pre, post) => {
[INFO] [stderr]     |                 ----------- matches any value
[INFO] [stderr] ...
[INFO] [stderr] 345 |                 _ => {
[INFO] [stderr]     |                 ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `legacy`
[INFO] [stderr]    --> src/trade/info.rs:435:44
[INFO] [stderr]     |
[INFO] [stderr] 435 |                 TransactionVersion::Legacy(legacy) => {}
[INFO] [stderr]     |                                            ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: you might have meant to pattern match on the similarly named variant `Legacy`
[INFO] [stderr]     |
[INFO] [stderr] 435 -                 TransactionVersion::Legacy(legacy) => {}
[INFO] [stderr] 435 +                 TransactionVersion::Legacy(solana_sdk::transaction::Legacy::Legacy) => {}
[INFO] [stderr]     |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]     |
[INFO] [stderr] 435 |                 TransactionVersion::Legacy(_legacy) => {}
[INFO] [stderr]     |                                            +
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `partial_inst`
[INFO] [stderr]    --> src/trade/info.rs:467:29
[INFO] [stderr]     |
[INFO] [stderr] 467 | ...                   partial_inst,
[INFO] [stderr]     |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_partial_inst`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tx`
[INFO] [stderr]    --> src/trade/info.rs:487:9
[INFO] [stderr]     |
[INFO] [stderr] 487 |         tx: &EncodedConfirmedTransactionWithStatusMeta,
[INFO] [stderr]     |         ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]    --> src/trade/info.rs:596:12
[INFO] [stderr]     |
[INFO] [stderr] 596 |         if let (pre_balances, post_balances) = (&meta.pre_balances, &meta.post_balances) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]     = help: consider replacing the `if let` with a `let`
[INFO] [stderr]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]    --> src/trade/info.rs:624:40
[INFO] [stderr]     |
[INFO] [stderr] 624 | ...                   if let account_keys = &parsed_msg.account_keys {
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]     = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]    --> src/trade/info.rs:660:32
[INFO] [stderr]     |
[INFO] [stderr] 660 | ...                   if let account_keys = &parsed_msg.account_keys {
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]     = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]    --> src/trade/info.rs:662:40
[INFO] [stderr]     |
[INFO] [stderr] 662 | ...                   if let pubkey = &fee_payer.pubkey {
[INFO] [stderr]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]     = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]    --> src/trade/info.rs:711:12
[INFO] [stderr]     |
[INFO] [stderr] 711 |           if let (pre_token_balances, post_token_balances) =
[INFO] [stderr]     |  ____________^
[INFO] [stderr] 712 | |             (&meta.pre_token_balances, &meta.post_token_balances)
[INFO] [stderr]     | |_________________________________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]     = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]    --> src/trade/info.rs:809:12
[INFO] [stderr]     |
[INFO] [stderr] 809 |         if let logs = &meta.log_messages {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]     = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]     --> src/trade/info.rs:1046:12
[INFO] [stderr]      |
[INFO] [stderr] 1046 |         if let instructions = &parsed_msg.instructions {
[INFO] [stderr]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]      = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]     --> src/trade/info.rs:1144:24
[INFO] [stderr]      |
[INFO] [stderr] 1144 |                     if let account_keys = &parsed_msg.account_keys {
[INFO] [stderr]      |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]      = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]     --> src/trade/info.rs:1149:32
[INFO] [stderr]      |
[INFO] [stderr] 1149 | ...                   if let (from_pubkey, to_pubkey) = (&from_acc.pubkey, &to_acc.pubkey) {
[INFO] [stderr]      |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]      = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `total_inflows` is assigned to, but never used
[INFO] [stderr]   --> src/trade/signer_sol.rs:22:13
[INFO] [stderr]    |
[INFO] [stderr] 22 |         let mut total_inflows = 0u64;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_total_inflows` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `total_inflows` is never read
[INFO] [stderr]   --> src/trade/signer_sol.rs:32:21
[INFO] [stderr]    |
[INFO] [stderr] 32 |                     total_inflows += pre - post;
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/lib.rs:165:23
[INFO] [stderr]     |
[INFO] [stderr] 165 |             .map_err(|e| UnifiedError::Error(0.0))?;
[INFO] [stderr]     |                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/lib.rs:160:61
[INFO] [stderr]     |
[INFO] [stderr] 160 |         let pubkey = Pubkey::from_str(&public_key).map_err(|e| UnifiedError::Error(0.0))?;
[INFO] [stderr]     |                                                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: field `mode` is never read
[INFO] [stderr]   --> src/lib.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct Solana {
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] 29 |     mode: Mode,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `get_max_amount_for_mint`, `extract_address_from_log`, and `get_token_decimals_for_mint` are never used
[INFO] [stderr]    --> src/trade/info.rs:147:8
[INFO] [stderr]     |
[INFO] [stderr] 145 | impl TransactionInfo {
[INFO] [stderr]     | -------------------- associated items in this implementation
[INFO] [stderr] 146 |     // Get the maximum amount of a specified token address
[INFO] [stderr] 147 |     fn get_max_amount_for_mint(&self, mint: &str) -> Option<u64> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 231 |     fn extract_address_from_log(log: &str, key: &str) -> Option<String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 244 |     fn get_token_decimals_for_mint(&self, mint: &str) -> Option<u8> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `mintTo` should have a snake case name
[INFO] [stderr]     --> src/trade/info.rs:1006:29
[INFO] [stderr]      |
[INFO] [stderr] 1006 |                     let mut mintTo: bool = false;
[INFO] [stderr]      |                             ^^^^^^ help: convert the identifier to snake case: `mint_to`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/block.rs:262:28
[INFO] [stderr]     |
[INFO] [stderr] 262 |                         if (tx.is_swap()) {
[INFO] [stderr]     |                            ^            ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 262 -                         if (tx.is_swap()) {
[INFO] [stderr] 262 +                         if tx.is_swap()  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/scan.rs:424:28
[INFO] [stderr]     |
[INFO] [stderr] 424 |                         if (trade.is_swap()) {
[INFO] [stderr]     |                            ^               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 424 -                         if (trade.is_swap()) {
[INFO] [stderr] 424 +                         if trade.is_swap()  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/trade/info.rs:843:24
[INFO] [stderr]     |
[INFO] [stderr] 843 |                     if (!info.is_swap) {
[INFO] [stderr]     |                        ^             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 843 -                     if (!info.is_swap) {
[INFO] [stderr] 843 +                     if !info.is_swap  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` in tuple element 0 that must be used
[INFO] [stderr]    --> src/scan.rs:461:9
[INFO] [stderr]     |
[INFO] [stderr] 461 |         tokio::join!(handle1, handle2);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` in tuple element 1 that must be used
[INFO] [stderr]    --> src/scan.rs:461:9
[INFO] [stderr]     |
[INFO] [stderr] 461 |         tokio::join!(handle1, handle2);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused implementer of `futures::Future` that must be used
[INFO] [stderr]    --> src/trade/mod.rs:754:9
[INFO] [stderr]     |
[INFO] [stderr] 754 |         t_info.display();
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stderr] 
[INFO] [stderr] warning: `solana-network-sdk` (lib) generated 45 warnings (run `cargo fix --lib -p solana-network-sdk` to apply 30 suggestions)
[INFO] [stderr] warning: `solana-network-sdk` (lib test) generated 50 warnings (44 duplicates) (run `cargo fix --lib -p solana-network-sdk --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.21s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/solana_network_sdk-d46126c472c79b29)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test spl::tests::test_get_token_info_usdc ... ok
[INFO] [stdout] test spl::tests::test_get_token_program_type ... ok
[INFO] [stdout] test tests::test_1 ... ok
[INFO] [stdout] test block::tests::test_get_block_by_slot_is_vote_program ... FAILED
[INFO] [stdout] test block::tests::test_get_block_by_slot ... FAILED
[INFO] [stdout] test scan::tests::test_get_last_signatures ... FAILED
[INFO] [stdout] test tests::test_launchpad_data_parsing ... ok
[INFO] [stdout] test tests::test_2 ... ok
[INFO] [stdout] test tests::test_clmm_data_parsing ... ok
[INFO] [stdout] test trade::tests::test_get_token_quote_ratio ... FAILED
[INFO] [stdout] test trade::tests::test_get_transaction_display_details_batch ... ok
[INFO] [stdout] test trade::tests::test_is_pump_trade ... FAILED
[INFO] [stdout] test trade::tests::test_is_dbc_trade ... FAILED
[INFO] [stdout] test trade::tests::test_is_raylaunchpad_trade ... FAILED
[INFO] [stdout] test trade::tests::test_parse_trade_info ... FAILED
[INFO] [stdout] test scan::tests::test_get_all_signatures_by_address_stop ... ok
[INFO] [stdout] test block::tests::test_fetch_transactions_from_latest_blocks has been running for over 60 seconds
[INFO] [stdout] test block::tests::test_poll_latest_block has been running for over 60 seconds
[INFO] [stdout] test scan::tests::test_get_all_signatures_by_address_and_batch_find_transaction has been running for over 60 seconds
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b", kill_on_drop: false }`
[INFO] [stdout] 11acaa17f6b6af6c0d3d7dcb6cbe2f1021432103248f8a8195a6ba0b880f5d6b
