librustzcash/rustdoc/latest/zcash_client_backend/data_api/trait.WalletRead.html

386 lines
87 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Read-only operations required for light wallet functions."><title>WalletRead in zcash_client_backend::data_api - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-20739d33.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="zcash_client_backend" data-themes="" data-resource-suffix="" data-rustdoc-version="1.88.0-nightly (74509131e 2025-04-29)" data-channel="nightly" data-search-js="search-f7877310.js" data-settings-js="settings-5514c975.js" ><script src="../../static.files/storage-4e99c027.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-7ef8a74a.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../zcash_client_backend/index.html">zcash_<wbr>client_<wbr>backend</a><span class="version">0.18.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Wallet<wbr>Read</a></h2><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Account" title="Account">Account</a></li><li><a href="#associatedtype.AccountId" title="AccountId">AccountId</a></li><li><a href="#associatedtype.Error" title="Error">Error</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.block_fully_scanned" title="block_fully_scanned">block_fully_scanned</a></li><li><a href="#tymethod.block_max_scanned" title="block_max_scanned">block_max_scanned</a></li><li><a href="#tymethod.block_metadata" title="block_metadata">block_metadata</a></li><li><a href="#tymethod.chain_height" title="chain_height">chain_height</a></li><li><a href="#tymethod.get_account" title="get_account">get_account</a></li><li><a href="#tymethod.get_account_birthday" title="get_account_birthday">get_account_birthday</a></li><li><a href="#tymethod.get_account_for_ufvk" title="get_account_for_ufvk">get_account_for_ufvk</a></li><li><a href="#tymethod.get_account_ids" title="get_account_ids">get_account_ids</a></li><li><a href="#tymethod.get_block_hash" title="get_block_hash">get_block_hash</a></li><li><a href="#tymethod.get_derived_account" title="get_derived_account">get_derived_account</a></li><li><a href="#tymethod.get_last_generated_address_matching" title="get_last_generated_address_matching">get_last_generated_address_matching</a></li><li><a href="#tymethod.get_max_height_hash" title="get_max_height_hash">get_max_height_hash</a></li><li><a href="#tymethod.get_memo" title="get_memo">get_memo</a></li><li><a href="#tymethod.get_orchard_nullifiers" title="get_orchard_nullifiers">get_orchard_nullifiers</a></li><li><a href="#tymethod.get_sapling_nullifiers" title="get_sapling_nullifiers">get_sapling_nullifiers</a></li><li><a href="#tymethod.get_target_and_anchor_heights" title="get_target_and_anchor_heights">get_target_and_anchor_heights</a></li><li><a href="#tymethod.get_transaction" title="get_transaction">get_transaction</a></li><li><a href="#tymethod.get_tx_height" title="get_tx_height">get_tx_height</a></li><li><a href="#tymethod.get_unified_full_viewing_keys" title="get_unified_full_viewing_keys">get_unified_full_viewing_keys</a></li><li><a href="#tymethod.get_wallet_birthday" title="get_wallet_birthday">get_wallet_birthday</a></li><li><a href="#tymethod.get_wallet_summary" title="get_wallet_summary">get_wallet_summary</a></li><li><a href="#tymethod.list_addresses" title="list_addresses">list_addresses</a></li><li><a href="#tymethod.seed_relevance_to_derived_accounts" title="seed_relevance_to_derived_accounts">seed_relevance_to_derived_accounts</a></li><li><a href="#tymethod.suggest_scan_ranges" title="suggest_scan_ranges">suggest_scan_ranges</a></li><li><a href="#tymethod.transaction_data_requests" title="transaction_data_requests">transaction_data_requests</a></li><li><a href="#tymethod.utxo_query_height" title="utxo_query_height">utxo_query_height</a></li><li><a href="#tymethod.validate_seed" title="validate_seed">validate_seed</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.find_account_for_ephemeral_address" title="find_account_for_ephemeral_address">find_account_for_ephemeral_address</a></li><li><a href="#method.get_known_ephemeral_addresses" title="get_known_ephemeral_addresses">get_known_ephemeral_addresses</a></li><li><a href="#method.get_transparent_address_metadata" title="get_transparent_address_metadata">get_transparent_address_metadata</a></li><li><a href="#method.get_transparent_balances" title="get_transparent_balances">get_transparent_balances</a></li><li><a href="#method.get_transparent_receivers" title="get_transparent_receivers">get_transparent_receivers</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In zcash_<wbr>client_<wbr>backend::<wbr>data_<wbr>api</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">zcash_client_backend</a>::<wbr><a href="index.html">data_api</a></div><h1>Trait <span class="trait">WalletRead</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/zcash_client_backend/data_api.rs.html#1263-1628">Source</a> </span></div><pre class="rust item-decl"><code>pub trait WalletRead {
type <a href="#associatedtype.Error" class="associatedtype">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>;
type <a href="#associatedtype.AccountId" class="associatedtype">AccountId</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a>;
type <a href="#associatedtype.Account" class="associatedtype">Account</a>: <a class="trait" href="trait.Account.html" title="trait zcash_client_backend::data_api::Account">Account</a>&lt;AccountId = Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>&gt;;
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 32 methods</span></summary> // Required methods
fn <a href="#tymethod.get_account_ids" class="fn">get_account_ids</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_account" class="fn">get_account</a>(
&amp;self,
account_id: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_derived_account" class="fn">get_derived_account</a>(
&amp;self,
seed: &amp;SeedFingerprint,
account_id: AccountId,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.validate_seed" class="fn">validate_seed</a>(
&amp;self,
account_id: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
seed: &amp;<a class="type" href="https://docs.rs/secrecy/0.8.0/secrecy/vec/type.SecretVec.html" title="type secrecy::vec::SecretVec">SecretVec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.seed_relevance_to_derived_accounts" class="fn">seed_relevance_to_derived_accounts</a>(
&amp;self,
seed: &amp;<a class="type" href="https://docs.rs/secrecy/0.8.0/secrecy/vec/type.SecretVec.html" title="type secrecy::vec::SecretVec">SecretVec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="enum.SeedRelevance.html" title="enum zcash_client_backend::data_api::SeedRelevance">SeedRelevance</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_account_for_ufvk" class="fn">get_account_for_ufvk</a>(
&amp;self,
ufvk: &amp;<a class="struct" href="../keys/struct.UnifiedFullViewingKey.html" title="struct zcash_client_backend::keys::UnifiedFullViewingKey">UnifiedFullViewingKey</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.list_addresses" class="fn">list_addresses</a>(
&amp;self,
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.AddressInfo.html" title="struct zcash_client_backend::data_api::AddressInfo">AddressInfo</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_last_generated_address_matching" class="fn">get_last_generated_address_matching</a>(
&amp;self,
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
address_filter: <a class="enum" href="../keys/enum.UnifiedAddressRequest.html" title="enum zcash_client_backend::keys::UnifiedAddressRequest">UnifiedAddressRequest</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../address/struct.UnifiedAddress.html" title="struct zcash_client_backend::address::UnifiedAddress">UnifiedAddress</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_account_birthday" class="fn">get_account_birthday</a>(
&amp;self,
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;BlockHeight, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_wallet_birthday" class="fn">get_wallet_birthday</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;BlockHeight&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_wallet_summary" class="fn">get_wallet_summary</a>(
&amp;self,
min_confirmations: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.WalletSummary.html" title="struct zcash_client_backend::data_api::WalletSummary">WalletSummary</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>&gt;&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.chain_height" class="fn">chain_height</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;BlockHeight&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_block_hash" class="fn">get_block_hash</a>(
&amp;self,
block_height: BlockHeight,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;BlockHash&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.block_metadata" class="fn">block_metadata</a>(
&amp;self,
height: BlockHeight,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.block_fully_scanned" class="fn">block_fully_scanned</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_max_height_hash" class="fn">get_max_height_hash</a>(
&amp;self,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(BlockHeight, BlockHash)&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.block_max_scanned" class="fn">block_max_scanned</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.suggest_scan_ranges" class="fn">suggest_scan_ranges</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="scanning/struct.ScanRange.html" title="struct zcash_client_backend::data_api::scanning::ScanRange">ScanRange</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_target_and_anchor_heights" class="fn">get_target_and_anchor_heights</a>(
&amp;self,
min_confirmations: <a class="type" href="https://doc.rust-lang.org/nightly/core/num/nonzero/type.NonZeroU32.html" title="type core::num::nonzero::NonZeroU32">NonZeroU32</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(BlockHeight, BlockHeight)&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_tx_height" class="fn">get_tx_height</a>(
&amp;self,
txid: TxId,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;BlockHeight&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_unified_full_viewing_keys" class="fn">get_unified_full_viewing_keys</a>(
&amp;self,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>, <a class="struct" href="../keys/struct.UnifiedFullViewingKey.html" title="struct zcash_client_backend::keys::UnifiedFullViewingKey">UnifiedFullViewingKey</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_memo" class="fn">get_memo</a>(&amp;self, note_id: <a class="struct" href="../wallet/struct.NoteId.html" title="struct zcash_client_backend::wallet::NoteId">NoteId</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Memo&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_transaction" class="fn">get_transaction</a>(
&amp;self,
txid: TxId,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Transaction&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_sapling_nullifiers" class="fn">get_sapling_nullifiers</a>(
&amp;self,
query: <a class="enum" href="enum.NullifierQuery.html" title="enum zcash_client_backend::data_api::NullifierQuery">NullifierQuery</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>, Nullifier)&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.get_orchard_nullifiers" class="fn">get_orchard_nullifiers</a>(
&amp;self,
query: <a class="enum" href="enum.NullifierQuery.html" title="enum zcash_client_backend::data_api::NullifierQuery">NullifierQuery</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>, Nullifier)&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.utxo_query_height" class="fn">utxo_query_height</a>(
&amp;self,
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;BlockHeight, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.transaction_data_requests" class="fn">transaction_data_requests</a>(
&amp;self,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.TransactionDataRequest.html" title="enum zcash_client_backend::data_api::TransactionDataRequest">TransactionDataRequest</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;;
// Provided methods
fn <a href="#method.get_transparent_receivers" class="fn">get_transparent_receivers</a>(
&amp;self,
_account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
_include_change: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;TransparentAddress, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>&gt;&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.get_transparent_balances" class="fn">get_transparent_balances</a>(
&amp;self,
_account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
_max_height: BlockHeight,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;TransparentAddress, Zatoshis&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.get_transparent_address_metadata" class="fn">get_transparent_address_metadata</a>(
&amp;self,
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
address: &amp;TransparentAddress,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.get_known_ephemeral_addresses" class="fn">get_known_ephemeral_addresses</a>(
&amp;self,
_account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
_index_range: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;NonHardenedChildIndex&gt;&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(TransparentAddress, <a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>)&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt; { ... }
<span class="item-spacer"></span> fn <a href="#method.find_account_for_ephemeral_address" class="fn">find_account_for_ephemeral_address</a>(
&amp;self,
address: &amp;TransparentAddress,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt; { ... }
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Read-only operations required for light wallet functions.</p>
<p>This trait defines the read-only portion of the storage interface atop which
higher-level wallet operations are implemented. It serves to allow wallet functions to
be abstracted away from any particular data storage substrate.</p>
</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.Error" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1265">Source</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a></h4></section></summary><div class="docblock"><p>The type of errors that may be generated when querying a wallet data store.</p>
</div></details><details class="toggle" open><summary><section id="associatedtype.AccountId" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1272">Source</a><h4 class="code-header">type <a href="#associatedtype.AccountId" class="associatedtype">AccountId</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a></h4></section></summary><div class="docblock"><p>The type of the account identifier.</p>
<p>An account identifier corresponds to at most a single unified spending keys worth of spend
authority, such that both received notes and change spendable by that spending authority
will be interpreted as belonging to that account.</p>
</div></details><details class="toggle" open><summary><section id="associatedtype.Account" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1275">Source</a><h4 class="code-header">type <a href="#associatedtype.Account" class="associatedtype">Account</a>: <a class="trait" href="trait.Account.html" title="trait zcash_client_backend::data_api::Account">Account</a>&lt;AccountId = Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>&gt;</h4></section></summary><div class="docblock"><p>The concrete account type used by this wallet backend.</p>
</div></details></div><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.get_account_ids" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1278">Source</a><h4 class="code-header">fn <a href="#tymethod.get_account_ids" class="fn">get_account_ids</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a vector with the IDs of all accounts known to this wallet.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_account" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1281-1284">Source</a><h4 class="code-header">fn <a href="#tymethod.get_account" class="fn">get_account</a>(
&amp;self,
account_id: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the account corresponding to the given ID, if any.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_derived_account" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1288-1292">Source</a><h4 class="code-header">fn <a href="#tymethod.get_derived_account" class="fn">get_derived_account</a>(
&amp;self,
seed: &amp;SeedFingerprint,
account_id: AccountId,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the account corresponding to a given [<code>SeedFingerprint</code>] and
[<code>zip32::AccountId</code>], if any.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.validate_seed" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1303-1307">Source</a><h4 class="code-header">fn <a href="#tymethod.validate_seed" class="fn">validate_seed</a>(
&amp;self,
account_id: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
seed: &amp;<a class="type" href="https://docs.rs/secrecy/0.8.0/secrecy/vec/type.SecretVec.html" title="type secrecy::vec::SecretVec">SecretVec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Verifies that the given seed corresponds to the viewing key for the specified account.</p>
<p>Returns:</p>
<ul>
<li><code>Ok(true)</code> if the viewing key for the specified account can be derived from the
provided seed.</li>
<li><code>Ok(false)</code> if the derived viewing key does not match, or the specified account is not
present in the database.</li>
<li><code>Err(_)</code> if a Unified Spending Key cannot be derived from the seed for the
specified account or the account has no known ZIP-32 derivation.</li>
</ul>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.seed_relevance_to_derived_accounts" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1314-1317">Source</a><h4 class="code-header">fn <a href="#tymethod.seed_relevance_to_derived_accounts" class="fn">seed_relevance_to_derived_accounts</a>(
&amp;self,
seed: &amp;<a class="type" href="https://docs.rs/secrecy/0.8.0/secrecy/vec/type.SecretVec.html" title="type secrecy::vec::SecretVec">SecretVec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="enum.SeedRelevance.html" title="enum zcash_client_backend::data_api::SeedRelevance">SeedRelevance</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Checks whether the given seed is relevant to any of the derived accounts (where
<a href="trait.Account.html#tymethod.source" title="method zcash_client_backend::data_api::Account::source"><code>Account::source</code></a> is <a href="enum.AccountSource.html#variant.Derived" title="variant zcash_client_backend::data_api::AccountSource::Derived"><code>AccountSource::Derived</code></a>) in the wallet.</p>
<p>This API does not check whether the seed is relevant to any imported account,
because that would require brute-forcing the ZIP 32 account index space.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_account_for_ufvk" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1320-1323">Source</a><h4 class="code-header">fn <a href="#tymethod.get_account_for_ufvk" class="fn">get_account_for_ufvk</a>(
&amp;self,
ufvk: &amp;<a class="struct" href="../keys/struct.UnifiedFullViewingKey.html" title="struct zcash_client_backend::keys::UnifiedFullViewingKey">UnifiedFullViewingKey</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the account corresponding to a given <a href="../keys/struct.UnifiedFullViewingKey.html" title="struct zcash_client_backend::keys::UnifiedFullViewingKey"><code>UnifiedFullViewingKey</code></a>, if any.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.list_addresses" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1326">Source</a><h4 class="code-header">fn <a href="#tymethod.list_addresses" class="fn">list_addresses</a>(
&amp;self,
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.AddressInfo.html" title="struct zcash_client_backend::data_api::AddressInfo">AddressInfo</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns information about every address tracked for this account.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_last_generated_address_matching" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1334-1338">Source</a><h4 class="code-header">fn <a href="#tymethod.get_last_generated_address_matching" class="fn">get_last_generated_address_matching</a>(
&amp;self,
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
address_filter: <a class="enum" href="../keys/enum.UnifiedAddressRequest.html" title="enum zcash_client_backend::keys::UnifiedAddressRequest">UnifiedAddressRequest</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../address/struct.UnifiedAddress.html" title="struct zcash_client_backend::address::UnifiedAddress">UnifiedAddress</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the most recently generated unified address for the specified account that conforms
to the specified address filter, if the account identifier specified refers to a valid
account for this wallet.</p>
<p>This will return <code>Ok(None)</code> if no previously generated address conforms to the specified
request.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_account_birthday" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1342">Source</a><h4 class="code-header">fn <a href="#tymethod.get_account_birthday" class="fn">get_account_birthday</a>(
&amp;self,
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;BlockHeight, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the birthday height for the given account, or an error if the account is not known
to the wallet.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_wallet_birthday" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1348">Source</a><h4 class="code-header">fn <a href="#tymethod.get_wallet_birthday" class="fn">get_wallet_birthday</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;BlockHeight&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the birthday height for the wallet.</p>
<p>This returns the earliest birthday height among accounts maintained by this wallet,
or <code>Ok(None)</code> if the wallet has no initialized accounts.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_wallet_summary" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1353-1356">Source</a><h4 class="code-header">fn <a href="#tymethod.get_wallet_summary" class="fn">get_wallet_summary</a>(
&amp;self,
min_confirmations: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.WalletSummary.html" title="struct zcash_client_backend::data_api::WalletSummary">WalletSummary</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>&gt;&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a <a href="struct.WalletSummary.html" title="struct zcash_client_backend::data_api::WalletSummary"><code>WalletSummary</code></a> that represents the sync status, and the wallet balances
given the specified minimum number of confirmations for all accounts known to the
wallet; or <code>Ok(None)</code> if the wallet has no summary data available.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.chain_height" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1362">Source</a><h4 class="code-header">fn <a href="#tymethod.chain_height" class="fn">chain_height</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;BlockHeight&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the height of the chain as known to the wallet as of the most recent call to
<a href="trait.WalletWrite.html#tymethod.update_chain_tip" title="method zcash_client_backend::data_api::WalletWrite::update_chain_tip"><code>WalletWrite::update_chain_tip</code></a>.</p>
<p>This will return <code>Ok(None)</code> if the height of the current consensus chain tip is unknown.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_block_hash" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1367">Source</a><h4 class="code-header">fn <a href="#tymethod.get_block_hash" class="fn">get_block_hash</a>(
&amp;self,
block_height: BlockHeight,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;BlockHash&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the block hash for the block at the given height, if the
associated block data is available. Returns <code>Ok(None)</code> if the hash
is not found in the database.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.block_metadata" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1370">Source</a><h4 class="code-header">fn <a href="#tymethod.block_metadata" class="fn">block_metadata</a>(
&amp;self,
height: BlockHeight,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the available block metadata for the block at the specified height, if any.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.block_fully_scanned" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1379">Source</a><h4 class="code-header">fn <a href="#tymethod.block_fully_scanned" class="fn">block_fully_scanned</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the metadata for the block at the height to which the wallet has been fully
scanned.</p>
<p>This is the height for which the wallet has fully trial-decrypted this and all preceding
blocks above the wallets birthday height. Along with this height, this method returns
metadata describing the state of the wallets note commitment trees as of the end of that
block.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_max_height_hash" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1384">Source</a><h4 class="code-header">fn <a href="#tymethod.get_max_height_hash" class="fn">get_max_height_hash</a>(
&amp;self,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(BlockHeight, BlockHash)&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the block height and hash for the block at the maximum scanned block height.</p>
<p>This will return <code>Ok(None)</code> if no blocks have been scanned.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.block_max_scanned" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1391">Source</a><h4 class="code-header">fn <a href="#tymethod.block_max_scanned" class="fn">block_max_scanned</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns block metadata for the maximum height that the wallet has scanned.</p>
<p>If the wallet is fully synced, this will be equivalent to <code>block_fully_scanned</code>;
otherwise the maximal scanned height is likely to be greater than the fully scanned height
due to the fact that out-of-order scanning can leave gaps.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.suggest_scan_ranges" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1408">Source</a><h4 class="code-header">fn <a href="#tymethod.suggest_scan_ranges" class="fn">suggest_scan_ranges</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="scanning/struct.ScanRange.html" title="struct zcash_client_backend::data_api::scanning::ScanRange">ScanRange</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a vector of suggested scan ranges based upon the current wallet state.</p>
<p>This method should only be used in cases where the <a href="../proto/compact_formats/struct.CompactBlock.html" title="struct zcash_client_backend::proto::compact_formats::CompactBlock"><code>CompactBlock</code></a> data that will be made
available to <code>scan_cached_blocks</code> for the requested block ranges includes note commitment
tree size information for each block; or else the scan is likely to fail if notes belonging
to the wallet are detected.</p>
<p>The returned range(s) may include block heights beyond the current chain tip. Ranges are
returned in order of descending priority, and higher-priority ranges should always be
scanned before lower-priority ranges; in particular, ranges with <a href="scanning/enum.ScanPriority.html" title="enum zcash_client_backend::data_api::scanning::ScanPriority"><code>ScanPriority::Verify</code></a>
priority must always be scanned first in order to avoid blockchain continuity errors in the
case of a reorg.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_target_and_anchor_heights" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1416-1419">Source</a><h4 class="code-header">fn <a href="#tymethod.get_target_and_anchor_heights" class="fn">get_target_and_anchor_heights</a>(
&amp;self,
min_confirmations: <a class="type" href="https://doc.rust-lang.org/nightly/core/num/nonzero/type.NonZeroU32.html" title="type core::num::nonzero::NonZeroU32">NonZeroU32</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(BlockHeight, BlockHeight)&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the default target height (for the block in which a new
transaction would be mined) and anchor height (to use for a new
transaction), given the range of block heights that the backend
knows about.</p>
<p>This will return <code>Ok(None)</code> if no block data is present in the database.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_tx_height" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1423">Source</a><h4 class="code-header">fn <a href="#tymethod.get_tx_height" class="fn">get_tx_height</a>(&amp;self, txid: TxId) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;BlockHeight&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the block height in which the specified transaction was mined, or <code>Ok(None)</code> if the
transaction is not in the main chain.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_unified_full_viewing_keys" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1426-1428">Source</a><h4 class="code-header">fn <a href="#tymethod.get_unified_full_viewing_keys" class="fn">get_unified_full_viewing_keys</a>(
&amp;self,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>, <a class="struct" href="../keys/struct.UnifiedFullViewingKey.html" title="struct zcash_client_backend::keys::UnifiedFullViewingKey">UnifiedFullViewingKey</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns all unified full viewing keys known to this wallet.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_memo" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1435">Source</a><h4 class="code-header">fn <a href="#tymethod.get_memo" class="fn">get_memo</a>(&amp;self, note_id: <a class="struct" href="../wallet/struct.NoteId.html" title="struct zcash_client_backend::wallet::NoteId">NoteId</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Memo&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the memo for a note.</p>
<p>Returns <code>Ok(None)</code> if the note is known to the wallet but memo data has not yet been
populated for that note, or if the note identifier does not correspond to a note
that is known to the wallet.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_transaction" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1438">Source</a><h4 class="code-header">fn <a href="#tymethod.get_transaction" class="fn">get_transaction</a>(
&amp;self,
txid: TxId,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Transaction&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a transaction.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_sapling_nullifiers" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1443-1446">Source</a><h4 class="code-header">fn <a href="#tymethod.get_sapling_nullifiers" class="fn">get_sapling_nullifiers</a>(
&amp;self,
query: <a class="enum" href="enum.NullifierQuery.html" title="enum zcash_client_backend::data_api::NullifierQuery">NullifierQuery</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>, Nullifier)&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the nullifiers for Sapling notes that the wallet is tracking, along with their
associated account IDs, that are either unspent or have not yet been confirmed as spent (in
that a spending transaction known to the wallet has not yet been included in a block).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.get_orchard_nullifiers" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1452-1455">Source</a><h4 class="code-header">fn <a href="#tymethod.get_orchard_nullifiers" class="fn">get_orchard_nullifiers</a>(
&amp;self,
query: <a class="enum" href="enum.NullifierQuery.html" title="enum zcash_client_backend::data_api::NullifierQuery">NullifierQuery</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>, Nullifier)&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>orchard</code></strong> only.</div></span></summary><div class="docblock"><p>Returns the nullifiers for Orchard notes that the wallet is tracking, along with their
associated account IDs, that are either unspent or have not yet been confirmed as spent (in
that a spending transaction known to the wallet has not yet been included in a block).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.utxo_query_height" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1537">Source</a><h4 class="code-header">fn <a href="#tymethod.utxo_query_height" class="fn">utxo_query_height</a>(
&amp;self,
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;BlockHeight, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>transparent-inputs</code></strong> only.</div></span></summary><div class="docblock"><p>Returns the maximum block height at which a transparent output belonging to the wallet has
been observed.</p>
<p>We must start looking for UTXOs for addresses within the current gap limit as of the block
height at which they might have first been revealed. This would have occurred when the gap
advanced as a consequence of a transaction being mined. The address at the start of the current
gap was potentially first revealed after the address at index <code>gap_start - (gap_limit + 1)</code>
received an output in a mined transaction; therefore, we take that height to be where we
should start searching for UTXOs.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.transaction_data_requests" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1627">Source</a><h4 class="code-header">fn <a href="#tymethod.transaction_data_requests" class="fn">transaction_data_requests</a>(
&amp;self,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="enum.TransactionDataRequest.html" title="enum zcash_client_backend::data_api::TransactionDataRequest">TransactionDataRequest</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a vector of <a href="enum.TransactionDataRequest.html" title="enum zcash_client_backend::data_api::TransactionDataRequest"><code>TransactionDataRequest</code></a> values that describe information needed by
the wallet to complete its view of transaction history.</p>
<p>Requests for the same transaction data may be returned repeatedly by successive data
requests. The caller of this method should consider the latest set of requests returned
by this method to be authoritative and to subsume that returned by previous calls.</p>
<p>Callers should poll this method on a regular interval, not as part of ordinary chain
scanning, which already produces requests for transaction data enhancement. Note that
responding to a set of transaction data requests may result in the creation of new
transaction data requests, such as when it is necessary to fill in purely-transparent
transaction history by walking the chain backwards via transparent inputs.</p>
</div></details></div><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.get_transparent_receivers" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1467-1473">Source</a><h4 class="code-header">fn <a href="#method.get_transparent_receivers" class="fn">get_transparent_receivers</a>(
&amp;self,
_account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
_include_change: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;TransparentAddress, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>&gt;&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>transparent-inputs</code></strong> only.</div></span></summary><div class="docblock"><p>Returns the set of non-ephemeral transparent receivers associated with the given
account controlled by this wallet.</p>
<p>The set contains all non-ephemeral transparent receivers that are known to have
been derived under this account. Wallets should scan the chain for UTXOs sent to
these receivers.</p>
<p>Use <a href="trait.WalletRead.html#method.get_known_ephemeral_addresses"><code>Self::get_known_ephemeral_addresses</code></a> to obtain the ephemeral transparent
receivers.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_transparent_balances" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1481-1487">Source</a><h4 class="code-header">fn <a href="#method.get_transparent_balances" class="fn">get_transparent_balances</a>(
&amp;self,
_account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
_max_height: BlockHeight,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;TransparentAddress, Zatoshis&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>transparent-inputs</code></strong> only.</div></span></summary><div class="docblock"><p>Returns a mapping from each transparent receiver associated with the specified account
to its not-yet-shielded UTXO balance as of the end of the block at the provided
<code>max_height</code>, when that balance is non-zero.</p>
<p>Balances of ephemeral transparent addresses will not be included.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_transparent_address_metadata" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1509-1525">Source</a><h4 class="code-header">fn <a href="#method.get_transparent_address_metadata" class="fn">get_transparent_address_metadata</a>(
&amp;self,
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
address: &amp;TransparentAddress,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>transparent-inputs</code></strong> only.</div></span></summary><div class="docblock"><p>Returns the metadata associated with a given transparent receiver in an account
controlled by this wallet, if available.</p>
<p>This is equivalent to (but may be implemented more efficiently than):</p>
<div class="example-wrap compile_fail"><a href="#" class="tooltip" title="This example deliberately fails to compile"></a><pre class="rust rust-example-rendered"><code><span class="prelude-val">Ok</span>(
<span class="kw">if let </span><span class="prelude-val">Some</span>(result) = <span class="self">self</span>.get_transparent_receivers(account, <span class="bool-val">true</span>)<span class="question-mark">?</span>.get(address) {
result.clone()
} <span class="kw">else </span>{
<span class="self">self</span>.get_known_ephemeral_addresses(account, <span class="prelude-val">None</span>)<span class="question-mark">?
</span>.into_iter()
.find(|(known_addr, <span class="kw">_</span>)| known_addr == address)
.map(|(<span class="kw">_</span>, metadata)| metadata)
},
)</code></pre></div>
<p>Returns <code>Ok(None)</code> if the address is not recognized, or we do not have metadata for it.
Returns <code>Ok(Some(metadata))</code> if we have the metadata.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_known_ephemeral_addresses" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1573-1579">Source</a><h4 class="code-header">fn <a href="#method.get_known_ephemeral_addresses" class="fn">get_known_ephemeral_addresses</a>(
&amp;self,
_account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
_index_range: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a>&lt;NonHardenedChildIndex&gt;&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;(TransparentAddress, <a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>)&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>transparent-inputs</code></strong> only.</div></span></summary><div class="docblock"><p>Returns a vector of ephemeral transparent addresses associated with the given
account controlled by this wallet, along with their metadata. The result includes
reserved addresses, and addresses for the backends configured gap limit worth
of additional indices (capped to the maximum index).</p>
<p>If <code>index_range</code> is some <code>Range</code>, it limits the result to addresses with indices
in that range. An <code>index_range</code> of <code>None</code> is defined to be equivalent to
<code>0..(1u32 &lt;&lt; 31)</code>.</p>
<p>Wallets should scan the chain for UTXOs sent to these ephemeral transparent
receivers, but do not need to do so regularly. Under expected usage, outputs
would only be detected with these receivers in the following situations:</p>
<ul>
<li>
<p>This wallet created a payment to a ZIP 320 (TEX) address, but the second
transaction (that spent the output sent to the ephemeral address) did not get
mined before it expired.</p>
<ul>
<li>In this case the output will already be known to the wallet (because it
stores the transactions that it creates).</li>
</ul>
</li>
<li>
<p>Another wallet app using the same seed phrase created a payment to a ZIP 320
address, and this wallet queried for the ephemeral UTXOs after the first
transaction was mined but before the second transaction was mined.</p>
<ul>
<li>In this case, the output should not be considered unspent until the expiry
height of the transaction it was received in has passed. Wallets creating
payments to TEX addresses generally set the same expiry height for the first
and second transactions, meaning that this wallet does not need to observe
the second transaction to determine when it would have expired.</li>
</ul>
</li>
<li>
<p>A TEX address recipient decided to return funds that the wallet had sent to
them.</p>
</li>
</ul>
<p>In all cases, the wallet should re-shield the unspent outputs, in a separate
transaction per ephemeral address, before re-spending the funds.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.find_account_for_ephemeral_address" class="method"><a class="src rightside" href="../../src/zcash_client_backend/data_api.rs.html#1599-1613">Source</a><h4 class="code-header">fn <a href="#method.find_account_for_ephemeral_address" class="fn">find_account_for_ephemeral_address</a>(
&amp;self,
address: &amp;TransparentAddress,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>&gt;, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>&gt;</h4></section><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>transparent-inputs</code></strong> only.</div></span></summary><div class="docblock"><p>If a given ephemeral address might have been reserved, i.e. would be included in
the result of <code>get_known_ephemeral_addresses(account_id, None)</code> for any of the
wallets accounts, then return <code>Ok(Some(account_id))</code>. Otherwise return <code>Ok(None)</code>.</p>
<p>This is equivalent to (but may be implemented more efficiently than):</p>
<div class="example-wrap compile_fail"><a href="#" class="tooltip" title="This example deliberately fails to compile"></a><pre class="rust rust-example-rendered"><code><span class="kw">for </span>account_id <span class="kw">in </span><span class="self">self</span>.get_account_ids()<span class="question-mark">? </span>{
<span class="kw">if </span><span class="self">self
</span>.get_known_ephemeral_addresses(account_id, <span class="prelude-val">None</span>)<span class="question-mark">?
</span>.into_iter()
.any(|(known_addr, <span class="kw">_</span>)| <span class="kw-2">&amp;</span>known_addr == address)
{
<span class="kw">return </span><span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(account_id));
}
}
<span class="prelude-val">Ok</span>(<span class="prelude-val">None</span>)</code></pre></div>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-WalletRead-for-MockWalletDb" class="impl"><a class="src rightside" href="../../src/zcash_client_backend/data_api/testing.rs.html#2516-2709">Source</a><a href="#impl-WalletRead-for-MockWalletDb" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.WalletRead.html" title="trait zcash_client_backend::data_api::WalletRead">WalletRead</a> for <a class="struct" href="testing/struct.MockWalletDb.html" title="struct zcash_client_backend::data_api::testing::MockWalletDb">MockWalletDb</a></h3><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>test-dependencies</code></strong> only.</div></span></section></summary><div class="impl-items"><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/zcash_client_backend/data_api/testing.rs.html#2517">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.AccountId-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/zcash_client_backend/data_api/testing.rs.html#2518">Source</a><a href="#associatedtype.AccountId-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.AccountId" class="associatedtype">AccountId</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></h4></section><section id="associatedtype.Account-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/zcash_client_backend/data_api/testing.rs.html#2519">Source</a><a href="#associatedtype.Account-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Account" class="associatedtype">Account</a> = (&lt;<a class="struct" href="testing/struct.MockWalletDb.html" title="struct zcash_client_backend::data_api::testing::MockWalletDb">MockWalletDb</a> as <a class="trait" href="trait.WalletRead.html" title="trait zcash_client_backend::data_api::WalletRead">WalletRead</a>&gt;::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>, <a class="struct" href="../keys/struct.UnifiedFullViewingKey.html" title="struct zcash_client_backend::keys::UnifiedFullViewingKey">UnifiedFullViewingKey</a>)</h4></section></div></details></div><script src="../../trait.impl/zcash_client_backend/data_api/trait.WalletRead.js" async></script></section></div></main></body></html>