Simon
dae1c4204a
Update CWallet::MarkAffectedTransactionsDirty() for Sapling.
2018-08-08 12:03:09 -07:00
Simon
a132719da5
Add ivk member variable and equality comparators to SaplingNoteData class.
2018-08-08 12:02:27 -07:00
Za Wilcox
da85cdfe27
Revise help output for z_sendmany
...
The previous version of the usage message for z_sendmany used the word "Change"
in an ambiguous way.
The intent was to describe "Change" the noun that indicates the portion of a
transaction's funds that are returned to the payer, however the context did not
provide an immediate cue to differentiate from the verb form meaning
"to alter". Indeed, in other help strings in the same file that meaning of the
word is correct, i.e. the verb form is used. Moreover a typo in the form of a
missing "a" later in the same sentence exacerbated the problem, by decreasing
readability precisely where context could reduce confusion.
2018-08-08 12:57:27 -06:00
Simon
3438e26cc3
Rename mapTxNullifiers to mapTxSproutNullifiers.
2018-08-08 11:37:38 -07:00
Simon
d5e490d9f2
Rename CWallet::AddToSpends methods for clarity.
2018-08-08 11:37:38 -07:00
Simon
f41bf503e1
Rename mapNullifiersToNotes to mapSproutNullifiersToNotes.
2018-08-08 11:37:38 -07:00
Simon
618206c7d5
Rename GetNoteNullifier to GetSproutNoteNullifier.
2018-08-08 11:37:38 -07:00
Simon
57faf44e61
Rename FindMyNotes to FindMySproutNotes.
2018-08-08 11:37:38 -07:00
Homu
40f320e0ee
Auto merge of #3443 - daira:testnet-rollback, r=str4d
...
Support testnet rollback.
Part of #1302 . Closes #2905 .
2018-08-08 05:28:08 -07:00
Jack Grigg
13751895c7
Move RewindBlockIndex log message inside rewindLength check
2018-08-08 12:08:29 +01:00
Homu
0c5733fc22
Auto merge of #3448 - ebfull:sapling-params, r=bitcartel
...
Switch to use the official Sapling parameters
2018-08-07 11:20:10 -07:00
Eirik Ogilvie-Wigley
7929851626
Only include the change field if we have a spending key
2018-08-06 09:58:40 -06:00
Jack Grigg
d0372cff5e
Adjust Makefile so that common can be used by the wallet
2018-08-05 10:41:06 +01:00
Jack Grigg
0ecdd0f30a
chainparams: Add BIP 44 coin type (as registered in SLIP 44)
2018-08-05 10:41:06 +01:00
Jonas Schnelli
4922d1c19a
Fix test_bitcoin circular dependency issue
2018-08-05 10:41:06 +01:00
Cory Fields
6a753e4f9c
crypter: shuffle Makefile so that crypto can be used by the wallet
...
Wallet must come before crypto, otherwise linking fails on some platforms.
Includes a tangentially-related general cleanup rather than making the Makefile
sloppier.
2018-08-05 10:41:07 +01:00
Sean Bowe
198dfd3c36
Switch to use the official Sapling parameters.
2018-08-04 16:28:39 -06:00
Homu
aa32786576
Auto merge of #3396 - arcalinea:3389_sapling_crypter, r=str4d
...
Update CCryptoKeyStore with Sapling support
Sapling crypter overrides for various `CCryptoKeyStore` functions such as:
- `HaveSaplingSpendingKey()`
- `GetSaplingSpendingKey()`
Also includes some changes to prepare for diversified addresses and ZIP 32.
Closes #3389
2018-08-03 09:48:22 -07:00
Jack Grigg
25d5e80cbe
Rename *SpendingKey -> *SproutSpendingKey
...
Also GetPaymentAddresses -> GetSproutPaymentAddresses
2018-08-03 10:10:26 +01:00
Jack Grigg
f84cf5f817
Formatting nits
2018-08-03 02:25:51 +01:00
Jack Grigg
4c77517772
Rename *ViewingKey* -> *SproutViewingKey*
2018-08-03 02:23:38 +01:00
Jack Grigg
74f5b010df
Rename Serialized*Size -> SerializedSprout*Size
2018-08-03 01:57:40 +01:00
Jack Grigg
93fcf892d4
Rename SpendingKeyMap -> SproutSpendingKeyMap
2018-08-03 01:47:30 +01:00
Jack Grigg
5175a7f07b
Pass SaplingPaymentAddress to store through the CKeyStore
2018-08-03 01:01:45 +01:00
Jack Grigg
bc6344b350
Add CWallet::AddCryptedSaplingSpendingKey() hook
...
To be filled in when we implement Sapling persistence to disk.
2018-08-03 00:23:08 +01:00
Jack Grigg
9c9258c4f8
Remove outdated comment
2018-08-03 00:23:08 +01:00
Jack Grigg
4a89221ffc
Check for unencrypted Sapling keys in CCryptoKeyStore::SetCrypted()
2018-08-03 00:23:08 +01:00
Jack Grigg
0adba6789b
Add Sapling decryption check to CCryptoKeyStore::Unlock()
2018-08-03 00:23:08 +01:00
Jack Grigg
e8a949c153
Rename CryptedSpendingKeyMap -> CryptedSproutSpendingKeyMap
2018-08-03 00:23:08 +01:00
Jack Grigg
adf2eadba2
Rename DecryptSpendingKey -> DecryptSproutSpendingKey
2018-08-03 00:23:08 +01:00
Jay Graber
85beb9c9ca
Add Sapling keys to CCryptoKeyStore::EncryptKeys
2018-08-03 00:23:08 +01:00
Jay Graber
55f2889396
Add Sapling have/get sk crypter overrides
2018-08-03 00:23:08 +01:00
Daira Hopwood
66856b2b3c
Support testnet rollback.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2018-08-02 23:10:30 +01:00
Sean Bowe
d9ef8f622e
Check the hash of the (Sapling+) zk-SNARK parameters during initialization.
2018-08-02 12:18:13 -06:00
Homu
871e1726c6
Auto merge of #3340 - Eirik0:rename-merkle-typedefs, r=str4d
...
Rename merkle tree typedefs to include Sprout
This is to be consistent with the naming convention we have been using to distinguish Sprout/Sapling.
2018-08-01 20:48:17 -07:00
Homu
16117c0d5a
Auto merge of #3439 - ebfull:fix-ecc, r=ebfull
...
Don't call ECC_Start/ECC_Stop outside the test harness.
2018-08-01 17:23:14 -07:00
Sean Bowe
80bd573dc2
Make changes to gtest ECC behavior suggested by @str4d.
2018-08-01 16:53:27 -06:00
Sean Bowe
262d21bcbb
Don't call ECC_Start/ECC_Stop outside the test harness.
2018-08-01 16:45:12 -06:00
Homu
0361f789fe
Auto merge of #3246 - str4d:checkpoint-304600, r=bitcartel
...
Add some more checkpoints, up to the 1.1.0 release
2018-08-01 13:55:34 -07:00
Homu
066cc9c6c7
Auto merge of #3429 - str4d:3217-sapling-address-creation, r=str4d
...
Add Sapling support to z_getnewaddress and z_listaddresses
Closes #3217 .
2018-08-01 12:01:39 -07:00
Jack Grigg
40dc060cb0
test: Update rpc_wallet_z_importexport to account for Sapling changes
2018-08-01 19:59:57 +01:00
Eirik Ogilvie-Wigley
7d379f18c5
Rename test objects to include sprout or sapling
2018-08-01 10:52:58 -06:00
Eirik Ogilvie-Wigley
8ea8ef9850
Rename Witnesses to include sprout or sapling
2018-08-01 10:41:36 -06:00
Eirik Ogilvie-Wigley
4fc309f0f5
Rename Merkle Trees to include sprout or sapling
2018-08-01 10:31:09 -06:00
Jack Grigg
4fab49e173
test: Another assert in wallet_zkeys_tests.store_and_load_sapling_zkeys
2018-08-01 09:46:32 +01:00
Homu
d84f14ec4a
Auto merge of #3417 - str4d:sapling-tx-builder, r=ebfull
...
TransactionBuilder for Sapling and transparent transactions
This PR includes zcash/librustzcash#24 , and will create a testnet chain split once merged into master (and once a Sapling transaction is mined).
2018-07-31 23:44:29 -07:00
Sean Bowe
a310f6c5fa
Relocate ECC_Start() to avoid test failures.
2018-08-01 00:42:02 -06:00
Jack Grigg
fbd029d99d
Formatting
2018-07-31 23:28:42 +01:00
Sean Bowe
3d75e8b3e7
Move `extern params` to beginning of `test_checktransaction`.
2018-07-31 08:33:33 -06:00
Sean Bowe
291895fac7
Ensure sum of valueBalance and all vpub_new's does not exceed MAX_MONEY inside of CheckTransactionWithoutProofVerification.
2018-07-30 22:35:31 -06:00
Sean Bowe
04ed758e37
Fix bug in return value.
2018-07-30 22:03:40 -06:00
Homu
a11e6aaacc
Auto merge of #3336 - arcalinea:expiryheight-createrawtransaction, r=bitcartel
...
Take expiryheight as param to createrawtransaction
Addresses #3333
2018-07-30 13:56:34 -07:00
Simon
f01c11bd0f
Add tests for expiryheight parameter of RPC createrawtransaction.
2018-07-30 10:24:10 -07:00
Jack Grigg
3f4ad5967b
Fix block hash for checkpoint at height 270000
2018-07-30 17:45:04 +01:00
Jack Grigg
eec85c4388
Add Sapling support to z_getnewaddress and z_listaddresses
2018-07-30 16:24:20 +01:00
Jack Grigg
281b51e567
Raise the 90-character limit on Bech32 encodings
...
Regtest addresses are 91 characters, and ZIP 32's Bech32 encoding will
be significantly longer.
2018-07-30 16:01:22 +01:00
Jack Grigg
4715b31c76
Implement CKeyStore::GetSaplingPaymentAddresses()
2018-07-30 16:01:22 +01:00
Jack Grigg
54a868cf0a
Rename xsk to expsk
...
xsk will be used for ZIP 32 extended spending keys, so renaming here to
reduce confusion.
2018-07-30 14:26:29 +01:00
Jack Grigg
a8dd4b0cf1
TransactionBuilder: Make fee configurable
2018-07-30 12:52:48 +01:00
Jack Grigg
45c0d1ec84
TransactionBuilder: Add change output to transaction
2018-07-30 12:46:18 +01:00
Homu
6b9c962725
Auto merge of #3410 - LarryRuane:3399-peer-ban, r=bitcartel
...
don't ban peers when loading pre-overwinter blocks
Addresses #3399 . If we see an invalid transaction (from our peers who are up to date, post-overwinter) during initial block download, don't invoke DoS (logging messages, blocking these peers). Instead, simply ignore the transaction.
2018-07-30 03:46:37 -07:00
Jack Grigg
3466b4677e
TransactionBuilder: Add support for transparent inputs and outputs
2018-07-30 11:03:29 +01:00
Simon
87d55e1322
Clean up help messages for RPC createrawtransaction.
...
Also return error if expiryheight used when Overwinter not active.
2018-07-29 20:57:33 -07:00
Jay Graber
76277ad8af
Take expiryheight as param to createrawtransaction
2018-07-29 19:13:54 -07:00
Jay Graber
501de644ab
Refactor into visitors and throw errors for invalid key or address.
2018-07-29 18:42:41 -07:00
Jay Graber
8dd1dbcfe4
Add Sapling to rpc_wallet_z_importexport test
2018-07-29 16:15:06 -07:00
Jay Graber
dd4c8a3c70
Add Sapling support to z_importkey
2018-07-29 16:15:06 -07:00
Jay Graber
2afc8eb0ec
Add Sapling support to z_exportkey
2018-07-29 16:15:06 -07:00
Jack Grigg
3fd0a269e1
test: Move ECC_Start() call into src/gtest/main.cpp
2018-07-27 17:18:49 +02:00
Jack Grigg
25bb05de23
Formatting
2018-07-27 12:17:14 +02:00
Jack Grigg
e5dc5228ea
TransactionBuilder: Check that all anchors in a transaction are identical
...
This reduces the amount of information that is leaked by the choice of anchor.
In future we will make a protocol change to enforce that all inputs use the
same anchor.
2018-07-27 09:46:38 +02:00
Larry Ruane
772f87aaeb
don't ban peers when loading pre-overwinter blocks
2018-07-26 12:29:04 -06:00
Simon
2f0b2a256d
Clean up for rebase: rename mapNoteData to mapSproutNoteData.
2018-07-25 20:47:41 -07:00
Simon
d9fe33b86f
Only check for a valid Sapling anchor after Sapling activation.
...
Before Sapling activates, hashFinalSaplingRoot is 0x0, which is
not a valid anchor. After Sapling activates, the empty root value
of 0x3e49... is a valid anchor.
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
3a5f66c880
Add parameter for version in GetValidReceive
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
e6b0a8b9ee
Add getter and setter for sapling note data and update tests
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
29523dc778
Remove extra indentation
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
8e8279e728
Rename sprout specific methods
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
45de2eda07
Increment sapling note witnesses
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
f86ee1c252
Pass sapling merkle tree when incrementing witnesses
2018-07-25 20:47:41 -07:00
Eirik Ogilvie-Wigley
4a0bc6047e
Extract method for incrementing witness heights
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
f6d0d5ec43
Extract methods for incrementing witnesses
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
b538024806
Extract method for copying previous witnesses
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
403b9b4e4d
Clear sapling witness cache
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
9d804cc619
Decrement sapling note witnesses
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
be43b7469d
Add sapling note data and map
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
00ed92343d
Add out point for sapling note data
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
3c868d2b03
Consolidate for loops
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
49695a97b5
Remove redundant curly braces
2018-07-25 20:47:40 -07:00
Eirik Ogilvie-Wigley
005f3ad1dd
Rename note data to include sprout
2018-07-25 20:47:40 -07:00
Jack Grigg
e691e21f40
TransactionBuilder with support for creating Sapling-only transactions
2018-07-25 11:35:10 +02:00
Jack Grigg
70a7535ae8
Expose note position in IncrementalMerkleWitness
2018-07-24 14:54:07 +02:00
Jack Grigg
66a519f55d
Alter SaplingNote::nullifier() to take a SaplingFullViewingKey
...
This means the API will work if you only have a SaplingExtendedSpendingKey,
as will be the case with ZIP 32.
2018-07-24 14:54:01 +02:00
Homu
a7a62b724b
Auto merge of #3391 - bitcartel:3061_sapling_note_encryption, r=ebfull
...
Sapling note plaintext (encryption and decryption)
Add encryption and decryption of SaplingNotePlaintext and SaplingOutgoingPlaintext classes.
This is part of #3061 to add Sapling note functionality.
2018-07-24 03:27:28 -07:00
Simon
e739ca2ef2
Rename AttemptSaplingEncDecryptionUsingFullViewingKey and use function overloading.
2018-07-23 10:48:26 -07:00
Simon
7b913c3e5e
Implement Sapling note decryption using full viewing key.
2018-07-20 16:31:48 -07:00
Wladimir J. van der Laan
a9496b08b6
rpc: Register calls where they are defined
...
Split out methods to every module, apart from 'help' and 'stop' which
are implemented in rpcserver.cpp itself.
- This makes it easier to add or remove RPC commands - no longer everything that includes
rpcserver.h has to be rebuilt when there's a change there.
- Cleans up `rpc/server.h` by getting rid of the huge cluttered list of function definitions.
- Removes most of the bitcoin-specific code from rpcserver.cpp and .h.
Continues #7307 for the non-wallet.
2018-07-18 11:07:18 -06:00
Daniel Cousens
4b184205e3
rpc: update inline comments to refer to new file paths
2018-07-18 11:07:17 -06:00
Daniel Cousens
4519a766b6
move rpc* to rpc/
2018-07-18 11:07:16 -06:00
Jonas Schnelli
34aca1b03c
[RPC, Wallet] Move RPC dispatch table registration to wallet/ code
...
Allow extending the rpc dispatch table by appending commands when server is not running.
2018-07-18 11:07:15 -06:00