diff options
| author | bitflash <dev@bitflash.network> | 2026-08-18 14:44:11 -0300 |
|---|---|---|
| committer | bitflash <dev@bitflash.network> | 2026-08-18 14:44:11 -0300 |
| commit | 84a60275569dca5d1fb12db38ce184caf7487ed6 (patch) | |
| tree | 23e39a26b340324a7a33a115aded3b70b5332816 /src/db.h | |
| parent | 440d7f393d74f309d29e1d10ba1f11c41c869226 (diff) | |
wallet: one-shot storage commands honour -walletbackend=sqlite
-walletstorageaudit, -walletstoragecheck and -backupwallet all read
wallet.dat regardless of the selected backend. Under -walletbackend=sqlite
that is wrong, and for backup it is dangerous: it silently backs up the
stale plaintext wallet.dat instead of the live wallet.sqlite.
- ScanWalletRecords() routes to the active SQLite store instead of a
Berkeley DB cursor (it returned an error under the runtime before). This
is the single choke point audit and check scan through.
- WalletSQLiteRuntimeOpenReadOnly() opens wallet.sqlite for scanning
without loading or validating records, so the pre-load diagnostics can
inspect a wallet the loader would refuse. main_gui opens it for
audit/check when the SQLite backend is selected (and rejects an unknown
backend value there too).
- BackupWallet() copies wallet.sqlite (checkpoint, then the temp/old/rename
dance; a checkpointed SQLite file is self-contained, no lsn_reset).
wallet-sqlite-encrypt self-test proves routing on a datadir where the
SQLite wallet is encrypted and wallet.dat beside it is still plaintext:
audit with the flag reports the encrypted seed, without it reports the
plaintext one; the SQLite backup carries no plaintext key and loadchecks
as a standalone wallet.
Diffstat (limited to 'src/db.h')
| -rw-r--r-- | src/db.h | 2 |
1 files changed, 2 insertions, 0 deletions
| @@ -368,6 +368,8 @@ bool WalletSQLiteRuntimeEraseRecord(const vector<unsigned char>& vchKey); | |||
| 368 | bool WalletSQLiteRuntimeBeginTxn(); | 368 | bool WalletSQLiteRuntimeBeginTxn(); |
| 369 | bool WalletSQLiteRuntimeCommitTxn(); | 369 | bool WalletSQLiteRuntimeCommitTxn(); |
| 370 | void WalletSQLiteRuntimeRollbackTxn(); | 370 | void WalletSQLiteRuntimeRollbackTxn(); |
| 371 | bool WalletSQLiteRuntimeOpenReadOnly(const string& strPath, string& strErrorRet); | ||
| 372 | bool WalletSQLiteRuntimeCheckpoint(string& strErrorRet); | ||
| 371 | 373 | ||
| 372 | 374 | ||
| 373 | 375 | ||