Практические инструкции

Как проверить транзакцию с paymaster до подтверждения

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

Как проверить транзакцию с paymaster до подтверждения

Перед подтверждением транзакции с paymaster проверьте, кто оплачивает газ, какие действия включены в UserOperation и какие разрешения выдаются смарт-кошельку. Paymaster может покрыть стоимость газа в ERC-4337, но это не превращает любую операцию в бесплатную и безопасную. Спонсор может ограничить поддержку определённой сетью, приложением, токеном или типом действия, а конечное поведение зависит от кошелька и правил контракта.

Как paymaster участвует в ERC-4337

В обычной транзакции пользовательский адрес оплачивает газ непосредственно нативной монетой сети. В ERC-4337 кошелёк формирует UserOperation, которую bundler доставляет в EntryPoint-контракт. Paymaster – отдельный контракт, способный согласиться оплатить расходы, если операция проходит его условия. Поэтому путь включает несколько компонентов, и подпись пользователя обычно относится к конкретной операции, а не к неопределённому «разрешению на газ».

На этапе проверки paymaster оценивает запрос и резервирует средства или подтверждает спонсорство по собственным правилам. Если операция одобрена и включена, платёж списывается с paymaster согласно механике системы. Спонсор может финансироваться приложением, сервисом или иной моделью. Пользователь не должен предполагать, что кто-то оплатит любой вызов, даже если интерфейс показывает «gas sponsored».

Для общего контекста можно прочитать материал о том, кто оплачивает газ в smart wallet. Он объясняет роли кошелька, приложения и спонсора, тогда как здесь фокус – на проверке конкретной операции перед подтверждением.

Что проверить в окне подтверждения

Начните с сети и адреса аккаунта. Убедитесь, что выбрана та же сеть, где находится нужный актив и приложение. Затем прочитайте список действий: перевод токена, обмен, выдача разрешения, вызов контракта или пакетная последовательность. Если интерфейс показывает только общее название приложения, раскройте детали операции и проверьте адрес получателя и значения.

Обратите внимание, какие токены и лимиты затрагиваются. Спонсорство газа не отменяет риск одобрения токена с чрезмерным лимитом и не гарантирует, что контракт не сможет потратить актив позднее. Для разрешений на ERC-20 проверьте адрес spender, сумму и срок, если он поддерживается. Для swap-сценария сверьте токены, минимальный результат и срок действия заявки.

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

Спонсорство не означает гарантированный успех

Paymaster проверяет UserOperation до её исполнения, но сеть может измениться между симуляцией и включением. Операция способна не пройти валидацию, потерять актуальность или завершиться revert. При этом правила оплаты газа при неуспешном выполнении зависят от конструкции paymaster и пути исполнения. Нельзя обещать, что спонсор оплатит любые неудачные запросы или что пользователь никогда не столкнётся с расходом.

Bundler обычно симулирует операцию перед включением, чтобы отсеять некорректные действия и снизить риск неоплаченного исполнения. Симуляция повышает предсказуемость, но не заменяет проверку содержимого подписываемого запроса. Внешние цены, состояние пула, nonce и лимиты могут измениться. Если приложение показывает оценку, сравните её с действиями, которые вы действительно намерены выполнить.

Кроме того, спонсор может отказаться от операции из-за собственного лимита, антиспам-правила или временной недоступности. Тогда кошелёк может предложить оплату газа нативным токеном либо повторить запрос позже. Не переходите к альтернативному варианту автоматически: перечитайте ту же операцию, потому что после обновления интерфейса параметры могли измениться.

Защита от подмены и фишинга

Открывайте приложение по сохранённой закладке или официальному адресу. Проверьте домен и сетевую конфигурацию. Мошенническая страница может показать ту же надпись о sponsored gas, но подменить получателя или попросить расширенное разрешение. Сам факт, что кошелёк поддерживает ERC-4337, не делает страницу доверенной.

Подписывайте только действия, которые можете объяснить простыми словами. Если запрос содержит смену владельцев, модуль, необычный call target или разрешение на неограниченную сумму, проверьте это отдельно. Подпись может быть валидной, даже если интерфейс описывает её расплывчато. Никогда не вводите seed-фразу, приватный ключ или резервный код, чтобы «разблокировать спонсорство».

После подтверждения сохраните идентификатор операции или транзакции и проверьте её в обозревателе сети. Отсутствие обычного хеша сразу после нажатия может объясняться особенностями UserOperation, но интерфейс должен предоставить способ отслеживания статуса. Убедитесь, что операция завершилась тем результатом, который вы ожидали.

Практическая проверка перед нажатием

Примените короткий контрольный список: сеть верна; домен приложения официальный; действия перечислены; адрес получателя ожидаемый; разрешения минимальны; источник комиссии понятен; результат операции и возможный отказ описаны. Для незнакомого приложения выполните небольшой тест на сумму, потеря которой приемлема. Если кошелёк позволяет, откажитесь от избыточного разрешения или задайте ограниченный лимит.

Проверьте, остаётся ли операция той же после повторного открытия окна. Не подтверждайте старое уведомление спустя длительное время, особенно если речь о swap или покупке, где цена и доступность меняются. Для сессий и временных разрешений можно изучить настройку session key, поскольку ограниченный ключ также требует проверки набора разрешённых действий и срока.

Если требуется изменить кошелёк или модуль, изучите стандарт вызова и подписи. Статья о подписях ERC-1271 поясняет, как смарт-аккаунт может проверять подпись собственными правилами. Это полезно, если приложение показывает сложную подписываемую структуру, но не даёт понятного человекочитаемого объяснения.

Разделяйте безопасность газа и безопасность действия

Paymaster решает вопрос оплаты исполнения, а не вопрос доверия к бизнес-логике контракта. Спонсируемый обмен может иметь невыгодный курс, контракт может использовать опасное разрешение, а взаимодействие с неизвестным протоколом может привести к потере средств. Бесплатная комиссия иногда снижает барьер для входа, но не должна заменять проверку содержимого транзакции.

Перед регулярным использованием проверьте, какие приложения и типы действий покрывает спонсор, как устроены лимиты и что происходит после их исчерпания. Уточните, может ли paymaster потребовать дополнительную подпись или оплату в токенах. Если эти условия не описаны, не предполагайте, что покрытие бессрочное или одинаковое для всех пользователей.

Сохраняйте привычку отдельно оценивать операцию, комиссию и спонсора. Это помогает избежать ситуации, когда привлекательная надпись в интерфейсе отвлекает от того, куда именно уйдут активы. ERC-4337 делает гибкую оплату газа возможной, но фактические условия определяются комбинацией кошелька, bundler, EntryPoint, paymaster и приложения.