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
Kris Nuttycombe
a46720aab1
Add accessor method for Sapling IVKs to SaplingDiversifiableFullViewingKey
2022-02-01 08:24:31 -07:00
Kris Nuttycombe
2209a74f38
Fix a bug in the generation of addresses from UFVKs
...
The use of `std::optional` for the return type of the
`ZcashdUnifiedFullViewingKey::Address` operation obscured
a potential bug where the requested receiver types for a
unified address could not be satisfied because the UFVK
from which the address was being derived did not contain
all of the requested key types.
2022-02-01 08:24:31 -07:00
Kris Nuttycombe
90e59c3be0
Do not add Sapling addresses to the wallet by default when adding extfvks.
...
Adding the default address to the wallet automatically made sense
prior to support of diversified addresses, but this is no longer
desirable behavior as we have separated key generation from address
derivation.
2022-01-31 11:31:16 -07:00
Conrado Gouvea
269c5c2e7f
Add comment to zcash_script_new_precomputed_tx about references to input buffers
2022-01-31 15:16:35 -03:00
Kris Nuttycombe
66530d97e1
Rename AddSaplingIncomingViewingKey -> AddSaplingPaymentAddress
...
This operation was poorly named; the wallet already contained
the IVK, and this operation was simply adding the ability to
look up the IVK by a specific diversified address derived
from that IVK.
2022-01-30 17:24:52 -07:00
Kris Nuttycombe
b80349d246
GenerateLegacySaplingZKey only needs to return an address, not an extfvk.
2022-01-30 11:26:49 -07:00
Kris Nuttycombe
ae2213dcdc
Fix variable shadowing in change address derivation & add change IVK to the keystore.
2022-01-30 11:15:50 -07:00
Kris Nuttycombe
acacc044fc
Add gtest for change address derivation.
...
Check that derivation of the UFVK change address is consistent
irrespective of the path by which it is derived.
2022-01-30 11:09:06 -07:00
Kris Nuttycombe
9afea4f10b
Add failing tests for z_sendmany ANY_TADDR -> UA and UA -> <legacy_taddr>
2022-01-30 11:07:00 -07:00
Kris Nuttycombe
91be2f1875
Simplify determination of valid change types.
2022-01-29 13:53:24 -07:00
Kris Nuttycombe
b880ef8a1c
Fix z_sendmany handling of transparent OVK derivation in the ANY_TADDR case.
2022-01-27 21:29:40 -07:00
Kris Nuttycombe
71f17fa05c
Add a check for internal vs. external outputs to wallet_listreceived test.
2022-01-27 21:29:40 -07:00