523 Commits

Author SHA1 Message Date
Antoine Poinsot
8cc6cb1f86
Merge #310: Release 0.2
d0de88bc016b2dcb181fd6f4ef88f9c36cc02f96 daemon: release 0.2 (Antoine Poinsot)
f4755ff803cd6f923eb342ae5f302513fb81b865 doc: add some warning re provider 4 to the Ledger doc (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    self-ACK d0de88bc016b2dcb181fd6f4ef88f9c36cc02f96

Tree-SHA512: 14324cc29e3814057ac28d8d11c5cf75e788c03132eb3f7a0cda72abd073e0ecc751c5390403b4ff7075fe4fb21959451995f192df3f817aabbda105dff3cbfd
2023-02-03 16:13:41 +01:00
Antoine Poinsot
d0de88bc01
daemon: release 0.2 2023-02-03 16:10:20 +01:00
Antoine Poinsot
f4755ff803
doc: add some warning re provider 4 to the Ledger doc 2023-02-03 15:00:36 +01:00
Antoine Poinsot
83314edd7f
Merge #308: Handle unconfirmed deposits that were replaced
3a573b695e07d357e844dd9d573d578e05ecebed qa: test we discard RBF'd deposits (Antoine Poinsot)
f1532f8afcceb5ded299f5ddc425c0473de49871 bitcoin: track expired unconfirmed deposits, remove them from DB (Antoine Poinsot)
ed156543c95db2e6e1fd4712ec7dcb0dfc025c41 database: permit to remove coins from DB (Antoine Poinsot)
62c4b9a01c16c60f66db99abab967efa4e0429dd bitcoind: cleanup gettx cache and conflict detection in spent_coins (Antoine Poinsot)
201c9f21b60dbc5ff0afd9aa73c3a011c08e4459 bitcoin: cache calls to 'gettransaction' when checking for coins confirmation (Antoine Poinsot)
13214c887f373fbe953c01aa8d3a31ae9b65ee98 qa: test we discard RBF'd deposits when replacement is confirmed (Antoine Poinsot)

Pull request description:

  Previously we would not detect whether the transaction for an unconfirmed deposit was still in our mempool. For instance a deposit that was RBF'd would result in us storing two coins, the replaced and the replacement. Keeping the unconfirmed replaced coin forever.

  Fix this by dropping unconfirmed coins from our database if their transaction isn't in our mempool (anymore).

  Fixes #72.

ACKs for top commit:
  edouardparis:
    utACK 3a573b695e07d357e844dd9d573d578e05ecebed

Tree-SHA512: 677bedbf8024eb16e5f97264c2e01d733732673548772fc3a97868b9ca42a0429ad8c0d888b05d3bb2db9b85d309c418b916c9af578f54e499b5d0689376a1b0
2023-02-03 14:59:49 +01:00
edouard
431adb314b
Merge #307: Change HardwareWallet for (Un)Supported enum
2a9bcf92d031510e8c1953a80ef8cd3e13b39a7d Change HardwareWallet for (Un)Supported enum (edouard)

Pull request description:

  close #252

ACKs for top commit:
  edouardparis:
    Self-ACK 2a9bcf92d031510e8c1953a80ef8cd3e13b39a7d

Tree-SHA512: dda4454a6f7ff515fef3d67ba1af09a35c3e039bfb5f5bca3d1b86f356bded8d16007e87969d7927990457db5cd130c1cf33186f0e5166bac61c460dea623846
2023-02-03 13:33:06 +01:00
Antoine Poinsot
bd6f84421a
Merge #299: Perform the bitcoind version sanity check before loading the watchonly wallet
9c7613fc141c2705525be85bbe28ee209109adb5 lib: perform node-related bitcoind sanity checks before loading the wallet (Antoine Poinsot)

Pull request description:

  Fixes #284.

ACKs for top commit:
  edouardparis:
    ACK 9c7613fc141c2705525be85bbe28ee209109adb5

Tree-SHA512: 3f2ec8ae7b1e426d214dbd693af90bebea305572a5c1dc903eff8c93de74cd964a7e463bfe65c7447bf9537f79c6b6d24354c93dd71374c9a8d8141adfce30a2
2023-02-03 13:25:45 +01:00
Antoine Poinsot
3a573b695e
qa: test we discard RBF'd deposits 2023-02-03 13:22:05 +01:00
edouard
2a9bcf92d0 Change HardwareWallet for (Un)Supported enum 2023-02-03 13:19:29 +01:00
Antoine Poinsot
f1532f8afc
bitcoin: track expired unconfirmed deposits, remove them from DB 2023-02-03 13:17:26 +01:00
Antoine Poinsot
ed156543c9
database: permit to remove coins from DB 2023-02-03 12:57:44 +01:00
Antoine Poinsot
62c4b9a01c
bitcoind: cleanup gettx cache and conflict detection in spent_coins
This is the same logic as the (cleaner) one we introduced in
confirmed_coins. Merge the two in a single CachedTxGetter, unfortunaly
at the expense of having to clone() the GetTxRes for now because i don't
want to fight with the borrow checker.
2023-02-03 12:57:43 +01:00
Antoine Poinsot
201c9f21b6
bitcoin: cache calls to 'gettransaction' when checking for coins confirmation 2023-02-03 12:57:42 +01:00
Antoine Poinsot
13214c887f
qa: test we discard RBF'd deposits when replacement is confirmed 2023-02-02 17:32:08 +01:00
edouard
d5baf1bd57
Merge #303: Add liana version in gui settings
0416a3645ab98971ba45eec9646b9934e33188f1 Add liana version in gui settings (edouard)

Pull request description:

  close #243

ACKs for top commit:
  edouardparis:
    Self-ACK 0416a3645ab98971ba45eec9646b9934e33188f1

Tree-SHA512: 7f3d516ef0c1784b0f6da7ceb0c026748db6ecd35147340ba88f66d520f89aba0dcad23b02804fb922de9ef204c54f86b007321d336d31cff58254a028140317
2023-02-02 16:11:58 +01:00
edouard
0416a3645a Add liana version in gui settings
close #243
2023-02-02 15:46:35 +01:00
edouard
bd6ecaeb28
Merge #298: gui: log off ledger_transport_hid
0e05ff5244276f3ae02d2bb264479106ccfc4222 gui: change log_level of ledger_transport_hid (edouard)

Pull request description:

  ledger hid apdu exchanges were displayed in the log because of ledger_transport_hid crate.
  This commit removes these log entries.

ACKs for top commit:
  edouardparis:
    Self-ACK 0e05ff5244276f3ae02d2bb264479106ccfc4222

Tree-SHA512: 3961e38dabfe850d10c9670dcb8e89c60bad4ee6267ff4ec93929901d32bd53ddbe0f328c18346297749921fd9e9dcc6ab46ba0aab4cc1476f530bbbb36540cd
2023-02-02 15:40:35 +01:00
edouard
94a2b72d96
Merge #305: Add patch to liana version
5e79c05c544a573a9030e64564c412d95ac34f57 Add patch to liana version (edouard)

Pull request description:

  The struct will be imported by the gui which
  may need one day to increase the patch version number.

ACKs for top commit:
  darosior:
    ACK 5e79c05c544a573a9030e64564c412d95ac34f57

Tree-SHA512: 8f129587c638107be31e9a1aa00387ba8d319338df1f3a1072386585901476dd677c85fa3fb8e7a985f11ea6cc2d5607279554ad5a2d651e2c14dda3842353a4
2023-02-02 15:38:17 +01:00
edouard
0e05ff5244 gui: change log_level of ledger_transport_hid
ledger_transport_hid logs should not appear if the log_level is the default
`info` level.
2023-02-02 15:01:49 +01:00
edouard
5e79c05c54 Add patch to liana version
The struct will be imported by the gui which
may need one day to increase the patch version number.
2023-02-02 14:43:04 +01:00
Antoine Poinsot
c4981fce5a
Merge #302: contrib: update the Iced patch for reproducible builds
7a3eeb741ea42e3af4d5414e6778bb3fa585f762 ci: test the GUI against it's current MSRV (Antoine Poinsot)
b2602e02046c21636c86b71247a1988ee71616bb contrib: use unpublished rustc 1.64 to build the GUI in Guix (Antoine Poinsot)
0a1c04db3625608522dba98bc4d2a070853cdd1a contrib: fixup patching in Guix build script (Antoine Poinsot)
3f49366b86dc4e2f10fd9e415576f794937a01dd contrib: update the Iced patch for reproducible builds (Antoine Poinsot)

Pull request description:

  The Iced dependency was updated, and the patch wasn't valid anymore.

ACKs for top commit:
  darosior:
    ACK 7a3eeb741ea42e3af4d5414e6778bb3fa585f762 -- tested a reproducible build with this.

Tree-SHA512: 4e79821f24d9be8b5b2db5f415372f6a0f54ebff616d6335f38569ff047786c3e38b3f34e9f85b5141451af13f86651e827d176f01b4f51d12dd4dcc69beb434
2023-02-02 14:35:10 +01:00
edouard
ada2d010c9
Merge #289: Gui multisig
ca39b15edd366d23d4bcf7433273663807fa2aab installer: generate multiple xpubs in participate step (edouard)
445ad733fbb6604f2b1acfc93db454eb4794baf7 Add signatures information to spend (edouard)
bf1e9e4b808a7c275766975467e637b883524236 gui: new module settings (edouard)
689f19a4f22009a9043a7308e00c96bf1de97a45 Edit key name in installer (edouard)
bcd223f3fb8cf7224eede75b5cfeb97ae8e93ef9 Add sigs number and threshold to spend list view (edouard)
1f3399bd0f78593a689f0ec50934b1cf4f34f692 Add PartialSpendInfo to SpendTx model (edouard)
9a1cda2f5ed80a66324b272b7cf4c3bd7202e953 Use spend state in recovery panel (edouard)
a2ac34e6b03ef92025ac0f9c9cb709719ea6375a installer: Participate in a new wallet section (edouard)
dfc10eba61818b87ef12f057507a9b9660851d61 Add multisig wallet creation in installer (edouard)

Pull request description:

ACKs for top commit:
  edouardparis:
    Self-ACK ca39b15edd366d23d4bcf7433273663807fa2aab

Tree-SHA512: 67898dd5cc9ddfe135ddd2e57c6f3d6a6a10cf63211fe44c35e36cd182d4023cdefb8b15d2bd07290d83d631e360b20114b60e85728f9bbdc8c0e0d16b37f746
2023-02-02 12:56:42 +01:00
edouard
ca39b15edd installer: generate multiple xpubs in participate step 2023-02-02 12:23:48 +01:00
edouard
445ad733fb Add signatures information to spend 2023-02-02 12:23:48 +01:00
edouard
bf1e9e4b80 gui: new module settings 2023-02-02 12:23:48 +01:00
Antoine Poinsot
7a3eeb741e
ci: test the GUI against it's current MSRV
To make sure we don't break it unintentionally.
2023-02-02 12:16:40 +01:00
Antoine Poinsot
b2602e0204
contrib: use unpublished rustc 1.64 to build the GUI in Guix 2023-02-02 12:14:31 +01:00
Antoine Poinsot
0a1c04db36
contrib: fixup patching in Guix build script 2023-02-02 12:01:11 +01:00
Antoine Poinsot
3f49366b86
contrib: update the Iced patch for reproducible builds
The Iced dependency was updated, and the patch wasn't valid anymore.
2023-02-02 12:00:30 +01:00
Antoine Poinsot
9510e4e069
Merge #301: contrib: also patchelf the 'liana-cli' binary
81aa0c7d8e8da7d380675f54b980a9f1ce05c67d contrib: also patchelf the 'liana-cli' binary (Antoine Poinsot)

Pull request description:

  Fixes #271.

ACKs for top commit:
  darosior:
    self-ACK 81aa0c7d8e8da7d380675f54b980a9f1ce05c67d -- tested manually.

Tree-SHA512: a5f807e9d482e633b0c4b6ace4bb3d9ea522f2f0ebc9152b497f5576cbe076eedff163d292e9162b42d359d553e5b473de28e152088393d4913c4a0e8e0e4ead
2023-02-02 11:59:36 +01:00
edouard
689f19a4f2 Edit key name in installer 2023-02-02 11:01:19 +01:00
edouard
bcd223f3fb Add sigs number and threshold to spend list view 2023-02-02 11:01:19 +01:00
edouard
1f3399bd0f Add PartialSpendInfo to SpendTx model 2023-02-02 11:01:19 +01:00
edouard
9a1cda2f5e Use spend state in recovery panel 2023-02-02 11:01:19 +01:00
edouard
a2ac34e6b0 installer: Participate in a new wallet section 2023-02-02 11:01:19 +01:00
edouard
dfc10eba61 Add multisig wallet creation in installer 2023-02-02 11:01:19 +01:00
Antoine Poinsot
f433002e91
Merge #300: descriptors: require that an origin be set for the keys.
1cd61c9236b7ecacd39787a84edfcacaec024673 descriptors: require that an origin be set for the keys. (Antoine Poinsot)

Pull request description:

  It would be possible for users to create a descriptor with xpubs without an origin set. In fact, not many are used to origins and it's a very likely mistake. Signers need this information in order to be able to sign. So they could potentially create a wallet and potentially never be able to sign for one or multiple keys.

  Fix this by requiring an origin for all keys in the descriptor.

  Fixes #290.

ACKs for top commit:
  edouardparis:
    ACK 1cd61c9236b7ecacd39787a84edfcacaec024673

Tree-SHA512: fb17f2fb11a467289cb942b2df2a6331d03d52805ab02bf39eeb1f3086d4110d9e3cea3f12e97b0822af8879b483eb51b02eb17b70595a0b199e5dcbbb7229dd
2023-02-01 14:51:30 +01:00
Antoine Poinsot
81aa0c7d8e
contrib: also patchelf the 'liana-cli' binary 2023-02-01 14:49:27 +01:00
Antoine Poinsot
1cd61c9236
descriptors: require that an origin be set for the keys.
It would be possible for users to create a descriptor with xpubs without
an origin set. In fact, not many are used to origins and it's a very
likely mistake. Signers need this information in order to be able to
sign. So they could potentially create a wallet and potentially never be
able to sign for one or multiple keys.

Fix this by requiring an origin for all keys in the descriptor.
2023-02-01 13:54:18 +01:00
Antoine Poinsot
9c7613fc14
lib: perform node-related bitcoind sanity checks before loading the wallet
We were checking the bitcoind version *after* trying to create a
watchonly wallet with a Miniscript descriptor, which defeats the purpose
of the check.

Fixes #284.
2023-02-01 11:57:09 +01:00
Antoine Poinsot
46de2e07a8
Merge #282: Multisig support
3ea85fa9506bc96440096a9d11cceffdbf5eab44 descriptor: introduce a helper to analyze a PSBT spending Liana coins (Antoine Poinsot)
aac330ca65686ddb0d5b64778f49025e602cfa02 descriptors: rename DescCreationError in a general desc-related error (Antoine Poinsot)
92905968234053feaaad8a83a5080860779d2898 qa: test using lianad with a multisig descriptor (Antoine Poinsot)
3c82173f468a099d298514ddfe2bd376ad9f08c8 qa: abstract the signer from the Lianad class (Antoine Poinsot)
e22e30dc8d3f0c99a0f176857f35ac5ed60a34f4 descriptors: support Multisig in both the primary and recovery paths (Antoine Poinsot)

Pull request description:

  This permits the creation of a Liana descriptor containing a multisig in either of the two spending paths. The multisig is currently restricted at creation time to be a CHECKUMULTISIG-like multisig (k-of-n with n<20). See the linked issue for rationale.

  Closes https://github.com/wizardsardine/liana/issues/53.

ACKs for top commit:
  edouardparis:
    ACK 3ea85fa9506bc96440096a9d11cceffdbf5eab44

Tree-SHA512: b95402b4483e9b282680288b6515049c3ab7ac0debe7659b39768e4b85de8e4b3d6000a2de8b633c47f7f7db49593a23853028f481a09fc13f3d9d574f7cca51
2023-01-31 15:34:54 +01:00
edouard
df2aacd082
Merge #296: Gui: text and layout of recovery screen fix #265
6c375ad06d3d16e8c99fc783fece1719ef06ad35 Gui: text and layout of recovery screen fix #265 (Trigger)

Pull request description:

  Fix issue #265 + small UX improvements.

  I rollbacked _rustfmt_ @edouardparis can you see if it makes ~100changes on your side too ?

ACKs for top commit:
  edouardparis:
    ACK 6c375ad06d3d16e8c99fc783fece1719ef06ad35

Tree-SHA512: a75b4e64867c49fa1b34c32d2ba05ea5b4715933ad71ec8b2b5848f02dc2d138083e8fdf84d6875f552f55f1b3c48d8ff1b726a1c919575d6670bda420cb64ef
2023-01-30 11:25:27 +01:00
Antoine Poinsot
3ea85fa950
descriptor: introduce a helper to analyze a PSBT spending Liana coins 2023-01-26 21:26:29 +01:00
Trigger
6c375ad06d
Gui: text and layout of recovery screen fix #265 2023-01-26 15:26:26 +01:00
Antoine Poinsot
aac330ca65
descriptors: rename DescCreationError in a general desc-related error 2023-01-24 19:38:35 +01:00
Antoine Poinsot
9290596823
qa: test using lianad with a multisig descriptor 2023-01-24 19:38:35 +01:00
Antoine Poinsot
3c82173f46
qa: abstract the signer from the Lianad class
That's prep work to introduce a multisig
2023-01-24 19:38:34 +01:00
Antoine Poinsot
e22e30dc8d
descriptors: support Multisig in both the primary and recovery paths
We only allow to create "legacy" multisigs for now (that is, what fits
in a CHECKMULTISIG, ie k-of-n with n<=20). See
https://github.com/wizardsardine/liana/issues/53 for discussions around
this.

We are a bit more laxist on parsing, where any miniscript that
corresponds to a multisig policy will be accepted.

Note this makes the helper inferring the CSV value from semantic policy
incorrect, but this is fix in a later commit as part of a complete
refactor of this logic.
2023-01-24 19:38:34 +01:00
Antoine Poinsot
817c924aa3
Merge #295: doc: add a document about signing devices and specifically the Ledger app
a2c584f6030d233854ae6508911c0c5301b9b6db doc: add a document about signing devices and specifically the Ledger app (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  edouardparis:
    ACK a2c584f6030d233854ae6508911c0c5301b9b6db

Tree-SHA512: 2bedc0639094833b470236bacf19d8b93d9a9f75cd692e20363505929f01f8c233a8569e2ca50ddc92fc33494ec4f76750f46e9ecd86f5cd711fc50eff210f8e
2023-01-23 20:05:32 +01:00
Antoine Poinsot
a2c584f603
doc: add a document about signing devices and specifically the Ledger app 2023-01-23 17:42:20 +01:00
edouard
2985cbcba0
Merge #294: gui: store descriptor in wallet module
b177f190d144986c1268c640075c89399f4c599d gui: store descriptor in wallet module (edouard)

Pull request description:

  A new module wallet is introduced that contains the main_descriptor retrieved from `getinfo`.
  It removes the requirement for the `Daemon` trait to provide the demon config in the  other components of the application.
  Actually BitcoindSettings cannot be edited if the gui is connected to an external daemon, this PR just remove the display of the Bitcoind Settings section.

ACKs for top commit:
  edouardparis:
    Self-ACK b177f190d144986c1268c640075c89399f4c599d

Tree-SHA512: 1b5d00b9406a96d51e2b974d850322ea6046d8232fdd061d4e79ac7a8529c1459815fa022b5e35156664c27aedc0b08ad94d9cbf6984af09ee3c2bdd44ebe2f6
2023-01-20 10:45:15 +01:00