tlabels plugin: fix it. and extend to cli/daemon. - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 684390a47960420af9d1018c85c82c04ea3e0126 DIR parent 87486e94874f83780921855d836f3fa3e1e36965 HTML Author: SomberNight <somber.night@protonmail.com> Date: Fri, 29 Jun 2018 11:58:12 +0200 labels plugin: fix it. and extend to cli/daemon. Diffstat: M lib/daemon.py | 2 ++ M plugins/labels/__init__.py | 2 +- A plugins/labels/cmdline.py | 11 +++++++++++ M plugins/labels/labels.py | 5 +++-- 4 files changed, 17 insertions(+), 3 deletions(-) --- DIR diff --git a/lib/daemon.py b/lib/daemon.py t@@ -41,6 +41,7 @@ from .storage import WalletStorage from .commands import known_commands, Commands from .simple_config import SimpleConfig from .exchange_rate import FxThread +from .plugins import run_hook def get_lockfile(config): t@@ -175,6 +176,7 @@ class Daemon(DaemonThread): wallet = self.load_wallet(path, config.get('password')) if wallet is not None: self.cmd_runner.wallet = wallet + run_hook('load_wallet', wallet, None) response = wallet is not None elif sub == 'close_wallet': path = config.get_wallet_path() DIR diff --git a/plugins/labels/__init__.py b/plugins/labels/__init__.py t@@ -5,5 +5,5 @@ description = ' '.join([ _("Save your wallet labels on a remote server, and synchronize them across multiple devices where you use Electrum."), _("Labels, transactions IDs and addresses are encrypted before they are sent to the remote server.") ]) -available_for = ['qt', 'kivy'] +available_for = ['qt', 'kivy', 'cmdline'] DIR diff --git a/plugins/labels/cmdline.py b/plugins/labels/cmdline.py t@@ -0,0 +1,11 @@ +from .labels import LabelsPlugin +from electrum.plugins import hook + +class Plugin(LabelsPlugin): + + @hook + def load_wallet(self, wallet, window): + self.start_wallet(wallet) + + def on_pulled(self, wallet): + self.print_error('labels pulled from server') DIR diff --git a/plugins/labels/labels.py b/plugins/labels/labels.py t@@ -9,6 +9,7 @@ import base64 import electrum from electrum.plugins import BasePlugin, hook +from electrum.crypto import aes_encrypt_with_iv, aes_decrypt_with_iv from electrum.i18n import _ t@@ -21,14 +22,14 @@ class LabelsPlugin(BasePlugin): def encode(self, wallet, msg): password, iv, wallet_id = self.wallets[wallet] - encrypted = electrum.bitcoin.aes_encrypt_with_iv(password, iv, + encrypted = aes_encrypt_with_iv(password, iv, msg.encode('utf8')) return base64.b64encode(encrypted).decode() def decode(self, wallet, message): password, iv, wallet_id = self.wallets[wallet] decoded = base64.b64decode(message) - decrypted = electrum.bitcoin.aes_decrypt_with_iv(password, iv, decoded) + decrypted = aes_decrypt_with_iv(password, iv, decoded) return decrypted.decode('utf8') def get_nonce(self, wallet):