[INFO] fetching crate solforge 0.1.0...
[INFO] testing solforge-0.1.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate solforge 0.1.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate solforge 0.1.0
[INFO] finished tweaking crates.io crate solforge 0.1.0
[INFO] tweaked toml for crates.io crate solforge 0.1.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate solforge 0.1.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate solforge 0.1.0 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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162
[INFO] running `Command { std: "docker" "start" "d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162", 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" "d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162", 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" "d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.104
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.106
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling bumpalo v3.19.1
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling wasm-bindgen v0.2.106
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling dioxus-core-types v0.7.2
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling longest-increasing-subsequence v0.1.0
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling lazy-js-bundle v0.7.2
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling zmij v1.0.8
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling serde_json v1.0.148
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling convert_case v0.8.0
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling keyboard-types v0.7.0
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling syn v2.0.112
[INFO] [stderr]    Compiling memmap2 v0.9.9
[INFO] [stderr]    Compiling euclid v0.22.11
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling dioxus-interpreter-js v0.7.2
[INFO] [stderr]    Compiling dioxus-document v0.7.2
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling data-encoding v2.9.0
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling const_format v0.2.35
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling sledgehammer_utils v0.3.1
[INFO] [stderr]    Compiling dioxus-web v0.7.2
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling base16 v0.2.1
[INFO] [stderr]    Compiling send_wrapper v0.6.0
[INFO] [stderr]    Compiling dioxus-config-macro v0.7.2
[INFO] [stderr]    Compiling dioxus-config-macros v0.7.2
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling bs58 v0.5.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling uuid v1.19.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.106
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling macro-string v0.1.4
[INFO] [stderr]    Compiling dioxus-rsx v0.7.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling warnings-macro v0.2.0
[INFO] [stderr]    Compiling const-serialize-macro v0.7.2
[INFO] [stderr]    Compiling dioxus-core-macro v0.7.2
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling dioxus-html-internal-macro v0.7.2
[INFO] [stderr]    Compiling sledgehammer_bindgen_macro v0.6.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling dioxus-router-macro v0.7.2
[INFO] [stderr]    Compiling dioxus-stores-macro v0.7.2
[INFO] [stderr]    Compiling tungstenite v0.27.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling generational-box v0.7.2
[INFO] [stderr]    Compiling warnings v0.2.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.106
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling enumset_derive v0.14.0
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling const-serialize v0.7.2
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling manganis-core v0.7.2
[INFO] [stderr]    Compiling subsecond-types v0.7.2
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling subsecond v0.7.2
[INFO] [stderr]    Compiling js-sys v0.3.83
[INFO] [stderr]    Compiling dioxus-cli-config v0.7.2
[INFO] [stderr]    Compiling sledgehammer_bindgen v0.6.0
[INFO] [stderr]    Compiling console_error_panic_hook v0.1.7
[INFO] [stderr]    Compiling enumset v1.1.10
[INFO] [stderr]    Compiling manganis-macro v0.7.2
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling dioxus-logger v0.7.2
[INFO] [stderr]    Compiling manganis v0.7.2
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling dioxus-core v0.7.2
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling dioxus-signals v0.7.2
[INFO] [stderr]    Compiling dioxus-devtools-types v0.7.2
[INFO] [stderr]    Compiling dioxus-history v0.7.2
[INFO] [stderr]    Compiling dioxus-hooks v0.7.2
[INFO] [stderr]    Compiling dioxus-devtools v0.7.2
[INFO] [stderr]    Compiling dioxus-stores v0.7.2
[INFO] [stderr]    Compiling dioxus-html v0.7.2
[INFO] [stderr]    Compiling web-sys v0.3.83
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.56
[INFO] [stderr]    Compiling serde-wasm-bindgen v0.6.5
[INFO] [stderr]    Compiling gloo-timers v0.3.0
[INFO] [stderr]    Compiling dioxus-router v0.7.2
[INFO] [stderr]    Compiling gloo-utils v0.2.0
[INFO] [stderr]    Compiling dioxus-asset-resolver v0.7.2
[INFO] [stderr]    Compiling gloo-storage v0.3.0
[INFO] [stderr]    Compiling gloo-net v0.6.0
[INFO] [stderr]    Compiling wasm-streams v0.4.2
[INFO] [stderr]    Compiling dioxus v0.7.2
[INFO] [stderr]    Compiling solforge v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `JsCast` and `closure::Closure`
[INFO] [stdout]  --> src/features/mint/form.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use wasm_bindgen::{closure::Closure, JsCast};
[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 imports: `FileReader` and `HtmlInputElement`
[INFO] [stdout]  --> src/features/mint/form.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use web_sys::{FileReader, HtmlInputElement};
[INFO] [stdout]   |               ^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/features/storage/ipfs.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IpfsClient` and `IpfsProvider`
[INFO] [stdout]  --> src/features/storage/mod.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use ipfs::{IpfsClient, IpfsProvider};
[INFO] [stdout]   |                ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `UploadResult`, `upload_image`, and `upload_metadata`
[INFO] [stdout]  --> src/features/storage/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use upload::{upload_image, upload_metadata, UploadResult};
[INFO] [stdout]   |                  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_bindgen::JsCast`
[INFO] [stdout]    --> src/features/wallet/connect.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     use wasm_bindgen::JsCast;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::state::WalletState`
[INFO] [stdout]  --> src/features/wallet/provider.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::state::WalletState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `provider::WalletProvider`
[INFO] [stdout]  --> src/features/wallet/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use provider::WalletProvider;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `draft_symbol`
[INFO] [stdout]   --> src/features/mint/page.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let draft_symbol = draft.read().symbol.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_draft_symbol`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uri`
[INFO] [stdout]    --> src/features/mint/page.rs:196:41
[INFO] [stdout]     |
[INFO] [stdout] 196 | ...                   if let Some(uri) = metadata_uri.read().as_ref() {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_uri`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_INPUT_LENGTH` is never used
[INFO] [stdout]  --> src/main.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAX_INPUT_LENGTH: usize = 4096;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_NFT_NAME_LENGTH` is never used
[INFO] [stdout]   --> src/main.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const MAX_NFT_NAME_LENGTH: usize = 32;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_NFT_SYMBOL_LENGTH` is never used
[INFO] [stdout]   --> src/main.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const MAX_NFT_SYMBOL_LENGTH: usize = 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_URI_LENGTH` is never used
[INFO] [stdout]   --> src/main.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const MAX_URI_LENGTH: usize = 200;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ROYALTY_BPS` is never used
[INFO] [stdout]   --> src/main.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const MAX_ROYALTY_BPS: u16 = 10_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALLOWED_NETWORKS` is never used
[INFO] [stdout]   --> src/main.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const ALLOWED_NETWORKS: &[&str] = &["devnet", "testnet", "mainnet-beta"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SOLANA_PUBKEY_PATTERN` is never used
[INFO] [stdout]   --> src/main.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const SOLANA_PUBKEY_PATTERN: &str = r"^[1-9A-HJ-NP-Za-km-z]{32,44}$";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sanitize_error` is never used
[INFO] [stdout]   --> src/main.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn sanitize_error(err: &dyn std::fmt::Display) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_input` is never used
[INFO] [stdout]   --> src/main.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn validate_input(value: &str, max_len: usize, field: &str) -> Result<String, String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_network` is never used
[INFO] [stdout]   --> src/main.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn validate_network(network: &str) -> Result<String, String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Connect` is never constructed
[INFO] [stdout]   --> src/components/common.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum ButtonVariant {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     Connect,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ButtonVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `IpfsError` is never used
[INFO] [stdout]  --> src/features/storage/ipfs.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum IpfsError {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `IpfsProvider` is never used
[INFO] [stdout]   --> src/features/storage/ipfs.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum IpfsProvider {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `gateway_url` are never used
[INFO] [stdout]   --> src/features/storage/ipfs.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl IpfsProvider {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 24 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn gateway_url(&self, cid: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpfsClient` is never constructed
[INFO] [stdout]   --> src/features/storage/ipfs.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct IpfsClient {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_api_key`, `upload_bytes`, and `upload_json` are never used
[INFO] [stdout]   --> src/features/storage/ipfs.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl IpfsClient {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 46 |     pub fn new(provider: IpfsProvider) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn with_api_key(mut self, key: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub async fn upload_bytes(
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub async fn upload_json<T: Serialize>(&self, _metadata: &T) -> Result<String, IpfsError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UploadResult` is never constructed
[INFO] [stdout]  --> src/features/storage/upload.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct UploadResult {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NftMetadata` is never constructed
[INFO] [stdout]   --> src/features/storage/upload.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct NftMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetadataAttribute` is never constructed
[INFO] [stdout]   --> src/features/storage/upload.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct MetadataAttribute {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetadataProperties` is never constructed
[INFO] [stdout]   --> src/features/storage/upload.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct MetadataProperties {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetadataFile` is never constructed
[INFO] [stdout]   --> src/features/storage/upload.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct MetadataFile {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetadataCreator` is never constructed
[INFO] [stdout]   --> src/features/storage/upload.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct MetadataCreator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload_image` is never used
[INFO] [stdout]   --> src/features/storage/upload.rs:56:14
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub async fn upload_image(
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload_metadata` is never used
[INFO] [stdout]   --> src/features/storage/upload.rs:79:14
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub async fn upload_metadata(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload_nft` is never used
[INFO] [stdout]    --> src/features/storage/upload.rs:121:14
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub async fn upload_nft(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_message` is never used
[INFO] [stdout]    --> src/features/wallet/provider.rs:152:14
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub async fn sign_message(provider: &WalletProvider, message: &[u8]) -> Result<Vec<u8>, String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TransactionFailed` is never constructed
[INFO] [stdout]   --> src/solana_rpc/solana.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum SolanaError {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TransactionFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SolanaError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/solana_rpc/solana.rs:27:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl SolanaClient {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  27 |     pub fn devnet() -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub fn mainnet() -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub async fn get_balance(&self, address: &str) -> Result<u64, SolanaError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub async fn get_latest_blockhash(&self) -> Result<String, SolanaError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub async fn get_account_info(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn send_transaction(&self, signed_tx: &str) -> Result<String, SolanaError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub async fn confirm_transaction(&self, signature: &str) -> Result<bool, SolanaError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub async fn request_airdrop(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BalanceResult` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | struct BalanceResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockhashResult` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | struct BlockhashResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockhashValue` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:247:8
[INFO] [stdout]     |
[INFO] [stdout] 247 | struct BlockhashValue {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccountInfoResult` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | struct AccountInfoResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccountInfoValue` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:296:8
[INFO] [stdout]     |
[INFO] [stdout] 296 | struct AccountInfoValue {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SignatureStatusResult` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:303:8
[INFO] [stdout]     |
[INFO] [stdout] 303 | struct SignatureStatusResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SignatureStatus` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 308 | struct SignatureStatus {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pubkey` is never read
[INFO] [stdout]    --> src/solana_rpc/solana.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub struct TokenAccount {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 316 |     pub pubkey: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TokenAccount` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccountInfo` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:322:12
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct AccountInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Warning` is never constructed
[INFO] [stdout]    --> src/state.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub enum ToastVariant {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 124 |     Warning,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ToastVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove` is never used
[INFO] [stdout]    --> src/state.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl ToastState {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn remove(&mut self, id: u32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UploadState` is never constructed
[INFO] [stdout]    --> src/state.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub struct UploadState {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Complete` and `Failed` are never constructed
[INFO] [stdout]    --> src/state.rs:237:5
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub enum UploadStatus {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 237 |     Complete,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 238 |     Failed,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UploadStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `bs58`
[INFO] [stderr]  --> Cargo.toml:8:15
[INFO] [stderr]   |
[INFO] [stderr] 8 | [dependencies.bs58]
[INFO] [stderr]   |               ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `bs58`
[INFO] [stderr] warning: unused dependency `chrono`
[INFO] [stderr]   --> Cargo.toml:11:15
[INFO] [stderr]    |
[INFO] [stderr] 11 | [dependencies.chrono]
[INFO] [stderr]    |               ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `chrono`
[INFO] [stderr] warning: unused dependency `futures`
[INFO] [stderr]   --> Cargo.toml:25:15
[INFO] [stderr]    |
[INFO] [stderr] 25 | [dependencies.futures]
[INFO] [stderr]    |               ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `futures`
[INFO] [stderr] warning: unused dependency `gloo-storage`
[INFO] [stderr]   --> Cargo.toml:31:15
[INFO] [stderr]    |
[INFO] [stderr] 31 | [dependencies.gloo-storage]
[INFO] [stderr]    |               ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `gloo-storage`
[INFO] [stderr] warning: unused dependency `uuid`
[INFO] [stderr]   --> Cargo.toml:54:15
[INFO] [stderr]    |
[INFO] [stderr] 54 | [dependencies.uuid]
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `uuid`
[INFO] [stderr] warning: `solforge` (manifest) generated 5 warnings
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 2m 12s
[INFO] running `Command { std: "docker" "inspect" "d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162", 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" "d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling solforge v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `JsCast` and `closure::Closure`
[INFO] [stdout]  --> src/features/mint/form.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use wasm_bindgen::{closure::Closure, JsCast};
[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 imports: `FileReader` and `HtmlInputElement`
[INFO] [stdout]  --> src/features/mint/form.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use web_sys::{FileReader, HtmlInputElement};
[INFO] [stdout]   |               ^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/features/storage/ipfs.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IpfsClient` and `IpfsProvider`
[INFO] [stdout]  --> src/features/storage/mod.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use ipfs::{IpfsClient, IpfsProvider};
[INFO] [stdout]   |                ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `UploadResult`, `upload_image`, and `upload_metadata`
[INFO] [stdout]  --> src/features/storage/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use upload::{upload_image, upload_metadata, UploadResult};
[INFO] [stdout]   |                  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `wasm_bindgen::JsCast`
[INFO] [stdout]    --> src/features/wallet/connect.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     use wasm_bindgen::JsCast;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::state::WalletState`
[INFO] [stdout]  --> src/features/wallet/provider.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::state::WalletState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `provider::WalletProvider`
[INFO] [stdout]  --> src/features/wallet/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use provider::WalletProvider;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `draft_symbol`
[INFO] [stdout]   --> src/features/mint/page.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let draft_symbol = draft.read().symbol.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_draft_symbol`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uri`
[INFO] [stdout]    --> src/features/mint/page.rs:196:41
[INFO] [stdout]     |
[INFO] [stdout] 196 | ...                   if let Some(uri) = metadata_uri.read().as_ref() {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_uri`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_INPUT_LENGTH` is never used
[INFO] [stdout]  --> src/main.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MAX_INPUT_LENGTH: usize = 4096;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_NFT_NAME_LENGTH` is never used
[INFO] [stdout]   --> src/main.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const MAX_NFT_NAME_LENGTH: usize = 32;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_NFT_SYMBOL_LENGTH` is never used
[INFO] [stdout]   --> src/main.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const MAX_NFT_SYMBOL_LENGTH: usize = 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_URI_LENGTH` is never used
[INFO] [stdout]   --> src/main.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const MAX_URI_LENGTH: usize = 200;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ROYALTY_BPS` is never used
[INFO] [stdout]   --> src/main.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const MAX_ROYALTY_BPS: u16 = 10_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALLOWED_NETWORKS` is never used
[INFO] [stdout]   --> src/main.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const ALLOWED_NETWORKS: &[&str] = &["devnet", "testnet", "mainnet-beta"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SOLANA_PUBKEY_PATTERN` is never used
[INFO] [stdout]   --> src/main.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const SOLANA_PUBKEY_PATTERN: &str = r"^[1-9A-HJ-NP-Za-km-z]{32,44}$";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sanitize_error` is never used
[INFO] [stdout]   --> src/main.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn sanitize_error(err: &dyn std::fmt::Display) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_input` is never used
[INFO] [stdout]   --> src/main.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn validate_input(value: &str, max_len: usize, field: &str) -> Result<String, String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_network` is never used
[INFO] [stdout]   --> src/main.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn validate_network(network: &str) -> Result<String, String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Connect` is never constructed
[INFO] [stdout]   --> src/components/common.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum ButtonVariant {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     Connect,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ButtonVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `IpfsError` is never used
[INFO] [stdout]  --> src/features/storage/ipfs.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum IpfsError {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `IpfsProvider` is never used
[INFO] [stdout]   --> src/features/storage/ipfs.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum IpfsProvider {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `gateway_url` are never used
[INFO] [stdout]   --> src/features/storage/ipfs.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl IpfsProvider {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 24 |     pub fn name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn gateway_url(&self, cid: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpfsClient` is never constructed
[INFO] [stdout]   --> src/features/storage/ipfs.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct IpfsClient {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_api_key`, `upload_bytes`, and `upload_json` are never used
[INFO] [stdout]   --> src/features/storage/ipfs.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl IpfsClient {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 46 |     pub fn new(provider: IpfsProvider) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn with_api_key(mut self, key: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub async fn upload_bytes(
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub async fn upload_json<T: Serialize>(&self, _metadata: &T) -> Result<String, IpfsError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UploadResult` is never constructed
[INFO] [stdout]  --> src/features/storage/upload.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct UploadResult {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NftMetadata` is never constructed
[INFO] [stdout]   --> src/features/storage/upload.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct NftMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetadataAttribute` is never constructed
[INFO] [stdout]   --> src/features/storage/upload.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct MetadataAttribute {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetadataProperties` is never constructed
[INFO] [stdout]   --> src/features/storage/upload.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct MetadataProperties {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetadataFile` is never constructed
[INFO] [stdout]   --> src/features/storage/upload.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct MetadataFile {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetadataCreator` is never constructed
[INFO] [stdout]   --> src/features/storage/upload.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct MetadataCreator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload_image` is never used
[INFO] [stdout]   --> src/features/storage/upload.rs:56:14
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub async fn upload_image(
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload_metadata` is never used
[INFO] [stdout]   --> src/features/storage/upload.rs:79:14
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub async fn upload_metadata(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload_nft` is never used
[INFO] [stdout]    --> src/features/storage/upload.rs:121:14
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub async fn upload_nft(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_message` is never used
[INFO] [stdout]    --> src/features/wallet/provider.rs:152:14
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub async fn sign_message(provider: &WalletProvider, message: &[u8]) -> Result<Vec<u8>, String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TransactionFailed` is never constructed
[INFO] [stdout]   --> src/solana_rpc/solana.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum SolanaError {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TransactionFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SolanaError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/solana_rpc/solana.rs:27:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl SolanaClient {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  27 |     pub fn devnet() -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub fn mainnet() -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub async fn get_balance(&self, address: &str) -> Result<u64, SolanaError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub async fn get_latest_blockhash(&self) -> Result<String, SolanaError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub async fn get_account_info(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn send_transaction(&self, signed_tx: &str) -> Result<String, SolanaError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub async fn confirm_transaction(&self, signature: &str) -> Result<bool, SolanaError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub async fn request_airdrop(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BalanceResult` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | struct BalanceResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockhashResult` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | struct BlockhashResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockhashValue` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:247:8
[INFO] [stdout]     |
[INFO] [stdout] 247 | struct BlockhashValue {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccountInfoResult` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | struct AccountInfoResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccountInfoValue` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:296:8
[INFO] [stdout]     |
[INFO] [stdout] 296 | struct AccountInfoValue {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SignatureStatusResult` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:303:8
[INFO] [stdout]     |
[INFO] [stdout] 303 | struct SignatureStatusResult {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SignatureStatus` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 308 | struct SignatureStatus {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pubkey` is never read
[INFO] [stdout]    --> src/solana_rpc/solana.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub struct TokenAccount {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 316 |     pub pubkey: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TokenAccount` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccountInfo` is never constructed
[INFO] [stdout]    --> src/solana_rpc/solana.rs:322:12
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub struct AccountInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Warning` is never constructed
[INFO] [stdout]    --> src/state.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub enum ToastVariant {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 124 |     Warning,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ToastVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove` is never used
[INFO] [stdout]    --> src/state.rs:151:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl ToastState {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn remove(&mut self, id: u32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UploadState` is never constructed
[INFO] [stdout]    --> src/state.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub struct UploadState {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Complete` and `Failed` are never constructed
[INFO] [stdout]    --> src/state.rs:237:5
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub enum UploadStatus {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 237 |     Complete,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 238 |     Failed,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UploadStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `bs58`
[INFO] [stderr]  --> Cargo.toml:8:15
[INFO] [stderr]   |
[INFO] [stderr] 8 | [dependencies.bs58]
[INFO] [stderr]   |               ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `bs58`
[INFO] [stderr] warning: unused dependency `chrono`
[INFO] [stderr]   --> Cargo.toml:11:15
[INFO] [stderr]    |
[INFO] [stderr] 11 | [dependencies.chrono]
[INFO] [stderr]    |               ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `chrono`
[INFO] [stderr] warning: unused dependency `futures`
[INFO] [stderr]   --> Cargo.toml:25:15
[INFO] [stderr]    |
[INFO] [stderr] 25 | [dependencies.futures]
[INFO] [stderr]    |               ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `futures`
[INFO] [stderr] warning: unused dependency `gloo-storage`
[INFO] [stderr]   --> Cargo.toml:31:15
[INFO] [stderr]    |
[INFO] [stderr] 31 | [dependencies.gloo-storage]
[INFO] [stderr]    |               ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `gloo-storage`
[INFO] [stderr] warning: unused dependency `uuid`
[INFO] [stderr]   --> Cargo.toml:54:15
[INFO] [stderr]    |
[INFO] [stderr] 54 | [dependencies.uuid]
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `uuid`
[INFO] [stderr] warning: `solforge` (manifest) generated 5 warnings
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 3.89s
[INFO] running `Command { std: "docker" "inspect" "d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162", 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" "d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `JsCast` and `closure::Closure`
[INFO] [stderr]  --> src/features/mint/form.rs:2:20
[INFO] [stderr]   |
[INFO] [stderr] 2 | use wasm_bindgen::{closure::Closure, JsCast};
[INFO] [stderr]   |                    ^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `FileReader` and `HtmlInputElement`
[INFO] [stderr]  --> src/features/mint/form.rs:3:15
[INFO] [stderr]   |
[INFO] [stderr] 3 | use web_sys::{FileReader, HtmlInputElement};
[INFO] [stderr]   |               ^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Deserialize`
[INFO] [stderr]  --> src/features/storage/ipfs.rs:1:13
[INFO] [stderr]   |
[INFO] [stderr] 1 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |             ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `IpfsClient` and `IpfsProvider`
[INFO] [stderr]  --> src/features/storage/mod.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub use ipfs::{IpfsClient, IpfsProvider};
[INFO] [stderr]   |                ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `UploadResult`, `upload_image`, and `upload_metadata`
[INFO] [stderr]  --> src/features/storage/mod.rs:5:18
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub use upload::{upload_image, upload_metadata, UploadResult};
[INFO] [stderr]   |                  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `wasm_bindgen::JsCast`
[INFO] [stderr]    --> src/features/wallet/connect.rs:229:9
[INFO] [stderr]     |
[INFO] [stderr] 229 |     use wasm_bindgen::JsCast;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::state::WalletState`
[INFO] [stderr]  --> src/features/wallet/provider.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::state::WalletState;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `provider::WalletProvider`
[INFO] [stderr]  --> src/features/wallet/mod.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub use provider::WalletProvider;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `draft_symbol`
[INFO] [stderr]   --> src/features/mint/page.rs:61:9
[INFO] [stderr]    |
[INFO] [stderr] 61 |     let draft_symbol = draft.read().symbol.clone();
[INFO] [stderr]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_draft_symbol`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `uri`
[INFO] [stderr]    --> src/features/mint/page.rs:196:41
[INFO] [stderr]     |
[INFO] [stderr] 196 | ...                   if let Some(uri) = metadata_uri.read().as_ref() {
[INFO] [stderr]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_uri`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_INPUT_LENGTH` is never used
[INFO] [stderr]  --> src/main.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | const MAX_INPUT_LENGTH: usize = 4096;
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_NFT_NAME_LENGTH` is never used
[INFO] [stderr]   --> src/main.rs:11:7
[INFO] [stderr]    |
[INFO] [stderr] 11 | const MAX_NFT_NAME_LENGTH: usize = 32;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_NFT_SYMBOL_LENGTH` is never used
[INFO] [stderr]   --> src/main.rs:14:7
[INFO] [stderr]    |
[INFO] [stderr] 14 | const MAX_NFT_SYMBOL_LENGTH: usize = 10;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_URI_LENGTH` is never used
[INFO] [stderr]   --> src/main.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | const MAX_URI_LENGTH: usize = 200;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_ROYALTY_BPS` is never used
[INFO] [stderr]   --> src/main.rs:20:7
[INFO] [stderr]    |
[INFO] [stderr] 20 | const MAX_ROYALTY_BPS: u16 = 10_000;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ALLOWED_NETWORKS` is never used
[INFO] [stderr]   --> src/main.rs:23:7
[INFO] [stderr]    |
[INFO] [stderr] 23 | const ALLOWED_NETWORKS: &[&str] = &["devnet", "testnet", "mainnet-beta"];
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SOLANA_PUBKEY_PATTERN` is never used
[INFO] [stderr]   --> src/main.rs:26:7
[INFO] [stderr]    |
[INFO] [stderr] 26 | const SOLANA_PUBKEY_PATTERN: &str = r"^[1-9A-HJ-NP-Za-km-z]{32,44}$";
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sanitize_error` is never used
[INFO] [stderr]   --> src/main.rs:29:4
[INFO] [stderr]    |
[INFO] [stderr] 29 | fn sanitize_error(err: &dyn std::fmt::Display) -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `validate_input` is never used
[INFO] [stderr]   --> src/main.rs:49:4
[INFO] [stderr]    |
[INFO] [stderr] 49 | fn validate_input(value: &str, max_len: usize, field: &str) -> Result<String, String> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `validate_network` is never used
[INFO] [stderr]   --> src/main.rs:61:4
[INFO] [stderr]    |
[INFO] [stderr] 61 | fn validate_network(network: &str) -> Result<String, String> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Connect` is never constructed
[INFO] [stderr]   --> src/components/common.rs:40:5
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub enum ButtonVariant {
[INFO] [stderr]    |          ------------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 40 |     Connect,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ButtonVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: enum `IpfsError` is never used
[INFO] [stderr]  --> src/features/storage/ipfs.rs:5:10
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub enum IpfsError {
[INFO] [stderr]   |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `IpfsProvider` is never used
[INFO] [stderr]   --> src/features/storage/ipfs.rs:17:10
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub enum IpfsProvider {
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `name` and `gateway_url` are never used
[INFO] [stderr]   --> src/features/storage/ipfs.rs:24:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl IpfsProvider {
[INFO] [stderr]    | ----------------- methods in this implementation
[INFO] [stderr] 24 |     pub fn name(&self) -> &'static str {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     pub fn gateway_url(&self, cid: &str) -> String {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `IpfsClient` is never constructed
[INFO] [stderr]   --> src/features/storage/ipfs.rs:40:12
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub struct IpfsClient {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `with_api_key`, `upload_bytes`, and `upload_json` are never used
[INFO] [stderr]   --> src/features/storage/ipfs.rs:46:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | impl IpfsClient {
[INFO] [stderr]    | --------------- associated items in this implementation
[INFO] [stderr] 46 |     pub fn new(provider: IpfsProvider) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 53 |     pub fn with_api_key(mut self, key: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 |     pub async fn upload_bytes(
[INFO] [stderr]    |                  ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 72 |     pub async fn upload_json<T: Serialize>(&self, _metadata: &T) -> Result<String, IpfsError> {
[INFO] [stderr]    |                  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `UploadResult` is never constructed
[INFO] [stderr]  --> src/features/storage/upload.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct UploadResult {
[INFO] [stderr]   |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NftMetadata` is never constructed
[INFO] [stderr]   --> src/features/storage/upload.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct NftMetadata {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MetadataAttribute` is never constructed
[INFO] [stderr]   --> src/features/storage/upload.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct MetadataAttribute {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MetadataProperties` is never constructed
[INFO] [stderr]   --> src/features/storage/upload.rs:36:12
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct MetadataProperties {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MetadataFile` is never constructed
[INFO] [stderr]   --> src/features/storage/upload.rs:43:12
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub struct MetadataFile {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MetadataCreator` is never constructed
[INFO] [stderr]   --> src/features/storage/upload.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub struct MetadataCreator {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `upload_image` is never used
[INFO] [stderr]   --> src/features/storage/upload.rs:56:14
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub async fn upload_image(
[INFO] [stderr]    |              ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `upload_metadata` is never used
[INFO] [stderr]   --> src/features/storage/upload.rs:79:14
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub async fn upload_metadata(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `upload_nft` is never used
[INFO] [stderr]    --> src/features/storage/upload.rs:121:14
[INFO] [stderr]     |
[INFO] [stderr] 121 | pub async fn upload_nft(
[INFO] [stderr]     |              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sign_message` is never used
[INFO] [stderr]    --> src/features/wallet/provider.rs:152:14
[INFO] [stderr]     |
[INFO] [stderr] 152 | pub async fn sign_message(provider: &WalletProvider, message: &[u8]) -> Result<Vec<u8>, String> {
[INFO] [stderr]     |              ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `TransactionFailed` is never constructed
[INFO] [stderr]   --> src/solana_rpc/solana.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr]  6 | pub enum SolanaError {
[INFO] [stderr]    |          ----------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 12 |     TransactionFailed(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SolanaError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/solana_rpc/solana.rs:27:12
[INFO] [stderr]     |
[INFO] [stderr]  20 | impl SolanaClient {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  27 |     pub fn devnet() -> Self {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  31 |     pub fn mainnet() -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  36 |     pub async fn get_balance(&self, address: &str) -> Result<u64, SolanaError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  50 |     pub async fn get_latest_blockhash(&self) -> Result<String, SolanaError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 105 |     pub async fn get_account_info(
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 131 |     pub async fn send_transaction(&self, signed_tx: &str) -> Result<String, SolanaError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub async fn confirm_transaction(&self, signature: &str) -> Result<bool, SolanaError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     pub async fn request_airdrop(
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BalanceResult` is never constructed
[INFO] [stderr]    --> src/solana_rpc/solana.rs:237:8
[INFO] [stderr]     |
[INFO] [stderr] 237 | struct BalanceResult {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BlockhashResult` is never constructed
[INFO] [stderr]    --> src/solana_rpc/solana.rs:242:8
[INFO] [stderr]     |
[INFO] [stderr] 242 | struct BlockhashResult {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BlockhashValue` is never constructed
[INFO] [stderr]    --> src/solana_rpc/solana.rs:247:8
[INFO] [stderr]     |
[INFO] [stderr] 247 | struct BlockhashValue {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AccountInfoResult` is never constructed
[INFO] [stderr]    --> src/solana_rpc/solana.rs:291:8
[INFO] [stderr]     |
[INFO] [stderr] 291 | struct AccountInfoResult {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AccountInfoValue` is never constructed
[INFO] [stderr]    --> src/solana_rpc/solana.rs:296:8
[INFO] [stderr]     |
[INFO] [stderr] 296 | struct AccountInfoValue {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SignatureStatusResult` is never constructed
[INFO] [stderr]    --> src/solana_rpc/solana.rs:303:8
[INFO] [stderr]     |
[INFO] [stderr] 303 | struct SignatureStatusResult {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SignatureStatus` is never constructed
[INFO] [stderr]    --> src/solana_rpc/solana.rs:308:8
[INFO] [stderr]     |
[INFO] [stderr] 308 | struct SignatureStatus {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `pubkey` is never read
[INFO] [stderr]    --> src/solana_rpc/solana.rs:316:9
[INFO] [stderr]     |
[INFO] [stderr] 315 | pub struct TokenAccount {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] 316 |     pub pubkey: String,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `TokenAccount` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AccountInfo` is never constructed
[INFO] [stderr]    --> src/solana_rpc/solana.rs:322:12
[INFO] [stderr]     |
[INFO] [stderr] 322 | pub struct AccountInfo {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Warning` is never constructed
[INFO] [stderr]    --> src/state.rs:124:5
[INFO] [stderr]     |
[INFO] [stderr] 119 | pub enum ToastVariant {
[INFO] [stderr]     |          ------------ variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 124 |     Warning,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ToastVariant` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `remove` is never used
[INFO] [stderr]    --> src/state.rs:151:12
[INFO] [stderr]     |
[INFO] [stderr] 127 | impl ToastState {
[INFO] [stderr]     | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 151 |     pub fn remove(&mut self, id: u32) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `UploadState` is never constructed
[INFO] [stderr]    --> src/state.rs:225:12
[INFO] [stderr]     |
[INFO] [stderr] 225 | pub struct UploadState {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Complete` and `Failed` are never constructed
[INFO] [stderr]    --> src/state.rs:237:5
[INFO] [stderr]     |
[INFO] [stderr] 233 | pub enum UploadStatus {
[INFO] [stderr]     |          ------------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 237 |     Complete,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] 238 |     Failed,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `UploadStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `solforge` (bin "solforge" test) generated 51 warnings (run `cargo fix --bin "solforge" -p solforge --tests` to apply 10 suggestions)
[INFO] [stderr] warning: unused dependency `bs58`
[INFO] [stderr]  --> Cargo.toml:8:15
[INFO] [stderr]   |
[INFO] [stderr] 8 | [dependencies.bs58]
[INFO] [stderr]   |               ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `bs58`
[INFO] [stderr] warning: unused dependency `chrono`
[INFO] [stderr]   --> Cargo.toml:11:15
[INFO] [stderr]    |
[INFO] [stderr] 11 | [dependencies.chrono]
[INFO] [stderr]    |               ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `chrono`
[INFO] [stderr] warning: unused dependency `futures`
[INFO] [stderr]   --> Cargo.toml:25:15
[INFO] [stderr]    |
[INFO] [stderr] 25 | [dependencies.futures]
[INFO] [stderr]    |               ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `futures`
[INFO] [stderr] warning: unused dependency `gloo-storage`
[INFO] [stderr]   --> Cargo.toml:31:15
[INFO] [stderr]    |
[INFO] [stderr] 31 | [dependencies.gloo-storage]
[INFO] [stderr]    |               ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `gloo-storage`
[INFO] [stderr] warning: unused dependency `uuid`
[INFO] [stderr]   --> Cargo.toml:54:15
[INFO] [stderr]    |
[INFO] [stderr] 54 | [dependencies.uuid]
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `uuid`
[INFO] [stderr] warning: `solforge` (manifest) generated 5 warnings
[INFO] [stderr]     Finished `test` profile [optimized + debuginfo] target(s) in 0.31s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/solforge/770b761f6878b193/out/solforge-770b761f6878b193)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162", kill_on_drop: false }`
[INFO] [stdout] d69712f45a3628907200b9dd26cbaa1548c43a9858e5588b10131bb3b90c4162
