Commit Graph

15841 Commits

Author SHA1 Message Date
therealyingtong 6436230562 Move SendManyRecipient to wallet.h and introduce optional ua field. 2022-02-15 09:50:00 +08:00
sasha e568a190f3
Merge pull request #5419 from zcash/feature/wallet_unified_addresses 2022-02-14 08:17:36 -08:00
Kris Nuttycombe 9ca64fc8ba
Merge pull request #5541 from nuttycom/ua_test_vectors
Add test vectors for UFVK derivation
2022-02-13 07:36:14 -07:00
Kris Nuttycombe 96f34b9bbd
Merge pull request #5543 from nuttycom/feature/wallet_unified_addresses-address_review
Rename sapling-specific zip32 FFI methods.
2022-02-13 07:35:08 -07:00
Kris Nuttycombe b1ab30c8d9 Rename sapling-specific zip32 FFI methods.
Also addresses a couple of other minor comments from code review.
2022-02-12 15:24:48 -07:00
Kris Nuttycombe 67e871a40c Add test vectors for UFVK derivation
Also update test vectors for unified addresses.
2022-02-12 15:07:05 -07:00
Kris Nuttycombe e6d3dca2a3
Merge pull request #5542 from LarryRuane/2022-02-z_listreceivedbyaddress-ua-1
fix wallet_listreceived.py, add blockdata to taddr output
2022-02-12 14:59:08 -07:00
Larry Ruane 326dafeebe fix wallet_listreceived.py, add blockdata to taddr output 2022-02-12 13:01:58 -07:00
Kris Nuttycombe 93e12899bb
Merge pull request #5540 from nuttycom/feature/wallet_unified_addresses-fix_osx_build
Fix missing std::variant header that was breaking Darwin builds.
2022-02-11 15:26:08 -07:00
Kris Nuttycombe 85caa659af Fix missing std::variant header that was breaking Darwin builds. 2022-02-11 13:10:47 -07:00
Kris Nuttycombe 29c9632ecb
Merge pull request #5508 from LarryRuane/2022-02-z_listreceivedbyaddress-ua
Update z_listreceivedbyaddress to support unified addresses (5467)
2022-02-11 08:10:00 -07:00
Kris Nuttycombe 007f05493a Add change field to z_listreceivedbyaddress for transparent addrs.
This updates the `IsChange` method to check the HD keypath associated
with the key for whether the address was generated as internal
or external.
2022-02-11 12:48:35 +00:00
Larry Ruane c48e35bb66 Update z_listreceivedbyaddress to support unified addresses (5467) 2022-02-11 12:48:23 +00:00
Kris Nuttycombe 30c20c0046
Merge pull request #5323 from charlieok/update_dockerfile_to_debian_11
Update base image used by Dockerfile from debian 10 to debian 11
2022-02-10 18:29:01 -07:00
Kris Nuttycombe d2b900a0c8
Merge pull request #5531 from str4d/overhaul-legacy-transparent-keypool
Only use legacy transparent keypool for internal keys
2022-02-10 18:06:08 -07:00
Jack Grigg 89b9bbaf33 wallet: Separate counters for external and internal transparent keys
This fixes a potential bug with importing the mnemonic into a third
party transparent wallet. Previously, if a user called `getnewaddress`,
made a bunch of transactions that generated at least 20 change
addresses, and then called `getnewaddress` again, the two external
addresses would be separated by a gap of more than 20. If this mnemonic
were imported into a third party transparent wallet, the wallet would
not detect any funds in the second (or subsequent) transparent addresses
because it would detect 20 unused addresses in a row (via the BIP 44
default gap limit).

Now, we track external and internal keys separately; repeated calls to
`getnewaddress` will return addresses for sequential keys. This has the
added benefit that the sequence of `getnewaddress` outputs will be the
same after restoring from a backup.
2022-02-10 21:26:29 +00:00
Jack Grigg 2555aadf31 wallet: Store internal transparent keys in the keypool
Now that the keypool is not used by any consumers of external
transparent keys, we switch it to only contain internal keys. To handle
the impedance mismatch, we clear out the keypool when a mnemonic seed is
generated for the wallet.
2022-02-10 21:26:29 +00:00
Jack Grigg 11e62fa997 wallet: Remove `CWallet::GetKeyFromPool`
Legacy transparent addresses for external use are now obtained directly
via `GenerateNewKey(true)`.
2022-02-10 21:26:29 +00:00
Kris Nuttycombe d1227b086e
Merge pull request #5525 from nuttycom/feature/wallet_unified_addresses-ua_belongs_to_wallet
Add unified address support to PaymentAddressBelongsToWallet and GetSourceForPaymentAddress
2022-02-09 22:26:54 -07:00
Kris Nuttycombe 2aad87e147
Merge pull request #5526 from str4d/wallet-unified-addrs-in-rpcs
Handle wallet Unified Addresses in RPCs
2022-02-09 21:11:41 -07:00
Kris Nuttycombe 50ad6675a5 Address comments from review. 2022-02-09 20:56:00 -07:00
Kris Nuttycombe 09593559f8
Merge pull request #5522 from nuttycom/feature/wallet_unified_addresses-balance_for_vk
Replace z_getbalanceforaddress with z_getbalanceforviewingkey
2022-02-09 20:30:09 -07:00
Jack Grigg 88dde127f4 wallet: Show UAs instead of Sapling receivers in `z_listunspent`
We also add a `type` field to the output objects (matching the field in
`z_viewtransaction`), now that the output type can't be distinguished
solely from the address encoding.
2022-02-10 02:32:56 +00:00
Kris Nuttycombe f320a6cc24 Add unified address support to GetSourceForPaymentAddress 2022-02-09 18:59:13 -07:00
Kris Nuttycombe d2e8b98364 Implement PaymentAddressBelongsToWallet for unified addresses. 2022-02-09 18:22:14 -07:00
Jack Grigg 0a9c27e8f2 wallet: Don't show Sapling receivers from UAs in `z_listaddresses`
This API is deprecated in favour of `listaddresses`, so we aren't going
to extend it with UA support.
2022-02-10 01:09:46 +00:00
Kris Nuttycombe d24a41496a Clarify documentation of z_getbalanceforviewingkey for Sprout viewing keys. 2022-02-09 17:03:24 -07:00
Kris Nuttycombe bf79be2b57 Replace z_getbalanceforaddress with z_getbalanceforviewingkey 2022-02-09 16:58:55 -07:00
str4d 944453065b
Merge pull request #5517 from daira/deps-graph-override-args
contrib/devtools/rust-deps-graph.sh: allow overriding the arguments to cargo deps
2022-02-09 23:26:40 +00:00
Kris Nuttycombe 08dd842087
Merge pull request #5521 from nuttycom/fix_z_getbalance_locking
Fix locking in z_getbalanceforaddress and z_getbalanceforaccount
2022-02-09 12:30:25 -07:00
Kris Nuttycombe ae1b843b5a Fix locking in z_getbalanceforaddress and z_getbalanceforaccount 2022-02-09 10:48:12 -07:00
Daira Hopwood cf1047324e contrib/devtools/rust-deps-graph.sh: allow overriding the arguments to `cargo deps`.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-02-09 11:48:43 +00:00
str4d d41e10e0c2
Merge pull request #5516 from LarryRuane/2022-02-08-minconf-parse
Fix minconf parsing for z_getbalanceforaccount and z_getbalanceforaddress
2022-02-09 08:29:41 +00:00
Larry Ruane 403c5846c1 fix minconf parsing for z_getbalanceforaccount and z_getbalanceforaddress 2022-02-08 22:58:45 -07:00
str4d 9439c79bab
Merge pull request #5469 from nuttycom/feature/wallet_unified_addresses-z_sendmany
Add support for unified addresses to z_sendmany
2022-02-08 23:42:59 +00:00
Kris Nuttycombe 3f84067658 Fix nondeterministic test failure in wallet_listreceivedby.py 2022-02-08 14:18:18 -07:00
Kris Nuttycombe 282c0db8d5
Merge pull request #5507 from zancas/update_comparison_test_framework
Update comparison test framework
2022-02-08 13:38:19 -07:00
Kris Nuttycombe 1890758b27 Apply suggestions from code review.
Co-authored-by: str4d <thestr4d@gmail.com>
2022-02-08 10:59:15 -07:00
Kris Nuttycombe 9a8038ea62
Merge pull request #5504 from ZcashFoundation/clarify-precomputed-references
Add comment to zcash_script_new_precomputed_tx about references to input buffers
2022-02-08 07:17:33 -07:00
Kris Nuttycombe cf271473eb Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: str4d <thestr4d@gmail.com>
2022-02-07 16:52:31 -07:00
Kris Nuttycombe 13ee447a42 Merge branch 'test_wallet_listreceived' into feature/wallet_unified_addresses-z_sendmany 2022-02-07 15:08:35 -07:00
Kris Nuttycombe fa0d4eb473 Use z_shieldcoinbase for Sprout funds in wallet_listreceived tests.
After release 4.7.0, z_sendmany will no longer support sending
funds to Sprout. By using z_shieldcoinbase, we can avoid this
limitation.
2022-02-07 15:06:19 -07:00
str4d 96912d3152
Merge pull request #5490 from LarryRuane/2022-01-ua-shieldcoinbase
allow UA as z_shieldcoinbase destination
2022-02-03 21:44:29 +00:00
Larry Ruane 1e165b8396 allow UA as z_shieldcoinbase destination 2022-02-03 08:31:26 -07:00
Kris Nuttycombe 741ed52436 Fix nondeterministic test error (checking for the wrong error case). 2022-02-02 17:48:35 -07:00
Kris Nuttycombe 6c9b9a53b5 Update librustzcash dependency. 2022-02-02 17:40:36 -07:00
zancas ca04cb0a58
All implementations of ComparisonTestFramework were overriding num_nodes
Moreover, they were all overriding it to the same value (1).
Set the default to 1 and remove redundant subclass constructor code.
2022-02-01 10:27:16 -07:00
zancas 4dce020678
enforce usage of the get_tests comptool interface as ComparisonTestFramework method
In practice all-and-only subclasses of ComparisonTestFramework implement get_tests.
This commit enforces this relation.
2022-02-01 10:27:10 -07:00
Kris Nuttycombe 214567be2c Add a few additional cases to z_sendmany RPC tests. 2022-02-01 08:24:31 -07:00
Kris Nuttycombe a0c27bf254 Address TODOs in rpc-tests/wallet-accounts.py 2022-02-01 08:24:31 -07:00