From f7e2d186ee09583da598ec7ecc106730469c5db4 Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Mon, 13 Apr 2020 21:55:51 +0700 Subject: [PATCH] Support BIP39 seeds --- Dockerfile | 2 +- bip39toxprv | 12 ++++++++++++ entrypoint | 8 +++++++- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100755 bip39toxprv diff --git a/Dockerfile b/Dockerfile index ed0da75..1d571f0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,5 +17,5 @@ RUN ln -s $ELECTRUM_INSTALL_DIR/run_electrum /usr/local/bin/electrum WORKDIR /root -COPY entrypoint /usr/local/bin/ +COPY entrypoint bip39toxprv /usr/local/bin/ ENTRYPOINT ["entrypoint"] diff --git a/bip39toxprv b/bip39toxprv new file mode 100755 index 0000000..2c22240 --- /dev/null +++ b/bip39toxprv @@ -0,0 +1,12 @@ +#!/usr/bin/env python3 + +from electrum import keystore +import sys + +mnemonic = ' '.join(sys.argv[1: ]) + +if not keystore.bip39_is_checksum_valid(mnemonic)[0]: + sys.exit(1) + +k = keystore.from_bip39_seed(mnemonic, "", "m/84'/0'/0'") +print(k.xprv) diff --git a/entrypoint b/entrypoint index 1bb87c1..a51faac 100755 --- a/entrypoint +++ b/entrypoint @@ -2,5 +2,11 @@ seed=$1 -electrum restore "$seed" +echo "Importing seed or key..." +if ! electrum restore "$seed" > /dev/null 2>&1 ]]; then + if ! electrum restore "$(bip39toxprv $seed)" > /dev/null 2>&1; then + >&2 echo "Error: Seed or key not recognised." + exit 1 + fi +fi electrum --gui text