tMerge pull request #848 from btchip/firmwareupdate - electrum - Electrum Bitcoin wallet
HTML git clone https://git.parazyd.org/electrum
DIR Log
DIR Files
DIR Refs
DIR Submodules
---
DIR commit 7dd7918a305c543d60f82dd59dbcc5fda17721e3
DIR parent 44b0fab4c07d1a1b0925c366a5cb7a49424d1559
HTML Author: ThomasV <thomasv1@gmx.de>
Date: Fri, 19 Sep 2014 16:24:00 +0200
Merge pull request #848 from btchip/firmwareupdate
Firmwareupdate
Diffstat:
M plugins/btchipwallet.py | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
---
DIR diff --git a/plugins/btchipwallet.py b/plugins/btchipwallet.py
t@@ -27,6 +27,7 @@ try:
from btchip.btchipUtils import compress_public_key,format_transaction, get_regular_input_script
from btchip.bitcoinTransaction import bitcoinTransaction
from btchip.btchipPersoWizard import StartBTChipPersoDialog
+ from btchip.btchipFirmwareWizard import checkFirmware, updateFirmware
from btchip.btchipException import BTChipException
BTCHIP = True
BTCHIP_DEBUG = False
t@@ -143,12 +144,16 @@ class BTChipWallet(NewWallet):
d.setWaitImpl(DongleWaitQT(d))
self.client = btchip(d)
firmware = self.client.getFirmwareVersion()['version'].split(".")
- if int(firmware[0]) <> 1 or int(firmware[1]) <> 4:
- aborted = True
- raise Exception("Unsupported firmware version")
- if int(firmware[2]) < 9:
- aborted = True
- raise Exception("Please update your firmware - 1.4.9 or higher is necessary")
+ if (not checkFirmware(firmware)) or (int(firmware[0]) <> 1) or (int(firmware[1]) <> 4) or (int(firmware[2]) < 9):
+ d.close()
+ try:
+ updateFirmware()
+ except Exception, e:
+ aborted = True
+ raise e
+ d = getDongle(BTCHIP_DEBUG)
+ d.setWaitImpl(DongleWaitQT(d))
+ self.client = btchip(d)
try:
self.client.getOperationMode()
except BTChipException, e:
t@@ -194,7 +199,7 @@ class BTChipWallet(NewWallet):
pass
self.client = None
if not aborted:
- raise Exception("Could not connect to your BTChip dongle. Please verify access permissions or PIN")
+ raise Exception("Could not connect to your BTChip dongle. Please verify access permissions, PIN, or unplug the dongle and plug it again")
else:
raise e
self.client.bad = False