हाल ही में, एफएमजेड प्लेटफॉर्म ने हाइपरलिक्विड डीईएक्स के लिए समर्थन जोड़ा है, जो एक उच्च प्रदर्शन विकेंद्रीकृत एक्सचेंज है, जो उपयोगकर्ताओं को विकेंद्रीकृत ट्रेडिंग में भाग लेने के लिए अधिक विकल्प प्रदान करता है। वर्तमान में, एफएमजेड प्लेटफॉर्म के डॉकर फ़ंक्शन को पूरी तरह से अपडेट किया गया है ताकि हाइपरलिक्विड
हाइपरलिक्विड प्लेटफार्म का अवलोकन
हाइपरलिक्विड एक उच्च-प्रदर्शन वाला एल 1 ब्लॉकचेन है जिसे खरोंच से अनुकूलित किया गया है, जिसमें पूरी तरह से ऑन-चेन ओपन वित्तीय प्रणाली बनाने की दृष्टि है। उपयोगकर्ता एक सुचारू अंतिम उपयोगकर्ता अनुभव सुनिश्चित करते हुए कुशल देशी घटकों के साथ बातचीत करके स्वतंत्र रूप से एप्लिकेशन बना सकते हैं।
हाइपरलिक्विड L1
का प्रदर्शन एक अनुमति रहित वित्तीय अनुप्रयोग पारिस्थितिकी तंत्र का समर्थन करने के लिए पर्याप्त है। सभी आदेश, निकासी, लेनदेन और परिसमापन पूरी तरह से पारदर्शी तरीके से श्रृंखला में पूरा किए जाते हैं, जिसमें 1 सेकंड से कम का ब्लॉक विलंबता होता है। वर्तमान में, श्रृंखला प्रति सेकंड 100,000 आदेशों तक की प्रसंस्करण क्षमता का समर्थन करती है। हाइपरलिक्विड L1 एक कस्टम आम सहमति एल्गोरिथ्म का उपयोग करता है जिसे हाइपरबीएफटी कहा जाता है, जो हॉटस्टफ और इसके बाद के एल्गोरिदम से प्रेरित है। दोनों आम सहमति तंत्र और नेटवर्क वास्तुकला को नीचे से ऊपर तक अनुकूलित किया गया है ताकि उच्च प्रदर्शन वाले ब्लॉकचेन की जरूरतों को पूरा किया जा सके।
इस मार्गदर्शिका के माध्यम से, हम आशा करते हैं कि आप एफएमजेड प्लेटफॉर्म पर हाइपरलिक्विड डीईएक्स पर प्रोग्रामेटिक और मात्रात्मक ट्रेडिंग के साथ जल्दी से शुरू करने और अधिक ट्रेडिंग अवसरों की खोज करने में मदद करेंगे।
REST प्रोटोकॉल
वेबसॉकेट प्रोटोकॉल
एफएमजेड प्लेटफॉर्म के प्लेटफ़ॉर्म जोड़ें पृष्ठ पर, आप हाइपरलिक्विड स्पॉट और वायदा विनिमय वस्तुओं को कॉन्फ़िगर कर सकते हैंः
मुख्यनेट एपीपी पताः
वास्तविक उपयोग में, मुख्य नेटवर्क अपेक्षाकृत स्थिर है और इसकी गति अच्छी है।
संबंधित आरईएसटी प्रोटोकॉल एपीआई इंटरफ़ेस नोड पता हैःhttps://api.hyperliquid.xyz
.
संदेश हस्ताक्षर से संबंधित जानकारी भी अलग हैःsource == "a",chainId = 42161
.
परीक्षण नेटवर्क एपीपी पताः
परीक्षण नेटवर्क अक्सर क्रैश हो जाता है, लेकिन इसका उपयोग केवल एक परीक्षण इंटरफ़ेस के रूप में किया जाता है और आपको DEX पर ट्रेडिंग कार्यों से परिचित कराने के लिए किया जाता है।
संबंधित आरईएसटी प्रोटोकॉल एपीआई इंटरफ़ेस नोड पता हैःhttps://api.hyperliquid-testnet.xyz
.
संदेश हस्ताक्षर से संबंधित जानकारी भी अलग हैःsource == "b",chainId = 421614
.
अधिकांश DEX एक्सचेंजों की वॉलेट कनेक्शन विधि की तरह, आप Hyperliquid से कनेक्ट करने के लिए QR कोड को स्कैन करने के लिए वॉलेट एपीपी का उपयोग कर सकते हैं (वॉलेट को Arbitrum पर स्विच करें और लॉग इन करने के लिए कोड स्कैन करें, परीक्षण नेटवर्क और मुख्य नेटवर्क समान हैं) ।
आप परीक्षण परिसंपत्तियों का दावा कर सकते हैं. परीक्षण के लिए USDC प्राप्त करने के बाद, Hyperliquid में जमा करने के लिए
जमा करने के लिए
हाइपरलिक्विड एपीपी पेज पर मैन्युअल लेनदेन करते समय, पेज स्वचालित रूप से एक प्रॉक्सी वॉलेट पता और निजी कुंजी उत्पन्न करेगा, जो ब्राउज़र में रिकॉर्ड किए जाते हैं और ब्राउज़र पेज पर ऑर्डर देने जैसे संचालन के लिए उपयोग किए जाते हैं। तो यदि हम प्रोग्रामेटिक और मात्रात्मक व्यापार करना चाहते हैं, तो हम इस कॉन्फ़िगरेशन जानकारी को कैसे प्राप्त करते हैं?
आप Hyperliquid API पृष्ठ पर आवश्यक प्रॉक्सी वॉलेट पता और संबंधित निजी कुंजी बना सकते हैंः
फिर आप इस जानकारी को FMZ प्लेटफॉर्म पर कॉन्फ़िगर कर सकते हैं (कन्फ़िगरेशन इंटरफ़ेस ऊपर उल्लेख किया गया है) ।
वॉलेट पताः हाइपरलिक्विड से जुड़ा वॉलेट पता (नोट, प्रॉक्सी वॉलेट पता नहीं) । वॉलेट प्राइवेटकीः वॉलेट की निजी कुंजी हाइपरलिक्विड से जुड़ी होती है (वैकल्पिक, केवल एपीआई जैसे ट्रांसफर को कॉल करने के लिए आवश्यक है, इसे खाली छोड़ दिया जा सकता है) । गुप्त कुंजी: प्रॉक्सी वॉलेट निजी कुंजी (पिछले चरण में उत्पन्न, प्राधिकरण के बाद प्रदर्शित निजी कुंजी) ।
विनिमय वस्तु को विन्यस्त करने के लिए आवश्यक जानकारीः
एक बार कॉन्फ़िगरेशन पूरा हो जाने के बाद, हम इसे एफएमजेड प्लेटफॉर्म पर परीक्षण कर सकते हैं। हम सीधे परीक्षण अभ्यास के लिए एफएमजेड प्लेटफॉर्म के
यदि आप टेस्टनेट जानकारी के साथ कॉन्फ़िगर की गई हाइपरलिक्विड एक्सचेंज ऑब्जेक्ट का उपयोग कर रहे हैं, तो आपको इसका उपयोग करते समय कुछ स्विचिंग ऑपरेशन करने की आवश्यकता होगी, उदाहरण के लिएः
function main() {
// REST protocol API address switched to testnet
exchange.SetBase("https://api.hyperliquid-testnet.xyz")
// source : a Mainnet, b Testnet
exchange.IO("source", "b")
return exchange.GetAccount()
}
मेननेट कॉन्फ़िगरेशन के लिए उपरोक्त स्विचिंग ऑपरेशन की आवश्यकता नहीं है। हाइपरलिक्विड डीईएक्स एक्सचेंज में स्पॉट और वायदा उत्पादों से संबंधित एपीआई इंटरफ़ेस लगभग समान हैं, केवल विवरण में मामूली अंतर के साथ। इसके बाद हम उपयोग करते हैंअतितरल वायदाविनिमय के उद्देश्यमुख्यनेट विन्यास जानकारीऔरटेस्टनेट कॉन्फ़िगरेशन जानकारीपरीक्षण के लिए।
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("asks 3", bids[2])
Log("asks 2", bids[1])
Log("asks 1", bids[0])
Log("bids 1", asks[0])
Log("bids 2", asks[1])
Log("bids 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() {
// Set the current position to cross position
exchange.IO("cross", true)
// Set leverage
exchange.SetMarginLevel("ETH_USD.swap", 10)
return exchange.GetRawJSON()
}
कार्य के परिणाम:
exchange.GetRawJSON() लीवरेज सेटिंग अनुरोध की प्रतिक्रिया जानकारी लौटाता हैः
{
status : ok , response :{ type : default }}
चूंकि एक्सचेंज के इंटरफेस पैरामीटर अपेक्षाकृत जटिल हैं और यूआरएल एन्कोडिंग विधि का उपयोग करके पारित नहीं किया जा सकता है, जब उपयोग किया जाता हैexchange.IOfunction
कॉल, केवल 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 , Order Quantity: 1 , twapOrder order has position requirement, minimum value of 100 USD
// a: 0, i.e. 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 इंटरफ़ेस पताः
मुख्य नेटवर्क: wss://api.hyperliquid.xyz/ws
चूंकि REST प्रोटोकॉल एपीआई इंटरफ़ेस में हाल के लेनदेन डेटा प्राप्त करने के लिए एक इंटरफ़ेस नहीं है, इसलिए वेबसॉकेट इंटरफ़ेस में यह चैनल है जिसे सब्सक्राइब किया जा सकता है।
सदस्यता संदेश संरचना
{
"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("End of test")
}
उपरोक्त परीक्षण नवीनतम डॉकर पर आधारित हैं. आपको हाइपरलिक्विड डीईएक्स एक्सचेंज का समर्थन करने के लिए नवीनतम डॉकर डाउनलोड करने की आवश्यकता है.
आपके समर्थन के लिए धन्यवाद और पढ़ने के लिए धन्यवाद।