diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1ca4411c..97eac86b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.75.0 + toolchain: 1.78.0 components: rustfmt, clippy override: true - name: rustfmt @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.76.0 + toolchain: 1.78.0 components: rustfmt, clippy override: true - name: rustfmt diff --git a/gui/src/app/state/label.rs b/gui/src/app/state/label.rs index 0668f1d3..e451c621 100644 --- a/gui/src/app/state/label.rs +++ b/gui/src/app/state/label.rs @@ -32,7 +32,7 @@ impl LabelsEdited { for item in items { if let Some(label) = self.0.get_mut(&item) { label.valid = valid; - label.value = value.clone(); + label.value.clone_from(&value); } else { self.0.insert( item, diff --git a/gui/src/app/state/psbt.rs b/gui/src/app/state/psbt.rs index 50363b31..d4ddef03 100644 --- a/gui/src/app/state/psbt.rs +++ b/gui/src/app/state/psbt.rs @@ -35,9 +35,6 @@ use crate::{ }; pub trait Action { - fn warning(&self) -> Option<&Error> { - None - } fn load(&self, _daemon: Arc) -> Command { Command::none() } @@ -432,10 +429,6 @@ impl SignAction { } impl Action for SignAction { - fn warning(&self) -> Option<&Error> { - self.error.as_ref() - } - fn subscription(&self) -> Subscription { self.hws.refresh().map(Message::HardwareWallets) } diff --git a/gui/src/app/state/settings/wallet.rs b/gui/src/app/state/settings/wallet.rs index f736267c..3f2710d2 100644 --- a/gui/src/app/state/settings/wallet.rs +++ b/gui/src/app/state/settings/wallet.rs @@ -62,7 +62,7 @@ impl WalletSettingsState { .collect(); for fingerprint in wallet.descriptor_keys().into_iter() { - if wallet.keys_aliases.get(&fingerprint).is_none() { + if !wallet.keys_aliases.contains_key(&fingerprint) { keys_aliases.push((fingerprint, form::Value::default())); } } diff --git a/gui/src/app/state/spend/step.rs b/gui/src/app/state/spend/step.rs index 4453b54f..17aeb8f7 100644 --- a/gui/src/app/state/spend/step.rs +++ b/gui/src/app/state/spend/step.rs @@ -586,7 +586,7 @@ impl Step for DefineSpend { .cloned() .collect(); if let Some((psbt, _)) = &self.generated { - draft.labels = self.coins_labels.clone(); + draft.labels.clone_from(&self.coins_labels); for (i, output) in psbt.unsigned_tx.output.iter().enumerate() { if let Some(label) = self .recipients @@ -612,11 +612,11 @@ impl Step for DefineSpend { } } } - draft.recipients = self.recipients.clone(); + draft.recipients.clone_from(&self.recipients); if self.recipients.len() > 1 { draft.batch_label = Some(self.batch_label.value.clone()); } - draft.generated = self.generated.clone(); + draft.generated.clone_from(&self.generated); } fn view<'a>(&'a self, cache: &'a Cache) -> Element<'a, view::Message> { @@ -755,7 +755,7 @@ impl Step for SaveSpend { &self.curve, draft.network, ); - tx.labels = draft.labels.clone(); + tx.labels.clone_from(&draft.labels); if tx.is_batch() { if let Some(label) = &draft.batch_label { diff --git a/gui/src/hw.rs b/gui/src/hw.rs index 15127ac9..102bd558 100644 --- a/gui/src/hw.rs +++ b/gui/src/hw.rs @@ -175,7 +175,7 @@ impl HardwareWallets { } pub fn with_wallet(mut self, wallet: Arc) -> Self { - self.aliases = wallet.keys_aliases.clone(); + self.aliases.clone_from(&wallet.keys_aliases); self.wallet = Some(wallet); self } diff --git a/gui/src/installer/step/bitcoind.rs b/gui/src/installer/step/bitcoind.rs index 1fe2c13d..1dc1cf3b 100644 --- a/gui/src/installer/step/bitcoind.rs +++ b/gui/src/installer/step/bitcoind.rs @@ -770,9 +770,10 @@ impl Step for InternalBitcoindStep { fn apply(&mut self, ctx: &mut Context) -> bool { // Any errors have been handled as part of `message::InternalBitcoindMsg::Start` if let Some(Ok(_)) = self.started { - ctx.bitcoind_config = self.bitcoind_config.clone(); - ctx.internal_bitcoind_config = self.internal_bitcoind_config.clone(); - ctx.internal_bitcoind = self.internal_bitcoind.clone(); + ctx.bitcoind_config.clone_from(&self.bitcoind_config); + ctx.internal_bitcoind_config + .clone_from(&self.internal_bitcoind_config); + ctx.internal_bitcoind.clone_from(&self.internal_bitcoind); self.error = None; return true; } diff --git a/gui/src/installer/step/descriptor.rs b/gui/src/installer/step/descriptor.rs index d91f6303..caa1613b 100644 --- a/gui/src/installer/step/descriptor.rs +++ b/gui/src/installer/step/descriptor.rs @@ -984,7 +984,7 @@ impl DescriptorEditModal for EditXpubModal { Some((key.fingerprint, key.device_kind, key.device_version.clone())); self.form_xpub.value = key.key.to_string(); self.form_xpub.valid = true; - self.form_name.value = key.name.clone(); + self.form_name.value.clone_from(&key.name); self.form_name.valid = true; } } @@ -1394,7 +1394,7 @@ impl RegisterDescriptor { impl Step for RegisterDescriptor { fn load_context(&mut self, ctx: &Context) { - self.descriptor = ctx.descriptor.clone(); + self.descriptor.clone_from(&ctx.descriptor); let mut map = HashMap::new(); for key in ctx.keys.iter().filter(|k| !k.name.is_empty()) { map.insert(key.master_fingerprint, key.name.clone()); @@ -1527,7 +1527,7 @@ impl Step for BackupDescriptor { } fn load_context(&mut self, ctx: &Context) { if self.descriptor != ctx.descriptor { - self.descriptor = ctx.descriptor.clone(); + self.descriptor.clone_from(&ctx.descriptor); self.done = false; } } diff --git a/gui/src/installer/step/mod.rs b/gui/src/installer/step/mod.rs index 29365c08..34024a20 100644 --- a/gui/src/installer/step/mod.rs +++ b/gui/src/installer/step/mod.rs @@ -91,7 +91,7 @@ impl Default for Final { impl Step for Final { fn load_context(&mut self, ctx: &Context) { - self.internal_bitcoind = ctx.internal_bitcoind.clone(); + self.internal_bitcoind.clone_from(&ctx.internal_bitcoind); } fn load(&self) -> Command { if !self.generating && self.config_path.is_none() { diff --git a/gui/src/main.rs b/gui/src/main.rs index f9fe3b09..ba344fc5 100644 --- a/gui/src/main.rs +++ b/gui/src/main.rs @@ -1,7 +1,5 @@ #![windows_subsystem = "windows"] -use std::{error::Error, io::Write, path::PathBuf, process, str::FromStr}; - use iced::{ event::{self, Event}, executor, keyboard, @@ -9,6 +7,7 @@ use iced::{ window::settings::PlatformSpecific, Application, Command, Settings, Size, Subscription, }; +use std::{error::Error, io::Write, path::PathBuf, process, str::FromStr}; use tracing::{error, info}; use tracing_subscriber::filter::LevelFilter; extern crate serde; diff --git a/gui/ui/src/component/toast.rs b/gui/ui/src/component/toast.rs index 7da518cf..26feae4f 100644 --- a/gui/ui/src/component/toast.rs +++ b/gui/ui/src/component/toast.rs @@ -52,7 +52,7 @@ where } fn tag(&self) -> iced::advanced::widget::tree::Tag { - struct Marker(Vec); + struct Marker(()); iced::advanced::widget::tree::Tag::of::() } diff --git a/src/commands/mod.rs b/src/commands/mod.rs index 605d4196..714cd1b3 100644 --- a/src/commands/mod.rs +++ b/src/commands/mod.rs @@ -608,7 +608,7 @@ impl DaemonControl { let coins = db_conn.coins_by_outpoints(&outpoints); if coins.len() != outpoints.len() { for op in outpoints { - if coins.get(&op).is_none() { + if !coins.contains_key(&op) { return Err(CommandError::UnknownOutpoint(op)); } } diff --git a/src/config.rs b/src/config.rs index 08a98923..c0f24ac1 100644 --- a/src/config.rs +++ b/src/config.rs @@ -158,10 +158,7 @@ pub struct Config { impl Config { pub fn data_dir(&self) -> Option { - self.data_dir - .as_ref() - .map(Clone::clone) - .or_else(config_folder_path) + self.data_dir.clone().or_else(config_folder_path) } } diff --git a/src/descriptors/mod.rs b/src/descriptors/mod.rs index 3cefe9f5..7ff6ac30 100644 --- a/src/descriptors/mod.rs +++ b/src/descriptors/mod.rs @@ -1116,7 +1116,7 @@ mod tests { // - Push a signature for the primary/recovery key // NOTE: The specific value is asserted because this was tested against a regtest // transaction. - let stack = vec![vec![0; 65], vec![0; 72]]; + let stack = [vec![0; 65], vec![0; 72]]; let witness_size = bitcoin::VarInt(stack.len() as u64).size() + stack .iter() @@ -1126,7 +1126,7 @@ mod tests { desc.spender_input_size(true), 32 + 4 + 1 + 4 + wu_to_vb(witness_size), ); - let stack = vec![vec![0; 65], vec![0; 0], vec![0; 33], vec![0; 72]]; + let stack = [vec![0; 65], vec![0; 0], vec![0; 33], vec![0; 72]]; let witness_size = bitcoin::VarInt(stack.len() as u64).size() + stack .iter() diff --git a/src/jsonrpc/api.rs b/src/jsonrpc/api.rs index 8bc7fcab..5835e2e9 100644 --- a/src/jsonrpc/api.rs +++ b/src/jsonrpc/api.rs @@ -156,7 +156,7 @@ fn list_coins(control: &DaemonControl, params: Option) -> Result