elements/src/wallet
fanquake 68f0ab26bc
Merge #19805: wallet: Avoid deserializing unused records when salvaging
0bbe26a1af wallet: filter for keys only before record deser in salvage (Andrew Chow)
544e12a4e8 walletdb: Add KeyFilterFn to ReadKeyValue (Andrew Chow)

Pull request description:

  When salvaging a wallet, the only things that matter are the private keys. It is not necessary to attempt to deserialize any other records, especially if those records are corrupted too.

  This PR adds a `KeyFilterFn` function callback to `ReadKeyValue` that salvage uses to filter for only the records that it wants. Of course doing it this way also lets us do other filters in the future from other places should we so desire.

ACKs for top commit:
  ryanofsky:
    Code review ACK 0bbe26a1af. Looks great! This should make the recovery code more robust. Normally it'd be good to have a test case for the problem this fixes, but Marco already wrote one in #19078, so I think we're covered
  laanwj:
    Code review ACK 0bbe26a1af

Tree-SHA512: 8e3ee283a22a79273915711c4fb751f3c9b02ce94e6bf08dc468f1cfdf9fac35c693bbfd2435ce43c3a06c601b9b0a67e209621f6814bedfe3bc7a7ccc37bb01
2020-09-03 12:47:01 +08:00
..
test Merge #19717: rpc: Assert that RPCArg names are equal to CRPCCommand ones (mining,zmq,rpcdump) 2020-08-31 17:43:35 +02:00
bdb.cpp refactor: Make HexStr take a span 2020-08-06 19:41:43 +02:00
bdb.h Remove BDB dummy databases 2020-07-29 12:30:23 -04:00
coincontrol.cpp [rpc] walletcreatefundedpsbt: don't automatically append inputs 2020-03-12 13:07:17 +01:00
coincontrol.h [rpc] walletcreatefundedpsbt: don't automatically append inputs 2020-03-12 13:07:17 +01:00
coinselection.cpp Refactor OutputGroups to handle effective values, fees, and filtering 2020-08-11 14:25:02 -04:00
coinselection.h Refactor OutputGroups to handle effective values, fees, and filtering 2020-08-11 14:25:02 -04:00
context.cpp Remove g_rpc_chain global 2020-05-28 02:13:19 -04:00
context.h wallet: Pass unused args to StartWallets 2020-07-09 13:07:37 +02:00
crypter.cpp Fix occurences of c_str() used with size() to data() 2019-10-28 13:41:45 +01:00
crypter.h Convert wallet to new serialization 2020-05-24 10:34:52 -07:00
db.cpp walletdb: Move BDB specific things into bdb.{cpp/h} 2020-06-15 20:41:05 -04:00
db.h Introduce DummyDatabase and use it in the tests 2020-07-29 12:28:30 -04:00
feebumper.cpp wallet: Remove trailing whitespace from potential translation strings 2020-05-01 07:41:32 -04:00
feebumper.h wallet: Avoid translating RPC errors when creating txs 2020-05-01 07:39:06 -04:00
fees.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
fees.h Remove uses of fee globals in wallet code 2019-02-22 15:43:02 -04:00
init.cpp Merge #19671: wallet: Remove -zapwallettxes 2020-09-01 09:26:28 +08:00
ismine.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
load.cpp Add loadwallet and createwallet RPC load_on_startup options 2020-08-13 09:44:48 -04:00
load.h Add loadwallet and createwallet RPC load_on_startup options 2020-08-13 09:44:48 -04:00
rpcdump.cpp rpc: Assert that RPCArg names are equal to CRPCCommand ones (rpcdump) 2020-08-14 12:38:03 +02:00
rpcwallet.cpp Merge #19671: wallet: Remove -zapwallettxes 2020-09-01 09:26:28 +08:00
rpcwallet.h refactor: Combine GetWalletForJSONRPCRequest and EnsureWalletIsAvailable functions 2020-06-05 08:29:18 -04:00
salvage.cpp wallet: filter for keys only before record deser in salvage 2020-08-25 13:23:40 -04:00
salvage.h wallettool: Have RecoverDatabaseFile return errors and warnings 2020-07-26 20:22:45 -04:00
scriptpubkeyman.cpp Merge #19046: Replace CWallet::Set* functions that use memonly with Add/Load variants 2020-07-11 23:08:54 +12:00
scriptpubkeyman.h Add missed thread safety annotations 2020-08-29 20:46:23 +03:00
wallet.cpp Merge #19671: wallet: Remove -zapwallettxes 2020-09-01 09:26:28 +08:00
wallet.h Merge #19668: Do not hide compile-time thread safety warnings 2020-09-01 08:18:26 +02:00
walletdb.cpp Merge #19805: wallet: Avoid deserializing unused records when salvaging 2020-09-03 12:47:01 +08:00
walletdb.h Merge #19805: wallet: Avoid deserializing unused records when salvaging 2020-09-03 12:47:01 +08:00
wallettool.cpp build: Add Werror=range-loop-analysis 2020-08-14 15:27:38 +02:00
wallettool.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
walletutil.cpp Correctly check for default wallet 2020-04-23 13:59:48 -04:00
walletutil.h Convert wallet to new serialization 2020-05-24 10:34:52 -07:00