89912105734175e0f2a5e53eb6165b12055cc2c1 Add macos arm64 binary to bitcoind download (edouardparis)
c21004badb10d00990da088d4df659b25263a23f bump ahash dependency to fix macos build (edouardparis)
Pull request description:
- bump ahash dependency to fix macos build
- ci requires now macos aarch64 for the liana-gui tests on macos, sha256sum is added for bitcoind-26.1-arm64-apple-darwin.tar.gz (https://bitcoincore.org/bin/bitcoin-core-26.1/)
ACKs for top commit:
darosior:
ACK 89912105734175e0f2a5e53eb6165b12055cc2c1
Tree-SHA512: 082b2896abcb600e5e6ab4ec24cd56b4994c843e9a478a7e5e1515dbaa357cfa1714270a1a4b135d17caa9a0ed3bebad714df0f28e3c6a341503238ce6156a7c
860a1ea07467788473f0a83edc4d7a02d8ad3c1a guix: use Rust 1.70 for release builds (Antoine Poinsot)
Pull request description:
This is prep work for #597, which bumps the MSRV of the GUI to 1.70.
We are being pulled over in two different directions when it comes to our reproducible builds. On the one hand we need to target reasonably old glibc versions in order to be compatible with older systems. On the other hand the immaturity of the Rust ecosystem makes us require bleeding edge versions of the compiler. With Guix to get the newer versions of the compiler we need to also bump the glibc version.
This was not a sustainable situation. I was planning for a long time to cleanup our reproducible builds. To create a proper Guix package for both the daemon and the GUI using the build system they provide. I had envisioned this way i could rewrite the inputs of the Guix package to use an older glibc, while being able to bump the Guix time-machine. It would even have allowed us to perform Windows builds inside Guix! And who knows i could even have attempted to perform Apple ones too.
Unfortunately it turned out to be more complicated than that. I couldn't manage to get my package to compile using an older glibc. Some details about some of my failed attempts can be found there: https://lists.gnu.org/archive/html/help-guix/2024-04/msg00056.html.
Instead of wasting more time on this, backport the newer Rust declarations from up-to-date Guix to Guix-of-our-time-machine.
ACKs for top commit:
edouardparis:
utACK 860a1ea07467788473f0a83edc4d7a02d8ad3c1a
Tree-SHA512: ee0a753376b380c5b39d9cefd6ac49c95d818b3233183f6832df256b93fe5627bf5d9193de1340ae12c0e8e8ec8e5c869674e975d5066723d9d38e66a509cbef
9aa0b990a36716954ff30149982d1b5928cc3e57 Add nixGL to gui/shell.nix (edouardparis)
Pull request description:
Nixos 23.11 comes with libc 2.38, this version of libc may not be compatible with some drivers. For now the hack found is to use a community wrapper that detects the requirements and do the link (https://github.com/guibou/nixGL). usage:
nixGL cargo run
ACKs for top commit:
edouardparis:
Self-ACK 9aa0b990a36716954ff30149982d1b5928cc3e57
Tree-SHA512: 08e6c00412038129d482d61eaddaed6e1c237feba373baa16c7e408c6f95cff0ec510b890bd08c37d275fa1b37dc580388fbdd8a01fbbab25afb0a9be8eb2912
Nixos 23.11 comes with libc 2.38, this version of libc may not be compatible
with some drivers. For now the hack found is to user a community wrapper that
detects the requirements and do the link (https://github.com/guibou/nixGL).
usage:
nixGL cargo run
70058e6af056721abff7a5bbdc6e97427b32dc18 bump rust toolchain to 1.76.0 for gui + fix new clippy warnings introduced by 1.76.0 (pythcoiner)
Pull request description:
bump rust toolchain to 1.76.0 for gui + fix new clippy warnings introduced by 1.76.0
ACKs for top commit:
edouardparis:
ACK 70058e6af056721abff7a5bbdc6e97427b32dc18
Tree-SHA512: f640606496e5b5de51618dad115de06023502e2b6980413a4e67f1041147a9347188a3042f1f382a3cc72c3a1e2edecd563012ab4dc10c5a4b616b40631dd26f
07b47e46db2a8c00d4e7a1ae6004113f87ed758a gui: use tokio::sync::Mutex for embedded daemon (edouardparis)
7b70c8434a978a9235099be2640e292a5debe329 Use async-trait for daemon (edouardparis)
Pull request description:
This a preparatory work in order to have a lianalite backend connection to satisfy the Daemon trait.
This PR also allows us to use tokio::sync::Mutex for the embedded daemon which goes great with the iced tokio runtime.
ACKs for top commit:
edouardparis:
Self-ACK 07b47e46db2a8c00d4e7a1ae6004113f87ed758a
Tree-SHA512: 2d48b07735dc03f127bdddecdd0a4d4f436b2b95d9fccdfcb113ef00c5b8998361606370fdadce7fdee94240b81697704925538cd69904b5a7cbaf3fd03b05cc
1c99376860458f350c3289cd995716aca96c4d87 gui(app): cache unconfirmed & confirmed coins only (jp1ac4)
daf9f85cfd3ef77698773f9c86763f4bb5122b6a gui(spend): filter for unconfirmed & confirmed coins (jp1ac4)
982220da030d7f4f001374b54345c4703891a3ba gui(home): filter for unconfirmed & confirmed coins (jp1ac4)
85b053ff90d7eb679cd2c1e72a59249b3796400f gui(recovery): filter for unconfirmed & confirmed coins (jp1ac4)
c9fcfae9d46b81a56b731d95a51fa1e3ea812287 gui(recovery): filter coins by psbt outpoints (jp1ac4)
4509bd6baf380c59363a2042fad28796bd0b09ab gui(coins): filter for confirmed & unconfirmed (jp1ac4)
685f83bd0eef46d1448cdc2caf4eef2a7fa09b71 gui(transactions): remove unused list_coins (jp1ac4)
21f87047ac013c22bd405de584d655ad9cdb76f8 gui(transactions): filter coins by tx outpoints (jp1ac4)
ddd1e84700642abbe43d2086de66bcf6d43741fa gui(psbt): get conflicting txs from filtered coins (jp1ac4)
4641d9eb7bd5fd2f8b8ed053601ff296965ea552 gui(daemon): filter coins using spend txs prev outpoints (jp1ac4)
aa578ba1fd846e28ed4566be9069e35a5c22dc43 gui(daemon): filter coins for pending txs (jp1ac4)
46121590c36947d8eac2be4e9989e0b4e8615235 gui(daemon): filter outpoints from txs inputs & outputs (jp1ac4)
f3fdb968275db3987d7afaee3b1ba84e0020f8a9 gui(daemon): extract common function for historytxs (jp1ac4)
6c7ca2ccaebd8acd6629c7faf8e418cb50128677 gui(daemon): add optional filter to `list_coins` (jp1ac4)
Pull request description:
This is to resolve https://github.com/wizardsardine/liana/issues/677.
As well as adding the filters to the daemon interface, I've applied filters in separate commits to different sections of the GUI.
This PR builds on changes from https://github.com/wizardsardine/liana/pull/958 and https://github.com/wizardsardine/liana/pull/965. The latter is required when filtering for pending transactions so that a coin whose spending txid changes (e.g. due to RBF) remains as spending.
ACKs for top commit:
edouardparis:
ACK 1c99376860458f350c3289cd995716aca96c4d87
Tree-SHA512: c8b9c68a8344df1dbb04b22e315234dec7ae0c18bfc697f88296d3a4b5e7276a48005db6caf1a0b89a23e174f72118ad10945118be8cd96fbee20ba79c12d721
We are being pulled over in two different directions when it comes to
our reproducible builds. On the one hand we need to target reasonably
old glibc versions in order to be compatible with older systems. On the
other hand the immaturity of the Rust ecosystem makes us require
bleeding edge versions of the compiler. With Guix to get the newer
versions of the compiler we need to also bump the glibc version.
This was not a sustainable situation. I was planning for a long time to
cleanup our reproducible builds. To create a proper Guix package for
both the daemon and the GUI using the build system they provide. I had
envisioned this way i could rewrite the inputs of the Guix package to
use an older glibc, while being able to bump the Guix time-machine. It
would even have allowed us to perform Windows builds inside Guix! And
who knows i could even have attempted to perform Apple ones too.
Unfortunately it turned out to be more complicated than that. I couldn't
manage to get my package to compile using an older glibc. Some details
about some of my failed attempts can be found there:
https://lists.gnu.org/archive/html/help-guix/2024-04/msg00056.html.
Instead of wasting more time on this, backport the newer Rust
declarations from up-to-date Guix to Guix-of-our-time-machine.
52cbc3ee386973c12d002da3a688266994261312 gui: require valid network to proceed (jp1ac4)
2099866a60b5b9144bcb108ae17bfbb39d47fd90 gui: remove step to back up descriptor (jp1ac4)
Pull request description:
This fixes#791 which is regarding the "Participate in new wallet" steps.
The previous step requires the descriptor and so no need to back it up.
I also fixed an issue where it was possible to click Next with an invalid network selected.
ACKs for top commit:
edouardparis:
ACK 52cbc3ee386973c12d002da3a688266994261312
Tree-SHA512: 762122b36260bca9e06b6971a941a91df23051affe1039ca74dc7c31ae96283f09f579fb4a8adbb71efe16bd4c64e96fbd5ae9f6dd3304addcaf142cdab3941b
43ecd94a46a8abf82a6882e741aa1db2fd0abd7c spend: change parameter type for rbf (jp1ac4)
6376909ea1f9cb172558f8ae470a709b18757e20 commands: remove rbf rule 4 logic (jp1ac4)
936d7e958567608a46e91c21699d611ca5eced1d spend: bump bdk_coin_select to 0.3.0 (jp1ac4)
Pull request description:
This is to resolve#923.
The `score` method of the `LowestFee` metric has been fixed upstream and so our temporary partial fix from #867 is no longer required.
The `min_fee` parameter of `select_coins_for_spend`, if positive, now ensures that RBF rule 4 is satisfied. Accordingly, it has been renamed to `replaced_fee` and made an `Option`. We could potentially have used the `SpendTxFees` enum as a parameter directly instead of `feerate_vb` and `replaced_fee`, but `feerate_vb` is currently `f32` rather than `u64` and so I kept them as separate parameters.
Thanks to how the `replaced_fee` parameter works, the fee iteration approach used in `rbf_psbt` to ensure the replacement satisfies [RBF rule 4](https://github.com/bitcoin/bitcoin/blob/master/doc/policy/mempool-replacements.md#current-replace-by-fee-policy) is no longer required.
`base_weight` is no longer stored in `CoinSelector` and instead the output weights are stored in `Target`. This means that the `output_weight` of `DrainWeights` no longer needs to take into account a potential change in output count varint as this is now handled by bdk_coin_select.
The min value for change no longer includes the threshold itself and so we have to subtract 1 from our change policy's min value (see https://github.com/bitcoindevkit/coin-select/pull/14#discussion_r1439665103). We already have a [test](https://github.com/wizardsardine/liana/blob/master/src/commands/mod.rs#L1653-#L1654) that fails without this subtraction as it expects a change output of 5000 sats.
ACKs for top commit:
darosior:
ACK 43ecd94a46a8abf82a6882e741aa1db2fd0abd7c
Tree-SHA512: a064bafef13abefcb8c4b640cfc4017eb288c62891a8b486add33c1499e7061bf262d6aadabbdd4c191ed9b81e3931b382c8c8445e6bb9c1b052380caf14b3f9
The `score` method of the `LowestFee` metric has been fixed
and so our temporary fix is no longer required.
The `min_fee` parameter of `select_coins_for_spend`,
if positive, now ensures that RBF rule 4 is satisfied.
`base_weight` is no longer stored in `CoinSelector` and
instead the output weights are stored in `Target`. This
means that the `output_weight` of `DrainWeights` no longer needs
to take into account a potential change in output count varint.
d722ca1e4d9008df5bcf5cea3af531ed8de75209 Use text size constant (edouardparis)
Pull request description:
this is preparatory work for #597
ACKs for top commit:
edouardparis:
Self-ACK d722ca1e4d9008df5bcf5cea3af531ed8de75209
Tree-SHA512: 882fefe1685e34b252e6ca0dba9e2519b4889448cb410c3df542b2ca111baccbd2697b6ca191caa069ffec55dbdc0182c76de75a36f321f4927b6e81229db07b
744d8f856cdf0f3e3aa94f26e85e49202516244e doc/USAGE: point to our website for download (Antoine Poinsot)
Pull request description:
No need to update this document for every single version anymore. Also, Github doesn't let us access how many people download the binaries.
ACKs for top commit:
darosior:
self-ACK 744d8f856cdf0f3e3aa94f26e85e49202516244e -- only doc
Tree-SHA512: 0204bf830026acbea84b1b7f456e1735fd1e951260b904f8b06fff47dc0f1a218efc155e014faaa6df34e2eaffd4b7742aa37e09aca3c4c97eeb27cf17f30f57
ed86696daf556533592b3285c70a2386a84ece71 tests: remove print statements (jp1ac4)
5d6ca97e4cf2e1778552d4980291eca1d2cc57c7 spend: reword warning messages (jp1ac4)
8078a2791a81eecd7f662e4fd43965e185c1737e tests: use function to calculate additional fee (jp1ac4)
deb75884bfe8a47c9143fd7006960c81d956d6d4 tests: run black (jp1ac4)
f14c3a7f75f4483e83da5a6dfd2dc0cb3624133a spend: fix typo in enum variant (jp1ac4)
Pull request description:
As discussed with @kloaec, this PR rewords the warning messages when creating a spend.
I didn't include the selected feerate value in the updated messages as that would have required more code changes, albeit fairly simple ones, beyond the message wording itself. I can add those here if required or otherwise in a follow-up.
Here's a screenshot showing the new warnings:

ACKs for top commit:
darosior:
ACK ed86696daf556533592b3285c70a2386a84ece71
Tree-SHA512: e8f72206ccba74609e1a8b4a9dccd5975534de7a392d24e54ab8bb5ca6d4d38a75864e148e463e66ffda48fef1a68ab0e953c6fe24a4e6bf28eca9535135f7e4
f22f7291d09268108a52324d0e4f8547023f8570 doc: final cleanup on the README (Antoine Poinsot)
4bf54f19ae6bf1621f70af446b91f1c9241937e0 doc: expand a bit on starting using the software (Antoine Poinsot)
245aeb1e4cea351cbe5a23954d7eeac96a1e4fc0 README: mention LianaLite (Antoine Poinsot)
95391fc19f8f524f36c34f69a34dcb7dcfe592bc doc: split up the README in multiple documents (Antoine Poinsot)
Pull request description:
ACKs for top commit:
darosior:
self-ACK f22f7291d09268108a52324d0e4f8547023f8570 -- Kevin had a look
Tree-SHA512: dd0740b94e30565d85b93c81aee126d9c02abe7c48e1101bb7056ecd14748cc04cd096cae01944322ba512c4b7c100e62d564626ed28c62fecfbbdc34dfeb054