diff --git a/crates/notedeck/src/account/accounts.rs b/crates/notedeck/src/account/accounts.rs index 4c3c53c..46002f5 100644 --- a/crates/notedeck/src/account/accounts.rs +++ b/crates/notedeck/src/account/accounts.rs @@ -375,6 +375,7 @@ fn get_acc_from_storage(user_account_serializable: UserAccountSerializable) -> O }) } +#[derive(Clone)] pub struct AccountData { pub(crate) relay: AccountRelayData, pub(crate) muted: AccountMutedData, diff --git a/crates/notedeck/src/account/contacts.rs b/crates/notedeck/src/account/contacts.rs index 0a7136a..a2b57d6 100644 --- a/crates/notedeck/src/account/contacts.rs +++ b/crates/notedeck/src/account/contacts.rs @@ -3,11 +3,13 @@ use std::collections::HashSet; use enostr::Pubkey; use nostrdb::{Filter, Ndb, Note, NoteKey, Subscription, Transaction}; +#[derive(Clone)] pub struct Contacts { pub filter: Filter, pub(super) state: ContactState, } +#[derive(Clone)] pub enum ContactState { Unreceived, Received { diff --git a/crates/notedeck/src/account/mute.rs b/crates/notedeck/src/account/mute.rs index 0e72672..ee62bc5 100644 --- a/crates/notedeck/src/account/mute.rs +++ b/crates/notedeck/src/account/mute.rs @@ -5,6 +5,7 @@ use tracing::{debug, error}; use crate::Muted; +#[derive(Clone)] pub(crate) struct AccountMutedData { pub filter: Filter, pub muted: Arc, diff --git a/crates/notedeck/src/account/relay.rs b/crates/notedeck/src/account/relay.rs index 036bb06..03cb208 100644 --- a/crates/notedeck/src/account/relay.rs +++ b/crates/notedeck/src/account/relay.rs @@ -7,6 +7,7 @@ use url::Url; use crate::{AccountData, RelaySpec}; +#[derive(Clone)] pub(crate) struct AccountRelayData { pub filter: Filter, pub local: BTreeSet, // used locally but not advertised diff --git a/crates/notedeck/src/user_account.rs b/crates/notedeck/src/user_account.rs index 9192e55..031b1da 100644 --- a/crates/notedeck/src/user_account.rs +++ b/crates/notedeck/src/user_account.rs @@ -6,6 +6,7 @@ use crate::{ AccountData, IsFollowing, }; +#[derive(Clone)] pub struct UserAccount { pub key: Keypair, pub wallet: Option, diff --git a/crates/notedeck/src/wallet.rs b/crates/notedeck/src/wallet.rs index 4fae062..f16423b 100644 --- a/crates/notedeck/src/wallet.rs +++ b/crates/notedeck/src/wallet.rs @@ -60,6 +60,16 @@ pub struct Wallet { balance: Option>>, } +impl Clone for Wallet { + fn clone(&self) -> Self { + Self { + uri: self.uri.clone(), + wallet: self.wallet.clone(), + balance: None, + } + } +} + #[derive(Clone)] pub struct WalletSerializable { pub uri: String, @@ -236,7 +246,7 @@ fn construct_global_wallet(wallet_handler: &TokenHandler) -> Option { Some(wallet) } -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct ZapWallet { pub wallet: Wallet, pub default_zap: DefaultZapMsats, diff --git a/crates/notedeck/src/zaps/default_zap.rs b/crates/notedeck/src/zaps/default_zap.rs index 77d6385..1740971 100644 --- a/crates/notedeck/src/zaps/default_zap.rs +++ b/crates/notedeck/src/zaps/default_zap.rs @@ -4,7 +4,7 @@ use crate::get_current_wallet; const DEFAULT_ZAP_MSATS: u64 = 10_000; -#[derive(Debug, Default)] +#[derive(Debug, Default, Clone)] pub struct DefaultZapMsats { pub msats: Option, pub pending: PendingDefaultZapState, @@ -83,7 +83,7 @@ impl TokenSerializable for UserZapMsats { } } -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct PendingDefaultZapState { pub amount_sats: String, pub error_message: Option, @@ -110,7 +110,7 @@ fn msats_to_sats_string(msats: u64) -> String { (msats / 1000).to_string() } -#[derive(Debug)] +#[derive(Debug, Clone)] pub enum DefaultZapError { InvalidUserInput, }