Эта страница переведена автоматически. Оригинал на английском языке является каноническим. Читать на английском →
Перейти к основному содержимому

Контракты

Mainnet Alpha

Ниже приведены текущие адреса контрактов Hypercall Mainnet Alpha. На старте функциональность намеренно ограничена и будет расширяться по мере развития площадки.

Ончейн-компоненты Hypercall развёрнуты в HyperEVM (chain ID 999). Каждый пользователь получает собственный контракт Account. Exchange хранит USDC площадки и опционы на кастодиальном хранении и исполняет подписанные директивы в отношении контрактов Account. Factory создаёт контракты Account, а Option Registry развёртывает опционные токены и определяет, какие из них поддерживаются.

Функции контрактов​

Exchange​

Обновляемый прокси-контракт. Версия 0.6.1 в основной сети.

  • Хранит внесённые USDC площадки на HyperCore (depositUsdcFor, depositPmLiquidityFor).
  • При депозите сжигает опционные ERC20-токены и генерирует событие Deposit, по которому движок зачисляет позицию (depositOption).
  • Регистрирует контракты Account, созданные через Factory, и отслеживает менеджера каждого из них (getAccounts, getAccount, managers).
  • Исполняет подписанные директивы. executeUserDirective передаёт в Account директиву, подписанную менеджером или API-кошельком. executeRsmDirective исполняет системную директиву с подписью RSM (зачисления, выводы, состояние ликвидации). Обе функции может вызывать только секвенсор Hypercall: пользователь подписывает, Hypercall отправляет.
  • Отслеживает использованные nonce для каждого подписанта (isNonceUsed).

Account​

Отдельный контракт для каждого пользователя, развёрнутый как BeaconProxy. Версия 0.2.4 в основной сети.

  • Владеет балансами и позициями пользователя на HyperCore. Перпы и спот учитываются в реестре HyperCore, принадлежащем Account.
  • Имеет одного менеджера (EOA, создавший контракт) и произвольное число именованных API-кошельков.
  • Проверяет подписи директив. API-кошельки могут подписывать ордера и их отмену, всё остальное требует подписи менеджера. См. Подпись EIP-712.
  • Прямые вызовы, доступные только менеджеру: transferTo(recipient, token, amount) выводит токены HyperEVM из Account, а approveZeroFeeBuilder(builder) одобряет билдера Hyperliquid с максимальной комиссией 0%. Ордера на перпы в Hypercall передаются с билдер-кодом Hypercall, поэтому такое одобрение нужно дать один раз перед первым ордером на перп.
  • depositSpot переводит HYPE или поддерживаемый спотовый токен из HyperEVM в Account на HyperCore.

Factory​

Создаёт контракты Account через createAccount(uint96 salt). Адрес детерминирован для пары менеджер и salt: predictAccount(manager, salt) возвращает его ещё до создания. См. Онбординг.

Router​

Вспомогательный контракт для пополнения. deposit(account, token, amount, isPerp) направляет USDC на HyperCore через CoreDepositWallet от Circle, спотовые токены через Account, а опционные токены через Exchange. depositHype(account) переводит нативный HYPE.

Option Registry​

Развёртывает опционные ERC20-токены и служит источником истины в вопросе, является ли токен поддерживаемым опционом (isSupportedOption).

Типы директив​

ДирективаПодписантОписание
hl_limit_orderAPI-кошелёкЛимитный ордер Hyperliquid
hl_cancel_by_oidAPI-кошелёкОтмена по ID ордера Hyperliquid
hl_cancel_by_cloidAPI-кошелёкОтмена по клиентскому ID ордера
hc_update_api_walletМенеджерДобавление, замена или удаление именованного API-кошелька в Account
hl_add_api_walletМенеджерОдобрение API-кошелька Hyperliquid для Account на HyperCore
hl_send_assetМенеджерОтправка активов из Account на HyperCore
hl_set_abstractionМенеджерУстановка режима аккаунта HyperCore для Account (только unified)

Директивы RSM (зачисления, выводы, запуск и остановка ликвидации, восстановительные ордера только на сокращение позиции) подписывает подписант RSM, а отправляет секвенсор. Пользователи их никогда не подписывают. См. Директивы RSM.

Ликвидация​

Ликвидация выполняется в движке Hypercall. См. Ликвидация. В Exchange предусмотрены хуки, позволяющие ончейн-контракту аукциона передать менеджерские права на Account победителю торгов, однако в основной сети аукционист не настроен.

Доверие и права доступа​

Этот раздел описывает, кто и что может делать в блокчейне. Краткая версия: Модель доверия.

Отправка​

Только секвенсор Hypercall имеет SEQUENCER_ROLE в Exchange, поэтому только он вызывает executeUserDirective и executeRsmDirective. Вы подписываете, Hypercall отправляет. Секвенсор не может подделать пользовательскую директиву: Account сам восстанавливает подписанта и принимает только своего менеджера или активный API-кошелёк.

Директивы RSM​

Когда состояние движка требует действия в блокчейне, подписант RSM подписывает директиву, а секвенсор её отправляет. Exchange отклоняет любую директиву RSM, не подписанную зарегистрированным подписантом RSM (Exchange.rsmSigner). Текущий подписант RSM находится под контролем оператора; в дорожной карте будет опубликовано, как эта роль будет децентрализована или иным образом потребует меньше доверия.

Директивы, которые Exchange исполняет сам:

  • Отправка USDC или спотовых токенов с баланса Exchange на HyperCore, включая стандартные выводы USDC
  • Выпуск опционных ERC20 на адрес при выводе опционов
  • Запуск и остановка ликвидации Account

Директивы, которые Account принимает от RSM, с ограничениями, заданными контрактом Account:

  • IOC-ордера только на сокращение позиции или околорыночные IOC-продажи спота за USDC на балансе Account в Hyperliquid
  • Отправка активов с Account на HyperCore, только в Exchange (например, для покрытия отрицательного баланса)
  • Отмена ордеров

Директивы RSM исполняются и тогда, когда Account находится в ликвидации. Расчёт опционов на экспирации не является директивой RSM: он применяется к денежному балансу в состоянии движка. Адрес подписанта RSM и каждое исполнение директивы видны в блокчейне.

Обновления​

  • Exchange и Option Registry являются обновляемыми прокси.
  • Account и Option Token являются BeaconProxy. Все аккаунты работают на одной реализации, поэтому одно обновление Account Beacon меняет все аккаунты сразу. То же верно для опционных токенов и Option Token Beacon.
  • Timelock владеет proxy admin контракта Exchange и путями обновления Account, Option Token и Option Registry с минимальной задержкой 30 секунд.
  • Мультисиг Admin Safe держит роли admin и governor в Exchange и роль owner в Factory.
  • Роль governor, которую держит Admin Safe, может заменить подписанта RSM и auctioneer и перевести USDC из Exchange (rescueUsdcToEvm). На шаге 1 плана доверия она перейдёт под timelock. Как default admin Exchange, Safe также может напрямую, без timelock, выдать или отозвать SEQUENCER_ROLE и любую другую роль Exchange.

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

Адреса развёрнутых контрактов​

Mainnet Alpha​

КонтрактАдресОписание
Exchange0xE6b7FaA216cabb2b38B392f577C9c826378b2240Основной контракт биржи
Exchange Implementation0xF7F0610aC612d140bdb34DCD2872828Bc67349cDРеализация Exchange за прокси
Account Implementation0xCD87F572bef2855c8Ffb69A6Da3D9785d6017791Реализация Account
Account Beacon0x1b96D6a48d1fB34dC45953697414656D2851Ca93Beacon для Account
Fetcher0x8654912Eae1554662665C13EeD4f1D8A4b028aDBВспомогательный контракт для чтения
Option Token Implementation0x6D0C7a116f9561A8De692c23c4C11682738ed206Реализация опционного токена
Option Token Beacon0xfb320352B25Dba7f139EA9Bf8966891CCa12dC35Beacon для опционного токена
Factory0x2CeeAC2E032e4cCb05FF744619BfAb8cC75efE1bФабрика аккаунтов
Router0xF41FF41B6F007dE851ACc9F43Bd2f597Da741E2DВспомогательный контракт для пополнения и маршрутизации
Option Registry0x8C8efdd5F78C25215d03c8BbD5D1f6f0F1BB0598Реестр опционных токенов
Option Registry Implementation0xF222421a93df1086E329503723b3cC4c30546C46Реализация реестра опционов за прокси
Hypercall Fee Collector0x406ceBfC7063e55761007D1C4b66B29308016602Адрес билдера Hyperliquid в ордерах на перпы (также hl_builder_address в GET /exchange-info)

Конфигурация основной сети​

ПараметрАдрес или значениеОписание
USDC0xb88339CB7199b77E23DB6E890353E22632Ba630fUSDC в HyperEVM, используемый Hypercall
Core Deposit0x6B9E773128f453f5c2C60935Ee2DE2CBc5390A24Вспомогательный контракт для депозитов на HyperCore
RSM Signer0x502E7fAbF34E84EeB115C34FE947b79A94dF886EТекущий подписант RSM под контролем оператора
Sequencer0x56a2924217C91EB4d6989Cf4C7b4dF03020E8944Текущий секвенсор
Timelock0x96f17e6f7269cA4300a391514c109eBA70661674Владеет правами администратора прокси Exchange и путями обновления Account, Option Token и Option Registry. Минимальная задержка 30 секунд.
Admin Safe0xF741246D2e0ADD4EFa7e88BE0961cccf3562b502Мультисиг, которому принадлежат роли администратора и governor в Exchange, а также роль владельца Factory

Исходный код​

Исходный код контрактов будет опубликован после завершения аудита.

См. также​