19 Commits

Author SHA1 Message Date
Antoine Poinsot
6f5b053ea5
Revert "Merge #742: commands: don't add derivation paths for keys from different path but same signer"
This reverts commit ec0c2426aa5fa6cee2efabd3ee6f175b41c35f64, reversing
changes made to 26d750d09c84734f56c2dc18cb332a232e24fb6d.

This reverts the fixes to the pruning of BIP32 derivation paths when
creating a PSBT, in preparation of reverting the merge of this feature
altogether. This is because always creating PSBT with only the BIP32
derivations for a single path broke the Ledger support.
2023-10-27 15:43:52 +02:00
Antoine Poinsot
2e1c54491e
qa: test der paths in PSBT when desc has duplicate signer 2023-10-24 16:38:57 +02:00
Antoine Poinsot
0a95266cce
qa: don't use a static dummy origin for descriptor xpubs 2023-10-08 11:50:58 +02:00
Antoine Poinsot
df396cccc8
qa: set load_on_startup for bitcoind internal wallet 2023-08-09 12:13:30 +02:00
Antoine Poinsot
b20cdd0cd8
tests: introduce a lianad_multipath fixture as well as a trivial test 2023-04-04 11:53:24 +02:00
Antoine Poinsot
0d75f0a2c7
tests: handle multiple recovery paths in MultiSigner 2023-04-04 11:53:23 +02:00
Antoine Poinsot
3aa9980635
tests: simplify the MultiSigner 2023-04-04 11:53:23 +02: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
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
d362885b85
qa: record the recovery xpub too 2022-12-09 12:27:49 +01:00
Antoine Poinsot
a69fb625ea
qa: use a CSV of 10 for recovery 2022-12-09 12:27:49 +01:00
Antoine Poinsot
62067f0030
qa: remove needless import in fixtures 2022-12-05 10:04:03 +01:00
Antoine Poinsot
968a7d17a0
daemon: rename Minisafe to Liana 2022-11-17 17:10:22 +01:00
Antoine Poinsot
1320ee30ba
daemon: use multipath descriptors
In config, expect to be given a multipath descriptor that contains a
derivation path for both receive and change addresses, but only for
those.

Instead of 'xpub/*', start using 'xpub/0/*' and 'xpub/1/*'.

When creating the watchonly wallet on bitcoind import both the receive
and change descriptors.

When polling, check for coins on both descriptors.
2022-10-24 15:00:14 +02:00
Antoine Poinsot
7d015bcf43
jsonrpc: add a 'createspend' RPC command
Since the Spend transaction command requires some parameters, this
implements the parameter-getting logic on the JSONRPC side as well.

This allows us to implement an end-to-end functional test of the
transaction flow using an external way to broadcast it. From the input
coins creation, to the Spend transaction broadcast.
2022-09-15 11:41:33 +02:00
Antoine Poinsot
0fd57db8a8
Use the descriptor newtype instead of the raw miniscript Descriptor type 2022-08-18 12:02:27 +02:00
Antoine Poinsot
a067daf16b
tests: use a ranged descriptor 2022-08-17 19:39:51 +02:00
Antoine Poinsot
7c3289fda9
tests: add a functional test framework, adapted from revaultd 2022-07-25 16:31:35 +02:00