Browse Source

Pass plugins object to plugin constructor

283
Neil Booth 9 years ago
parent
commit
ec3b7ba5ee
  1. 5
      lib/plugins.py
  2. 6
      plugins/audio_modem.py
  3. 14
      plugins/btchipwallet.py
  4. 8
      plugins/email_requests.py
  5. 4
      plugins/exchange_rate.py
  6. 6
      plugins/keepkey.py
  7. 4
      plugins/trezor.py
  8. 4
      plugins/trustedcoin.py

5
lib/plugins.py

@ -67,7 +67,7 @@ class Plugins:
p = imp.load_source(full_name, path) p = imp.load_source(full_name, path)
else: else:
p = __import__(full_name, fromlist=['electrum_plugins']) p = __import__(full_name, fromlist=['electrum_plugins'])
plugin = p.Plugin(config, name) plugin = p.Plugin(self, config, name)
self.plugins[name] = plugin self.plugins[name] = plugin
self.print_error("loaded", name) self.print_error("loaded", name)
return plugin return plugin
@ -155,7 +155,8 @@ def _run_hook(name, always, *args):
class BasePlugin: class BasePlugin:
def __init__(self, config, name): def __init__(self, parent, config, name):
self.parent = parent # The plugins object
self.name = name self.name = name
self.config = config self.config = config
self.wallet = None self.wallet = None

6
plugins/audio_modem.py

@ -27,8 +27,8 @@ except ImportError:
class Plugin(BasePlugin): class Plugin(BasePlugin):
def __init__(self, config, name): def __init__(self, parent, config, name):
BasePlugin.__init__(self, config, name) BasePlugin.__init__(self, parent, config, name)
if self.is_available(): if self.is_available():
self.modem_config = amodem.config.slowest() self.modem_config = amodem.config.slowest()
self.library_name = { self.library_name = {
@ -141,5 +141,3 @@ class Plugin(BasePlugin):
msg = 'Receiving from Audio MODEM ({0:.1f} kbps)...'.format(kbps) msg = 'Receiving from Audio MODEM ({0:.1f} kbps)...'.format(kbps)
return WaitingDialog(parent=parent, message=msg, return WaitingDialog(parent=parent, message=msg,
run_task=receiver_thread, on_success=on_success) run_task=receiver_thread, on_success=on_success)

14
plugins/btchipwallet.py

@ -34,8 +34,8 @@ except ImportError:
class Plugin(BasePlugin): class Plugin(BasePlugin):
def __init__(self, gui, name): def __init__(self, parent, config, name):
BasePlugin.__init__(self, gui, name) BasePlugin.__init__(self, parent, config, name)
self._is_available = self._init() self._is_available = self._init()
self.wallet = None self.wallet = None
self.handler = None self.handler = None
@ -170,10 +170,10 @@ class BTChipWallet(BIP32_HD_Wallet):
aborted = False aborted = False
if not self.client or self.client.bad: if not self.client or self.client.bad:
try: try:
d = getDongle(BTCHIP_DEBUG) d = getDongle(BTCHIP_DEBUG)
self.client = btchip(d) self.client = btchip(d)
self.client.handler = self.plugin.handler self.client.handler = self.plugin.handler
firmware = self.client.getFirmwareVersion()['version'].split(".") firmware = self.client.getFirmwareVersion()['version'].split(".")
if not checkFirmware(firmware): if not checkFirmware(firmware):
d.close() d.close()
@ -416,7 +416,7 @@ class BTChipWallet(BIP32_HD_Wallet):
format_satoshis_plain(self.get_tx_fee(tx)), changePath, bytearray(rawTx.decode('hex'))) format_satoshis_plain(self.get_tx_fee(tx)), changePath, bytearray(rawTx.decode('hex')))
if firstTransaction: if firstTransaction:
transactionOutput = outputData['outputData'] transactionOutput = outputData['outputData']
if outputData['confirmationNeeded']: if outputData['confirmationNeeded']:
# TODO : handle different confirmation types. For the time being only supports keyboard 2FA # TODO : handle different confirmation types. For the time being only supports keyboard 2FA
self.plugin.handler.stop() self.plugin.handler.stop()
if 'keycardData' in outputData: if 'keycardData' in outputData:
@ -532,7 +532,7 @@ class BTChipQTHandler:
return self.response return self.response
def auth_dialog(self): def auth_dialog(self):
response = QInputDialog.getText(None, "Ledger Wallet Authentication", self.message, QLineEdit.Password) response = QInputDialog.getText(None, "Ledger Wallet Authentication", self.message, QLineEdit.Password)
if not response[1]: if not response[1]:
self.response = None self.response = None
else: else:
@ -563,7 +563,7 @@ class BTChipCmdLineHandler:
print_msg(msg) print_msg(msg)
def prompt_auth(self, msg): def prompt_auth(self, msg):
import getpass import getpass
print_msg(msg) print_msg(msg)
response = getpass.getpass('') response = getpass.getpass('')
if len(response) == 0: if len(response) == 0:

8
plugins/email_requests.py

@ -114,8 +114,8 @@ class Plugin(BasePlugin):
def is_available(self): def is_available(self):
return True return True
def __init__(self, a, b): def __init__(self, parent, config, name)
BasePlugin.__init__(self, a, b) BasePlugin.__init__(self, parent, config, name)
self.imap_server = self.config.get('email_server', '') self.imap_server = self.config.get('email_server', '')
self.username = self.config.get('email_username', '') self.username = self.config.get('email_username', '')
self.password = self.config.get('email_password', '') self.password = self.config.get('email_password', '')
@ -204,7 +204,7 @@ class Plugin(BasePlugin):
vbox.addStretch() vbox.addStretch()
vbox.addLayout(Buttons(CloseButton(d), OkButton(d))) vbox.addLayout(Buttons(CloseButton(d), OkButton(d)))
if not d.exec_(): if not d.exec_():
return return
server = str(server_e.text()) server = str(server_e.text())
@ -215,5 +215,3 @@ class Plugin(BasePlugin):
password = str(password_e.text()) password = str(password_e.text())
self.config.set_key('email_password', password) self.config.set_key('email_password', password)

4
plugins/exchange_rate.py

@ -162,8 +162,8 @@ class Exchanger(ThreadJob):
class Plugin(BasePlugin): class Plugin(BasePlugin):
def __init__(self,a,b): def __init__(self, parent, config, name):
BasePlugin.__init__(self,a,b) BasePlugin.__init__(self, parent, config, name)
self.exchange = self.config.get('use_exchange', "Blockchain") self.exchange = self.config.get('use_exchange', "Blockchain")
self.currencies = [self.fiat_unit()] self.currencies = [self.fiat_unit()]
self.exchanger = Exchanger(self) self.exchanger = Exchanger(self)

6
plugins/keepkey.py

@ -48,8 +48,8 @@ def give_error(message):
class Plugin(BasePlugin): class Plugin(BasePlugin):
def __init__(self, config, name): def __init__(self, parent, config, name):
BasePlugin.__init__(self, config, name) BasePlugin.__init__(self, parent, config, name)
self._is_available = self._init() self._is_available = self._init()
self.wallet = None self.wallet = None
self.handler = None self.handler = None
@ -240,7 +240,7 @@ class Plugin(BasePlugin):
except Exception, e: except Exception, e:
self.handler.stop() self.handler.stop()
give_error(e) give_error(e)
self.handler.stop() self.handler.stop()
raw = signed_tx.encode('hex') raw = signed_tx.encode('hex')

4
plugins/trezor.py

@ -48,8 +48,8 @@ def give_error(message):
class Plugin(BasePlugin): class Plugin(BasePlugin):
def __init__(self, config, name): def __init__(self, parent, config, name):
BasePlugin.__init__(self, config, name) BasePlugin.__init__(self, parent, config, name)
self._is_available = self._init() self._is_available = self._init()
self.wallet = None self.wallet = None
self.handler = None self.handler = None

4
plugins/trustedcoin.py

@ -212,8 +212,8 @@ class Plugin(BasePlugin):
wallet = None wallet = None
def __init__(self, x, y): def __init__(self, parent, config, name):
BasePlugin.__init__(self, x, y) BasePlugin.__init__(self, parent, config, name)
self.seed_func = lambda x: bitcoin.is_new_seed(x, SEED_PREFIX) self.seed_func = lambda x: bitcoin.is_new_seed(x, SEED_PREFIX)
self.billing_info = None self.billing_info = None
self.is_billing = False self.is_billing = False

Loading…
Cancel
Save