Skip to content

Commit 75cef43

Browse files
authored
Merge pull request spesmilo#9650 from SomberNight/202503_keepkey
plugins: keepkey: vendor our fork of keepkeylib (as git submodule)
2 parents 457979c + 822ab5d commit 75cef43

File tree

9 files changed

+17
-20
lines changed

9 files changed

+17
-20
lines changed

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,6 @@
44
[submodule "electrum/www"]
55
path = electrum/plugins/payserver/www
66
url = https://github.com/spesmilo/electrum-http.git
7+
[submodule "electrum/plugins/keepkey/keepkeylib"]
8+
path = electrum/plugins/keepkey/keepkeylib
9+
url = https://github.com/spesmilo/electrum-keepkeylib.git

contrib/build-wine/deterministic.spec

-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ datas += collect_data_files(f"{PYPKG}.plugins")
4242
datas += collect_data_files('trezorlib') # TODO is this needed? and same question for other hww libs
4343
datas += collect_data_files('safetlib')
4444
datas += collect_data_files('btchip')
45-
datas += collect_data_files('keepkeylib')
4645
datas += collect_data_files('ckcc')
4746
datas += collect_data_files('bitbox02')
4847

contrib/deterministic-build/requirements-hw.txt

-4
Original file line numberDiff line numberDiff line change
@@ -279,10 +279,6 @@ hidapi==0.14.0 \
279279
idna==3.6 \
280280
--hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \
281281
--hash=sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f
282-
keepkey==6.3.1 \
283-
--hash=sha256:88e2b5291c85c8e8567732f675697b88241082884aa1aba32257f35ee722fc09 \
284-
--hash=sha256:cef1e862e195ece3e42640a0f57d15a63086fd1dedc8b5ddfcbc9c2657f0bb1e \
285-
--hash=sha256:f369d640c65fec7fd8e72546304cdc768c04224a6b9b00a19dc2cd06fa9d2a6b
286282
ledger-bitcoin==0.3.0 \
287283
--hash=sha256:ad9cdeaf33a45562bbd5bae6751025b869a2f81d6eb0267dd062a01f5925a4d5 \
288284
--hash=sha256:e7c33404d02044c3810b294a510f7ad97bc65ab12dbdd180d873f2b4ebc0711a

contrib/osx/osx.spec

-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ datas += collect_data_files(f"{PYPKG}.plugins")
4545
datas += collect_data_files('trezorlib') # TODO is this needed? and same question for other hww libs
4646
datas += collect_data_files('safetlib')
4747
datas += collect_data_files('btchip')
48-
datas += collect_data_files('keepkeylib')
4948
datas += collect_data_files('ckcc')
5049
datas += collect_data_files('bitbox02')
5150

contrib/requirements/requirements-hw.txt

+5-5
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ trezor[hidapi]>=0.13.0,<0.14
77
safet>=0.1.5
88

99
# device plugin: keepkey
10-
keepkey>=6.3.1
10+
ecdsa>=0.9
11+
protobuf>=3.20
12+
mnemonic>=0.8
13+
hidapi>=0.7.99.post15
14+
libusb1>=1.6
1115

1216
# device plugin: ledger
1317
# note: btchip-python only needed for "legacy" protocol and HW.1 support
@@ -25,10 +29,6 @@ bitbox02>=6.2.0
2529
cbor2>=5.4.6,<6.0.0
2630
pyserial>=3.5.0,<4.0.0
2731

28-
# prefer older protobuf (see #7922)
29-
# (pulled in via e.g. keepkey and bitbox02)
30-
protobuf>=3.20,<4
31-
3232
# prefer older colorama to avoid needing hatchling
3333
# (pulled in via trezor -> click -> colorama)
3434
# (pulled in via safet -> click -> colorama)

contrib/requirements/requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
qrcode
2-
protobuf>=3.20,<4
2+
protobuf>=3.20
33
qdarkstyle>=3.2
44
aiorpcx>=0.22.0,<0.25
55
aiohttp>=3.3.0,<4.0.0

electrum/plugins/keepkey/client.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from keepkeylib.client import proto, BaseClient, ProtocolMixin
1+
from .keepkeylib.keepkeylib.client import proto, BaseClient, ProtocolMixin
22
from .clientbase import KeepKeyClientBase
33

44
class KeepKeyClient(KeepKeyClientBase, ProtocolMixin, BaseClient):

electrum/plugins/keepkey/keepkey.py

+6-7
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,8 @@ def __init__(self, parent, config, name):
7575

7676
try:
7777
from . import client
78-
import keepkeylib
79-
import keepkeylib.ckd_public
80-
import keepkeylib.transport_hid
81-
import keepkeylib.transport_webusb
78+
from .keepkeylib import keepkeylib
79+
from .keepkeylib.keepkeylib import ckd_public, transport_hid, transport_webusb
8280
self.client_class = client.KeepKeyClient
8381
self.ckd_public = keepkeylib.ckd_public
8482
self.types = keepkeylib.client.types
@@ -90,11 +88,12 @@ def __init__(self, parent, config, name):
9088
self.device_manager().register_enumerate_func(self.enumerate)
9189
self.libraries_available = True
9290
except ImportError:
91+
self.logger.debug("error importing keepkeylib", exc_info=True)
9392
self.libraries_available = False
9493

9594
@runs_in_hwd_thread
9695
def enumerate(self):
97-
from keepkeylib.transport_webusb import WebUsbTransport
96+
from .keepkeylib.keepkeylib.transport_webusb import WebUsbTransport
9897
results = []
9998
for dev in WebUsbTransport.enumerate():
10099
path = self._dev_to_str(dev)
@@ -112,12 +111,12 @@ def _dev_to_str(dev: "usb1.USBDevice") -> str:
112111

113112
@runs_in_hwd_thread
114113
def hid_transport(self, pair):
115-
from keepkeylib.transport_hid import HidTransport
114+
from .keepkeylib.keepkeylib.transport_hid import HidTransport
116115
return HidTransport(pair)
117116

118117
@runs_in_hwd_thread
119118
def webusb_transport(self, device):
120-
from keepkeylib.transport_webusb import WebUsbTransport
119+
from .keepkeylib.keepkeylib.transport_webusb import WebUsbTransport
121120
for dev in WebUsbTransport.enumerate():
122121
if device.path == self._dev_to_str(dev):
123122
return WebUsbTransport(dev)

electrum/plugins/keepkey/keepkeylib

Submodule keepkeylib added at fadf5f9

0 commit comments

Comments
 (0)