The Version struct is used across the software
to display the release version. A release version
does not include patch number as we increment
only the major and the minor during a new release.
For very small patch that does not change the
API and does not require a new release, then the crates
Cargo.toml version patch number will be incremented.
3d6a22ea05df70d6f0c11f2f00c85dc16975ad28 feat: add rpc command to list revealed addresses (Michael Mallan)
4945dba7c066d1434fa38a09a955339b7182e693 feat: add command to list revealed addresses (Michael Mallan)
75f37708b3b1f6a89e0f5488c95618a07356f166 test: implement methods for getting/setting labels (Michael Mallan)
16b96b5456b46cd3703d4829b24746c8a489b3ed style: apply black formatting (Michael Mallan)
Pull request description:
This implements #1678.
The command parameters differ slightly from those described in the issue:
- instead of a `keychain` enum parameter, I used `is_change` to control whether receive or change addresses are returned.
- I used an optional `continue_from` parameter to control pagination. The value to pass in the next request is provided by the previous response. If no value is provided in the response, there are no more addresses to list. If no value is set in the request, the addresses will be returned starting from the last revealed address.
Setting the positional argument for `continue_after` as `null` will be treated the same as omitting it (for other RPC commands, a `null` value results in a parsing error).
ACKs for top commit:
pythcoiner:
utACK 3d6a22e
Tree-SHA512: 0efa93bc40d0751cbe64570f9789b3a701e0bc5aab982da9ed9f21117a2eea073a81388370d56a9021c0ff87b6cbaec7338339427e6c879e8e97eababb107f57
With the multiplicity of directories, liana directory,
network directory and in the future per wallet lianad
directories, passing a simple type PathBuf does not
transmit to the contributors the information about
which directory each module works with.
This commit introduces wrappers around PathBuf
to give this information and link parent directories
to their child directories.
A new field data_directory is introduced in lianad configuration, it
resolves directly to the path of the wallet datadir without the per network
reasoning. The previous data_dir field is kept for backward
compatibility for already generated configuration file.
d637564a117947bd0493eba9bf61a1d84f893aa5 lianad: in update_spend_tx() work on the db_psbt instead of the imported one (pythcoiner)
Pull request description:
This PR partially fixes#1581.
Previously the imported PSBT we taken as base and signature added from the PSBT stored in DB, this create issue when the imported PSBT is supplied by a signing device that trim the PSBT (in QRCode context for instance).
This PR change the logic by taking the PSBT stored in DB as base and add signatures from the imported PSBT.
~~Note: the same logic change must be done on `liana-backend`~~
edit: review the logic on liana-backend, nothing seems to be change on this side, validated by a test by importing a psbt from krux trough Krux(QRCode) => SeedQReader => file => import
ACKs for top commit:
edouardparis:
ACK d637564a117947bd0493eba9bf61a1d84f893aa5
Tree-SHA512: 2a14f2387f3ab74e93f4e5b67ff48011bea945bfa897e21f14be40bf40b52460c921c4dcb92899ce46f1aed6096ec8bd97b423341c1660dd3cd081146080572c
The database should store the last used/revealed derivation index.
Docstrings have been updated accordingly.
Getting a new address requires that the database value first be
incremented.
When listing addresses without specifying a count, all
used/revealed addresses should be returned.
This uses a modified version of bdk_electrum 0.15 (corresponding
to BDK tag v1.0.0-alpha.13) that enables the use of the ring
provider in rustls.
The default aws-lc-rs provider breaks the reproducible build.
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.
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.
6b914fd2491841bb3daa41f59641677c10cc880b bitcoind: parse descriptor before comparing strings (Michael Mallan)
652eb5b799c8d2ed9f65ab24c0101af3e09905f8 refactor(bitcoind): extract logic to function (Michael Mallan)
Pull request description:
The `startrescan` command uses the response from bitcoind's `listdescriptors` RPC method to confirm that the rescan has started.
This check includes a string comparison that can fail in some cases (Taproot descriptors with a spending path having only a single key) as the descriptor string returned by bitcoind may contain both `h` and `'` , whereas Liana's descriptor string only uses `'` (as per the `Descriptor::to_string()` method).
This PR changes the check to first parse each descriptor string as a `Descriptor` object to avoid any `h` / `'` mismatch issues.
ACKs for top commit:
edouardparis:
utACK 6b914fd2491841bb3daa41f59641677c10cc880b
Tree-SHA512: 14d3eaef950a490020af2157e03adcbd1cc821c92750f21e682ba74bc4fd3531552a7ba0f70144792d5bbc18546b919567f181e468e2b196c6c473ca45d9d9de
We previously used unconfirmed change as a best-guess way of
identifying those coins from self, but now we have the
`is_from_self` field we can use it directly and be sure we only
select coins that are fully under our control.
The new columns in the transactions table will be populated for
new transactions by the poller, while existing rows will be
updated in a subsequent migration.
New and existing coins will all have `is_from_self` set to false
due to the default column value.
None of these columns will be used by the wallet at this stage.