Код написан на Python. Перед ег озапуском нужно выполнить следубщие шаги:
Установите Python на свой компьютер, если он еще не установлен. Вы можете скачать и установить Python с официального сайта: https://www.python.org/downloads/
Откройте текстовый редактор, такой как Notepad, Sublime Text или PyCharm.
Скопируйте код скрипта и вставьте его в текстовый редактор.
Сохраните файл со скриптом с расширением ".py" (например, "script.py") в удобном для вас месте на вашем компьютере.
Откройте командную строку в Windows или терминал в macOS/Linux.
Перейдите в директорию, где вы сохранили файл со скриптом, с помощью команды "cd" (например, "cd C:\Users\Username\Documents").
Запустите скрипт, введя в терминале команду "python script.py" (замените "script.py" на имя вашего файла со скриптом, если оно отличается).
Нажмите Enter и дождитесь, пока скрипт выполнится.
Если вы используете PyCharm, то запустить скрипт можно просто нажав кнопку "Run" в редакторе.
Ниже предстафлен сам код скрипта.
import os from web3 import Web3 from dotenv import load_dotenv
load_dotenv()
w3 = Web3(Web3.HTTPProvider(os.getenv('WEB3_PROVIDER_URL')))
contract_address = Web3.toChecksumAddress( '0x67a24ce4321ab3af51c2d0a4801c3e111d88c9d9')
contract_abi = [ { "inputs": [], "name": "claimTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "tokenBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
contract = w3.eth.contract(address=contract_address, abi=contract_abi)
exchange_address = Web3.toChecksumAddress( '0x0000000000000000000000000000000000000000')
wallet_address = Web3.toChecksumAddress(os.getenv('WALLET_ADDRESS'))
wallet_private_key = os.getenv('WALLET_PRIVATE_KEY')
gas_limit = 300000
def get_gas_price(): # получаем текущую цену за газ с помощью API провайдера gas_price = w3.eth.gas_price # устанавливаем цену за газ в 1.5 раза выше текущей средней цены return int(gas_price * 1.5)
def claim_and_send_tokens(): # получаем баланс токенов на контракте token_balance = contract.functions.tokenBalance().call() # если баланс равен 0, то выводим сообщение и завершаем выполнение функции if token_balance == 0: print('Token balance is 0, nothing to claim.') return # создаем транзакцию для клейма токенов tx = contract.functions.claimTokens().buildTransaction({ 'from': wallet_address, 'nonce': w3.eth.getTransactionCount(wallet_address), 'gas': gas_limit, 'gasPrice': get_gas_price() }) # подписываем транзакцию с помощью приватного ключа signed_tx = w3.eth.account.sign_transaction(tx, private_key=wallet_private_key) # отправляем транзакцию на сеть tx_hash =
