Browse Source

jm_qt: fix couple of possible exceptions

add-joinmarket
zebra-lucky 1 year ago
parent
commit
bf204c2f68
  1. 6
      electrum/plugins/joinmarket/jm_qt.py
  2. 28
      electrum/plugins/joinmarket/notes.txt

6
electrum/plugins/joinmarket/jm_qt.py

@ -1112,7 +1112,8 @@ class SpendTab(QWidget):
in self.spendstate.loaded_schedule in self.spendstate.loaded_schedule
if x not in ["INTERNAL", "addrask"]] if x not in ["INTERNAL", "addrask"]]
# 2 Check for unconfirmed # 2 Check for unconfirmed
if (isinstance(self.spendstate.loaded_schedule[0][-1], str) if (self.spendstate.loaded_schedule
and isinstance(self.spendstate.loaded_schedule[0][-1], str)
and len(self.spendstate.loaded_schedule[0][-1]) == 64): and len(self.spendstate.loaded_schedule[0][-1]) == 64):
# ensure last transaction is confirmed before restart # ensure last transaction is confirmed before restart
jmman.tumble_log.info("WAITING TO RESTART...") jmman.tumble_log.info("WAITING TO RESTART...")
@ -1576,7 +1577,8 @@ class SpendTab(QWidget):
jmman = self.jmman jmman = self.jmman
coro = jmman.jmw.cleanup_keypairs() coro = jmman.jmw.cleanup_keypairs()
asyncio.run_coroutine_threadsafe(coro, jmman.loop) asyncio.run_coroutine_threadsafe(coro, jmman.loop)
self.taker.aborted = True if self.taker:
self.taker.aborted = True
self.giveUp() self.giveUp()
def giveUp(self): def giveUp(self):

28
electrum/plugins/joinmarket/notes.txt

@ -1,46 +1,26 @@
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
plugin: plugin:
- check onion/IRC single/multiple password/no passdword join
- jm_qt_obwatch: advanced sorting by columns, filter by text
- потрібно якось документувати
- irc reconnect interval 5 sec -> change to progressive interval
- jm_wallet.py: look where to add save_db
- change message on JMDLG.shutdown: - change message on JMDLG.shutdown:
> 62.08 | I | J/plugins.joinmarket.jm_main.JMManager.[wallet_jm] | > 62.08 | I | J/plugins.joinmarket.jm_main.JMManager.[wallet_jm] |
Lost IRC connection to: irc1.dword.ga . Should reconnect automatically soon. Lost IRC connection to: irc1.dword.ga . Should reconnect automatically soon.
- jm_wallet.py: look where to add save_db
- потрібно якось документувати
- окремий пункт до якого я взагалі ще не дійшов це qml gui - окремий пункт до якого я взагалі ще не дійшов це qml gui
- не може підібрати ордери, таке періодично трапляється при низькому - jm_qt_obwatch: advanced sorting by columns, filter by text
значенні maker_timeout_sec -- раніше вистачало 3, зараз замало 5 і процес - irc reconnect interval 5 sec -> change to progressive interval
підбору запускається до того як `ordebookwatch.py` додає ордери
- коли yieldgenerator запускається після ob-watcher.py дані по fidelity - коли yieldgenerator запускається після ob-watcher.py дані по fidelity
bond відсутні bond відсутні
- коли IRC сервер запускається після зупинки треба через деякий час - коли IRC сервер запускається після зупинки треба через деякий час
відсилати повторний запит по OBWatch -- makers не шлють offers відсилати повторний запит по OBWatch -- makers не шлють offers
після reconnect після reconnect
Qt:
- AttributeError: 'NoneType' object has no attribute 'aborted' on early tx
abort during multiple join
tests: tests:
- jm_utils: add_txin_sig: add testing for p2sh-p2wpkh - jm_utils: add_txin_sig: add testing for p2sh-p2wpkh
- verify_txin_sig: scriptsig wrong DER length: 70
- tests: place back test_walletservice.py, test_wallet.py?, - tests: place back test_walletservice.py, test_wallet.py?,
test_tx_creation test_tx_creation
- tests: look to base code test/jmclient/test_coinjoin.py - tests: look to base code test/jmclient/test_coinjoin.py
test/unified/test_e2e_coinjoin.py test/unified/test_e2e_coinjoin.py
- tests sometimes fail with fallet file "if..." left after fail
- ну і так... покриття тестами як завжди неповне... - ну і так... покриття тестами як завжди неповне...
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Traceback (most recent call last):
File "/home/max/tmp/electrum/electrum/electrum/plugins/joinmarket/jm_qt.py", line 1359, in _takerFinished
tumbler_taker_finished_update(self.taker, tumble_log,
File "/home/max/tmp/electrum/electrum/electrum/plugins/joinmarket/jmclient/taker_utils.py", line 462, in tumbler_taker_finished_update
hramt = taker.cjamount
AttributeError: 'Taker' object has no attribute 'cjamount'
мда, це цікаве питання -- трейс після перезапуску гаманця, тому у Taker не встановлене cjamount
see plugin notes if left: save last shedule tx as done to wallet schedule when confirmed
-------------------------------------------------------------------------------
блін, транзакції з низьким fee позалипали без блоків, тепер у makers немає блін, транзакції з низьким fee позалипали без блоків, тепер у makers немає
liquidity liquidity

Loading…
Cancel
Save