[INFO] cloning repository https://github.com/rust-benchmark1/smart-contracts [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rust-benchmark1/smart-contracts" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frust-benchmark1%2Fsmart-contracts", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frust-benchmark1%2Fsmart-contracts'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c446d8f71cd03e4bf834948007af6386201181a4 [INFO] building rust-benchmark1/smart-contracts/c446d8f71cd03e4bf834948007af6386201181a4 against master#f5209000832c9d3bc29c91f4daef4ca9f28dc797+target=wasm32-wasip1 for pr-149868 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frust-benchmark1%2Fsmart-contracts" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/rust-benchmark1/smart-contracts [INFO] finished tweaking git repo https://github.com/rust-benchmark1/smart-contracts [INFO] tweaked toml for git repo https://github.com/rust-benchmark1/smart-contracts written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/rust-benchmark1/smart-contracts on toolchain f5209000832c9d3bc29c91f4daef4ca9f28dc797 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f5209000832c9d3bc29c91f4daef4ca9f28dc797" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/rust-benchmark1/smart-contracts 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" "+f5209000832c9d3bc29c91f4daef4ca9f28dc797" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded solana-frozen-abi-macro v1.16.25 [INFO] [stderr] Downloaded rusty-fork v0.3.0 [INFO] [stderr] Downloaded solana-frozen-abi v1.16.25 [INFO] [stderr] Downloaded solana-sdk-macro v1.16.25 [INFO] [stderr] Downloaded array-bytes v1.4.1 [INFO] [stderr] Downloaded near-token v0.3.0 [INFO] [stderr] Downloaded wee_alloc v0.4.5 [INFO] [stderr] Downloaded anchor-attribute-access-control v0.28.0 [INFO] [stderr] Downloaded anchor-attribute-event v0.28.0 [INFO] [stderr] Downloaded anchor-attribute-error v0.28.0 [INFO] [stderr] Downloaded anchor-attribute-program v0.28.0 [INFO] [stderr] Downloaded anchor-derive-accounts v0.28.0 [INFO] [stderr] Downloaded anchor-attribute-account v0.28.0 [INFO] [stderr] Downloaded anchor-attribute-constant v0.28.0 [INFO] [stderr] Downloaded anchor-derive-space v0.28.0 [INFO] [stderr] Downloaded near-gas v0.3.0 [INFO] [stderr] Downloaded anchor-lang v0.28.0 [INFO] [stderr] Downloaded colored v2.2.0 [INFO] [stderr] Downloaded anchor-syn v0.28.0 [INFO] [stderr] Downloaded near-account-id v1.1.1 [INFO] [stderr] Downloaded near-sdk-macros v5.14.0 [INFO] [stderr] Downloaded near-sys v0.2.4 [INFO] [stderr] Downloaded solana-program v1.16.25 [INFO] [stderr] Downloaded near-sdk v5.14.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+f5209000832c9d3bc29c91f4daef4ca9f28dc797" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d990acb4c7678ce8c745e806df773b1796f8e3c695fb223b8c06050715b67ad3 [INFO] running `Command { std: "docker" "start" "-a" "d990acb4c7678ce8c745e806df773b1796f8e3c695fb223b8c06050715b67ad3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d990acb4c7678ce8c745e806df773b1796f8e3c695fb223b8c06050715b67ad3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d990acb4c7678ce8c745e806df773b1796f8e3c695fb223b8c06050715b67ad3", kill_on_drop: false }` [INFO] [stdout] d990acb4c7678ce8c745e806df773b1796f8e3c695fb223b8c06050715b67ad3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+f5209000832c9d3bc29c91f4daef4ca9f28dc797" "build" "--frozen" "--message-format=json" "--target" "wasm32-wasip1", kill_on_drop: false }` [INFO] [stdout] d0ba4cb6cb626ef4b75c9a77699146d36b48d7129a77107ba205623053abe666 [INFO] running `Command { std: "docker" "start" "-a" "d0ba4cb6cb626ef4b75c9a77699146d36b48d7129a77107ba205623053abe666", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Compiling crunchy v0.2.3 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Compiling bs58 v0.5.1 [INFO] [stderr] Compiling hashbrown v0.15.3 [INFO] [stderr] Compiling jobserver v0.1.33 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling cc v1.2.23 [INFO] [stderr] Compiling digest v0.9.0 [INFO] [stderr] Compiling indexmap v2.9.0 [INFO] [stderr] Compiling toml_datetime v0.6.9 [INFO] [stderr] Compiling winnow v0.7.10 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling libsecp256k1-core v0.2.2 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling toml_edit v0.22.26 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling borsh v1.5.7 [INFO] [stderr] Compiling hashbrown v0.13.2 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling ark-std v0.4.0 [INFO] [stderr] Compiling ahash v0.7.8 [INFO] [stderr] Compiling blake3 v1.8.2 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling libsecp256k1-gen-genmult v0.2.1 [INFO] [stderr] Compiling libsecp256k1-gen-ecmult v0.2.1 [INFO] [stderr] Compiling solana-frozen-abi-macro v1.16.25 [INFO] [stderr] Compiling bitmaps v2.1.0 [INFO] [stderr] Compiling im v15.1.0 [INFO] [stderr] Compiling arrayref v0.3.9 [INFO] [stderr] Compiling tinyvec v1.9.0 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.100 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling sized-chunks v0.6.5 [INFO] [stderr] Compiling libsecp256k1 v0.6.0 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.100 [INFO] [stderr] Compiling proc-macro-crate v3.3.0 [INFO] [stderr] Compiling borsh-derive-internal v0.9.3 [INFO] [stderr] Compiling borsh-schema-derive-internal v0.9.3 [INFO] [stderr] Compiling ark-serialize-derive v0.4.2 [INFO] [stderr] Compiling ark-ff-macros v0.4.2 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Compiling ark-ff-asm v0.4.2 [INFO] [stderr] Compiling borsh-schema-derive-internal v0.10.4 [INFO] [stderr] Compiling borsh-derive-internal v0.10.4 [INFO] [stderr] Compiling solana-frozen-abi v1.16.25 [INFO] [stderr] Compiling rand_xoshiro v0.6.0 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Compiling smallvec v1.15.0 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.100 [INFO] [stderr] Compiling borsh-derive v1.5.7 [INFO] [stderr] Compiling wasm-bindgen v0.2.100 [INFO] [stderr] Compiling constant_time_eq v0.3.1 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling zeroize v1.3.0 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling js-sys v0.3.77 [INFO] [stderr] Compiling bytemuck_derive v1.9.3 [INFO] [stderr] Compiling hashbrown v0.11.2 [INFO] [stderr] Compiling unicode-normalization v0.1.24 [INFO] [stderr] Compiling solana-program v1.16.25 [INFO] [stderr] Compiling memmap2 v0.5.10 [INFO] [stderr] Compiling near-sdk-macros v5.14.0 [INFO] [stderr] Compiling wee_alloc v0.4.5 [INFO] [stderr] Compiling anstream v0.6.19 [INFO] [stderr] Compiling solana-sdk-macro v1.16.25 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling bytemuck v1.23.0 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling console_error_panic_hook v0.1.7 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling num-derive v0.3.3 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling Inflector v0.11.4 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling memory_units v0.4.0 [INFO] [stderr] Compiling array-bytes v1.4.1 [INFO] [stderr] Compiling clap_builder v4.5.38 [INFO] [stderr] Compiling clap_derive v4.5.32 [INFO] [stderr] Compiling web-sys v0.3.77 [INFO] [stderr] Compiling anchor-derive-space v0.28.0 [INFO] [stderr] Compiling console_log v0.2.2 [INFO] [stderr] Compiling base64 v0.13.1 [INFO] [stderr] Compiling near-sys v0.2.4 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling clap v4.5.38 [INFO] [stderr] Compiling bv v0.11.1 [INFO] [stderr] Compiling serde_bytes v0.11.17 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling near-account-id v1.1.1 [INFO] [stderr] Compiling near-token v0.3.0 [INFO] [stderr] Compiling near-gas v0.3.0 [INFO] [stderr] Compiling crypto-mac v0.8.0 [INFO] [stderr] Compiling block-buffer v0.9.0 [INFO] [stderr] Compiling hmac v0.8.1 [INFO] [stderr] Compiling toml v0.5.11 [INFO] [stderr] Compiling ark-serialize v0.4.2 [INFO] [stderr] Compiling sha2 v0.9.9 [INFO] [stderr] Compiling ark-ff v0.4.2 [INFO] [stderr] Compiling hmac-drbg v0.3.0 [INFO] [stderr] Compiling anchor-syn v0.28.0 [INFO] [stderr] Compiling proc-macro-crate v0.1.5 [INFO] [stderr] Compiling pbkdf2 v0.4.0 [INFO] [stderr] Compiling tiny-bip39 v0.8.2 [INFO] [stderr] Compiling sha3 v0.10.8 [INFO] [stderr] Compiling curve25519-dalek v3.2.1 [INFO] [stderr] Compiling borsh-derive v0.10.4 [INFO] [stderr] Compiling borsh-derive v0.9.3 [INFO] [stderr] Compiling borsh v0.10.4 [INFO] [stderr] Compiling borsh v0.9.3 [INFO] [stderr] Compiling near-sdk v5.14.0 [INFO] [stderr] Compiling anchor-attribute-account v0.28.0 [INFO] [stderr] Compiling anchor-attribute-error v0.28.0 [INFO] [stderr] Compiling anchor-attribute-program v0.28.0 [INFO] [stderr] Compiling anchor-attribute-event v0.28.0 [INFO] [stderr] Compiling anchor-derive-accounts v0.28.0 [INFO] [stderr] Compiling anchor-attribute-access-control v0.28.0 [INFO] [stderr] Compiling anchor-attribute-constant v0.28.0 [INFO] [stderr] Compiling ark-poly v0.4.2 [INFO] [stderr] Compiling ark-ec v0.4.2 [INFO] [stderr] Compiling ark-bn254 v0.4.0 [INFO] [stderr] Compiling anchor-lang v0.28.0 [INFO] [stderr] Compiling rust-smart-contracts-vulns v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Account` and `MockBlockchain` [INFO] [stdout] --> src/vulnerabilities/reentrancy.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::utils::{Account, MockBlockchain}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/vulnerabilities/reentrancy.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/vulnerabilities/reentrancy.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Account` and `MockBlockchain` [INFO] [stdout] --> src/vulnerabilities/signature_verification.rs:13:20 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::utils::{Account, MockBlockchain}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Account` and `MockBlockchain` [INFO] [stdout] --> src/vulnerabilities/account_confusion.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::utils::{Account, MockBlockchain}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Account` and `MockBlockchain` [INFO] [stdout] --> src/vulnerabilities/front_running.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::utils::{Account, MockBlockchain}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Account` and `MockBlockchain` [INFO] [stdout] --> src/vulnerabilities/inadequate_events.rs:13:20 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::utils::{Account, MockBlockchain}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Account` and `MockBlockchain` [INFO] [stdout] --> src/vulnerabilities/storage_management.rs:13:20 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::utils::{Account, MockBlockchain}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `mock-runtime` [INFO] [stdout] --> src/utils.rs:100:7 [INFO] [stdout] | [INFO] [stdout] 100 | #[cfg(feature = "mock-runtime")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `mock-runtime` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `amount` [INFO] [stdout] --> src/vulnerabilities/denial_of_service.rs:247:17 [INFO] [stdout] | [INFO] [stdout] 247 | let amount = match self.bidder_amounts.get(&bidder) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `liquidator` [INFO] [stdout] --> src/vulnerabilities/flash_loan.rs:220:64 [INFO] [stdout] | [INFO] [stdout] 220 | pub fn liquidate_position(&mut self, position_id: u64, liquidator: [u8; 32]) -> Result<(), &'static str> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_liquidator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `liquidator_collateral` [INFO] [stdout] --> src/vulnerabilities/flash_loan.rs:243:17 [INFO] [stdout] | [INFO] [stdout] 243 | let liquidator_collateral = position.collateral_amount - liquidation_bonus_amount; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_liquidator_collateral` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `repay_amount` [INFO] [stdout] --> src/vulnerabilities/flash_loan.rs:468:17 [INFO] [stdout] | [INFO] [stdout] 468 | let repay_amount = amount + fee_amount; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_repay_amount` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `liquidator` [INFO] [stdout] --> src/vulnerabilities/flash_loan.rs:500:64 [INFO] [stdout] | [INFO] [stdout] 500 | pub fn liquidate_position(&mut self, position_id: u64, liquidator: [u8; 32]) -> Result<(), &'static str> { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_liquidator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `liquidator_collateral` [INFO] [stdout] --> src/vulnerabilities/flash_loan.rs:553:17 [INFO] [stdout] | [INFO] [stdout] 553 | let liquidator_collateral = position.collateral_amount - liquidation_bonus_amount; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_liquidator_collateral` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `minter` [INFO] [stdout] --> src/vulnerabilities/random_manipulation.rs:177:43 [INFO] [stdout] | [INFO] [stdout] 177 | pub fn mint_random_nft(&mut self, minter: [u8; 32], tx_hash: [u8; 32]) -> Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_minter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `salt` [INFO] [stdout] --> src/vulnerabilities/random_manipulation.rs:336:80 [INFO] [stdout] | [INFO] [stdout] 336 | pub fn reveal_lottery_seed(&mut self, lottery_id: u64, seed: [u8; 32], salt: [u8; 32]) -> Result<[u8; 32], &'static str> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_salt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `proof` [INFO] [stdout] --> src/vulnerabilities/random_manipulation.rs:409:87 [INFO] [stdout] | [INFO] [stdout] 409 | pub fn fulfill_randomness(&mut self, request_id: u64, random_value: [u8; 32], proof: [u8; 64]) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pubkey` [INFO] [stdout] --> src/vulnerabilities/signature_verification.rs:141:36 [INFO] [stdout] | [INFO] [stdout] 141 | fn verify_signature(&self, pubkey: &[u8; 32], message: &[u8], signature: &[u8; 64]) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pubkey` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message` [INFO] [stdout] --> src/vulnerabilities/signature_verification.rs:141:55 [INFO] [stdout] | [INFO] [stdout] 141 | fn verify_signature(&self, pubkey: &[u8; 32], message: &[u8], signature: &[u8; 64]) -> bool { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `signature` [INFO] [stdout] --> src/vulnerabilities/signature_verification.rs:141:71 [INFO] [stdout] | [INFO] [stdout] 141 | fn verify_signature(&self, pubkey: &[u8; 32], message: &[u8], signature: &[u8; 64]) -> bool { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signature` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pubkey` [INFO] [stdout] --> src/vulnerabilities/signature_verification.rs:228:36 [INFO] [stdout] | [INFO] [stdout] 228 | fn verify_signature(&self, pubkey: &[u8; 32], message: &[u8], signature: &[u8; 64]) -> bool { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pubkey` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message` [INFO] [stdout] --> src/vulnerabilities/signature_verification.rs:228:55 [INFO] [stdout] | [INFO] [stdout] 228 | fn verify_signature(&self, pubkey: &[u8; 32], message: &[u8], signature: &[u8; 64]) -> bool { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `signature` [INFO] [stdout] --> src/vulnerabilities/signature_verification.rs:228:71 [INFO] [stdout] | [INFO] [stdout] 228 | fn verify_signature(&self, pubkey: &[u8; 32], message: &[u8], signature: &[u8; 64]) -> bool { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signature` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.token_accounts` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/vulnerabilities/account_confusion.rs:151:17 [INFO] [stdout] | [INFO] [stdout] 142 | let vault_account = self.token_accounts.get_mut(&vault_address) [INFO] [stdout] | ------------------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 151 | if !self.token_accounts.contains_key(&user_address) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 159 | vault_account.balance -= amount; [INFO] [stdout] | ------------------------------- mutable borrow later used here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `self.token_accounts` as mutable more than once at a time [INFO] [stdout] --> src/vulnerabilities/account_confusion.rs:152:17 [INFO] [stdout] | [INFO] [stdout] 142 | let vault_account = self.token_accounts.get_mut(&vault_address) [INFO] [stdout] | ------------------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 152 | self.token_accounts.insert(user_address, TokenAccount { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ second mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 159 | vault_account.balance -= amount; [INFO] [stdout] | ------------------------------- first borrow later used here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `self.token_accounts` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/vulnerabilities/account_confusion.rs:226:17 [INFO] [stdout] | [INFO] [stdout] 212 | let vault_account = self.token_accounts.get_mut(&vault_address) [INFO] [stdout] | ------------------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 226 | if !self.token_accounts.contains_key(&user_address) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 234 | vault_account.balance -= amount; [INFO] [stdout] | ------------------------------- mutable borrow later used here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0499]: cannot borrow `self.token_accounts` as mutable more than once at a time [INFO] [stdout] --> src/vulnerabilities/account_confusion.rs:227:17 [INFO] [stdout] | [INFO] [stdout] 212 | let vault_account = self.token_accounts.get_mut(&vault_address) [INFO] [stdout] | ------------------- first mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 227 | self.token_accounts.insert(user_address, TokenAccount { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ second mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 234 | vault_account.balance -= amount; [INFO] [stdout] | ------------------------------- first borrow later used here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `secret` [INFO] [stdout] --> src/vulnerabilities/front_running.rs:278:39 [INFO] [stdout] | [INFO] [stdout] 278 | ... secret: [u8; 32], [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_secret` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `*self` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/vulnerabilities/storage_management.rs:166:29 [INFO] [stdout] | [INFO] [stdout] 159 | let account = self.accounts.get_mut(&account_id) [INFO] [stdout] | ------------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 166 | let mut state = self.deserialize_state(&account.data)?; [INFO] [stdout] | ^^^^ ------------- mutable borrow later used here [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `*self` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/vulnerabilities/storage_management.rs:192:24 [INFO] [stdout] | [INFO] [stdout] 159 | let account = self.accounts.get_mut(&account_id) [INFO] [stdout] | ------------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 192 | let data = self.serialize_state(&state)?; [INFO] [stdout] | ^^^^ immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 196 | account.data = data; [INFO] [stdout] | ------------ mutable borrow later used here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `program_id` [INFO] [stdout] --> src/vulnerabilities/storage_management.rs:153:34 [INFO] [stdout] | [INFO] [stdout] 153 | ... program_id: [u8; 32], [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `*self` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/vulnerabilities/storage_management.rs:335:29 [INFO] [stdout] | [INFO] [stdout] 326 | let account = self.accounts.get_mut(&account_id) [INFO] [stdout] | ------------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 335 | let mut state = self.deserialize_state(&account.data)?; [INFO] [stdout] | ^^^^ ------------- mutable borrow later used here [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `*self` as immutable because it is also borrowed as mutable [INFO] [stdout] --> src/vulnerabilities/storage_management.rs:369:28 [INFO] [stdout] | [INFO] [stdout] 326 | let account = self.accounts.get_mut(&account_id) [INFO] [stdout] | ------------- mutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 369 | let new_data = self.serialize_state(&state)?; [INFO] [stdout] | ^^^^ immutable borrow occurs here [INFO] [stdout] ... [INFO] [stdout] 372 | if new_data.len() > account.size { [INFO] [stdout] | ------------ mutable borrow later used here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_values_size` [INFO] [stdout] --> src/vulnerabilities/storage_management.rs:355:25 [INFO] [stdout] | [INFO] [stdout] 355 | let current_values_size = state.values.len() * 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_values_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0499, E0502. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0499`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rust-smart-contracts-vulns` (lib) due to 8 previous errors; 27 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] running `Command { std: "docker" "inspect" "d0ba4cb6cb626ef4b75c9a77699146d36b48d7129a77107ba205623053abe666", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d0ba4cb6cb626ef4b75c9a77699146d36b48d7129a77107ba205623053abe666", kill_on_drop: false }` [INFO] [stdout] d0ba4cb6cb626ef4b75c9a77699146d36b48d7129a77107ba205623053abe666