587 Commits

Author SHA1 Message Date
edouard
f3f04a41b0 Use liana hot signer 2023-02-16 09:59:57 +01:00
edouard
200d3777e0
Merge #293: Hot wallet support
20f394a452e425f4bdad0195637612499575a878 random: add a commented-out test i used to run ENT (Antoine Poinsot)
157eea989322eed2ea9553d3640e884fb657541a lib: re-export the bip39 dependency (Antoine Poinsot)
50f13d3e2e2802ebbc6efceccb03eafe352b1e77 signer: allow to the set the network for extended keys encoding (Antoine Poinsot)
f5e7632c73abef4f27f5617c877caf8574b3fe3b signer: expose a method for signing a PSBT (Antoine Poinsot)
b88874107e3b45876a63506ab67afbc710cd2a27 signer: add a method to get the xpub at a given path (Antoine Poinsot)
59e55ae9f2c33f4865ff28282325a5cf156ca37e signer: implement mnemonics storage, and initialization from storage (Antoine Poinsot)
d341b6dea9d7eb9663eb9a4ef55617340146dc1e signer: cache the master xpriv (Antoine Poinsot)
6e3b951e5452a3cd4a050bde32ee930f6613e601 signer: a new module with a BIP39-based hot signer (Antoine Poinsot)

Pull request description:

  This introduces a new `signer` module. Its purpose is to provide clients of the Liana daemon (such as the GUI) with tools to sign transactions.

  For now, the only signer available is a hot signer based on BIP39. It allows to generate new mnemonics from OS-provided randomness (with added randomness from the CPU if available and mixed-in contextual data). Mnemonics are stored in plaintext in a `mnemonics` folder at the root of a provided data directory.

  Fixes #49.

ACKs for top commit:
  edouardparis:
    ACK 20f394a452e425f4bdad0195637612499575a878

Tree-SHA512: 299476fdec69139cab9428e8466b4d320798ecd91a08251cac9d1fb086e43cffdb296eca4061a022a7182b5df2101977bb8300ead0d31f3f75988792145bba7f
2023-02-16 09:26:11 +01:00
Antoine Poinsot
20f394a452
random: add a commented-out test i used to run ENT
https://www.fourmilab.ch/random/

Entropy = 8.000000 bits per byte.

Optimum compression would reduce the size
of this 912444480 byte file by 0 percent.

Chi square distribution for 912444480 samples is 254.09, and randomly
would exceed this value 50.43 percent of the times.

Arithmetic mean value of data bytes is 127.4952 (127.5 = random).
Monte Carlo value for Pi is 3.141641048 (error 0.00 percent).
Serial correlation coefficient is 0.000022 (totally uncorrelated = 0.0).
2023-02-14 17:41:30 +01:00
Antoine Poinsot
157eea9893
lib: re-export the bip39 dependency 2023-02-14 17:41:30 +01:00
Antoine Poinsot
50f13d3e2e
signer: allow to the set the network for extended keys encoding 2023-02-14 17:41:29 +01:00
Antoine Poinsot
f7490614ae
Merge #347: daemonize: switch the pid and log file arguments
f10c35e964c74a9b60df8cd03ef084f6a47c53e6 daemonize: switch the pid and log file arguments (Antoine Poinsot)

Pull request description:

  The caller and the definition had them swapped.. So it was logging to the PID file and writing the PID to the log file..

ACKs for top commit:
  darosior:
    self-ACK f10c35e964c74a9b60df8cd03ef084f6a47c53e6 -- trivial

Tree-SHA512: dc8be2ceedcb05a5eec444ff31b96053742537a86342fe9133aa4df354bb02ca70b7db633152b3f3a6cdeb7b63455d04fce6323c53b93f7365f89a8b4f2d0574
2023-02-13 12:10:07 +01:00
Antoine Poinsot
f10c35e964
daemonize: switch the pid and log file arguments
The caller and the definition had them swapped.. So it was logging to
the PID file and writing the PID to the log file..
2023-02-13 10:56:22 +01:00
Antoine Poinsot
f5e7632c73
signer: expose a method for signing a PSBT 2023-02-10 12:21:23 +01:00
Antoine Poinsot
b88874107e
signer: add a method to get the xpub at a given path 2023-02-10 12:21:22 +01:00
Antoine Poinsot
59e55ae9f2
signer: implement mnemonics storage, and initialization from storage 2023-02-10 12:21:22 +01:00
Antoine Poinsot
d341b6dea9
signer: cache the master xpriv 2023-02-10 12:21:21 +01:00
Antoine Poinsot
6e3b951e54
signer: a new module with a BIP39-based hot signer 2023-02-10 12:21:21 +01:00
Antoine Poinsot
e4d4fcd9fc
Merge #342: installer: clean unwraps and add logs to install finalization step
4131ee529df8b6015c09ffdfb691a43572ddf828 installer: clean unwraps and add logs to final step (edouard)

Pull request description:

ACKs for top commit:
  darosior:
    Thanks, always good to panic less! ACK 4131ee529df8b6015c09ffdfb691a43572ddf828

Tree-SHA512: df2eea4e5d707dd78543a148b49167f933da827eb3998aa9443bac8e94600594041d8bcd8a17c278d7ea6548e9ef3e4b6d570c466089b5a431a6c9f09a7b62a9
2023-02-09 17:37:32 +01:00
edouard
4131ee529d installer: clean unwraps and add logs to final step
GUI should handle failure gracefully with logs
instead of crashing.
2023-02-09 17:29:23 +01:00
edouard
88e5977166
Merge #344: lib: on Windows, delete leftover watchonly wallet in bitcoind datadir
f8e5bb22acd1fe975a0ec74785293da9f6438d57 bitcoind: don't crash on existing watchonly wallet, return an error. (Antoine Poinsot)
b43a90d52ad2ded33d69d3e2e4bc7ce12dcad4c6 lib: on Windows, delete leftover watchonly wallet in bitcoind datadir (Antoine Poinsot)

Pull request description:

  The Windows hack for the watchonly wallet comes back to bite us. The assumption that on a fresh data dir no watchonly wallet already exist does not hold on Windows anymore. Work around it by deleting potential leftover, and bail out of starting up if we detected one but couldn't delete it for whatever reason.

  Thanks to @kloaec for the bug report.

ACKs for top commit:
  edouardparis:
    ACK f8e5bb22acd1fe975a0ec74785293da9f6438d57

Tree-SHA512: 94026f1c944a50e89de2d82a2ade164b2fa9e3dc3858c448d04821e3eee90db51803e7767333eb914841eb7f50dc53cdffa9bb109ca97c6bdb45a8173bb09eaa
2023-02-09 17:25:26 +01:00
Antoine Poinsot
f8e5bb22ac
bitcoind: don't crash on existing watchonly wallet, return an error. 2023-02-09 17:03:53 +01:00
Antoine Poinsot
b43a90d52a
lib: on Windows, delete leftover watchonly wallet in bitcoind datadir 2023-02-09 17:03:52 +01:00
edouard
fba20b185d
Merge #341: Add wallet path in bitcoind errors related to wallet
0f71cbd7c5d56071083916fc4776a01609e19b92 Add wallet path in bitcoind errors related to wallet (edouard)

Pull request description:

ACKs for top commit:
  darosior:
    ACK 0f71cbd7c5d56071083916fc4776a01609e19b92

Tree-SHA512: 9b4f0d3b667badd7a9cb2548f3d7eba7f2df57e23328e9affaa9d9d23cb52928ce2cec31a62ab6fd8fa3ec5c7376e9555668a7eb8c78ea9b3a6d89a014973a56
2023-02-08 15:23:41 +01:00
edouard
0ce888091a
Merge #336: gui: add error message to launcher
3f3e6fab03cfad7219d0860dd096d84a31667d7f installer: change message error (edouard)
aa7db15a64ebb0948340a94513438725c1b6971e gui: add error message to launcher (edouard)

Pull request description:

  Gui will do a check that the selected network datadir is correct and will display an error message in case.

ACKs for top commit:
  darosior:
    ACK 3f3e6fab03cfad7219d0860dd096d84a31667d7f -- quickly tested. See below.

Tree-SHA512: e78b11d05b56b4df789e827f3a1ff37bbcc671b10ae26c7a68b3e8d1bba5928d902049a4f52fbebd63f55ce71c13f1914f15463d36ffcca1a2693e9594de337f
2023-02-08 15:14:27 +01:00
edouard
0f71cbd7c5 Add wallet path in bitcoind errors related to wallet 2023-02-08 14:24:36 +01:00
edouard
3f3e6fab03 installer: change message error 2023-02-08 12:25:00 +01:00
edouard
aa7db15a64 gui: add error message to launcher 2023-02-07 17:17:50 +01:00
Antoine Poinsot
579c428825
Merge #335: doc: clearer instructions re Speculos
7231635748f3cc713e8bbc43871395541e153b19 doc: clearer instructions re Speculos (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    self-ACK 7231635748f3cc713e8bbc43871395541e153b19

Tree-SHA512: dbd9eba0b405dce3a7e61d57f886d194be6e783270aae903766e84d1c7e51d871c39b33f1ffaa53031a590eb0afca85a0e257d4a90b32227bee17ac9ca231e38
2023-02-07 16:08:31 +01:00
Antoine Poinsot
7231635748
doc: clearer instructions re Speculos 2023-02-07 16:05:57 +01:00
Antoine Poinsot
d54773c97f
Merge #333: Fix doc 0.2
c52660a10756fb59d2148fa81d37a85b5d768cce Add link to signing devices documentation (edouard)
548a4d807ae09f0a6ca0270d64e5bd3954c2c469 doc: make reference to 0.2 (edouard)

Pull request description:

ACKs for top commit:
  darosior:
    ACK c52660a10756fb59d2148fa81d37a85b5d768cce -- i'll address some nits in a followup myself

Tree-SHA512: 5fdd6779b31a483a2f2a0da10b2026ba23488f7441370b1c8044fc7eb87a463277b0f423e839afbb815af1cd6a6ac9075c96ba6cc32fae9bd13fa83002f32e74
2023-02-07 16:02:44 +01:00
Antoine Poinsot
08adc76079
Merge #334: CHANGELOG: mention the origin requirement
ed4d620f7fe412a1a2d8f709d5b5a9773ed49361 CHANGELOG: mention the origin requirement (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    self-ACK ed4d620f7fe412a1a2d8f709d5b5a9773ed49361

Tree-SHA512: 96f77dfc1f862bfbd2a61f59bcdcf92ce67072836ad38898abc5bb67d41e8efcdb4052b524192e91bb150dbc84d622abf921e98d7d0097dcc4fe28d1dda8af59
2023-02-07 16:01:20 +01:00
Antoine Poinsot
5096858955
Merge #332: contrib: fix dmg creation in the release script
fa518af53d8b8a0b2f8a67072d173dce662e8a5b contrib: fix dmg creation in the release script (Antoine Poinsot)

Pull request description:

  The binary need to be named the same as the configured application name.

ACKs for top commit:
  darosior:
    self-ACK fa518af53d8b8a0b2f8a67072d173dce662e8a5b

Tree-SHA512: 8dc4f0d8025fca1b046345b60b0a0e4e42d51da492af85f7e2f0b50db36509deca55d30fbe6740a2b20fd59d18f774684c75fe6e9cdfab0e0c8314a23e860fdf
2023-02-07 16:01:04 +01:00
Antoine Poinsot
ed4d620f7f
CHANGELOG: mention the origin requirement 2023-02-07 16:00:09 +01:00
edouard
c52660a107 Add link to signing devices documentation 2023-02-07 14:38:46 +01:00
edouard
548a4d807a doc: make reference to 0.2 2023-02-07 13:10:17 +01:00
Antoine Poinsot
fa518af53d contrib: fix dmg creation in the release script 2023-02-06 22:23:16 +01:00
edouard
698dd4a405
Merge #330: fix spend detail: wrong check ready
4c683993bc32616c0506528dec6f497f32f7c933 fix spend detail: wrong check ready (edouard)

Pull request description:

ACKs for top commit:
  edouardparis:
    Self-ACK 4c683993bc32616c0506528dec6f497f32f7c933

Tree-SHA512: d1a336ead055412fbfa08c7c0931b3e9788430e7002d49237f6f115afec3e300c793cc29bcf49c17851a8f75e7a5a6c9c7fded6bc10a7c45a1b1d61e97b0b515
2023-02-06 14:52:03 +01:00
edouard
4c683993bc fix spend detail: wrong check ready 2023-02-06 14:39:47 +01:00
Antoine Poinsot
cee3b32f4f
Merge #329: CHANGELOG: mention 2 additional fixes to the GUI for 0.2
4c810a1d702c67be811525d4f5ad8f6f0ebc1278 CHANGELOG: mention 2 additional fixes to the GUI for 0.2 (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    self-ACK 4c810a1d702c67be811525d4f5ad8f6f0ebc1278

Tree-SHA512: 8ae3204f4209f8be4033f084e798e888c412a92f7bf787a6f0f5aea51cb5dc6cfeae810a78ab2a60e9769ca5f6f7b120c3a50118b507892a979df6ebf60a3d39
2023-02-06 14:09:48 +01:00
Antoine Poinsot
4c810a1d70
CHANGELOG: mention 2 additional fixes to the GUI for 0.2 2023-02-06 14:08:53 +01:00
edouard
4a7a6d1806
Merge #328: gui: update liana#66e37a2
f5de5e973421468cba848c8a698d10e4d79bbc7d gui: update liana#66e37a2 (edouard)

Pull request description:

ACKs for top commit:
  edouardparis:
    Self-ACK f5de5e973421468cba848c8a698d10e4d79bbc7d

Tree-SHA512: 50514a0238cc78c9de0469e70325e60b8c9fb299de85cfccc8d6e6d2a008b9c0c3192bcc1cb91aea41f7a0c7d0ba96a79afeb098c4025ee3bc5ffe13693f35af
2023-02-06 14:00:05 +01:00
edouard
f5de5e9734 gui: update liana#66e37a2 2023-02-06 12:08:25 +01:00
edouard
66e37a2cdf
Merge #314: gui: change path signature details
56d3522f8c74ff774cb3ecdbf76b48dd216497f9 gui: change path signature details (edouard)

Pull request description:

  ![2023-02-03T21:50:42,669968940+01:00](https://user-images.githubusercontent.com/6933020/216709669-81b18325-60ad-469f-a506-6717e997e72a.png)
  ![2023-02-03T21:50:50,459471889+01:00](https://user-images.githubusercontent.com/6933020/216709675-f48041dc-1e17-4723-9d24-0f65cd896cfa.png)
  ![2023-02-03T21:58:48,281389762+01:00](https://user-images.githubusercontent.com/6933020/216709676-977c845e-f1c2-4a6c-9e9c-49c345d20cf1.png)

ACKs for top commit:
  edouardparis:
    Self-ACK 56d3522f8c74ff774cb3ecdbf76b48dd216497f9

Tree-SHA512: 72c0ee502f8f8475b38cf3ee6619e02f9a0920373cc1542cdd37f7d79f83ac489cef444c1f4f79df45ffca4e8b3a1857606994392238ec77a8457d0af117ea63
2023-02-06 11:53:53 +01:00
Antoine Poinsot
9996483112
Merge #321: Descriptor spending policy inference fixes
fcc1c21dbb3a735407d0352c555f448ae80fac64 descriptors: use the origin as xpub UID in partial spend info, not the fingerprint (Antoine Poinsot)
4af1a12a2a239a25c3ab50e4943fa7897be40091 descriptors: fix the spending policy inference (Antoine Poinsot)

Pull request description:

  The analysis was assuming missing that a `thresh(2, older(x), thresh(k, key1, key2, ..)` policy could be normalized to `thresh(k + 1, older(x), key1, key2, ..)` when `k == the number of keys` (i.e. in case of a N-of-N multisig). This also merges the analysis logic with the parsing check to make sure we don't introduce any inconsistency.

ACKs for top commit:
  edouardparis:
    utACK fcc1c21dbb3a735407d0352c555f448ae80fac64

Tree-SHA512: d12db2ccf43d20fc85ea6f9fdfe2869948d2c63a2af22287c9133cf6f732fe92c7c0c63ba70ea3dfb0c910a93753ebd42cb168b4cf6bd6ccbed4e1cc7028b614
2023-02-06 11:43:12 +01:00
edouard
56d3522f8c gui: change path signature details 2023-02-06 11:09:30 +01:00
edouard
04862ec65d
Merge #319: fix: drop connections to hws in share xpub panel
42940f638598b02acf1cc4f175703725a2ef3cf2 fix: drop connections to hws in share xpub panel (edouard)

Pull request description:

  Use needs to be able to start new connections
  in the register descriptor step.

ACKs for top commit:
  edouardparis:
    Self-ACK 42940f638598b02acf1cc4f175703725a2ef3cf2

Tree-SHA512: 01b146209cb74e5db7819e7249b51881e0f773d32ae2b1400914e0751f702325447b304eeca0f4eadf50113c4ea0535d24c73ef8b311c9de453877659933650f
2023-02-06 09:23:15 +01:00
edouard
5b0aac1782
Merge #325: Gui wording nits
f545747080fdfc4a02216256a6b6da2e3d22078d gui: reword some warnings on invalid input (Antoine Poinsot)
c6127c41c99d9775ecc177928a2ec9fdc94e13a0 gui: wording nit on missing feerate when creating a spend. (Antoine Poinsot)
a7f2ca1cbee7030e9c51506a2c6e1136f6b3a463 gui: Remove redundant "or" when filling up xpub in installer. (Antoine Poinsot)

Pull request description:

  Some things i noticed while testing. Not perfect nor comprehensive, but still an improvement IMO.

ACKs for top commit:
  edouardparis:
    ACK f545747080fdfc4a02216256a6b6da2e3d22078d

Tree-SHA512: c1b098058cbff6617fb197d235ef6755702499b435414659317be2d0bfffe91e018d9069d1e5741c80b446fbee395cb4f6e7cbc4d457583a3bc04f66d9f3cbc6
2023-02-06 08:50:12 +01:00
Antoine Poinsot
f545747080
gui: reword some warnings on invalid input 2023-02-05 15:48:48 +01:00
Antoine Poinsot
c6127c41c9
gui: wording nit on missing feerate when creating a spend. 2023-02-05 15:48:47 +01:00
Antoine Poinsot
a7f2ca1cbe
gui: Remove redundant "or" when filling up xpub in installer. 2023-02-05 15:48:47 +01:00
Antoine Poinsot
e8d0f492b9
Merge #317: bitcoind: detect deposits from (mature) coinbase transactions
af058d59e3604cebb7384f4c0f65a2fd60cc5af4 bitcoind: detect deposits from (mature) coinbase transactions (Antoine Poinsot)

Pull request description:

  What if miners use Liana! 😁

ACKs for top commit:
  edouardparis:
    ⛏️  utACK af058d59e3604cebb7384f4c0f65a2fd60cc5af4

Tree-SHA512: 579e24b78d250c095e1073e6e1df46bbea77afdcde6ee8dcef7adc29ef276b6609ccc829809dd97c2da8679ffb6d7b60041572a017438cc7695acdc6afad5b71
2023-02-05 15:16:21 +01:00
Antoine Poinsot
fcc1c21dbb
descriptors: use the origin as xpub UID in partial spend info, not the fingerprint
We were using the fingerprint as a stable unique identifier for xpubs in
a descriptor. It's not. For instance, what if a single signer is used
both in the primary and recovery path? The same fingerprint would appear
in both paths and we would mix up the signatures for both paths (ie if a
signature for each was provided, we would count each path as having 2
signatures).
2023-02-05 14:31:24 +01:00
Antoine Poinsot
4af1a12a2a
descriptors: fix the spending policy inference
This also cleans it up as well as merging the checks in the parser with
the analysis in the info() helper to be more confident they are
consistent.
2023-02-05 13:43:40 +01:00
edouard
42940f6385 fix: drop connections to hws in share xpub panel
Use needs to be able to start new connections
in the register descriptor step.
2023-02-04 18:27:07 +01:00
edouard
33e698b774
Merge #318: fix gui: use address.is_valid_for_network
c7dd94b7488ddfbe96b91a9eb1f0430c7c0b3f3a fix gui: use address.is_valid_for_network (edouard)

Pull request description:

  Use this nice helper from rust-bitcoin, instead
  of wrong checks.

ACKs for top commit:
  edouardparis:
    Self-ACK c7dd94b7488ddfbe96b91a9eb1f0430c7c0b3f3a

Tree-SHA512: f71775c84bde155e6c30ef3b25a064feaf10b95ca9a50395afd0b1808eeb1a9739f66a657cf36754e7d0648324e08469d7ecf3d9bad427b151e6956ee68db7df
2023-02-04 15:34:10 +01:00