Jack Grigg
1cbeac9d59
zcash_client_sqlite: Support sending to t-addrs
2019-08-29 17:54:26 +01:00
Jack Grigg
1c60a79ec1
Implement TransparentAddress encoding and decoding
2019-08-29 17:53:51 +01:00
Jack Grigg
601e88c633
Chain validity and reorg handling
2019-08-29 17:53:50 +01:00
Jack Grigg
98db781931
Add mainnet support to zcash_client_sqlite via a feature flag
2019-08-29 17:53:49 +01:00
Jack Grigg
2419c6648c
Add security disclaimer to README
2019-08-29 17:53:48 +01:00
Jack Grigg
cfaa0cf067
zcash_client_sqlite::query::get_*_memo_as_utf8()
2019-08-29 17:53:47 +01:00
Jack Grigg
4c1237fa50
zcash_client_sqlite::transact::create_to_address()
2019-08-29 17:53:40 +01:00
Jack Grigg
9a742d25ea
zcash_client_sqlite::scan::scan_cached_blocks()
2019-08-29 17:52:42 +01:00
Jack Grigg
68291090c6
zcash_client_sqlite::query::{get_balance, get_verified_balance}
2019-08-29 17:52:41 +01:00
Jack Grigg
0bf1fad0ed
zcash_client_sqlite::query::get_address()
2019-08-29 17:52:40 +01:00
Jack Grigg
bee4d6a92b
SQLite database structure and initialisation
2019-08-29 17:52:32 +01:00
Jack Grigg
99aef05318
Store witness inside WalletShieldedOutput
2019-08-26 12:41:44 +01:00
Jack Grigg
8cd6666e56
Move cmu and epk parsing onto CompactOutput struct
2019-08-26 12:41:43 +01:00
Jack Grigg
789e2ff216
Travis CI: Build before formatting check
...
cargo fmt does not build the code, and running it in a fresh clone of
the codebase will fail because the protobuf code has not been generated.
2019-08-22 15:18:50 +01:00
Jack Grigg
2bafc688ff
Test nullifiers in constant time
...
Checking for spent notes in a block is still not completely constant
time, due to filtering out negative results of the constant-time
comparison.
Part of #84 .
2019-08-22 12:52:01 +01:00
Jack Grigg
2774d2730f
Add prevHash field to CompactBlock
...
This enables basic verification of chain validity when CompactBlocks are
received without the full header.
2019-08-22 12:50:08 +01:00
Jack Grigg
fd87121244
Compute and store BlockHash inside BlockHeader
2019-08-22 12:50:07 +01:00
Jack Grigg
2e038207f0
Update new witnesses with subsequent transactions in the same block
2019-08-22 12:50:06 +01:00
Jack Grigg
36f1ef62de
Add tx index within block to WalletTx struct
2019-08-22 12:50:05 +01:00
Jack Grigg
c1e6b1844c
Detect change notes while scanning blocks
2019-08-22 12:50:04 +01:00
Jack Grigg
9c51f3426b
Check for spent notes while scanning blocks
2019-08-22 12:50:02 +01:00
Jack Grigg
8b353b3d55
Return the entire note and recipient address when scanning an output
2019-08-22 12:49:28 +01:00
Jack Grigg
c3a30b9597
Increment the commitment tree and witnesses while scanning blocks
2019-08-22 12:49:27 +01:00
Jack Grigg
5ec94b5db5
Parse compact blocks to find wallet transactions
2019-08-22 12:49:22 +01:00
Jack Grigg
2dd2fc620e
Build protobufs for compact formats
2019-08-21 11:04:16 +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
Jack Grigg
388a585515
transaction::Builder::add_transparent_input()
2019-08-16 17:13:24 +01:00
Jack Grigg
2a8748582b
Pass Script to signature_hash by reference
2019-08-16 16:22:47 +01:00
Jack Grigg
ff5775418b
legacy::Script::address
...
This is the counterpart to legacy::TransparentAddress::script.
2019-08-16 16:21:59 +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
Jack Grigg
54ef63bace
Place zcash_proofs::prover::LocalTxProver behind a feature flag
...
This enables zcash_proofs to be compiled to WASM, which the directories
crate doesn't support.
2019-07-27 00:28:03 +01:00
Jack Grigg
a1cd9dfbac
transaction::Builder::add_transparent_output()
2019-07-27 00:28:02 +01:00
Jack Grigg
c26188a0bb
TransparentAddress struct for P2PKH and P2SH
2019-07-27 00:28:01 +01:00
Jack Grigg
dab3c002b7
Script opcode and data support
...
Overrides the shift-left operator for pushing opcodes onto the Script,
matching the notation used in zcashd.
2019-07-27 00:28:00 +01:00
Jack Grigg
1862354ea6
Sapling transaction builder
2019-07-27 00:27:50 +01:00
Jack Grigg
01618038bf
TxProver trait to abstract over the circuit parameters
...
An implementation using local parameters is provided in the zcash_proofs
crate.
2019-07-26 23:56:00 +01:00
str4d
05f098e893
Merge pull request #91 from str4d/upgrade-rand
...
Upgrade rand crate dependency to 0.7
2019-07-26 23:31:42 +01:00
str4d
5a48d179b8
Merge pull request #90 from adityapk00/paperwallet
...
Make some methods pub for use in External Wallet Generators
The exposed APIs may change in future crate versions.
2019-07-22 13:25:25 +01:00
Jack Grigg
c4e14ad0b1
Address libc deprecations
2019-07-19 00:47:42 +02:00
Jack Grigg
6f9083b5ab
Migrate to rand 0.7
2019-07-19 00:47:40 +02:00
Jack Grigg
b0913afdd7
Migrate remaining crates to rand_core 0.4
2019-07-19 00:46:37 +02:00
Jack Grigg
8f7adec0d9
Migrate zcash_primitives to rand_core 0.4
2019-07-19 00:46:37 +02:00
Jack Grigg
60d344a0a7
Migrate sapling-crypto to rand_core 0.4
2019-07-19 00:46:34 +02:00
Jack Grigg
83e1af104e
Migrate ff, group, pairing, and bellman to rand 0.6
2019-07-19 00:42:39 +02:00
Jack Grigg
5728bda2c1
Replace rust-crypto with sha2 in sapling-crypto dev-dependencies
...
This removes rand < 0.5 from our Cargo.lock.
2019-07-19 00:35:06 +02:00
Jack Grigg
ccf75c39c1
Migrate remaining crates to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
6149166ccb
Migrate zcash_primitives to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
adfc88926b
Migrate sapling-crypto to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
4606a0cefb
Migrate bellman to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
a7e22b3550
Migrate pairing to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
ce6e2a5825
Migrate group to rand 0.5
2019-07-19 00:35:06 +02:00
Jack Grigg
7a6642b221
Migrate ff to rand_core 0.3 (used by rand 0.5)
2019-07-19 00:35:06 +02:00
str4d
9e758dc7d9
Merge pull request #83 from str4d/blake2_simd
...
Migrate to blake2b_simd and blake2s_simd crates
2019-07-18 17:41:59 +01:00
str4d
8361674efc
Merge branch 'master' into blake2_simd
2019-07-18 18:22:20 +02:00
str4d
5e3409ea85
Merge pull request #68 from str4d/sapling-commitment-tree
...
Sapling commitment tree
2019-07-15 16:52:46 +02:00
Jack Grigg
504c3eaeae
Address Daira's review comments
2019-07-15 16:33:43 +02:00
Jack Grigg
07dbfbef59
Address Eirik's review comments
2019-07-10 13:53:22 -04:00
Jack Grigg
79006ecbdf
Unify Sapling tree depth constants
...
When sapling-crypto is refactored, the zcash_primitives::sapling
constant would become the canonical one.
2019-07-10 13:53:22 -04:00
Jack Grigg
e67560b154
Document merkle_tree module
2019-07-10 13:53:22 -04:00
Jack Grigg
b9cea33804
Move merkle_tree::Node into sapling module
...
This makes the merkle_tree module properly generic over the tree hash.
It still hard-codes a depth 32 tree, because Rust doesn't yet support
generic sizes, and we are unlikely to need to alter the tree depth in
future circuit changes.
2019-07-10 13:53:22 -04:00
Jack Grigg
263bbe1207
Use Iterator::all() in place of Iterator::fold()
2019-07-10 13:53:22 -04:00
Jack Grigg
98d7621135
Don't assert when parsing a CommitmentTreeWitness
2019-07-10 13:53:22 -04:00
Jack Grigg
9b4186705a
Add serialization APIs to CommitmentTree and IncrementalWitness
2019-07-10 13:53:22 -04:00
Jack Grigg
70a7069058
Helper for serializing Option<T>
2019-07-10 13:53:22 -04:00
Jack Grigg
667d6101c9
Sapling incremental witnesses
2019-07-10 13:53:20 -04:00
Jack Grigg
bf74915053
Move CommitmentTreeWitness into zcash_primitives
2019-07-10 13:52:47 -04:00
Jack Grigg
f4059a5faa
Sapling commitment tree
2019-07-10 13:44:21 -04:00
Jack Grigg
8f3f95ee08
Sapling commitment tree empty roots
2019-07-10 13:44:21 -04:00
Jack Grigg
785f22ca5a
Move Sapling commitment tree hash into zcash_primitives
2019-07-10 13:44:19 -04:00
Jack Grigg
d1ce6749fe
Bump minimum Rust version to 1.36
2019-07-10 13:12:26 -04:00
Jack Grigg
999dcbfcab
Migrate to blake2b_simd and blake2s_simd crates
...
The primary reason for migrating is that these crates provide APIs for
setting the personalisation string. This enables us to depend solely on
published crates, and thus publish our own crates.
The SIMD implementations are ported from libsodium.
Closes #67 .
2019-07-10 13:12:14 -04:00
str4d
91c6b0b3f0
Merge pull request #88 from str4d/address-encodings
...
Sapling address encodings
2019-07-10 07:04:37 -04:00