EIP-1559 в мобильном кошельке: type-2 транзакции

Пользователь отправляет ETH, а транзакция зависает на часы или списывается огромная комиссия. До внедрения EIP-1559 кошельки угадывали gasPrice и часто ошибались. Мы, как команда с 5-летним опытом разработки мобильных кошельков, внедряем этот стандарт, чтобы исключить переплаты и задержки. EIP-1559

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
EIP-1559 в мобильном кошельке: type-2 транзакции
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    898
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1219
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    600

Пользователь отправляет ETH, а транзакция зависает на часы или списывается огромная комиссия. До внедрения EIP-1559 кошельки угадывали gasPrice и часто ошибались. Мы, как команда с 5-летним опытом разработки мобильных кошельков, внедряем этот стандарт, чтобы исключить переплаты и задержки. EIP-1559 делает комиссии предсказуемыми: пользователь задаёт максимальную цену газа (maxFeePerGas) и чаевые валидатору (maxPriorityFeePerGas), а протокол автоматически рассчитывает базовую комиссию (baseFee), которая сжигается. Результат — экономия до 40% по сравнению со старым форматом и никаких зависших транзакций. Официальная спецификация: EIP-1559. Сегодня поддержка EIP-1559 стала стандартом для современных кошельков — без неё пользователи уходят к конкурентам. Наше решение обеспечивает плавную интеграцию с минимальными доработками.

Как работают type-2 транзакции в мобильном кошельке?

Транзакция type 2 содержит три ключевых параметра вместо одного gasPrice:

  • baseFee — автоматически рассчитывается протоколом, сжигается (не идёт майнеру). Увеличивается на 12.5% при заполненном блоке, уменьшается при пустом. Получить текущий: eth_getBlockByNumber("pending", false) → поле baseFeePerGas.
  • maxPriorityFeePerGas (tip) — вознаграждение майнеру/валидатору. Минимальный tip для включения в блок — обычно 0.1–2 Gwei.
  • maxFeePerGas — абсолютный максимум, который готов заплатить пользователь. Фактически списывается: min(maxFeePerGas, baseFee + maxPriorityFeePerGas). Разница возвращается.
// iOS — web3swift: построение EIP-1559 транзакции var transaction = CodableTransaction( type: .eip1559, to: recipientAddress, value: amount, data: Data() ) transaction.maxFeePerGas = baseFee + maxPriorityFee + buffer transaction.maxPriorityFeePerGas = maxPriorityFee transaction.chainID = BigUInt(1) // Ethereum Mainnet 

Как правильно отображать комиссии пользователю?

Пользователь видит maxFeePerGas = 50 Gwei, но если baseFee в момент майнинга равен 20 Gwei, а tip — 2 Gwei, заплатит 22 Gwei. Оставшиеся 28 Gwei вернутся. В UI лучше показывать ожидаемую комиссию (baseFee + tip) и максимально возможную (maxFeePerGas * gasLimit). Это снижает тревогу у пользователей, видящих большой максимум. Снижение затрат на комиссии достигает 30-50%.

Динамические подсказки комиссий: как настроить?

Рекомендуемые значения обновлять каждые 12 секунд (время блока Ethereum). Источники:

  • eth_feeHistory — расчёт percentile priority fee самостоятельно
  • eth_maxPriorityFeePerGas — MetaMask-метод, поддерживается Infura, Alchemy, QuickNode
  • Blocknative Gas API — платный, но очень точный для Mainnet
// Android — получить рекомендованный priority fee val maxPriorityFeeResponse = web3j.send( Request("eth_maxPriorityFeePerGas", emptyList<Any>(), web3jService, EthMaxPriorityFeePerGas::class.java) ) val priorityFeeWei = maxPriorityFeeResponse.maxPriorityFeePerGas 

Сравнение legacy и EIP-1559 транзакций

Параметр Legacy (type 0) EIP-1559 (type 2)
Цена газа gasPrice (один параметр) baseFee + maxPriorityFeePerGas + maxFeePerGas
Возврат переплаты Нет Да (разница между maxFee и фактической комиссией)
Предсказуемость Низкая (зависит от аукциона) Высокая (baseFee обновляется протоколом)
Поддержка сетей Все EVM Не все (BNB Chain, Arbitrum, Optimism)

Сравнение источников динамических комиссий

Источник Бесплатный Точность Обновление
eth_feeHistory Да Средняя (зависит от percentile) каждый блок
eth_maxPriorityFeePerGas Да (Infura/Alchemy) Высокая (MetaMask-алгоритм) каждый блок
Blocknative Gas API Нет Очень высокая real-time

Как обрабатывать сети без поддержки EIP-1559?

BNB Chain использует legacy-формат с фиксированным gasPrice (по умолчанию 3 Gwei). Polygon поддерживает EIP-1559 с версии сети 26.x. Arbitrum и Optimism — собственные механизмы поверх EIP-1559. Приложение должно определять тип сети и выбирать соответствующий формат транзакции автоматически. Отправка type-2 транзакции в сеть без EIP-1559 вернёт ошибку unsupported transaction type. При получении такой ошибки приложение должно переключиться на legacy-формат: заменить type: .eip1559 на type: .legacy и указать gasPrice вместо maxFeePerGas и maxPriorityFeePerGas. Рекомендуется кэшировать тип сети после первой успешной отправки.

Пошаговая реализация EIP-1559 в мобильном кошельке

  1. Определите поддерживаемые сети по chainID и сохраните маппинг: для сетей с EIP-1559 используйте type-2, для остальных — legacy.
  2. Получайте baseFee через eth_getBlockByNumber("pending", false) каждые 12 секунд и кэшируйте.
  3. Вычислите рекомендованный priority fee через eth_maxPriorityFeePerGas или eth_feeHistory.
  4. Сформируйте транзакцию type-2: задайте maxFeePerGas = (baseFee + priorityFee) * 1.1 (буфер), maxPriorityFeePerGas = priorityFee.
  5. В UI отобразите ожидаемую комиссию (baseFee + priorityFee) и максимальную (maxFeePerGas * gasLimit).
  6. При ошибке unsupported transaction type переключитесь на legacy-формат и повторите отправку.

Почему стоит обновить кошелёк до EIP-1559?

Устаревшие кошельки с одним gasPrice заставляют пользователей переплачивать или ждать подтверждения часами. Внедрение EIP-1559 даёт предсказуемость, экономию до 40% на комиссиях и доверие пользователей. Большинство современных кошельков (MetaMask, Trust Wallet) уже поддерживают EIP-1559 — ваш кошелёк не должен отставать. Получите консультацию по интеграции EIP-1559 в ваш проект.

Что входит в реализацию

  • Аудит текущего кошелька и выявление необходимых изменений.
  • Реализация type-2 транзакций с корректным расчётом параметров.
  • Интеграция динамических подсказок через RPC-методы.
  • UI/UX: отображение ожидаемой и максимальной комиссии, автообновление.
  • Поддержка множества EVM-сетей с автоопределением и fallback.
  • Тестирование в mainnet и testnet с экстремальными сценариями.
  • Документация, доступ к репозиторию, обучение команды и поддержка после внедрения.

Мы гарантируем корректную работу во всех популярных сетях, опираясь на проверенные методы и опыт более 50 реализованных проектов. Закажите аудит текущего кошелька — мы подготовим план перехода на EIP-1559.

Сроки и стоимость: 2–3 дня на базовую интеграцию, от 5 дней для сложных проектов с несколькими сетями. Стоимость работ составляет от $1.5k–4k в зависимости от сложности интеграции. Точная цена рассчитывается после аудита. Свяжитесь с нами для консультации и оценки вашего проекта.