0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-22 12:23:34 -05:00
bitcoin-bitcoin-core/src/wallet/test
furszy 33757814ce
wallet: bdb batch 'ErasePrefix', do not create txn internally
Transactions are intended to be started on upper layers rather than
internally by the bdb batch object. This enables us to consolidate
different write operations within a procedure in the same db txn,
improving consistency due to the atomic property of the transaction,
as well as its performance due to the reduction of disk write
operations.

Important Note:
This approach also ensures that the BerkeleyBatch::ErasePrefix
function behaves exactly as the SQLiteBatch::ErasePrefix function,
which does not create a db txn internally.

Furthermore, since the `BerkeleyBatch::ErasePrefix' implementation
erases records one by one (by traversing the db), this change
ensures that the function is always called within an active txn
context. Without this measure, there's a potential risk to consistency;
certain records may be removed while others could persist due to an
internal failure during the procedure.
2024-02-12 16:05:15 -03:00
..
fuzz Merge bitcoin/bitcoin#27877: wallet: Add CoinGrinder coin selection algorithm 2024-02-09 16:38:13 -05:00
coinselector_tests.cpp opt: Skip over barren combinations of tiny UTXOs 2024-02-09 11:03:18 +01:00
db_tests.cpp wallet: bdb batch 'ErasePrefix', do not create txn internally 2024-02-12 16:05:15 -03:00
feebumper_tests.cpp Use Txid in COutpoint 2023-11-21 13:15:44 +00:00
group_outputs_tests.cpp refactor: Add LIFETIMEBOUND to all (w)txid getters 2023-10-27 13:01:42 +02:00
init_test_fixture.cpp refactor: Replace string chain name constants with ChainTypes 2023-05-09 15:49:14 +02:00
init_test_fixture.h refactor: Replace string chain name constants with ChainTypes 2023-05-09 15:49:14 +02:00
init_tests.cpp move-only: Extract common/args and common/config.cpp from util/system 2023-04-19 10:48:30 +02:00
ismine_tests.cpp refactor: share and use GenerateRandomKey helper 2023-12-23 13:26:00 +01:00
psbt_wallet_tests.cpp Remove unused CDataStream 2023-11-30 11:27:54 +01:00
rpc_util_tests.cpp refactor: move Boost datetime usage to wallet 2022-10-01 11:41:53 +01:00
scriptpubkeyman_tests.cpp Rename script/standard.{cpp/h} to script/solver.{cpp/h} 2023-08-14 17:39:49 -04:00
spend_tests.cpp test: wallet, fix change position out of range error 2023-12-12 15:20:38 -03:00
util.cpp tests, bench: Remove incorrect LoadWallet() calls 2023-12-11 17:03:25 -05:00
util.h Move CTxDestination to its own file 2023-08-14 17:38:27 -04:00
wallet_crypto_tests.cpp Move random test util code from setup_common to random 2023-02-06 12:26:04 -08:00
wallet_test_fixture.cpp Merge bitcoin/bitcoin#26715: Introduce MockableDatabase for wallet unit tests 2023-05-15 11:39:43 +01:00
wallet_test_fixture.h refactor: Replace string chain name constants with ChainTypes 2023-05-09 15:49:14 +02:00
wallet_tests.cpp wallet: bdb batch 'ErasePrefix', do not create txn internally 2024-02-12 16:05:15 -03:00
wallet_transaction_tests.cpp Add src/wallet/* code to wallet:: namespace 2022-01-06 22:14:16 -05:00
walletdb_tests.cpp Remove unused CDataStream 2023-11-30 11:27:54 +01:00
walletload_tests.cpp Remove unused CDataStream 2023-11-30 11:27:54 +01:00