1cbbb8c0befe3c168fbbd34129a2f4f2a8c8726f wallet: load name from settings (edouardparis)
Pull request description:
If an wallet settings already exists, the wallet name attached to the hardware wallet credentials must be use, instead of the new generated one.
close#745
ACKs for top commit:
darosior:
ACK 1cbbb8c0befe3c168fbbd34129a2f4f2a8c8726f -- tested locally and discussed it with Edouard. I can't think of another place where we'd like to use the old wallet name.
Tree-SHA512: a06e64f4ada4fbadb6e132be740b480055113e733d658f4694cfcad15bb2901e6626af211ba5df95f4e08d9cb47080a96e97e29bf1c18e094dfbde6364408ce2
17ca01322e7badd37fd4120e0aeec8d834d0d6df Revert "Merge #722: Only include BIP32 derivations for a single spending path when creating PSBTs" (Antoine Poinsot)
6f5b053ea5af4737885a25573c82d627c299236e Revert "Merge #742: commands: don't add derivation paths for keys from different path but same signer" (Antoine Poinsot)
Pull request description:
#722 pruned the BIP32 derivation paths in PSBT inputs for other spending paths than the one this PSBT was created for. This was to make it possible to use them with the Bitbox (see #722 OP for more details).
These were merged without testing at all whether it would break signing with a Ledger Nano. Turns out it did. Our bad. Thanks to Pythcoiner for finding this bug.
A follow-up PR will add a helper to prune the derivation separately so that it can only be applied to some signers and not all of them.
ACKs for top commit:
edouardparis:
utACK 17ca01322e7badd37fd4120e0aeec8d834d0d6df
Tree-SHA512: 99764fc5c68bc66e8415d72bb9963822ea05f8447c1ec71b50db992f3bf456370e00ae59055c939df1817c0031cdfbbfddbcdae9c448790fdcd67df10589b43d
d8d01df6070bdd470b46de90dfcae4a85f704812 contrib: correct minimum libc version in Debian package (Antoine Poinsot)
Pull request description:
It was 2.34, it should be 2.33.
ACKs for top commit:
darosior:
self ACK d8d01df6070bdd470b46de90dfcae4a85f704812 -- trivial
Tree-SHA512: 0ea2fd6b987636a632dd82e51252f2eb11b194caf6b26d97f897fde7b14fd5da6354a6c02a733d3feaf666363eecfaf4974b64af2deb32247ce360967e8b851a
The call to getblockheader may fail, for instance when bitcoind is
rolling forward its blocks after a crash. It's a pretty edgy case but
instead of crashing restart over and over again.
fbec5e9218b24190c8f0ae1e1a09baf808ac70fa gui: bump managed bitcoind version to 25.1 (jp1ac4)
1808f8f1de5efbb402161829c4bab25a985e733a gui: allow to bump managed bitcoind version (jp1ac4)
Pull request description:
This PR bumps the managed bitcoind version for new Liana installations to 25.1.
The GUI will look for the most recent managed bitcoind version available when starting bitcoind.
Once a new managed bitcoind version is installed, all wallets using managed bitcoind will use this new version, even if a wallet on a particular network was installed with a previous bitcoind version.
The approach taken here may change as part of #690.
ACKs for top commit:
darosior:
ACK fbec5e9218b24190c8f0ae1e1a09baf808ac70fa -- neat PR.
Tree-SHA512: e6067e00e6c55bc112b0d9b873788de7edd2d3157e58ea1bbcbf512d2f2d621629d32c36010e7602e08e2a17f053a8f5690caecab7f86119b6a7b381f7b11df1
This reverts commit 71056982636b408485ab24dab6628a555a6e7924, reversing
changes made to 03c37bd378f4f6bf11d90b224ed1db74b3596eaf.
This reverts PR #722. It turns out the Ledger Bitcoin app needs the
BIP32 derivation for all the keys in the Script, not only for the
spending path used. Therefore always create PSBT with all the BIP32
derivations. We'll add a way to prune them for talking to the Bitbox in
a future commit.
This reverts commit ec0c2426aa5fa6cee2efabd3ee6f175b41c35f64, reversing
changes made to 26d750d09c84734f56c2dc18cb332a232e24fb6d.
This reverts the fixes to the pruning of BIP32 derivation paths when
creating a PSBT, in preparation of reverting the merge of this feature
altogether. This is because always creating PSBT with only the BIP32
derivations for a single path broke the Ledger support.
This makes it possible to bump the managed bitcoind version used
when installing a new Liana wallet.
The GUI will look for the most recent managed bitcoind version
available when starting bitcoind so that existing wallets
with a previous managed bitcoind version will not be affected.
4be74ad496692d371adffcc1b3c868ef6a01cb52 refac hw module and add bitbox support (edouard)
Pull request description:
- Add bitbox02 as possible signer to liana-gui
- Introduce global_settings.json in datadir to keep the bitbox noise config.
ACKs for top commit:
edouardparis:
Self-ACK 4be74ad496692d371adffcc1b3c868ef6a01cb52
Tree-SHA512: e0615e1903baa7faecc25db717f49ed71c23a6afcec607c41ac2045cfb2cfa9a9aa3d3452cc952aeaf72a735d670c56dbf19b239c8d665466a2ecb09fbe222c5
2f2975c2790e83c592cd0ff594d3e8ce8a7c75d9 coinbase transaction outputs may not have valid scripts (edouard)
Pull request description:
close#738
liana-gui v2 also tried to display addresses from transaction outputs to user when clicking on transaction detail.
ACKs for top commit:
edouardparis:
Self-ACK 2f2975c2790e83c592cd0ff594d3e8ce8a7c75d9
Tree-SHA512: 7f5fc374baec773fef848cd104b8acbd34ce19a04f9614d0c446a93ee8b6b976acd98d7494031651a614bef38c0913217865f2086bf19a018ce17f57ef362c57
2e1c54491e96fda79b3831dc0c079c59250fabe0 qa: test der paths in PSBT when desc has duplicate signer (Antoine Poinsot)
8d213d5e31dd47f0c179475e32f5eb86c3773770 qa: correct create_spend functional test (Antoine Poinsot)
cf33228b0d25e79ec8fa855aaac6ebfa5f10da12 qa: don't assume desc xpubs' der path length in finalizer (Antoine Poinsot)
24edaecbdcfc0b6b53ac3355ad22991a8b5de018 commands: don't add der paths for keys from diff path but same signer (Antoine Poinsot)
Pull request description:
When creating a PSBT, we were checking whether the key was for this path by checking its origin. This check would return false positive for keys from other paths but same signer (which shares the same fingerprint).
Instead, check the entire origin for each key to make sure it's actually the one used in the path we are interested about.
Thanks to Edouard Paris for finding this bug.
ACKs for top commit:
darosior:
self-ACK 2e1c54491e96fda79b3831dc0c079c59250fabe0 - only made the test more robust since Edouard's ACK
Tree-SHA512: 3bbd0db9e1be59318f9e0af7b6ebf2d91d919e4946acb3dd02822cd6c0e2b9829a963ff1ecd9b0b0ab780bd46b4f0d120ab80b2f55ee84fbcf848231727b3cac
When creating a PSBT, we were checking whether the key was for this path
by checking its origin. This check would return false positive for keys
from other paths but same signer (which shares the same fingerprint).
Instead, check the entire origin for each key to make sure it's actually
the one used in the path we are interested about.
Thanks to Edouard Paris for finding this bug.
7f3b0b021858cfb2fe914f3ba6b30a39e3ae05ff qa: test a PSBT has only the BIP32 derivations for a single spending path (Antoine Poinsot)
b71bd693d6ea4c1c3567194fc82be43fb70c05bb qa: don't use a static dummy origin for descriptor xpubs (Antoine Poinsot)
a81d39c81a89cdf5e70b9888cbeb3abaf290a365 commands: do not include BIP32 derivations for other spending paths (Antoine Poinsot)
Pull request description:
ACKs for top commit:
edouardparis:
ACK 7f3b0b021858cfb2fe914f3ba6b30a39e3ae05ff
Tree-SHA512: f0e132edf8d653c5575f843b1e85d995f155a2435a6e6257564dc945562df70ec2049c29d77f7580858d9e4a58290b0798f298f77c18255415c4cf26ccc07f33
b88781e62828cc6fc56e49f3ad1ebdeb39788573 remove font bold for labels (edouard)
8e806404c4e12f6d67cef320a4c5485723a0f993 change labels font weight for lists (edouard)
c170f7b25ba704beaa4e37a99302ccb25e0baa77 fix psbt labelling for single payment (edouard)
28aaca919aa7a1afc63a659780c6af063578a5ef gui: update liana:master (edouard)
0873cdb944e0bc4976b0f9dc6208fe68e322f330 disable confirm button if label len > 100 (edouard)
1aae2a52da94b6a3791a7a5b058e9e6a23483089 Add From: txid label for coin selection view (edouard)
07fbc0c1b3f3b55ebd7e684e2cf15032703c54db Attach outpoint and txid labels for single payment transaction (edouard)
bdac902307c25ee02093f369aca9258edacc4a4e Change coin change labelling (edouard)
Pull request description:
tackle most issues of #732, may need another round of external tries
ACKs for top commit:
edouardparis:
Self-ACK b88781e62828cc6fc56e49f3ad1ebdeb39788573
Tree-SHA512: 51ee18d8a064afb6eb96926783f13fd7dc703e3464ff5af5d6f40e15ce86e16d8afd8b5f0ca82030976664101fd340f69a8c7102e88fd2c46d5755a4b0219286
01ca960370b55042cfe364c14aa012f016e1fc2b Delete empty labels when they are updated (edouard)
Pull request description:
This is an alternative to #735. I believe it's slightly better as it's shorter and does not introduce new allocations. I also addressed my review comments from #735.
ACKs for top commit:
edouardparis:
ACK 01ca960370b55042cfe364c14aa012f016e1fc2b
Tree-SHA512: 29819740e10458eb944c94eae732cea5104003c531f9b7374f9461bca30a7a829422856da70fca77fd21bd55105f9d6e018c7654f975922618e424bfbd40be94
176859ed926febfa16055d9e8e8f57ddc72cb9ba commands: add weights before converting to vbytes (jp1ac4)
Pull request description:
The `sanity_check_psbt()` function checks, among other things, that the feerate in sats/vbytes is in the required range. When estimating the transaction size, converting each part to vbytes first can lead to a larger result due to rounding multiple times and therefore a lower feerate, which could fall below 1 and fail the sanity check.
This issue has arisen in #560 when creating a transaction using coin selection.
ACKs for top commit:
darosior:
utACK 176859ed926febfa16055d9e8e8f57ddc72cb9ba -- great catch
Tree-SHA512: 5e4fc795c5977c71a0f02b21c09cd71d59c9412f94bcafd5a4adb429c4ae3a568a25c4174bd305e0be927f06ae4e9be9aef791ffbbee2a7ac1c40740f639ab10
70dea710ae4e4427402120cc8f54516d9f2cf9b4 installer: forbid keys with same master fg in same path (edouard)
Pull request description:

based on #723
ACKs for top commit:
edouardparis:
Self-ACK 70dea710ae4e4427402120cc8f54516d9f2cf9b4
Tree-SHA512: 82ef0cbcdad827ae2df4e15cc86cdb54aab29f959124ad35aee5f3e0ba24e2773279d8be109ee33569681c287dcd066e05df4950ff3a773975546a0991b84000
730409eb5299724cdbe1a4da06d272098a791621 descriptors: prevent using a signer more than once in a single path (Antoine Poinsot)
0a95266cce618f83782d3d30362cb2d383b659bf qa: don't use a static dummy origin for descriptor xpubs (Antoine Poinsot)
Pull request description:
This is necessary to support signers which sign for a single key at once. It also doesn't make any sense to reuse a signer within the same spending path, so rule it out before it creates any new edge cases.
For more about the Bitbox signer support, which motivated this change, see
https://github.com/wizardsardine/liana/pull/706#issuecomment-1744705808.
ACKs for top commit:
edouardparis:
ACK 730409eb5299724cdbe1a4da06d272098a791621
Tree-SHA512: 3fb34f2a85e103ca5f8eeec901c283c649636971f7730743af24b270626a7fdf11f207a8f3535c9ff69ce475f34c69472595219ac97b8cfd5749379c4213a6e5
6dfa04f6c7f6e5649f44ccf1503d9ce6b75d7568 bitcoin: also log the number of verified blocks in the poller (Antoine Poinsot)
b84dbc668c5aeb2560ee2b595c46e42ee89b7f40 commands: don't return 100% sync progress until we're done syncing (Antoine Poinsot)
f687145c1e5865c2e9be9aa7643c64da6f1ee0ff bitcoin: make sure we are *completely* synced before starting up (Antoine Poinsot)
03fe06fd1f1d5c32b4630b40f253d49e3e44b55d descriptors: remove trailing debug trace (Antoine Poinsot)
Pull request description:
Fixes#726. We actually do update our internal state before we are synced but we weren't waiting for the chain to be entirely synced.
ACKs for top commit:
edouardparis:
ACK 6dfa04f6c7f6e5649f44ccf1503d9ce6b75d7568
Tree-SHA512: 0c3a2494b1522d94cb2731e951bca9623fa02824426ab0a526e2a99b0c5433bb11059717ad1873eda778f175bafbbf636dedfaccfae88f217de0d5e677458fc1
757b53ebab43c05a444ce22c8dd666fb367e6ee0 cargo update -p liana (edouard)
aeff735ac320e4c3addb11460869fc0cb0146802 fix unconfirmed payments layouts with labels (edouard)
dbb91464c82bb11be4fab679a673c3695248dd7d fix update labels for pending_txs (edouard)
9edcdd9a4e4170ce48ca656e0e8f36dcbe42ff07 Add labels to change outputs according to main label (edouard)
2354ac9175b5766286852a035c106e44425ffb72 cargo clippy --fix --lib -p liana_gui (edouard)
9db4541952561de8d50bdee35fa7ec737c3e65e8 Add labels support to gui (edouard)
Pull request description:
This PR use the lianad update_labels and get_labels commands.
It also introduce new concepts from talks with Kevin and Antoine:
- User spending is creating a payment, when he does not add multiple recipients anymore, he is doing multiple payment in one bitcoin transaction.
- a transaction that have multiple outgoing outputs (multiple payment) is tagged as a 'Batch'.
ACKs for top commit:
edouardparis:
Self-ACK 757b53ebab43c05a444ce22c8dd666fb367e6ee0
Tree-SHA512: 2208009fcc0ab8f587929a347d191d428156984e87b732fb6efa5f08a3962c85510c82fcdeba687a6d2bd2fa45f5a17384d8a9b709e1407ebbbe0f451fe69e90