librustzcash/rustdoc/latest/zcash_client_backend/fees/trait.ChangeStrategy.html

82 lines
25 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="A trait that represents the ability to compute the suggested change and fees that must be paid by a transaction having a specified set of inputs and outputs."><title>ChangeStrategy in zcash_client_backend::fees - 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="#">Change<wbr>Strategy</a></h2><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.AccountMetaT" title="AccountMetaT">AccountMetaT</a></li><li><a href="#associatedtype.Error" title="Error">Error</a></li><li><a href="#associatedtype.FeeRule" title="FeeRule">FeeRule</a></li><li><a href="#associatedtype.MetaSource" title="MetaSource">MetaSource</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.compute_balance" title="compute_balance">compute_balance</a></li><li><a href="#tymethod.fee_rule" title="fee_rule">fee_rule</a></li><li><a href="#tymethod.fetch_wallet_meta" title="fetch_wallet_meta">fetch_wallet_meta</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In zcash_<wbr>client_<wbr>backend::<wbr>fees</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">fees</a></div><h1>Trait <span class="trait">ChangeStrategy</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/fees.rs.html#489-554">Source</a> </span></div><pre class="rust item-decl"><code>pub trait ChangeStrategy {
type <a href="#associatedtype.FeeRule" class="associatedtype">FeeRule</a>: FeeRule + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>;
type <a href="#associatedtype.Error" class="associatedtype">Error</a>;
type <a href="#associatedtype.MetaSource" class="associatedtype">MetaSource</a>: <a class="trait" href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource">InputSource</a>;
type <a href="#associatedtype.AccountMetaT" class="associatedtype">AccountMetaT</a>;
// Required methods
fn <a href="#tymethod.fee_rule" class="fn">fee_rule</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.FeeRule" title="type zcash_client_backend::fees::ChangeStrategy::FeeRule">FeeRule</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.fetch_wallet_meta" class="fn">fetch_wallet_meta</a>(
&amp;self,
meta_source: &amp;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.MetaSource" title="type zcash_client_backend::fees::ChangeStrategy::MetaSource">MetaSource</a>,
account: &lt;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.MetaSource" title="type zcash_client_backend::fees::ChangeStrategy::MetaSource">MetaSource</a> as <a class="trait" href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource">InputSource</a>&gt;::<a class="associatedtype" href="../data_api/trait.InputSource.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::InputSource::AccountId">AccountId</a>,
exclude: &amp;[&lt;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.MetaSource" title="type zcash_client_backend::fees::ChangeStrategy::MetaSource">MetaSource</a> as <a class="trait" href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource">InputSource</a>&gt;::<a class="associatedtype" href="../data_api/trait.InputSource.html#associatedtype.NoteRef" title="type zcash_client_backend::data_api::InputSource::NoteRef">NoteRef</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;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.AccountMetaT" title="type zcash_client_backend::fees::ChangeStrategy::AccountMetaT">AccountMetaT</a>, &lt;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.MetaSource" title="type zcash_client_backend::fees::ChangeStrategy::MetaSource">MetaSource</a> as <a class="trait" href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource">InputSource</a>&gt;::<a class="associatedtype" href="../data_api/trait.InputSource.html#associatedtype.Error" title="type zcash_client_backend::data_api::InputSource::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.compute_balance" class="fn">compute_balance</a>&lt;P: Parameters, NoteRefT: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>&gt;(
&amp;self,
params: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;P</a>,
target_height: BlockHeight,
transparent_inputs: &amp;[impl InputView],
transparent_outputs: &amp;[impl OutputView],
sapling: &amp;impl <a class="trait" href="sapling/trait.BundleView.html" title="trait zcash_client_backend::fees::sapling::BundleView">BundleView</a>&lt;NoteRefT&gt;,
orchard: &amp;impl <a class="trait" href="orchard/trait.BundleView.html" title="trait zcash_client_backend::fees::orchard::BundleView">BundleView</a>&lt;NoteRefT&gt;,
ephemeral_balance: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="enum" href="enum.EphemeralBalance.html" title="enum zcash_client_backend::fees::EphemeralBalance">EphemeralBalance</a>&gt;,
wallet_meta: &amp;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.AccountMetaT" title="type zcash_client_backend::fees::ChangeStrategy::AccountMetaT">AccountMetaT</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="struct.TransactionBalance.html" title="struct zcash_client_backend::fees::TransactionBalance">TransactionBalance</a>, <a class="enum" href="enum.ChangeError.html" title="enum zcash_client_backend::fees::ChangeError">ChangeError</a>&lt;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.Error" title="type zcash_client_backend::fees::ChangeStrategy::Error">Error</a>, NoteRefT&gt;&gt;;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A trait that represents the ability to compute the suggested change and fees that must be paid
by a transaction having a specified set of inputs and outputs.</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"><section id="associatedtype.FeeRule" class="method"><a class="src rightside" href="../../src/zcash_client_backend/fees.rs.html#490">Source</a><h4 class="code-header">type <a href="#associatedtype.FeeRule" class="associatedtype">FeeRule</a>: FeeRule + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a></h4></section><section id="associatedtype.Error" class="method"><a class="src rightside" href="../../src/zcash_client_backend/fees.rs.html#491">Source</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a></h4></section><details class="toggle" open><summary><section id="associatedtype.MetaSource" class="method"><a class="src rightside" href="../../src/zcash_client_backend/fees.rs.html#498">Source</a><h4 class="code-header">type <a href="#associatedtype.MetaSource" class="associatedtype">MetaSource</a>: <a class="trait" href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource">InputSource</a></h4></section></summary><div class="docblock"><p>The type of metadata source that this change strategy requires in order to be able to
retrieve required wallet metadata. If more capabilities are required of the backend than
are exposed in the <a href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource"><code>InputSource</code></a> trait, the implementer of this trait should define their
own trait that descends from <a href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource"><code>InputSource</code></a> and adds the required capabilities there, and
then implement that trait for their desired database backend.</p>
</div></details><details class="toggle" open><summary><section id="associatedtype.AccountMetaT" class="method"><a class="src rightside" href="../../src/zcash_client_backend/fees.rs.html#502">Source</a><h4 class="code-header">type <a href="#associatedtype.AccountMetaT" class="associatedtype">AccountMetaT</a></h4></section></summary><div class="docblock"><p>Tye type of wallet metadata that this change strategy relies upon in order to compute
change.</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.fee_rule" class="method"><a class="src rightside" href="../../src/zcash_client_backend/fees.rs.html#506">Source</a><h4 class="code-header">fn <a href="#tymethod.fee_rule" class="fn">fee_rule</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.FeeRule" title="type zcash_client_backend::fees::ChangeStrategy::FeeRule">FeeRule</a></h4></section></summary><div class="docblock"><p>Returns the fee rule that this change strategy will respect when performing
balance computations.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.fetch_wallet_meta" class="method"><a class="src rightside" href="../../src/zcash_client_backend/fees.rs.html#510-515">Source</a><h4 class="code-header">fn <a href="#tymethod.fetch_wallet_meta" class="fn">fetch_wallet_meta</a>(
&amp;self,
meta_source: &amp;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.MetaSource" title="type zcash_client_backend::fees::ChangeStrategy::MetaSource">MetaSource</a>,
account: &lt;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.MetaSource" title="type zcash_client_backend::fees::ChangeStrategy::MetaSource">MetaSource</a> as <a class="trait" href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource">InputSource</a>&gt;::<a class="associatedtype" href="../data_api/trait.InputSource.html#associatedtype.AccountId" title="type zcash_client_backend::data_api::InputSource::AccountId">AccountId</a>,
exclude: &amp;[&lt;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.MetaSource" title="type zcash_client_backend::fees::ChangeStrategy::MetaSource">MetaSource</a> as <a class="trait" href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource">InputSource</a>&gt;::<a class="associatedtype" href="../data_api/trait.InputSource.html#associatedtype.NoteRef" title="type zcash_client_backend::data_api::InputSource::NoteRef">NoteRef</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;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.AccountMetaT" title="type zcash_client_backend::fees::ChangeStrategy::AccountMetaT">AccountMetaT</a>, &lt;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.MetaSource" title="type zcash_client_backend::fees::ChangeStrategy::MetaSource">MetaSource</a> as <a class="trait" href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource">InputSource</a>&gt;::<a class="associatedtype" href="../data_api/trait.InputSource.html#associatedtype.Error" title="type zcash_client_backend::data_api::InputSource::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Uses the provided metadata source to obtain the wallet metadata required for change
creation determinations.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.compute_balance" class="method"><a class="src rightside" href="../../src/zcash_client_backend/fees.rs.html#543-553">Source</a><h4 class="code-header">fn <a href="#tymethod.compute_balance" class="fn">compute_balance</a>&lt;P: Parameters, NoteRefT: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>&gt;(
&amp;self,
params: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;P</a>,
target_height: BlockHeight,
transparent_inputs: &amp;[impl InputView],
transparent_outputs: &amp;[impl OutputView],
sapling: &amp;impl <a class="trait" href="sapling/trait.BundleView.html" title="trait zcash_client_backend::fees::sapling::BundleView">BundleView</a>&lt;NoteRefT&gt;,
orchard: &amp;impl <a class="trait" href="orchard/trait.BundleView.html" title="trait zcash_client_backend::fees::orchard::BundleView">BundleView</a>&lt;NoteRefT&gt;,
ephemeral_balance: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="enum" href="enum.EphemeralBalance.html" title="enum zcash_client_backend::fees::EphemeralBalance">EphemeralBalance</a>&gt;,
wallet_meta: &amp;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.AccountMetaT" title="type zcash_client_backend::fees::ChangeStrategy::AccountMetaT">AccountMetaT</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="struct.TransactionBalance.html" title="struct zcash_client_backend::fees::TransactionBalance">TransactionBalance</a>, <a class="enum" href="enum.ChangeError.html" title="enum zcash_client_backend::fees::ChangeError">ChangeError</a>&lt;Self::<a class="associatedtype" href="trait.ChangeStrategy.html#associatedtype.Error" title="type zcash_client_backend::fees::ChangeStrategy::Error">Error</a>, NoteRefT&gt;&gt;</h4></section></summary><div class="docblock"><p>Computes the totals of inputs, suggested change amounts, and fees given the
provided inputs and outputs being used to construct a transaction.</p>
<p>The fee computed as part of this operation should take into account the prospective
change outputs recommended by this operation. If insufficient funds are available to
supply the requested outputs and required fees, implementations should return
<a href="enum.ChangeError.html#variant.InsufficientFunds" title="variant zcash_client_backend::fees::ChangeError::InsufficientFunds"><code>ChangeError::InsufficientFunds</code></a>.</p>
<p>If the inputs include notes or UTXOs that are not economic to spend in the context
of this input selection, a <a href="enum.ChangeError.html#variant.DustInputs" title="variant zcash_client_backend::fees::ChangeError::DustInputs"><code>ChangeError::DustInputs</code></a> error can be returned
indicating inputs that should be removed from the selection (all of which will
have value less than or equal to the marginal fee). The caller should order the
inputs from most to least preferred to spend within each pool, so that the most
preferred ones are less likely to be indicated to remove.</p>
<ul>
<li><code>ephemeral_balance</code>: if the transaction is to be constructed with either an
ephemeral transparent input or an ephemeral transparent output this argument
may be used to provide the value of that input or output. The value of this
argument should be <code>None</code> in the case that there are no such items.</li>
<li><code>wallet_meta</code>: Additional wallet metadata that the change strategy may use
in determining how to construct change outputs. This wallet metadata value
should be computed excluding the inputs provided in the <code>transparent_inputs</code>,
<code>sapling</code>, and <code>orchard</code> arguments.</li>
</ul>
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></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-ChangeStrategy-for-MultiOutputChangeStrategy%3CR,+I%3E" class="impl"><a class="src rightside" href="../../src/zcash_client_backend/fees/zip317.rs.html#198-263">Source</a><a href="#impl-ChangeStrategy-for-MultiOutputChangeStrategy%3CR,+I%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R, I&gt; <a class="trait" href="trait.ChangeStrategy.html" title="trait zcash_client_backend::fees::ChangeStrategy">ChangeStrategy</a> for <a class="struct" href="zip317/struct.MultiOutputChangeStrategy.html" title="struct zcash_client_backend::fees::zip317::MultiOutputChangeStrategy">MultiOutputChangeStrategy</a>&lt;R, I&gt;<div class="where">where
R: <a class="trait" href="zip317/trait.Zip317FeeRule.html" title="trait zcash_client_backend::fees::zip317::Zip317FeeRule">Zip317FeeRule</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,
I: <a class="trait" href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource">InputSource</a>,
&lt;R as FeeRule&gt;::Error: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;BalanceError&gt;,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.FeeRule-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/zcash_client_backend/fees/zip317.rs.html#204">Source</a><a href="#associatedtype.FeeRule-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.FeeRule" class="associatedtype">FeeRule</a> = R</h4></section><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/zcash_client_backend/fees/zip317.rs.html#205">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = &lt;R as FeeRule&gt;::Error</h4></section><section id="associatedtype.MetaSource-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/zcash_client_backend/fees/zip317.rs.html#206">Source</a><a href="#associatedtype.MetaSource-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.MetaSource" class="associatedtype">MetaSource</a> = I</h4></section><section id="associatedtype.AccountMetaT-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/zcash_client_backend/fees/zip317.rs.html#207">Source</a><a href="#associatedtype.AccountMetaT-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.AccountMetaT" class="associatedtype">AccountMetaT</a> = <a class="struct" href="../data_api/struct.AccountMeta.html" title="struct zcash_client_backend::data_api::AccountMeta">AccountMeta</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ChangeStrategy-for-SingleOutputChangeStrategy%3CR,+I%3E" class="impl"><a class="src rightside" href="../../src/zcash_client_backend/fees/zip317.rs.html#95-155">Source</a><a href="#impl-ChangeStrategy-for-SingleOutputChangeStrategy%3CR,+I%3E" class="anchor">§</a><h3 class="code-header">impl&lt;R, I&gt; <a class="trait" href="trait.ChangeStrategy.html" title="trait zcash_client_backend::fees::ChangeStrategy">ChangeStrategy</a> for <a class="struct" href="zip317/struct.SingleOutputChangeStrategy.html" title="struct zcash_client_backend::fees::zip317::SingleOutputChangeStrategy">SingleOutputChangeStrategy</a>&lt;R, I&gt;<div class="where">where
R: <a class="trait" href="zip317/trait.Zip317FeeRule.html" title="trait zcash_client_backend::fees::zip317::Zip317FeeRule">Zip317FeeRule</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,
I: <a class="trait" href="../data_api/trait.InputSource.html" title="trait zcash_client_backend::data_api::InputSource">InputSource</a>,
&lt;R as FeeRule&gt;::Error: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;BalanceError&gt;,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.FeeRule-2" class="associatedtype trait-impl"><a class="src rightside" href="../../src/zcash_client_backend/fees/zip317.rs.html#101">Source</a><a href="#associatedtype.FeeRule-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.FeeRule" class="associatedtype">FeeRule</a> = R</h4></section><section id="associatedtype.Error-2" class="associatedtype trait-impl"><a class="src rightside" href="../../src/zcash_client_backend/fees/zip317.rs.html#102">Source</a><a href="#associatedtype.Error-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Error" class="associatedtype">Error</a> = &lt;R as FeeRule&gt;::Error</h4></section><section id="associatedtype.MetaSource-2" class="associatedtype trait-impl"><a class="src rightside" href="../../src/zcash_client_backend/fees/zip317.rs.html#103">Source</a><a href="#associatedtype.MetaSource-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.MetaSource" class="associatedtype">MetaSource</a> = I</h4></section><section id="associatedtype.AccountMetaT-2" class="associatedtype trait-impl"><a class="src rightside" href="../../src/zcash_client_backend/fees/zip317.rs.html#104">Source</a><a href="#associatedtype.AccountMetaT-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.AccountMetaT" class="associatedtype">AccountMetaT</a> = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></h4></section></div></details></div><script src="../../trait.impl/zcash_client_backend/fees/trait.ChangeStrategy.js" async></script></section></div></main></body></html>