Cargo Features

zcash_client_backend has no features set by default.

[dependencies]
zcash_client_backend = { version = "0.16.0", features = ["lightwalletd-tonic", "lightwalletd-tonic-tls-webpki-roots", "lightwalletd-tonic-transport", "transparent-inputs", "orchard", "pczt", "sync", "tor", "test-dependencies", "non-standard-fees", "unstable", "unstable-serialization", "unstable-spanning-tree"] }
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 and tonic

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?

Enables receiving transparent funds and shielding them.

Enables transparent-inputs of zcash_keys and zcash_primitives and bip32

- Errors

Affects pool::send_multi_step_proposed_transfer, pool::proposal_fails_if_not_all_ephemeral_outputs_consumed, pool::shield_transparent, testing::transparent, input_selection::ShieldingSelector, wallet::ProposeShieldingErrT, wallet::ShieldErrT, wallet::propose_shielding, wallet::shield_transparent_funds, data_api::InputSource.get_unspent_transparent_output, data_api::InputSource.get_spendable_transparent_outputs, data_api::WalletRead.get_transparent_receivers, data_api::WalletRead.get_transparent_balances, data_api::WalletRead.get_transparent_address_metadata, data_api::WalletRead.get_known_ephemeral_addresses, data_api::WalletRead.find_account_for_ephemeral_address, data_api::WalletTest.get_transparent_output, data_api::WalletWrite.reserve_next_n_ephemeral_addresses, wallet::TransparentAddressMetadata, pool::fully_funded_send_to_t

orchard pczt?

Enables receiving and spending Orchard funds.

Enables orchard 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::TestFvk.orchard_ovk, 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

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 arti-client ^0.23, dynosaur, and futures-util

arti-client:
  • Tor -- 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 rust_decimal, serde, and serde_json

rust_decimal:

- Currency conversion

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

http-body-util:

- HTTP through Tor

and tokio, tokio-rustls ^0.24, tor-rtcompat ^0.23, tower ^0.4, trait-variant, and webpki-roots ^0.25

tokio:

- Tor

Affects zcash_client_backend::tor

test-dependencies

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

Enables jubjub, proptest, rand, and rand_chacha, bundled-prover of zcash_proofs, local-consensus of zcash_protocol, test-dependencies of zcash_keys and zcash_primitives, test-dependencies of optional orchard and ambassador and assert_matches

ambassador:

- Test dependencies

and test-dependencies of incrementalmerkletree ^0.7.1

- 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?