-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwalletcreate-withoutconsole.py
53 lines (45 loc) · 2.35 KB
/
walletcreate-withoutconsole.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from eth_account import Account
def generate_account(nums: int, output_file: str = None):
"""
Генерация Ethereum-кошельков с мнемоническими фразами.
:param nums: Количество кошельков для генерации.
:param output_file: Путь для сохранения данных в текстовый файл (необязательно).
:return: Список сгенерированных кошельков.
"""
accounts = []
try:
# Открываем файл с указанием кодировки UTF-8
with open(output_file, "w", encoding="utf-8") if output_file else None as file:
for i in range(nums):
# Включаем возможность работы с мнемониками
Account.enable_unaudited_hdwallet_features()
# Генерируем аккаунт и мнемонику
account, mnemonic = Account.create_with_mnemonic()
# Формируем структуру данных
account_data = {
"address": account.address,
"mnemonic": mnemonic,
"private_key": "0x" + account.key.hex()
}
accounts.append(account_data)
# Форматируем строку для записи
account_text = (
f"Аккаунт {i + 1}:\n"
f"Адрес: {account.address}\n"
f"Фраза: {mnemonic}\n"
f"Приватный ключ: {account_data['private_key']}\n"
f"{'-' * 40}\n"
)
# Записываем в файл, если указан путь
if file:
file.write(account_text)
if output_file:
print(f"Данные аккаунтов сохранены в файл: {output_file}")
return accounts
except Exception as e:
print(f"Ошибка при генерации аккаунтов: {e}")
return []
# Пример вызова функции
if __name__ == "__main__":
output_path = "accounts.txt" # Путь для сохранения в текстовый файл
generate_account(2, output_file=output_path)