2107 Commits

Author SHA1 Message Date
edouardparis
ecce76ab3f
Merge #1432: gui(settings): add a button to copy auth fields & mask password
9679f0f2926e2bc90ba7b8b61f138dcabaf22451 gui(settings): add a copy button for electrum server address (pythcoiner)
46cb154b94b69de87941dd61855e24545003e6cc gui(settings): replace node password by stars(*) (pythcoiner)
523bcbdb1f1e2ca43894e8d5b380178e90bd75be gui(settings): add a copy button to auth fields (pythcoiner)

Pull request description:

  fixes #1160
  ![image](https://github.com/user-attachments/assets/e508010a-4fb1-443d-a615-0dff402eb3e0)

ACKs for top commit:
  jp1ac4:
    Tested ACK 9679f0f2926e2bc90ba7b8b61f138dcabaf22451.

Tree-SHA512: 880e35ade18b614e25b5add8fbc17615504e0b7c35a0cd2e9fbc7861b8d24765a2b2a91bcb68d0d4c6f15bbc41ddccf78fd61890aafd33fd6f5d35355f9725e0
2024-12-20 16:08:04 +01:00
pythcoiner
9679f0f292 gui(settings): add a copy button for electrum server address 2024-12-20 12:19:01 +01:00
pythcoiner
46cb154b94 gui(settings): replace node password by stars(*) 2024-12-20 09:57:17 +01:00
pythcoiner
523bcbdb1f gui(settings): add a copy button to auth fields 2024-12-20 09:57:17 +01:00
edouardparis
7367abcb36
Merge #1503: Introduce lighter struct Payment in home panel
79057a0cd9ea8010e91f9d7ea035a85c1b06bdb1 Do not include self transfer in home events (edouardparis)
790beaa6700b514f6f94b38acb356d4938ab87f5 Use payment model in the home (edouardparis)
b1abce5a244b2fb101bb4faeabadab4ec877ac3d Separate Labelled from LabelsLoader (edouardparis)
0d8f88839eb01d3fce0b71bea955b288ef1c27cb change event selection in home to load model (edouardparis)

Pull request description:

  Some users may have txs with a lot of inputs/outputs. We wrongly iter over them in the view which is the origin of performance issues.

ACKs for top commit:
  jp1ac4:
    Tested ACK 79057a0cd9ea8010e91f9d7ea035a85c1b06bdb1.

Tree-SHA512: 2c66703e35c1e67447cfd50d72e5dcd79ac7e1469e513d082001ec5ec94ca88c6a0a5e65f87e6ceb213e21b43e9bfa2005ca1c63fee4d230d2cd2d1374fd3212
2024-12-19 14:29:21 +01:00
edouardparis
79057a0cd9 Do not include self transfer in home events 2024-12-19 11:02:57 +01:00
edouardparis
790beaa670 Use payment model in the home 2024-12-17 18:15:28 +01:00
edouardparis
b1abce5a24 Separate Labelled from LabelsLoader 2024-12-17 18:15:28 +01:00
edouardparis
0d8f88839e change event selection in home to load model 2024-12-17 18:15:28 +01:00
edouardparis
c9743b4070
Merge #1501: bump msrv 1.80
c07c81659809ad23369fdcb56f3e3615816367e1 bump msrv 1.80 (edouardparis)

Pull request description:

  The update of the reproducible system allow us to bump the minimal rust supported version. Although bumping a MSRV should be conservative, it is a requirement for us if we want to be able to support last https://github.com/iced-rs/iced version and improve the experience of our users.

ACKs for top commit:
  edouardparis:
    Self-ACK c07c81659809ad23369fdcb56f3e3615816367e1

Tree-SHA512: d3f51e45a7a1d0f6cf3d98ae03bf9b44d7d7f0216b58ee1837dc5a2022f12b5c33a369d392391256709bf512d3020ae7a8b864c87f072a13007a4ca6066df2e8
2024-12-17 11:56:16 +01:00
edouardparis
c07c816598 bump msrv 1.80 2024-12-17 10:52:03 +01:00
edouardparis
fec4baeb58
Merge #1491: Enable cross compilation to windows and macos with nix
6b4e7b0521c7328647738b46afd67386273c403e fix reproducible dpkg-deb (edouardparis)
cc083f9be6f6dd2f50a60572d09872913ece5dd0 Remove docker reproducible build (edouardparis)
34e6afd54351178fdfae6eca01ee24e744d21fa1 Add script contrib/release/sign.sh for signing binaries (edouardparis)
a2917c5bd73e230d9b2cb13ec25250bd36b6d5ad Add SOURCE_DATE_EPOCH and TAR_OPTIONS for reproducibility (edouardparis)
2c70aba2d573d80a9b4ed78c0914e3996a6352ca nix build and nix shells for release (edouardparis)

Pull request description:

  The nix build replace the docker build. Sadly zip is not fully deterministic so release_assets may not have always the same hash, but users can still audit the binaries reproducible build.

ACKs for top commit:
  edouardparis:
    Self-ACK 6b4e7b0521c7328647738b46afd67386273c403e

Tree-SHA512: cc66465073aa15c23e941cc41ec03918ee604adb40a3a65de524ff03a1651ababf0d40287f749a03aea9c8c165172b1e9a3b3aaffb120074a152697a0920b2f8
2024-12-17 10:11:38 +01:00
edouardparis
6b4e7b0521 fix reproducible dpkg-deb 2024-12-16 16:53:01 +01:00
edouardparis
cc083f9be6 Remove docker reproducible build 2024-12-16 15:38:08 +01:00
edouardparis
34e6afd543 Add script contrib/release/sign.sh for signing binaries 2024-12-16 15:38:08 +01:00
edouardparis
a2917c5bd7 Add SOURCE_DATE_EPOCH and TAR_OPTIONS for reproducibility
close #1474
close #1479
2024-12-16 15:38:08 +01:00
edouardparis
2c70aba2d5 nix build and nix shells for release
Cross compiling the crates for windows and macos
2024-12-16 15:38:08 +01:00
edouardparis
d9e984af43
Merge #1499: commands: use unconfirmed coins from self for coin selection
091d7728ee33d231fbafb839ac497f86122d0851 commands: use unconfirmed from self for coin selection (Michael Mallan)

Pull request description:

  This is to resolve #1484.

  We previously used unconfirmed change for coin selection as a best-guess way of identifying those unconfirmed 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.

ACKs for top commit:
  edouardparis:
    Self-ACK 091d7728ee33d231fbafb839ac497f86122d0851

Tree-SHA512: 31e3b292e6f2ed293374ba6971f82736fa53f12341f433ffb7b59891d996682eebf031154aed6619f5c3b17fda176e01cccc20fdc523d428b04856bc5d444518
2024-12-16 12:31:59 +01:00
Michael Mallan
091d7728ee
commands: use unconfirmed from self for coin selection
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.
2024-12-16 10:24:19 +00:00
edouardparis
7e2c7ed60a
Merge #1498: [GUI] include unconfirmed coins from self in confirmed balance
715aeb9298d1bac41ab3c904201696ddf9a794be gui(lianalite): use is_from_self from response (Michael Mallan)
8d99981c143b424d660b04b829da17afdfb1608a gui: include unconfirmed from self in confirmed balance (Michael Mallan)
31224ba44369e8eb76f004fefb0ddb4206458f4d gui: set missing fields for new home page (Michael Mallan)
0a4861f409867744c768228889b1107ea2ae8a9a refactor(gui): use common function for coins summary (Michael Mallan)

Pull request description:

  This is to complete #1375, building on the changes from #1483.

  The Liana Connect API response has been updated to include `is_from_self` so this will work for both local and remote backends.

ACKs for top commit:
  edouardparis:
    utACK 715aeb9298d1bac41ab3c904201696ddf9a794be

Tree-SHA512: 905494ee29f19dd527b2b1173075e6f2c332030b00ec05aca680921fc50411fee0d65977d2ee29b82fcfb07472df7717d8844a60cd629ffd8850d77c29b4f71e
2024-12-16 11:18:12 +01:00
Michael Mallan
715aeb9298
gui(lianalite): use is_from_self from response 2024-12-12 11:39:18 +00:00
Michael Mallan
8d99981c14
gui: include unconfirmed from self in confirmed balance 2024-12-12 11:39:16 +00:00
Michael Mallan
31224ba443
gui: set missing fields for new home page
These fields are returned by the new `coins_summary()` function
so we may as well use them.
2024-12-12 11:39:15 +00:00
Michael Mallan
0a4861f409
refactor(gui): use common function for coins summary 2024-12-12 11:39:13 +00:00
edouardparis
bbeca4d416
Merge #1493: chore: fix some comments
c9de7dc0d630697b3c41846339c7df974d4eee9d chore: fix some comments (goodactive)

Pull request description:

  fix some comments

ACKs for top commit:
  jp1ac4:
    ACK c9de7dc0d6.

Tree-SHA512: 97382f2579da93aeb6e7b0d07919c4277815589c540cc6b018ed7506d76c8e13c98cbbc857149e076da9b12b20a095d37801a3ab33acf7fd15cf9bb0106d868f
2024-12-09 10:36:22 +01:00
goodactive
c9de7dc0d6 chore: fix some comments
Signed-off-by: goodactive <goodactive@qq.com>
2024-12-06 21:06:50 +08:00
edouardparis
d646c13d9a
Merge #1488: Use cargo-zigbuild for reproducible build with glibc 2.31
e3acfa7f806a0694d29adb9369984c25760840e3 Update guix commit: rust 1.82 (edouardparis)
d2379bd71ad395891d45c307ca0e9f2174221e8b Use cargo-zigbuild for reproducible build with glibc 2.31 (edouardparis)

Pull request description:

  Zig language has solved many issues regarding compilation linker.
  It allows us to compile to a smaller version of glibc while using latest guix commit.
  No need then to bootstrap multiple version of rust, the current supported version is 1.71.1

  close #414

ACKs for top commit:
  edouardparis:
    Self-ACK e3acfa7f806a0694d29adb9369984c25760840e3

Tree-SHA512: 1a0bce14900034c5522fe06dc00807d5d2e4660f58a6c9d035c26a34f13b893a3cf56cb43dd246913926c6cf76d61cff039418c2c55b436e8673ab700829577c
2024-12-04 15:56:49 +01:00
edouardparis
e3acfa7f80 Update guix commit: rust 1.82 2024-12-04 15:03:24 +01:00
edouardparis
68799d56ff
Merge #1483: commands: indicate in listcoins response whether coin is from self
1c0338610f76419287157c14a6647a362160f9e4 commands: add is_from_self to listcoins response (Michael Mallan)
c1e55716e619249c264193776d36c640df9bc946 database: add is_from_self to Coin (Michael Mallan)
6dd92052af0afc37bddb67493a64af396e7964c9 database: track whether coin is from self (Michael Mallan)
da185361f99eb319554ec78daa2fccdcd72eb298 sqlite: add helper to query single row (Michael Mallan)
4f6dcbfdfd7eaf471a38badc0c9ce48aefac814c sqlite: add columns to transactions and coins tables (Michael Mallan)
f2c910f6eb9f2b74329fa026c93f7e813f3baa53 sqlite: refactor test to not depend on order of coins (Michael Mallan)
bde3299db1c38eb6b0b09d7da2a73c43e40181b9 sqlite: refactor migration tests (Michael Mallan)

Pull request description:

  ⚠️ This PR upgrades and migrates DB version so a wallet opened against this PR will no longer work on Liana v8.

  This is a first step towards #1375.

  Following the approach from #1391, this PR adds a new `is_from_self` field to the response of the `listcoins` command.

  The underlying information is stored in a new `is_from_self` column in the coins database table. This column could instead have been added to the transactions table, but for consistency with other transaction-related columns, I added it to the coins table. It's also important to note that being from self is wallet-dependent, so adding it to the transactions table would not work if multiple wallets were supported in the same DB (h/t edouardparis).

  A subsequent PR will then use this field in the GUI to determine which unconfirmed coins, if any, can be included in the confirmed balance. It also needs to be added to the corresponding Liana Connect API call. Another use of this field will be to determine which unconfirmed coins to include in coin selection (https://github.com/wizardsardine/liana/issues/1484).

  The first commit in this PR refactors some existing DB migration tests so that they will not be affected by future changes to the coins table schema.

ACKs for top commit:
  pythcoiner:
    utACK 1c033861
  edouardparis:
    ACK 1c0338610f76419287157c14a6647a362160f9e4

Tree-SHA512: cdadb1f887989d40a08370a479310d80087b9075ff766dd518167baed4630ccbcbb0dc8f49b7fb31ad9aebddfb4ca459d83aeed3c47158bdb046a91352f98fc7
2024-12-04 13:30:09 +01:00
Michael Mallan
1c0338610f
commands: add is_from_self to listcoins response 2024-12-02 10:08:18 +00:00
Michael Mallan
c1e55716e6
database: add is_from_self to Coin 2024-12-02 10:08:16 +00:00
Michael Mallan
6dd92052af
database: track whether coin is from self
This populates the new columns from the previous migration
for existing rows and then maintains them in the poller moving
forward.
2024-12-02 10:08:14 +00:00
edouardparis
d2379bd71a Use cargo-zigbuild for reproducible build with glibc 2.31 2024-11-28 16:19:07 +01:00
Michael Mallan
da185361f9
sqlite: add helper to query single row 2024-11-28 14:56:15 +00:00
Michael Mallan
4f6dcbfdfd
sqlite: add columns to transactions and coins tables
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.
2024-11-28 14:56:13 +00:00
Michael Mallan
f2c910f6eb
sqlite: refactor test to not depend on order of coins
I found that making changes to the transactions used in the test
can affect the order in which coins are returned, probably due
to the txid changing.
2024-11-28 08:56:08 +00:00
Michael Mallan
bde3299db1
sqlite: refactor migration tests
Some migration tests used structs and methods that are expected
to change and so will not be backward compatible.

This change replaces those with structs and methods specific to
the migration tests so that the tests will be unaffected by DB
schema changes. At the same time, these new structs and methods
simplify some of the setup by allowing to store new coins,
including their confirmation and spend status, in a single
DB operation.
2024-11-22 14:48:31 +00:00
edouardparis
e246305273
Merge #1481: Use a flake instead of shell nix
bd6e6f456b04b1ffb2a78e6232a3de34afb5ae4e Use a flake instead of shell nix (edouardparis)

Pull request description:

  A flake makes more sense for development with nix declarative systems.
  To launch the shell: do `nix develop`

ACKs for top commit:
  edouardparis:
    Self-ACK bd6e6f456b04b1ffb2a78e6232a3de34afb5ae4e

Tree-SHA512: e9d81ee2e7e6e08a7ea6eca3ae8c5b5d58de517dd5615d6c73578832bd1d2e1e9a9c99781079d48683268fd93647b8a95f70cfafabf818f08321410961ee38f0
2024-11-21 12:06:08 +01:00
edouardparis
bd6e6f456b Use a flake instead of shell nix 2024-11-21 11:50:57 +01:00
edouardparis
1f7c41ae5b
Merge #1476: Split liana into liana and lianad crates
da4c102a66c1f340797be13d70659b2f875c3438 Fix reproducible system to handle lianad crate (edouardparis)
74820d97e9257e44c5c9d3bc64926e30066b285a Split into lianad and liana crate (edouardparis)

Pull request description:

  This change introduce two crates:
  - `lianad` the crate responsible to create the `lianad` and `liana-cli` binaries and expose daemon modules for `liana-gui` to embed
  - `liana` the crate responsible for the descriptors and the core logic of the bitcoin scripts and spend transactions creation. This will allow multiple platforms and mediums to start manipulating these modules without importing all the daemon dependencies (like the database or bitcoin core clients).

ACKs for top commit:
  jp1ac4:
    ACK da4c102a66.

Tree-SHA512: 85a268b2bffe5fe7b54d7b1e452dd2097ae606b903e5684a7b0e996b61981ab222b6718fb19739a05d1153b4d48a85d0ec3e1e15f68afe17936eec80111ecf04
2024-11-19 19:02:57 +01:00
edouardparis
da4c102a66 Fix reproducible system to handle lianad crate 2024-11-19 18:01:25 +01:00
edouardparis
74820d97e9 Split into lianad and liana crate 2024-11-19 18:01:25 +01:00
edouardparis
36b24d4d81
Merge #1475: remove commands import in spend module
4668980ff12c1026bf3a1b3b520d1d38db8939cb remove commands import in spend module (edouardparis)

Pull request description:

  This is preparatory work to create a specific liana lib.
  We keep modules separated.

ACKs for top commit:
  edouardparis:
    Self-ACK 4668980ff12c1026bf3a1b3b520d1d38db8939cb

Tree-SHA512: 0c33ab252a2e8b5404893367467ea48dbed8d84b5de0cb15dcc91bf5491b8af0d6bddd4aafe55699e16dcd7cd97b96d462d004b1921a38ae5e438c908d515c03
2024-11-19 14:04:05 +01:00
edouardparis
4668980ff1 remove commands import in spend module 2024-11-19 13:30:43 +01:00
edouardparis
1454c11f41
Merge #1473: Update liana gui to import liana directly
6cefd2464a55fbfaea5c4e9a3a370fb034c5462e remove liana from vendored source link (edouardparis)
b0fbe0839d15914cf1d56d35184bdc49683adfd3 liana-gui: import liana with directory path (edouardparis)

Pull request description:

  We import directly liana with the directory path instead of the git url.

ACKs for top commit:
  edouardparis:
    Self-ACK 6cefd2464a55fbfaea5c4e9a3a370fb034c5462e

Tree-SHA512: a4ef7e0a8899751b6200f9753856ae6b6a9ddf1a0c1c8d8576238631b5bf33358d59a6988f8f26e153ee09824eb217df13590bdf82560d3889a99a123df9f0b0
2024-11-19 12:59:18 +01:00
edouardparis
6cefd2464a remove liana from vendored source link 2024-11-19 12:03:29 +01:00
edouardparis
b0fbe0839d liana-gui: import liana with directory path 2024-11-19 10:43:07 +01:00
edouardparis
9c6eae9ee4
Merge #1469: liana: remove daemon feature
c14c55beeea56655096eb873ba0bce4d37ccd6bb remove daemonize from config (edouardparis)
c8112ab02752f3f49e67452cc2ef5e628d6804ac move rpc code to its own module (edouardparis)
a636cda2f7f9925d44f7bde3069255b3cbc618ea liana: remove the daemon feature (edouardparis)

Pull request description:

  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.

ACKs for top commit:
  jp1ac4:
    ACK c14c55beee.

Tree-SHA512: d4acafda399e9645cb5a80474a46290b6fac1e9695bb6ce04ce1eec7f68209ae67c70f858cd8f4d3ea5371818c2d5f68f9bcb3e4da349f5f86e53c0ec1123883
2024-11-19 10:27:39 +01:00
edouardparis
c14c55beee remove daemonize from config 2024-11-18 18:36:23 +01:00
edouardparis
c8112ab027 move rpc code to its own module 2024-11-18 18:36:23 +01:00