Cargo Features

zcash_client_backend has no features set by default.

[dependencies]
zcash_client_backend = { version = "0.21.0", features = ["lightwalletd-tonic", "lightwalletd-tonic-tls-webpki-roots", "lightwalletd-tonic-transport", "transparent-inputs", "transparent-key-import", "orchard", "zcashd-compat", "pczt", "sync", "tor", "test-dependencies", "non-standard-fees", "unstable", "unstable-serialization", "unstable-spanning-tree"] }
default

These default features are set whenever zcash_client_backend is added without default-features = false somewhere in the dependency tree.

Enables time

Dependencies exposed in a public API:
(Breaking upgrades to these require a breaking upgrade to this crate.)
- Data Access API

lightwalletd-tonic lightwalletd-tonic-tls-webpki-roots? lightwalletd-tonic-transport? sync?

Enables the tonic gRPC client bindings for connecting to a lightwalletd server.

Enables optional hyper-util, tonic, and tonic-prost

Affects service::compact_tx_streamer_client

lightwalletd-tonic-tls-webpki-roots = lightwalletd-tonic

Enables the tls-webpki-roots feature of tonic.

Enables tls-webpki-roots of optional tonic

lightwalletd-tonic-transport = lightwalletd-tonic

Enables the transport feature of tonic producing a fully-featured client and server implementation

Enables transport of optional tonic

transparent-inputs pczt? transparent-key-import?

Enables receiving transparent funds and shielding them.

Enables transparent-inputs of zcash_transparent, zcash_keys, and zcash_primitives and bip32

- Errors

and secp256k1 ^0.29

- Transparent protocol

Affects pool::fails_to_send_max_spendable_to_transparent_with_memo, pool::spend_everything_multi_step_single_note_proposed_transfer, pool::spend_everything_multi_step_many_notes_proposed_transfer, pool::spend_everything_multi_step_with_marginal_notes_proposed_transfer, pool::send_multi_step_proposed_transfer, pool::spend_all_funds_multi_step_proposed_transfer, pool::proposal_fails_if_not_all_ephemeral_outputs_consumed, pool::shield_transparent, pool::wallet_recovery_computes_fees, testing::transparent, input_selection::ShieldingSelector, wallet::ProposeShieldingErrT, wallet::ShieldErrT, wallet::propose_shielding, wallet::shield_transparent_funds, data_api::WalletUtxo, data_api::TransactionStatusFilter, data_api::OutputStatusFilter, data_api::TransactionsInvolvingAddress, data_api::InputSource.get_unspent_transparent_output

transparent-key-import = transparent-inputs

Enables operations that permit arbitrary transparent pubkeys to be associated with an account in the wallet. Applications that rely on this feature must maintain spending keys corresponding to all imported pubkeys for any account from which it permits spending.

Affects data_api::WalletWrite.import_standalone_transparent_pubkey

orchard pczt?

Enables receiving and spending Orchard funds.

Enables orchard ^0.11 and pasta_curves, orchard of zcash_keys

Affects pool::pool_crossing_required, pool::fully_funded_fully_private, pool::multi_pool_checkpoint, pool::multi_pool_checkpoints_with_pruning, testing::orchard, testing::InitialChainState.prior_orchard_roots, testing::MockWalletDb.orchard_tree, data_api::ORCHARD_SHARD_HEIGHT, data_api::NoteRetention.should_retain_orchard, data_api::WalletRead.get_orchard_nullifiers, data_api::ScannedBlockCommitments.orchard, data_api::WalletCommitmentTrees.with_orchard_tree_mut, data_api::WalletCommitmentTrees.put_orchard_subtree_roots, fees::orchard, wallet::WalletOrchardSpend, wallet::WalletOrchardOutput, pool::fully_funded_send_to_t

zcashd-compat

Enables compatibility with legacy zcashd wallet data

Enables zcashd-compat of zcash_keys

pczt = orchard, transparent-inputs

Enables creating partially-constructed transactions for use in hardware wallet and multisig scenarios.

Enables postcard and serde, io-finalizer, prover, signer, spend-finalizer, tx-extractor and zcp-builder of pczt

Affects error::PcztError, pool::ShieldedPoolTester.add_proof_generation_keys, pool::ShieldedPoolTester.apply_signatures_to_pczt, pool::pczt_single_step, wallet::ExtractErrT, wallet::create_pczt_from_proposal, wallet::extract_and_store_transaction_from_pczt

sync = lightwalletd-tonic

Exposes a wallet synchronization function that implements the necessary state machine.

Enables async-trait and futures-util

async-trait:

- Sync engine

Affects chain::BlockCache, zcash_client_backend::sync

tor

Exposes a Tor client for hiding a wallet's IP address while performing certain wallet operations.

Enables rust_decimal, serde, and serde_json

rust_decimal:

- Currency conversion

and arti-client ^0.35, dynosaur, fs-mistrust ^0.12, and futures-util

arti-client:
  • Tor -- Exposed types: arti_client::DormantMode, fs_mistrust::MistrustBuilder. -- Exposed error types: arti_client::Error, arti_client::config::ConfigBuildError, hyper::Error, hyper::http::Error, serde_json::Error. We could avoid this with changes to error handling.

and http-body-util, hyper, hyper-util, and rand ^0.8

http-body-util:

- HTTP through Tor

and tokio, tokio-rustls, tor-rtcompat ^0.35, tower, trait-variant, and webpki-roots

tokio:

- Tor

Affects zcash_client_backend::tor

test-dependencies

Exposes APIs that are useful for testing, such as proptest strategies.

NOTE: Semver-breaking changes to the APIs exposed by this feature may be present in any release version, including patch releases.

Enables jubjub, proptest >=1, <1.7, rand ^0.8, and rand_chacha ^0.3, bundled-prover of zcash_proofs, local-consensus of zcash_protocol, test-dependencies of zcash_keys and zcash_primitives, test-dependencies of optional orchard ^0.11 and ambassador and assert_matches

ambassador:

- Test dependencies

and test-dependencies of incrementalmerkletree

- Note commitment trees

Affects chain::testing

non-standard-fees

Exposes APIs that allow calculation of non-standard fees.

Enables non-standard-fees of zcash_primitives

Affects fees::fixed

unstable

Experimental features

Exposes unstable APIs. Their behaviour may change at any time.

Enables unstable of zcash_keys and byteorder

- Encodings

unstable-serialization

Exposes APIs for unstable serialization formats. These may change at any time.

Enables byteorder

Affects zcash_client_backend::serialization

unstable-spanning-tree

Exposes the data_api::scanning::spanning_tree module.

Affects spanning_tree::SpanningTree

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

zcash_proofs test-dependencies?