Commit Graph

1770 Commits

Author SHA1 Message Date
str4d 863be19a21
Merge pull request #360 from nuttycom/fix/225_no_change_spends
Retrieve nullifiers for all unconfirmed notes.
2021-03-25 17:31:41 +13:00
Kris Nuttycombe ebdd6cf976 Add SaplingIvk newtype to changelogs. 2021-03-24 18:39:21 -06:00
Kris Nuttycombe 309d83af57 Retrieve nullifiers for all unconfirmed notes.
Previously we were retrieving nullifiers for notes that were not
marked spent, but not checking against whether the spending
transaction had been included in a block.
2021-03-24 16:18:54 -06:00
str4d ebadc8c44c
Merge pull request #177 from str4d/175-memo-enum
Implement ZIP 302 memos
2021-03-25 10:24:43 +13:00
Jack Grigg cb6a993840 zcash_client_backend: Use correct output index for t-addr recipients
`create_spend_to_address` was originally written only for sending to
Sapling addresses. It was later amended to support sending to
transparent addresses, but the assumption about there being a Sapling
output was not removed. This was not an issue for most transactions
because there would be change, but in the case of a z->t transaction
with no change, `create_spend_to_address` would reliably panic.

This commit fixes the bug by setting the output index for transparent
recipients to 0. The `output_index` field of `SentTransaction` is also
documented to correctly reflect its dependency on the type of
`recipient_address`.
2021-03-24 19:01:35 +13:00
Jack Grigg 7c8b29e693 zcash_client_sqlite: Add test that exposes the no-change bug 2021-03-24 18:46:55 +13:00
Jack Grigg e122c3d974 Remove reference to ZIP 302 structured memos from changelog
We're removing those from the ZIP draft until they can be agreed upon.
2021-03-23 13:52:22 +13:00
Jack Grigg b7c31e3f54 Empty zcash_note_encryption crate 2021-03-20 09:56:20 +13:00
Jack Grigg 46872e2590 Update changelogs with Memo changes 2021-03-18 10:00:27 +13:00
Kris Nuttycombe 334442c505 Address comments from review. 2021-03-17 09:21:10 -06:00
Jack Grigg 8a84203685 Remove Default impl from MemoBytes
Memo fields have two ways to encode an empty memo:

- 0xF6 followed by all-zeroes, encoding "there is no memo".
- All-zeroes, encoding the empty UTF-8 string.

In almost all cases you want the former, but users thinking about byte
slices may expect MemoBytes::default() to result in the latter. To
ensure clarity, we now require calling either MemoBytes::default() or
MemoBytes::from_bytes(&[]) to be explicit.

No such confusion exists for the Memo enum, because the two types are
visibly separated as different enum cases, and Memo::Empty makes sense
as the default.
2021-03-17 21:16:01 +13:00
Jack Grigg c7a3ef0e88 Split memo-handling into MemoBytes struct and Memo enum
The MemoBytes struct is a minimal wrapper around the memo bytes, and only
imposes the existence of null-padding for shorter memos. The only error
case is attempting to construct a memo that is too long. MemoBytes is
guaranteed to be round-trip encodable (modulo null padding).

The Memo enum implements the additional memo rules defined in ZIP 302,
interpreting the contents of a memo (for example, parsing it as text).
2021-03-17 21:05:50 +13:00
Jack Grigg 48f7ef84a4 Move Memo into zcash_primitives::memo 2021-03-17 19:58:40 +13:00
str4d 3a8e72936f
Merge pull request #353 from nuttycom/data_api/transactional_types
Make data access API write calls atomic.
2021-03-17 19:24:32 +13:00
Kris Nuttycombe 2b4951759c Fix welding rig intra-doc links. 2021-03-15 17:59:23 -06:00
Kris Nuttycombe 5a9b29a75a Address comments from code review. 2021-03-11 13:01:22 -07:00
Kris Nuttycombe 0e022f2283 Allow block scanning using either IVKs or FVKs. 2021-03-09 21:00:40 -07:00
Kris Nuttycombe 16289750e8 Remove WalletWrite::transactionally 2021-03-09 20:59:57 -07:00
Kris Nuttycombe a74cc8b231 Remove sqlite-specific data organization from data access api. 2021-03-09 20:59:57 -07:00
Kris Nuttycombe b5bbbb6f5a Factor out nullifier update from database actions in scan_cached_blocks 2021-03-09 20:59:57 -07:00
str4d c724ed1796
Merge pull request #347 from str4d/small-dep-updates
Small dependency updates
2021-03-06 04:47:06 +13:00
Jack Grigg 463e252af4 Fix more intra-doc links 2021-03-04 23:01:42 +00:00
Jack Grigg b5bbd52c68 clippy: Use matches! in place of if let .. else expression 2021-03-04 17:55:50 +00:00
Jack Grigg d221b230c6 Fix intra-doc links 2021-03-04 17:41:08 +00:00
Jack Grigg 464b533937 Bump MSRV to 1.47.0
We'll be needing it shortly for ff et al.
2021-03-04 17:32:57 +00:00
Jack Grigg 8b64c18b0d aes 0.6 2021-03-04 17:04:26 +00:00
Jack Grigg 5431e1ef6b nom 6.1 2021-03-04 17:03:41 +00:00
Jack Grigg 5242718b8f bs58 0.4 2021-03-04 17:03:14 +00:00
Jack Grigg d510eb50fd base64 0.13 2021-03-04 17:02:34 +00:00
Jack Grigg 9463e41cab hex-literal 0.3 2021-03-04 17:01:59 +00:00
Jack Grigg b960cdfd92 secp256k1 0.20 2021-03-04 17:01:59 +00:00
str4d 36e4b0d51a
Merge pull request #329 from nuttycom/ivk_payment_addresses
Introduce SaplingIvk newtype & use IVKs where possible.
2021-03-04 07:04:05 +13:00
str4d 47f3b5f045
Merge pull request #343 from str4d/changelogs-add-unreleased
Add details of unreleased changes to changelogs
2021-02-23 08:57:52 +13:00
str4d 329e251b52
Merge pull request #344 from str4d/funty-fix
Add temporary workaround for funty breakage
2021-02-23 08:47:41 +13:00
Jack Grigg d999463d26 Add temporary workaround for funty breakage 2021-02-22 19:15:37 +00:00
Jack Grigg 1f6f45bbe7 Add details of unreleased changes to changelogs 2021-02-22 16:59:07 +00:00
str4d 9f14c757e6
Merge pull request #340 from str4d/changelogs
Add changelogs to the crates
2021-02-14 02:34:20 +13:00
Kris Nuttycombe 97b94e758a
Merge pull request #338 from nuttycom/fix_spurious_proptest_error
Fix generation of zip321 URIs for proptest to avoid generating invalid ones
2021-02-06 08:32:22 -07:00
Kris Nuttycombe b37b5876f2
Merge pull request #318 from nuttycom/tx_version_enum
Add TxVersion enum to make interacting with transaction version values safer.
2021-02-04 12:47:12 -07:00
Kris Nuttycombe 974669a50b Fix clippy lints. 2021-02-04 11:41:29 -07:00
Kris Nuttycombe 796161e9b4
Add suggested comment clarifying future additions to the TxVersion enum
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-02-04 11:22:13 -07:00
Kris Nuttycombe f0f4f58b2b Fix generation of zip321 URIs for proptest to avoid generating invalid ones. 2021-02-04 08:32:00 -07:00
str4d db8c67037c
Merge pull request #337 from nuttycom/fix_clippy
Fix clippy complaints.
2021-02-05 04:19:22 +13:00
Jack Grigg bd3e18984c Changelogs: s/project/library 2021-02-04 15:16:32 +00:00
Jack Grigg b5c7d7f1e7 Add changelogs to the crates
The changelogs are accurate for the 0.4.0 release tag, but don't yet
include changes before or after that tag.
2021-02-04 15:13:22 +00:00
Kris Nuttycombe 1cc7949518 Rename CommitmentTree::new -> CommitmentTree::empty 2021-02-04 07:49:48 -07:00
Kris Nuttycombe 3423b03c6d Fix a couple more lints. 2021-02-04 07:31:00 -07:00
Kris Nuttycombe 98530184c0 Fix clippy complaints. 2021-02-03 14:27:31 -07:00
Kris Nuttycombe 7a57aee530 Introduce SaplingIvk newtype & use IVKs where possible.
This includes making it possible to obtain a payment address from just the IVK + diversifier.
2021-02-02 15:27:13 -07:00
str4d b5ee057e03
Merge pull request #328 from nuttycom/note_id_enum
Use an enum to distinguish between sent and received notes in sqlite backend.
2021-02-03 09:17:16 +13:00