Browse Source

hww: mark device_model_name(self) as @abstractmethod and override in hww clients that did not define it.

master
Sander van Grieken 2 years ago
parent
commit
087718f3a7
  1. 3
      electrum/plugins/bitbox02/bitbox02.py
  2. 4
      electrum/plugins/coldcard/coldcard.py
  3. 7
      electrum/plugins/digitalbitbox/digitalbitbox.py
  4. 3
      electrum/plugins/hw_wallet/plugin.py
  5. 3
      electrum/plugins/safe_t/clientbase.py

3
electrum/plugins/bitbox02/bitbox02.py

@ -72,6 +72,9 @@ class BitBox02Client(HardwareClientBase):
if self.bitbox_hid_info is None:
raise Exception("No BitBox02 detected")
def device_model_name(self) -> Optional[str]:
return 'BitBox02'
def is_initialized(self) -> bool:
return True

4
electrum/plugins/coldcard/coldcard.py

@ -59,7 +59,6 @@ CKCC_SIMULATED_PID = CKCC_PID ^ 0x55aa
class CKCCClient(HardwareClientBase):
def __init__(self, plugin, handler, dev_path, *, is_simulator=False):
HardwareClientBase.__init__(self, plugin=plugin)
self.device = plugin.device
@ -80,6 +79,9 @@ class CKCCClient(HardwareClientBase):
# NOTE: MiTM test is delayed until we have a hint as to what XPUB we
# should expect. It's also kinda slow.
def device_model_name(self) -> Optional[str]:
return 'Coldcard'
def __repr__(self):
return '<CKCCClient: xfp=%s label=%r>' % (xfp2str(self.dev.master_fingerprint),
self.label())

7
electrum/plugins/digitalbitbox/digitalbitbox.py

@ -15,7 +15,7 @@ import struct
import sys
import time
import copy
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, Optional
from electrum.crypto import sha256d, EncodeAES_bytes, DecodeAES_bytes, hmac_oneshot
from electrum.bitcoin import public_key_to_p2pkh
@ -69,8 +69,8 @@ MIN_MAJOR_VERSION = 5
ENCRYPTION_PRIVKEY_KEY = 'encryptionprivkey'
CHANNEL_ID_KEY = 'comserverchannelid'
class DigitalBitbox_Client(HardwareClientBase):
class DigitalBitbox_Client(HardwareClientBase):
def __init__(self, plugin, hidDevice):
HardwareClientBase.__init__(self, plugin=plugin)
self.dbb_hid = hidDevice
@ -80,6 +80,9 @@ class DigitalBitbox_Client(HardwareClientBase):
self.setupRunning = False
self.usbReportSize = 64 # firmware > v2.0.0
def device_model_name(self) -> Optional[str]:
return 'Digital BitBox'
@runs_in_hwd_thread
def close(self):
if self.opened:

3
electrum/plugins/hw_wallet/plugin.py

@ -23,7 +23,7 @@
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
from abc import abstractmethod
from typing import TYPE_CHECKING, Sequence, Optional, Type, Iterable, Any
from electrum.plugin import (BasePlugin, hook, Device, DeviceMgr,
@ -249,6 +249,7 @@ class HardwareClientBase:
password = Xpub.get_pubkey_from_xpub(xpub, ()).hex()
return password
@abstractmethod
def device_model_name(self) -> Optional[str]:
"""Return the name of the model of this device, which might be displayed in the UI.
E.g. for Trezor, "Trezor One" or "Trezor T".

3
electrum/plugins/safe_t/clientbase.py

@ -117,6 +117,9 @@ class SafeTClientBase(HardwareClientBase, GuiMixin, Logger):
Logger.__init__(self)
self.used()
def device_model_name(self) -> Optional[str]:
return 'Safe-T'
def __str__(self):
return "%s/%s" % (self.label(), self.features.device_id)

Loading…
Cancel
Save