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#6066fixes#6401
also reverts 2d3c2eeea9 (which was an even hackier workaround for #6066)
(which is the logical thing to do, as it too will be rebuilt as part of
the history, and the parts of it that might not be present after the
rebuild is exactly what a call to "clear_history" is supposed to get rid of)
Traceback (most recent call last):
File "...\electrum\electrum\gui\qt\main_window.py", line 1503, in do_pay
self.do_pay_invoice(invoice)
File "...\electrum\electrum\gui\qt\main_window.py", line 1516, in do_pay_invoice
self.pay_onchain_dialog(self.get_coins(), outputs)
File "...\electrum\electrum\gui\qt\main_window.py", line 1570, in pay_onchain_dialog
self.preview_tx_dialog(make_tx=make_tx,
File "...\electrum\electrum\gui\qt\main_window.py", line 1574, in preview_tx_dialog
d = PreviewTxDialog(make_tx=make_tx, external_keypairs=external_keypairs,
File "...\electrum\electrum\gui\qt\transaction_dialog.py", line 654, in __init__
self.update()
File "...\electrum\electrum\gui\qt\transaction_dialog.py", line 392, in update
tx_details = self.wallet.get_tx_info(self.tx)
File "...\electrum\electrum\wallet.py", line 486, in get_tx_info
tx_we_already_have_in_db = self.db.get_transaction(tx_hash)
File "...\electrum\electrum\json_db.py", line 44, in wrapper
return func(self, *args, **kwargs)
File "...\electrum\electrum\wallet_db.py", line 822, in get_transaction
assert isinstance(tx_hash, str)
AssertionError
Traceback (most recent call last):
File "...\electrum\electrum\gui\qt\confirm_tx_dialog.py", line 65, in timer_actions
self.update()
File "...\electrum\electrum\gui\qt\transaction_dialog.py", line 392, in update
tx_details = self.wallet.get_tx_info(self.tx)
File "...\electrum\electrum\wallet.py", line 486, in get_tx_info
tx_we_already_have_in_db = self.db.get_transaction(tx_hash)
File "...\electrum\electrum\json_db.py", line 44, in wrapper
return func(self, *args, **kwargs)
File "...\electrum\electrum\wallet_db.py", line 822, in get_transaction
if tx_hash is None:
AssertionError