633 Commits

Author SHA1 Message Date
edouard
2c7cd2b0ca
Merge #365: gui: make daemon config optional
9577e6a227a85aa3a2f337a52b0f2904ed836bdf gui: make daemon config optional (edouard)

Pull request description:

  If no daemon config path is present in the
  gui configuration file, gui will try first to connect
  to the socket path, either `daemon_rpc_path`
  if present in configuration file or default
  path.

  close #147

ACKs for top commit:
  edouardparis:
    Self-ACK 9577e6a227a85aa3a2f337a52b0f2904ed836bdf

Tree-SHA512: 85e95dc3e4d5c0e4642cd75387fffd17ddd23e14459644238fed82cb8477bee27ae4e1f603d3dd2a7615ec8e397d9f50e2239a9c1ced49892cb02bd8cc5f748b
2023-03-14 16:19:18 +01:00
edouard
9577e6a227 gui: make daemon config optional
If no daemon config path is present in the
gui config, gui will try first to connect
to the socket pat, either `daemon_rpc_path`
if present in configuration file or default
path.

close #147
2023-03-14 13:32:39 +01:00
edouard
1d6a34e910
Merge #345: Add panic_hook to gui
bda82fe83db29da31f78d61eaa006b40b824fe5e gui: ignore hw apdu exchanges in log (edouard)
a13bb0272b62a989ea079f498cfa1c9925d8b63b gui: add logger module and handle log file destinations (edouard)
9ccb22b2ac943f500ae1940f0279525e0e277637 Add panic_hook to gui (edouard)

Pull request description:

  close https://github.com/wizardsardine/liana/issues/338

ACKs for top commit:
  edouardparis:
    Self-ACK bda82fe83db29da31f78d61eaa006b40b824fe5e

Tree-SHA512: b5c87d9c27113c184101dcfb11cdf799e78eda48acf2dce24f9a432f0e9c8ec1b513e2a0e103b7a9c860d8ff5ce4e7d9ee1b528ad8c90433ffbfc101fa008e5f
2023-03-10 11:58:25 +01:00
edouard
bda82fe83d gui: ignore hw apdu exchanges in log
A solution to keep it only for debug was
not found for now with tracing, but it could
be easily fixed if ledger_transport_hid use
debug instead of info as log level.
2023-03-08 18:22:37 +01:00
edouard
a13bb0272b gui: add logger module and handle log file destinations
Installer has its own log file installer.log that is removed
after successful install.
When changing network, the destination log file change
to <datadir>/<network>/liana-gui.log
2023-03-08 16:12:19 +01:00
Antoine Poinsot
8551424d15
Merge #363: ci: cleanup the GUI dependencies.
87f54e147983ed3e0ef88b32895f7f9637495312 doc: cleanup GUI dependencies instructions (Antoine Poinsot)
a36e16e00d31741946aa6fb7a4f8110089baa48b ci: cleanup the GUI dependencies. (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    self-ACK 87f54e147983ed3e0ef88b32895f7f9637495312 -- only doc

Tree-SHA512: be2def2a45cc617b5dcc8d5cf734b12f2ceaeacb3fcb8cd48a6aa548b35a5590f44818ebd81ca42cd6722522d0bb6f10d9598ca0726b1580881901c87f323074
2023-03-07 14:20:25 +01:00
Antoine Poinsot
87f54e1479
doc: cleanup GUI dependencies instructions 2023-03-07 14:19:18 +01:00
Antoine Poinsot
a36e16e00d
ci: cleanup the GUI dependencies. 2023-03-07 14:17:50 +01:00
edouard
9ccb22b2ac Add panic_hook to gui 2023-03-07 14:17:44 +01:00
Antoine Poinsot
1d989301f0
Merge #361: Add dependencies for ubuntu
12050a3cc58cfeceab10b0a2689ff8a504a7f144 add link to TRY.md for dependencies (cc1)

Pull request description:

  I got few errors while building liana-gui with Ubuntu Mate 22.10, then try on a  fresh install with ubuntu 22.04 server (minimal install):

  ```
   running: "cmake" "/home/pythcoiner/.cargo/registry/src/github.com-1ecc6299db9ec823/freetype-sys-0.13.1/freetype2" "-DWITH_BZip2=OFF" "-DWITH_HarfBuzz=OFF" "-DWITH_PNG=OFF" "-DWITH_ZLIB=OFF" "-DCMAKE_INSTALL_PREFIX=/home/pythcoiner/liana/gui/target/release/build/freetype-sys-952a2cbdb10ff868/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=c++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_ASM_COMPILER=/usr/bin/cc" "-DCMAKE_BUILD_TYPE=Release"

    --- stderr
    thread 'main' panicked at '
    failed to execute command: No such file or directory (os error 2)
    is `cmake` not installed?

    build script failed, must exit now', /home/pythcoiner/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.49/src/lib.rs:1104:5
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
  warning: build failed, waiting for other jobs to finish...
  ```

  fixed by

  ```
  sudo apt install cmake.
  ```

  then:

  ```
  --- stderr
    CMake Deprecation Warning at CMakeLists.txt:78 (cmake_minimum_required):
      Compatibility with CMake < 2.8.12 will be removed from a future version of
      CMake.

      Update the VERSION argument <min> value or use a ...<max> suffix to tell
      CMake that the project does not need compatibility with older versions.

    CMake Error at CMakeLists.txt:119 (project):
      The CMAKE_CXX_COMPILER:

        c++

      is not a full path and was not found in the PATH.

      Tell CMake where to find the compiler by setting either the environment
      variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
      to the compiler, or to the compiler name if it is in the PATH.

    thread 'main' panicked at '
    command did not execute successfully, got: exit status: 1

    build script failed, must exit now', /home/pythcoiner/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.49/src/lib.rs:1104:5
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
  warning: build failed, waiting for other jobs to finish...
  ```

  fix by:

  ```
  sudo apt install build-essential
  ```

  then:

  ```
  --- stderr
    thread 'main' panicked at 'Could not run `"pkg-config" "--libs" "--cflags" "fontconfig" "fontconfig >= 2.11.1"`
    The pkg-config command could not be found.

    Most likely, you need to install a pkg-config package for your OS.
    Try `apt install pkg-config`, or `yum install pkg-config`,
    or `pkg install pkg-config` depending on your distribution.

    If you've already installed it, ensure the pkg-config command is one of the
    directories in the PATH environment variable.

    If you did not expect this build to link to a pre-installed system library,
    then check documentation of the servo-fontconfig-sys crate for an option to
    build the library from source, or disable features or dependencies
    that require pkg-config.', /home/pythcoiner/.cargo/registry/src/github.com-1ecc6299db9ec823/servo-fontconfig-sys-5.1.0/build.rs:34:17
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
  warning: build failed, waiting for other jobs to finish...
  ```

  fix by:

  ```
  sudo apt install libfontconfig1-dev

  ```

  then:

  ```
  --- stderr
    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "`\"pkg-config\" \"--libs\" \"--cflags\" \"libudev\"` did not exit successfully: exit status: 1\nerror: could not find system library 'libudev' required by the 'libudev-sys' crate\n\n--- stderr\nPackage libudev was not found in the pkg-config search path.\nPerhaps you should add the directory containing `libudev.pc'\nto the PKG_CONFIG_PATH environment variable\nNo package 'libudev' found\n"', /home/pythcoiner/.cargo/registry/src/github.com-1ecc6299db9ec823/libudev-sys-0.1.4/build.rs:38:41
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
  warning: build failed, waiting for other jobs to finish...
  ```

  fix by:

  ```
  sudo apt install librust-libudev-dev
  ```

ACKs for top commit:
  darosior:
    Thanks! ACK 12050a3

Tree-SHA512: 547768c2b71e4cfa23ce7681f0420bb19e57a8bf4ac2e3a05ad1eb415c4e2935fb32afd1363bb74a3736938d23fdbdae108d058aaa83a72a67d434b9fe7a686a
2023-03-07 14:17:01 +01:00
cc1
12050a3cc5 add link to TRY.md for dependencies 2023-03-07 14:08:29 +01:00
Antoine Poinsot
fd9745363c
Merge #362: Update TRY.md: Resolve dead link
bf02236239e4977bb30e56fb85fd63efc5145e10 Update TRY.md: Resolve dead link (MarcoFalke)

Pull request description:

ACKs for top commit:
  darosior:
    ACK bf02236239e4977bb30e56fb85fd63efc5145e10

Tree-SHA512: 80b7af1d71bcef02a14270e04614418948abc410b55dcdde8b91283d4738dec58b0d112bcd628c57350c549db94c424e17db89c8ea94e756db0456ba6c1567a0
2023-03-02 15:38:18 +01:00
MarcoFalke
bf02236239 Update TRY.md: Resolve dead link 2023-03-02 12:45:08 +01:00
Antoine Poinsot
26ff92d793
Merge #359: doc: some tiny additions to TRY.md
8b990a86efb426a33dc09df0f4d57517e803aace doc: some tiny additions to TRY.md (Antoine Poinsot)

Pull request description:

  After feedback from Kevin

ACKs for top commit:
  darosior:
    self-ACK 8b990a86efb426a33dc09df0f4d57517e803aace -- just some doc.

Tree-SHA512: e63c3beb2ab7c925a02dfade8f85379d504080af09671bff77f71fdbb73003e88bae1e99bf86720fe5ce8cf7124d4e09c467d4f081dfb21203507f49f8002577
2023-02-28 11:32:35 +01:00
Antoine Poinsot
8b990a86ef
doc: some tiny additions to TRY.md
After feedback from Kevin
2023-02-28 11:31:54 +01:00
Antoine Poinsot
5d5792197d
Merge #358: 0.3 release, part 2: update Liana dependency in the GUI, release 0.3 of the GUI
d24dc06d964bd89f491e483b0d0d3fc15541e03e doc: adapt the try-out guide to non-Linux platforms (Antoine Poinsot)
25760e88b4dc545ad79c29e9c1c45f760e260c7b README: various fixes, especially regarding hot keys now available (Antoine Poinsot)
c66eb430a863153229521f1897e6931a72e694bc doc: update the TRY.md tutorial to use hot keys (Antoine Poinsot)
1449c4865e02f34b72215c886cf4e1a7f0c6ca58 README: update the introduction with the current state of development (Antoine Poinsot)
46a4da38f80d65c3f38f9cdd256b9a82840cc8e1 gui: update Liana to 0.3 and release 0.3 (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    self-ACK d24dc06d964bd89f491e483b0d0d3fc15541e03e -- mostly documentation

Tree-SHA512: 41692c5b2e0fcfe10313bef04280e5b1338e8efd3339980a6b0cb1bb78bba41adf18b8b6b4d216e5699077eda094b295e47343d2f6497dc286e9d2e3424b06cc
2023-02-27 18:00:53 +01:00
Antoine Poinsot
d24dc06d96
doc: adapt the try-out guide to non-Linux platforms
It's not a first-class support but it should be usable on other
platforms now that we don't require running a HW simulator anymore.
2023-02-27 17:58:22 +01:00
Antoine Poinsot
25760e88b4
README: various fixes, especially regarding hot keys now available 2023-02-27 17:55:38 +01:00
Antoine Poinsot
c66eb430a8
doc: update the TRY.md tutorial to use hot keys 2023-02-27 16:57:50 +01:00
Antoine Poinsot
1449c4865e
README: update the introduction with the current state of development 2023-02-27 16:57:49 +01:00
Antoine Poinsot
46a4da38f8
gui: update Liana to 0.3 and release 0.3 2023-02-27 16:57:49 +01:00
Antoine Poinsot
fbde855ede
Merge #357: Release 0.3
b8cd0d0e27f1a507edad4521303c8f45587db973 Bump version to 0.3 (Antoine Poinsot)
4226da3c5a27d585134798fc172258d2dc4e4f0c CHANGELOG: 0.3 release notes (Antoine Poinsot)

Pull request description:

ACKs for top commit:
  darosior:
    ACK b8cd0d0e27f1a507edad4521303c8f45587db973

Tree-SHA512: dfb0680cb3ab682023c6db6462c61fee98eb9551a7d0b678ed4fefb9baffe8780bfa1e6a7b5a8e50029bf910cb1beb3b3269b1cd63158e9cc5a16691300b1f3f
2023-02-27 14:48:51 +01:00
Antoine Poinsot
b8cd0d0e27
Bump version to 0.3 2023-02-27 14:46:28 +01:00
Antoine Poinsot
4226da3c5a
CHANGELOG: 0.3 release notes 2023-02-27 14:33:02 +01:00
edouard
ca5c368c07
Merge #353: gui: enumerate multiple ledger devices
e26a6313180220ffa507ea4c0745fee8cf86ee25 gui: enumerate multiple ledger devices (edouard)

Pull request description:

  close #165

ACKs for top commit:
  edouardparis:
    Self-ACK e26a6313180220ffa507ea4c0745fee8cf86ee25

Tree-SHA512: 6eee38e49d75215db78d350a8480766e62ba34c874e88a15f0d0bcd49b8f16834054fc2a5c18e1a248aae42619f1b42505accaa79ecafa09d0e1bbddfdebacb6
2023-02-17 14:02:50 +01:00
edouard
b99069e700
Merge #354: installer: use DescriptorXKey without wildcard
8c11197b3111b1be5809b0f7515f81cb99db7188 installer: use DescriptorMultiXKey without wildcard (edouard)

Pull request description:

  close #350

ACKs for top commit:
  edouardparis:
    Self-ACK 8c11197b3111b1be5809b0f7515f81cb99db7188

Tree-SHA512: 7e91e64fa364daf402961680db574511c1ce604dc2507a08f1fbf69f6a1fb9d3393dc2623a914573e49091b22f4c7cd87a032645ae18675c842a17e1569b2d4d
2023-02-17 14:00:39 +01:00
Antoine Poinsot
eb6521b096
Merge #352: Transaction creation sanity checks fixes
518eb91064ac4120792b71cec8f52eb26e359b89 commands: print the PSBT in base64 on sanity checks failure (Antoine Poinsot)
6e1c41238faaca0b6cf7e4131885ec2588d2137c commands: have a detailed error for the insane fee sanity check (Antoine Poinsot)
c711c5b696b7c8353da29b3c451bf2ca00e8daa8 commands: don't overestimate the feerate in tx creation sanity checks (Antoine Poinsot)

Pull request description:

  Fixes #343

ACKs for top commit:
  edouardparis:
    utACK 518eb91064ac4120792b71cec8f52eb26e359b89

Tree-SHA512: 99ec10c5e7aa050fcb2b0ac6f0d546e14b2f00e75430ebdaceff78758880a7a8336bda84692738599b7a0f1d56a92db75321e4d2f4e218a42ac920e7dd8503a5
2023-02-17 11:02:22 +01:00
edouard
8c11197b31 installer: use DescriptorMultiXKey without wildcard
close #350
2023-02-17 10:12:18 +01:00
Antoine Poinsot
518eb91064
commands: print the PSBT in base64 on sanity checks failure
To make it readable..
2023-02-17 09:54:43 +01:00
Antoine Poinsot
6e1c41238f
commands: have a detailed error for the insane fee sanity check 2023-02-17 09:54:43 +01:00
edouard
e26a631318 gui: enumerate multiple ledger devices
close #165
2023-02-16 16:37:52 +01:00
Antoine Poinsot
c711c5b696
commands: don't overestimate the feerate in tx creation sanity checks
It was accounting for the transaction size without witnesses!
2023-02-16 16:09:54 +01:00
edouard
04eb511366
Merge #346: GUI: hot signer
26ad36f34e28e38a7c205343b6e5376a7f580e6f fix register descriptor prompt (edouard)
9fac6277f42b605200134e6a670cb3511edf80cc Sign with hot signer (edouard)
e76459d159630068f2c0bd9799ce908c30e42d6e Load hot signer in Wallet (edouard)
ecb3e114865b7e502b2a709f4bd2db4752de8976 installer: store mnemonic in datadir (edouard)
7a76754842b7eb688cbc6cd791c412f9006f407d Add title to installer final step (edouard)
c70ac114768a6410e01308bbc69ee4db853947e7 installer: add recover seed step (edouard)
037c4d025d651940ef42637ae5a6b8592dae56cb installer: add signer to participate wallet process (edouard)
233f9b1886078ad2a94704537df8dacfeb5fe06a installer: add backup mnemonic step (edouard)
f8dcd1116dfe820b6de18364b4d7ecaadbe0e7db Add hot signer to create descriptor step (edouard)
1f09653198aefd699afd0e2cc5d26235c3193fb8 Add signer module to gui (edouard)
f3f04a41b00aef014f7f45b3418f5913a4361b8e Use liana hot signer (edouard)

Pull request description:

ACKs for top commit:
  darosior:
    ACK 26ad36f34e28e38a7c205343b6e5376a7f580e6f -- tested the branch merged on master.

Tree-SHA512: 578be77aff99c40aa21049bfccfb8d310d04ca48213f7af62ec8d5444e044a8375966568e496ff5443a48d2aac648387c410747d12ad15fa21a1bff613d17673
2023-02-16 15:09:08 +01:00
edouard
4f4327fd1f
Merge #351: Gui unconfirmed badge
9535b802584a153fd0e6fcb808d8af7aa067ec95 Add spent tag to confirmed broadcast tx (edouard)
120f87462f0402c8a056c4af2c318601174bdfb6 Change pending label for unconfirmed (edouard)

Pull request description:

  ![2023-02-16T10:39:22,026408712+01:00](https://user-images.githubusercontent.com/6933020/219334057-c3b0a3f3-500e-4f4e-9389-219a62e7a48a.png)

ACKs for top commit:
  edouardparis:
    Self-ACK 9535b802584a153fd0e6fcb808d8af7aa067ec95

Tree-SHA512: 537f65e96ea99821ea2d342e80c55d9e1c8508664cb9fadb00ef08531e0f4c337b33a53d93e397ab07dfc8f1e051e18445d87baf4fe34acb1793561c48e3eded
2023-02-16 13:39:58 +01:00
edouard
9535b80258 Add spent tag to confirmed broadcast tx
close #233
2023-02-16 10:49:22 +01:00
edouard
120f87462f Change pending label for unconfirmed
close #230
close #231
2023-02-16 10:41:29 +01:00
edouard
26ad36f34e fix register descriptor prompt 2023-02-16 09:59:57 +01:00
edouard
9fac6277f4 Sign with hot signer 2023-02-16 09:59:57 +01:00
edouard
e76459d159 Load hot signer in Wallet 2023-02-16 09:59:57 +01:00
edouard
ecb3e11486 installer: store mnemonic in datadir 2023-02-16 09:59:57 +01:00
edouard
7a76754842 Add title to installer final step 2023-02-16 09:59:57 +01:00
edouard
c70ac11476 installer: add recover seed step 2023-02-16 09:59:57 +01:00
edouard
037c4d025d installer: add signer to participate wallet process 2023-02-16 09:59:57 +01:00
edouard
233f9b1886 installer: add backup mnemonic step 2023-02-16 09:59:57 +01:00
edouard
f8dcd1116d Add hot signer to create descriptor step 2023-02-16 09:59:57 +01:00
edouard
1f09653198 Add signer module to gui 2023-02-16 09:59:57 +01:00
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