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
With python-ecdsa 0.15, copy.deepcopy(ecdsa.ecdsa.Public_key) started to raise.
This fixes the Travis test failures.
Also rm unused ECPrivkey._privkey attribute.
note: low R grinding would not have to be duplicated if we trusted the caller
to have done it already (as is the case with the classes in ecc.py), and if
we propagated the choice of "random_k" as part of the nonce_function passed
to libsecp256k1 (which is not currently done)
Traceback (most recent call last):
File "...\electrum\gui\qt\util.py", line 645, in run
result = task.task()
File "...\electrum\lib\wallet.py", line 1500, in sign_transaction
k.sign_transaction(tx, password)
File "...\electrum\plugins\keepkey\keepkey.py", line 67, in sign_transaction
self.plugin.sign_transaction(self, tx, prev_tx, xpub_path)
File "...\electrum\plugins\keepkey\keepkey.py", line 263, in sign_transaction
tx.update_signatures(signatures)
File "...\electrum\lib\transaction.py", line 667, in update_signatures
public_key = ecc.ECPubkey.from_sig_string(sig_string, recid, pre_hash)
File "...\electrum\lib\ecc.py", line 180, in from_sig_string
ecdsa_verifying_key = _MyVerifyingKey.from_signature(sig_string, recid, msg_hash, curve=SECP256k1)
File "...\electrum\lib\ecc.py", line 152, in from_signature
Q = inv_r * ( s * R + minus_e * G )
File "...\Python\Python36-32\lib\site-packages\ecdsa\ellipticcurve.py", line 143, in __rmul__
return self * other
File "...\electrum\lib\ecc_fast.py", line 120, in mul
public_pair_bytes = b'\4' + self.x().to_bytes(32, byteorder="big") + self.y().to_bytes(32, byteorder="big")
OverflowError: int too big to convert