Vendor the two local Rust crates that build the lite backend artifact into third_party/silentdragonxlite/ (the qtlib C-ABI wrapper + the silentdragonxlitelib core, with proto/res and all the lite-send fixes), and point build-lite-backend-artifact.sh's default --backend-dir there, so the lite wallet builds without the upstream SilentDragonXLite repo. External build inputs are now only the Rust toolchain + git.dragonx.is + crates.io: - the 6 librustzcash git deps point at the git.dragonx.is/DragonX/librustzcash mirror (pinned rev acff1444), not git.hush.is; - the Sapling params are gitignored (not committed, no Git LFS) - the build fetches them from the git.dragonx.is/DragonX/zcash-params 'sapling-v1' release and verifies their SHA-256 before rust-embed bakes them in (ensure_sapling_params). For fully offline builds, cargo vendor into lib/vendor/ and add a vendored-sources redirect (vendor/ is gitignored; the script symlinks it into the prepared dir). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
30 lines
872 B
Rust
30 lines
872 B
Rust
// Copyright The Hush Developers 2019-2022
|
|
// Released under the GPLv3
|
|
#[macro_use]
|
|
extern crate rust_embed;
|
|
|
|
pub mod lightclient;
|
|
pub mod grpcconnector;
|
|
pub mod lightwallet;
|
|
pub mod commands;
|
|
|
|
#[cfg(feature = "embed_params")]
|
|
#[derive(RustEmbed)]
|
|
#[folder = "zcash-params/"]
|
|
pub struct SaplingParams;
|
|
|
|
#[derive(RustEmbed)]
|
|
#[folder = "res/"]
|
|
pub struct PubCertificate;
|
|
|
|
|
|
// Anchor depth back from the tip for shielded spends. MUST be > 0: with 0 the wallet anchors to
|
|
// the absolute chain tip, which races the node committing that anchor and intermittently triggers
|
|
// "bad-txns-shielded-requirements-not-met" (missing sapling anchor) on broadcast. 4 matches upstream
|
|
// zecwallet-lite and uses a confirmed, reorg-stable anchor.
|
|
pub const ANCHOR_OFFSET: u32 = 4;
|
|
|
|
pub mod grpc_client {
|
|
tonic::include_proto!("cash.z.wallet.sdk.rpc");
|
|
}
|