[TOC]
최근, FMZ 플랫폼은 Hyperliquid DEX라는 고성능의 분산 거래소를 추가 지원하여 사용자에게 분산 거래에 참여할 수있는 더 많은 옵션을 제공합니다. 현재, FMZ 플랫폼의 관리자 기능은 Hyperliquid의 현금 및 상시 계약 거래를 지원하고 DEX의 모든 API 기능을 덮는 완전히 업데이트되었습니다.
하이퍼리quid 플랫폼 설명서
하이퍼리quid (Hyperliquid) 는 초로부터 최적화된 고성능 L1 블록체인이며, 전체적으로 연계된 개방형 금융 시스템을 구축하는 비전이다. 사용자는 효율적인 네이티브 구성 요소와 상호작용하여 애플리케이션을 독자적으로 만들 수 있으며, 동시에 최종 사용자 경험의 원활성을 보장한다.
하이퍼리쿼드 L1의 성능은 허가 없이 금융 애플리케이션 생태계를 지원할 만큼 충분하다. 모든 주문, 환불, 거래 및 청산은 블록체인 상에서 완전히 투명하게 완료되며, 블록 지연은 1초 미만이다. 현재 블록체인은 초당 최대 10만 개의 주문을 처리할 수 있는 능력을 지원한다.
하이퍼 리퀴드 L1는 Hotstuff와 그 후의 알고리즘에서 영감을 얻은 HyperBFT라는 사용자 정의 합의 알고리즘을 사용한다. 합의 메커니즘과 네트워크 구조 모두 고성능 블록체인의 요구를 충족시키기 위해 바닥에서 최적화되었다.
이 가이드를 통해 FMZ 플랫폼에서 Hyperliquid DEX의 프로그래밍 및 양적 거래를 빠르게 수행하고 더 많은 거래 기회를 탐색하는 데 도움이 될 것입니다.
REST 프로토콜 - 비즈니스 인터페이스 연습. - 트랜잭션 인터페이스 실습 (예: 주문, 취소) - 거래 관련 문의 연습 (계정, 주문) - 다른 기능 (현금, 계약 분할, 금전함수, 자산 분할, 지갑 등)
웹소켓 프로토콜 - 트레이드 정보 구독 연습 (REST 인터페이스에는 트레이드 인터페이스가 없으며 웹소켓 인터페이스로 보완됩니다)
FMZ 플랫폼의 추가 거래소 페이지에서 Hyperliquid 현금, 선물 거래소 객체를 구성할 수 있습니다.
환경 분할 대부분의 거래소와 마찬가지로, 하이퍼리quid에는 테스트 환경이 있습니다.
실제 사용의 느낌, 홈 네트워크는 안정적이고 속도도 좋습니다.
해당 REST 프로토콜 API 인터페이스 노드 주소:https://api.hyperliquid.xyz
ᅳ
이 글은 다른 글과도 다릅니다.source == "a"
,chainId = 42161
테스트 네트워크는 종종 부착되지만 테스트 인터페이스, DEX에 대한 트레이딩 기능에 익숙한 것으로 사용됩니다.
해당 REST 프로토콜 API 인터페이스 노드 주소:https://api.hyperliquid-testnet.xyz
ᅳ
이 글은 다른 글과도 다릅니다.source == "b"
,chainId = 421614
대부분의 DEX 거래소의 지갑 연결 방식과 마찬가지로, 지갑 APP를 사용하여 2D 암호 스캔을 통해 Hyperliquid에 연결할 수 있습니다. (지갑이 Arbitrum으로 전환되는 방식과 동일한 방식으로 스캔 로그인, 테스트 네트워크, 홈 네트워크).
테스트 네트워크에서 먼저 익숙한 학생을 원한다면 지갑이 Hyperliquid에 연결된 후 Hyperliquid 페이지에서 직접 펌프를 찾을 수 있습니다.
테스트 자산을 받을 수 있고 테스트용 USDC를 받을 수 있는 경우, "예금" 버튼을 누르면 Hyperliquid에 저장할 수 있습니다.
"예금" 버튼을 누르면 지갑 검증이 필요하며 Arbitrum에 있는 ETH를 조금 더 소비합니다.
하이퍼리quid APP 페이지에서 수동 거래를 할 때, 페이지는 자동으로 대리인 지갑 주소와 개인 키를 생성하고, 브라우저에 기록되어 브라우저 페이지에서 주문을 내기 위해 사용된다.
Hyperliquid의 API 페이지에서 필요한 대리인 지갑 주소와 그에 따른 개인 키를 만들 수 있습니다:
1, 창업 예정인 대리인 지갑에 이름을 붙여주세요.
2, 주소와 개인 키를 생성합니다.
3 Hyperliquid에 연결된 지갑을 사용하여 대리인 지갑에 권한을 부여합니다.
FMZ에서 대리인 지갑 주소, 개인 키를 구성합니다
이 정보는 FMZ 플랫폼에서 설정할 수 있습니다.
거래소 개체를 구성하는 데 필요한 정보:
일단 구성이 완료되면 FMZ 플랫폼에서 테스트를 할 수 있습니다. 우리는 FMZ 플랫폼의 "디큐팅 도구"를 사용하여 직접 테스트를 수행합니다.
테스트 네트워크 정보 구성의 Hyperliquid 거래소 객체를 사용하는 경우 사용 시 몇 가지 전환 작업을 수행해야 합니다. 예를 들어:
function main() {
// REST协议API地址切换到测试网
exchange.SetBase("https://api.hyperliquid-testnet.xyz")
// source : a 主网 , b 测试网
exchange.IO("source", "b")
return exchange.GetAccount()
}
메인 네트워크 구성은 위의 전환 작업을 필요로하지 않습니다. Hyperliquid DEX 거래소의 현금 및 선물 품종에 관련된 API 인터페이스는 거의 동일합니다. 약간의 세부 차이만 있습니다.홈 네트워크 구성 정보그리고테스트 네트워크 구성 정보이 모든 것은하이퍼리쿼드 선물이 모든 것은 다른 사람들에게도 적용될 수 있습니다.
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 문자열만을 매개 변수로 전송할 수 있습니다.
Hyperliquid 참조: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 100만원 거래: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))
}
이 사이트는 인터넷 테스트 네트워크를 통해 새로운 대리인 지갑을 승인합니다.
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
중부와자금 보금자리에 자산을 매입합니다.
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
지점 -> 미래.이 사이트의 주요 웹 사이트의 WS 인터페이스 주소는:
메인넷: wss://api.hyperliquid.xyz/ws
REST 프로토콜 API 인터페이스가 최근 트랜잭션 데이터를 얻을 수 없는 인터페이스이기 때문에, 웹소켓 인터페이스는 이 채널을 구독할 수 있다.
기독 메세지 구조
{
"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 거래소를 지원합니다.
이 글을 읽은 모든 분들께 감사드립니다.