Skip to content

Instantly share code, notes, and snippets.

@nrxr
Created April 5, 2018 23:58
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save nrxr/c2442abd8835c075d01c9546409a8449 to your computer and use it in GitHub Desktop.
diff -u electrum/AUTHORS ElectrumPro/AUTHORS
--- electrum/AUTHORS 2018-04-05 18:35:33.209676404 -0500
+++ ElectrumPro/AUTHORS 2018-04-05 18:35:39.359664511 -0500
@@ -1,12 +1,4 @@
-ThomasV - Creator and maintainer.
-Animazing / Tachikoma - Styled the new GUI. Mac version.
-Azelphur - GUI stuff.
-Coblee - Alternate coin support and py2app support.
-Deafboy - Ubuntu packages.
-EagleTM - Bugfixes.
-ErebusBat - Mac distribution.
-Genjix - Porting pro-mode functionality to lite-gui and worked on server
-Slush - Work on the server. Designed the original Stratum spec.
-Julian Toash (Tuxavant) - Various fixes to the client.
-rdymac - Website and translations.
-kyuupichan - Miscellaneous.
\ No newline at end of file
+Lucas Löfgren - Maintainer.
+Sebastien Velner - Programmer.
+David Guldar - Features.
+Trevor Laurion - Website.
\ No newline at end of file
Common subdirectories: electrum/contrib and ElectrumPro/contrib
diff -u electrum/electrum ElectrumPro/electrum
--- electrum/electrum 2018-04-05 18:35:33.219676383 -0500
+++ ElectrumPro/electrum 2018-04-05 18:35:39.389664451 -0500
@@ -26,6 +26,21 @@
import os
import sys
+# from https://gist.github.com/tito/09c42fb4767721dc323d
+import threading
+try:
+ import jnius
+except:
+ jnius = None
+if jnius:
+ orig_thread_run = threading.Thread.run
+ def thread_check_run(*args, **kwargs):
+ try:
+ return orig_thread_run(*args, **kwargs)
+ finally:
+ jnius.detach()
+ threading.Thread.run = thread_check_run
+
script_dir = os.path.dirname(os.path.realpath(__file__))
is_bundle = getattr(sys, 'frozen', False)
is_local = not is_bundle and os.path.exists(os.path.join(script_dir, "electrum.desktop"))
@@ -78,7 +93,7 @@
from electrum import SimpleConfig, Network
from electrum.wallet import Wallet, Imported_Wallet
from electrum.storage import WalletStorage, get_derivation_used_for_hw_device_encryption
-from electrum.util import print_msg, print_stderr, json_encode, json_decode, UserCancelled
+from electrum.util import print_msg, print_stderr, json_encode, json_decode
from electrum.util import set_verbosity, InvalidPassword
from electrum.commands import get_parser, known_commands, Commands, config_variables
from electrum import daemon
@@ -280,10 +295,7 @@
name, device_info = devices[0]
plugin = plugins.get_plugin(name)
derivation = get_derivation_used_for_hw_device_encryption()
- try:
- xpub = plugin.get_xpub(device_info.device.id_, derivation, 'standard', plugin.handler)
- except UserCancelled:
- sys.exit(0)
+ xpub = plugin.get_xpub(device_info.device.id_, derivation, 'standard', plugin.handler)
password = keystore.Xpub.get_pubkey_from_xpub(xpub, ())
return password
diff -u electrum/electrum.desktop ElectrumPro/electrum.desktop
--- electrum/electrum.desktop 2018-04-05 18:35:33.219676383 -0500
+++ ElectrumPro/electrum.desktop 2018-04-05 18:35:39.389664451 -0500
@@ -3,7 +3,7 @@
[Desktop Entry]
Comment=Lightweight Bitcoin Client
-Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\" electrum %u"
+Exec=electrum %u
GenericName[en_US]=Bitcoin Wallet
GenericName=Bitcoin Wallet
Icon=electrum
@@ -14,8 +14,4 @@
Terminal=false
Type=Application
MimeType=x-scheme-handler/bitcoin;
-Actions=Testnet;
-[Desktop Action Testnet]
-Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\" electrum --testnet %u"
-Name=Testnet mode
diff -u electrum/electrum-env ElectrumPro/electrum-env
--- electrum/electrum-env 2018-04-05 18:35:33.219676383 -0500
+++ ElectrumPro/electrum-env 2018-04-05 18:35:39.389664451 -0500
@@ -11,7 +11,6 @@
PYTHON_VER="$(python3 -c 'import sys; print(sys.version[:3])')"
-cd $(dirname $0)
if [ -e ./env/bin/activate ]; then
source ./env/bin/activate
else
Common subdirectories: electrum/.git and ElectrumPro/.git
Only in electrum: .github
Only in electrum: .gitignore
Common subdirectories: electrum/gui and ElectrumPro/gui
Common subdirectories: electrum/icons and ElectrumPro/icons
diff -u electrum/icons.qrc ElectrumPro/icons.qrc
--- electrum/icons.qrc 2018-04-05 18:35:33.249676327 -0500
+++ ElectrumPro/icons.qrc 2018-04-05 18:35:39.419664393 -0500
@@ -38,9 +38,17 @@
<file>icons/tab_coins.png</file>
<file>icons/tab_console.png</file>
<file>icons/tab_contacts.png</file>
+ <file>icons/tab_exchange.png</file>
+ <file>icons/tab_paper.png</file>
<file>icons/tab_history.png</file>
<file>icons/tab_receive.png</file>
<file>icons/tab_send.png</file>
+ <file>icons/fav_shapeshift.png</file>
+ <file>icons/fav_changelly.png</file>
+ <file>icons/fav_evercoin.png</file>
+ <file>icons/fav_changer.png</file>
+ <file>icons/fav_flypme.png</file>
+ <file>icons/fav_changenow.png</file>
<file>icons/tor_logo.png</file>
<file>icons/speaker.png</file>
<file>icons/trezor_unpaired.png</file>
Common subdirectories: electrum/lib and ElectrumPro/lib
Common subdirectories: electrum/plugins and ElectrumPro/plugins
Common subdirectories: electrum/pubkeys and ElectrumPro/pubkeys
Only in ElectrumPro: README.md
diff -u electrum/README.rst ElectrumPro/README.rst
--- electrum/README.rst 2018-04-05 18:35:33.209676404 -0500
+++ ElectrumPro/README.rst 2018-04-05 18:35:39.359664511 -0500
@@ -1,111 +1,9 @@
-Electrum - Lightweight Bitcoin client
+Electrum Pro - Lightweight Bitcoin client
=====================================
::
Licence: MIT Licence
- Author: Thomas Voegtlin
+ Author: Lucas Löfgren
Language: Python
- Homepage: https://electrum.org/
-
-
-.. image:: https://travis-ci.org/spesmilo/electrum.svg?branch=master
- :target: https://travis-ci.org/spesmilo/electrum
- :alt: Build Status
-.. image:: https://coveralls.io/repos/github/spesmilo/electrum/badge.svg?branch=master
- :target: https://coveralls.io/github/spesmilo/electrum?branch=master
- :alt: Test coverage statistics
-.. image:: https://img.shields.io/badge/help-translating-blue.svg
- :target: https://crowdin.com/project/electrum
- :alt: Help translating Electrum online
-
-
-
-
-
-Getting started
-===============
-
-Electrum is a pure python application. If you want to use the
-Qt interface, install the Qt dependencies::
-
- sudo apt-get install python3-pyqt5
-
-If you downloaded the official package (tar.gz), you can run
-Electrum from its root directory, without installing it on your
-system; all the python dependencies are included in the 'packages'
-directory. To run Electrum from its root directory, just do::
-
- ./electrum
-
-You can also install Electrum on your system, by running this command::
-
- sudo apt-get install python3-setuptools
- pip3 install .[full]
-
-This will download and install the Python dependencies used by
-Electrum, instead of using the 'packages' directory.
-The 'full' extra contains some optional dependencies that we think
-are often useful but they are not strictly needed.
-
-If you cloned the git repository, you need to compile extra files
-before you can run Electrum. Read the next section, "Development
-Version".
-
-
-
-Development version
-===================
-
-Check out the code from Github::
-
- git clone git://github.com/spesmilo/electrum.git
- cd electrum
-
-Run install (this should install dependencies)::
-
- pip3 install .[full]
-
-Compile the icons file for Qt::
-
- sudo apt-get install pyqt5-dev-tools
- pyrcc5 icons.qrc -o gui/qt/icons_rc.py
-
-Compile the protobuf description file::
-
- sudo apt-get install protobuf-compiler
- protoc --proto_path=lib/ --python_out=lib/ lib/paymentrequest.proto
-
-Create translations (optional)::
-
- sudo apt-get install python-requests gettext
- ./contrib/make_locale
-
-
-
-
-Creating Binaries
-=================
-
-
-To create binaries, create the 'packages' directory::
-
- ./contrib/make_packages
-
-This directory contains the python dependencies used by Electrum.
-
-Mac OS X / macOS
---------
-
-See `contrib/build-osx/`.
-
-Windows
--------
-
-See `contrib/build-wine/`.
-
-
-Android
--------
-
-See `gui/kivy/Readme.txt` file.
+ Homepage: https://www.electrum.com/
\ No newline at end of file
diff -u electrum/RELEASE-NOTES ElectrumPro/RELEASE-NOTES
--- electrum/RELEASE-NOTES 2018-04-05 18:35:33.209676404 -0500
+++ ElectrumPro/RELEASE-NOTES 2018-04-05 18:35:39.359664511 -0500
@@ -1,957 +1,10 @@
-# Release 3.1.2 - (March 28, 2018)
-
- * Kivy/android: request PIN on startup
- * Improve OSX build process
- * Fix various bugs with hardware wallets
- * Other minor bugfixes
-
-# Release 3.1.1 - (March 12, 2018)
-
- * fix #4031: Trezor T support
- * partial fix #4060: proxy and hardware wallet can't be used together
- * fix #4039: can't set address labels
- * fix crash related to coinbase transactions
- * MacOS: use internal graphics card
- * fix openalias related crashes
- * speed-up capital gains calculations
- * hw wallet encryption: re-prompt for passphrase if incorrect
- * other minor fixes.
-
-
-
-# Release 3.1.0 - (March 5, 2018)
-
- * Memory-pool based fee estimation. Dynamic fees can target a desired
- depth in the memory pool. This feature is optional, and ETA-based
- estimates from Bitcoin Core are still available. Note that miners
- could exploit this feature, if they conspired and filled the memory
- pool with expensive transactions that never get mined. However,
- since the Electrum client already trusts an Electrum server with
- fee estimates, activating this feature does not introduce any new
- vulnerability. In addition, the client uses a hard threshold to
- protect itself from servers sending excessive fee estimates. In
- practice, ETA-based estimates have resulted in sticky fees, and
- caused many users to overpay for transactions. Advanced users tend
- to visit (and trust) websites that display memory-pool data in
- order to set their fees.
- * Capital gains: For each outgoing transaction, the difference
- between the acquisition and liquidation prices of outgoing coins is
- displayed in the wallet history. By default, historical exchange
- rates are used to compute acquisition and liquidation prices. These
- values can also be entered manually, in order to match the actual
- price realized by the user. The order of liquidation of coins is
- the natural order defined by the blockchain; this results in
- capital gain values that are invariant to changes in the set of
- addresses that are in the wallet. Any other ordering strategy (such
- as FIFO, LIFO) would result in capital gain values that depend on
- the presence of other addresses in the wallet.
- * Local transactions: Transactions can be saved in the wallet without
- being broadcast. The inputs of local transactions are considered as
- spent, and their change outputs can be re-used in subsequent
- transactions. This can be combined with cold storage, in order to
- create several transactions before broadcasting them. Outgoing
- transactions that have been removed from the memory pool are also
- saved in the wallet, and can be broadcast again.
- * Checkpoints: The initial download of a headers file was replaced
- with hardcoded checkpoints. The wallet uses one checkpoint per
- retargeting period. The headers for a retargeting period are
- downloaded only if transactions need to be verified in this period.
- * The 'privacy' and 'priority' coin selection policies have been
- merged into one. Previously, the 'privacy' policy has been unusable
- because it was was not prioritizing confirmed coins. The new policy
- is similar to 'privacy', except that it de-prioritizes addresses
- that have unconfirmed coins.
- * The 'Send' tab of the Qt GUI displays how transaction fees are
- computed from transaction size.
- * The wallet history can be filtered by time interval.
- * Replace-by-fee is enabled by default. Note that this might cause
- some issues with wallets that do not display RBF transactions until
- they are confirmed.
- * Watching-only wallets and hardware wallets can be encrypted.
- * Semi-automated crash reporting
- * The SSL checkbox option was removed from the GUI.
- * The Trezor T hardware wallet is now supported.
- * BIP84: native segwit p2wpkh scripts for bip39 seeds and hardware
- wallets can now be created when specifying a BIP84 derivation
- path. This is usable with Trezor and Ledger.
- * Windows: the binaries now include ZBar, and QR code scanning should work.
- * The Wallet Import Format (WIF) for private keys that was extended in 3.0
- is changed. Keys in the previous format can be imported, compatibility
- is maintained. Newly exported keys will be serialized as
- "script_type:original_wif_format_key".
- * BIP32 master keys for testnet once again have different version bytes than
- on mainnet. For the mainnet prefixes {x,y,Y,z,Z}|{pub,prv}, the
- corresponding testnet prefixes are {t,u,U,v,V}|{pub,prv}.
- More details and exact version bytes are specified at:
- https://github.com/spesmilo/electrum-docs/blob/master/xpub_version_bytes.rst
- Note that due to this change, testnet wallet files created with previous
- versions of Electrum must be considered broken, and they need to be
- recreated from seed words.
- * A new version of the Electrum protocol is required by the client
- (version 1.2). Servers using older versions of the protocol will
- not be displayed in the GUI.
-
-
-# Release 3.0.6 :
- * Fix transaction parsing bug #3788
-
-# Release 3.0.5 : (Security update)
-
-This is a follow-up to the 3.0.4 release, which did not completely fix
-issue #3374. Users should upgrade to 3.0.5.
-
- * The JSONRPC interface is password protected
- * JSONRPC commands are disabled if the GUI is running, except 'ping',
- which is used to determine if a GUI is already running
-
-
-# Release 3.0.4 : (Security update)
-
- * Fix a vulnerability caused by Cross-Origin Resource Sharing (CORS)
- in the JSONRPC interface. Previous versions of Electrum are
- vulnerable to port scanning and deanonimization attacks from
- malicious websites. Wallets that are not password-protected are
- vulnerable to theft.
- * Bundle QR scanner with Android app
- * Minor bug fixes
-
-# Release 3.0.3
- * Qt GUI: sweeping now uses the Send tab, allowing fees to be set
- * Windows: if using the installer binary, there is now a separate shortcut
- for "Electrum Testnet"
- * Digital Bitbox: added suport for p2sh-segwit
- * OS notifications for incoming transactions
- * better transaction size estimation:
- - fees for segwit txns were somewhat underestimated (#3347)
- - some multisig txns were underestimated
- - handle uncompressed pubkeys
- * fix #3321: testnet for Windows binaries
- * fix #3264: Ledger/dbb signing on some platforms
- * fix #3407: KeepKey sending to p2sh output
- * other minor fixes and usability improvements
-
-# Release 3.0.2
- * Android: replace requests tab with address tab, with access to
- private keys
- * sweeping minikeys: search for both compressed and uncompressed
- pubkeys
- * fix wizard crash when attempting to reset Google Authenticator
- * fix #3248: fix Ledger+segwit signing
- * fix #3262: fix SSL payment request signing
- * other minor fixes.
-
-# Release 3.0.1
- * minor bug and usability fixes
-
-# Release 3.0 - Uncanny Valley (November 1st, 2017)
-
- * The project was migrated to Python3 and Qt5. Python2 is no longer
- supported. If you cloned the source repository, you will need to
- run "python3 setup.py install" in order to install the new
- dependencies.
-
- * Segwit support:
-
- - Native segwit scripts are supported using a new type of
- seed. The version number for segwit seeds is 0x100. The install
- wizard will not create segwit seeds by default; users must
- opt-in with the segwit option.
-
- - Native segwit scripts are represented using bech32 addresses,
- following BIP173. Please note that BIP173 is still in draft
- status, and that other wallets/websites may not support
- it. Thus, you should keep a non-segwit wallet in order to be
- able to receive bitcoins during the transition period. If BIP173
- ends up being rejected or substantially modified, your wallet
- may have to be restored from seed. This will not affect funds
- sent to bech32 addresses, and it will not affect the capacity of
- Electrum to spend these funds.
-
- - Segwit scripts embedded in p2sh are supported with hardware
- wallets or bip39 seeds. To create a segwit-in-p2sh wallet,
- trezor/ledger users will need to enter a BIP49 derivation path.
-
- - The BIP32 master keys of segwit wallets are serialized using new
- version numbers. The new version numbers encode the script type,
- and they result in the following prefixes:
-
- * xpub/xprv : p2pkh or p2sh
- * ypub/yprv : p2wpkh-in-p2sh
- * Ypub/Yprv : p2wsh-in-p2sh
- * zpub/zprv : p2wpkh
- * Zpub/Zprv : p2wsh
-
- These values are identical for mainnet and testnet; tpub/tprv
- prefixes are no longer used in testnet wallets.
-
- - The Wallet Import Format (WIF) is similarly extended for segwit
- scripts. After a base58-encoded key is decoded to binary, its
- first byte encodes the script type:
-
- * 128 + 0: p2pkh
- * 128 + 1: p2wpkh
- * 128 + 2: p2wpkh-in-p2sh
- * 128 + 5: p2sh
- * 128 + 6: p2wsh
- * 128 + 7: p2wsh-in-p2sh
-
- The distinction between p2sh and p2pkh in private key means that
- it is not possible to import a p2sh private key and associate it
- to a p2pkh address.
-
- * A new version of the Electrum protocol is required by the client
- (version 1.1). Servers using older versions of the protocol will
- not be displayed in the GUI.
-
- * By default, transactions are time-locked to the height of the
- current block. Other values of locktime may be passed using the
- command line.
-
-
-# Release 2.9.3
- * fix configuration file issue #2719
- * fix ledger signing of non-RBF transactions
- * disable 'spend confirmed only' option by default
-
-# Release 2.9.2
- * force headers download if headers file is corrupted
- * add websocket to windows builds
-
-# Release 2.9.1
- * fix initial headers download
- * validate contacts on import
- * command-line option for locktime
-
-# Release 2.9 - Independence (July 27th, 2017)
- * Multiple Chain Validation: Electrum will download and validate
- block headers sent by servers that may follow different branches
- of a fork in the Bitcoin blockchain. Instead of a linear sequence,
- block headers are organized in a tree structure. Branching points
- are located efficiently using binary search. The purpose of MCV is
- to detect and handle blockchain forks that are invisible to the
- classical SPV model.
- * The desired branch of a blockchain fork can be selected using the
- network dialog. Branches are identified by the hash and height of
- the diverging block. Coin splitting is possible using RBF
- transaction (a tutorial will be added).
- * Multibit support: If the user enters a BIP39 seed (or uses a
- hardware wallet), the full derivation path is configurable in the
- install wizard.
- * Option to send only confirmed coins
- * Qt GUI:
- - Network dialog uses tabs and gets updated by network events.
- - The gui tabs use icons
- * Kivy GUI:
- - separation between network dialog and wallet settings dialog.
- - option for manual server entry
- - proxy configuration
- * Daemon: The wallet password can be passed as parameter to the
- JSONRPC API.
- * Various other bugfixes and improvements.
-
-
-# Release 2.8.3
- * Fix crash on reading older wallet formats.
- * TrustedCoin: remove pay-per-tx option
-
-# Release 2.8.2
- * show paid invoices in history tab
- * improve CPFP dialog
- * fixes for trezor, keepkey
- * other minor bugfixes
-
-# Release 2.8.1
- * fix Digital Bitbox plugin
- * fix daemon jsonrpc
- * fix trustedcoin wallet creation
- * other minor bugfixes
-
-# Release 2.8.0 (March 9, 2017)
- * Wallet file encryption using ECIES: A keypair is derived from the
- wallet password. Once the wallet is decrypted, only the public key
- is retained in memory, in order to save the encrypted file.
- * The daemon requires wallets to be explicitly loaded before
- commands can use them. Wallets can be loaded using: 'electrum
- daemon load_wallet [-w path]'. This command will require a
- password if the wallet is encrypted.
- * Invoices and contacts are stored in the wallet file and are no
- longer shared between wallets. Previously created invoices and
- contacts files may be imported from the menu.
- * Fees improvements:
- - Dynamic fees are enabled by default.
- - Child Pays For Parent (CPFP) dialog in the GUI.
- - RBF is automatically proposed for low fee transactions.
- * Support for Segregated Witness (testnet only).
- * Support for Digital Bitbox hardware wallet.
- * The GUI shows a blue icon when connected using a proxy.
-
-# Release 2.7.18
- * enforce https on exchange rate APIs
- * use hardcoded list of exchanges
- * move 'Freeze' menu to Coins (utxo) tab
- * various bugfixes
-
-# Release 2.7.17
- * fix a few minor regressions in the Qt GUI
-
-# Release 2.7.16
- * add Testnet support (fix #541)
- * allow daemon to be launched in the foreground (fix #1873)
- * Qt: use separate tabs for addresses and UTXOs
- * Qt: update fee slider with a network callback
- * Ledger: new ui and mobile 2fa validation (neocogent)
-
-# Release 2.7.15
- * Use fee slider for both static and dynamic fees.
- * Add fee slider to RBF dialog (fix #2083).
- * Simplify fee preferences.
- * Critical: Fix password update issue (#2097). This bug prevents
- password updates in multisig and 2FA wallets. It may also cause
- wallet corruption if the wallet contains several master private
- keys (such as 2FA wallets that have been restored from
- seed). Affected wallets will need to be restored again.
-
-# Release 2.7.14
- * Merge exchange_rate plugin with main code
- * Faster synchronization and transaction creation
- * Fix bugs #2096, #2016
-
-# Release 2.7.13
- * fix message signing with imported keys
- * add size to transaction details window
- * move plot plugin to main code
- * minor bugfixes
-
-# Release 2.7.12
- various bugfixes
-
-# Release 2.7.11
- * fix offline signing (issue #195)
- * fix android crashes caused by threads
-
-# Release 2.7.10
- * various fixes for hardware wallets
- * improve fee bumping
- * separate sign and broadcast buttons in Qt tx dialog
- * allow spaces in private keys
-
-# Release 2.7.9
- * Fix a bug with the ordering of pubkeys in recent multisig wallets.
- Affected wallets will regenerate their public keys when opened for
- the first time. This bug does not affect address generation.
- * Fix hardware wallet issues #1975, #1976
-
-# Release 2.7.8
- * Fix a bug with fee bumping
- * Fix crash when parsing request (issue #1969)
-
-# Release 2.7.7
- * Fix utf8 encoding bug with old wallet seeds (issue #1967)
- * Fix delete request from menu (isue #1968)
-
-# Release 2.7.6
- * Fixes a critical bug with imported private keys (issue #1966). Keys
- imported in Electrum 2.7.x were not encrypted, even if the wallet
- had a password. If you imported private keys using Electrum 2.7.x,
- you will need to import those keys again. If you imported keys in
- 2.6 and converted with 2.7.x, you don't need to do anything, but
- you still need to upgrade in order to be able to spend.
- * Wizard: Hide seed options in a popup dialog.
-
-# Release 2.7.5
- * Add number of confirmations to request status. (issue #1757)
- * In the GUI, refer to passphrase as 'seed extension'.
- * Fix bug with utf8 encoded passphrases.
- * Kivy wizard: add a dialog for seed options.
- * Kivy wizard: add current word to suggestions, because some users
- don't see the space key.
-
-# Release 2.7.4
- * Fix private key import in wizard
- * Fix Ledger display (issue #1961)
- * Fix old watching-only wallets (issue #1959)
- * Fix Android compatibility (issue #1947)
-
-# Release 2.7.3
- * fix Trezor and Keepkey support in Windows builds
- * fix sweep private key dialog
- * minor fixes: #1958, #1959
-
-# Release 2.7.2
- * fix bug in password update (issue #1954)
- * fix fee slider (issue #1953)
-
-# Release 2.7.1
- * fix wizard crash with old seeds
- * fix issue #1948: fee slider
-
-# Release 2.7.0 (Oct 2 2016)
-
- * The wallet file format has been upgraded. This upgrade is not
- backward compatible, which means that a wallet upgraded to the 2.7
- format will not be readable by earlier versions of
- Electrum. Multiple accounts inside the same wallet are not
- supported in the new format; the Qt GUI will propose to split any
- wallet that has several accounts. Make sure that you have saved
- your seed phrase before you upgrade Electrum.
- * This version introduces a separation between wallets types and
- keystores types. 'Wallet type' defines the type of Bitcoin contract
- used in the wallet, while 'keystore type' refers to the method used
- to store private keys. Therefore, so-called 'hardware wallets' will
- be referred to as 'hardware keystores'.
- * Hardware keystores:
- - The Ledger Nano S is supported.
- - Hardware keystores can be used as cosigners in multi-signature
- wallets.
- - Multiple hardware cosigners can be used in the same multisig
- wallet. One icon per keystore is displayed in the satus bar. Each
- connected device will co-sign the transaction.
- * Replace-By-Fee: RBF transactions are supported in both Qt and
- Android. A warning is displayed in the history for transactions
- that are replaceable, have unconfirmed parents, or that have very
- low fees.
- * Dynamic fees: Dynamic fees are enabled by default. A slider allows
- the user to select the expected confirmation time of their
- transaction. The expected confirmation times of incoming
- transactions is also displayed in the history.
- * The install wizards of Qt and Kivy have been unified.
- * Qt GUI (Desktop):
- - A fee slider is visible in the in send tab
- - The Address tab is hidden by default, can be shown with Ctrl-A
- - UTXOs are displayed in the Address tab
- * Kivy GUI (Android):
- - The GUI displays the complete transaction history.
- - Multisig wallets are supported.
- - Wallets can be created and deleted in the GUI.
- * Seed phrases can be extended with a user-chosen passphrase. The
- length of seed phrases is standardized to 12 words, using 132 bits
- of entropy (including 2FA seeds). In the wizard, the type of the
- seed is displayed in the seed input dialog.
- * TrustedCoin users can request a reset of their Google Authenticator
- account, if they still have their seed.
-
-
-# Release 2.6.4 (bugfixes)
- * fix coinchooser bug (#1703)
- * fix daemon JSONRPC (#1731)
- * fix command-line broadcast (#1728)
- * QT: add colors to labels
-
-# Release 2.6.3 (bugfixes)
- * fix command line parsing of transactions
- * fix signtransaction --privkey (#1715)
-
-# Release 2.6.2 (bugfixes)
- * fix Trustedcoin restore from seed (bug #1704)
- * small improvements to kivy GUI
-
-# Release 2.6.1 (bugfixes)
- * fix broadcast command (bug #1688)
- * fix tx dialog (bug #1690)
- * kivy: support old-type seed phrases in wizard
-
-# Release 2.6
- * The source code is relicensed under the MIT Licence
- * First official release of the Kivy GUI, with android APK
- * The old 'android' and 'gtk' GUIs are deprecated
- * Separation between plugins and GUIs
- * The command line uses jsonrpc to communicate with the daemon
- * New command: 'notify <address> <url>'
- * Alternative coin selection policy, designed to help preserve user
- privacy. Enable it by setting the Coin Selection preference to
- Privacy.
- * The install wizard has been rewritten and improved
- * Support minikeys as used in Casascius coins for private key import
- and sweeping
- * Much improved support for TREZOR and KeepKey devices:
- - full device information display
- - initialize a new or wiped device in 4 ways:
- 1) device generates a new wallet
- 2) you enter a seed
- 3) you enter a BIP39 mnemonic to generate the seed
- 4) you enter a master private key
- - KeepKey secure seed recovery (KeepKey only)
- - change / set / disable PIN
- - set homescreen (TREZOR only)
- - set a session timeout. Once a session has timed out, further use
- of the device requires your PIN and passhphrase to be re-entered
- - enable / disable passphrases
- - device wipe
- - multiple device support
-
-# Release 2.5.4
- * increase MIN_RELAY_TX_FEE to avoid dust transactions
-
-# Release 2.5.3 (bugfixes)
- * installwizard: do not allow direct copy-paste of the seed
- * installwizard: fix bug #1531 (starting offline)
-
-# Release 2.5.2 (bugfixes)
- * fix bug #1513 (client tries to broadcast transaction while not connected)
- * fix synchronization bug (#1520)
- * fix command line bug (#1494)
- * fixes for exchange rate plugin
-
-# Release 2.5.1 (bugfixes)
- * signatures in transactions were still using the old class
- * make sure that setup.py uses python2
- * fix wizard crash with trustedcoin plugin
- * fix socket infinite loop
- * fix history bug #1479
-
-# Release 2.5
- * Low-S values are used in signatures (BIP 62).
- * The Kivy GUI has been merged into master.
- * The Qt GUI supports multiple windows in the same process. When a
- new Electrum instance is started, it checks for an already running
- Electrum process, and connects to it.
- * The network layer uses select(), so all server communication is
- handled by a single thread. Moreover, the synchronizer, verifier,
- and exchange rate plugin now run as separate jobs within the
- networking thread instead of as their own threads.
- * Plugins are revamped, particularly the exchange rate plugin.
-
-# Release 2.4.4
- * Fix bug with TrustedCoin plugin
-
-# Release 2.4.3
- * Support for KeepKey hardware wallet
- * Simplified Chinese wordlist
- * Minor bugfixes and GUI tweaks
-
-# Release 2.4.2
- * Command line can read arguments from stdin (pipe)
- * Speedup fee computation for large transactions
- * Various bugfixes
-
-# Release 2.4.1
- * Use ssl.PROTOCOL_TLSv1
- * Fix DNSSEC issues with ECDSA signatures
- * Replace TLSLite dependency with minimal RSA implementation
- * Dynamic Fees: using estimatefee value returned by server
- * Various GUI improvements
-
-# Release 2.4
- * Payment to DNS names storing a Bitcoin addresses (OpenAlias) is
- supported directly, without activating a plugin. The verification
- uses DNSSEC.
- * The DNSSEC verification code was rewritten. The previous code,
- which was part of the OpenAlias plugin, is vulnerable and should
- not be trusted (Electrum 2.0 to 2.3).
- * Payment requests can be signed using Bitcoin addresses stored
- in DNS (OpenAlias). The identity of the requestor is verified using
- DNSSEC.
- * Payment requests signed with OpenAlias keys can be shared as
- bitcoin: URIs, if they are simple (a single address-type
- output). The BIP21 URI scheme is extended with 'name', 'sig',
- 'time', 'exp'.
- * Arbitrary m-of-n multisig wallets are supported (n<=15).
- * Multisig transactions can be signed with TREZOR. When you create
- the multisig wallet, just enter the xpub of your existing TREZOR
- wallet.
- * Transaction fees set manually in the GUI are retained, including
- when the user uses the '!' shortcut.
- * New 'email' plugin, that enables sending and receiving payment
- requests by email.
- * The daemon supports Websocket notifications of payments.
-
-# Release 2.3.3
- * fix proxy settings (issue #1309)
- * improvements to the transaction dialog:
- - request password after showing transaction
- - show change addresses in yellow color
-
-# Release 2.3.2
- * minor bugfixes
- * updated ledger plugin
- * sort inputs/outputs lexicographically (BIP-LI01)
-
-# Release 2.3.1
- * patch a bug with payment requests
-
-# Release 2.3
- * Improved logic for the network layer.
- * More efficient coin selection. Spend oldest coins first, and
- minimize the number of transaction inputs.
- * Plugins are loaded independently of the GUI. As a result, Openalias,
- TrustedCoin and TREZOR wallets can be used with the command
- line. Example: 'electrum payto <openalias> <amount>'
- * The command line has been refactored:
- - Arguments are parsed with argparse.
- - The inline help includes a description of options.
- - Some commands have been renamed. Notably, 'mktx' and 'payto' have
- been merged into a single command, with a --broadcast option.
- Type 'electrum --help' for a complete overview.
- * The command line accepts the '!' syntax to send the maximum
- amount available. It can be combined with the '--from' option.
- Example: 'payto <destination> ! --from <from_address>'
- * The command line also accepts a '?' shortcut for private keys
- arguments, that triggers a prompt.
- * Payment requests can be managed with the command line, using the
- following commands: 'addrequest', 'rmrequest', 'listrequests'.
- Payment requests can be signed with a SSL certificate, and published
- as bip70 files in a public web directory. To see the relevant
- configuration variables, type 'electrum addrequest --help'
- * Commands can be called with jsonrpc, using the 'jsonrpc' gui. The
- jsonrpc interface may be called by php.
-
-# Release 2.2
- * Show amounts (thousands separators and decimal point)
- according to locale in GUI
- * Show unmatured coins in balance
- * Fix exchange rates plugin
- * Network layer: refactoring and fixes
-
-# Release 2.1.1
- * patch a bug that prevents new wallet creation.
- * fix connection issue on osx binaries
-
-# Release 2.1
- * Faster startup, thanks to the following optimizations:
- 1. Transaction input/outputs are cached in the wallet file
- 2. Fast X509 certificate parser, not using pyasn1 anymore.
- 3. The Label Sync plugin only requests modified labels.
- * The 'Invoices' and 'Send' tabs have been merged.
- * Contacts are stored in a separate file, shared between wallets.
- * A Search Box is available in the GUI (Ctrl-S)
- * Payment requests have an expiration date and can be exported to
- BIP70 files.
- * file: scheme support in BIP72 URIs: "bitcoin:?r=file:///..."
- * Own addresses are shown in green in the Transaction dialog.
- * Address History dialog.
- * The OpenAlias plugin was improved.
- * Various bug fixes and GUI improvements.
- * A new LabelSync backend is being used an import of the old
- database was made but since the release came later it's
- recommended that you do a full push when you upgrade.
-
-# Release 2.0.4 - Minor GUI improvements
- * The password dialog will ask for password again if the user enters
- a wrong password
- * The Master Public Key dialog displays which keys belong to the
- wallet, and which are cosigners
- * The transaction dialog will ask to save unsaved transaction
- received from cosigner pool, when user clicks on 'Close'
- * The multisig restore dialog accepts xprv keys.
- * The network daemon must be started explicitly before using commands
- that require a connection
- Example:
- electrum daemon start
- electrum getaddressunspent <addr>
- electrum daemon status
- electrum daemon stop
- If a daemon is running, the GUI will use it.
-
-# Release 2.0.3 - bugfixes and minor GUI improvements
- * Do not use daemon threads (fix #960)
- * Add a zoom button to receive tab
- * Add exchange rate conversion to receive tab
- * Use Tor's default port number in default proxy config
-
-# Release 2.0.2 - bugfixes
- * Fix transaction sweep (#1066)
- * Fix thread timing bug (#1054)
-
-# Release 2.0.1 - bugfixes
- * Fix critical bug in TREZOR address derivation: passphrases were not
- NFKD normalized. TREZOR users who created a wallet protected by a
- passphrase containing utf-8 characters with diacritics are
- affected. These users will have to open their wallet with version
- 2.0 and to move their funds to a new wallet.
- * Use a file socket for the daemon (fixes network dialog issues)
- * Fix crash caused by QR scanner icon when zbar not installed.
- * Fix CosignerPool plugin
- * Label Sync plugin: Fix label sharing between multisig wallets
-
-
-# Release 2.0
-
- * Before you upgrade, make sure you have saved your wallet seed on
- paper.
-
- * Documentation is now hosted on a wiki: http://electrum.orain.org
-
- * New seed derivation method (not compatible with BIP39). The seed
- phrase includes a version number, that refers to the wallet
- structure. The version number also serves as a checksum, and it
- will prevent the import of seeds from incompatible wallets. Old
- Electrum seeds are still supported.
-
- * New address derivation (BIP32). Standard wallets are single account
- and use a gap limit of 20.
-
- * Support for Multisig wallets using parallel BIP32 derivations and
- P2SH addresses ("2 of 2", "2 of 3").
-
- * Compact serialization format for unsigned or partially signed
- transactions, that includes the BIP32 master public key and
- derivation needed to sign inputs. Serialized transactions can be
- sent to cosigners or to cold storage using QR codes (using Andreas
- Schildbach's base 43 idea).
-
- * Support for BIP70 payment requests:
- - Verification of the chain of signatures uses tlslite.
- - In the GUI, payment requests are shown in the 'Invoices' tab.
-
- * Support for hardware wallets: TREZOR (SatoshiLabs) and Btchip (Ledger).
-
- * Two-factor authentication service by TrustedCoin. This service uses
- "2 of 3" multisig wallets and Google Authenticator. Note that
- wallets protected by this service can be deterministically restored
- from seed, without Trustedcoin's server.
-
- * Cosigner Pool plugin: encrypted communication channel for multisig
- wallets, to send and receive partially signed transactions.
-
- * Audio Modem plugin: send and receive transactions by sound.
-
- * OpenAlias plugin: send bitcoins to aliases verified using DNSSEC.
-
- * New 'Receive' tab in the GUI:
- - create and manage payment requests, with QR Codes
- - the former 'Receive' tab was renamed to 'Addresses'
- - the former Point of Sale plugin is replaced by a resizeable
- window that pops up if you click on the QR code
-
- * The 'Send' tab in the Qt GUI supports transactions with multiple
- outputs, and raw hexadecimal scripts.
-
- * The GUI can connect to the Electrum daemon: "electrum -d" will
- start the daemon if it is not already running, and the GUI will
- connect to it. The daemon can serve several clients. It times out
- if no client uses if for more than 5 minutes.
-
- * The install wizard can be used to import addresses or private
- keys. A watching-only wallet is created by entering a list of
- addresses in the wizard dialog.
-
- * New file format: Wallets files are saved as JSON. Note that new
- wallet files cannot be read by older versions of Electrum. Old
- wallet files will be converted to the new format; this operation
- may take some time, because public keys will be derived for each
- address of your wallet.
-
- * The client accepts servers with a CA-signed SSL certificate.
-
- * ECIES encrypt/decrypt methods, availabe in the GUI and using
- the command line:
- encrypt <pubkey> <message>
- decrypt <pubkey> <message>
-
- * The Android GUI has received various updates and it is much more
- stable. Another script was added to Android, called Authenticator,
- that works completely offline: it reads an unsigned transaction
- shown as QR code, signs it and shows the result as a QR code.
-
-
-# Release 1.9.8
-
-* Electrum servers were upgraded to version 0.9. The new server stores
- a Patrica tree of all UTXOs, an idea proposed by Alan Reiner in the
- bitcointalk forum. This property allows the client to directly
- request the balance of any address. The new commands are:
- 1. getaddressbalance <address>
- 2. getaddressunspent <address>
- 3. getutxoaddress <txid> <pos>
-
-* Command-line commands that require a connection to the network spawn
- a daemon, that remains connected and handles subsequent
- commands. The daemon terminates itself if it remains unused for more
- than one minute. The purpose of this is to make scripting more
- efficient. For example, a bash script using many electrum commands
- will open only one connection.
-
-# Release 1.9.7
-* Fix for offline signing
-* Various bugfixes
-* GUI usability improvements
-* Coinbase Buyback plugin
-
-# Release 1.9.6
-* During wallet creation, do not write seed to disk until it is encrypted.
-* Confirmation dialog if the transaction fee is higher than 1mBTC.
-* bugfixes
-
-# Release 1.9.5
-
-* Coin control: select addresses to send from
-* Put addresses that have been used in a minimized section (Qt GUI)
-* Allow non ascii chars in passwords
-
-
-# Release 1.9.4
-bugfixes: offline transactions
-
-# Release 1.9.3
-bugfixes: connection problems, transactions staying unverified
-
-# Release 1.9.2
-* fix a syntax error
-
-# Release 1.9.1
-* fix regression with --offline mode
-* fix regression with --portable mode: use a dedicated directory
-
-# Release 1.9
-
-* The client connects to multiple servers in order to retrieve block headers and find the longest chain
-* SSL certificate validation (to prevent MITM)
-* Deterministic signatures (RFC 6979)
-* Menu to create/restore/open wallets
-* Create transactions with multiple outputs from CSV (comma separated values)
-* New text gui: stdio
-* Plugins are no longer tied to the qt GUI, they can reach all GUIs
-* Proxy bugs have been fixed
-
-
-# Release 1.8.1
-
-* Notification option when receiving new tranactions
-* Confirm dialogue before sending large amounts
-* Alternative datafile location for non-windows systems
-* Fix offline wallet creation
-* Remove enforced tx fee
-* Tray icon improvements
-* Various bugfixes
-
-
-# Release 1.8
-
-* Menubar in classic gui
-* Updated the QR Code plugin to enable offline/online wallets to transmit unsigned/signed transactions via QR code.
-* Fixed bug where never-confirmed transactions prevented further spending
-
-
-# Release 1.7.4
-
-* Increase default fee
-* fix create and restore in command line
-* fix verify message in the gui
-
-
-# Release 1.7.3:
-
-* Classic GUI can display amounts in mBTC
-* Account selector in the classic GUI
-* Changed the way the portable flag uses without supplying a -w argument
-* Classic GUI asks users to enter their seed on wallet creation
-
-
-# Release 1.7.2:
-
-* Transactions that are in the same block are displayed in chronological order in the history.
-* The client computes transaction priority and rejects zero-fee transactions that need a fee.
-* The default fee was lowered to 200 uBTC per kb.
-* Due to an internal format change, your history may be pruned when
- you open your wallet for the first time after upgrading to 1.7.2. If
- this is the case, please visit a full server to restore your full
- history. You will only need to do that once.
-
-
-# Release 1.7.1: bugfixes.
-
-
-# Release 1.7
-
-* The Classic GUI can be extended with plugins. Developers who want to
-add new features or third-party services to Electrum are invited to
-write plugins. Some previously existing and non-essential features of
-Electrum (point-of-sale mode, qrcode scanner) were removed from the
-core and are now available as plugins.
-
-* The wallet waits for 2 confirmations before creating new
-addresses. This makes recovery from seed more robust. Note that it
-might create unwanted gaps if you use Electrum 1.7 together with older
-versions of Electrum.
-
-* An interactive Python console replaces the 'Wall' tab. The provided
-python environment gives users access to the wallet and gui. Most
-electrum commands are available as python function in the
-console. Custom scripts an be loaded with a "run(filename)"
-command. Tab-completions are available.
-
-* The location of the Electrum folder in Windows changed from
-LOCALAPPDATA to APPDATA. Discussion on this topic can be found here:
-https://bitcointalk.org/index.php?topic=144575.0
-
-* Private keys can be exported from within the classic GUI:
- For a single address, use the address menu (right-click).
- To export the keys of your entire wallet, use the settings dialog (import/export tab).
-
-* It is possible to create, sign and redeem multisig transaction using the
-command line interface. This is made possible by the following new commands:
- dumpprivkey, listunspent, createmultisig, createrawtransaction, decoderawtransaction, signrawtransaction
-The syntax of these commands is similar to their bitcoind counterpart.
-For an example, see Gavin's tutorial: https://gist.github.com/gavinandresen/3966071
-
-* Offline wallets now work in a way similar to Armory:
- 1. user creates an unsigned transaction using the online (watching-only) wallet.
- 2. unsigned transaction is copied to the offline computer, and signed by the offline wallet.
- 3. signed transaction is copied to the online computer, broadcasted by the online client.
- 4. All these steps can be done via the command line interface or the classic GUI.
-
-* Many command line commands have been renamed in order to make the syntax consistent with bitcoind.
-
-# Release 1.6.2
-
-== Classic GUI
-* Added new version notification
-
-# Release 1.6.1 (11-01-2013)
-
-== Core
-* It is now possible to restore a wallet from MPK (this will create a watching-only wallet)
-* A switch button allows to easily switch between Lite and Classic GUI.
-
-== Classic GUI
-* Seed and MPK help dialogs were rewritten
-* Point of Sale: requested amounts can be expressed in other currencies and are converted to bitcoin.
-
-== Lite GUI
-* The receiving button was removed in favor of a menu item to keep it consistent with the history toggle.
-
-# Release 1.6.0 (07-01-2013)
-
-== Core
-* (Feature) Add support for importing, signing and verifiying compressed keys
-* (Feature) Auto reconnect to random server on disconnect
-* (Feature) Ultimate fallback to HTTP port 80 if TCP doesn't work on any server
-* (Bug) Under rare circumstances changing password with incorrect password could damage wallet
-
-== Lite GUI
-* (Chore) Use blockchain.info for exchange rate data
-* (Feature) added currency conversion for BRL, CNY, RUB
-* (Feature) Saraha theme
-* (Feature) csv import/export for transactions including labels
-
-== Classic GUI
-* (Chore) pruning servers now called "p", full servers "f" to avoid confusion with terms
-* (Feature) Debits in history shown in red
-* (Feature) csv import/export for transactions including labels
-
-# Release 1.5.8 (02-01-2013)
-
-== Core
-* (Bug) Fix pending address balance on received coins for pruning servers
-* (Bug) Fix history command line option to show output again (regression by SPV)
-* (Chore) Add timeout to blockchain headers file download by HTTP
-* (Feature) new option: -L, --language: default language used in GUI.
-
-== Lite GUI
-* (Bug) Sending to auto-completed contacts works again
-* (Chore) Added version number to title bar
-
-== Classic GUI
-* (Feature) Language selector in options.
-
-# Release 1.5.7 (18-12-2012)
-
-== Core
-* The blockchain headers file is no longer included in the packages, it is downloaded on startup.
-* New command line option: -P or --portable, for portable wallets. With this flag, all preferences are saved to the wallet file, and the blockchain headers file is in the same directory as the wallet
-
-== Lite GUI
-* (Feature) Added the ability to export your transactions to a CSV file.
-* (Feature) Added a label dialog after sending a transaction.
-* (Feature) Reworked receiving addresses; instead of a random selection from one of your receiving addresses a new widget will show listing unused addresses.
-* (Chore) Removed server selection. With all the new server options a simple menu item does not suffice anymore.
+# Release 4.0.2
+ * Minor Bug Fixes
+ * Added Paper Wallet Generator
+
+# Release 4.0.1
+ * Minor Bug Fixes
+
+# Release 4.0.0
+ * Minor Bug Fixes
+ * Added Exchange List
\ No newline at end of file
Common subdirectories: electrum/scripts and ElectrumPro/scripts
diff -u electrum/setup.py ElectrumPro/setup.py
--- electrum/setup.py 2018-04-05 18:35:33.279676268 -0500
+++ ElectrumPro/setup.py 2018-04-05 18:35:39.459664316 -0500
@@ -27,26 +27,21 @@
parser.add_argument('--root=', dest='root_path', metavar='dir', default='/')
opts, _ = parser.parse_known_args(sys.argv[1:])
usr_share = os.path.join(sys.prefix, "share")
- icons_dirname = 'pixmaps'
if not os.access(opts.root_path + usr_share, os.W_OK) and \
not os.access(opts.root_path, os.W_OK):
- icons_dirname = 'icons'
if 'XDG_DATA_HOME' in os.environ.keys():
usr_share = os.environ['XDG_DATA_HOME']
else:
usr_share = os.path.expanduser('~/.local/share')
data_files += [
(os.path.join(usr_share, 'applications/'), ['electrum.desktop']),
- (os.path.join(usr_share, icons_dirname), ['icons/electrum.png'])
+ (os.path.join(usr_share, 'pixmaps/'), ['icons/electrum.png'])
]
setup(
name="Electrum",
version=version.ELECTRUM_VERSION,
install_requires=requirements,
- extras_require={
- 'full': requirements_hw + ['pycryptodomex'],
- },
packages=[
'electrum',
'electrum_gui',
@@ -85,9 +80,14 @@
scripts=['electrum'],
data_files=data_files,
description="Lightweight Bitcoin Wallet",
- author="Thomas Voegtlin",
- author_email="thomasv@electrum.org",
+ author="Lucas Lofgren",
+ author_email="lucas@electrum.com",
license="MIT Licence",
- url="https://electrum.org",
+ url="https://www.electrum.com",
long_description="""Lightweight Bitcoin Wallet"""
)
+
+# Optional modules (not required to run Electrum)
+import pip
+opt_modules = requirements_hw + ['pycryptodomex']
+[ pip.main(['install', m]) for m in opt_modules ]
Common subdirectories: electrum/snap and ElectrumPro/snap
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment