386 lines
87 KiB
HTML
386 lines
87 KiB
HTML
<!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><AccountId = Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>>;
|
||
|
||
<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>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_account" class="fn">get_account</a>(
|
||
&self,
|
||
account_id: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_derived_account" class="fn">get_derived_account</a>(
|
||
&self,
|
||
seed: &SeedFingerprint,
|
||
account_id: AccountId,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.validate_seed" class="fn">validate_seed</a>(
|
||
&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: &<a class="type" href="https://docs.rs/secrecy/0.8.0/secrecy/vec/type.SecretVec.html" title="type secrecy::vec::SecretVec">SecretVec</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.seed_relevance_to_derived_accounts" class="fn">seed_relevance_to_derived_accounts</a>(
|
||
&self,
|
||
seed: &<a class="type" href="https://docs.rs/secrecy/0.8.0/secrecy/vec/type.SecretVec.html" title="type secrecy::vec::SecretVec">SecretVec</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="enum.SeedRelevance.html" title="enum zcash_client_backend::data_api::SeedRelevance">SeedRelevance</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_account_for_ufvk" class="fn">get_account_for_ufvk</a>(
|
||
&self,
|
||
ufvk: &<a class="struct" href="../keys/struct.UnifiedFullViewingKey.html" title="struct zcash_client_backend::keys::UnifiedFullViewingKey">UnifiedFullViewingKey</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.list_addresses" class="fn">list_addresses</a>(
|
||
&self,
|
||
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="struct.AddressInfo.html" title="struct zcash_client_backend::data_api::AddressInfo">AddressInfo</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_last_generated_address_matching" class="fn">get_last_generated_address_matching</a>(
|
||
&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>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../address/struct.UnifiedAddress.html" title="struct zcash_client_backend::address::UnifiedAddress">UnifiedAddress</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_account_birthday" class="fn">get_account_birthday</a>(
|
||
&self,
|
||
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><BlockHeight, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_wallet_birthday" class="fn">get_wallet_birthday</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHeight>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_wallet_summary" class="fn">get_wallet_summary</a>(
|
||
&self,
|
||
min_confirmations: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.WalletSummary.html" title="struct zcash_client_backend::data_api::WalletSummary">WalletSummary</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.chain_height" class="fn">chain_height</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHeight>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_block_hash" class="fn">get_block_hash</a>(
|
||
&self,
|
||
block_height: BlockHeight,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHash>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.block_metadata" class="fn">block_metadata</a>(
|
||
&self,
|
||
height: BlockHeight,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.block_fully_scanned" class="fn">block_fully_scanned</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_max_height_hash" class="fn">get_max_height_hash</a>(
|
||
&self,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(BlockHeight, BlockHash)>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.block_max_scanned" class="fn">block_max_scanned</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.suggest_scan_ranges" class="fn">suggest_scan_ranges</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="scanning/struct.ScanRange.html" title="struct zcash_client_backend::data_api::scanning::ScanRange">ScanRange</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_target_and_anchor_heights" class="fn">get_target_and_anchor_heights</a>(
|
||
&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>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(BlockHeight, BlockHeight)>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_tx_height" class="fn">get_tx_height</a>(
|
||
&self,
|
||
txid: TxId,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHeight>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_unified_full_viewing_keys" class="fn">get_unified_full_viewing_keys</a>(
|
||
&self,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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><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>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_memo" class="fn">get_memo</a>(&self, note_id: <a class="struct" href="../wallet/struct.NoteId.html" title="struct zcash_client_backend::wallet::NoteId">NoteId</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Memo>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_transaction" class="fn">get_transaction</a>(
|
||
&self,
|
||
txid: TxId,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Transaction>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_sapling_nullifiers" class="fn">get_sapling_nullifiers</a>(
|
||
&self,
|
||
query: <a class="enum" href="enum.NullifierQuery.html" title="enum zcash_client_backend::data_api::NullifierQuery">NullifierQuery</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>, Nullifier)>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.get_orchard_nullifiers" class="fn">get_orchard_nullifiers</a>(
|
||
&self,
|
||
query: <a class="enum" href="enum.NullifierQuery.html" title="enum zcash_client_backend::data_api::NullifierQuery">NullifierQuery</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>, Nullifier)>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.utxo_query_height" class="fn">utxo_query_height</a>(
|
||
&self,
|
||
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><BlockHeight, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
<span class="item-spacer"></span> fn <a href="#tymethod.transaction_data_requests" class="fn">transaction_data_requests</a>(
|
||
&self,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="enum.TransactionDataRequest.html" title="enum zcash_client_backend::data_api::TransactionDataRequest">TransactionDataRequest</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>>;
|
||
|
||
// Provided methods
|
||
fn <a href="#method.get_transparent_receivers" class="fn">get_transparent_receivers</a>(
|
||
&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>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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><TransparentAddress, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.get_transparent_balances" class="fn">get_transparent_balances</a>(
|
||
&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,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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><TransparentAddress, Zatoshis>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.get_transparent_address_metadata" class="fn">get_transparent_address_metadata</a>(
|
||
&self,
|
||
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
|
||
address: &TransparentAddress,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.get_known_ephemeral_addresses" class="fn">get_known_ephemeral_addresses</a>(
|
||
&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><<a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a><NonHardenedChildIndex>>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(TransparentAddress, <a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>)>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.find_account_for_ephemeral_address" class="fn">find_account_for_ephemeral_address</a>(
|
||
&self,
|
||
address: &TransparentAddress,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>> { ... }
|
||
</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 key’s 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><AccountId = Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>></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>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
account_id: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
seed: &SeedFingerprint,
|
||
account_id: AccountId,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&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: &<a class="type" href="https://docs.rs/secrecy/0.8.0/secrecy/vec/type.SecretVec.html" title="type secrecy::vec::SecretVec">SecretVec</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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>></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>(
|
||
&self,
|
||
seed: &<a class="type" href="https://docs.rs/secrecy/0.8.0/secrecy/vec/type.SecretVec.html" title="type secrecy::vec::SecretVec">SecretVec</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="enum.SeedRelevance.html" title="enum zcash_client_backend::data_api::SeedRelevance">SeedRelevance</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
ufvk: &<a class="struct" href="../keys/struct.UnifiedFullViewingKey.html" title="struct zcash_client_backend::keys::UnifiedFullViewingKey">UnifiedFullViewingKey</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Account" title="type zcash_client_backend::data_api::WalletRead::Account">Account</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="struct.AddressInfo.html" title="struct zcash_client_backend::data_api::AddressInfo">AddressInfo</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&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>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../address/struct.UnifiedAddress.html" title="struct zcash_client_backend::address::UnifiedAddress">UnifiedAddress</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><BlockHeight, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHeight>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
min_confirmations: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.WalletSummary.html" title="struct zcash_client_backend::data_api::WalletSummary">WalletSummary</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHeight>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
block_height: BlockHeight,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHash>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
height: BlockHeight,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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 wallet’s birthday height. Along with this height, this method returns
|
||
metadata describing the state of the wallet’s 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>(
|
||
&self,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(BlockHeight, BlockHash)>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.BlockMetadata.html" title="struct zcash_client_backend::data_api::BlockMetadata">BlockMetadata</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="scanning/struct.ScanRange.html" title="struct zcash_client_backend::data_api::scanning::ScanRange">ScanRange</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&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>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(BlockHeight, BlockHeight)>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(&self, txid: TxId) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><BlockHeight>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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><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>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(&self, note_id: <a class="struct" href="../wallet/struct.NoteId.html" title="struct zcash_client_backend::wallet::NoteId">NoteId</a>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Memo>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
txid: TxId,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Transaction>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
query: <a class="enum" href="enum.NullifierQuery.html" title="enum zcash_client_backend::data_api::NullifierQuery">NullifierQuery</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>, Nullifier)>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
query: <a class="enum" href="enum.NullifierQuery.html" title="enum zcash_client_backend::data_api::NullifierQuery">NullifierQuery</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>, Nullifier)>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><BlockHeight, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="enum.TransactionDataRequest.html" title="enum zcash_client_backend::data_api::TransactionDataRequest">TransactionDataRequest</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&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>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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><TransparentAddress, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&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,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<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><TransparentAddress, Zatoshis>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&self,
|
||
account: Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>,
|
||
address: &TransparentAddress,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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>(
|
||
&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><<a class="struct" href="https://doc.rust-lang.org/nightly/core/ops/range/struct.Range.html" title="struct core::ops::range::Range">Range</a><NonHardenedChildIndex>>,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><(TransparentAddress, <a class="struct" href="../wallet/struct.TransparentAddressMetadata.html" title="struct zcash_client_backend::wallet::TransparentAddressMetadata">TransparentAddressMetadata</a>)>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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 backend’s 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 << 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>(
|
||
&self,
|
||
address: &TransparentAddress,
|
||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::WalletRead::AccountId">AccountId</a>>, Self::<a class="associatedtype" href="trait.WalletRead.html#associatedtype.Error" title="type zcash_client_backend::data_api::WalletRead::Error">Error</a>></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
|
||
wallet’s 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">&</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> = (<<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>>::<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> |