Coder Social home page Coder Social logo

spesmilo / electrum Goto Github PK

View Code? Open in Web Editor NEW
7.2K 366.0 3.0K 59.1 MB

Electrum Bitcoin Wallet

Home Page: https://electrum.org

License: MIT License

Shell 1.89% Python 88.82% NSIS 0.12% Makefile 0.03% Dockerfile 0.23% Ruby 0.15% QML 8.67% Java 0.09%
bitcoin bitcoin-wallet python electrum lightning lightning-network

electrum's Introduction

Electrum - Lightweight Bitcoin client

Licence: MIT Licence
Author: Thomas Voegtlin
Language: Python (>= 3.8)
Homepage: https://electrum.org/

Build Status Test coverage statistics Help translate Electrum online

Getting started

(If you've come here looking to simply run Electrum, you may download it here.)

Electrum itself is pure Python, and so are most of the required dependencies, but not everything. The following sections describe how to run from source, but here is a TL;DR:

$ sudo apt-get install libsecp256k1-dev
$ python3 -m pip install --user ".[gui,crypto]"

Not pure-python dependencies

If you want to use the Qt interface, install the Qt dependencies:

$ sudo apt-get install python3-pyqt5

For elliptic curve operations, libsecp256k1 is a required dependency:

$ sudo apt-get install libsecp256k1-dev

Alternatively, when running from a cloned repository, a script is provided to build libsecp256k1 yourself:

$ sudo apt-get install automake libtool
$ ./contrib/make_libsecp256k1.sh

Due to the need for fast symmetric ciphers, cryptography is required. Install from your package manager (or from pip):

$ sudo apt-get install python3-cryptography

If you would like hardware wallet support, see this.

Running from tar.gz

If you downloaded the official package (tar.gz), you can run Electrum from its root directory without installing it on your system; all the pure python dependencies are included in the 'packages' directory. To run Electrum from its root directory, just do:

$ ./run_electrum

You can also install Electrum on your system, by running this command:

$ sudo apt-get install python3-setuptools python3-pip
$ python3 -m pip install --user .

This will download and install the Python dependencies used by Electrum instead of using the 'packages' directory. It will also place an executable named electrum in ~/.local/bin, so make sure that is on your PATH variable.

Development version (git clone)

(For OS-specific instructions, see here for Windows, and for macOS)

Check out the code from GitHub:

$ git clone https://github.com/spesmilo/electrum.git
$ cd electrum
$ git submodule update --init

Run install (this should install dependencies):

$ python3 -m pip install --user -e .

Create translations (optional):

$ sudo apt-get install python3-requests gettext qttools5-dev-tools
$ ./contrib/pull_locale

Finally, to start Electrum:

$ ./run_electrum

Run tests

Run unit tests with pytest:

$ pytest tests -v

To run a single file, specify it directly like this:

$ pytest tests/test_bitcoin.py -v

Creating Binaries

Contributing

Any help testing the software, reporting or fixing bugs, reviewing pull requests and recent changes, writing tests, or helping with outstanding issues is very welcome. Implementing new features, or improving/refactoring the codebase, is of course also welcome, but to avoid wasted effort, especially for larger changes, we encourage discussing these on the issue tracker or IRC first.

Besides GitHub, most communication about Electrum development happens on IRC, in the #electrum channel on Libera Chat. The easiest way to participate on IRC is with the web client, web.libera.chat.

electrum's People

Contributors

accumulator avatar akshayaurora avatar bauerj avatar benma avatar bitromortac avatar cculianu avatar chrisglass avatar dabura667 avatar darrindaigle avatar ecdsa avatar echterago avatar fluffypony avatar genjix avatar gruve-p avatar jeremyrand avatar jimboman77 avatar m0mchil avatar matejcik avatar neocogent avatar ovidiusoft avatar rofl0r avatar romanz avatar sombernight avatar stefaang avatar toxeus avatar verretor avatar wakiyamap avatar wozz avatar ysangkok avatar zebra-lucky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

electrum's Issues

Display what is happenning to connection status

I ran the client, and at first it was stuck on "disconnected" for a while, then on "synchronizing".
No real indication of what's going on, and it's taking a long time. It's a bad UX to let the user just wait.

Is there a timeout on the sync process? How long should it take? Why isn't it instant (for a fresh wallet, at least)

The overall UX is not good.

importing new compressed keys as defined by bitcoin core developers is not supported

Summary: Compressed keys are not supported by Electrum

commmand line executing of "electrum import address:private key" fails when the format of the keypair is compressed (a new bitcoin wallet import format aka WIF)

The only workaround for this issue is to transfer all funds to a non compressed public key.

For general info see http://sourceforge.net/mailarchive/forum.php?thread_name=CAPg%2BsBhDFCjAn1tRRQhaudtqwsh4vcVbxzm%2BAA2OuFxN71fwUA%40mail.gmail.com&forum_name=bitcoin-development

Electrum doesn't update the balance on imported keys, that had to be uncompressed prior to importing. In other words, transactions in the blockchain referencing a compressed address do not match the equivalent uncompressed address using the current search rules. However, this may not be a problem, since the two addresses are actually considered unique and different address per the bitcoin core dev:

http://sourceforge.net/mailarchive/message.php?msg_id=28428010

Error Creating Config File

If the ~/.electrum/ directory doesn't exist creating the config file fails and electrum crashes. This is really shitty because the first time the user tries to boot electrum they get an error and likely will go away.

The simple solution is to create the directory if it doesn't exist.

can't send payments since 1.5.5

When I try to send a payment I get the following error:

Traceback (most recent call last):
  File "/tmp/Electrum-1.5.5/lib/gui_lite.py", line 399, in send
    self.amount_input.text(), self):
  File "/tmp/Electrum-1.5.5/lib/gui_lite.py", line 768, in send
    h = self.wallet.send_tx(tx)
  File "/tmp/Electrum-1.5.5/lib/wallet.py", line 808, in send_tx
    tx_hash = Hash(tx.decode('hex') )[::-1].encode('hex')
  File "/usr/lib/python2.7/encodings/hex_codec.py", line 42, in hex_decode
    output = binascii.a2b_hex(input)
TypeError: Non-hexadecimal digit found

My software versions:
python 2.7.3
python-ecdsa 0.8
python-slowaes 0.1a1
python-pyqt 4.9.5

Ability to export master public key via the GUI

The master public key is great for accepting payments without having to expose your private key to your webserver or a shopping cart service. A sample implementation of this concept exists at AcceptBit.com.

However, it is currently not very easy for end users to get the master public key, the only way to do it is through the command line:

electrum get master_public_key

It would be nice if there was an option in the UI allowing users to get it.

Note: I see something in gui_lite.py referring to acceptbit - I'm not sure if this is accessible to users yet.

Brainwallet menu option crashes electrum [BUG]

1.) Start up electrum
2.) Click on the menubar and select brain wallet

Traceback (most recent call last):
File "/home/vm/electrum-github/lib/gui_lite.py", line 600, in show_seed_dialog
gui_qt.ElectrumWindow.show_seed_dialog(self.wallet)
File "/home/vm/electrum-github/lib/gui_qt.py", line 908, in show_seed_dialog
password = parent.password_dialog()
AttributeError: 'NoneType' object has no attribute 'password_dialog'

Setup wizard on first run

As a new user when I boot the application for the first time I want to see a setup wizard.

The wizard screen is divided into two screens. On the left-side will be a information panel describing what we are doing during this step and on the right-side will be room for interacting with the wizard in various ways.

The first dialog is a general introduction to electrum and it's features and an introductory text about bitcoin wallets and what they are used for.

The next dialog would explain why we need to encrypt the generated wallet with the password input on the right side.

The third dialog would display the generated seed and 12 words on the right hand side and on the left hand side could be a little story about what those words represent tying into the previous stories about wallets.

New version notification

Can you add a message that notify the user that there is a new final version available to download?

Replacing deprecated BaseException errors

I've noticed that there are a significant number of raised BaseExceptions that display string error messages in the wallet.py file. This practice is discouraged and deprecated in python 2.5+ . I am not sure whether or not to replace the BaseExceptions with StandardError or OSError. If someone is more familiar with how these work, it should be a relatively simple find and replace option.

Unobtrusive server handling

Currently the server handling is very in your face. This has to be reworked so that servers get picked randomly and in an unobtrusive way.

Error copying data/background.png in setup script

The setup script is throwing up an error trying to copy data/background.png saying it doesn't exist. I'm guessing due to some recent changes in the codebase.

sudo python setup.py install
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
warnings.warn(msg)
running install
running build
running build_py
file lib/icons_rc.py (for module electrum.icons_rc) not found
file lib/icons_rc.py (for module electrum.icons_rc) not found
running build_scripts
running install_lib
copying build/lib.linux-x86_64-2.7/electrum/msqr.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/gui.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/exchange_rate.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/gui_qt.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/gui_lite.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/init.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/history_widget.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/mnemonic.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/wallet.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/pyqrnative.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/qrscanner.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/interface.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/bmp.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/util.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/i18n.py -> /usr/local/lib/python2.7/dist-packages/electrum
copying build/lib.linux-x86_64-2.7/electrum/version.py -> /usr/local/lib/python2.7/dist-packages/electrum
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/msqr.py to msqr.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/gui.py to gui.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/exchange_rate.py to exchange_rate.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/gui_qt.py to gui_qt.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/gui_lite.py to gui_lite.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/init.py to init.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/history_widget.py to history_widget.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/mnemonic.py to mnemonic.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/wallet.py to wallet.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/pyqrnative.py to pyqrnative.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/qrscanner.py to qrscanner.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/interface.py to interface.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/bmp.py to bmp.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/util.py to util.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/i18n.py to i18n.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/electrum/version.py to version.pyc
running install_scripts
copying build/scripts-2.7/electrum -> /usr/local/bin
changing mode of /usr/local/bin/electrum to 775
running install_data
copying electrum.desktop -> /usr/share/applications/
copying electrum.png -> /usr/share/app-install/icons/
error: can't copy 'data/background.png': doesn't exist or not a regular file

Installing slowaes isn't obvious at all

I had no idea what import aes referred to, and looking online didn't help. It was only after commenting out 'import aes' and running electrum that I saw an error message that was useful 'sys.exit("Error: AES does not seem to be installed. Try 'sudo pip install slowaes'")'.

Please consider moving this line to the earlier in the build script, before the setup crashes from not having slowaes. Unless I'm being an idiot, which is very likely.

Edit: And I am now aware that it is listed as a dependency in http://electrum-desktop.com/download.html

Breaking up wallet.py responsibilities

The wallet.py file does all the base58 encoding, hashing, and a whole lot of other stuff that makes it really large jack of all trades and unwieldy. It would be more readable and more organized if we could split off some of those responsibilities into other python modules.

There are existing libraries that we can use like this base58 code or we can do some cutting/pasting

http://code.google.com/p/python-mom/source/browse/mom/codec/base58.py?r=ede6ba8767cba27b3749679088664f09813b6a34

start-up crash

This is the error I get:

ffunenga@asus:~/documents/others/electrum$ electrum
Install zbar package to enable QR scans
Connected to electrum.novit.ro:50001
Traceback (most recent call last):
File "/usr/local/bin/electrum", line 191, in
found = gui.restore_or_create()
File "/usr/local/lib/python2.7/dist-packages/electrum/gui_lite.py", line 105, in restore_or_create
return qt_gui_object.restore_or_create()
File "/usr/local/lib/python2.7/dist-packages/electrum/gui_qt.py", line 1513, in restore_or_create
if not ElectrumWindow.network_dialog( wallet, parent=None ): return False
File "/usr/local/lib/python2.7/dist-packages/electrum/gui_qt.py", line 1406, in network_dialog
proxy_mode.setCurrentIndex(proxy_mode.findText(str(interface.proxy["mode"]).upper()))
TypeError: 'NoneType' object has no attribute 'getitem'

I've got ubuntu 12.04 in a 64bits machine. I can send more info if needed

uname -a:
Linux asus 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:16:45 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Filipe Funenga
Lisbon PT

Is there an OS X build that does not rely on X11?

THe package I downloaded from the main site wants me to install X11 on my mac and I prefer not to if I can avoid it.

Also, are there any instructions / dependencies anywhere for building electrum on OS X?

Wallet file is not valid JSON.

I think it would be much better if the wallet file were actually valid JSON. I don't know if this has been discussed before but there are some problems that prevent wallets from being viewed in JSON viewers for debugging purposes.

I could work on this, or not depending on whether others feel it really should be valid JSON.

Things I know are wrong: single quotes instead of double, capitalized boolean values, None is not valid and should be "None".

Not sure if anything else. I'm manually /search/replacing/ so I can view with nice formatting...

Better setup.py for pip

Setup.py is used by pip to do the install and configuration of the app. The problem is that the setup.py file presumes all the deps are already installed which makes little sense.

I think we need to find a way to remove the lib/version and lib/utils dependencies on the script and to this an other way since this triggers the loading of the whole electrum code which of course will fail since the deps are not installed by pip yet.

Electrum cannot read external wallet on OS X

Hi,

I've installed electrum on OS X via homebrew and pip.

It starts up fine, but not if I try to run it with -w pointing to a wallet file residing in another directory (a Dropbox folder).
Doesn't matter if the path is absolute or relative.

The wallet file was generated by Bitcoin-QT. Is importing wallets from other clients supported?

I've installed electrum from the latest master, and I'm on OS X 10.6.8.

This is the trace:

Traceback (most recent call last):
  File "/usr/local/share/python/electrum", line 7, in <module>
    execfile(__file__)
  File "/Users/lrnz/code/electrum/src/electrum/electrum", line 120, in <module>
    wallet.read()
  File "/Users/lrnz/code/electrum/src/electrum/lib/wallet.py", line 727, in read
    raise IOError("Cannot read wallet file.")
IOError: Cannot read wallet file.

Can't view QR code

Steps to reproduce:

  1. Download Electrum for Windows (bundled exe)
  2. Create new wallet
  3. Get a wallet generation seed
  4. Click "View as QA core"

...

nothing happens.

OS X app error in startup

10/19/12 6:58:48 AM com.apple.launchd.peruser.502496 Exited: Killed
10/19/12 6:59:15 AM [0x0-0x784784].org.pythonmac.unspecified.Electrum[11846] Traceback (most recent call last):
10/19/12 6:59:15 AM [0x0-0x784784].org.pythonmac.unspecified.Electrum[11846] File "/Applications/Electrum.app/Contents/Resources/boot.py", line 309, in
10/19/12 6:59:15 AM [0x0-0x784784].org.pythonmac.unspecified.Electrum[11846] _run('electrum.py')
10/19/12 6:59:15 AM [0x0-0x784784].org.pythonmac.unspecified.Electrum[11846] File "/Applications/Electrum.app/Contents/Resources/boot.py", line 306, in _run
10/19/12 6:59:15 AM [0x0-0x784784].org.pythonmac.unspecified.Electrum[11846] execfile(path, globals(), globals())
10/19/12 6:59:15 AM [0x0-0x784784].org.pythonmac.unspecified.Electrum[11846] File "/Applications/Electrum.app/Contents/Resources/electrum.py", line 147, in
10/19/12 6:59:15 AM [0x0-0x784784].org.pythonmac.unspecified.Electrum[11846] import electrum.gui_lite as gui
10/19/12 6:59:15 AM [0x0-0x784784].org.pythonmac.unspecified.Electrum[11846] ImportError: No module named gui_lite
10/19/12 6:59:15 AM Electrum[11846] Electrum Error
10/19/12 6:59:18 AM com.apple.launchd.peruser.502496 Exited with exit code: 255
10/19/12 6:59:20 AM [0x0-0x786786].org.pythonmac.unspecified.Electrum[11854] Traceback (most recent call last):
10/19/12 6:59:20 AM [0x0-0x786786].org.pythonmac.unspecified.Electrum[11854] File "/Applications/Electrum.app/Contents/Resources/boot.py", line 309, in
10/19/12 6:59:20 AM [0x0-0x786786].org.pythonmac.unspecified.Electrum[11854] _run('electrum.py')
10/19/12 6:59:20 AM [0x0-0x786786].org.pythonmac.unspecified.Electrum[11854] File "/Applications/Electrum.app/Contents/Resources/boot.py", line 306, in _run
10/19/12 6:59:20 AM [0x0-0x786786].org.pythonmac.unspecified.Electrum[11854] execfile(path, globals(), globals())
10/19/12 6:59:20 AM [0x0-0x786786].org.pythonmac.unspecified.Electrum[11854] File "/Applications/Electrum.app/Contents/Resources/electrum.py", line 147, in
10/19/12 6:59:20 AM [0x0-0x786786].org.pythonmac.unspecified.Electrum[11854] import electrum.gui_lite as gui
10/19/12 6:59:20 AM [0x0-0x786786].org.pythonmac.unspecified.Electrum[11854] ImportError: No module named gui_lite
10/19/12 6:59:20 AM Electrum[11854] Electrum Error
10/19/12 6:59:22 AM com.apple.launchd.peruser.502496 Exited with exit code: 255

uncle-enzo.info:50001:t is broken, should not be the default server

I've seen a number of electrum newbies get confused when first starting up the program because the default server cannot connect to the client. They think its something wrong that they did (or that electrum is broken) vs the server being broken. This server should be taken off the list or the default should be changed to another one to avoid this problem.

Multiple wallets

This is slightly tricky.

Probably the way is to load multiple Wallet classes. But then we need to make sure they work together nicely. It would be preferable to stop, start a new one and reload it in the gui as that would mean less resource usage and having many wallets would not slow down Electrum. However it makes switching between wallets slower and doesn't seem trivial yet due to the way Electrum is architected.

Backup button, as in satoshi client

The satoshi client has a button to backup the wallet file. In my opinion this would be a nice addition to electrum as well.

The usecase would be for new users getting started on Bitcoin. The idea in electrum is that one memorizes the passphrase, however, since the passphrase is never used, one will forget it over time.
A techy user will use spaced repetition to commit it to long term memory, but when I help someone getting started, I would like to have them set up securely and instantly, without having to remind them to learn their passphrase.

I would tell them to put a password on their wallet (=encrypt it), then backup the wallet and send it to themselves via mail, or save it via dropbox (or send it to me so I'll add it to my backups).

On startup: need more than 1 value to unpack

Immediately after starting up client, I get following exception (using latest git):

Traceback (most recent call last):
File "./electrum", line 253, in
gui.main(url)
File "/home/marekp/projekty/electrum-upstream/lib/gui_lite.py", line 115, in main
self.mini = MiniWindow(actuator, self.expand, self.config)
File "/home/marekp/projekty/electrum-upstream/lib/gui_lite.py", line 274, in init
self.receiving = receiving_widget.ReceivingWidget(self)
File "/home/marekp/projekty/electrum-upstream/lib/receiving_widget.py", line 66, in init
self.update_list()
File "/home/marekp/projekty/electrum-upstream/lib/receiving_widget.py", line 45, in update_list
for tx_hash, tx_height in history:
ValueError: need more than 1 value to unpack

Spinner when sending transactions

Currently when you are sending a payment the client freezes for a few seconds. This is bad UX and we should add some features to let people know the client is working on your request.

Search box

It would be nice to have a search box in electrum, so that you could search your history, receive addresses and contacts. Simple feature that would be handy for those of us with many contacts.

Thanks :D

TypeError: a float is required

I'm getting an error with the git 72b4ac9 revision and the 1.5.6 version.

Traceback (most recent call last):
  File "/usr/bin/electrum", line 254, in <module>
    gui.main(url)
  File "/usr/lib/python2.7/site-packages/electrum/gui.py", line 1247, in main
    ew = ElectrumWindow(self.wallet, self.config)
  File "/usr/lib/python2.7/site-packages/electrum/gui.py", line 535, in __init__
    self.create_history_tab()
  File "/usr/lib/python2.7/site-packages/electrum/gui.py", line 973, in create_history_tab
    self.update_history_tab()
  File "/usr/lib/python2.7/site-packages/electrum/gui.py", line 1178, in update_history_tab
    details = self.wallet.get_tx_details(tx_hash)
  File "/usr/lib/python2.7/site-packages/electrum/wallet.py", line 436, in get_tx_details
    time_str = datetime.datetime.fromtimestamp(timestamp).isoformat(' ')[:-3]
TypeError: a float is required

Mac .app package crashes on startup

This error only occurs when ~/.electrum/ is present. With default config it too crashes, but only when ~/.electrum/ is present. This is with the latest version on Mac OS X 10.7 (AKA lion). Works perfectly on my linux machine.

Theese are my error message results.

2012-12-17 22:16:05,441 [0x0-0x12e52e4].org.pythonmac.unspecified.Electrum: Traceback (most recent call last):
2012-12-17 22:16:05,441 [0x0-0x12e52e4].org.pythonmac.unspecified.Electrum:   File "/Applications/Electrum.app/Contents/Resources/__boot__.py", line 309, in <module>
2012-12-17 22:16:05,441 [0x0-0x12e52e4].org.pythonmac.unspecified.Electrum:     _run('electrum.py')
2012-12-17 22:16:05,441 [0x0-0x12e52e4].org.pythonmac.unspecified.Electrum:   File "/Applications/Electrum.app/Contents/Resources/__boot__.py", line 306, in _run
2012-12-17 22:16:05,441 [0x0-0x12e52e4].org.pythonmac.unspecified.Electrum:     execfile(path, globals(), globals())
2012-12-17 22:16:05,441 [0x0-0x12e52e4].org.pythonmac.unspecified.Electrum:   File "/Applications/Electrum.app/Contents/Resources/electrum.py", line 119, in <module>
2012-12-17 22:16:05,441 [0x0-0x12e52e4].org.pythonmac.unspecified.Electrum:     wallet.read()
2012-12-17 22:16:05,441 [0x0-0x12e52e4].org.pythonmac.unspecified.Electrum:   File "lib/wallet.pyc", line 716, in read
2012-12-17 22:16:05,441 [0x0-0x12e52e4].org.pythonmac.unspecified.Electrum:   File "lib/wallet.pyc", line 887, in update_tx_history
2012-12-17 22:16:05,441 [0x0-0x12e52e4].org.pythonmac.unspecified.Electrum:   File "lib/wallet.pyc", line 892, in update_tx_labels
2012-12-17 22:16:05,441 [0x0-0x12e52e4].org.pythonmac.unspecified.Electrum: KeyError: 'value'
2012-12-17 22:16:05,511 Electrum: Electrum Error
2012-12-17 22:16:08,530 com.apple.launchd.peruser.501: ([0x0-0x12e52e4].org.pythonmac.unspecified.Electrum[63351]) Exited with code: 255 

Retry when passwords don't match

When creating a new password, I'm asked for a password + verification.
If the verification does not equal the password, the client should just let me retry, not give up on encrypting the wallet.

Cannot spend certain coins

I am new to bitcoin and I was playing around with Electrum, moving coins between my addresses, and I got my wallet into a state where I can no longer spend some of my coins.

Balance shows I have 2 coins in my wallet.
When I list the addresses with balances, it shows 4 of the addresses have a balance (the individual balances are: 1, 0.5, 0.25, 0.25).
When I try a payto with a value greater than 0.25 I get this error:
Traceback (most recent call last):
File "/Applications/Electrum.app/Contents/Resources/electrum.py", line 465, in
File "lib/wallet.pyc", line 924, in mktx
BaseException: Not enough funds

It looks like it is an issue with the address itself, not the wallet. I imported the address into a brand new wallet and I still get the same issue.

I am new to the scene, but this is my guess as to what is happening:
In each of the affected addresses, I did a partial spend out of the address. However, I did not wait for a confirmation of the coins coming into the address before moving half of them out. It looks like the transaction into the address was converted to have two outputs (both pointing to the same address), the first output being used for the partial spend going out.

Here are the affected addresses:
https://blockchain.info/address/17EeVUeSi69wxDDGhC4LQ46jzBR4HLneG
https://blockchain.info/address/198tJXnd4AvrgpVFAhSpjcvRMGJfeLBBnm
https://blockchain.info/address/13hfKfm8JDVG3R6jnegdiBJ6vxnrorZqiE

So, my wild ass guess is the history for these addresses is getting screwed up. For each address, there is one transaction that has two outputs (both outputs pointing to the address in question). The second output is unspent, but Electrum believes it is spent.

I was able to get the coins transfered by importing the keys into blockchain.info.

tiny balance with tiny fees

some guy had some ridiculous small balance like 0.001 and the server was rejecting his payment unless he added a fee of 0.001.

so he had an inaccessible balance.

don't think this is resolvable in the client but maybe there should be a note or something. the real fix is to have a server which doesn't reject any transactions sent to it (just relays them on) and put the onus of transaction validation on the client (maybe)

Text UI: Invalid Bitcoin address

Using git head, text UI, I get error "Invalid Bitcoin address" after trying to send coins to 1JMLBfckLq6WPQm1NzebS5MGgzJR8Xgw8d

I'm sure I have no whitespaces in the input field.

TextUI: Unability to type some chars

I cannot enter special chars (!@#$%^&*()) in the text UI, especially to password field when sending transaction.

Latest git version, Ubuntu 12.10, gnome terminal.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.