Kris Nuttycombe
cc39bf4429
zcash_primitives: Add Orchard bundle metadata to transaction builder.
2024-01-16 13:19:24 -07:00
Jack Grigg
2ea83243a7
Document the feature flags
2024-01-03 20:15:21 +00:00
Kris Nuttycombe
704e8e1144
zcash_primitives: Updates to reflect `sapling-crypto` and `orchard` builder changes.
2024-01-02 13:00:11 -07:00
Jack Grigg
dc8094856b
Migrate to `sapling-crypto` crate outside this repository
2023-12-11 17:27:34 +00:00
Jack Grigg
6acc64e61c
Move `zcash_primitives::sapling` module into `sapling-crypto`
2023-12-11 17:07:45 +00:00
Jack Grigg
e7f71c3f1f
Revert "Remove sapling-crypto"
...
This reverts commit 1b865ecfdf
.
2023-12-11 17:07:45 +00:00
Jack Grigg
ce7b7df0cc
zcash_primitives: Switch to type-safe `PRF^expand`
...
Part of zcash/librustzcash#1044 .
2023-12-07 17:09:44 +00:00
Jack Grigg
3dfd478141
Migrate to published `zip32` crate outside this repository
2023-12-06 18:04:09 +00:00
Jack Grigg
5aa0e6c6ee
Revert "Convert zip32 crate into a module of zcash_primitives"
...
This reverts commit f25a8a557e
.
2023-12-05 18:07:53 +00:00
Kris Nuttycombe
374882b7bc
Move `zcash_note_encryption` component to https://github.com/zcash/zcash_note_encryption
...
The `zcash_note_encryption` component crate has been factored out to
its own repository, to avoid circular crate dependencies involving
https://github.com/zcash/librustzcash and the
https://github.com/zcash/orchard and
https://github.com/zcash/sapling-crypto repositories.
2023-11-17 20:39:14 -07:00
Kris Nuttycombe
aa063ae3fd
zcash_client_backend: Factor out input source traits from `WalletRead`
...
Prior to this change, it's necessary to implement the entirety of the
`WalletRead` trait in order to be able to use the input selection
functionality provided by `zcash_client_backend::data_api::input_selection`.
This change factors out the minimal operations required for transaction
proposal construction to better reflect the principle of least authority
and make the input selection code reusable in more contexts.
In order to minimize the operations of the newly-created `InputSource`
and `ShieldingSource` traits, this change also removes the
`min_confirmations` field from transaction proposals, in favor of
storing explicit target and anchor heights. This has the effect of
limiting the lifetime of transaction proposals to `PRUNING_DEPTH -
min_confirmations` blocks.
2023-11-08 12:41:49 -07:00
Jack Grigg
7e89300db9
Move common package and dependency configs into workspace config
...
The MSRV for the main crates is 1.65, which is higher than the Rust
version that stabilised workplace dependencies (1.64). The implicit MSRV
for the component crates is still lower than this, so we don't migrate
these crates.
2023-09-26 22:01:32 +00:00
Jack Grigg
94c1f2413d
Migrate to `incrementalmerkletree 0.5`, `orchard 0.6`
2023-09-08 18:57:25 +00:00
Jack Grigg
facd4ccac5
Migrate to latest `shardtree` revision
2023-07-25 20:57:49 +00:00
Jack Grigg
99ecdf3a89
zcash_client_sqlite: Build subtrees from new commitments in a threadpool
...
The new `multicore` feature flag can be used to disable this behaviour.
2023-07-25 15:59:03 +00:00
Jack Grigg
98ea08e497
Migrate to latest `shardtree` to improve performance
2023-07-19 14:54:01 +00:00
Jack Grigg
a11545459b
Bump patched dependencies to bring in shardtree bugfixes
2023-07-06 22:19:21 +00:00
Kris Nuttycombe
3e358bc1c9
zcash_client_backend: Use `shardtree` for note commitments in block scanning.
...
Also adds a skeleton `zcash_client_sqlite` implementation of
`shardtree::ShardStore` and a skeleton migration for related
database changes.
2023-06-29 15:35:18 -06:00
Kris Nuttycombe
3dd0c63095
Update to `incrementalmerkletree 0.4`, `orchard 0.5`
2023-06-06 14:27:39 -06:00
Kris Nuttycombe
ebcfae987d
Update the data access API in preparation for shardtree introduction.
2023-06-02 10:59:17 -06:00
Kris Nuttycombe
696a9be0a0
Update `zcash_primitives` to reflect argument changes to `parse_note_plaintext_without_memo_ovk`
2023-05-26 09:43:26 -06:00
Kris Nuttycombe
980736806f
Upgrade `incrementalmerkletree` & `orchard` patch versions.
2023-05-25 12:33:25 -06:00
Kris Nuttycombe
69430c3da2
Upgrade incrementalmerkletree and use bridgetree crate for `Bridgetree`.
2023-05-04 12:08:38 -06:00
Jack Grigg
2fcde5e047
Migrate to `orchard 0.4.0`
...
Closes zcash/librustzcash#766 .
2023-04-11 13:25:17 +00:00
Kris Nuttycombe
4fea57dcac
Upgrade orchard patch dependency.
2023-04-03 16:28:53 -06:00
Kris Nuttycombe
d6fafa291b
Update Sapling note encryption for `zcash_note_encryption 0.3.0`
...
Fixes zcash/librustzcash#455
2023-03-21 11:09:38 -06:00
Kris Nuttycombe
c696069f93
Bump zcash_note_encryption to version 0.3.0 for release.
...
This removes the path-based dependencies on the `zcash_note_encryption`
crate in favor of using versioned dependencies locally. This better
reflects the future state in which `zcash_note_encryption` is factored
out of the workspace and maintained in a separate repository.
2023-03-20 16:16:34 -06:00
Kris Nuttycombe
7c1a4c898d
Fix wasm32 CI runner.
...
The `halo2_proofs/multicore` flag must be disabled when running wasm
builds; this ensures that we do not accidentally include it as a
transitive dependency when building with `--no-default-features`.
2023-03-20 14:39:07 -06:00
Kris Nuttycombe
77fbd8cb4f
Update dependencies to reflect changes in ff 0.13
2023-03-20 14:35:45 -06:00
Kris Nuttycombe
fa8f5771cc
Upgrade to schemer-rusqlite version 0.2.1
2022-11-10 19:12:38 -07:00
Sean Bowe
176e21b015
Update zcash_primitives to orchard 0.3; release zcash_primitives and zcash_proofs 0.8.
2022-10-19 13:32:51 -06:00
Jack Grigg
cf5af3edbc
Point to `orchard` commit with `zcash_note_encryption 0.2`
2022-10-13 21:42:46 +00:00
Jack Grigg
24f7d1c9bc
zcash_primitives: Require `group 0.12.1` for `wnaf-memuse` feature flag
2022-10-13 06:19:34 +00:00
Jack Grigg
1d8fca848e
Point to upstream schemer repository
...
We can do this now that https://github.com/aschampion/schemer/pull/15
has been merged.
2022-10-11 20:40:41 +00:00
Kris Nuttycombe
f7aa7b2c84
Upgrade rusqlite to version 0.25
2022-10-03 08:12:37 -06:00
Jack Grigg
913aa0a988
zcash_client_backend: Correctly track heap usage of batch items
...
As of zcash/librustzcash#633 , `SaplingDomain::IncomingViewingKey` now
allocates memory internally, and this memory persists as long as the
`BatchRunner` is alive. Now that we have decoupled the measurement of
heap usage for batch tasks from their internals, we can add bounds to
all of the generic parameters of `Batch` to enable correctly measuring
their actual heap usage.
We also add `DynamicUsage` impls for a bunch of `zcash_primitives` types
that will be used with `BatchRunner` (or its equivalent implementation
in `zcashd`) by callers.
2022-09-24 21:01:19 +00:00
Daira Hopwood
20e869f501
zcash_primitives: Use prepared epk and ivk in Sapling note decryption
...
Co-authored-by: Jack Grigg <jack@electriccoin.co>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-15 03:40:45 +01:00
Daira Hopwood
515b0a40ec
zcash_note_encryption: Add API to prepare epk.
...
Co-authored-by: Jack Grigg <jack@electriccoin.co>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-09-15 03:22:41 +01:00
Kris Nuttycombe
5d817f6120
Update to schemer 0.2
2022-08-19 09:55:55 -06:00
Kris Nuttycombe
7c5b320108
Introduce wallet database schema migrations.
...
This replaces the current wallet initialization code with a migration
that brings the database up to the state produced by release 0.3.0.
A subsequent commit will add migrations that correctly produce the
database state as of zcash/librustzcash@602270cb1f .
Fixes #369
2022-08-18 10:15:58 -06:00
Jack Grigg
9ebbd42401
orchard 0.1
2022-05-10 23:06:31 +00:00
Jack Grigg
a565c7e113
hdwallet 0.3.1
...
This release bumped secp256k1 to 0.21.
2022-05-10 23:00:43 +00:00
Jack Grigg
144512b547
Migrate to `ff 0.12`
2022-05-06 20:03:49 +00:00
Kris Nuttycombe
8bb1962153
Update incrementalmerkletree version and add SER_V2 serialization constant.
2022-05-04 09:25:07 -06:00
Kris Nuttycombe
9416ab3a3e
Update to secp256k1 v0.21
2022-04-06 16:09:45 -06:00
Jack Grigg
5668804629
Migrate to beta releases of incrementalmerkletree and orchard
2022-03-23 00:04:32 +00:00
Jack Grigg
494092223b
Merge branch 'master' into non-consensus-changes-on-branchid-37519621
2022-03-23 00:00:21 +00:00
Kris Nuttycombe
2d34ac5654
Update incrementalmerkletree version.
2022-03-11 16:48:28 -07:00
Jack Grigg
91d9a42a08
Merge branch 'non-consensus-changes-on-branchid-37519621' into merge-non-consensus-changes-3
2022-02-28 23:22:40 +00:00
Jack Grigg
bdaad53832
Update `orchard` revision
2022-02-28 21:34:03 +00:00
Kris Nuttycombe
b97d777361
Update the versions of incrementalmerkletree & orchard.
...
This removes unreleased incrementalmerkletree::BridgeTree serialization
that was zcashd-specific.
2022-02-24 13:54:31 -07:00
Jack Grigg
12700b4c17
Migrate to `orchard` revision with the Orchard circuit changes
2022-02-15 23:37:52 +00:00
Kris Nuttycombe
3dd1f310d9
Merge remote-tracking branch 'upstream/non-consensus-changes-on-branchid-37519621' into autoshield-poc-daa
2022-01-20 13:54:38 -07:00
Jack Grigg
07a95d70c9
incrementalmerkletree 0.2
2021-12-17 23:46:00 +00:00
Jack Grigg
36db7634a0
orchard 0.1.0-beta.1
2021-12-17 22:22:25 +00:00
Jack Grigg
142a38e792
zcash_note_encryption 0.1.0
2021-12-17 20:00:46 +00:00
Jack Grigg
e148ca84ba
Migrate to latest `zcash_note_encryption` API
2021-12-17 05:34:45 +00:00
Kris Nuttycombe
0b9d7e4303
Merge remote-tracking branch 'upstream/master' into autoshield-poc-daa
2021-11-24 15:48:02 -07:00
Jack Grigg
5055033c31
zcash_primitives: Migrate to `zcash_note_encryption::BatchDomain`
2021-11-17 12:17:10 +00:00
Kris Nuttycombe
da3c84ff31
Update hdwallet to depend upon secp256k1-v0.20
2021-10-01 12:52:19 -06:00
Jack Grigg
e1abca5032
Update patch to latest orchard crate revision
...
Includes circuit bugfixes and uses halo2 0.1.0-beta.1.
2021-09-28 22:08:27 +01:00
Jack Grigg
056e2c62f9
Pin halo2 and orchard crate versions with BOSL exception
2021-09-22 22:18:20 +01:00
Jack Grigg
06b7f13356
Empty f4jumble crate
2021-09-22 14:13:34 +01:00
Jack Grigg
4770675542
Bump Orchard patch to include Merkle path cleanups
2021-09-16 22:55:22 +01:00
Jack Grigg
65e1d32774
ff 0.11, group 0.11, etc.
2021-09-09 18:20:37 +01:00
Kris Nuttycombe
ef98c7e48c
Add zcash_encoding crate.
...
The CompactSize type, and the standardized encodings for the Vector,
Array and Option types are moved to the newly created crate.
2021-08-31 13:19:24 -06:00
Jack Grigg
ecb82ed813
nom 7
2021-08-23 20:15:51 +01:00
str4d
9be36f3e54
Merge pull request #417 from nuttycom/incremental_merkle_tree_ser
...
Add manual serialization for bridgetree::Frontier
2021-08-17 14:57:59 +01:00
Jack Grigg
d8410063ab
zcash_primitives: Implement `Domain::batch_epk` for `jubjub`
2021-08-11 00:21:00 +01:00
Kris Nuttycombe
2945905d52
Implement manual serialization for incremental Merkle tree components.
...
This also adds parsing of the legacy CommitmentTree format,
to permit easy migration of persisted data.
2021-08-05 09:32:44 -06:00
Kris Nuttycombe
3b8f0214eb
Move Orchard bundle commitments to the `orchard` crate.
2021-07-29 10:38:43 -06:00
Kris Nuttycombe
105f8da91f
Update `nonempty` and `orchard` dependencies.
2021-06-30 12:57:56 -06:00
Jack Grigg
69ee9f8ca5
Bump orchard deps
...
Includes additional patched dependencies, now that the orchard crate is
not pinning specific revisions of the in-development crates.
2021-06-15 20:20:53 +01:00
str4d
2f3e4989ba
Merge pull request #352 from str4d/zcash_address
...
New component: zcash_address crate
2021-06-07 00:36:48 +01:00
Jack Grigg
4aa83d3048
bellman 0.10
2021-06-04 22:20:25 +01:00
Jack Grigg
1222391dd7
Migrate to bitvec 0.22, ff 0.10, etc.
...
Requires patching three dependencies:
- bellman is pending a new release.
- nom is part of the funty breakage; we are blocking on a new release.
- orchard is in development.
2021-06-04 22:02:48 +01:00
Jack Grigg
c754363c07
zcash_address: Initial empty library crate
2021-05-20 14:54:25 +01:00
Jack Grigg
b7c31e3f54
Empty zcash_note_encryption crate
2021-03-20 09:56:20 +13:00
Kris Nuttycombe
aed2759e1e
Use NetworkUpgrade for TZE epoch determination.
...
This adds a `Future` variant for both BranchId and NetworkUpgrade.
2020-09-10 14:52:47 -06:00
Kris Nuttycombe
8299f336d3
Add test for tze txn parsing.
2020-09-10 11:58:40 -06:00
Jack Grigg
961d251178
Add transaction-builder suport for TZE-bearing transactions.
2020-09-10 11:58:40 -06:00
Jack Grigg
90a17b3c31
Core TZE traits and structs
...
Co-authored-by: Kris Nuttycombe <kris.nuttycombe@gmail.com>
2020-09-10 11:58:40 -06:00
Jack Grigg
3a4ea5da18
Remove subtree crates
...
Now that we have finished the large refactor, we can make subsequent
refactoring changes within the individual crates, and propagate the
changes into the Zcash crates via normal dependency updates.
2020-08-27 23:25:47 +01:00
str4d
f55f094ef6
Merge pull request #248 from str4d/equihash-crate
...
Move Equihash verifier into equihash crate
2020-07-10 11:57:11 +12:00
Jack Grigg
d71a599191
Empty equihash crate
2020-06-26 12:53:07 +12:00
Jack Grigg
c0cf55c127
SQLite database structure and initialisation
2020-06-25 18:54:34 +12:00
Jack Grigg
16ba891726
Remove librustzcash crate
...
This crate now lives in https://github.com/zcash/zcash , which is the
sole intended consumer of the C FFI.
2020-03-14 10:50:04 +13:00
Jack Grigg
2df2a2b2f2
Merge branch 'develop'
2020-03-14 10:36:58 +13:00
Sean Bowe
9379eec1b8
Bring zcash_mmr into workspace.
2020-03-03 18:04:18 -07:00
Sean Bowe
a4f7c4eef3
Include jubjub and bls12_381 crates in the workspace.
2019-12-12 11:40:48 -07:00
Jack Grigg
1b865ecfdf
Remove sapling-crypto
2019-08-14 10:48:06 +01:00
Jack Grigg
f25a8a557e
Convert zip32 crate into a module of zcash_primitives
2019-06-27 16:14:24 +01:00
Jack Grigg
fae919ec1c
Rename zcash_wallet to zcash_client_backend, set to 2018 edition
2019-06-27 16:02:12 +01:00
Jack Grigg
482bef87f0
Add ff and group crates to Cargo workspace
2019-01-06 09:50:07 +00:00
Jack Grigg
6e0364cd42
Update workspace after pulling in zip32 crate
2018-08-29 09:57:52 +01:00
Jack Grigg
a9059c9372
Update workspace after pulling in external crates
2018-08-28 23:06:15 +01:00
Jack Grigg
ad16ba6a35
Empty crates as a base for code refactoring
2018-08-28 22:24:14 +01:00
Jack Grigg
0ec85d362d
Set up a Cargo workspace
2018-08-23 21:10:04 +01:00
Jack Grigg
d7257ce010
Move librustzcash crate into subdir
2018-08-23 21:04:02 +01:00
Sean Bowe
bd9b8aabb9
Update sapling-crypto
2018-07-30 18:52:03 -06:00