Intent-based swap и обычный swap: что именно подписывает пользователь
Сравниваем намерение получить заданный результат и прямую транзакцию через пулы: исполнитель, срок действия, разрешения и проверка завершения обмена.
Сверены открытые первичные документы по механике и ограничениям. Кошелёк не подключался, действия в текущем интерфейсе и операции с реальными средствами не проверялись. Числа в примерах условные.
Две модели обмена
Обычный swap через AMM исполняет заданный путь взаимодействия с пулами в транзакции. Intent-based swap описывает желаемый результат: какие активы отдать и получить, кому и при каких условиях. Подходящий исполнитель, часто называемый solver, находит способ выполнить это намерение и отправляет расчёт в сеть.
Внешне оба варианта могут называться «обменять». Разница становится важной при подписи, отмене и поиске статуса. Принятая сервисом подпись намерения ещё не означает, что актив уже зачислен. В свою очередь, отсутствие отдельной транзакции пользователя не означает отсутствия блокчейн-расчёта.
Поля намерения для проверки
Изучите исходный и получаемый токены, количества, сеть, получателя, срок действия и возможность частичного исполнения. В CoW среди параметров есть sellToken, buyToken, receiver и validTo. В других системах названия и способы расчёта отличаются; переносить правила одного сервиса на другой нельзя.
- Уточните, фиксируется сумма продажи или нужная сумма покупки.
- Проверьте, какие комиссии включены в результат.
- Разделите разрешение на токены и подпись самого ордера.
- Выясните, как отменяется ещё действующее намерение.
Почему gasless не значит бесплатно
Если gas за расчёт отправляет исполнитель, расходы могут учитываться в условиях обмена. Отдельное разрешение токена также может потребовать платную транзакцию. Сравнивайте итоговое получение и все необходимые действия, а не только отсутствие строки gas в одном окне.
Условный пример: пользователь подписал продажу 20 единиц с определённым минимумом до указанного времени. Пока подходящего исполнения нет, он видит открытый ордер. Обновление котировки на экране не переписывает ранее подписанные условия. Нужно разобраться, остался ли старый ордер действующим и как протокол предотвращает повторное исполнение.
Как подтвердить результат
Для прямого swap найдите хеш транзакции и события переводов. Для intent сначала найдите идентификатор ордера, затем связанный расчёт в блокчейне. Проверьте сумму, контракт полученного токена и адрес зачисления. Статусы «подписан», «отправлен» и «исполнен» отвечают на разные вопросы.
Защита от MEV или конкуренция solvers не подтверждает подлинность сайта. Подпись может давать существенные права, даже если кошелёк показывает нулевой сетевой расход. Если поля не читаются или получатель не совпадает, остановитесь до подписи: удобство новой модели не заменяет проверку её условий.
Что прочитать дальше
Подпись сообщения и транзакция: что проверять в кошельке
Отключить сайт или отозвать approve: что действительно меняет доступ