Commit Graph

2640 Commits

Author SHA1 Message Date
Kris Nuttycombe c0271b2b08
Merge pull request #708 from sellout/qr-parsing
Parse ZIP 321 URIs without query parameters
2022-11-18 10:53:05 -07:00
Greg Pfeil 4b5086d51d Parse ZIP 321 URIs without query parameters
Fixes #707.
2022-11-17 18:44:36 -07:00
Greg Pfeil 29af0bcb29 Add a failing test for ZIP 321 URI without params 2022-11-17 17:10:21 -07:00
Jack Grigg 81f8f6a5a4 Update generated protobufs
`prost 0.11.2` added code formatting support, so the generated files now
better match what rustfmt produces.
2022-11-12 05:26:07 +00:00
Greg Pfeil bf6ad58a02
Merge pull request #700 from zcash/zcash_client_sqlite-0.4.0
Release `zcash_client_sqlite 0.4.0` and dependencies
2022-11-11 17:08:11 -07:00
Jack Grigg a583255d45 Document that `decrypt_and_store_transaction` always stores the tx
Closes zcash/librustzcash#497.
2022-11-11 22:11:59 +00:00
Jack Grigg 86cef4158b zcash_client_sqlite 0.4.0 2022-11-11 20:47:21 +00:00
Jack Grigg 98dd130f3a zcash_client_backend 0.6.0 2022-11-11 20:47:21 +00:00
Jack Grigg c03ef4926a zcash_proofs 0.9.0 2022-11-11 20:39:36 +00:00
Jack Grigg c3b6e5a72a zcash_primitives 0.9.0 2022-11-11 20:37:55 +00:00
Jack Grigg 318d1b7522 Clean up changelogs 2022-11-11 20:29:26 +00:00
str4d 116ed0a3fc
Merge pull request #699 from zcash/wallet/error_display
Add missing `std::fmt::Display` implementations for error types.
2022-11-11 07:26:04 +00:00
str4d 53d56362cd Fix typos in error type `Display` messages 2022-11-11 05:33:48 +00:00
str4d de1debf126
Merge pull request #697 from zcash/mapauth-identity-maps
Add identity `MapAuth` implementations
2022-11-11 04:20:24 +00:00
Kris Nuttycombe ed96131c4f Add missing `std::fmt::Display` implementations for error types. 2022-11-10 21:17:57 -07:00
Jack Grigg 69665b9284 Add identity `MapAuth` implementations 2022-11-11 03:38:58 +00:00
Kris Nuttycombe d65a3fe84f
Merge pull request #698 from nuttycom/wallet/schemer_update
Upgrade to schemer-rusqlite version 0.2.1
2022-11-10 20:25:18 -07:00
Kris Nuttycombe fa8f5771cc Upgrade to schemer-rusqlite version 0.2.1 2022-11-10 19:12:38 -07:00
Kris Nuttycombe d8cedd28cc
Merge pull request #694 from nuttycom/wallet/zip_317
Add ZIP 317 fee calculation strategy.
2022-11-10 18:54:57 -07:00
str4d 796b5a4fed
ZIP 317: Improve code comments 2022-11-11 00:58:31 +00:00
Kris Nuttycombe 73ab884073 Implement ZIP 317 fee estimation, calculation, & change selection 2022-11-10 15:30:13 -07:00
Kris Nuttycombe 847ba49761 Add dust note detection to change selection.
The change selection algorithm has the most useful information for
determining whether or not a note is dust, so this adds a new error case
to `ChangeError` that allows the change selection to report the presence
of input notes without economic value back to its caller.
2022-11-10 12:18:30 -07:00
Kris Nuttycombe 9a7dc0db84 Add traits for fee estimation and input selection
This adds a set of abstractions that allow wallets to provide
independent strategies for fee estimation and note selection, and
implementations of these strategies that perform these operations in the
same fashion as the existing `spend` and `shield_transparent_funds`
functions.

This required a somewhat hefty rework of the error handling in
zcash_client_backend. It fixes an issue with the error types whereby
callees needed to have a bit too much information about the error
types produced by their callers.

Reflect the updated note selection and error handling in zcash_client_sqlite.
2022-11-10 12:17:59 -07:00
str4d 6f4a6aa00c
Merge pull request #695 from nuttycom/fix_clippy_lints
Fix clippy complaints about generated protobuf code.
2022-11-05 00:15:47 +00:00
Kris Nuttycombe 6047c1d003
Merge pull request #696 from nuttycom/wallet/sapling_spend_internal_key
Spend internal Sapling notes with the internal Sapling spending key.
2022-11-04 14:16:15 -06:00
Kris Nuttycombe fb8681adbb Ignore clippy lints in generated protobuf modules. 2022-11-04 14:14:56 -06:00
Kris Nuttycombe cd29022233 Test spending of change notes. 2022-11-04 13:42:11 -06:00
Kris Nuttycombe 18e61346cc Spend internal Sapling notes with the internal Sapling spending key. 2022-11-04 13:27:23 -06:00
str4d c5d8484f19
Merge pull request #688 from nuttycom/wallet/spend_internal_notes
Correctly construct outputs when spending internal notes.
2022-11-04 01:34:56 +00:00
Kris Nuttycombe c0abaa4727
Merge pull request #693 from nuttycom/wallet/skip_unmined_tx_in_migrations
Fix a bug in migrations when transaction block height is unknown.
2022-11-03 19:29:03 -06:00
Kris Nuttycombe 981d45e966 Documentation & changelog fixes. 2022-11-03 19:27:17 -06:00
Kris Nuttycombe 77efc18dd9 Fix a bug in migrations when transaction block height is unknown.
Un-mined transactions cannot currently be migrated to retroactively
store fee information, because the encoding used to persist them is unknown.
2022-11-03 18:54:53 -06:00
Kris Nuttycombe cdfca848ea Improve type safety of note commitment tree node construction. 2022-11-03 18:44:48 -06:00
Kris Nuttycombe 1be86b7a54 Derive the correct note when spending from a change address. 2022-11-03 18:44:48 -06:00
Kris Nuttycombe b68d37a0b1 Use DiversifiableFullViewingKey instead of ExtFVK where possible. 2022-11-03 18:44:45 -06:00
str4d d4f4f5ad91
Merge pull request #658 from nuttycom/wallet/builder_explicit_change
Update the transaction builder to make change outputs explicit
2022-11-04 00:42:31 +00:00
Kris Nuttycombe 28db1e324f Update changelog. 2022-11-03 18:14:15 -06:00
Kris Nuttycombe 9c894ebf3e Create per-protocol fees modules. 2022-11-03 15:07:14 -06:00
Kris Nuttycombe c92d81b15d Move the `TzeInput` trait to the `tze::components::builder` module 2022-11-03 09:57:36 -06:00
Kris Nuttycombe 37e78e1fe3 Expose less information about Sapling outputs to change calculation. 2022-11-03 09:56:50 -06:00
Kris Nuttycombe 1be97e9cef Address comments from code review. 2022-11-03 09:56:08 -06:00
Jack Grigg 4d6e2bcf59 Merge pull request #642 from zcash/lightwalletd-grpc-bindings
zcash_client_backend: Add gRPC bindings behind feature flag
2022-11-03 05:32:29 +00:00
str4d cfc8088d5f
Merge pull request #691 from zcash/prost
zcash_client_backend: Switch from `protobuf 2` to `prost 0.11`
2022-11-03 05:29:25 +00:00
Jack Grigg 587e1fa60b Fix clippy lints related to `prost` API usage 2022-11-03 05:02:39 +00:00
Kris Nuttycombe 9496fc6118 Add fee calculator to the transaction builder.
This adds a fee calculation strategy abstraction that can be used to
dynamically compute fees so that the total fees required may be taken
taken into account during note selection, and also removes automatic
change creation from the transaction builder.

Change outputs must now be directly created by the caller by the caller.
This is a necessary prerequisite for permitting fees to adjust based
upon the contents of the transaction being constructed.

The initial implementation of the fee strategy simply uses the current
default fee.
2022-11-02 08:28:16 -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
Kris Nuttycombe df1cbbdd1d
Merge pull request #690 from zcash/dependency-refactor
Dependency refactor
2022-11-01 13:40:19 -06:00
Jack Grigg 3720b45feb Categorise dependencies in `Cargo.toml` files
This should make it easier to upgrade dependencies in future.
2022-11-01 09:02:54 +00:00
Jack Grigg a0016588ac Remove unused dependencies
Some were only used by tests, others weren't used at all.
2022-11-01 09:02:27 +00:00