-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathstep2.py
106 lines (80 loc) · 3.96 KB
/
step2.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import time
from web3 import Web3
import requests
import random
from datetime import datetime
import config
import fun
from fun import *
import subprocess
current_datetime = datetime.now()
print(f"\n\n {current_datetime}")
print(f'============================================= Плюшкин Блог =============================================')
print(f'subscribe to : https://t.me/plushkin_blog \n============================================================================================================\n')
keys_list = []
with open("private_keys_step2.txt", "r") as f:
for row in f:
private_key=row.strip()
if private_key:
keys_list.append(private_key)
random.shuffle(keys_list)
i=0
for private_key_line in keys_list:
i+=1
contractAddress = ""
string_list = private_key_line.split(";")
private_key = string_list[0]
contractAddress = string_list[1]
deploy_abi = '[{"inputs":[],"name":"increaseCounter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"x","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"}]'
# print(deploy_abi)
abi = json.loads(deploy_abi)
if config.proxy_use == 2:
while True:
try:
requests.get(url=config.proxy_changeIPlink)
fun.timeOut("teh")
result = requests.get(url="https://yadreno.com/checkip/", proxies=config.proxies)
print(f'Ваш новый IP-адрес: {result.text}')
break
except Exception as error:
print(' !!! Не смог подключиться через Proxy, повторяем через 2 минуты... ! Чтобы остановить программу нажмите CTRL+C или закройте терминал')
time.sleep(120)
try:
web3 = Web3(Web3.HTTPProvider(config.rpc_links['scroll'], request_kwargs=config.request_kwargs))
account = web3.eth.account.from_key(private_key)
wallet = account.address
log(f"I-{i}: Начинаю работу с {wallet}")
balance = web3.eth.get_balance(wallet)
balance_decimal = Web3.from_wei(balance, 'ether')
if balance_decimal < config.minimal_need_balance:
log("Недостаточно эфира. жду когда пополнишь. на следующем круге попробую снова")
fun.save_wallet_to("no_money_wa", wallet)
keys_list.append(private_key)
timeOut("teh")
continue
# ожидает подходящий газ
wait_gas_price_eth()
dapp_address = web3.to_checksum_address(contractAddress)
dapp_contract = web3.eth.contract(address=dapp_address, abi=abi)
transaction = dapp_contract.functions.increaseCounter().build_transaction({
'from': wallet,
'value': 0,
"gasPrice": web3.eth.gas_price ,
'nonce': web3.eth.get_transaction_count(wallet),
})
gasLimit = web3.eth.estimate_gas(transaction)
transaction['gas'] = int(gasLimit * config.gas_kef)
signed_txn = web3.eth.account.sign_transaction(transaction, private_key)
txn_hash = web3.to_hex(web3.eth.send_raw_transaction(signed_txn.rawTransaction))
tx_result = web3.eth.wait_for_transaction_receipt(txn_hash)
# print(tx_result)
if tx_result['status'] == 1:
log_ok(f'checkIn OK: https://scrollscan.com/tx/{txn_hash}')
else:
log_error(f'checkIn false: {txn_hash}')
timeOut()
except Exception as error:
fun.log_error(f'checkIn false: {error}')
timeOut("teh")
continue
log("Ну типа все, кошельки закончились!")