[TOC]

हाल ही में, FMZ प्लेटफॉर्म ने हाइपरलिक्विड DEX, एक उच्च-प्रदर्शन विकेन्द्रीकृत एक्सचेंज के लिए समर्थन जोड़ा है, जो उपयोगकर्ताओं को विकेन्द्रीकृत लेनदेन में भाग लेने के लिए अधिक विकल्प प्रदान करता है। वर्तमान में, FMZ प्लेटफॉर्म के कस्टोडियन फ़ंक्शन को हाइपरलिक्विड के स्पॉट और सतत अनुबंध लेनदेन का समर्थन करने और DEX के सभी API फ़ंक्शन को कवर करने के लिए पूरी तरह से अपडेट किया गया है।
हाइपरलिक्विड प्लेटफ़ॉर्म अवलोकन
हाइपरलिक्विड एक उच्च-प्रदर्शन L1 ब्लॉकचेन है, जिसे पूरी तरह से ऑन-चेन खुली वित्तीय प्रणाली के निर्माण की दृष्टि से शुरू से ही अनुकूलित किया गया है। उपयोगकर्ता कुशल मूल घटकों के साथ अंतःक्रिया करके स्वतंत्र रूप से अनुप्रयोग बना सकते हैं, तथा साथ ही अंतिम उपयोगकर्ता के लिए सहज अनुभव सुनिश्चित कर सकते हैं।
हाइपरलिक्विड L1 का प्रदर्शन वित्तीय अनुप्रयोगों के अनुमति रहित पारिस्थितिकी तंत्र का समर्थन करने के लिए पर्याप्त है। सभी ऑर्डर, ऑर्डर निकासी, लेनदेन और परिसमापन पूरी तरह से पारदर्शी तरीके से ऑन-चेन पर पूरे किए जाते हैं, जिसमें ब्लॉक विलंब 1 सेकंड से भी कम होता है। वर्तमान में, यह श्रृंखला प्रति सेकंड 100,000 ऑर्डर तक की प्रसंस्करण क्षमता का समर्थन करती है।
हाइपरलिक्विड L1 हाइपरबीएफटी नामक एक कस्टम सर्वसम्मति एल्गोरिथ्म का उपयोग करता है, जो हॉटस्टफ और उसके उत्तराधिकारियों से प्रेरित है। उच्च-प्रदर्शन ब्लॉकचेन की आवश्यकताओं को पूरा करने के लिए सर्वसम्मति तंत्र और नेटवर्क वास्तुकला दोनों को नीचे से ऊपर तक अनुकूलित किया गया है।
इस गाइड के माध्यम से, हम आशा करते हैं कि हम आपको FMZ प्लेटफॉर्म पर हाइपरलिक्विड DEX के प्रोग्रामेटिक और क्वांटिटेटिव ट्रेडिंग को शीघ्रता से आरंभ करने में मदद करेंगे तथा अधिक ट्रेडिंग अवसरों की खोज करने में सहायता करेंगे।
REST प्रोटोकॉल
वेबसॉकेट प्रोटोकॉल
FMZ प्लेटफ़ॉर्म के एक्सचेंज जोड़ें पृष्ठ पर, आप हाइपरलिक्विड स्पॉट और फ्यूचर्स एक्सचेंज ऑब्जेक्ट कॉन्फ़िगर कर सकते हैं:

पर्यावरण प्रभाग अधिकांश एक्सचेंजों की तरह, हाइपरलिक्विड में भी एक परीक्षण वातावरण है।
वास्तविक उपयोग अनुभव से, मुख्य नेटवर्क अपेक्षाकृत स्थिर है और गति भी अच्छी है।
संबंधित REST प्रोटोकॉल API इंटरफ़ेस नोड पता:https://api.hyperliquid.xyz。
संदेश हस्ताक्षर से संबंधित जानकारी भी भिन्न है:source == "a",chainId = 42161
परीक्षण नेटवर्क अक्सर क्रैश हो जाता है, लेकिन इसका उपयोग केवल परीक्षण इंटरफ़ेस के रूप में और DEX पर ट्रेडिंग कार्यों से परिचित होने के लिए किया जाता है।
संबंधित REST प्रोटोकॉल API इंटरफ़ेस नोड पता:https://api.hyperliquid-testnet.xyz。
संदेश हस्ताक्षर से संबंधित जानकारी भी भिन्न है:source == "b",chainId = 421614
अधिकांश DEX एक्सचेंजों के वॉलेट कनेक्शन विधि की तरह, आप हाइपरलिक्विड से कनेक्ट करने के लिए QR कोड को स्कैन करने के लिए वॉलेट APP का उपयोग कर सकते हैं (वॉलेट को आर्बिट्रम पर स्विच करें और लॉग इन करने के लिए कोड को स्कैन करें, परीक्षण नेटवर्क और मुख्य नेटवर्क समान हैं) .

यदि आप पहले टेस्टनेट से परिचित होना चाहते हैं, तो आप अपने वॉलेट को हाइपरलिक्विड से कनेक्ट करने के बाद सीधे हाइपरलिक्विड पेज पर नल पा सकते हैं।

आप परीक्षण परिसंपत्तियों का दावा कर सकते हैं। परीक्षण के लिए USDC प्राप्त करने के बाद, इसे हाइपरलिक्विड में जमा करने के लिए “जमा करें” बटन पर क्लिक करें (आर्बिट्रम परीक्षण नेटवर्क के लिए कुछ ETH रखना सबसे अच्छा है)।
जमा करने के लिए “जमा” बटन पर क्लिक करें, जिसके लिए वॉलेट सत्यापन की आवश्यकता होगी और यह आर्बिट्रम पर थोड़ा ETH खपत करेगा।
हाइपरलिक्विड ऐप पेज पर मैन्युअल लेनदेन करते समय, पेज स्वचालित रूप से एक प्रॉक्सी वॉलेट पता और निजी कुंजी उत्पन्न करेगा, जो ब्राउज़र में रिकॉर्ड किए जाते हैं और ब्राउज़र पेज पर ऑर्डर देने जैसे कार्यों के लिए उपयोग किए जाते हैं। अगर हम प्रोग्रामेटिक और क्वांटिटेटिव करना चाहते हैं लेनदेन को यह कॉन्फ़िगरेशन जानकारी कैसे प्राप्त करनी होगी?
आप हाइपरलिक्विड API पृष्ठ पर आवश्यक प्रॉक्सी वॉलेट पता और संबंधित निजी कुंजी बना सकते हैं:


1. बनाए जाने वाले प्रॉक्सी वॉलेट को एक नाम दें।
2. पता और निजी कुंजी उत्पन्न करें.
FMZ पर प्रॉक्सी वॉलेट पता और निजी कुंजी कॉन्फ़िगर करें
फिर आप इस जानकारी को FMZ प्लेटफॉर्म पर कॉन्फ़िगर कर सकते हैं (कॉन्फ़िगरेशन इंटरफ़ेस ऊपर उल्लिखित है)।
एक्सचेंज ऑब्जेक्ट को कॉन्फ़िगर करने के लिए आवश्यक जानकारी:
एक बार कॉन्फ़िगरेशन पूरा हो जाने के बाद, हम इसे FMZ प्लेटफ़ॉर्म पर परीक्षण कर सकते हैं। हम परीक्षण अभ्यास के लिए सीधे FMZ प्लेटफ़ॉर्म के “डिबगिंग टूल” का उपयोग करते हैं।
यदि आप टेस्टनेट जानकारी के साथ कॉन्फ़िगर किए गए हाइपरलिक्विड एक्सचेंज ऑब्जेक्ट का उपयोग कर रहे हैं, तो आपको इसका उपयोग करते समय कुछ स्विचिंग ऑपरेशन करने की आवश्यकता होगी, उदाहरण के लिए:
function main() {
// REST协议API地址切换到测试网
exchange.SetBase("https://api.hyperliquid-testnet.xyz")
// source : a 主网 , b 测试网
exchange.IO("source", "b")
return exchange.GetAccount()
}
मेननेट कॉन्फ़िगरेशन को उपरोक्त स्विचिंग ऑपरेशन की आवश्यकता नहीं है। हाइपरलिक्विड 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 स्ट्रिंग को पैरामीटर के रूप में पास किया जा सकता है। नीचे प्रत्येक इंटरफ़ेस को कॉल करने के उदाहरण दिए गए हैं।
हाइपरलिक्विड संदर्भ दस्तावेज़: 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”:“err”,“response”:“Cannot set scheduled cancel time until enough volume traded. Required: \(1000000. Traded: \)174.57424.”}
इस फ़ंक्शन पर प्रतिबंध हैं: इस फ़ंक्शन का उपयोग करने के लिए खाते को ट्रेडिंग स्तर तक पहुंचना होगा।
एक 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रोटेशन की दिशा को इंगित करता है: वायदा -> स्पॉट।trueस्थानांतरण दिशा को इंगित करता है: स्पॉट -> वायदा।मुख्य नेटवर्क WS इंटरफ़ेस पता:
Mainnet: 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("测试结束")
}

उपरोक्त परीक्षण नवीनतम कस्टोडियन पर आधारित हैं। हाइपरलिक्विड DEX एक्सचेंज का समर्थन करने के लिए आपको नवीनतम कस्टोडियन डाउनलोड करना होगा।
आपके समर्थन के लिए धन्यवाद और पढ़ने के लिए धन्यवाद।