pub struct TransactionSummary<AccountId> { /* private fields */ }test-dependencies only.Expand description
Information about a transaction that the wallet is interested in.
Implementations§
Source§impl<AccountId> TransactionSummary<AccountId>
impl<AccountId> TransactionSummary<AccountId>
Sourcepub fn from_parts(
account_id: AccountId,
txid: TxId,
expiry_height: Option<BlockHeight>,
mined_height: Option<BlockHeight>,
account_value_delta: ZatBalance,
total_spent: Zatoshis,
total_received: Zatoshis,
fee_paid: Option<Zatoshis>,
spent_note_count: usize,
has_change: bool,
sent_note_count: usize,
received_note_count: usize,
memo_count: usize,
expired_unmined: bool,
is_shielding: bool,
pool_crossing_value: Option<Zatoshis>,
) -> Self
pub fn from_parts( account_id: AccountId, txid: TxId, expiry_height: Option<BlockHeight>, mined_height: Option<BlockHeight>, account_value_delta: ZatBalance, total_spent: Zatoshis, total_received: Zatoshis, fee_paid: Option<Zatoshis>, spent_note_count: usize, has_change: bool, sent_note_count: usize, received_note_count: usize, memo_count: usize, expired_unmined: bool, is_shielding: bool, pool_crossing_value: Option<Zatoshis>, ) -> Self
Constructs a TransactionSummary from its parts.
See the documentation for each getter method below to determine how each method argument should be prepared.
Sourcepub fn account_id(&self) -> &AccountId
pub fn account_id(&self) -> &AccountId
Returns the wallet-internal ID for the account that this transaction was received by or sent from.
Sourcepub fn expiry_height(&self) -> Option<BlockHeight>
pub fn expiry_height(&self) -> Option<BlockHeight>
Returns the expiry height of the transaction, if known.
Nonemeans that the expiry height is unknown.Some(0)means that the transaction does not expire.
Sourcepub fn mined_height(&self) -> Option<BlockHeight>
pub fn mined_height(&self) -> Option<BlockHeight>
Returns the height of the mined block containing this transaction, or None if
the wallet has not yet observed the transaction to be mined.
Sourcepub fn account_value_delta(&self) -> ZatBalance
pub fn account_value_delta(&self) -> ZatBalance
Returns the net change in balance that this transaction caused to the account.
For example, an account-internal transaction (such as a shielding operation) would
show -fee_paid as the account value delta.
Sourcepub fn total_spent(&self) -> Zatoshis
pub fn total_spent(&self) -> Zatoshis
Returns the total value of notes spent by the account in this transaction.
Sourcepub fn total_received(&self) -> Zatoshis
pub fn total_received(&self) -> Zatoshis
Returns the total value of notes received by the account in this transaction.
Sourcepub fn spent_note_count(&self) -> usize
pub fn spent_note_count(&self) -> usize
Returns the number of notes spent by the account in this transaction.
Sourcepub fn has_change(&self) -> bool
pub fn has_change(&self) -> bool
Returns true if the account received a change note as part of this transaction.
This implies that the transaction was (at least in part) sent from the account.
Sourcepub fn sent_note_count(&self) -> usize
pub fn sent_note_count(&self) -> usize
Returns the number of notes created in this transaction that were sent to a wallet-external address.
Sourcepub fn received_note_count(&self) -> usize
pub fn received_note_count(&self) -> usize
Returns the number of notes created in this transaction that were received by the account.
Sourcepub fn expired_unmined(&self) -> bool
pub fn expired_unmined(&self) -> bool
Returns true if, from the wallet’s current view of the chain, this transaction
expired before it was mined.
Sourcepub fn memo_count(&self) -> usize
pub fn memo_count(&self) -> usize
Returns the number of non-empty memos viewable by the account in this transaction.
Sourcepub fn is_shielding(&self) -> bool
pub fn is_shielding(&self) -> bool
Returns true if this is detectably a shielding transaction.
Specifically, true means that at a minimum:
- All of the wallet-spent and wallet-received notes are consistent with a shielding transaction.
- The transaction contains at least one wallet-spent output.
- The transaction contains at least one wallet-received note.
- We do not know about any external outputs of the transaction.
There may be some shielding transactions for which this method returns false,
due to them not being detectable by the wallet as shielding transactions under the
above metrics.
Sourcepub fn is_pool_crossing(&self) -> bool
pub fn is_pool_crossing(&self) -> bool
Returns true if this is detectably a wallet-internal transfer that moves the
account’s own funds between shielded pools (for example, a ZIP 318
Orchard -> Ironwood migration transfer).
Specifically, true means that at a minimum:
- Every wallet-spent note and wallet-received output is shielded.
- The transaction spends at least one of the account’s notes.
- At least one output was received in a pool the account spent nothing from.
- We do not know about any external outputs of the transaction.
A payment that returns value to one of the wallet’s own addresses is classified once the wallet has observed the returned output (which the scanner marks as change); while such a transaction is unmined it is treated as an ordinary payment.
This is exactly the condition that Self::pool_crossing_value is Some; the
crossed amount is what identifies the transaction, so it is the only thing stored.
Sourcepub fn pool_crossing_value(&self) -> Option<Zatoshis>
pub fn pool_crossing_value(&self) -> Option<Zatoshis>
Returns the total value received in pools the account did not spend from, which
is the amount that crossed pools, when this is a pool-crossing transaction as described
by Self::is_pool_crossing, or None otherwise.
Trait Implementations§
Auto Trait Implementations§
impl<AccountId> Freeze for TransactionSummary<AccountId>where
AccountId: Freeze,
impl<AccountId> RefUnwindSafe for TransactionSummary<AccountId>where
AccountId: RefUnwindSafe,
impl<AccountId> Send for TransactionSummary<AccountId>where
AccountId: Send,
impl<AccountId> Sync for TransactionSummary<AccountId>where
AccountId: Sync,
impl<AccountId> Unpin for TransactionSummary<AccountId>where
AccountId: Unpin,
impl<AccountId> UnsafeUnpin for TransactionSummary<AccountId>where
AccountId: UnsafeUnpin,
impl<AccountId> UnwindSafe for TransactionSummary<AccountId>where
AccountId: UnwindSafe,
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PossiblyOption<T> for T
impl<T> PossiblyOption<T> for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.