83 Commits

Author SHA1 Message Date
edouardparis
b6971fdd64 Prepare version 12.0 2025-07-22 10:38:42 +02:00
edouardparis
a90d894af9
Merge #1740: Smart screen size
b1e06ee10638895e2bcf7ac41bd5933048e2ca34 global_settings: do not create file if not existing & empty (pythcoiner)
a0b74709f33d7eb84c2c9692d2d079096891c283 settings: add a tests for GlobalSettings (pythcoiner)
c53ace8b0bb2e006221ae2faf013fe7ab0b1e16d gui: store the window size in global settings only on shutdown (pythcoiner)
13652e3c33f1844440831761d01faa7bfc499d0e settings: add a lock to read/write global settings (pythcoiner)
b696f50f8c9b4938e9a43e0bcb6b77db82c5b002 gui: apply previous screen size before launch (pythcoiner)
2dc838f85c0de563ee19d28332f7c60f4a9c094c gui: be smart with window size at launch (pythcoiner)
089992b9475d4d9b2868399afeb1ceadf7ee37f5 settings: add window_config to GlobalSettings (pythcoiner)
cb8a421571bebb2fe0ac206175682167b7b1b64c settings: rename global::Settings => global::GlobalSettings (pythcoiner)
bf666539bfed7a75a0dfc2d34ac377b1b094278b gui: implement State::datadir_path() (pythcoiner)

Pull request description:

  closes #1546 following last requirements:

  > Currently the consensus has been on the following solution: resize the window according to a logic similar to https://github.com/wizardsardine/liana/pull/1695 at the first launch and then remember the last size for following launches of the application.

  Summary of the feature introduced in this PR:
  - The first time Liana launch, the window is maximized in order to "guess" the maximum usable size on the monitor, and then we apply [this logic](https://github.com/wizardsardine/liana/issues/1546#issuecomment-2750974470) for deciding the default size.
  - The default size is recorded in `global_settings.json` (so this aplly to ALL wallets)
  - On nexts Liana launch, the window is resized to the value contained in `global_settings.json`

  I added something not clearly defined: if the user resize its screen, we reapply the last screen size at startup.

ACKs for top commit:
  edouardparis:
    ACK b1e06ee10638895e2bcf7ac41bd5933048e2ca34

Tree-SHA512: 1ffb0ef852846d5599a747d619a19a2ee2b47ecbb26172de95ffbf6ad2d0c65851b3236070081e81b2503914e6916abc3ed59899131a8a475f6d07662a951d0e
2025-07-21 16:44:27 +02:00
edouardparis
144fcaf28e
Merge #1765: feat: add links with info about changing backend or node type
ceec4f9e79cd464f5ea39c0d85f92e199b70a491 feat(gui): add links with info about backend/node settings (Michael Mallan)
0d48f8efee45eee05156b3acea8d8a9f2adbdd1e refactor(installer): fix typo in clipboard enum variant (Michael Mallan)

Pull request description:

  This implements #1755.

  TODO:
  - [x] Update URL to relevant support page

ACKs for top commit:
  edouardparis:
    tACK ceec4f9e79cd464f5ea39c0d85f92e199b70a491

Tree-SHA512: 0bb7a2ea9627953d94d5ae05059ad74646facb5521be3e874b763e52c7eeff2c61784aef81cf84707a9dede35380fa37b1f1f52e30c078dfba55ed2f45efddfa
2025-07-21 14:38:48 +02:00
edouardparis
d0f48f5e16 bump async-hwi 0.0.29 2025-07-21 10:55:42 +02:00
edouardparis
117dc6c145 wip: bump bitbox-api v0.9.0
waiting for upstream merge of async-hwi#112
2025-07-17 11:16:04 +02:00
Michael Mallan
ceec4f9e79
feat(gui): add links with info about backend/node settings 2025-07-17 08:29:01 +01:00
pythcoiner
13652e3c33 settings: add a lock to read/write global settings 2025-07-12 06:44:45 +02:00
edouardparis
9f1de060eb Add pane tabs
User can add and remove wallet with tabs
2025-07-04 16:45:13 +02:00
pythcoiner
df1fb7f8f5
allow to connect to an electrum server w/ a self signed certificate"
This reverts commit b7b52d73bec0522af6dd08e9018868841b9363ca.
2025-06-11 12:19:23 +02:00
Michael Mallan
dd864905cd
bump bdk_electrum to latest commit 2025-06-09 14:23:25 +01:00
edouardparis
a9d417bc39 Prepare v11.0-dev 2025-05-26 11:11:46 +02:00
edouardparis
0488ed37a3 feat: asynchronous management of internal bitcoind 2025-05-06 10:19:58 +02:00
edouardparis
1746314e7d Add liana-connect cache file 2025-05-02 09:15:10 +02:00
edouardparis
9f619f2a79 bump async-hwi 0.0.28 2025-04-28 18:30:15 +02:00
edouardparis
c5a3c11aa3 cargo update miniscript 2025-04-01 09:08:51 +02:00
pythcoiner
c4b037a08d
lianad: drop defaults features for bip329 crate 2025-03-21 17:39:42 +01:00
edouardparis
88cebffb03 Prepare v10.0 2025-03-21 16:12:32 +01:00
pythcoiner
d0d7007e83
import: implement import_backup() 2025-03-19 07:26:02 +01:00
pythcoiner
38eed1b881
lianad: add feature to dump labels in BIP-0329 format 2025-03-15 09:59:18 +01:00
Michael Mallan
7a1d87fb4c
use ring provider with rustls in electrum client
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.
2025-02-24 17:23:59 +00:00
edouardparis
64dc91b578 fork widget text_input 2025-02-12 16:22:43 +01:00
edouardparis
8abf0d9058 bump async-hwi 0.0.27 2025-02-06 16:23:10 +01:00
edouardparis
a4adab5cd1 fix subscriptions 2025-02-03 16:24:19 +01:00
edouardparis
ad297d1ef8 iced v0.13 2025-02-03 15:47:38 +01:00
Michael Mallan
1859a2d5f0
bump bdk_coin_select to 0.4
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.
2025-01-30 15:45:15 +00:00
Michael Mallan
c5f5284f57
upgrade bitcoin to 0.32 and related
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.
2025-01-27 14:36:29 +00:00
edouardparis
d0fefc37f4 Prepare v9 release 2025-01-07 11:22:24 +01:00
edouardparis
0d903d3cee bump async-hwi 0.0.25 2025-01-03 14:07:20 +01:00
edouardparis
b7b52d73be Revert "Merge #1500: gui: allow to connect to an electrum server w/ a self signed certificate"
This reverts commit 2d2d080888f5c2a0fd82d6c4a4009a254b2dbcb2, reversing
changes made to cfe15b360d0f9a40d0de2ca00bdd1530e6e6c8e9.
2025-01-02 15:31:30 +01:00
edouardparis
2d2d080888
Merge #1500: gui: allow to connect to an electrum server w/ a self signed certificate
308355322cd62b4e98a91de40c92070c3a8ae011 ci: add openssl to 'windows_latest' (pythcoiner)
09bb450b1fbd39aabec61719b9e67e12180641ba gui: allow user to not validate the ssl domain for an electrum server (pythcoiner)
efb23300dae06702459e07334ab458bfcc54b3e6 lianad(electrum): add an option to not validate SSL domain in order to work w/ self signed certificates (pythcoiner)

Pull request description:

  closes #1300
  The issue about connecting to an electrum certificate using `rustls` have been fixed [upstream](https://github.com/bitcoindevkit/bdk/issues/1598) but in order to beneficiate from it we have to update `bdk_electrum` and `rust-bitvoin` dependencies.
  Meanwhile, this PR introduce a workaround: the initial issue is related to `electrum-client` `use-rustls` feature and `use-openssl` feature is not reexported by `bdk_electrum` but we can use `electrum-client` crate directly and use `use-openssl` feature by this way:
   - [x] use `electrum-client` directly w/ `use-openssl`
   - [x] add and option to opt-out of ssl domain validation
   - [x] let user change the `validate_domain` values in `Settings` menu.

  ![image](https://github.com/user-attachments/assets/8314b89b-bfd2-4dc8-b331-ee980c3b24d5)

   Note: ssl://testnet.aranguren.org:51002 electrum server can be used to test this PR

ACKs for top commit:
  jp1ac4:
    ACK 308355322c.

Tree-SHA512: 28139ef6c6073045b413303c725c0d6c83b193d89c7b39edfb1d10108a1551c1ac9fdf20c941bc770d62f0075fb47ffa305b4975ea38e1840ae3d631ca9e39e6
2025-01-02 10:24:42 +01:00
pythcoiner
efb23300da lianad(electrum): add an option to not validate SSL domain in order to work w/ self signed certificates 2024-12-31 15:18:21 +01:00
pythcoiner
22f48753a3 gui: add and export transactions feature 2024-12-23 12:29:16 +01:00
edouardparis
74820d97e9 Split into lianad and liana crate 2024-11-19 18:01:25 +01:00
edouardparis
b0fbe0839d liana-gui: import liana with directory path 2024-11-19 10:43:07 +01:00
edouardparis
a636cda2f7 liana: remove the daemon feature
We expect user to use systemd service to manage a daemon or
to handle their process by themself.

The json-rpc server is exposed only for unix systems through
unix sockets, it is moved to its own module while the implementation
for windows is marked as TODO.
2024-11-18 18:36:23 +01:00
edouardparis
f28b40fe8d fix fuzz, build and tests 2024-11-15 13:26:13 +01:00
edouardparis
95e97bc7dc Bump liana version v8 2024-11-05 11:11:20 +01:00
edouardparis
aa1ca64816 Bump liana v7.0 2024-09-12 09:31:21 +02:00
jp1ac4
c7ee862020
bitcoin: add electrum backend
This includes changes from darosior's comment in
https://github.com/wizardsardine/liana/pull/1222#issuecomment-2324894986.
2024-09-05 14:55:45 +01:00
Antoine Poinsot
168112de10
Bump version to 6.0 2024-06-27 15:53:30 +02:00
edouardparis
c21004badb bump ahash dependency to fix macos build 2024-05-02 12:07:08 +02:00
jp1ac4
936d7e9585
spend: bump bdk_coin_select to 0.3.0
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.
2024-04-05 21:46:06 +01:00
Antoine Poinsot
d9337121ab
Bump Liana version 2024-03-22 16:42:33 +01:00
Antoine Poinsot
ce026a62e6
Update rust-bitcoin and rust-miniscript
The most notable change is rust-bitcoin's change in the serialization of
transaction with no input. It now accounts for the segwit marker even
for those. The base tx weight in coin selection had to be adapted to
handle this.

See https://gnusha.org/bitcoin-rust/2024-01-04.log for details.
2024-01-11 10:45:36 +01:00
Antoine Poinsot
2bce4c525d
Cargo: bump jsonrpc version to 0.17
It now finally accepts an option as argument.
2024-01-04 14:32:58 +01:00
Antoine Poinsot
65c9e389bb
Cargo: bump rusqlite to 0.30
This gives us bundled SQLite 3.44.0. Notably this patches CVE-2022-35737
but it shouldn't affect us.
2024-01-04 14:32:58 +01:00
Antoine Poinsot
84e8a2ae86
Cargo.lock: update minor dependencies after MSRV bump
Took care of keeping dirs pinned to avoid the dirs license shitshow. See
e169da7af9 (r111303146)
for more.
2024-01-04 14:32:57 +01:00
Antoine Poinsot
35e50b4f38
Bump lianad version to 4.0 2023-12-12 15:10:50 +01:00
Antoine Poinsot
36700c4759
Cargo: use the published bdk_coin_select 2023-12-05 10:00:09 +01:00
jp1ac4
cfa0f91dd3
commands: auto-select coins if none provided
When creating a new spend, if coin outpoints are not provided,
then coins will be selected automatically.

This automatic selection is such that the transaction fee is
minimized, taking into account the cost of creating any
change output now and the cost of spending it in the future.

If change is added, it must reduce the transaction waste and
be above the dust threshold. This same policy is applied also
in the case of manual coin selection, replacing the previous
logic for determining the change amount. This ensures that
creating a spend with auto-selection and another with manual
selection using the same auto-selected coins will give the
same change amount.
2023-11-14 13:32:53 +00:00