[TOC]
В последнее время платформа FMZ добавила поддержку высокопроизводительной децентрализованной биржи Hyperliquid DEX, что дает пользователям больше возможностей для участия в децентрализованной торговле. В настоящее время функция хранителя платформы FMZ полностью обновлена, чтобы поддерживать насущную и постоянную контрактную торговлю Hyperliquid и охватывать все функции API DEX.
Описание платформы Hyperliquid
Hyperliquid - это высокопроизводительная L1 блокчейн, оптимизированная с нуля, и ее видение заключается в построении полностью цепной открытой финансовой системы. Пользователи могут самостоятельно создавать приложения, взаимодействуя с эффективными нативными компонентами, обеспечивая при этом плавность опыта конечных пользователей.
Hyperliquid L1 обладает достаточной производительностью для поддержки экосистемы безлицензионных финансовых приложений. Все заказы, снятия, сделки и расчеты выполняются на цепочке полностью прозрачно, с задержкой блока менее 1 секунды. В настоящее время цепочка поддерживает обработку до 100 000 заказов в секунду.
Hyperliquid L1 использует пользовательский алгоритм консенсуса под названием HyperBFT, вдохновленный Hotstuff и его последующими алгоритмами. Как механизм консенсуса, так и сетевая архитектура оптимизированы изнутри для удовлетворения потребностей высокопроизводительной блокчейн.
В этом руководстве мы надеемся помочь вам быстро освоить программированные и количественные сделки Hyperliquid DEX на платформе FMZ и выявить больше возможностей для торговли.
Протокол REST - Практика интерфейсов. - Практика интерфейса транзакций (подписание, отзыв). - Практика запросов в отношении сделок (счета, заказы). - Другие функции (настоящие деньги, контрактные переводы, сбор средств, перевод активов в кошелек и т.д.)
Протокол Websocket - Практика подписки на обмен информацией (в интерфейсе REST отсутствует интерфейс Trades, дополненный интерфейсом Websocket)
На странице "Добавить биржи" на платформе FMZ можно настроить объекты Hyperliquid:
Экологические разделения Как и большинство бирж, Hyperliquid имеет тестовую среду.
В результате, мы получили более стабильную и быструю домашнюю сеть.
Адрес соответствующего узла интерфейса API REST:https://api.hyperliquid.xyz
Я не знаю.
В этом же году, по данным издания, в стране зафиксировано более 100 случаев случаев несчастных случаев.source == "a"
,chainId = 42161
Тестовые сети часто загружаются, но используются только в качестве тестовых интерфейсов, знакомых с функциями торговли на DEX.
Адрес соответствующего узла интерфейса API REST:https://api.hyperliquid-testnet.xyz
Я не знаю.
В этом же году, по данным издания, в стране зафиксировано более 100 случаев случаев несчастных случаев.source == "b"
,chainId = 421614
Как и в большинстве DEX-бирж, можно использовать wallet-APP для сбора двухмерного кода, чтобы подключиться к Hyperliquid.
Если вы хотите, чтобы ваши ученики, которые знакомы с тестовой сетью, сначала нашли краны прямо на странице Hyperliquid после подключения кошелька к Hyperliquid.
После получения тестовых активов и USDC для тестирования, можно нажать кнопку "депозит" и вложить их в Hyperliquid (Arbitrum Testing Net, лучше немного ETH).
Нажатие на кнопку "Депозит" требует проверки кошелька, и это будет расходовать немного ETH на Arbitrum.
Когда на странице Hyperliquid APP совершаются ручные транзакции, страница автоматически генерирует адрес прокси-кошелька и частный ключ, которые записываются в браузере, используются для размещения запросов на странице браузера.
На странице API Hyperliquid можно создать нужный адрес прокси-кошелька и соответствующий частный ключ:
1, Назовите имя будущему агентскому кошельку.
2, генерация адреса и частного ключа.
3. Использование кошельков, подключенных к Hyperliquid, для авторизации прокси-кошельков.
Конфигурация адреса кошелька агента, частного ключа на FMZ
Затем эту информацию можно настроить на платформе FMZ (конфигурационный интерфейс см. выше).
Информация, необходимая для настройки объекта биржи:
После завершения конфигурации мы сможем тестировать их на платформе FMZ, и мы сможем использовать "инструменты декомпиляции" платформы FMZ для проведения практических испытаний.
Если вы используете объект Hyperliquid Exchange с конфигурацией тестовой сети информации, при использовании необходимо выполнять некоторые операции переключения, например:
function main() {
// REST协议API地址切换到测试网
exchange.SetBase("https://api.hyperliquid-testnet.xyz")
// source : a 主网 , b 测试网
exchange.IO("source", "b")
return exchange.GetAccount()
}
При этом не требуется переключения на основную сеть. Интерфейс API для различных видов наличных и фьючерсов на Hyperliquid DEX практически одинаковый, с небольшими различиями в деталях.Конфигурация домашней сетииПроверка сетевой конфигурацииО чем вы?Фьючерсы HyperliquidВ результате, мы получили более чем полмиллиона долларов.
function main() {
var markets = exchange.GetMarkets()
if (!markets) {
throw "get markets error"
}
var tbl = {
type: "table",
title: "test markets",
cols: [
"key", "Symbol", "BaseAsset", "QuoteAsset", "TickSize", "AmountSize", "PricePrecision", "AmountPrecision", "MinQty",
"MaxQty", "MinNotional", "MaxNotional", "CtVal", "CtValCcy"
],
rows: []
}
for (var symbol in markets) {
var market = markets[symbol]
tbl.rows.push([
symbol, market.Symbol, market.BaseAsset, market.QuoteAsset, market.TickSize, market.AmountSize,
market.PricePrecision, market.AmountPrecision, market.MinQty, market.MaxQty, market.MinNotional, market.MaxNotional, market.CtVal, market.CtValCcy
])
}
LogStatus("`" + JSON.stringify(tbl) + "`")
}
function main() {
var depth = exchange.GetDepth("ETH_USD.swap")
var asks = depth.Asks
var bids = depth.Bids
Log("买3", bids[2])
Log("买2", bids[1])
Log("买1", bids[0])
Log("卖1", asks[0])
Log("卖2", asks[1])
Log("卖3", asks[2])
}
function main() {
var account = exchange.GetAccount()
return account
}
function main() {
var symbols = ["ETH_USD.swap", "XRP_USD.swap", "HYPE_USD.swap"]
var arrDir = ["market_buy", "sell", "buy"]
var markets = exchange.GetMarkets()
var ids = []
for (var i in symbols) {
var symbol = symbols[i]
var side = arrDir[i]
var ticker = exchange.GetTicker(symbol)
var info = markets[symbol]
exchange.SetPrecision(info.PricePrecision, info.AmountPrecision)
// USDC
var qty = 15
var price = null
var amount = null
if (side == "market_buy") {
price = -1
side = "buy"
amount = qty / ticker.Last
} else {
price = side == "buy" ? ticker.Last * 0.9 : ticker.Last * 1.1
amount = qty / price
}
var id = exchange.CreateOrder(symbol, side, price, amount)
ids.push(id)
}
var tbl = {type: "table", title: "test", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var id of ids) {
var order = exchange.GetOrder(id)
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
Sleep(500)
}
LogStatus("`" + JSON.stringify(tbl) + "`")
}
function main() {
var orders = exchange.GetOrders("USD.swap")
for (var order of orders) {
exchange.CancelOrder(order.Id, order)
Sleep(1000)
}
var tbl = {type: "table", title: "test", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
LogStatus("`" + JSON.stringify(tbl) + "`")
}
function main() {
// 设置当前为全仓
exchange.IO("cross", true)
// 设置杠杆
exchange.SetMarginLevel("ETH_USD.swap", 10)
return exchange.GetRawJSON()
}
exchange.GetRawJSON (()) возвращает сообщение ответа на запрос на установку рычага:
{
status : ok , response :{ type : default }}
Из-за более сложных параметров интерфейса биржи не может использоваться URL-кодирование для передачи данных.exchange.IO
При вызове функции можно использовать только JSON-строки в качестве параметров для ввода. Ниже приведены примеры вызова интерфейсов.
Гиперликвид.https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#place-an-order
var params = {"type": "scheduleCancel", "time": new Date().getTime()}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
{
status 1000000 - торгуется:174.57424.”}: err , response : Невозможно установить запланированное время отмены, пока не будет достаточно объема торгов.
Функция ограничена: аккаунт может использоваться только после достижения уровня транзакции.
Создать заказ TWAP.
function main() {
var params = {
"type": "twapOrder",
"twap": {
"a": 0,
"b": true,
"s": "1",
"r": false,
"m": 10,
"t": false
}
}
// SOL_USDT.swap , 订单量 : 1 , twapOrder 订单有头寸要求,最少100美元价值
// a : 0 , 即 SOL_USDT.swap 这个品种
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
Напомним, что в апреле этого года в Твиттере появилась публикация, в которой говорилось о том, что TWAP не работает.
function main() {
var params = {
"type": "twapCancel",
"a": 0,
"t": 3805
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
Позже, в апреле, в Twitter появилась статья, в которой говорится о том, что в этом году будет запущен новый портал.
function main() {
var params = {
"type": "approveAgent",
"hyperliquidChain": "Testnet",
"signatureChainId": "0x66eee",
"agentAddress": "0xAAAA",
"agentName": "test02",
"nonce": new Date().getTime()
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
Удалось вернуть разрешение:
{
status : ok , response :{ type : default }}
https://app.hyperliquid-testnet.xyz/API
В центре.В частности, он рассказал о том, как в 2013 году он был арестован.
function main() {
var params = {
"type": "vaultTransfer",
"vaultAddress": "0xAAA",
"isDeposit": true,
"usd": 5000000
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
В результате, мы получили более чем полмиллиарда долларов.
function main() {
var params = {
"type": "withdraw3",
"hyperliquidChain": "Testnet",
"signatureChainId": "0x66eee",
"amount": "5",
"time": new Date().getTime(),
"destination": "0xAAA"
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
Перераспределение активов между наличными/фьючерсными (контрактами на постоянное действие).
function main() {
var params = {
"type": "usdClassTransfer",
"hyperliquidChain": "Testnet",
"signatureChainId": "0x66eee",
"amount": "5",
"toPerp": false,
"nonce": new Date().getTime()
}
return exchange.IO("api", "POST", "/exchange", null, JSON.stringify(params))
}
false
Показать направление перемещения: futures -> spot.true
Отображает направление перемещения:spot -> futures.В настоящее время в Интернете существуют более чем 300 000 веб-сайтов.
Mainnet: wss://api.hyperliquid.xyz/ws
Поскольку интерфейс REST API не получает данные о недавних транзакциях, интерфейс Websocket имеет этот канал для подписки.
Состав подписки
{
"method": "subscribe",
"subscription": {
"type": "trades",
"coin": "SOL"
}
}
Примеры испытаний, выполненных в инструментах дебатов:
function main() {
var loopCount = 20
var subMsg = {
"method": "subscribe",
"subscription": {
"type": "trades",
"coin": "SOL"
}
}
var conn = Dial("wss://api.hyperliquid.xyz/ws")
conn.write(JSON.stringify(subMsg))
if (conn) {
for (var i = 0; i < loopCount; i++) {
var msg = conn.read(1000)
if (msg) {
Log(msg)
}
}
}
conn.close()
Log("测试结束")
}
Вышеперечисленные тесты, основанные на новейших хостерах, требуют загрузки новейших хостеров для поддержки Hyperliquid DEX.
Спасибо за поддержку, спасибо за чтение.