1
0
Commit Graph

14562 Commits

Author SHA1 Message Date
Sander van Grieken
553ccdebd1 qml: eliminate animation glitching when removing a page from the wizard (back button) 2022-07-07 18:28:00 +02:00
Sander van Grieken
b1bd4d5acb add seed generation and verification for standard wallets 2022-07-07 18:28:00 +02:00
Sander van Grieken
c999b3a297 add Bitcoin QObject for seed generation 2022-07-07 18:28:00 +02:00
Sander van Grieken
ba58c6357e add initial dialog for opening wallets, initial coverage also for splitting and db upgrades 2022-07-07 18:28:00 +02:00
Sander van Grieken
63663b2b2d add simple message pane component 2022-07-07 18:28:00 +02:00
Sander van Grieken
54fe17b403 introduce QEWalletDb class to expose electrum wallet db to qml 2022-07-07 18:28:00 +02:00
Sander van Grieken
f9245164bb remove devtest buttons 2022-07-07 18:28:00 +02:00
Sander van Grieken
0682f05d95 factor off the main QGuiApplication class into its own file 2022-07-07 18:28:00 +02:00
Sander van Grieken
4b3f79f41c use QEAvailableWalletListModel for available wallets 2022-07-07 18:28:00 +02:00
Sander van Grieken
2b7f22d27d create available wallet listmodel class 2022-07-07 18:28:00 +02:00
ThomasV
634a647fb1 android: parameterize GUI framework 2022-07-07 18:28:00 +02:00
Sander van Grieken
d13f5d0da0 qml: add server connect wizard 2022-07-07 18:28:00 +02:00
Sander van Grieken
56bbd28af7 qml: generalize Wizard 2022-07-07 18:28:00 +02:00
Sander van Grieken
c3d37913cd android now uses qml UI 2022-07-07 18:28:00 +02:00
Sander van Grieken
18b10c84ca qml: add debug tracing of QML plugin loading 2022-07-07 18:28:00 +02:00
Sander van Grieken
279c1ce9fb dev: disable PIL use for now 2022-07-07 18:28:00 +02:00
Sander van Grieken
64de9807ac remove kivy platform check 2022-07-07 18:28:00 +02:00
Sander van Grieken
f8ce681f5e allow override of QT_QUICK_CONTROLS_STYLE 2022-07-07 18:28:00 +02:00
Sander van Grieken
ba7bcbfcbc qml: many UI updates and additions 2022-07-07 18:28:00 +02:00
Sander van Grieken
6e482f437a qml: fixes and cleanup for qedaemon, qenetwork. expose many wallet properties in qewallet 2022-07-07 18:28:00 +02:00
Sander van Grieken
3b22ecdae4 qml: add available wallets model 2022-07-07 18:28:00 +02:00
Sander van Grieken
599b01f009 qml: some more boilerplate, init language, SIGINT signal handler 2022-07-07 18:28:00 +02:00
Sander van Grieken
1260720bb6 qml: qml test plugin 2022-07-07 18:28:00 +02:00
Sander van Grieken
e3c63ae395 qml: initial implementation of new wallet conversation 2022-07-07 18:28:00 +02:00
Sander van Grieken
e534c5d834 qml: switch to QtQuick Controls 2022-07-07 18:28:00 +02:00
Sander van Grieken
d195fce82d qml: hook any qml supporting plugins, add test plugin
This allows different platforms to have their own UI components while still leveraging the common
set of QObjects and utility components.
2022-07-07 18:28:00 +02:00
Sander van Grieken
39048fdd10 qml: UI: add most transaction fields to tx history page 2022-07-07 18:28:00 +02:00
Sander van Grieken
a3801ecae8 qml: map fields of tx history 2022-07-07 18:28:00 +02:00
Sander van Grieken
3dce09328e qml: Initial QML to test QObject property binding, ListModels, Camera 2022-07-07 18:28:00 +02:00
Sander van Grieken
7eb733757a qml: add initial qml.ElectrumGui class, Electrum QObject wrappers and an initial QObject for QR en/decoding 2022-07-07 18:28:00 +02:00
Sander van Grieken
1df5187719 qml: add 'qml' gui option and add gui.qml.ELectrumGui to type hint for gui_object 2022-07-07 18:28:00 +02:00
ThomasV
49a67a5cd2 build android apk with qt5
update requirements file for building PyQt5
2022-07-07 18:28:00 +02:00
SomberNight
c463f5e23d password unification refactor: move methods from wallet to daemon
Note in particular that check_password_for_directory was not safe to use while the daemon had wallets loaded,
as the same file would have two corresponding Wallet() instances in memory. This was specifically handled in
the kivy GUI, on the caller side, by stopping-before and reloading-after the wallets; but it was dirty to
have the caller handle this.
2022-07-06 19:57:27 +02:00
SomberNight
c71f00cc8e transaction.deserialize: only set self._inputs after parsing witness
re multi-threaded sanity...
(see lazy deserialization in Transaction.inputs)
2022-07-05 18:56:52 +02:00
ThomasV
1d343657f1 Qt: require left-click to toggle receive qr-code 2022-07-05 15:31:53 +02:00
SomberNight
b6b7b0a6c0 lnwatcher.inspect_tx_candidate: handle witness being None
```
E/W | lnwatcher.LNWalletWatcher.[test_segwit_2-LNW] | Exception in trigger_callbacks: AssertionError('witness is missing! txid=49f0fe532c07ec099ea3a9540a06141f529d28244c3a7be20f54843636cd7380. rawtx=cHNidP8BAFICAAAAAbliIHcoL1ZXwvRfBrjmhEJ63isM+wBBiCoZW231T2jhAAAAAAD9////AbMsQQAAAAAAFgAURC0BRfNFWqqD+jbsTaiX0/qjrE2v2iIAAAEA/S8BAgAAAAABAVbd14mCS0q4HjYGhWppSXvBvx9POsTYDSwXAIkxJF1iAAAAAAD/////ASEtQQAAAAAAFgAUh+Ku4dqhbNrjKjcK65dsZAWV+ocEAEcwRAIgcILGbxQK7wxiq1yBY6GxGBs4A32pBzC4PUSiMY0QuVMCIGtWnoRD/2zx4BshRYeHsg7wp9ClplQWxjsBJszXEcPfAUgwRQIhAPn0dsBeyqW4U0TbOgJMMEEuKwqBXfXHryHJvOxcwKafAiBRBBFpJvYxMtjkg7aABj1yUEwBaZuAqg1a8mlbHLKnBwFHUiECRc2elI2LEqEE31/G9tC6IA4yV09nKK6nSTez2vUlVikhAxbmJytLCOgHfz1vFqKrZMhERzVCJd0AaAkBWZqMKbe6Uq4AAAAAIgYDtG0jdrMO8FbxdAepULYg1Hu8fbq6hQ7Ki35K6/TViEQQ0uN52gAAAIABAAAAgQAAAAAiAgIP7MeuyqhS6fOpbLYY/1R+Rgmc0sYyA5GHEXBYOpWSoBDS43naAAAAgAAAAAB7AAAAAA==')
Traceback (most recent call last):
  File "...\electrum\electrum\util.py", line 1176, in wrapper
    return await func(*args, **kwargs)
  File "...\electrum\electrum\lnwatcher.py", line 213, in trigger_callbacks
    await callback()
  File "...\electrum\electrum\lnwatcher.py", line 219, in check_onchain_situation
    spenders = self.inspect_tx_candidate(funding_outpoint, 0)
  File "...\electrum\electrum\lnwatcher.py", line 297, in inspect_tx_candidate
    r = self.inspect_tx_candidate(spender_txid+':%d'%i, n+1)
  File "...\electrum\electrum\lnwatcher.py", line 281, in inspect_tx_candidate
    assert witness, f"witness is missing! txid={spender_txid}. rawtx={str(spender_tx)}"
AssertionError: witness is missing! txid=49f0fe532c07ec099ea3a9540a06141f529d28244c3a7be20f54843636cd7380. rawtx=cHNidP8BAFICAAAAAbliIHcoL1ZXwvRfBrjmhEJ63isM+wBBiCoZW231T2jhAAAAAAD9////AbMsQQAAAAAAFgAURC0BRfNFWqqD+jbsTaiX0/qjrE2v2iIAAAEA/S8BAgAAAAABAVbd14mCS0q4HjYGhWppSXvBvx9POsTYDSwXAIkxJF1iAAAAAAD/////ASEtQQAAAAAAFgAUh+Ku4dqhbNrjKjcK65dsZAWV+ocEAEcwRAIgcILGbxQK7wxiq1yBY6GxGBs4A32pBzC4PUSiMY0QuVMCIGtWnoRD/2zx4BshRYeHsg7wp9ClplQWxjsBJszXEcPfAUgwRQIhAPn0dsBeyqW4U0TbOgJMMEEuKwqBXfXHryHJvOxcwKafAiBRBBFpJvYxMtjkg7aABj1yUEwBaZuAqg1a8mlbHLKnBwFHUiECRc2elI2LEqEE31/G9tC6IA4yV09nKK6nSTez2vUlVikhAxbmJytLCOgHfz1vFqKrZMhERzVCJd0AaAkBWZqMKbe6Uq4AAAAAIgYDtG0jdrMO8FbxdAepULYg1Hu8fbq6hQ7Ki35K6/TViEQQ0uN52gAAAIABAAAAgQAAAAAiAgIP7MeuyqhS6fOpbLYY/1R+Rgmc0sYyA5GHEXBYOpWSoBDS43naAAAAgAAAAAB7AAAAAA==
```
2022-07-05 14:53:33 +02:00
ThomasV
ce552713a8 rename label: Confirmed -> On-chain 2022-07-05 10:17:59 +02:00
ThomasV
7d9f20f8ab update trampoline feature bits. fixes #7801 2022-07-05 08:48:34 +02:00
SomberNight
0fca35fa40 android build: increase buildozer log level (except on cirrus ci) 2022-07-01 18:52:30 +02:00
SomberNight
bb0db0e3c0 build: incl "frozenlist" dep as pure-python, without C stuff
While attempting to reproducibly build the qml android apk, one of the differences
was due to the "frozenlist" dependency (pulled in by aiohttp) - the compiled C parts
were not deterministic. By setting this env var, we can opt-out [0] of all the C
accelerated parts and just use the pure-python implementation. We are already doing
the same for other aiohttp-related packages anyway.

[0]: c2794cac12/setup.py (L7)
2022-07-01 18:35:42 +02:00
SomberNight
aea16f1322 qt main_window: (trivial) clean-up weird types passed to qt calls 2022-07-01 16:23:06 +02:00
SomberNight
133c0f71c4 qt ReceiveTab: (trivial) rename clear_receive_tab to do_clear 2022-07-01 16:21:56 +02:00
SomberNight
5b29e6d4f5 qt: (refactor) split "receive tab" out from main_window.py 2022-07-01 16:03:28 +02:00
ThomasV
798df1fd53 Merge pull request #7874 from SomberNight/202206_qt_split_sendtab
qt: (refactor) split "send tab" out from main_window.py
2022-07-01 12:57:34 +02:00
Sander van Grieken
8d57129ad6 p4a: update commit ref to head of qt5-wip (fixes cpu count used for build) 2022-06-30 21:23:41 +02:00
SomberNight
2d68350900 qt: (refactor) split "send tab" out from main_window.py 2022-06-30 20:29:08 +02:00
ghost43
05226437bf Merge pull request #7839 from SomberNight/202202_lnurl_2
add lnurl-pay (`LUD-06`) support
2022-06-30 16:30:21 +00:00
SomberNight
0509109d61 qt.util.MyTreeView: handle find_row_by_key returning None
fixes https://github.com/spesmilo/electrum/issues/7780
fixes https://github.com/spesmilo/electrum/issues/7815

Re FIXME in main_window.py, in particular, adb might call `add_transaction` on the same tx multiple times.
In `wallet.on_event_adb_added_tx`, maybe we should propagate `notify_GUI` to `wallet._update_request_statuses_touched_by_tx`.

The issue being fixed here (above TARS reports) can be triggered in multiple ways, e.g.:
- have an already paid receive request, and receive a payment to the same address again
- have an already paid receive request, and *spend from* that address (in which case the history of the address will change, and address_synchronizer will call add_transaction again on the old tx that satisfied the old receive request)
2022-06-29 19:11:05 +02:00
SomberNight
1b6706bed6 replace some erroneous usages of IntFlag with IntEnum 2022-06-29 18:07:03 +02:00
SomberNight
9f1da8422b qt LightningTxDialog: (fix regression) show fee for ln payments
follow-up e1d34300e5
2022-06-29 18:02:55 +02:00