Skip to content

Instantly share code, notes, and snippets.

View SomberNight's full-sized avatar

ghost43 SomberNight

View GitHub Profile
@SomberNight
SomberNight / script_seedv14.py
Last active November 4, 2022 19:07
Extract seed and xprv from seed_v14 Electrum wallet file using modern Electrum
# Script to extract seed and xprv from old "v14" wallet file using modern Electrum (tested with 4.3.2).
# You can use this script if you are getting the following error when opening your wallet:
# WalletFileException("Your wallet has an unsupported seed version: 14.\n\nTo open this wallet, try 'git checkout seed_v14'")
import json
import electrum
from electrum.storage import WalletStorage
from electrum.keystore import BIP32_KeyStore
@SomberNight
SomberNight / gpg_key_0xCA9EEEC43DF911DC.txt
Created June 15, 2021 18:43
gpg key 0xCA9EEEC43DF911DC (SomberNight/ghost43 (Electrum RELEASE signing key))
GPG key
0x3DF911DC
0xCA9EEEC43DF911DC
0EEDCFD5CAFB459067349B23CA9EEEC43DF911DC
0EED CFD5 CAFB 4590 6734 9B23 CA9E EEC4 3DF9 11DC
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGDI71QBEACpSQg2/ZronvXY/Jhe9N2vfasExcVGEfBX0P6IqUGy/WTERmxr
@SomberNight
SomberNight / a.patch
Created February 5, 2021 20:11
electrum qt gui systray patch
diff --git a/electrum/gui/qt/__init__.py b/electrum/gui/qt/__init__.py
index 00eb5d34ee..31f9dd06c5 100644
--- a/electrum/gui/qt/__init__.py
+++ b/electrum/gui/qt/__init__.py
@@ -122,16 +122,19 @@ class ElectrumGui(Logger):
self.network_updated_signal_obj = QNetworkUpdatedSignalObject()
self._num_wizards_in_progress = 0
self._num_wizards_lock = threading.Lock()
- # init tray
self.dark_icon = self.config.get("dark_icon", False)
@SomberNight
SomberNight / wallet_from_bip32seed.py
Last active December 27, 2020 22:56
restore electrum wallet from bip32 root seed
from electrum.bip32 import BIP32Node
bip32_seed = bytes.fromhex('deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef')
rootnode = BIP32Node.from_rootseed(bip32_seed, xtype="p2wpkh")
node = rootnode.subkey_at_private_derivation("m/84h/0h/0h")
node.to_xprv()
@SomberNight
SomberNight / asd
Created September 9, 2020 17:51
bitcoin core 0.20.1 getdescriptorinfo/importmulti checksum issue
$ bitcoin-cli -rpcuser=doggman -rpcpassword=donkey -rpcport=18554 -regtest createwallet "ms2of3" true
$ bitcoin-cli -rpcuser=doggman -rpcpassword=donkey -rpcport=18554 -regtest getdescriptorinfo "wsh(sortedmulti(2,[b2768d2f/48h/1h/0h/2h]tpubDFBRbXNvA84hPkZ82k5wDucCFMcS9RFX7mnehuth8dvGGZCFM8omREtmj4oUhdmByjveSW4QVzkzD4B7c5yA62AenXKoDDFVE69gEqh9bo4/0/*,[045c5f3c/48h/1h/0h/2h]tpubDE9MoZJU8Rr3woj9jBbuNmuoECyEkhsMXVSeA2vZh9epJfEae4SJjCjqsHM9NDbY29yS3bhchAiJEsSncBLXfnpu7utfbzigkeKW4XYWPyZ/0/*,[0c0c27cb/48h/1h/0h/2h]tpubDFTGo9mYUAbM55vfcU6P6b5ZtALzbhgzBVCeaxzgwAEjFBaZrMFCXgK1jubSrBUXoz7mdd1a7tmbnRtwy4fDV6canBD6gdcRCFeD5gs1kYN/0/*))"
{
"descriptor": "wsh(sortedmulti(2,[b2768d2f/48'/1'/0'/2']tpubDFBRbXNvA84hPkZ82k5wDucCFMcS9RFX7mnehuth8dvGGZCFM8omREtmj4oUhdmByjveSW4QVzkzD4B7c5yA62AenXKoDDFVE69gEqh9bo4/0/*,[045c5f3c/48'/1'/0'/2']tpubDE9MoZJU8Rr3woj9jBbuNmuoECyEkhsMXVSeA2vZh9epJfEae4SJjCjqsHM9NDbY29yS3bhchAiJEsSncBLXfnpu7utfbzigkeKW4XYWPyZ/0/*,[0c0c27cb/48'/1'/0'/2']tpubDFTGo9mYUAbM55vfcU6P6b5ZtALzbhgzBVCeaxzgwAEjFBa
@SomberNight
SomberNight / script.py
Created May 4, 2020 04:29
Extract seed and xprv from Electrum wallet file from circa version 3.0
import lib as electrum
Wallet = electrum.wallet.Wallet
WalletStorage = electrum.storage.WalletStorage
password = "1234"
storage = WalletStorage('/home/user/.electrum/testnet/wallets/this_should_be_the_path_to_your_wallet_file')
storage.decrypt(password)
wallet = Wallet(storage)
wallet.keystore.get_seed(password)
wallet.keystore.get_master_private_key(password)
@SomberNight
SomberNight / fun.py
Last active February 20, 2020 14:54
Python3 interfaces plaything
from abc import ABC, abstractmethod
class InterfaceA(ABC):
@abstractmethod
def method_a(self) -> None: ...
class InterfaceB(ABC):
@abstractmethod
def method_b(self) -> None: ...
@SomberNight
SomberNight / build.sh
Created June 26, 2019 02:06 — forked from elpaso/build.sh
Build script for Qt5 in debug mode with SIP bindings and PyQt5 QWT and QScintilla
#!/bin/bash
############################################################
# This script builds Qt5, QScintilla and qwt with
# sip Python bindings.
# Tested and developed on xenial 64bit
# All other dev packages required to build QGIS need
# to be installed with apt
# Qt is built in debug mode.
set -e
@SomberNight
SomberNight / derive_address.py
Created January 25, 2019 14:38
electrum derive_address example
from electrum import bitcoin
from electrum import keystore
ks = keystore.from_xpub("zpub6nsHdRuY92FsMKdbn9BfjBCG6X8pyhCibNP6uDvpnw2cyrVhecvHRMa3Ne8kdJZxjxgwnpbHLkcR4bfnhHy6auHPJyDTQ3kianeuVLdkCYQ")
pubkey = ks.derive_pubkey(for_change=False, n=0)
addr = bitcoin.pubkey_to_address('p2wpkh', pubkey)
print(addr)