Commit graph

274 commits

Author SHA1 Message Date
Andrew Poelstra
3c24e4c1b5 Merge 045bb06ebd into merged_master (Bitcoin PR bitcoin/bitcoin#19651) 2021-07-29 23:12:48 +00:00
Andrew Poelstra
8a158e3e93 Merge 722776c0fd into merged_master (Bitcoin PR bitcoin/bitcoin#21329) 2021-07-29 22:11:13 +00:00
Andrew Poelstra
0fe87c64ad Merge 93e38d5c06 into merged_master (Bitcoin PR bitcoin/bitcoin#22173) 2021-07-23 21:58:13 +00:00
Andrew Poelstra
f39648bfe5 Merge 5cf92c32d1 into merged_master (Bitcoin PR bitcoin/bitcoin#21969) 2021-07-20 02:11:14 +00:00
fanquake
045bb06ebd
Merge bitcoin/bitcoin#19651: wallet: importdescriptors update existing
3efaf83c75 wallet: deactivate descriptor (S3RK)
6737d9655b test: wallet importdescriptors update existing (S3RK)
586f1d53d6 wallet: maintain SPK consistency on internal flag change (S3RK)
f1b7db1474 wallet: don't mute exceptions in importdescriptors (S3RK)
bf68ebc1cd wallet: allow to import same descriptor twice (S3RK)

Pull request description:

  Rationale: allow updating existing descriptors with `importdescriptors` command.

  Currently if you run same `importdescriptors` command twice with a descriptor containing private key you will get very confusing error — `Missing required fields`. What happens is that Wallet tries to write imported private key to the disk, but it exists already so we get `DB_KEYEXIST (-30995)` from BerkelyDB. Please note, that we set `DB_NOOVERWRITE` (I guess not to lose some keys accidentally). The exception is caught in `catch (...)` in rpcdump.cpp with a generic error.

  With this PR if a descriptor is already present than we will update its activeness, internalness, label, range and next_index.
  For the range only expansion is allowed (range start can only decrease, range end increase).

ACKs for top commit:
  achow101:
    re-ACK 3efaf83c75
  meshcollider:
    Code review ACK 3efaf83c75
  jonatack:
    Light ACK 3efaf83c75 per `git range-diff a000cb0 5d96704 3efaf83` and as a sanity check, re-debug-built on debian with gcc 10.2.1 and clang 11, ran wallet_importdescriptors.py

Tree-SHA512: 122c4b621d64ec8a3b625f3aed9f01a2b5cbaf2029ad0325b5ff38d67fff5cd35324335fabe2dd5169548b01b267c81be6ae0f5c834342f3d5f6eeed515c4843
2021-07-01 10:06:56 +08:00
S3RK
3efaf83c75 wallet: deactivate descriptor 2021-06-28 21:44:50 +02:00
Andrew Poelstra
26fd4eb181 Merge a9d1b40d53 into merged_master (Bitcoin PR #21415) 2021-06-27 15:02:35 +00:00
Andrew Poelstra
8c54b98b25 Merge e0bc27a14c into merged_master (Bitcoin PR #21404) 2021-06-26 22:39:09 +00:00
Andrew Chow
74fede3b8b wallet: Upgrade existing descriptor caches
Add functions to upgrade existing descriptor caches to support the use
of last hardened xpub caching.
2021-06-24 13:49:22 -04:00
Andrew Chow
432ba9e543 wallet: Store last hardened xpub cache 2021-06-24 13:49:22 -04:00
Andrew Chow
cacc391098 Move DescriptorCache writing to WalletBatch
Instead of adhoc writing of the items in DescriptorCache, move it all
into WalletBatch.
2021-06-24 13:49:22 -04:00
Andrew Poelstra
29d002046c Merge 43981ee2c8 into merged_master (Bitcoin PR #21127) 2021-06-23 12:39:41 +00:00
Andrew Poelstra
617905a928 Merge 34322b7f5c into merged_master (Bitcoin PR #20842) 2021-06-16 18:28:04 +00:00
Andrew Poelstra
0cabbc6b4a Merge ffc4d04990 into merged_master (Bitcoin PR #20275)
As always, `git diff HEAD^ HEAD^2 -- <filename>` is your friend when understanding conflicts..
2021-06-14 01:22:11 +00:00
Andrew Poelstra
2ec2763700 Merge 80d4231e16 into merged_master (Bitcoin PR #19980) 2021-06-10 21:23:06 +00:00
Andrew Chow
e60cd26ad4 Do not load external signers wallets when unsupported
When external signer support is not compiled, do not load external
signer wallets.
2021-06-06 13:52:27 -04:00
MarcoFalke
ffff0d0442
refactor: Switch serialize to uint8_t (1/n) 2021-05-31 14:56:17 +02:00
Andrew Poelstra
0a5257d126 Merge 86bf3ae3b5 into merged_master (Bitcoin PR #20202) 2021-05-07 17:19:00 +00:00
Andrew Poelstra
620add9627 Merge 9ab9665c74 into merged_master (Bitcoin PR #15710) 2021-05-06 19:50:01 +00:00
fanquake
ebc4ab721b
refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
fanquake
57e980d13c
scripted-diff: remove Optional & nullopt
-BEGIN VERIFY SCRIPT-
git rm src/optional.h

sed -i -e 's/Optional</std::optional</g' $(git grep -l 'Optional<' src)

sed -i -e 's/{nullopt}/{std::nullopt}/g' $(git grep -l 'nullopt' src)
sed -i -e 's/ nullopt;/ std::nullopt;/g' $(git grep -l 'nullopt' src)
sed -i -e 's/ nullopt)/ std::nullopt)/g' $(git grep -l 'nullopt' src)
sed -i -e 's/(nullopt)/(std::nullopt)/g' $(git grep -l 'nullopt' src)
sed -i -e 's/ nullopt,/ std::nullopt,/g' $(git grep -l 'nullopt' src)
sed -i -e 's/? nullopt :/? std::nullopt :/g' $(git grep -l 'nullopt' src)
sed -i -e 's/: nullopt}/: std::nullopt}/g' $(git grep -l 'nullopt' src)

sed -i -e '/optional.h \\/d' src/Makefile.am

sed -i -e '/#include <optional.h>/d' src/test/fuzz/autofile.cpp src/test/fuzz/buffered_file.cpp src/test/fuzz/node_eviction.cpp

sed -i -e 's/#include <optional.h>/#include <optional>/g' $(git grep -l '#include <optional.h>' src)
-END VERIFY SCRIPT-
2021-03-15 10:41:30 +08:00
fanquake
3ba2840e7e
scripted-diff: remove MakeUnique<T>()
-BEGIN VERIFY SCRIPT-
git rm src/util/memory.h
sed -i -e 's/MakeUnique/std::make_unique/g' $(git grep -l MakeUnique src)
sed -i -e '/#include <util\/memory.h>/d' $(git grep -l '#include <util/memory.h>' src)
sed -i -e '/util\/memory.h \\/d' src/Makefile.am
-END VERIFY SCRIPT-
2021-03-11 13:45:14 +08:00
Sjors Provoost
9305862f71
wallet: load flags before everything else 2021-02-09 19:01:15 +01:00
Ikko Ashimine
1112035d32
doc: fix various typos
Co-authored-by: Peter Yordanov <ppyordanov@yahoo.com>
2021-01-04 12:31:31 +08:00
Russell Yanofsky
d70dc89e78 refactor: Consolidate redundant wallet database path and exists functions
No change in behavior. Just remove a little bit of code, reduce macro usage,
remove duplicative functions, and make BDB and SQLite implementations more
consistent with each other.
2020-12-04 11:03:28 -04:00
fanquake
80d4231e16
Merge #19980: refactor: Some wallet cleanups
9b74461fa2 refactor: Assert before dereference in CWallet::GetDatabase (João Barbosa)
021feb3187 refactor: Drop redudant CWallet::GetDBHandle (João Barbosa)

Pull request description:

ACKs for top commit:
  achow101:
    Code Review ACK 9b74461fa2
  meshcollider:
    utACK 9b74461fa2
  ryanofsky:
    Code review ACK 9b74461fa2. Changes since last review: rebasing due to conflict, dropping wallet path commit c6a5cd7a64c78b162f545a3467d0fea7dcaadfcc as suggested in discussion, making GetDatabase() const in the earlier commit. Giving more descriptive title like

Tree-SHA512: 68cf3b5e9fe0acb3a5cd081086629989f213f1904cc344e5775767b56759a7d905b1e1c303afbe40f172ff81bf07f3719b59d8f6ec2de3fdd53cd0e2d220fb25
2020-12-02 08:23:00 +08:00
Andrew Poelstra
f3afbf3d85 Merge f3727fd735 into merged_master (Bitcoin PR #20156) 2020-12-01 18:41:26 +00:00
Andrew Poelstra
4eeadb7fde Merge 8ed37f6c84 into merged_master (Bitcoin PR #19077) 2020-11-30 20:20:56 +00:00
Andrew Poelstra
d4e8eb56b0 Merge 56d47e19ed into merged_master (Bitcoin PR #19619) 2020-11-29 00:21:17 +00:00
Andrew Poelstra
e7d708436f Merge 68f0ab26bc into merged_master (Bitcoin PR #19805) 2020-11-28 21:36:21 +00:00
Andrew Poelstra
afe472121a Merge a1d14f522c into merged_master (Bitcoin PR #19671) 2020-11-28 19:48:53 +00:00
Andrew Poelstra
54f2d85914 Merge 34eb236258 into merged_master (Bitcoin PR #19326) 2020-11-27 00:39:12 +00:00
Andrew Poelstra
f6c714b963 Merge 37b765b962 into merged_master (Bitcoin PR #19102) 2020-11-26 22:07:27 +00:00
Andrew Poelstra
7297f932a0 Merge 9d4b3d86b6 into merged_master (Bitcoin PR #19334) 2020-11-26 17:07:31 +00:00
Andrew Poelstra
524d0a7d4d Merge a924f61cae into merged_master (Bitcoin PR #19325) 2020-11-26 03:28:15 +00:00
Andrew Poelstra
d41cf5fe1c Merge 160800ac10 into merged_master (Bitcoin PR #19441) 2020-11-26 01:09:24 +00:00
Andrew Poelstra
7cd7baf583 Merge 5f96bce9b7 into merged_master (Bitcoin PR #18923) 2020-11-26 01:09:24 +00:00
Andrew Poelstra
fc95b9bd68 Merge 89899a3448 into merged_master (Bitcoin PR #19046) 2020-11-26 01:09:24 +00:00
Andrew Poelstra
9942d6f945 Merge 171f4a516b into merged_master (Bitcoin PR #19324) 2020-11-26 01:09:19 +00:00
Andrew Poelstra
bc6c7eaaed Merge 26291745ae into merged_master (Bitcoin PR #19308) 2020-11-26 01:09:16 +00:00
Andrew Poelstra
fa10c4dfe5 Merge bd331bd745 into merged_master (Bitcoin PR #17938)
Also re-`static`'d a method in src/script/standard.cpp which we had made globally
visible for some historical reason, but which I noticed diffing that file against
upstream.
2020-11-26 01:09:10 +00:00
Andrew Poelstra
d497b27545 Merge d4f9ae0025 into merged_master (Bitcoin PR #19054) 2020-11-26 01:09:09 +00:00
Andrew Poelstra
b99679fa3c Merge dbd7a91fdf into merged_master (Bitcoin PR #19310) 2020-11-26 01:09:08 +00:00
Andrew Poelstra
b5d56ca95c Merge 62d863f915 into merged_master (Bitcoin PR #19290) 2020-11-26 01:09:06 +00:00
Andrew Poelstra
ab6a586b75 Merge 5879bfa9a5 into merged_master (Bitcoin PR #18792) 2020-11-26 01:08:56 +00:00
Andrew Poelstra
d38085da61 Merge 520e435b5e into merged_master (Bitcoin PR #18918) 2020-11-26 01:08:51 +00:00
Andrew Poelstra
5800ec9196 Merge ccd85b57af into merged_master (Bitcoin PR #17681) 2020-11-26 01:08:48 +00:00
Andrew Poelstra
e1392efa4f Merge 9abed46871 into merged_master (Bitcoin PR #16946) 2020-11-26 01:08:48 +00:00
Andrew Poelstra
e5faae4af6 Merge 60091d20f9 into merged_master (Bitcoin PR #9381) 2020-11-26 01:08:38 +00:00
Andrew Poelstra
d4711bdf91 Merge 23c926d859 into merged_master (Bitcoin PR #18699) 2020-11-26 01:08:37 +00:00