Initial commit: Electrum Telegram wallet bot with Tor support
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+64
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ELECTRUM_VERSION="${1:-4.7.2}"
|
||||
|
||||
echo ">>> Installing Electrum ${ELECTRUM_VERSION}"
|
||||
|
||||
WORKDIR="/tmp/electrum"
|
||||
mkdir -p "$WORKDIR"
|
||||
cd "$WORKDIR"
|
||||
|
||||
BASE_URL="https://download.electrum.org/${ELECTRUM_VERSION}"
|
||||
TARBALL="Electrum-${ELECTRUM_VERSION}.tar.gz"
|
||||
SIG_FILE="${TARBALL}.asc"
|
||||
|
||||
FINGERPRINT_THOMASV='6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6'
|
||||
FINGERPRINT_SOMBERNIGHT='0EED CFD5 CAFB 4590 6734 9B23 CA9E EEC4 3DF9 11DC'
|
||||
FINGERPRINT_EMZY='9EDA FF80 E080 6596 04F4 A76B 2EBB 056F D847 F8A7'
|
||||
|
||||
PUB_THOMASV='https://raw.githubusercontent.com/spesmilo/electrum/master/pubkeys/ThomasV.asc'
|
||||
PUB_SOMBERNIGHT='https://raw.githubusercontent.com/spesmilo/electrum/master/pubkeys/sombernight_releasekey.asc'
|
||||
PUB_EMZY='https://raw.githubusercontent.com/spesmilo/electrum/master/pubkeys/Emzy.asc'
|
||||
|
||||
echo ">>> Importing signing keys..."
|
||||
for pubkey_url in "$PUB_THOMASV" "$PUB_SOMBERNIGHT" "$PUB_EMZY"; do
|
||||
wget -q "$pubkey_url"
|
||||
done
|
||||
for key_file in *.asc; do
|
||||
gpg --import "$key_file"
|
||||
rm -f "$key_file"
|
||||
done
|
||||
|
||||
echo ">>> Downloading Electrum ${ELECTRUM_VERSION}..."
|
||||
wget -q "${BASE_URL}/${TARBALL}"
|
||||
wget -q "${BASE_URL}/${SIG_FILE}"
|
||||
|
||||
echo ">>> Verifying GPG signature..."
|
||||
VERIFY_OUTPUT=$(gpg --verify "$SIG_FILE" "$TARBALL" 2>&1 || true)
|
||||
echo "$VERIFY_OUTPUT"
|
||||
|
||||
echo "$VERIFY_OUTPUT" | grep -q "Good signature" \
|
||||
|| { echo "ERROR: GPG verification failed — no good signature found" >&2; exit 1; }
|
||||
|
||||
MATCHED=0
|
||||
for fp in "$FINGERPRINT_THOMASV" "$FINGERPRINT_SOMBERNIGHT" "$FINGERPRINT_EMZY"; do
|
||||
if echo "$VERIFY_OUTPUT" | grep -qF "$fp"; then
|
||||
echo ">>> Fingerprint matched: ${fp}"
|
||||
MATCHED=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
[ "$MATCHED" -eq 1 ] \
|
||||
|| { echo "ERROR: no trusted fingerprint found in verify output" >&2; exit 1; }
|
||||
|
||||
echo ">>> Creating venv and installing Electrum..."
|
||||
python3 -m venv --system-site-packages /opt/electrum
|
||||
/opt/electrum/bin/pip install --quiet --use-pep517 "${WORKDIR}/${TARBALL}"
|
||||
|
||||
ln -sf /opt/electrum/bin/electrum /usr/bin/electrum
|
||||
|
||||
rm -rf "$WORKDIR"
|
||||
|
||||
echo ">>> Done: Electrum ${ELECTRUM_VERSION} installed"
|
||||
echo ">>> Try: electrum --help"
|
||||
Reference in New Issue
Block a user