e8d2fe2717583c071fc878b6d3f1fdb42c120bed send max from all owned coins only (Michael Mallan)
021c8e2a43239c39fffac26dc2f8a04eda3efda0 gui(spend): improve insufficient funds handling (Michael Mallan)
1b33e74a7a8b1d185a3aaea84a3ec6520ee05976 refactor: add `coin_is_owned` method (Michael Mallan)
Pull request description:
This is to resolve#1326. In case of insufficient funds when creating a spend, the selected coins will be updated to correspond to the missing amount. Previously, no changes were made to selected coins.
Furthermore, if a user selects the max option for a recipient, only owned coins (confirmed or unconfirmed from self) will be considered rather than all coins, since unconfirmed coins that are not from self should only be used if the user has selected them manually.
ACKs for top commit:
edouardparis:
utACK e8d2fe2717583c071fc878b6d3f1fdb42c120bed
Tree-SHA512: 57869e04d486bb1debab323453183536f3d0ef65522a26aeb2be205262da52881f45a47035a8d0ad62c2e28366e4f23b44df70d41dd8cb017aad29dda651e5ed
Coin selection considers only those unconfirmed coins from self,
and the same should apply when the user chooses the MAX option
without explicitly selecting coins.
Unconfirmed coins that are not from self should only be included
if the user has selected them explicitly.
c17e945fd4bd5b784754e4b8a7c38c5060e37831 ci: use bitcoind version 28.1 (Michael Mallan)
7ad3e3f0d6ff9fe01441d71b6caaed0eb9113e78 ci: use electrs v0.10.6 (Michael Mallan)
Pull request description:
This resolves#1397.
ACKs for top commit:
edouardparis:
ACK c17e945fd4bd5b784754e4b8a7c38c5060e37831
Tree-SHA512: b1a9765a8111c5a1b6a54a77972cfda882212c7281310523f8f4a7feb9dc601ef2383b3ffb46027188281d398af99b7ce5d4cdc143e0358ea8977ab8d2496c20
1859a2d5f0fe67b22a850d0f7daac43b06bce163 bump bdk_coin_select to 0.4 (Michael Mallan)
Pull request description:
Weights are now stored in the crate as `u64` instead of `u32` and so we can keep our weights and vsizes as `u64`.
The tests have been updated to reflect that coin selection now calculates feerates using a transaction's size in rounded-up vbytes, which fixes#1132.
ACKs for top commit:
edouardparis:
ACK 1859a2d5f0fe67b22a850d0f7daac43b06bce163
Tree-SHA512: 703edd66db85fff0bef34eee282493c371ad7f3ff512f4c0b7c39ee7fc8b2878647c19b81ab31f9d04cbd7d8770455dfcf8929587aa3e98025ce9ccd31027350
Weights are now stored as `u64` instead of `u32`.
The tests have been updated to reflect that coin selection now
calculates feerates using a transaction's size in rounded-up
vbytes.
4d05c1f0ffb9cb9a7dd070342a7d19b9227ab8a2 commands: allow rbf for spending txs without saved psbt (Michael Mallan)
4ce5ca4d80cde79de60d545a7b992907cc5450e4 qa: check psbt must be saved in db to use rbf (Michael Mallan)
Pull request description:
This is to fix#854 when using a local node. If we don't have the PSBT saved in our DB, we query the wallet transaction instead.
The Liana Connect backend will also need to be updated in a similar way.
ACKs for top commit:
edouardparis:
ACK 4d05c1f0ffb9cb9a7dd070342a7d19b9227ab8a2
Tree-SHA512: 2b5425ac2391e7f044c404f7ff449292807b360e14f33b6f2afbcd0c22bb399c371f950e0d43c0ab30e3a4ba76d83d257686de8e862e5dbee909577ed69d7dcd
3ced1dbea9283d814b06b6e60a74f573e94847f7 move the unlocking of bb to a method (edouardparis)
Pull request description:
This is preparatory work for #1550
ACKs for top commit:
edouardparis:
Self-ACK 3ced1dbea9283d814b06b6e60a74f573e94847f7
Tree-SHA512: 1ff5aef26ed13446750a5f1c339d47b35a15227df98bb57321f81520294f35fd23fd226f3ccf515a56f07b8ec5b4f1d9c0fcb854f743d862389ab4605afcd3df
c5f5284f57e37e578cc3001a7da1790c724437a3 upgrade bitcoin to 0.32 and related (Michael Mallan)
Pull request description:
This is to upgrade bitcoin to 0.32 and related dependencies accordingly.
Note that the bdk_electrum crate has not been upgraded to the most recent version available as the Electrum syncing there takes much longer due to the fetching and validation of Merkle proofs. There are ongoing changes in relation to that (https://github.com/bitcoindevkit/bdk/issues/1699) and so we can further upgrade this dependency once those changes have been completed.
Non-BDK changes to the liana and lianad crates are taken from commit 20ee8b1e7b77cbf65942bc4f083afea95f2d1506 in draft PR https://github.com/wizardsardine/liana/pull/1228, which this replaces.
(Once this PR has been tested and approved, we can release a new version of the async_hwi crate and point to that.)
ACKs for top commit:
edouardparis:
ACK c5f5284f57e37e578cc3001a7da1790c724437a3
Tree-SHA512: 3cb1a2060ecc4c6b9631df0eadf5692ad35495b9303edbb80a437aca60ae062a7227f20ddeb5eb722cf57dd80bfa752372a14d26b8f306844237bfdb5f41e51a
This upgrades bitcoin to 0.32 and related dependencies accordingly.
Note that the bdk_electrum crate has not been upgraded to the most
recent version available as the Electrum syncing there takes much
longer due to the fetching and validation of Merkle proofs. There
are ongoing BDK changes in relation to that and so we can further
upgrade this dependency once those changes have been completed.
Non-BDK changes to the liana and lianad crates are taken from
darosior's commit 20ee8b1e7b77cbf65942bc4f083afea95f2d1506 in
draft PR https://github.com/wizardsardine/liana/pull/1228.
5edbcb9033dc1e5dbf20b43cd0db736aa0222612 ci: reduce number of tasks (Michael Mallan)
Pull request description:
This will reduce some of the overhead of setting up each task.
ACKs for top commit:
edouardparis:
ACK 5edbcb9033dc1e5dbf20b43cd0db736aa0222612
Tree-SHA512: 7360be30fda9bbb567813acbba858bc231d13ede2facc0db8a33cc2e9a21b4542f63a504babc94c19243fd364c2adbe72f4cbce1883ae7cf60c157a5a481909d
ef5291d7e8ebfd4ab14a91197ef5d0bf275586f9 tests: add a note to README.md about running tests in parallel (pythcoiner)
Pull request description:
ACKs for top commit:
edouardparis:
ACK ef5291d7e8ebfd4ab14a91197ef5d0bf275586f9
Tree-SHA512: 23430e65e05c4b54a7a9eae2110a4e17c14952bcd727284805201deedd5eeee36b2a9ebc1a612624e8a2cff3e6943d31515008c65a0b5d4fbb3a34734a3b57dd
a95cfad6d249cffecc25da3d9b31b81946bd297a skip policy compilation when parsing descriptor (Michael Mallan)
Pull request description:
This allows to create a new `LianaPolicy` without checking that it compiles into miniscript. This compilation check is used as a sanity check on the policy in addition to other Liana-specific checks, but this compiled policy is not otherwise used.
When parsing an existing descriptor, we will assume that the policy can be compiled. Otherwise, the method `LianaPolicy::from_multipath_descriptor` ends up calling `LianaPolicy::into_multipath_descriptor_fallible`.
A `LianaPolicy` is created from a descriptor each time we call `LianaDescriptor::from_str`, which is done often, e.g. when updating derivation indices in the DB. Removing the compilation check won't affect the `LianaDescriptor` that we end up with when parsing a string as we already use the `Descriptor` obtained from parsing the string rather than that obtained by compilation of the policy.
This change is particularly important with the upcoming upgrade to miniscript 12.0, which has been found to increase Liana policy compilation times significantly.
An additional option would be to reduce the number of times we call `LianaDescriptor::from_str`, e.g. by passing the descriptor as a parameter rather than reading from DB, but this current change should address the main performance issues.
ACKs for top commit:
pythcoiner:
utACK a95cfad6
edouardparis:
ACK a95cfad6d249cffecc25da3d9b31b81946bd297a
Tree-SHA512: 690d7b6a14387222c08537940556a2bbae46f4b46905411810b494a6debc3958a3963e9003bbe0fecf2c5530c15bcc3737874d59994ab599a5d5db59a5bf332a
This allows to create a new `LianaPolicy` without checking that
it compiles into miniscript. This compilation check is used as
a sanity check on the policy in addition to other Liana-specific
checks, but this compiled policy is not otherwise used.
When parsing an existing descriptor, we will assume that the
policy can be compiled. Otherwise, the method `LianaPolicy::from_multipath_descriptor`
ends up calling `LianaPolicy::into_multipath_descriptor_fallible`.
A `LianaPolicy` is created from a descriptor each time we
call `LianaDescriptor::from_str`, which is done often, e.g.
when updating derivation indices in the DB. The sanity check
of the descriptor previously performed during compilation of
the policy will now be done explicitly as part of the
`LianaDescriptor::from_str` method.
Removing the compilation check won't affect the `LianaDescriptor`
that we end up with when parsing a string as we already use the
`Descriptor` obtained from parsing the string rather than that
obtained by compilation of the policy.
This change is particularly important with the upcoming upgrade
to miniscript 12.0, which has been found to increase Liana policy
compilation times significantly.
An additional option would be to reduce the number of times we
call `LianaDescriptor::from_str`, e.g. by passing the descriptor
as a parameter rather than reading from DB, but this current
change should address the main performance issues.
edd13360ede0114555688cc109298587ea530f35 fix release and sign scripts (edouardparis)
Pull request description:
* Use LIANA_PREFIX var everywhere
* Remove capital letter from macos binaries.
* Add macos to .zip title
ACKs for top commit:
edouardparis:
Self-ACK edd13360ede0114555688cc109298587ea530f35
Tree-SHA512: 9bc6941cf0a0f563b5caec7c924394e6e54a310e0e854409520e01e93d52a3bad8dc5d882b730d4e00f9663fb11a46c7d98965b27244ce61afcdd52d58b12b28
d4f9f38ca0609e87156c7abf31bb80c4b088a4a5 release: remove windows zip (edouardparis)
Pull request description:
The zip was containing only the readme file and the unsigned .exe. It is not really useful for a windows user.
ACKs for top commit:
edouardparis:
Self-ACK d4f9f38ca0609e87156c7abf31bb80c4b088a4a5
Tree-SHA512: 894e2dea205695cc7bd399efb12bbdf9f9b1760b2013b58a8fd83166b31ae60a8aafeac53f50ba61a7baa2cf63eb443621ac2c268d4c56c8fe5294cd5b5935bf
19b7414e7be5d8fd0b89963edc8254616d14ae85 export: list transaction in chronological order (pythcoiner)
Pull request description:
closes#1536
ACKs for top commit:
edouardparis:
ACK 19b7414e7be5d8fd0b89963edc8254616d14ae85
Tree-SHA512: c9442a65b770cf408c79d5fd4d68d025ccb92a7a322f4402e23620aec96f458eb2c30856d47d11fbaa6b03631c1638a655abfc26eedfc1fac60249055f0be27b
130d004e79a1440e3d810ef35082f9671dc1ad81 refactor: do not include cache in message (Michael Mallan)
665c527dd08d027dbf95b22e58d44b1cb29212db fix: set rescan processing to false upon completion (Michael Mallan)
65e002dc528f3951d39e353b87bc531885a943a6 refactor: treat as dyn state to easily add others (Michael Mallan)
Pull request description:
This is to fix#1528.
It updates the `processing` field of the rescan settings each time the cache is updated.
ACKs for top commit:
edouardparis:
ACK 130d004e79a1440e3d810ef35082f9671dc1ad81
Tree-SHA512: 7edd744510edf799ab7f00cceee31e60ce316f3cd0c8377d7693064b4cf0c9ac12520f0c55a3c3305866c3cb98684378640ab2944c0dc76969cac9209ce3bce9
c5b1f73660888fed788c76d13645a1ed2f3b95fa fix fetching of coins txids before migration (edouardparis)
Pull request description:
While directly migrating from v7 to v9, the daemon get a problem and panic because it was using the db_coins query with v9 coins columns.
ACKs for top commit:
jp1ac4:
utACK c5b1f73660888fed788c76d13645a1ed2f3b95fa.
Tree-SHA512: eb450ce68c6f968e3546ce77b2ababd45e196403e20a11d22f70b45bf7d30e89a2a64c23a3cc4a85466bd58d376a0340262c98c3213b2b37ff1ce5a4382c9722