Coverage Report

Created: 2024-10-10 10:38

/home/darosior/projects/bdk/crates/chain/src/balance.rs
Line
Count
Source (jump to first uncovered line)
1
use bitcoin::Amount;
2
3
/// Balance, differentiated into various categories.
4
#[derive(Debug, PartialEq, Eq, Clone, Default)]
5
0
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_>
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<bdk_chain::balance::Balance as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting
6
pub struct Balance {
7
    /// All coinbase outputs not yet matured
8
    pub immature: Amount,
9
    /// Unconfirmed UTXOs generated by a wallet tx
10
    pub trusted_pending: Amount,
11
    /// Unconfirmed UTXOs received from an external wallet
12
    pub untrusted_pending: Amount,
13
    /// Confirmed and immediately spendable balance
14
    pub confirmed: Amount,
15
}
16
17
impl Balance {
18
    /// Get sum of trusted_pending and confirmed coins.
19
    ///
20
    /// This is the balance you can spend right now that shouldn't get cancelled via another party
21
    /// double spending it.
22
0
    pub fn trusted_spendable(&self) -> Amount {
23
0
        self.confirmed + self.trusted_pending
24
0
    }
Unexecuted instantiation: <bdk_chain::balance::Balance>::trusted_spendable
Unexecuted instantiation: <bdk_chain::balance::Balance>::trusted_spendable
25
26
    /// Get the whole balance visible to the wallet.
27
3
    pub fn total(&self) -> Amount {
28
3
        self.confirmed + self.trusted_pending + self.untrusted_pending + self.immature
29
3
    }
Unexecuted instantiation: <bdk_chain::balance::Balance>::total
<bdk_chain::balance::Balance>::total
Line
Count
Source
27
3
    pub fn total(&self) -> Amount {
28
3
        self.confirmed + self.trusted_pending + self.untrusted_pending + self.immature
29
3
    }
30
}
31
32
impl core::fmt::Display for Balance {
33
0
    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
34
0
        write!(
35
0
            f,
36
0
            "{{ immature: {}, trusted_pending: {}, untrusted_pending: {}, confirmed: {} }}",
37
0
            self.immature, self.trusted_pending, self.untrusted_pending, self.confirmed
38
0
        )
39
0
    }
Unexecuted instantiation: <bdk_chain::balance::Balance as core::fmt::Display>::fmt
Unexecuted instantiation: <bdk_chain::balance::Balance as core::fmt::Display>::fmt
40
}
41
42
impl core::ops::Add for Balance {
43
    type Output = Self;
44
45
0
    fn add(self, other: Self) -> Self {
46
0
        Self {
47
0
            immature: self.immature + other.immature,
48
0
            trusted_pending: self.trusted_pending + other.trusted_pending,
49
0
            untrusted_pending: self.untrusted_pending + other.untrusted_pending,
50
0
            confirmed: self.confirmed + other.confirmed,
51
0
        }
52
0
    }
Unexecuted instantiation: <bdk_chain::balance::Balance as core::ops::arith::Add>::add
Unexecuted instantiation: <bdk_chain::balance::Balance as core::ops::arith::Add>::add
53
}