Commit Graph
100 Commits
Author SHA1 Message Date
Jack Grigg 2bbd25b36b Add prevHash field to CompactBlock
This enables basic verification of chain validity when CompactBlocks are
received without the full header.
2019-10-09 14:11:14 +13:00
Jack Grigg a3b85b8fe6 Compute and store BlockHash inside BlockHeader 2019-10-09 14:11:14 +13:00
Jack Grigg b66ac11775 Update new witnesses with subsequent transactions in the same block 2019-10-09 14:11:14 +13:00
Jack Grigg e746f7b6f9 Add tx index within block to WalletTx struct 2019-10-09 14:11:14 +13:00
Jack Grigg 3b9dfc1e0b Detect change notes while scanning blocks 2019-10-09 14:11:14 +13:00
Jack Grigg fb9e9bb12f Check for spent notes while scanning blocks 2019-10-09 14:11:14 +13:00
Jack Grigg 2b71121681 Return the entire note and recipient address when scanning an output 2019-10-09 14:11:14 +13:00
Jack Grigg f899ecfce5 Increment the commitment tree and witnesses while scanning blocks 2019-10-09 14:11:14 +13:00
Jack Grigg 591b1fc28f Parse compact blocks to find wallet transactions 2019-10-09 14:11:12 +13:00
Jack Grigg af7e263bcc Build protobufs for compact formats 2019-10-09 14:09:41 +13:00
str4d a57dc7f478 Merge pull request #138 from str4d/release-0.1.0
Release 0.1.0
2019-10-09 11:11:58 +13:00
Jack Grigg 98731c8374 librustzcash 0.2.0 2019-10-08 17:43:33 +13:00
Jack Grigg b0ba7fe4d2 zcash_client_backend 0.1.0 2019-10-08 17:43:33 +13:00
Jack Grigg d6bc2fe0af zcash_proofs 0.1.0 2019-10-08 17:43:33 +13:00
Jack Grigg 8b08528bb0 zcash_primitives 0.1.0 2019-10-08 17:43:33 +13:00
Jack Grigg 25558893ab bellman 0.2.0 2019-10-08 17:43:33 +13:00
Jack Grigg 68cada53cf pairing 0.15.0 2019-10-08 17:43:33 +13:00
Jack Grigg aa37783c37 group 0.2.0 2019-10-08 17:43:33 +13:00
Jack Grigg 216f0f62a0 ff 0.5.0 2019-10-08 17:43:33 +13:00
Jack Grigg 80d339848f Actions: Various CI improvements
- Test against MSRV
- Parallel linting
- Compile benchmarks on nightly
2019-10-08 15:59:40 +13:00
Jack Grigg b872e9fc49 Fix pairing benchmarks
They were broken by #91 but went unnoticed because CI does not compile
the benchmarks, which requires the nightly toolchain.
2019-10-08 15:25:41 +13:00
str4d 39971891d5 Merge pull request #131 from str4d/119-key-encoding-tests
Unit tests for key encodings
2019-10-08 13:48:05 +13:00
str4d 2399d9f3e3 Merge pull request #93 from defuse/qed-it-lrz
Bring in QED-it Tests
2019-10-08 13:47:36 +13:00
str4d 212b6e67d0 Merge pull request #133 from NikVolf/patch-1
Bump Rust to 1.37 on CI
2019-10-08 09:43:18 +13:00
str4d 6de1cb1397 Merge pull request #137 from jimpo/rand_core-version
Specify rand_core >= 0.5.1 for OsRng import.
2019-10-05 16:12:26 -06:00
str4d 524055bbb4 Merge pull request #134 from NikVolf/z-rng
Avoid using rand_os crate (fixes warnings)
2019-10-02 17:35:56 -06:00
str4d c68e15e4f3 Merge pull request #130 from str4d/crate-docs
Crate documentation updates
2019-09-28 10:32:35 +01:00
Jack Grigg e7b5329e95 Unit tests for key encodings
Closes #119.
2019-09-24 17:47:10 +01:00
Jack Grigg 4ad3988e43 Crate docs 2019-09-24 14:23:59 +01:00
Jack Grigg 7f3036d2c8 Update READMEs 2019-09-24 14:23:55 +01:00
Jack Grigg 1fbf38280e Fix intra-doc links 2019-09-24 10:42:49 +01:00
Jack Grigg d9a0b9c83f CI: Check intra-doc links
Credit: https://twitter.com/tomaka17/status/1176017851410526208
2019-09-24 10:35:12 +01:00
Jack Grigg 1d02363752 Add READMEs to Cargo.toml files
This will cause crates.io to render each crate's README as its
information page.
2019-09-23 14:42:38 +01:00
str4d 30660e1d1c Merge pull request #128 from str4d/125-zip-32-seed-length
Panic if spending_key is given a seed shorter than 32 bytes
2019-09-19 06:52:10 -04:00
str4d d2da9cfcb0 Merge pull request #127 from str4d/more-crate-updates
More crate updates
2019-09-18 11:44:13 -04:00
Jack Grigg 450087e280 Add test for spending_key panic on short seed 2019-09-17 23:58:14 +01:00
Jack Grigg 9377b78b35 Panic if spending_key is given a seed shorter than 32 bytes
This enforces the MUST requirement in ZIP 32. A panic is used instead of
an error because this should be considered an implementation error.
Ideally the type system would prevent this from occurring at all.

Closes #125.
2019-09-17 21:28:23 +01:00
Jack Grigg 39a73c8eda Add missing cs.is_satisfied() to bellman test 2019-09-17 00:16:33 +01:00
Jack Grigg 28dcc1c346 bellman: Fix compile errors without multicore feature 2019-09-12 19:38:52 +01:00
Jack Grigg b397a9c405 cargo update 2019-09-12 19:38:51 +01:00
Jack Grigg 0a3b0a9341 Upgrade to hex-literal 0.2 2019-09-12 19:38:51 +01:00
Jack Grigg 89dad572ef Migrate bellman to crossbeam 0.7 2019-09-12 19:38:50 +01:00
Jack Grigg bef3e7e336 Migrate ff_derive to proc-macro2 1.0 2019-09-06 19:03:12 -04:00
str4d 2b6fbfd2d1 Merge pull request #109 from str4d/paymentaddress-encapsulation
PaymentAddress encapsulation
2019-09-06 15:43:48 -04:00
Jack Grigg d6f6b50ecd Check try_sapling_output_recovery fails with identity as pk_d 2019-09-04 19:48:39 -04:00
Jack Grigg abbd43ff57 Make pk_d validity an invariant of PaymentAddress
Introduces a PaymentAddress::from_parts constructor, and getters for
the diversifier and pk_d fields (which are now private).
2019-09-04 19:48:35 -04:00
Jack Grigg 86142d044c PaymentAddress::to_bytes 2019-09-04 19:46:46 -04:00
Jack Grigg 73ee19239c Replace manual address decoding with PaymentAddress::from_bytes 2019-09-04 19:46:46 -04:00
str4d b19b40ccf0 Merge pull request #110 from str4d/crate-cleanups
Crate cleanups
2019-09-04 19:44:47 -04:00
str4d 0da4921055 Merge pull request #116 from str4d/code-coverage
Add code coverage with cargo-tarpaulin and Codecov
2019-08-29 09:58:19 +01:00
Jack Grigg c00b65bb78 Extend Travis CI timeout 2019-08-29 01:06:41 +01:00
Jack Grigg ee9c88ecb0 Exclude slow tests from code coverage 2019-08-28 20:46:23 +01:00
Jack Grigg f9f17b291f Add code coverage with cargo-tarpaulin and Codecov 2019-08-28 12:26:54 +01:00
str4d 563961e606 Merge pull request #115 from str4d/windows-typo
librustzcash: Fix typo in Windows parameter init; Correctly map sprout_path. Includes a GitHub actions improvement
2019-08-26 13:09:57 +01:00
Jack Grigg 0c7eb84d36 impl FromStr for Memo
Memo::from_str was previously shadowing a built-in trait method.
2019-08-24 00:40:32 +01:00
Jack Grigg 7c1d4d9a5b Log distinct error cases in Equihash verification 2019-08-24 00:40:30 +01:00
Jack Grigg 9016548698 Take self directly in into_* functions 2019-08-24 00:39:55 +01:00
Jack Grigg fe93f2ff6b Rename into_ -> to_ where &self is used. 2019-08-24 00:39:54 +01:00
Jack Grigg 91541675e2 Address various clippy warnings/errors in zcash_proofs 2019-08-24 00:39:53 +01:00
Jack Grigg 3a8efd9e67 Address various clippy warnings/errors in zcash_primitives 2019-08-24 00:39:49 +01:00
Jack Grigg d65fe2cda9 Address various clippy warnings/errors in bellman 2019-08-24 00:38:32 +01:00
Jack Grigg d78c94b2a2 Move Equihash validator into zcash_primitives 2019-08-24 00:37:00 +01:00
str4d ad33798244 Merge pull request #113 from Eirik0/edition-2018-clean-up
Edition 2018 clean up
2019-08-24 00:34:57 +01:00
Jack Grigg ba3705cb5e librustzcash: Correctly map sprout_path 2019-08-23 12:26:19 +01:00
Jack Grigg 5e706d5d84 Actions: Trigger testing workflow on pull_request 2019-08-23 12:13:23 +01:00
Jack Grigg 894421f3b5 librustzcash: Fix typo in Windows parameter init 2019-08-23 12:01:01 +01:00
str4d 4014f08105 Merge pull request #112 from zcash/github-workflow
Add a GitHub Actions workflow
2019-08-23 09:56:36 +01:00
str4d 724e822d2d Merge pull request #98 from paracetamolo/optional-sprout-parameters
Make initialization of sprout validation key optional
2019-08-22 16:50:27 +01:00
Jack Grigg 7ad0452c01 Add macOS support to GitHub Actions workflow 2019-08-22 15:10:28 +01:00
Jack Grigg f1b6e88f9f Add a GitHub Actions workflow for Ubuntu and Windows 2019-08-20 23:46:53 +01:00
str4d 7b11d64cf9 Merge pull request #111 from jimpo/master
Fix off-by-one so pedersen_hash doesn't consume too many generators.
2019-08-20 21:14:48 +01:00
str4d 3584485516 Merge pull request #104 from str4d/remove-sapling-crypto
Refactor to remove sapling-crypto
2019-08-15 17:20:07 +01:00
Jack Grigg 1b865ecfdf Remove sapling-crypto 2019-08-14 10:48:06 +01:00
Jack Grigg 5fb9b86ba0 Move Jubjub, Pedersen hash and primitives into zcash_primitives 2019-08-14 10:47:22 +01:00
Jack Grigg b8af749b40 Move generic circuit gadgets into bellman 2019-08-14 10:45:58 +01:00
Jack Grigg 61c633db1e Move Jubjub and Pedersen hash gadgets into zcash_proofs
These are currently too Zcash-specific to be generalized, and need some
targeted refactoring.
2019-08-14 10:45:57 +01:00
Jack Grigg 2ae5804a67 Move Sprout and Sapling circuits into zcash_proofs 2019-08-14 10:45:55 +01:00
Jack Grigg 7ea6d10480 Move redjubjub into zcash_primitives 2019-08-14 10:43:25 +01:00
str4d f931562431 Merge pull request #94 from str4d/upgrade-deps
Upgrade dependencies
2019-08-14 10:39:42 +01:00
Jack Grigg 81786c24c0 Fix clippy linter errors in pairing crate 2019-08-14 01:14:05 +01:00
Jack Grigg 13933d8c51 Use modern clippy linter syntax 2019-08-14 01:14:04 +01:00
Jack Grigg 3e35dd215c cargo update 2019-08-14 01:14:02 +01:00
Jack Grigg 3211536324 Upgrade to crypto_api_chachapoly >= 0.2.1 2019-08-14 01:12:26 +01:00
Jack Grigg ec321382e1 Upgrade to bech32 0.7 2019-08-14 01:12:25 +01:00
Jack Grigg a12b8053b0 Upgrade to digest 0.8 2019-08-14 01:12:24 +01:00
Jack Grigg 2f1cae62b1 Upgrade to fpe 0.2 2019-08-14 01:12:23 +01:00
str4d 52ea437e11 Merge pull request #92 from str4d/transaction-builder
Transaction builder
2019-08-14 01:11:12 +01:00
Jack Grigg a28d94ff2e Panic if Amount addition or subtraction overflows 2019-08-14 00:16:09 +01:00
Jack Grigg 1760b275a7 Simplify transaction builder tests
Requires impl PartialEq for Transaction, which is implemented as a TxId
comparison (relying on the invariant that Transaction is immutable).
2019-08-13 15:24:08 +01:00
Jack Grigg 3a73f946c5 Simplify structure of transaction builder errors 2019-08-13 15:10:57 +01:00
Jack Grigg e6663212ff Improve documentation for Amount 2019-08-08 09:21:09 +01:00
Jack Grigg 7c07914bfd Separate Amount::{from_i64, from_nonnegative_i64} APIs
This is more intuitive than a boolean flag for handling non-negative
Amounts stored in i64 values.
2019-08-08 00:55:23 +01:00
str4d 4255b44b21 Merge pull request #13 from str4d/nullifier-test-vectors
Test note nullifier in key component test vectors
2019-08-02 10:03:07 +01:00
Jack Grigg 59ed258c7f Make Amount opaque, and use it more
This helps to ensure type-safety of values that are required to satisfy
zatoshi range bounds.
2019-07-27 00:35:29 +01:00
Jack Grigg ab60b8804a impl operators for Amount 2019-07-27 00:35:28 +01:00
Jack Grigg 0ea4408d46 Amount::{zero, is_positive, is_negative} 2019-07-27 00:35:27 +01:00
Jack Grigg fa50d551c8 Move Amount impl into a submodule 2019-07-27 00:35:26 +01:00
Jack Grigg 17f6bbcc67 Pass tx builder RNG to spend_sig() 2019-07-27 00:35:04 +01:00
Jack Grigg 532299d46e Allow transaction::Builder RNG to be configured 2019-07-27 00:32:56 +01:00
Jack Grigg 4b61120cd0 Pass tx builder RNG to SaplingNoteEncryption 2019-07-27 00:31:16 +01:00