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
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
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
3385a94753
logging: basics
2019-05-02 15:19:03 +02:00
SomberNight
d4a2e9634f
bitcoin: disallow importing/sweeping segwit scripts with uncompressed pubkey
...
fixes #4638
2019-04-19 00:37:28 +02:00
SomberNight
b2128af958
ledger: suppress error message if user cancels tx signing
2019-02-28 17:56:08 +01:00
SomberNight
85a7aa291e
bip32: refactor whole module. clean-up.
2019-02-22 18:50:24 +01:00
Jean P
7618693ca9
Add support for Ledger Nano X and future devices ( #5140 )
2019-02-20 13:46:26 +01:00
Tom Kneiphof
8fd84f77c7
Fix ledger transaction version ( #4991 )
2019-01-07 10:49:10 +01:00
SomberNight
bd32b88f62
introduce UserFacingException
...
we should not raise generic Exception when wanting to communicate with
the user. it makes distinguishing programming errors and messages hard,
as the caller will necessarily need to catch all Exceptions then
2018-11-08 19:46:15 +01:00
SomberNight
a88a2dea82
split bip32 from bitcoin.py
2018-10-25 22:20:33 +02:00
SomberNight
788b5b04fe
ledger: always use finalizeInput in sign_transaction
...
related #4749
2018-10-02 15:52:24 +02:00
SomberNight
5f3408dd70
transaction.py: introduce TxOutputHwInfo namedtuple
2018-08-14 19:15:15 +02:00
SomberNight
2eb72d496f
transaction: introduce TxOutput namedtuple
2018-08-01 19:10:08 +02:00