SomberNight
0b05edc705
wallet payreqs: trivial clean-up
2021-09-19 17:25:57 +02:00
SomberNight
acbb363240
follow-up prev: some clean-ups
...
re https://github.com/spesmilo/electrum/pull/7492
2021-09-15 16:41:41 +02:00
djboi
604cba8fb6
Added different Sighash_Types ( #7453 )
...
Implements signing for sighash types other than `ALL` for segwit inputs.
fixes https://github.com/spesmilo/electrum/issues/7408
2021-09-07 14:41:50 +00:00
Benoit Verret
f731c38293
Minor style changes
2021-03-21 00:36:23 -04:00
SomberNight
4315fa4371
BIP-0350: use bech32m for witness version 1+ addresses
...
We have supported sending to any witness version since Electrum 3.0, using
addresses as specified in BIP-0173 (bech32 encoding).
BIP-0350 makes a breaking change in address encoding, and recommends using
(and using only) a new encoding (bech32m) for sending to witness version 1
and later. The address encoding for currently in use witness v0 addresses
remains the same, as in BIP-0173; following the BIP-0350 spec.
closes https://github.com/spesmilo/electrum/issues/6949
related:
https://github.com/bitcoin/bips/blob/cd3885c0fb9d140b111ff729294400ff5dcfc8e3/bip-0350.mediawiki
https://github.com/bitcoin/bitcoin/pull/20861
2021-03-17 18:11:55 +01:00
SomberNight
e25602ab3b
wallet: don't put partial tx as UTXO into psbt
...
if there is a chain of unsigned txs, we cannot populate NON_WITNESS_UTXO
closes #7080
closes #7009
closes #6482
2021-03-04 13:20:49 +01:00
SomberNight
6094f2751e
kivy channel dialog: fix unit of displayed feerate
...
The amount shown was in sat/kw, incorrectly labeled as sat/kbyte.
Show sat/vbyte instead.
2021-03-01 17:09:04 +01:00
SomberNight
058d9ab6bb
wallet.bump_fee: add new strategy: decrease payment amounts
...
- Rename bump_fee "methods" to "strategies".
- Refactor strategies so that bump_fee can use any subset of them in any permutation.
- Adds a new strategy which decreases the payment outputs (instead of change).
2021-02-25 15:32:07 +01:00
SomberNight
914eb9989d
wallet: minor clean-up of tx.set_rbf() calls
...
Better to always call it, to make sure inputs have identical sequence numbers.
2021-02-12 04:59:40 +01:00
rage-proof
cb3977798c
add function to determine script-type for all inputs in a psbt ( #6984 )
...
* Add functions to determine the script type from a psbt.
* add a function inside PartialTransaction
* P2wsh uses the witness-script field to save the script.
* Limit the detection of script-types that are not multisig.
2021-02-04 02:52:40 +00:00
SomberNight
bc6f2926f4
commands: add 'freeze_utxo' cmd; to expose this to CLI/RPC
2021-01-22 21:56:11 +01:00
ThomasV
f130cb53ce
bump_dee and dscancel: call tx.estimated_size() after add_input_info().
...
This is a workaround, see the FIXME. PartialTxInput.is_segwit() should
return the correct value, or raise if information is missing.
2021-01-17 17:26:44 +01:00
SomberNight
21f13e21b1
wallet: fix bump_fee and dscancel for "not all inputs ismine" case
...
we fetch the missing prev txs over network
fixes #6551
fixes #6864
2020-12-20 15:29:41 +01:00
SomberNight
bb41ef3450
wallet: (fix) bump_fee sometimes created invalid tx that spent orig out
...
When replacing non-segwit tx, bump_fee in some circumstances created
a tx that tried to spend from the tx-to-be-replaced. There is
explicit logic to avoid this but it only worked for segwit txs.
The change in transaction.py is a no-op, just tried to make it clearer
that the scriptSigs, witnesses are being reset by from_tx().
2020-12-18 19:35:22 +01:00
SomberNight
c81551299e
transaction: put full derivation paths into PSBT by default
...
There are three export options for exporting a PSBT.
The default option previously only put derivation path suffixes for pubkeys
(paths relative to the intermediate xpub), now it puts the full path
(if is known by the keystore).
The "export for hardware device; include xpubs" option works same as before:
it puts both full paths and also global xpubs into the PSBT.
Hence the difference between the default option and the "include xpubs" option
is now only that the latter puts global xpubs into the PSBT.
This change is largely made for user-convenient in mind.
Now exporting a PSBT should be less error-prone: particularly for the
single-signer coldcard with sdcard usage, the default option will now work.
closes #5969
related #5955
2020-12-10 17:39:12 +01: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
zebra-lucky
546c0e1bb6
tx: add deserialize to locktime/version properties ( #6633 )
2020-10-06 15:10:46 +00:00
SomberNight
364fca6a58
transaction: fix regression: witness_utxo was not included in QR code
...
fixes #6600
2020-09-23 15:11:53 +02:00
SomberNight
c4c22312c4
transaction: impl tx.to_qr_data(): move logic from GUI to tx class
2020-09-23 14:57:46 +02:00
SomberNight
7b91da9966
Qt tx dialog: handle "empty" locktime field
...
fix https://github.com/spesmilo/electrum/issues/5486#issuecomment-696276020
2020-09-23 13:31:39 +02:00
SomberNight
13fe8e466d
transaction: simply PartialTransaction constructor
...
rm footgun (see prev commit)
2020-08-26 19:55:05 +02:00
SomberNight
73cf007048
transaction: allow PSBT input to have both UTXO and WITNESS_UTXO
...
- make sure they are consistent
- only keep one of them internally (UTXO), and only serialise with UTXO (not both)
fixes #6429
2020-07-22 02:44:33 +02:00
SomberNight
1849206394
submarine_swaps: small clean-up
2020-06-18 18:18:33 +02:00
ghost43
947af92126
tx dialog: show various warnings if input amounts cannot be verified ( #6217 )
...
see #5749
2020-06-08 14:24:41 +00:00
matejcik
e058ee2957
psbt: always include full prev tx ( #6198 )
...
* enable streaming full UTXOs for all types of inputs
Co-authored-by: SomberNight <somber.night@protonmail.com >
2020-06-03 18:03:12 +00:00
SomberNight
62be1cc367
small clean-up re "extract preimage from on-chain htlc_tx"
...
related: #6122
2020-05-06 03:15:20 +02:00
ThomasV
8ba7e68064
fix #6122 : extract preimage from on-chain htlc_tx
2020-05-03 16:03:27 +02:00
ThomasV
8f41aeb783
Replace wallet backup with channel backups
...
- channels can be backed up individually
- backups are added to lnwatcher
- AbstractChannel ancestor class
2020-04-10 14:45:23 +02:00
SomberNight
968eeebdc0
transaction: follow-up prev
...
makes more sense to special-case deserialize()
and not invoke the extra logic then
2020-03-01 22:08:18 +01:00
SomberNight
8560930bac
transaction: (fix) invalidate ser cache when changing locktime/version
...
we can keep the same API, using @property,
instead of introducing getters and setters
2020-03-01 09:57:59 +01:00
SomberNight
a32af44ff9
trivial clean-up (typing/imports)
2020-02-28 20:27:35 +01:00
ThomasV
15e91169c5
lnpeer: fix json serialization of funding_inputs
2020-02-27 19:51:16 +01:00
ThomasV
6833adf8b6
simplify previous commit (revert changes on transaction.py)
2020-02-26 14:16:21 +01:00
ThomasV
e85fb25146
lnpeer: verify signature in closing_signed
2020-02-26 12:58:40 +01:00
SomberNight
9ab18ea6c9
transaction.deserialize: more sanity checks
...
this is mandated by consensus
https://github.com/bitcoin/bitcoin/blob/99813a9745fe10a58bedd7a4cb721faf14f907a4/src/consensus/tx_check.cpp#L13
2020-02-25 21:14:41 +01:00
SomberNight
6937b87a7c
transaction.BCDataStream: minor fixes
...
- fix read/write_boolean (though unused...)
- sanity check in read_bytes
2020-02-25 20:05:46 +01:00
zebra-lucky
c0be0471f2
fix BCDataStream.read_bytes ( #5991 )
...
* fix BCDataStream.read_bytes
* followup fix BCDataStream.read_bytes: fix TestBCDataStream.test_bytes
2020-02-25 18:58:03 +00:00
SomberNight
aaf174ef3e
lnpeer: cooperative close: verify scriptpubkey matches templates
2020-02-25 17:54:49 +01:00
SomberNight
18c6451518
json_db: only deserialize transactions on-demand
2020-01-19 05:49:12 +01:00
SomberNight
d2f132738a
wallet: only select mature coins by default
...
this is a regression from #5721
Removed the `TxInput.is_coinbase` method as I think it is a confusing API,
instead we now have `TxInput.is_coinbase_input` and `TxInput.is_coinbase_output`.
related #5872
2020-01-02 00:43:49 +01:00
SomberNight
8cf3587aeb
base_encode/base_decode: change to saner API
2019-12-08 06:19:51 +01:00
ThomasV
a6aa97c3e3
Merge pull request #5820 from SomberNight/201912_ecdsa_sig_r_grinding
...
ECDSA signatures: grind low R to match with Bitcoin Core (take 2)
2019-12-06 20:38:46 +01:00
SomberNight
61aebd0f2d
(fix) qt coin selection: signatures for coins would persist in memory
...
Scenario: select some UTXOs in the 'Coins' tab. Create a tx and sign it.
Close the tx dialog without broadcasting/etc (cancel tx).
Signatures would remain for selected UTXOs.
Create new tx -> invalid sigs.
2019-12-06 19:45:55 +01:00
SomberNight
5b88b8667e
also grind ecdsa low R when using libsecp256k1, and fix tests
...
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)
2019-12-05 20:27:55 +01:00
ThomasV
78813dcb7d
Pass make_tx function to ConfirmTxDialog
...
- allow 'spend max' when opening a channel (fixes #5698 )
- display amount minus fee when 'max' buttons are pressed
- estimate fee of channel funding using a template with dummy address
2019-11-14 10:20:19 +01:00
SomberNight
bf8a58c0b4
tx_from_any: strip whitespaces
...
see https://github.com/spesmilo/electrum/pull/5721#issuecomment-551876236
2019-11-08 17:51:48 +01:00
SomberNight
85a4811742
transaction.tx_from_any: recognise even more types, and add tests
2019-11-08 15:01:18 +01:00