Unset ELECTRON_RUN_AS_NODE in frontend dev script so Electron runs correctly even when the env var is globally exported.
Align package-lock metadata name from bitcoin-address-generator to wallet-gen.
- Add explicit hidden imports/collect rules for coincurve, bip_utils and src modules
- Introduce Docker smoke tests for hd_generate and p2pkh to fail fast on missing runtime deps
- Refactor cli.py to lazy-load command modules and avoid global startup crashes from optional deps
- Use pseudo-TTY script wrapper for Wine smoke tests to prevent Invalid handle failures
- Run Wine as non-root with dedicated WINEPREFIX and tolerate winetricks vcrun2019 failures
- Switch to Python embeddable + offline wheelhouse install for reproducible Windows packaging
- Update PyInstaller flags to bundle coincurve cffi backend and bip_utils data files (HD wallet runtime fix)
- Build both NSIS installer and portable executable; update build output messaging
winetricks vcrun2019 invokes syswow64/regedit.exe (32-bit PE) which
requires wine32; without it Wine returns c0000135 (STATUS_DLL_NOT_FOUND).
i386 architecture is already added so wine32 installs cleanly
winetricks was removed from Debian bookworm apt repositories;
download it directly from the official GitHub source instead.
Replace winetricks apt package with cabextract (its runtime dep)
Python 3.11 requires VCRUNTIME140.dll (VC++ 2019 runtime) which is
not present in the default Wine prefix; without it python.exe fails
with STATUS_DLL_NOT_FOUND (exit code 53).
- contrib/windows/Dockerfile: cross-compile using Wine + xvfb;
installs Python 3.11 for Windows, builds cli.exe with PyInstaller,
packages Electron app as NSIS installer
- contrib/windows/build.sh: convenience script to run the Docker build
- frontend/electron/main.cjs: resolve cli.exe on win32, cli on other platforms
- frontend/package.json: add win/nsis target; change extraResources to
bundle resources/ dir so each platform picks its own binary
- src/hd_wallet.py: add words_num parameter to generate_hd_wallet(),
mapped to Bip39WordsNum; default 12 words
- frontend/src/components/HDWallet.jsx: add mnemonic length select
with options 12/15/18/21/24 (default 12); disabled when mnemonic
is provided manually
- contrib/linux/Dockerfile: add libpython3.11 + PyInstaller to build
standalone cli binary; fix venv isolation via .dockerignore
- frontend/electron/main.cjs: use bundled cli binary in prod via
process.resourcesPath, fallback to venv/python3 in dev
- frontend/package.json: add extraResources for cli binary,
set output dir to release/
- frontend/vite.config.js: set base './' for file:// protocol in prod
- .dockerignore: exclude venv/, node_modules/, dist/, .git/
- .gitignore: ignore release/ output directories
- Set icon.png on BrowserWindow for taskbar display
- Register app with setDesktopName() for Wayland compositor matching
- Remove macOS-only activate handler (unused on Linux)
- Add electron-builder build config with AppImage target for Linux
- Add dist script: vite build && electron-builder
- Introduce Wallet Viewer with HD/Single list, read, and decrypt support
- Add single_decrypt backend command and IPC bridge methods
- Require filename on save and add password confirm + visibility toggle"
- Add single-encrypt IPC/CLI flow for private key field encryption
- Keep filename empty after generation and validate it on save
- Reorder single-address tabs to p2pk, p2pkh, p2sh, p2wpkh, p2tr
- Keep only HD Wallet and Single Addresses in sidebar
- Route single addresses through internal tabs
- Replace emoji/button glyphs with plain text labels
- Rename app to 'Wallet Generator' (index.html, window title, sidebar, package.json)
- Add ~/.wallet-generator/wallet/ as save directory for all generated wallets
- Add save-wallet and get-wallet-dir IPC handlers in Electron main process
- Expose saveWallet/getWalletDir via preload contextBridge
- HDWallet: save JSON to disk with optional encryption, show saved path
- SingleAddress: add Save card with editable filename for all address types
- Add electron, concurrently, wait-on, cross-env to frontend devDependencies
- Set "main": "electron/main.cjs" in frontend/package.json
- Simplify root package.json dev script
- Remove fastapi and uvicorn from requirements.txt
- Root package.json with npm run dev (concurrently API + Vite)
- Add node_modules/, frontend/dist/ to .gitignore
- Whitelist package.json and package-lock.json
- Vite + React app with dark Bitcoin-orange theme
- HD Wallet: generate, display seed/xpub/addresses, save with encryption
- Single addresses: P2PKH, P2WPKH, P2TR, P2PK, P2SH (multisig)
- Decrypt: load encrypted JSON wallet and reveal private data
- Bitcoin SVG icon in public/icons/
- Vite proxy /api → localhost:8000
Expose all address generation functions as HTTP endpoints:
- POST /api/hd/generate, /api/hd/encrypt, /api/hd/decrypt
- POST /api/p2pk, /api/p2pkh, /api/p2sh, /api/p2wpkh, /api/p2tr
- Add fastapi and uvicorn to requirements.txt
- Add src/crypto.py with AES-256-CBC pw_encode/pw_decode
using double SHA256 key derivation (Electrum standard)
- Add encrypt_wallet() and decrypt_wallet() to src/hd_wallet.py
- Prompt for encryption password when saving HD wallet to file
- Add 13 encryption/decryption tests to tests/test_hd_wallet.py
- Add pycryptodome to requirements.txt
- Translate docstrings, comments, print statements, input prompts
and error messages across all src/ scripts and __main__.py
- Update LICENSE copyright holder to Davide Grilli (2026)
- p2pk: input prompt changed from s/n to y/n for compressed key selection
- Add pytest test suite for all 5 address types (P2PK, P2PKH, P2SH, P2WPKH, P2TR)
- Test output fields, address prefixes per network, key lengths and uniqueness
- Each test file prints the SecretScan URL for manual address verification
- Add pytest to requirements.txt
- Move all scripts (p2pk, p2pkh, p2sh, p2wpkh, p2tr) into src/
- Rename main.py to __main__.py to allow running with `python .`
- Update script paths in __main__.py
- Translate README to English and update launch instructions
- Add __pycache__, *.pyc, *.json to .gitignore
Aggiungi comandi PowerShell per gli utenti Windows per creare un ambiente virtuale e attivarlo, rendendo le istruzioni di installazione più complete per diversi sistemi operativi