Files
mini_code/ton/ton 撞助记词.py
2025-12-28 17:07:55 +08:00

117 lines
3.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import random
import threading
import time
import asyncio
import requests
from loguru import logger
from concurrent.futures import ThreadPoolExecutor
from tonutils.client import TonapiClient, ToncenterV3Client
from tonutils.utils import to_amount
from tonutils.wallet import (
WalletV3R1,
# Uncomment the following lines to use different wallet versions:
WalletV3R2,
WalletV4R1,
WalletV4R2,
WalletV5R1,
HighloadWalletV2,
HighloadWalletV3,
)
# 配置日志文件输出
# 按天分割日志文件,文件名包含日期,保留所有日志文件
logger.add("wallet_log_{time:YYYY-MM-DD}.log", rotation="1 day", retention="9999 days")
# API key for accessing the Tonapi (obtainable from https://tonconsole.com)
API_KEY = "AFMEX4F23ZRPOUIAAAAPHGIE5QECWZA5M75E54VD72O5IJEGP5IW3LOTXO7Z4QOX7MV6JQQ"
# Set to True for test network, False for main network
IS_TESTNET = False
headers = {
'accept': '*/*',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'authorization': 'Bearer AFPJTKEBPOX3AIYAAAAKA2HWOTRNJP5MUCV5DMDCZAAOCPSAYEYS3CILNQVLF2HWKED6USY',
'cache-control': 'no-cache',
'content-type': 'application/json',
'dnt': '1',
'origin': 'https://tonviewer.com',
'pragma': 'no-cache',
'priority': 'u=1, i',
'referer': 'https://tonviewer.com/',
'sec-ch-ua': '"Not A(Brand";v="8", "Chromium";v="132", "Microsoft Edge";v="132"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'cross-site',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0',
}
def get_ton_num(address):
headers = {
'accept': '*/*',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'authorization': 'Bearer AFPJTKEBPOX3AIYAAAAKA2HWOTRNJP5MUCV5DMDCZAAOCPSAYEYS3CILNQVLF2HWKED6USY',
'cache-control': 'no-cache',
'content-type': 'application/json',
'dnt': '1',
'origin': 'https://tonviewer.com',
'pragma': 'no-cache',
'priority': 'u=1, i',
'referer': 'https://tonviewer.com/',
'sec-ch-ua': '"Not A(Brand";v="8", "Chromium";v="132", "Microsoft Edge";v="132"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'cross-site',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0',
}
for i in range(3):
try:
response = requests.get(
f'https://tonapi.io/v2/accounts/{address}',
headers=headers,
)
return to_amount(int(response.json()["balance"]))
except:
time.sleep(random.random())
return False
async def main(i) -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=2, max_retries=1)
wallet, public_key, private_key, mnemonic = WalletV4R2.create(client)
for i1 in range(5):
try:
response = requests.get(
f'https://tonapi.io/v2/accounts/{wallet.address.to_str(is_user_friendly=True, is_url_safe=True, is_bounceable=False, is_test_only=False)}',
headers=headers,
)
logger.info(
f"余额:{to_amount(int(response.json()["balance"]))} Address: {wallet.address.to_str(is_user_friendly=True, is_url_safe=True, is_bounceable=False, is_test_only=False)}D{' '.join(mnemonic)}")
break
except:
time.sleep(random.random())
def main1(i):
asyncio.run(main(i))
if __name__ == "__main__":
with ThreadPoolExecutor(max_workers=100) as executor:
while True:
executor.submit(main1, "grfreg")
time.sleep(random.random())