Commit Graph

394 Commits

Author SHA1 Message Date
Jack Grigg 675048e52b Fix broken intra-doc links and lints 2021-03-26 10:07:20 +13:00
Jack Grigg 55e73d7910 Fix clippy lints 2021-03-26 10:07:20 +13:00
Kris Nuttycombe c41c71c514
Apply suggestions from code review
Co-authored-by: str4d <thestr4d@gmail.com>
2021-03-25 15:00:54 -06:00
Kris Nuttycombe ebdd6cf976 Add SaplingIvk newtype to changelogs. 2021-03-24 18:39:21 -06: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 46872e2590 Update changelogs with Memo changes 2021-03-18 10:00:27 +13: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
Kris Nuttycombe b5bbbb6f5a Factor out nullifier update from database actions in scan_cached_blocks 2021-03-09 20:59:57 -07:00
Jack Grigg 463e252af4 Fix more intra-doc links 2021-03-04 23:01:42 +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 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
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 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
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
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
Kris Nuttycombe da4cf23668 Add TxVersion enum to make interacting with transaction version values safer.
Co-authored-by: str4d <thestr4d@gmail.com>
2021-01-25 16:32:57 -07:00
Sean Bowe 6315f7dc28
Use wNAF multiplication for Sapling key agreement. 2021-01-22 15:16:06 -07:00
Kris Nuttycombe 8e8ed2bb4f Rename get_verified_balance -> get_balance_at 2021-01-15 12:00:14 -07:00
Kris Nuttycombe c70a9ed81f Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: str4d <thestr4d@gmail.com>
2021-01-15 11:57:58 -07:00
Kris Nuttycombe ce06db197a Rustfmt. 2021-01-12 21:10:34 -07:00
Kris Nuttycombe db9eb29eba Merge remote-tracking branch 'upstream/master' into data_access_api 2021-01-12 21:09:40 -07:00
Kris Nuttycombe 7acc75249b Fix documentation of human-readable prefixes. 2021-01-12 20:45:28 -07:00
Kris Nuttycombe 7d92150965 Fix test compilation with WalletWrite changes. 2021-01-11 18:13:40 -07:00
Kris Nuttycombe aad2e174c1 Consistently use nullifier and AccountId newtypes. 2021-01-08 21:49:38 -07:00
Kris Nuttycombe 27d7b6c569 A few doc updates. 2021-01-08 18:08:02 -07:00
Kris Nuttycombe 472dac7a22
Revert intra_doc_link_resolution_failure flag change. 2020-12-17 07:36:18 -07:00
Kris Nuttycombe cf0c3ea90f Relax RngCore type constraints.
The intent of this change is to permit tests to use deterministic
random sources, rather than cryptographically strong ones.
2020-12-14 13:44:05 -07:00
Kris Nuttycombe c24f663e40 Use methods on sigversion to gate ZIP-243 and TZE signature parts. 2020-12-14 14:54:29 +00:00
Kris Nuttycombe 790071953c Use rust feature flagging to allow conditionally enabling TZE-related code.
This also uses the test-dependencies feature flag for conditional
inclusion of proptest-related modules which may be used by
dependent crates for generation of samples in testing.
2020-12-14 14:54:12 +00:00
Daira Hopwood 62675f4b4f Use the SHA-256d HashReader and HashWriter for transaction hashing.
This hashes the transaction as it is read, rather than hashing a re-serialization.

Co-authored-by: Jack Grigg <str4d@electriccoin.co>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-12-03 21:22:58 +00:00