TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Hududiy to‘plamlar Tematik to‘plamlar Платные каналы Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
  • Targ‘ibot
    Yandex Business orqali reklama Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Web3Code

13 Feb 2025, 19:11

Telegram'da ochish Ulashish Shikoyat qilish

Частые фейлы при создании транзакции 🧠

В этом посте мы рассмотрим частые ошибки новичков при создании транзакций. Они могут показаться банальными, но ты не поверишь сколько челов факапятся именно на этих моментах. И ладно, когда они просто не дают тебе провести транзакцию, некоторые ошибки могут привести даже к потери кэша.

Определения терминов, которые мы будем использовать далее:
RPC (Remote Procedure Call) – механизм, позволяющий одной программе вызывать функции или запрашивать данные на другом сервере, как если бы они выполнялись локально. В контексте блокчейна RPC используется для взаимодействия с узлом сети (например, отправка транзакций, получение данных о блоках и балансах адресов).

EIP-1559 – предложение по улучшению Ethereum, изменяющее механизм ценообразования газа. Введено в обновлении London, включает базовую комиссию, которая сжигается, и приоритетную комиссию для ускорения транзакций. Это улучшает прогнозируемость и стабильность комиссий.

Legacy-транзакция – традиционный тип транзакций в Ethereum до EIP-1559, где пользователи указывают только gasPrice. После внедрения EIP-1559 такие транзакции обозначаются как "Type 0" или "legacy" и остаются совместимыми с сетью.


1. Использование неправильного RPC ⚠️

Одна из распространённых ошибок — поиск RPC-узла для Ethereum и выбор первого попавшегося. Например, ты хочешь отправить транзакцию в Ethereum Mainnet, но случайно берёшь RPC от тестовой сети (например, Goerli). В таком случае, даже если ты правильно указал chain_id=1 (Mainnet), узел не примет транзакцию, потому что она не соответствует сети

2. Ошибка в chain_id
🔗

Обратная ситуация — у тебя подключён Ethereum Mainnet, но ты не знаешь, какой chain_id указать. Ты находишь информацию в интернете или спрашиваешь у знакомых, и тебе говорят, что нужен chain_id=5. Однако 5 — это идентификатор Goerli, а для Mainnet нужен chain_id=1. В результате транзакция фейлится, потому что chain_id должен точно совпадать с сетью, к которой ты подключён

3. Не рассчитать цену за газ ⛽️

При создании транзакции нужно корректно рассчитать цену за газ. Самой тупой ошибкой, может быть вписать туда фиксированные данные, без расчета через код.

transaction = {
"nonce": w3.eth.get_transaction_count("0xYourAddress"),
"to": "0xRecipientAddress",
"value": w3.to_wei(0.01, "ether"),
"gas": 21000,
"gasPrice": w3.to_wei(0.0001, "gwei"), # Слишком низкая цена за газ
"chainId": 1,
}

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

4. Использовать legacy транзакции 🐢

Если ты используешь legacy транзакции, как мы это показали в предыдущем примере, то тебя точно побреют проекты. Лучше использовать современный стандарт в виде EIP 1559.

transaction = {
"nonce": w3.eth.get_transaction_count("0xYourAddress"),
"to": "0xRecipientAddress",
"value": w3.to_wei(0.01, "ether"),
"gas": 21000,
"maxPriorityFeePerGas": w3.to_wei(2, "gwei"),
"maxFeePerGas": w3.to_wei(50, "gwei"),
"chainId": 1,
}

# получаем базовую цену газа и приоритетную комиссию
base_fee = w3.eth.gas_price
max_priority_fee_per_gas = w3.eth.max_priority_fee
max_fee_per_gas = base_fee + max_priority_fee_per_gas

# записываем расчеты в транзакцию
transaction["maxPriorityFeePerGas"] = max_priority_fee_per_gas
transaction["maxFeePerGas"] = int(max_fee_per_gas * 1.5)

# оцениваем лимит газа
gas_estimate = w3.eth.estimate_gas(transaction)

transaction["gas"] = int(gas_estimate * 1.5)

5. Не дождаться выполнения транзакции 👀

Когда у тебя простая транзакция и ты в ней уверен, например, это может быть простым переводом с одного кошелька на другой, то можно не дожидаться выполнения. А если у тебя что-то сложнее? Может быть такое, что ты отправишь транзакцию, а спустя время она будет отменена (transaction reverted).

Бро, это мы рассказали тебе лишь 1/4 часть ОДНОГО урока, представь сколько еще будет на самом обучении. Ты еще успеваешь записаться к нам, продажи открыты до 17 февраля.

Пиши в комментах с какими ошибками сталкивался ты (можно не только по транзакциям) ⤵️

AIO Study | Site
AIO Support
Служба поддержки @aio_study Поможем с любым вопросом 🔥

1.8k 0 34 4 29
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot