Post
Topic
Board Proje Geliştirme
Re: Bitcoin; Algoritma Üzerine Yöntemler
by
Jupiter_01
on 19/07/2024, 11:25:00 UTC
aşadaki kodda aynı anda 3 ağda (Eth, Bnb, Matic) kontrol etmenizi sağlar. Bu sefer sizden Private Keyinizi ister ve arayüzlü exe haline hetirmedim ki açık kaynak kodlu olsun diye... yine modülleri yüklemeyi unutmayın....


import os
import threading
from web3 import Web3
from eth_account import Account
import tkinter as tk
from tkinter import scrolledtext, messagebox

bsc = Web3(Web3.HTTPProvider('https://bsc-dataseed.binance.org/'))
ethereum = Web3(Web3.HTTPProvider('https://cloudflare-eth.com'))
polygon = Web3(Web3.HTTPProvider('https://polygon-rpc.com'))

def generate_random_keypair():
    """Rastgele bir Ethereum/BSC Keypair üretir."""
    account = Account.create(os.urandom(32))
    return account.key, account.address

def check_balance(address, web3):
    """Belirtilen adresin bakiyesini kontrol eder."""
    balance = web3.eth.get_balance(address)
    return balance

class BSCApp:
    def __init__(self, root):
        self.root = root
        self.root.title("BSC, Ethereum ve Polygon (MATIC) Balance Checker")
       
        self.is_running = False
       
        self.lbl = tk.Label(root, text="Lütfen bakiyesini kontrol etmek istediğiniz private key'i girin:")
        self.lbl.pack(pady=10)
       
        self.private_key_entry = tk.Entry(root, width=50)
        self.private_key_entry.pack(pady=5)
       
        self.start_button = tk.Button(root, text="Başlat", command=self.start_checking)
        self.start_button.pack(pady=5)
       
        self.stop_button = tk.Button(root, text="Durdur", command=self.stop_checking)
        self.stop_button.pack(pady=5)
       
        self.output_text = scrolledtext.ScrolledText(root, width=60, height=15)
        self.output_text.pack(pady=10)
       
        self.found_text = scrolledtext.ScrolledText(root, width=60, height=10, bg='light yellow')
        self.found_text.pack(pady=10)
       
        self.thread = None
   
    def start_checking(self):
        if not self.is_running:
            self.is_running = True
            self.output_text.insert(tk.END, "İşlem başlatıldı...\n")
            self.output_text.see(tk.END)
            self.thread = threading.Thread(target=self.check_balances)
            self.thread.start()
        else:
            messagebox.showwarning("Uyarı", "İşlem zaten çalışıyor.")
   
    def stop_checking(self):
        if self.is_running:
            self.is_running = False
            self.output_text.insert(tk.END, "İşlem durduruldu...\n")
            self.output_text.see(tk.END)
        else:
            messagebox.showwarning("Uyarı", "Zaten çalışan bir işlem yok.")
   
    def check_balances(self):
        user_private_key = self.private_key_entry.get()
        try:
            account = Account.from_key(user_private_key)
        except Exception as e:
            self.output_text.insert(tk.END, f"Geçersiz private key: {e}\n")
            self.is_running = False
            return
       
        user_address = account.address
        user_balance_bsc = check_balance(user_address, bsc)
        user_balance_ethereum = check_balance(user_address, ethereum)
        user_balance_polygon = check_balance(user_address, polygon)
       
        user_balance_bsc_in_bnb = Web3.from_wei(user_balance_bsc, 'ether')
        user_balance_ethereum_in_eth = Web3.from_wei(user_balance_ethereum, 'ether')
        user_balance_polygon_in_matic = Web3.from_wei(user_balance_polygon, 'ether')
       
        self.output_text.insert(tk.END, f"Kullanıcı Adresi: {user_address}\n")
        self.output_text.insert(tk.END, f"BSC Bakiye: {user_balance_bsc_in_bnb} BNB\n")
        self.output_text.insert(tk.END, f"Ethereum Bakiye: {user_balance_ethereum_in_eth} ETH\n")
        self.output_text.insert(tk.END, f"Polygon Bakiye: {user_balance_polygon_in_matic} MATIC\n")
        self.output_text.see(tk.END)
       
        if user_balance_bsc > 0 or user_balance_ethereum > 0 or user_balance_polygon > 0:
            self.found_text.insert(tk.END, f"Kullanıcı Adresi: {user_address}\n")
            self.found_text.insert(tk.END, f"BSC Bakiye: {user_balance_bsc_in_bnb} BNB\n")
            self.found_text.insert(tk.END, f"Ethereum Bakiye: {user_balance_ethereum_in_eth} ETH\n")
            self.found_text.insert(tk.END, f"Polygon Bakiye: {user_balance_polygon_in_matic} MATIC\n")
            self.found_text.insert(tk.END, f"Private Key: {user_private_key}\n\n")
            self.found_text.see(tk.END)
       
        found = False
        counter = 0
        while self.is_running and not found:
            private_key, address = generate_random_keypair()
            balance_bsc = check_balance(address, bsc)
            balance_ethereum = check_balance(address, ethereum)
            balance_polygon = check_balance(address, polygon)
           
            balance_bsc_in_bnb = Web3.from_wei(balance_bsc, 'ether')
            balance_ethereum_in_eth = Web3.from_wei(balance_ethereum, 'ether')
            balance_polygon_in_matic = Web3.from_wei(balance_polygon, 'ether')
           
            self.output_text.insert(tk.END, f"{private_key.hex()}\n")
            self.output_text.insert(tk.END, f"BSC: {balance_bsc_in_bnb} BNB\n")
            self.output_text.insert(tk.END, f"Ethereum: {balance_ethereum_in_eth} ETH\n")
            self.output_text.insert(tk.END, f"Polygon: {balance_polygon_in_matic} MATIC\n")
            self.output_text.see(tk.END)
           
            if balance_bsc > 0 or balance_ethereum > 0 or balance_polygon > 0:
                found = True
                with open("buldumm.txt", "a") as f:
                    f.write(f"Private Key: {private_key.hex()}\n")
                    f.write(f"Address: {address}\n")
                    f.write(f"BSC Balance: {balance_bsc_in_bnb} BNB\n")
                    f.write(f"Ethereum Balance: {balance_ethereum_in_eth} ETH\n")
                    f.write(f"Polygon Balance: {balance_polygon_in_matic} MATIC\n\n")
                self.found_text.insert(tk.END, f"Address: {address}\n")
                self.found_text.insert(tk.END, f"BSC Balance: {balance_bsc_in_bnb} BNB\n")
                self.found_text.insert(tk.END, f"Ethereum Balance: {balance_ethereum_in_eth} ETH\n")
                self.found_text.insert(tk.END, f"Polygon Balance: {balance_polygon_in_matic} MATIC\n")
                self.found_text.insert(tk.END, f"Private Key: {private_key.hex()}\n\n")
                self.found_text.see(tk.END)
           
            counter += 1
            if counter % 1000 == 0:
                user_balance_bsc = check_balance(user_address, bsc)
                user_balance_ethereum = check_balance(user_address, ethereum)
                user_balance_polygon = check_balance(user_address, polygon)
               
                user_balance_bsc_in_bnb = Web3.from_wei(user_balance_bsc, 'ether')
                user_balance_ethereum_in_eth = Web3.from_wei(user_balance_ethereum, 'ether')
                user_balance_polygon_in_matic = Web3.from_wei(user_balance_polygon, 'ether')
               
                self.output_text.insert(tk.END, f"Kullanıcı Adresi: {user_address}\n")
                self.output_text.insert(tk.END, f"BSC Bakiye: {user_balance_bsc_in_bnb} BNB\n")
                self.output_text.insert(tk.END, f"Ethereum Bakiye: {user_balance_ethereum_in_eth} ETH\n")
                self.output_text.insert(tk.END, f"Polygon Bakiye: {user_balance_polygon_in_matic} MATIC\n")
                self.output_text.see(tk.END)

if __name__ == "__main__":
    root = tk.Tk()
    app = BSCApp(root)
    root.mainloop()