Пять полей PoolKey
ПолеЧто фиксироватьОсновной риск
currency0 / currency1Точные отсортированные addresses и native-currency representationПоддельный token или другой порядок
feeStatic fee либо dynamic-fee flagНеожиданная комиссия
tickSpacingТочное signed значение из keyДругой price grid и pool ID
hooksПолный contract addressДополнительная логика callback
PoolManagerChain-specific deployed addressДругая инсталляция протокола
Пять полей PoolKey
Поле
currency0 / currency1
Что фиксировать
Точные отсортированные addresses и native-currency representation
Основной риск
Поддельный token или другой порядок
Поле
fee
Что фиксировать
Static fee либо dynamic-fee flag
Основной риск
Неожиданная комиссия
Поле
tickSpacing
Что фиксировать
Точное signed значение из key
Основной риск
Другой price grid и pool ID
Поле
hooks
Что фиксировать
Полный contract address
Основной риск
Дополнительная логика callback
Поле
PoolManager
Что фиксировать
Chain-specific deployed address
Основной риск
Другая инсталляция протокола

Pool ID начинается с полного PoolKey

v4 хранит pools внутри singleton PoolManager. Поэтому отдельного pool contract address в привычном смысле может не быть: состояние выбирается по pool ID, полученному из PoolKey. Сопоставьте данные router/quoter с onchain key и убедитесь, что интерфейс не подменил hook или один из token addresses. Базовый материал объясняет, как работает DEX и AMM без v4-specific деталей.

Позиция ликвидности чувствительна не только к цене. Tick range, комиссии, hook callbacks и последующее поведение токенов меняют результат, а impermanent loss оценивается уже для подтверждённого пула, а не для названия пары.

Permissions говорят когда hook вызывается, но не что он сделает

Hook address кодирует флаги callback: до или после initialize, add/remove liquidity, swap и donate, а дополнительные биты могут разрешать возврат delta. PoolManager проверяет эти permissions, но корректный набор битов не является аудитом. Прочитайте фактический bytecode/verified source, constructor parameters, зависимости и возможный proxy/admin boundary; отдельная методика показывает, как читать аудит смарт-контракта.

Проверка перед swap или liquidity action

  1. 1
    Зафиксировать сеть

    Запишите chain ID, официальный PoolManager address и block number проверки.

  2. 2
    Восстановить PoolKey

    Снимите currency0, currency1, fee, tickSpacing и hooks из вызова/router quote и вычислите pool ID.

  3. 3
    Разобрать permissions

    Сопоставьте младшие биты hook address с разрешёнными callbacks; отдельно отметьте dynamic fee и return delta surfaces.

  4. 4
    Проверить реализацию

    Сравните deployed bytecode с verified source; установите proxy/implementation/admin и внешние контракты, если они есть.

  5. 5
    Симулировать точный маршрут

    На актуальном state выполните quote/simulation с теми же router, amount, direction, slippage и deadline; сохраните revert либо deltas.

Dynamic-fee pool требует проверить не только базовый fee field, но и логику, которая устанавливает актуальную комиссию. Return-delta permissions позволяют hook участвовать в расчёте token deltas в предусмотренных callback, поэтому простой список callback names не описывает экономический результат. Для каждого внешнего вызова hook фиксируйте target, selectors, mutable storage и failure behavior: revert hook может остановить весь route, а администратор может изменить зависимую конфигурацию без смены PoolKey.

Stop-сигналы важнее обещания интерфейса

Decision и recovery
НаблюдениеРискДействие
Hook address нулевойHook callbacks отсутствуют, но остаются token/router/pool risksПроверить полный PoolKey и route
Source не verified или bytecode не совпадаетЛогика hook неизвестнаНе подписывать до воспроизводимого анализа bytecode
Есть proxy/admin или внешняя mutable configПоведение может менятьсяЗафиксировать implementation/admin/config block и update authority
Simulation меняет unexpected delta или revertsQuote не описывает фактический путьСнизить scope, разобрать callback и не увеличивать approval
PoolKey из UI не воспроизводитсяПул не идентифицированОстановиться; запросить raw calldata и onchain key
Decision и recovery
Наблюдение
Hook address нулевой
Риск
Hook callbacks отсутствуют, но остаются token/router/pool risks
Действие
Проверить полный PoolKey и route
Наблюдение
Source не verified или bytecode не совпадает
Риск
Логика hook неизвестна
Действие
Не подписывать до воспроизводимого анализа bytecode
Наблюдение
Есть proxy/admin или внешняя mutable config
Риск
Поведение может меняться
Действие
Зафиксировать implementation/admin/config block и update authority
Наблюдение
Simulation меняет unexpected delta или reverts
Риск
Quote не описывает фактический путь
Действие
Снизить scope, разобрать callback и не увеличивать approval
Наблюдение
PoolKey из UI не воспроизводится
Риск
Пул не идентифицирован
Действие
Остановиться; запросить raw calldata и onchain key

Перед подписью декодируйте calldata router и проверьте, что вы подписываете в кошельке: hook может влиять на swap, но фактические разрешения токенов и получатель задаются байтами транзакции. Unlimited approval, Permit2 scope или непонятный multicall — отдельный риск, который название пула не снимает.

Результат проверки — chain ID, PoolManager, полный PoolKey и pool ID, block number, hook permissions, bytecode hash, source/implementation/admin, mutable config, точный router calldata и simulation output. Если хотя бы один идентификатор меняется между quote и подписью, проверку повторяют; старый вывод нельзя переносить на другой pool с той же парой.

Источники

Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.

  1. Uniswap Developers — Hooks Uniswap Labs · Проверено 23 августа 2026 г. в 15:43 GMT+5
  2. Uniswap Developers — PoolManager Uniswap Labs · Проверено 23 августа 2026 г. в 15:43 GMT+5
  3. Uniswap v4-core — PoolKey.sol Uniswap · Проверено 23 августа 2026 г. в 15:43 GMT+5
  4. Uniswap v4-core — PoolId.sol Uniswap · Проверено 23 августа 2026 г. в 15:43 GMT+5
  5. Uniswap v4-core — Hooks.sol Uniswap · Проверено 23 августа 2026 г. в 15:43 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.