Skip to content

Commit

Permalink
Hookup mint name
Browse files Browse the repository at this point in the history
  • Loading branch information
benthecarman committed Jan 29, 2025
1 parent 4a92038 commit 2ab3ddd
Show file tree
Hide file tree
Showing 9 changed files with 40 additions and 8 deletions.
1 change: 1 addition & 0 deletions harbor-client/src/db_models/lightning_payment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ impl From<LightningPayment> for TransactionItem {
amount: payment.amount().sats_round_down(),
txid: None,
direction: TransactionDirection::Outgoing,
federation_id: payment.fedimint_id(),
timestamp: payment.created_at.and_utc().timestamp() as u64,
}
}
Expand Down
1 change: 1 addition & 0 deletions harbor-client/src/db_models/lightning_receive.rs
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ impl From<LightningReceive> for TransactionItem {
amount: payment.amount().sats_round_down(),
txid: None,
direction: TransactionDirection::Incoming,
federation_id: payment.fedimint_id(),
timestamp: payment.created_at.and_utc().timestamp() as u64,
}
}
Expand Down
12 changes: 12 additions & 0 deletions harbor-client/src/db_models/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,18 @@ pub struct FederationItem {
pub module_kinds: Option<Vec<ModuleKind>>,
}

impl FederationItem {
pub fn unknown(id: FederationId) -> Self {
Self {
id,
name: "Unknown".to_string(),
balance: 0,
guardians: None,
module_kinds: None,
}
}
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub enum PaymentStatus {
/// Payment is in flight or has not been received yet
Expand Down
4 changes: 3 additions & 1 deletion harbor-client/src/db_models/onchain_payment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,10 @@ impl From<OnChainPayment> for TransactionItem {
amount: payment.amount_sats as u64,
txid: payment
.txid
.map(|t| Txid::from_str(&t).expect("invalid txid")),
.as_ref()
.map(|t| Txid::from_str(t).expect("invalid txid")),
direction: TransactionDirection::Outgoing,
federation_id: payment.fedimint_id(),
timestamp: payment.created_at.and_utc().timestamp() as u64,
}
}
Expand Down
4 changes: 3 additions & 1 deletion harbor-client/src/db_models/onchain_receive.rs
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,10 @@ impl From<OnChainReceive> for TransactionItem {
amount: payment.amount_sats.unwrap_or(0) as u64, // todo handle this better
txid: payment
.txid
.map(|t| Txid::from_str(&t).expect("invalid txid")),
.as_ref()
.map(|t| Txid::from_str(t).expect("invalid txid")),
direction: TransactionDirection::Incoming,
federation_id: payment.fedimint_id(),
timestamp: payment.created_at.and_utc().timestamp() as u64,
}
}
Expand Down
4 changes: 4 additions & 0 deletions harbor-client/src/db_models/transaction_item.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use bitcoin::hashes::Hash;
use bitcoin::Txid;
use fedimint_core::config::FederationId;

#[derive(Debug, Clone, Copy, PartialEq)]
pub enum TransactionItemKind {
Expand All @@ -19,6 +20,7 @@ pub struct TransactionItem {
pub amount: u64,
pub txid: Option<Txid>,
pub direction: TransactionDirection,
pub federation_id: FederationId,
pub timestamp: u64,
}

Expand All @@ -29,6 +31,7 @@ impl TransactionItem {
amount: 100,
txid: None,
direction: TransactionDirection::Incoming,
federation_id: FederationId::dummy(),
timestamp: 0,
}
}
Expand All @@ -39,6 +42,7 @@ impl TransactionItem {
amount: 100,
txid: Some(Txid::all_zeros()),
direction: TransactionDirection::Outgoing,
federation_id: FederationId::dummy(),
timestamp: 0,
}
}
Expand Down
19 changes: 14 additions & 5 deletions harbor-ui/src/components/transaction_details.rs
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
use super::{format_amount, format_timestamp, light_container_style, subtitle};
use crate::components::{map_icon, text_link, SvgIcon};
use crate::Message;
use bitcoin::Network;
use harbor_client::db_models::transaction_item::{
TransactionDirection, TransactionItem, TransactionItemKind,
};
use harbor_client::db_models::FederationItem;
use iced::widget::{column, container, row, text};
use iced::{Alignment, Element, Length};

use super::{format_amount, format_timestamp, light_container_style, subtitle};

pub fn h_transaction_details(item: &TransactionItem) -> Element<Message> {
pub fn h_transaction_details<'a>(
item: &'a TransactionItem,
federation_list: &'a [FederationItem],
) -> Element<'a, Message> {
let TransactionItem {
kind,
amount,
direction,
timestamp,
federation_id,
txid,
} = item;

Expand All @@ -35,12 +39,17 @@ pub fn h_transaction_details(item: &TransactionItem) -> Element<Message> {
TransactionDirection::Outgoing => "From",
};

// TODO: need mint info in the transaction item
let mint = federation_list
.iter()
.find(|f| f.id == *federation_id)
.cloned()
.unwrap_or(FederationItem::unknown(*federation_id));

let mint_section = column![
text(mint_label).size(16).style(subtitle),
row![
map_icon(SvgIcon::People, 24., 24.),
text("Mint 123").size(24)
text(mint.name.clone()).size(24)
]
.align_y(Alignment::Center)
.spacing(16)
Expand Down
1 change: 1 addition & 0 deletions harbor-ui/src/components/transaction_item.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ pub fn h_transaction_item(item: &TransactionItem, is_selected: bool) -> Element<
amount,
direction,
timestamp,
federation_id: _,
txid,
} = item;
let kind_icon = match kind {
Expand Down
2 changes: 1 addition & 1 deletion harbor-ui/src/routes/history.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ pub fn history(harbor: &HarborWallet) -> Element<Message> {
let content = basic_layout(left_column);

if let Some(selected_tx) = &harbor.selected_transaction {
let details = h_transaction_details(selected_tx);
let details = h_transaction_details(selected_tx, &harbor.federation_list);
Absolute::new(content, Some(details), OverlayPosition::CenterRight).into()
} else {
content
Expand Down

0 comments on commit 2ab3ddd

Please sign in to comment.