SomberNight
574243b897
hww ledger: call scan_devices fewer times
2022-06-03 17:14:51 +02:00
SomberNight
b5d3f1458a
hww: impl get_client in Hardware_KeyStore instead of subclasses
2022-06-03 17:14:44 +02:00
SomberNight
6c50d3b0a3
hw plugins: (cleanup) rm no-op clear_client argument from keystore.give_error
...
The keystore does not have a "client" field.
One is supposed to use the "get_client" method instead (the generic API is `plugin.get_client(keystore)`)
Remnants of old code.
2022-05-11 19:30:14 +02:00
SomberNight
aab8e664ed
hw plugins: (cleanup) Plugin objects should not have a Client field
...
Clients are per-connected-device, plugins are ~singletons.
These were mostly remnants of old code.
2022-05-11 19:16:18 +02:00
SomberNight
30623c3529
hw plugins: (cleanup) Plugin objects should not have a Handler field
...
Handlers are per-client (connected device), plugins are ~singletons.
These were mostly remnants of old code.
2022-05-11 19:13:00 +02:00
SomberNight
9599254d43
hw: rm dead code from Hardware_KeyStore subclasses
...
- force_watching_only is long since unused
- comment was just duplicated from the base class
2022-05-09 20:09:10 +02:00
SomberNight
ec98ef5aee
hw ledger: sign_transaction: add progress indicator
...
related: https://github.com/spesmilo/electrum/issues/7516
2022-03-26 15:26:13 +01:00
nndiaye-ledger
7e083824b7
Add support for Ledger Nano S Plus ( #7692 )
2022-03-02 12:59:51 +00:00
SomberNight
376fc01b27
keystore.sign_message: add optional script_type argument
...
this is used by trezor
(and also by bitbox02, which was using a workaround previously)
fixes https://github.com/spesmilo/electrum/issues/7670
2022-02-22 19:20:03 +01:00
Benoit Verret
f731c38293
Minor style changes
2021-03-21 00:36:23 -04:00
SomberNight
83750a861f
ledger: bump min btchip-python (0.1.30->0.1.32)
...
So that it has https://github.com/LedgerHQ/btchip-python/pull/42
fixes #6928
2021-02-12 05:28:01 +01:00
SomberNight
b56fe237cd
ledger: give clear error that old HW.1 cannot send to bech32 address
...
maybe related #7022
2021-02-12 04:47:53 +01:00
Gordan Nekić
9c4807644b
Fix ledger sign message ( #7004 )
...
there was an around ~1/128 chance of creating an invalid signature when signing a message with a ledger
2021-02-06 05:16:52 +00:00
SomberNight
2eb02931ae
hw plugins: log exception at import time (but only if interesting)
...
related: https://github.com/spesmilo/electrum/issues/6928
2021-01-11 00:05:23 +01:00
SomberNight
b78cbcffd1
ledger: fix enumerating ledger devices with new bitcoin app (1.5.1)
...
see https://github.com/bitcoin-core/HWI/issues/402
2020-11-18 15:36:11 +01:00
ghost43
8e9d6a4c91
Merge pull request #6685 from SomberNight/202010_bitcoin_script
...
bitcoin/transaction: construct_script, and clean-ups
2020-10-24 23:06:55 +00:00
SomberNight
200f547a07
ledger: fix compat with hw.1 - signing flow deadlocked
...
broke in 8a1b46d839ac24f77bfa5e3a1eed0cb7284b59eac5b685854c517f224c98dc44
2020-10-24 23:32:18 +02:00
SomberNight
eefb68c82b
transaction: change Transaction.is_segwit_input(txin) to txin.is_segwit()
2020-10-24 08:03:13 +02:00
SomberNight
e60aede77e
ledger: workaround to avoid on-device warning for unusual der path
...
related: #6512
2020-10-06 17:55:29 +02:00
ghost43
21c3572600
hardware devices: run all device communication on dedicated thread ( #6561 )
...
hidapi/libusb etc are not thread-safe.
related: #6554
2020-09-08 15:52:53 +00:00
SomberNight
a7199696d3
json_db: exempt keystore from StoredDict conversion
...
The keystore logic would need to be significantly changed to nicely
interoperate with StoredDict/json_db logic.
(just see KeyStore.__init__() and KeyStore.dump())
For now we exempt the keystore from the recursive StoredDict conversion, as
it is a smaller change that is also easier to review for correctness.
fixes #6066
fixes #6401
also reverts 2d3c2eeea9 (which was an even hackier workaround for #6066 )
2020-09-04 16:11:01 +02:00
SomberNight
b042c4118f
ledger: speed-up sign_transaction
...
really slow to scan usb devices for e.g. every tx input...
if user disconnects mid-signing, we would fail anyway.
2020-07-02 12:45:42 +02:00
SomberNight
48993118ad
ledger: bump min btchip-python version
...
and minor simplification
2020-07-02 12:45:38 +02:00
BTChip github
c1101ee258
Remove warning on Segwit inputs and newer Bitcoin application, use generic signing for P2SH inputs
2020-06-27 18:26:54 +02:00
SomberNight
2cfa3bd6c8
hww hidapi usage: try to mitigate some thread-safety issues
...
related: #6097
2020-04-17 19:53:39 +02:00
SomberNight
98d2ab5bd6
hww: fix HardwareClientBase not having reference to plugin
...
it was incorrectly documented that it did (previously only for some plugins)
2020-04-17 19:53:35 +02:00
SomberNight
e830ef309f
hww: factor out part of hid scan code to HW_PluginBase
...
so that bitbox02 can override it
2020-04-12 15:34:19 +02:00
SomberNight
4b1d835304
wizard hww: scan devices fewer times and move away from GUI thread
2020-04-09 19:45:31 +02:00
SomberNight
bf067f7558
HardwareClientBase: provide default implementation for label
...
and add warning about placeholders
2020-04-08 18:28:21 +02:00
SomberNight
db1ff4915f
hww: show model name in device enum lists (e.g. "Trezor T")
2020-04-08 17:53:40 +02:00
SomberNight
4ef313a1ac
hww: smarter auto-selection of which device to pair with
...
scenario1:
- 2of2 multisig wallet with trezor1 and trezor2 keystores
- only trezor2 connected
- previously we would pair first keystore with connected device and then display error.
now we will pair the device with the correct keystore on the first try
scenario2:
- standard wallet with trezor1 keystore
- trezor2 connected (different device)
- previously we would pair trezor2 with the keystore and then display error.
now we will prompt the user to select which device to pair with (out of one)
related: #5789
2020-04-08 17:53:33 +02:00
SomberNight
9d0bb295e6
hww: distinguish devices based on "soft device id" (not just labels)
...
fixes #5759
2020-04-08 14:44:42 +02:00
SomberNight
c798e5d9a1
qt: introduce PasswordLineEdit(QLineEdit)
2020-04-07 18:58:37 +02:00
SomberNight
371f55a0f9
hww: fix some threading issues in wizard
...
fixes #3377
related: #6064 (passphrase dialog not rendered correctly)
2020-04-01 21:09:17 +02:00
SomberNight
81fc3fcce2
hww: rm some code duplication: add "scan_and_create_client_for_device"
2020-04-01 21:09:14 +02:00
SomberNight
7f1c7955dc
DeviceMgr: clean-up locks a bit
2020-04-01 21:09:00 +02:00
SomberNight
2d3c2eeea9
keystore: add workaround for StoredDict issue #6066
...
note: not a proper fix... but works for now
2020-04-01 13:33:38 +02:00
SomberNight
9c5e49f432
ecc.ECPubkey: also accept bytearray in __init__
...
regression since #5947
Traceback (most recent call last):
File "...\electrum\electrum\base_wizard.py", line 339, in on_device
self.plugin.setup_device(device_info, self, purpose)
File "...\electrum\electrum\plugins\ledger\ledger.py", line 598, in setup_device
client.get_xpub("m/44'/0'", 'standard') # TODO replace by direct derivation once Nano S > 1.1
File "...\electrum\electrum\plugins\ledger\ledger.py", line 55, in catch_exception
return func(self, *args, **kwargs)
File "...\electrum\electrum\plugins\ledger\ledger.py", line 124, in get_xpub
eckey=ecc.ECPubkey(publicKey),
File "...\electrum\electrum\ecc.py", line 145, in __init__
self._x, self._y = _x_and_y_from_pubkey_bytes(b)
File "...\electrum\electrum\ecc.py", line 119, in _x_and_y_from_pubkey_bytes
ret = _libsecp256k1.secp256k1_ec_pubkey_parse(
ctypes.ArgumentError: argument 3: <class 'TypeError'>: wrong type
2020-02-19 00:40:33 +01:00
SomberNight
d2f132738a
wallet: only select mature coins by default
...
this is a regression from #5721
Removed the `TxInput.is_coinbase` method as I think it is a confusing API,
instead we now have `TxInput.is_coinbase_input` and `TxInput.is_coinbase_output`.
related #5872
2020-01-02 00:43:49 +01:00
SomberNight
33facd151d
ledger.sign_transaction: always do certain output checks
2019-12-17 21:33:07 +01:00
SomberNight
ee63e84bcf
ledger: faster sign_transaction startup
...
Only call Ledger_KeyStore.get_client_electrum() once,
as it runs DeviceMgr.scan_devices(), which is slow.
2019-12-17 21:19:57 +01:00
SomberNight
6b8c447eb9
ledger: support sending to OP_RETURN outputs
...
closes #5849
based on:
ca9b432ff0
7bb27eff84
2019-12-17 21:10:14 +01:00
SomberNight
f8c84fbb1e
hardware wallets: create base class for HW Clients. add some type hints
2019-11-11 17:04:12 +01:00
SomberNight
9e86352022
psbt: follow-ups: fix ledger
2019-11-05 21:34:54 +01:00
SomberNight
bafe8a2fff
integrate PSBT support natively. WIP
2019-11-04 22:24:36 +01:00
SomberNight
ab76a1fe5b
wallet.add_hw_info: also store "is_change" in output_info
...
as it seems every consumer wants to know this and has its own hacks to
figure it out
2019-09-03 14:34:10 +02:00
Christian Clauss
e34afd62ce
Travis CI: Use flake8 to find Python syntax errors and undefined names ( #5467 )
2019-08-11 22:35:23 +00:00
SomberNight
dfad0f43c0
ledger nano: fix monospace font on Windows, and text readability
2019-08-09 20:18:38 +02:00
SomberNight
be4cf321e0
ledger: remove mobile pairing 2FA support for Ledger Nano
...
service no longer provided by Ledger; app not in Google Play Store any more
based on Electron-Cash/Electron-Cash#1298
2019-08-09 19:54:09 +02:00
SomberNight
f60f690ca9
change many str(e) to repr(e) as some exceptions were cryptic
...
it's often valuable to see the type of the exception
(especially as for some exceptions str(e) == '')
2019-07-17 20:12:52 +02:00