Commit Graph

1712 Commits

Author SHA1 Message Date
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
Kris Nuttycombe 5cb48fa962 Fix documentation of get_received_note 2021-02-02 13:16:16 -07:00
str4d 820b184f71
Merge pull request #335 from huitseeker/warts
Small cleanups
2021-02-02 07:58:48 +13:00
François Garillot f5b6fa6dfb
Removes a panic in synthesis
The error case - a witness_256 failure - is folded in the SynthesisError case of its enclosing result.

The panic was found with [comby-rust](https://github.com/huitseeker/comby-rust/blob/master/nopanic.toml) (using the nopanic template).
2021-02-01 13:37:56 -05:00
François Garillot 45f3f5a945
Simplify a few pattern matches
A few pattern-matches correspond directly to standard combinators on
`Result`, `Option`. This uses them for concision / clarity.

Refactorings reviewed by the author after suggestion from [comby-rust](https://github.com/huitseeker/comby-rust).
2021-02-01 13:37:54 -05:00
Kris Nuttycombe 937fa06136 Fix randomized tests of zfuture transaction roundtrip. 2021-01-25 16:32:57 -07:00
Kris Nuttycombe 6373e7d053 Raise an error in the case that sprout version < 1.
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-01-25 16:32:57 -07:00
Kris Nuttycombe 1dd5a6dbcb Check all transaction versions in has_sprout and uses_groth_proof checks. 2021-01-25 16:32:57 -07:00
Kris Nuttycombe 06cd91059f Enable transaction serialization roundtrip tests outsize zfuture. 2021-01-25 16:32:57 -07:00