August 11, 2023

Что делать если застряла транзакция?

Сегодня у меня случилась ситуация что у меня повисла транзакция в metamask и я не мог не ускорить её не отменить из-за баганого кошелька. Поспрашивал по чатам, оказывается это частая проблема для пользователей этого кошелька.

Пример:

И вот после многих попыток что-то сделать через метамаск я понял что так дело не пойдёт и решил эту задачу за 5 минут кодинга

Решение:

Файл python

from web3 import Web3, HTTPProvider
rpc_url = 'РПС' # нужна рпс той сети в который застряла транзакция
private_key = 'Приватный ключ'
old_transaction_hash = 'Хеш транзакции которая повисла'
new_gas_price = Web3.to_wei('25', 'gwei') # смотрим на езерскане какая цена газа в сети сейчас
w3 = Web3(HTTPProvider(rpc_url))
old_transaction = w3.eth.get_transaction(old_transaction_hash)
new_transaction = {
    'to': old_transaction['to'],
    'value': old_transaction['value'],
    'gas': old_transaction['gas'],
    'gasPrice': new_gas_price,
    'nonce': w3.eth.get_transaction_count(w3.to_checksum_address(old_transaction['from'])),
}
signed_transaction = w3.eth.account.sign_transaction(new_transaction, private_key)
transaction_hash = w3.eth.send_raw_transaction(signed_transaction.rawTransaction)
print(f"New Transaction Hash: {transaction_hash.hex()}")

После того как мы заменили все входные данные которые нужно , запускаем скрипт и готово, самое важное правильно вручную вписать цену Газа сети что бы не была слишком маленькая.

Результат:

Старая транзакция:

Новая с новым газ прайсом:

Если будут вопросы, спрашивайте у меня в чате https://t.me/one_eyes_chat

И конечно же мне будет приятно если вы подпишитесь на мой телеграм канал:

https://t.me/one_eyes