Please fix this code "import subprocess import time import requests import json from…
- User
Please fix this code "import subprocess import time import requests import json from concurrent.futures import ThreadPoolExecutor, wait
def air_drop(address, token_address, airdrop_amount): try: subprocess.run(["spl-token", "transfer", "--fund-recipient", "--allow-unfunded-recipient", token_address, airdrop_amount, address], check=False) print("Airdropped:" + address) except Exception as e: if "HTTP status client error (429 Too Many Requests)" in str(e) or "Error" in str(e) or "Client" in str(e) or "Invalid" in str(e): with open("left.txt", "a") as f: f.write(address + "\n") else: raise e
def air_drop_with_rpc_switch(address, address_index, rpc_url_index, rpc_urls): air_drop(address, token_address, airdrop_amount) if (address_index + 1) % 100 == 0: subprocess.run(["solana", "config", "set", "--url", rpc_urls[rpc_url_index]], check=False) rpc_url_index = (rpc_url_index + 1) % len(rpc_urls) time.sleep(5) # wait for 5 seconds return rpc_url_index
with open('config.json', 'r') as f: config = json.load(f) token_address = config['token_address'] airdrop_amount = config['airdrop_amount'] rpc_urls = config['rpc_urls']
with open('wallets.txt', 'r') as f: lines = f.read().splitlines() with ThreadPoolExecutor(max_workers=20) as executor: rpc_url_index = 0 tasks = [executor.submit(air_drop_with_rpc_switch, line.strip(), index, rpc_url_index, rpc_urls) for index, line in enumerate(lines)] wait(tasks) "
- Assistant
import subprocess import time import requests import json from concurrent.futures import ThreadPoolExecutor, wait
def air_drop(address, token_address, airdrop_amount): try: subprocess.run(["spl-token", "transfer", "--fund-recipient", "--allow-unfunded-recipient", token_address, airdrop_amount, address], check=True) print("Airdropped:" + address) except Exception as e: if "HTTP status client error (429 Too Many Requests)" in str(e) or "Error" in str(e) or "Client" in str(e) or "Invalid" in str(e): with open("left.txt", "a") as f: f.write(address + "\n") else: raise e
def air_drop_with_rpc_switch(address, address_index, rpc_url_index, rpc_urls): air_drop(address, token_address, airdrop_amount) if (address_index + 1) % 100 == 0: subprocess.run(["solana", "config", "set", "--url", rpc_urls[rpc_url_index]], check=True) rpc_url_index = (rpc_url_index + 1) % len(rpc_urls) time.sleep(5) # wait for 5 seconds return rpc_url_index
with open('config.json', 'r') as f: config = json.load(f) token_address = config['token_address'] airdrop_amount = config['airdrop_amount'] rpc_urls = config['rpc_urls']
with open('wallets.txt', 'r') as f: lines = f.read().splitlines() with ThreadPoolExecutor(max_workers=20) as executor: rpc_url_index = 0 tasks = [executor.submit(air_drop_with_rpc_switch, line.strip(), index, rpc_url_index, rpc_urls) for index, line in enumerate(lines)] wait(tasks)