Commit Graph

13010 Commits

Author SHA1 Message Date
SomberNight ea22d0073e config: distinguish knowing mempool is empty vs not having mempool_fees
config.mempool_fees is now [] if server claims mempool is ~empty,
and None if no valid histogram has been received from server.
(previously it used to be [] in both cases)
2020-10-27 18:55:39 +01:00
SomberNight 2232955a23 synchronizer: fix request_missing_txs(..allow_server_not_finding_tx=True)
fixes #6686
2020-10-26 14:29:10 +01:00
SomberNight 5481fd8af6 interface: validate field order in "mempool.get_fee_histogram" response 2020-10-26 02:07:30 +01:00
SomberNight 25d4a40d6e qt history tab: fix shortcut in HistoryModel.refresh() 2020-10-25 06:55:10 +01:00
SomberNight b95525896f qt send tab: show friendlier error on mistyped bitcoin address 2020-10-25 04:24:31 +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 03bdb4f1b7 Transaction.get_preimage_script: support custom legacy-p2sh inputs
tests based on
- https://github.com/brianddk/reddit/blob/8ca383c9e00cb5a4c1201d1bab534d5886d3cb8f/python/elec-p2sh-hodl.py
- https://github.com/brianddk/reddit/blob/8ca383c9e00cb5a4c1201d1bab534d5886d3cb8f/python/elec-p2wsh-hodl.py

note: I could not reproduce the signature for the p2wsh cltv spend linked above,
so I have created a new testnet output and spent that for that test (to make sure
our behaviour is consensus-valid).
2020-10-24 08:26:11 +02:00
SomberNight eefb68c82b transaction: change Transaction.is_segwit_input(txin) to txin.is_segwit() 2020-10-24 08:03:13 +02:00
SomberNight 4c7a92f39c bitcoin: implement construct_script and use it 2020-10-24 07:49:06 +02:00
SomberNight 89bd520185 bitcoin: move construct_witness from transaction.py to bitcoin.py 2020-10-24 05:18:16 +02:00
ThomasV 59f7d4b02d fix #6676 and remove dead code 2020-10-23 11:31:04 +02:00
Zibster43 fcccb99a3b Remove phishing server (#6660)
Currentlane.lovebitco.in is being actively used in the phishing attack against Electrum users.
This can be confirmed by looking at https://ra.pe or https://hodlister.co/server-verification.txt,
the server points directly to an ip in the /24 range being used by phishing ElectrumX servers (46.148.231.31) (https://check-host.net/ip-info?host=currentlane.lovebitco.in)

You can also confirm this by connecting directly to the node and attempt to broadcast a transaction.
2020-10-23 02:17:31 +00:00
SomberNight ee24c74f19 lnchan.receive_revocation: tolerate not having htlc fail reason
If we get a revack after reestablish, but the fail_htlc was already
committed in a previous app-session, the fail_htlc will not be re-sent and
we will not have the reason (as it's not persisted).

fixes #6675
2020-10-23 02:35:20 +02:00
ThomasV 7110fde25d follow-up: fix qt lightning dialog if gossip is not started 2020-10-22 19:20:22 +02:00
ThomasV f155f3aff5 start lngossip if instantiated; this saves a boolean 2020-10-22 18:48:27 +02:00
ThomasV 5d90790726 wallet.py: always instantiate lnbackups 2020-10-22 18:35:49 +02:00
bitromortac 1855bcb17d qt: reflect running gossip in lightning icon 2020-10-22 18:05:51 +02:00
bitromortac 750147d931 kivy: display warning when first channel is opened 2020-10-22 18:05:51 +02:00
bitromortac 6a0ada3f79 qt: display warning when first channel is opened 2020-10-22 18:05:51 +02:00
bitromortac bdca7be1c7 kivy: remove enable/disable button 2020-10-22 18:05:51 +02:00
bitromortac bba995ada3 qt: remove enable/disable button 2020-10-22 18:05:51 +02:00
bitromortac 3c3a59c517 cli: remove enable/disable lightning 2020-10-22 18:05:51 +02:00
bitromortac 3314c149f2 qt: show channels tab by default if ln wallet 2020-10-22 18:05:51 +02:00
bitromortac 42df51f2dd qt: remove node suggestion 2020-10-22 18:05:51 +02:00
bitromortac b543874670 gossip: start gossiping when channel is open 2020-10-22 18:05:51 +02:00
bitromortac 4efcb53d24 network: load gossip db early
The gossip db is loaded early when the network is started to save
time when the gui is locked and a wallet not yet loaded. Side effects
of the LNWallet to start peering when a channel db is loaded is
circumvented.
2020-10-22 18:05:51 +02:00
bitromortac 6045de759b lightning: enable by default but without gossip
Enables lightning by creating a node private key and storing it in
the wallet. The gossiper is not launched at start up, only if there
are existing channels.
2020-10-22 18:05:51 +02:00
ThomasV edc593a886 submarine swap: add comment to explain witness script asymmetry 2020-10-22 17:24:44 +02:00
SomberNight 08f70420e3 submarine_swaps: describe event-flow for both swap direction in docstr
So that I don't have to figure out every time.
2020-10-22 17:22:35 +02:00
SomberNight 21e46fb147 contrib: add instructions re cross-compiling libsecp to Linux x86
related: #6669

(note that instructions assume this commit as otherwise AUTOCONF_FLAGS is overwritten!)

based on https://stackoverflow.com/a/17748092
2020-10-21 03:27:42 +02:00
SomberNight 914b606cb9 kivy: fix app not even starting
```
  File "/home/user/venvs/electrum37/lib64/python3.7/site-packages/kivy/lang/builder.py", line 654, in _apply_rule
    child = cls(__no_builder=True)
TypeError: __init__() got an unexpected keyword argument '__no_builder'
```

follow-up c70484455c
2020-10-20 14:55:39 +02:00
SomberNight 8ac6d3b17d wallet.get_history: take locks.
Re the check at the end: "history not synchronized" - it's not that it's not synchronized,
rather that the history is changing while being computed.
2020-10-18 22:21:06 +02:00
SomberNight 777095fda8 wallet: simplify get_history
some years ago wallet.get_tx_delta returned Optional[int] but it returns int now
2020-10-18 22:14:52 +02:00
SomberNight f125a06453 wallet: simplify get_wallet_delta 2020-10-18 20:37:29 +02:00
SomberNight da6080421e wallet_db: WalletDB.get_txo_addr now returns dict instead of list 2020-10-18 20:37:25 +02:00
SomberNight e71fa4924f wallet: rm wallet.txin_value 2020-10-18 20:37:21 +02:00
SomberNight 8b2eb83238 wallet: use get_txin_value in get_wallet_delta 2020-10-18 20:37:18 +02:00
SomberNight 55b5335ebb qt tx dialog: always show input amounts if we know them
Previously we would only show input amounts for partial txs.
Now also show them for complete txs as well, if we know them:
we check in the wallet db for the prevtx and read the value for the output.
This is safe as the input commits to the prevout via txid (which commits to the output value).

Also show "from addresses" in more cases in a similar fashion.
2020-10-18 20:37:14 +02:00
SomberNight 82c8c4280f lnworker: add request_remote_force_close which can be used without state
see #6656
2020-10-17 03:59:50 +02:00
SomberNight c3fb79d412 lnworker: make sure to save new channel before we broadcast
see #6656
2020-10-17 03:47:29 +02:00
SomberNight c5da22a9dd network: tighten checks of server responses for type/sanity 2020-10-16 19:30:42 +02:00
SomberNight c70484455c kivy: use our logger, not kivy's; and log more exceptions. 2020-10-16 17:55:40 +02:00
Benoît Verret e66a5bbfc4 Use default sys.ps1 and ps2 as console prompts (#6651)
sys.ps1 and sys.ps2 define the strings used as primary and secondary
prompts in the Python interpreter.

Also fix a rare bug introduced by myself in 7772af6 (#6607) where
spaces at the end of the current line would not be remembered when
switching server.
2020-10-16 15:37:02 +00:00
SomberNight 547b231b80 config: make sure fee_per_kb() returns Optional[int]
electrs sends fee histogram with float feerates
2020-10-15 19:50:59 +02:00
SomberNight ef84716e8b (trivial) kivy: rename title of DSCancelDialog
For an action called "Cancel transaction" it is confusing to have a "Cancel" button
that cancels the action... not sure how to fix -- this is perhaps the least intrusive change
2020-10-15 17:38:41 +02:00
ThomasV aebe77867d prepare release 4.0.4 2020-10-15 17:37:46 +02:00
SomberNight 695ad757c7 frozen deps: don't use colorama 0.4.4
until https://github.com/tartley/colorama/issues/284 is resolved

colorama 0.4.4 does not have a source dist uploaded to PyPI, which breaks contrib/make_packages

this partially reverts 4d0afffbcd
2020-10-15 17:11:33 +02:00
SomberNight 9bc4182924 crypto: check version of pycryptodomex/cryptography at runtime
As these pkgs are often provided by the OS package manager (e.g. apt),
the version limits specified in requirements*.txt and setup.py will never
get applied.
2020-10-15 16:25:06 +02:00
SomberNight e4e6c4fb1b update locale submodule 2020-10-15 16:19:14 +02:00