import sqlite3
import subprocess
import time
import os
# Caminho para o banco de dados SQLite
DB_PATH = "controle1.db"
# Função para executar comandos no terminal (cmd) com subprocess.Popen
def executar_comando_em_terminal(comando, manter_aberto=False):
"""
Executa o comando passado em um terminal CMD.
Se manter_aberto for True, o terminal permanecerá aberto após a execução.
Caso contrário, o terminal será fechado.
"""
# Se manter_aberto for True, usa "cmd /k", caso contrário, "cmd /c"
comando_terminal = 'cmd /k' if manter_aberto else 'cmd /c'
# Criar o comando completo para executar no terminal
comando_completo = f'{comando_terminal} start "" {comando}' if manter_aberto else comando
# Executar o comando em uma nova janela de terminal se for o caso
subprocess.Popen(comando_completo, creationflags=subprocess.CREATE_NEW_CONSOLE, shell=True)
print(f"Comando executado: {comando_completo}")
# Função para executar o comando bitcoind.exe com reindexação
def iniciar_bitcoind():
comando_bitcoind = [
'bitcoind.exe',
'-datadir=D:\\Bitcoin',
'-rpcuser=seuusuario',
'-rpcpassword=suasenha',
'-reindex'
]
print("Iniciando bitcoind com reindexação...")
# Executa o comando e mantém o terminal aberto
executar_comando_em_terminal(" ".join(comando_bitcoind), manter_aberto=True)
# Função para importar as chaves privadas (WIFs) no wallet
def importar_chaves_privadas():
try:
with sqlite3.connect(DB_PATH) as conn:
cursor = conn.cursor()
# Executar consulta SQL para recuperar todos os WIFs
cursor.execute("SELECT wif FROM mnemonics")
# Recuperar todos os resultados da consulta
wifs = cursor.fetchall()
# Verificar e processar WIFs
if wifs:
for wif in wifs:
#time.sleep(1) # Atraso de 1 segundo entre as importações de chaves
chave_privada = wif[0] # O WIF é o primeiro (e único) elemento da tupla
comando_bitcoin_cli = [
'bitcoin-cli.exe',
'-datadir=D:\\Bitcoin',
'-rpcuser=seuusuario',
'-rpcpassword=suasenha',
'-rpcwallet=Wallet',
'importprivkey',
chave_privada,
'Wallet',
'false'
]
# Executar o comando de importação da chave privada no mesmo terminal
executar_comando_em_terminal(" ".join(comando_bitcoin_cli), manter_aberto=False)
print(f"Chave privada importada com sucesso! WIF: {chave_privada}")
else:
print("Nenhum WIF encontrado.")
except sqlite3.Error as e:
print(f"Erro ao acessar o banco de dados: {e}")
# Função principal que orquestra todo o processo
def main():
# Inicia o bitcoind.exe com a opção de reindexação
iniciar_bitcoind()
# Aguardar 4 segundos antes de iniciar a importação das chaves
print("Aguardando 4 segundos antes de importar as chaves privadas...")
time.sleep(4)
# Importar as chaves privadas
importar_chaves_privadas()
if __name__ == "__main__":
main()
Nenhum comentário
Comente só assim vamos crescer juntos!
Observação: somente um membro deste blog pode postar um comentário.