/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 | | } |