T
← Developer activityVerified account

ThomasV

Public commit activity attributed with verified account confidence. This page describes observable work, not personal trustworthiness.

@ecdsa on GitHub ↗
76 commits1 monitored projects2 candidates1 high-risk analyses
Project constellation

Where the commits appear

Amber nodes are monitored by CommitWatch. Gray nodes are sampled from authenticated GitHub public commit search and may not represent complete contribution history.

Monitored External sample
Projects connected to ThomasVA visual map of monitored and externally discovered repositories.Tdeveloper76Electrum
Monitored evidence

CommitWatch projects

External discovery

Other public projects

No external sample loaded yet.

Authenticated GitHub discovery can enrich this profile.
Analyzed activity

Recent published watches

Message quality and risk characterize commits, never the person.

Informational 15 AI analysisMessage 18 · Opaque
EL ElectrumElectrum BitcoinSoftware wallets

update locale

This commit is a routine update to Electrum's language translation files (locale). It changes one line in one translation file. There is no indication of any security relevance.

c7ec118bby ThomasV+1−11 file
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

test_storage_upgrade: add upgrade from client_4_6_0_with_unfulfilled_htlcs

This commit only adds a new test case and a test helper. It does not change any production wallet code. The test checks that Electrum can correctly upgrade an old wallet database that contains unfinished Lightning payment data ('unfulfille…

eff48a2dby ThomasV+542−13 files
No security note in commit
Informational 15 AI analysisMessage 60 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

test_storage_upgrade: add test wallet with invoice and request

This commit only adds a new test case and a test wallet file to Electrum's test suite. It does not change any production code, so it cannot introduce a security vulnerability or fix one. The test wallet contains a publicly exposed seed phr…

4774f7adby ThomasV+147−02 files
No security note in commit
Low 32 AI analysisMessage 35 · Opaque
EL ElectrumElectrum BitcoinSoftware wallets

add_tx_fee_from_server: check fee_sat type

This commit adds a type check to ensure a transaction fee value coming from an external server is either a valid whole number or absent. Without the check, an unexpected type (such as a string or special object) could later cause errors or…

Type assertion added to server-provided inputServer-trusted data written to wallet databaseMissing input validation before patch
671c08b6by ThomasV+1−01 file
No security note in commit
Low 35 AI analysisMessage 85 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

swaps: cache SwapData in self._swaps instead of accessing storage

This change is a bug-fix-style refactor for Electrum's submarine swap feature. It separates in-memory cached swap data from data saved to disk, so temporary fields used while a swap is running don't get lost or behave inconsistently when t…

State inconsistency between in-memory object and on-disk storageTemporary/private fields assumed persistent across storage accessRefactor that removes direct mutation of persistent dict from indexing logic
d8ff8305by ThomasV+24−131 file
No security note in commit
Low 34 AI analysisMessage 65 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

create_channel_storage: return dict instead of StoredDict

This commit changes how Electrum stores newly-created Lightning channel data during the brief setup phase. Previously, a 'StoredDict' object was created before the channel was fully committed to the wallet database, which could leave a 'da…

Structural change to object lifecycle and storage ownershipCommit message explicitly states non-security motivation: avoid dangling StoredDict when DB is not in memoryNo explicit security claim, CVE, advisory, or exploit in commit or supplied references
76fbf9dfby ThomasV+49−325 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

(trivial) move StorageEncryptionVersion and StorageReadWriteError to stored_dict.py

This commit is a simple code cleanup: it moves two definitions (a storage encryption version enum and a read/write error exception) from one file to another and updates the import statements in the files that use them. There is no function…

1f4c0fc7by ThomasV+11−94 files
No security note in commit
Informational 15 AI analysisMessage 35 · Opaque
EL ElectrumElectrum BitcoinSoftware wallets

storage: add get_path method

This commit is a simple internal code cleanup. It adds a new helper method called get_path() to the wallet storage class and updates various parts of the program to use that method instead of reading the storage path directly. There is no …

6797e917by ThomasV+18−157 files
No security note in commit
Low 27 AI analysisMessage 85 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

Modify the 'stored_at' syntax, so that it includes the full path

This commit changes how Electrum tracks where certain data objects live in the wallet database. It switches from short names like 'invoices/*' to full paths like '/invoices/*', and updates the internal registry to handle these full paths. …

Serialization/deserialization path registry changed from flat to hierarchicalCommit message explicitly mentions collision preventionNo explicit security claim or CVE reference in commit or supplied references
5494e827by ThomasV+71−585 files
No security note in commit
Informational 17 AI analysisMessage 58 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

tx_from_any: make sanitization optional

This change is a performance optimization, not a security fix. It makes whitespace removal from transaction data optional, skipping it when loading transactions from the wallet's own stored files. The default behavior for user-provided inp…

Behavior-preserving refactor: default sanitization remains enabledTrusted-data paths explicitly opt out of regex sanitizationNo new input surface introduced
271f079dby ThomasV+21−183 files
No security note in commit
Low 31 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

make sure load_ast_data returns a dict with str keys

This commit fixes a data-type consistency bug in Electrum's wallet database loader. When loading very old wallet files, the code could return numeric (integer) dictionary keys instead of string keys. Because the rest of the program expects…

Type confusion in parsed wallet data: integer vs string dict keysPotential crash or logic error when downstream code indexes wallet data by string keysFix normalizes legacy data via JSON round-trip, a known pattern for key coercion
3638934eby ThomasV+5−41 file
No security note in commit
Informational 23 AI analysisMessage 60 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

config: add option to disable memory hardening

This commit adds a command-line option to turn off a Linux memory-protection feature in Electrum. The option is mainly intended for developers using memory profilers, but it is also automatically enabled on Android builds. It does not by i…

Adds a way to disable memory hardening (PR_SET_DUMPABLE / mlockall-style protections)Android QML path now disables memory hardening by defaultCommit message frames change as a developer/profiling convenience, not a security fix
3ae85eefby ThomasV+8−13 files
No security note in commit
Informational 15 AI analysisMessage 87 · Strong
EL ElectrumElectrum BitcoinSoftware wallets

regtest.test_breach_with_spent_htlc: wait until settled

This commit only changes a regression test script. It replaces a quick check that sometimes failed with a proper wait routine, and removes an unnecessary one-second sleep. There is no change to the actual Electrum wallet or Lightning code …

df00f838by ThomasV+1−61 file
No security note in commit
Informational 15 AI analysisMessage 78 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

unit tests: do not mock save_db

This commit only changes unit tests. It removes the practice of mocking (faking) the wallet save function and instead creates in-memory wallets that don't touch disk. There is no change to the actual Electrum wallet application or its secu…

f2ece0f4by ThomasV+126−2152 files
No security note in commit
Informational 12 AI analysisMessage 28 · Opaque
EL ElectrumElectrum BitcoinSoftware wallets

new 'stored_at' syntax

This commit is a pure internal refactoring of how Electrum marks which Python classes correspond to which parts of the wallet database. It replaces two old decorators (`stored_in` and `stored_as`) with a single new decorator (`stored_at`) …

No security-relevant keywords in commit title or messageNo changes to cryptographic operations, network handling, or user input parsingRefactor-only: decorator rename and registry restructuring
5f6a491fby ThomasV+82−827 files
No security note in commit
Informational 15 AI analysisMessage 65 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

Move StoredDict class into new 'stored_dict' module

This commit simply moves the StoredDict, StoredObject, StoredList, and related helper code from one file (json_db.py) into a brand-new file (stored_dict.py). It then updates other files to import from the new location. The commit message a…

d0860ed7by ThomasV+265−2147 files
No security note in commit
High 71 AI analysisMessage 73 · Adequate
EL ElectrumElectrum BitcoinSoftware wallets

wallet: encrypt the keystore before adding it to db

This commit fixes a bug where Electrum could write unencrypted private keys to disk while creating or restoring a wallet, even when the user asked for password protection. The change rearranges the wallet setup so that the keystore is encr…

Plaintext private key material could be written to persistent storage before encryption was appliedWallet creation and restoration paths reordered to encrypt before database insertionImported private key path now encrypts keystore before adding derived addresses and saving
b15be1faby ThomasV+41−242 files
Vendor flagged security relevance
Low 35 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

lnpeer: send channel update also for private channels, if we are forwarding

This change adjusts how Electrum's Lightning peer shares routing information. Previously, the wallet only sent a 'channel update' (the data peers need to route payments through a channel) for public channels. Now it also sends that update …

Lightning gossip message handling changePrivate channel routing information now transmittedExperimental forwarding feature gate used
ef2f9e33by ThomasV+6−61 file
No security note in commit
Low 30 AI analysisMessage 50 · Thin
EL ElectrumElectrum BitcoinSoftware wallets

create_channel_backup: handle case where peer_addresses list is empty

This commit fixes a crash in Electrum's Lightning channel backup feature. Previously, if a channel had no known peer addresses, the code would try to access the first item of an empty list and fail. The fix safely handles that case by usin…

Fixes an unhandled exception (IndexError) in channel backup creationDefensive null/empty-list handling for peer address dataNo explicit security claim made by vendor in commit message or diff
c3e900efby ThomasV+3−31 file
No security note in commit
Wrong identity?Names can collide and public author strings can be misleading.Contact commitwatch@karma-x.io →