Kris Nuttycombe
3ea7d84183
zcash_client_backend: Update to use extracted `zip321` crate
2024-04-05 16:25:21 -06:00
Kris Nuttycombe
5f1d75937b
zcash_client_backend: Treat protobuf default as the empty tree.
...
Fixes #1280
2024-03-19 17:26:45 -06:00
Kris Nuttycombe
4f7c5bd722
zcash_client_sqlite: Fix `scan_complete` tests.
2024-03-19 16:11:57 -06:00
Willem Olding
1775f6525b
Add WASM support to `lightwalletd-tonic` feature flag ( #1270 )
...
The transport-specific code is moved behind a new `lightwalletd-tonic-transport` feature flag.
2024-03-15 11:58:13 +00:00
Jack Grigg
7d603b8c59
zcash_client_backend: Add `proto::service::TreeState::to_chain_state`
2024-03-13 12:54:58 +00:00
Jack Grigg
c4abcba343
zcash_client_backend: Add Orchard change output support to proposals
2024-03-10 21:47:40 +00:00
Kris Nuttycombe
a4b951d193
Apply suggestions from code review
...
Co-authored-by: str4d <thestr4d@gmail.com>
2024-02-29 15:19:07 -07:00
Kris Nuttycombe
7e8723bea9
zcash_client_backend: Add Orchard support to batch scanning.
2024-02-29 12:04:53 -07:00
Kris Nuttycombe
c7df76f7d1
zcash_client_backend: Factor out common note decryption from `scan_block_with_runner`
2024-02-29 11:55:23 -07:00
Kris Nuttycombe
9c3467e941
zcash_client_backend: Implement `TreeState::orchard_tree`
2024-02-29 07:21:51 -07:00
Kris Nuttycombe
4e3d99f1d0
zcash_client_backend: Allow proposer to specify fallback change pool.
...
In the event that the pool to which change should be sent cannot
automatically be determined based upon the inputs and outputs of a
transaction, it is up to the caller to specify where change should
be sent.
2024-02-15 21:44:59 -07:00
Kris Nuttycombe
dd6711aec1
zcash_client_backend: Address comments from code review & fix incorrect `data_api::wallet` documentation.
2024-02-14 20:24:12 -07:00
Kris Nuttycombe
beeea7b44e
zcash_client_backend: Modify `Proposal` to make multi-step transactions representable.
2024-02-14 19:30:52 -07:00
Kris Nuttycombe
1db3109cb4
zcash_client_backend: Move the `Proposal` types to a `proposal` module.
...
This separation is in preparation for modifying the `Proposal` type
to wrap a vector of proposal steps.
2024-02-14 19:04:47 -07:00
Kris Nuttycombe
6e0d9a9420
zcash_client_backend: Add selected output pools to transaction proposals.
...
Fixes #1174
2024-02-14 18:58:48 -07:00
Kris Nuttycombe
11f5589595
zcash_client_backend: Allow serialization of empty transaction requests.
2024-01-30 16:42:31 -08:00
Kris Nuttycombe
184e3c741f
Add `zcash_unstable` compiler flag to fully gate `orchard` functionality
2024-01-24 17:48:10 -07:00
Kris Nuttycombe
adc75566a0
zcash_client_backend: Add Orchard support to transaction proposals.
2024-01-05 16:59:54 -07:00
Kris Nuttycombe
56f2ac573c
zcash_client_backend: Add Orchard support to change strategies.
...
This modifies the `compute_balance` method to operate in a
bundle-oriented fashion, which simplifies the API and makes it easier to
elide Orchard functionality in the case that the `orchard` feature is
not enabled.
2024-01-05 16:59:54 -07:00
Kris Nuttycombe
d4aa2d6f06
Replace SaplingInputSource and TransparentInputSource with InputSource
...
This unification allows us to better isolate transparent-input dependent
functionality. Previously, `TransparentInputSource` could not be placed
under a feature flag because the interface was needed for proposal
deserialization; by instead making the transparent input source methods
flag-dependent, we can correctly produce an error when proposal
deserializaiton attempts to select transparent inputs and the feature
flag is off.
2024-01-04 14:00:20 -07:00
Kris Nuttycombe
f18d082aa3
zcash_client_backend: Introduce an "orchard-client" feature flag.
...
We plan to also introduce a similar flag to gate access to Sapling
functionality. Since introduction of Orchard functionality is still
nascent, it's the correct time to introduce this isolation, before
there's more functionality that needs to be isolated in this fashion.
2024-01-03 17:05:20 -07:00
Jack Grigg
b6907b14e6
Use `sapling-crypto` crate directly outside `zcash_primitives`
2023-12-12 19:50:26 +00:00
Kris Nuttycombe
6b10a6dc86
zcash_client_backend: Move essential wallet types into the `wallet` module.
2023-12-05 10:55:04 -07:00
Kris Nuttycombe
c5f48f50e1
Apply suggestions from code review
...
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
Co-authored-by: str4d <thestr4d@gmail.com>
2023-11-15 10:53:23 -07:00
Kris Nuttycombe
7aab6fd7a7
zcash_client_backend: add `Display` and `Error` impls for proposal parsing errors.
2023-11-14 12:59:40 -07:00
Kris Nuttycombe
aeb405ef5d
Apply suggestions from code review
...
Co-authored-by: str4d <thestr4d@gmail.com>
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-11-14 12:58:22 -07:00
Kris Nuttycombe
33169719ce
zcash_client_backend: Add serialization & parsing for protobuf Proposal representation.
2023-11-09 20:07:16 -07:00
sasha
572563338b
Add a protobuf representation for transaction proposals.
...
Co-authored-by: Kris Nuttycombe <kris@nutty.land>
2023-11-09 20:02:36 -07:00
Jack Grigg
54eb03e34e
zcash_primitives: Move Sapling bundle types into `sapling` module
2023-11-09 04:04:07 +00:00
Jack Grigg
71e38fe190
zcash_client_sqlite: Enable `TestState` to mine wallet transactions
2023-09-22 17:20:07 +00:00
Kris Nuttycombe
5b3f544102
Apply suggestions from code review
...
Co-authored-by: str4d <thestr4d@gmail.com>
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-01 10:38:20 -06:00
Kris Nuttycombe
459dc49b54
zcash_client_backend: Accept account birthday as a parameter to `create_account`
...
This also removes the zcash_client_sqlite-specific database
initialization procedures in favor of a standardized approach using the
methods available via the data access API.
2023-09-01 10:08:17 -06:00
Jack Grigg
3ad07cad9e
zcash_client_backend: Reduce scope of `lightwalletd-tonic` feature flag
...
The `zcash_client_backend::proto::service::compact_tx_streamer_client`
is now the only module controlled by that feature flag, exposing the
service types for use by parsers.
2023-08-31 20:32:04 +00:00
Jack Grigg
42c332a7a8
Use `sapling::note::ExtractedNoteCommitment` type in APIs
2023-01-24 14:37:11 +00:00
Jack Grigg
fee0b6a18d
Make Sapling transaction structs non-transparent
...
We instead provide getters for the struct fields.
2022-12-13 04:03:06 +00:00
Kris Nuttycombe
fb8681adbb
Ignore clippy lints in generated protobuf modules.
2022-11-04 14:14:56 -06:00
Jack Grigg
17a4830c70
zcash_client_backend: Add gRPC bindings behind feature flag
...
The lightwalletd service file is sourced from:
Git: https://github.com/zcash/lightwalletd
Rev: ad5ecda5fbb5e12799f926b8cd785d54fdd250c8
Closes zcash/librustzcash#585 .
2022-11-02 06:22:02 +00:00
Jack Grigg
379b703e6b
zcash_client_backend: Switch from `protobuf 2` to `prost 0.11`
...
The latter is maintained by the Tokio developers, and has easy
integration with the `tonic` gRPC library which is actively maintained.
2022-11-02 06:21:38 +00:00
Jack Grigg
b3f13020ac
zcash_client_backend: Remove direct ff dependency
2022-10-02 23:15:51 +01:00
Kris Nuttycombe
a93f5945ab
Remove redundant TryFrom/TryInto imports.
2022-09-02 12:05:15 -06:00
Jack Grigg
cceae3ac34
zcash_client_backend: Address compact_formats.proto comments
2022-02-17 23:58:20 +00:00
Jack Grigg
18562c71dc
zcash_client_backend: Bring in latest `compact_formats.proto`
...
Source: 83bb19918f/walletrpc/compact_formats.proto
2022-02-17 02:44:20 +00:00
Jack Grigg
e148ca84ba
Migrate to latest `zcash_note_encryption` API
2021-12-17 05:34:45 +00:00
Jack Grigg
65e1d32774
ff 0.11, group 0.11, etc.
2021-09-09 18:20:37 +01:00
Jack Grigg
279a8b6bb6
Use `EphemeralKeyBytes` type in place of `[u8; 32]`
2021-08-09 21:28:42 +01:00
Jack Grigg
83c6a2d1ca
Store OutputDescription `ephemeral_key` as bytes
...
This removes an unnecessary `to_bytes` during trial decryption of notes,
and more closely matches the protocol spec. We retain the consensus rule
canonicity check on epk due to `SaplingVerificationContext::check_output`
taking a `jubjub::ExtendedPoint`, forcing `zcashd` to parse the bytes.
2021-08-06 16:54:48 +01:00
Kris Nuttycombe
84e8952ec3
Move Sapling components to a bundle within TransactionData
2021-06-03 18:46:38 -06:00
Kris Nuttycombe
76999eb5c7
Make txid contents private & use txid for TzeOutPoint
2021-06-01 07:03:31 -06:00
Kris Nuttycombe
324fc36521
Use ShieldedOutput trait for note encryption/decryption.
...
This change modifies note encryption and decryption functions
to treat a shielded output as a single value instead of handling
the parts of an output as independent arguments.
2021-04-12 12:59:06 -06:00
Kris Nuttycombe
4086df772c
Move sapling-specific primitives into the sapling module.
2021-03-27 16:18:21 +13:00