str4d
262a29ca5f
Merge pull request #11 from zcash/spend-improvements
...
Spend improvements
2019-02-13 05:24:39 -05:00
Jack Grigg
966b6a9df5
Include fee in target value
2019-02-13 10:16:56 +00:00
Jack Grigg
e3ecc6f7dc
Fix underflow in target height when selecting anchor
...
This won't occur in practice because Sapling activated at a height well
above ANCHOR_OFFSET, but good to fix anyway.
2019-02-13 10:10:23 +00:00
Jack Grigg
6842c293fe
Ensure we have sufficient balance before using transaction::Builder
...
The Builder does return an error if insufficient spend value is
provided, but we can give a more meaningful error here.
2019-02-12 20:55:43 +00:00
Jack Grigg
9b29276dba
Return a more useful error if send_to_address() is called with no blocks
2019-02-12 20:49:35 +00:00
Jack Grigg
8eeddb2de0
Test that send_to_address() fails with incorrect ExtendedSpendingKeys
2019-02-12 19:46:16 +00:00
str4d
a625035e66
Merge pull request #10 from zcash/jni-errors
...
Wrap all exceptions and panics to relay them over JNI
2019-02-11 21:58:32 -05:00
Jack Grigg
933fb07f42
Wrap all exceptions and panics to relay them over JNI
2019-02-12 02:56:17 +00:00
Jack Grigg
25e79f042b
Use failure::Error in utils::exception instead of jni::errors::Error
2019-02-11 16:52:00 +00:00
Jack Grigg
42b2076dc1
Add exception utilities to the crate
2019-02-11 16:35:44 +00:00
Jack Grigg
37c0efad77
Utilities for conveying Rust exceptions and panics to Java
...
Source: affa85c026/exonum-java-binding/core/rust/src/utils/exception.rs
License: Apache-2.0
2019-02-11 16:33:11 +00:00
str4d
9171c3b32d
Merge pull request #9 from zcash/edition-and-cleanups
...
Edition and cleanups
2019-02-11 11:25:22 -05:00
Jack Grigg
6d86b2cf16
Extract rust_vec_to_java() utility function
2019-02-11 16:20:11 +00:00
Jack Grigg
5dfadd4393
Extract java_string_to_rust() utility function
2019-02-11 15:44:49 +00:00
Jack Grigg
1163c557a8
Use spending_key helper instead of manually constructing account path
2019-02-11 15:36:34 +00:00
Jack Grigg
886017a4f5
Migrate to Rust 2018 edition
...
Requires a minimum of Rust 1.31.
2019-02-11 15:11:09 +00:00
Jack Grigg
c4231fb404
Fix bug in collect() return type
2019-02-11 15:03:27 +00:00
str4d
5a67bdae79
Merge pull request #8 from zcash/backend-updates
...
Backend updates
2019-02-11 09:44:46 -05:00
Jack Grigg
eca0bbc697
Explicitly panic instead of unwrapping when an invariant is broken
2019-02-11 14:28:19 +00:00
Jack Grigg
e3ccb73a99
Remove unnecessary unwraps
2019-02-11 14:28:18 +00:00
Jack Grigg
d1c3c55b0d
Test that scan_cached_blocks finds change notes
2019-02-11 14:28:17 +00:00
Jack Grigg
70f9ab54c6
Simple binary to calculate the latest Sapling commitment tree
...
The gRPC Rust bindings are committed instead of requiring protoc to build.
2019-02-11 14:27:43 +00:00
Jack Grigg
b78a611f7b
JNI APIs to fetch memo fields as UTF8
2019-02-08 21:06:25 +00:00
Jack Grigg
6ae75baf35
Test that scan_cached_blocks finds received notes
2019-02-08 21:06:24 +00:00
Jack Grigg
e8eda3db33
Test that init_accounts_table stores the correct address
2019-02-08 21:06:23 +00:00
Jack Grigg
5dea1dbc04
Test that initialisation APIs are one-shot
2019-02-08 21:06:22 +00:00
Jack Grigg
8d9124fab5
Pass paths into the SQL API using AsRef<Path> instead of &str
...
This enables both &str and &Path to be used, depending on how the API is
being called.
2019-02-08 21:06:21 +00:00
Jack Grigg
45adb0af4a
Store creation time and expiry height in transactions table
...
- Creation time can be used in the UI before a transaction gets mined.
- Expiry height enables the UI to indicate expired transactions.
2019-02-07 14:39:50 +00:00
str4d
bc88f5cd2a
Merge pull request #7 from zcash/refactor-sql
...
Refactor SQL API
2019-02-07 08:06:00 -05:00
Jack Grigg
c51a90f4de
Fix clippy lints
2019-02-07 13:02:50 +00:00
Jack Grigg
acd8c395f3
Tidy up imports
2019-02-07 12:58:33 +00:00
Jack Grigg
a9674a148b
Remove cfg(target_os="android") restriction
...
The crate lives inside the Android SDK, and will only ever target
Android devices, so it's fine to simplify here.
2019-02-07 12:56:04 +00:00
Jack Grigg
e99ed5bdeb
Extract SQL API into a separate module
2019-02-07 12:50:40 +00:00
str4d
c491dc67ad
Merge pull request #6 from zcash/bugfix/jni-signature
...
bugfix: update JNI method signature to match implementation.
2019-02-05 11:33:59 -05:00
Kevin Gorham
66fff55967
bugfix: update JNI method signature to match implementation.
...
We removed the need to pass the seed around because that is highly sensitive data. Instead, we work with less sensitive sending keys.
2019-02-05 11:24:40 -05:00
str4d
e51fc80920
Merge pull request #5 from zcash/sql-api
...
SQL API
2019-02-01 17:15:15 -05:00
Jack Grigg
a290c9165a
Update package details for Rust crate
2019-02-01 21:57:15 +00:00
Jack Grigg
cc53f14f96
cargo update
2019-02-01 21:57:14 +00:00
Jack Grigg
62b4d43341
Remove seed argument from JniConverter.getAddress(), add account arg
2019-02-01 21:57:13 +00:00
Jack Grigg
b608b026ed
Remove seed argument from JniConverter.scanBlocks()
...
The API now scans cached CompactBlocks using the ExtendedFullViewingKeys
for the internally-tracked accounts.
2019-02-01 21:57:12 +00:00
Jack Grigg
d9232c885d
JniConverter.initAccountsTable()
2019-02-01 21:57:11 +00:00
Jack Grigg
c26249373d
JniConverter.initBlocksTable()
2019-02-01 21:57:10 +00:00
Jack Grigg
e3b85f0e97
build script: Exit if ANDROID_HOME environment variable is not set
2019-02-01 21:57:09 +00:00
Jack Grigg
41bb9a1a4b
JniConverter.initDataDb()
2019-02-01 21:57:08 +00:00
Jack Grigg
aa391063d1
JniConverter.getBalance()
2019-02-01 21:57:07 +00:00
Jack Grigg
d98191d110
JniConverter.sendToAddress()
2019-02-01 21:57:06 +00:00
Jack Grigg
3966798f53
API for creating transactions
2019-02-01 21:57:05 +00:00
Jack Grigg
ab2b5903a0
Improvements to JniConverter.scanBlocks()
...
- Store Sapling tree with blocks
- Store witnesses with full notes
- Track note spends
- Track change notes
- Store index within block for each transaction
- This will make it easier to request entire blocks of transactions at
some point, and then filter out only the transactions we care about.
- Store block times while scanning blocks
- Return bool with error state from JniConverter.scanBlocks()
- Support cached blocks that are height-ascending but not sequential
- Blocks that do not contain Sapling data may be skipped.
- Return error from scan_cached_blocks() if heights are not ascending
2019-02-01 17:41:09 +00:00
Jack Grigg
3188cf8942
Remove now-unused ValueReceived protobuf
2019-01-31 16:09:37 +00:00
Jack Grigg
f622a3bcd8
Persist received notes in an SQLite database
2019-01-31 16:09:25 +00:00