[TOC]
यह DEX एक्सचेंजों के मात्रात्मक अभ्यास के बारे में तीसरा लेख है। इस बार हम वर्टेक्स प्रोटोकॉल के उपयोग गाइड का परिचय देंगे।
पारंपरिक विकेन्द्रीकृत एक्सचेंजों (DEX) के ढांचे में, मात्रात्मक व्यापारियों को अक्सर समझौता करने की आवश्यकता होती है: या तो स्वचालित बाजार निर्माता (AMM) मॉडल की उच्च फिसलन और कम निष्पादन दक्षता को स्वीकार करें, या क्रॉस-चेन तरलता विखंडन और एकल व्युत्पन्न कार्यों की तकनीकी दुविधा में पड़ें। वर्टेक्स प्रोटोकॉल का उद्भव “विकेन्द्रीकृत + संस्थागत-स्तर” संलयन प्रयोग के माध्यम से मात्रात्मक रणनीतियों की ऑन-चेन सीमाओं को पुनर्परिभाषित कर रहा है - यहां “दो में से एक को चुनने” की दुविधा नहीं है, केवल गति, गहराई और स्वतंत्रता का अंतिम संतुलन है।
एकीकृत मल्टी-चेन लिक्विडिटी पूल, हाइब्रिड ऑर्डर बुक (CLOB) और एम्बेडेड करेंसी मार्केट को एकीकृत करने वाले पहले DEX के रूप में, वर्टेक्स “केंद्रीकृत अनुभव, विकेन्द्रीकृत आत्मा” को अपने मूल के रूप में लेता है और मात्रात्मक व्यापारियों के लिए एक अनूठा ट्रैक खोलता है:
गति और तरलता की एक नई परिभाषा
ब्लॉकचेन प्रौद्योगिकी के निरंतर विकास के साथ, पारंपरिक केंद्रीकृत एक्सचेंजों (सीईएक्स) और विकेन्द्रीकृत एक्सचेंजों (डीईएक्स) के बीच की सीमा धीरे-धीरे धुंधली हो रही है। वर्टेक्स प्लेटफॉर्म के केंद्र के रूप में, वर्टेक्स एज न केवल लेनदेन की गति और तरलता को नया रूप देता है, बल्कि क्रॉस-चेन एकीकरण के माध्यम से उत्कृष्ट ऑर्डर मिलान तकनीक और स्व-हिरासत लाभों को भी पूरी तरह से जोड़ता है, जिससे वैश्विक व्यापारियों को एक नया DeFi अनुभव मिलता है।
क्रॉस-चेन लिक्विडिटी को एकीकृत करना: लिक्विडिटी विखंडन को तोड़ना पारंपरिक बाजारों में, विभिन्न श्रृंखलाओं के बीच तरलता अक्सर खंडित होती है, जिसके परिणामस्वरूप व्यापारी सर्वोत्तम लेनदेन मूल्य और गहराई का आनंद लेने में असमर्थ होते हैं। वर्टेक्स एज का जन्म इसी संदर्भ में हुआ, जिसने एकीकृत ऑर्डर बुक नेटवर्क के माध्यम से कई श्रृंखलाओं में स्थायी तरलता के समकालिक साझाकरण को साकार किया। वर्तमान में, वर्टेक्स एज ने आर्बिट्रम, बेस, सेई, ब्लास्ट, मेंटल, सोनिक और एब्सट्रैक्ट सहित 7 मुख्यधारा श्रृंखलाओं पर सतत अनुबंध तरलता को कवर किया है, ताकि व्यापारियों को अब तरलता के फैलाव के बारे में चिंता करने की आवश्यकता न हो, और वे सर्वोत्तम मूल्य पर व्यापार कर सकें, जिससे वास्तव में वैश्विक तरलता का निर्बाध कनेक्शन प्राप्त हो सके।
हाइब्रिड ऑर्डर बुक ट्रेडिंग: अल्ट्रा-फास्ट मैचिंग और ऑन-चेन सेटलमेंट के बीच सही संतुलन वर्टेक्स एज एक हाइब्रिड ऑर्डर बुक ट्रेडिंग मॉडल को अपनाता है, और इसकी मुख्य प्रौद्योगिकियों में शामिल हैं:
ऑफ-चेन ऑर्डर बुक मैचर: केवल 5-15 मिलीसेकंड की विलंबता के साथ ऑर्डर मिलान प्राप्त करने के लिए अल्ट्रा-हाई-स्पीड ऑफ-चेन मिलान तंत्र का उपयोग करता है, जो अधिकांश केंद्रीकृत एक्सचेंजों के बराबर है; ऑन-चेन जोखिम इंजन और एएमएम: जोखिम प्रबंधन प्रणालियां और स्वचालित बाजार निर्माता (एएमएम) प्रत्येक समर्थित श्रृंखला पर तैनात किए जाते हैं ताकि यह सुनिश्चित किया जा सके कि मिलान के बाद ऑर्डरों का निपटान सुरक्षित और पारदर्शी तरीके से किया जा सके। यह आर्किटेक्चर न केवल अत्यंत तीव्र लेनदेन प्रतिक्रिया सुनिश्चित करता है, बल्कि उपयोगकर्ताओं को ऑन-चेन निपटान के माध्यम से विकेन्द्रीकृत सुरक्षा भी प्रदान करता है, जिससे व्यापारियों को परिसंपत्ति स्व-संरक्षण की स्वतंत्रता बनाए रखते हुए CEX-स्तर के प्रदर्शन का आनंद लेने की अनुमति मिलती है।
बहु-खाता फ़ंक्शन: एक ही वॉलेट में कई खातों का प्रबंधन करें और अधिक कुशलता से धन आवंटित करें; लीवरेज्ड स्पॉट पोजीशन: उच्च पूंजी दक्षता प्राप्त करने के लिए सभी परिसंपत्तियों का मार्जिन के रूप में उपयोग करें; लचीला जोखिम प्रबंधन: जोखिम जोखिम को सटीक रूप से नियंत्रित करने के लिए जमा, स्थिति और लाभ और हानि के आंकड़ों पर एकीकृत तरीके से विचार किया जाता है।
लॉगिन “वर्टेक्स प्रोटोकॉल” पृष्ठ का पता:
वर्टेक्स अधिकांश DEX के समान है। Dapp में लॉग इन करने के बाद, आपको प्राधिकरण के लिए वॉलेट से कनेक्ट करना होगा। वर्टेक्स की उप-खाता प्रणाली एक लेबल के आधार पर प्रतिष्ठित है। लेबल उप-खाता वॉलेट पता प्राप्त करने के लिए वॉलेट पते की गणना में भाग लेता है। इसी समय, यह पता ऑर्डर और अन्य संचालन करने के लिए अधिकृत है।
उदाहरण के लिए, उपयोग करेंWalletConnectकनेक्ट करते समय वॉलेट पता है:0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43
, डिफ़ॉल्ट लेबल “डिफ़ॉल्ट” है, और गणना किया गया उप-खाता पता है:0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c4364656661756c740000000000
. डिफ़ॉल्ट टैग हैं:64656661756c740000000000
。
वर्टेक्स कई परिसंपत्तियों के रिचार्ज का समर्थन करता है। आम तौर पर, आप मार्जिन के रूप में USDC को रिचार्ज करना चुनते हैं और लेनदेन को स्थानांतरित करने के लिए सीधे कनेक्टेड वॉलेट का उपयोग करते हैं। यह ध्यान दिया जाना चाहिए कि वर्टेक्स पर निकासी, स्थानांतरण, टोकन भेजना और उप-खातों को स्थानांतरित करने जैसे संचालन यूएसडीसी का उपभोग करेंगे, और शुल्क कम नहीं हैं, इसलिए इन कार्यों को सावधानी से करने की आवश्यकता है।
किसी भिन्न श्रृंखला पर स्विच करें:
वर्टेक्स पर, अलग-अलग चेन में नोड्स, इंडेक्सर्स और चेन आईडी जैसी अलग-अलग कॉन्फ़िगरेशन जानकारी होती है। FMZ एनकैप्सुलेशन के लिए डिफ़ॉल्ट चेन हैArbitrum One
उपयोग कर सकते हैंLog(HttpQuery("https://gateway.prod.vertexprotocol.com/v1/query?type=contracts"))
चेन की आईडी, तैनात अनुबंध जानकारी आदि की क्वेरी करें।
FMZ.COM में लॉग इन करने के बाद, एक्सचेंज कॉन्फ़िगरेशन पेज पर, “क्रिप्टोकरेंसी” चुनें, वर्टेक्स एक्सचेंज चुनें, आप सीधे dapp पर वॉलेट प्रॉक्सी कुंजी को कॉन्फ़िगर कर सकते हैं। बेशक, आप वॉलेट प्राइवेट कुंजी को भी कॉन्फ़िगर कर सकते हैं। वर्टेक्स पर, आप प्रॉक्सी कुंजी प्राधिकरण / डीऑथोराइजेशन और अन्य संचालन को प्रबंधित करने के लिए इंटरफ़ेस का उपयोग कर सकते हैं, जो अधिक सुविधाजनक भी है।
प्रॉक्सी कुंजी:
उदाहरण के लिए, वर्टेक्स DEX एक्सचेंज के फ्रंट-एंड पेज पर: क्रोम ब्राउज़र (डिबगिंग चालू करें) -> एप्लिकेशन -> स्थानीय संग्रहण -> https://app.vertex -> वर्टेक्स उपयोगकर्ता सेटिंग्स
वर्टेक्स एक्सचेंज कॉन्फ़िगर करें
FMZ पर दो चीजों को कॉन्फ़िगर करने की आवश्यकता है। पहला है वॉलेट एड्रेस (हस्ताक्षर करने के लिए उपयोग की जाने वाली प्रॉक्सी कुंजी का पता नहीं, यह dapp से जुड़ा वॉलेट एड्रेस होना चाहिए)। दूसरा गुप्त कुंजी है जिसका उपयोग हस्ताक्षर करने के लिए किया जाता है (यह वॉलेट निजी कुंजी या प्रॉक्सी कुंजी हो सकती है)। चूंकि प्रॉक्सी कुंजियों का उपयोग किया जा सकता है, इसलिए कॉन्फ़िगर किया गया वॉलेट पता और कुंजी आवश्यक रूप से एक जोड़ी नहीं हैं।
वर्टेक्स की उप-खाता प्रणाली को टैग द्वारा पहचाना जाता है। FMZ पर उपयोग किया जाने वाला डिफ़ॉल्ट टैग हैdefault
यदि आपको टैग का मुख्य खाता बदलने की आवश्यकता है, तो आप इसे कोड में उपयोग कर सकते हैं:
exchange.IO("subAccountTag", "default") // 切换到主子账号
exchange.IO("subAccountTag", "test01") // 切换到标签名为 test01 的子账号
एक्सचेंज कॉन्फ़िगरेशन जानकारी को कॉन्फ़िगर करने और एक कस्टोडियन प्रोग्राम को तैनात करने के बाद जो वर्टेक्स इंटरफ़ेस तक पहुंच सकता है, हम व्यावहारिक संचालन के लिए कुछ कोड लिखना शुरू कर सकते हैं।
हम परीक्षण के लिए मुख्य उप-खाते का उपयोग करते हैं (टैग: डिफ़ॉल्ट वाला उप-खाता), और हम उपयोग करते हैंArbitrumनेटवर्क।
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) + "`")
return markets
}
यह देखा जा सकता है कि वर्टेक्स पर अनुबंध का प्रकार USDC-आधारित अनुबंध है, मार्जिन USDC है, और अनुबंध का मूल्य एक संबंधित मुद्रा का प्रतिनिधित्व करता है, उदाहरण के लिएBTC_USDC.swap
अर्थात्, बीटीसी का यूएसडीसी-आधारित अनुबंध, एक अनुबंध एक बीटीसी स्थिति का प्रतिनिधित्व करता है। उपरोक्त कोड दिखाता है कि अनुबंध बाजार की जानकारी का अनुरोध कैसे करें और विभिन्न सामग्रियों को कैसे आउटपुट करें।
function main() {
var depths = [{"symbol": "ETH_USDC"}, {"symbol": "SOL_USDC"}, {"symbol": "BTC_USDC"}]
for (var ele of depths) {
ele["depth"] = exchange.GetDepth(ele["symbol"] + ".swap")
}
var tbls = []
for (var ele of depths) {
var tbl = {"type": "table", "title": ele["symbol"], "cols": ["level", "price", "amount"], "rows": []}
var depth = ele["depth"]
for (var i = 0 ; i < 3 ; i++) {
tbl["rows"].push(["卖" + (i + 1), depth.Asks[i].Price, depth.Asks[i].Amount])
}
tbl["rows"].reverse()
for (var i = 0 ; i < 3 ; i++) {
tbl["rows"].push(["买" + (i + 1), depth.Bids[i].Price, depth.Bids[i].Amount])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
}
function main() {
var arrTrades = [{"symbol": "ETH_USDC"}, {"symbol": "SOL_USDC"}, {"symbol": "BTC_USDC"}]
for (var ele of arrTrades) {
ele["trades"] = exchange.GetTrades(ele["symbol"] + ".swap")
}
var tbls = []
for (var ele of arrTrades) {
var tbl = {"type": "table", "title": ele["symbol"], "cols": ["Time", "Price", "Amount", "side"], "rows": []}
var trades = ele["trades"]
for (var trade of trades) {
tbl["rows"].push([_D(trade.Time), trade.Price, trade.Amount, trade.Type == 0 ? "买入" : "卖出"])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
}
function main() {
let c = KLineChart({
overlay: true
})
let bars = exchange.GetRecords("SOL_USDC.swap")
if (!bars) {
return
}
bars.forEach(function(bar, index) {
c.begin(bar)
Log(index, bar)
c.close()
})
}
वर्टेक्स चार्ट
FMZ रणनीति संचालन ड्राइंग
function main() {
var fundings = exchange.GetFundings()
var tbl = {
"type": "table",
"title": "GetFundings",
"cols": ["Symbol", "Interval", "Time", "Rate"],
"rows": [],
}
for (var f of fundings) {
tbl["rows"].push([f.Symbol, f.Interval / 3600000, _D(f.Time), f.Rate * 100 + " %"])
}
LogStatus(_D(), "\n`" + JSON.stringify(tbl) + "`")
}
वित्तपोषण दर चक्र 1 घंटे का है।
Max Order Size Gets the max order size possible of a given product for a given subaccount.
function main() {
// GET [GATEWAY_REST_ENDPOINT]/query?type=max_order_size&product_id={product_id}&sender={sender}&price_x18={price_x18}&direction={direction}
// price_x18=3000000000000000000000 : 3000 USDC
// product_id=4 : ETH_USDC.swap
// sender=0x123 : e.g. 0x123
return HttpQuery("https://gateway.prod.vertexprotocol.com/query?type=max_order_size&product_id=4&sender=0x123&price_x18=3000000000000000000000&direction=short")
}
अंतिम अनुरोध द्वारा लौटाया गया डेटा है:{"status":"success","data":{"max_order_size":"170536415320344899"},"request_type":"query_max_order_size"}
यह देखा जा सकता है कि 3000 की कीमत के साथ एथेरियम सतत अनुबंध के लिए चालू खाता उपलब्ध संपत्ति, बिक्री आदेश के लिए अधिकतम आदेश मात्रा है: 0.17 ETH
Linked Signer Retrieves current linked signer of a provided subaccount
function main() {
return HttpQuery("https://gateway.prod.vertexprotocol.com/query?type=linked_signer&subaccount=0x123")
}
प्राधिकरण जानकारी मिली:
{“status”:“success”,“data”:{“linked_signer”:“0x79119…”},“request_type”:“query_linked_signer”} पता “0x79119…” वर्टेक्स फ्रंट-एंड पेज पर वॉलेट से कनेक्ट करते समय ऑर्डर लेनदेन को अधिकृत करने के लिए प्रॉक्सी पता है। इस प्राधिकरण को रद्द या जोड़ा जा सकता है (एपीआई कॉल के माध्यम से)।
इस लेख का मुख्य विषय निम्नलिखित है। हम लंबे समय से विकेन्द्रीकृत एक्सचेंजों पर सरलतापूर्वक और शीघ्रता से लेनदेन करने में व्यस्त हैं।
एक सरल व्यापार का परीक्षण करें और एक सामान्य सीमा आदेश रखें।
function main() {
var id1 = exchange.CreateOrder("ETH_USDC.swap", "buy", 2000, 0.1)
var id2 = exchange.CreateOrder("SOL_USDC.swap", "buy", 60, 2)
Log("ETH_USDC.swap id1:", id1)
Log("SOL_USDC.swap id2:", id2)
var orders = exchange.GetOrders("USDC.swap")
var tbl = {type: "table", title: "test GetOrders", 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() {
var orders = exchange.GetOrders("USDC.swap")
var tbl = {type: "table", title: "test GetOrders", 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])
exchange.CancelOrder(order.Id)
}
LogStatus("`" + JSON.stringify(tbl) + "`")
return exchange.GetOrders()
}
function main() {
// 使用市价单下单持仓
exchange.SetCurrency("ETH_USDC")
exchange.SetContractType("swap")
exchange.Buy(-1, 0.01)
var positions = exchange.GetPositions()
var tbl = {type: "table", title: "test GetPosition/GetPositions", cols: ["Symbol", "Amount", "Price", "FrozenAmount", "Type", "Profit", "Margin", "ContractType", "MarginLevel"], rows: []}
for (var p of positions) {
tbl.rows.push([p.Symbol, p.Amount, p.Price, p.FrozenAmount, p.Type, p.Profit, p.Margin, p.ContractType, p.MarginLevel])
}
LogStatus("`" + JSON.stringify(tbl) + "`")
}
यह ध्यान दिया जाना चाहिए कि वर्टेक्स एपीआई द्वारा प्रदान किया गया डेटा वर्टेक्स फ्रंट-एंड पेज पर प्रदर्शित सामग्री से अलग है, मुख्य रूप से औसत होल्डिंग मूल्य और होल्डिंग्स के लाभ और हानि में अंतर के कारण। इसे वर्टेक्स टीम को वापस भेज दिया गया है और बाद में इसे अपग्रेड और अपडेट किया जा सकता है।
4、Trigger Order
चूँकि शीर्ष का ट्रिगर क्रम अंतबिंदु से स्वतंत्र है,exchange.IO
किसी फ़ंक्शन के लिए सशर्त ऑर्डर देते समय, आपको निर्दिष्ट करना होगाTrigger: https://trigger.prod.vertexprotocol.com
तो चलिए व्यावहारिक संचालन जारी रखें।
function main() {
// isTrigger : true
var nonce = exchange.IO("nonce", true) // 如果是 Trigger Order 订单用到的 nonce 需要指定 isTrigger : true
// flag , reduceOnly
var expiration = exchange.IO("expiration", "GTC", false) // 设置订单为GTC类型,非只减仓
// params
var params = {
"place_order": {
"product_id": 4,
"order": {
"sender": "0x123...",
"priceX18": "4100000000000000000000",
"amount": "-100000000000000000",
"expiration": expiration,
"nonce": nonce
},
"trigger": {
"price_above": "4000000000000000000000"
}
}
}
return exchange.IO("api", "POST", "https://trigger.prod.vertexprotocol.com/v1/execute", "", JSON.stringify(params))
}
ट्रिगर एंडपॉइंट के अंतर्गत यह भी है:
कॉलिंग विधि प्लेस ट्रिगर ऑर्डर के समान है, इसलिए मैं यहां विवरण में नहीं जाऊंगा।
डिफ़ॉल्ट उप-खाता टैग है:default
, हम एक कस्टम टैग पर स्विच करते हैं:subAcc02
。
function main() {
exchange.IO("subAccountTag", "subAcc02")
return exchange.GetAccount()
}
उप-खाते के पते पर धन हस्तांतरित करते समय, वर्टेक्स वास्तव में यह उप-खाता बनाएगा।
खाते के नॉन्स को क्वेरी करने की आवश्यकता है तथा उसे पैरामीटर के रूप में ट्रांसफर इंटरफ़ेस के पैरामीटर में पास किया जाना चाहिए।
function main() {
var ret = HttpQuery("https://gateway.prod.vertexprotocol.com/v1/query?type=nonces&address=0x123...")
var obj = JSON.parse(ret)
var nonce = obj["data"]["tx_nonce"]
Log("nonce:", nonce)
var params = {
"transfer_quote": {
"tx": {
// default -> subAcc02
"sender": "0xabc...", // default
"recipient": "0xdef...", // subAcc02
"amount": "7000000000000000000",
"nonce": nonce
}
}
}
return exchange.IO("api", "POST", "https://gateway.prod.vertexprotocol.com/v1/execute", "", JSON.stringify(params))
}
उदाहरण के लिए: 0xabc… डिफ़ॉल्ट टैग के साथ उप-खाता पते से मेल खाता है। 0xdef… टैग subAcc02 के साथ उप-खाता पते से मेल खाता है। 0x123… वॉलेट पता है.
function main() {
var ret = HttpQuery("https://gateway.prod.vertexprotocol.com/v1/query?type=nonces&address=0x123...")
var obj = JSON.parse(ret)
var nonce = obj["data"]["tx_nonce"]
Log("nonce:", nonce)
var params = {
"withdraw_collateral": {
"tx": {
"sender": "0xabc...", // default
"productId": 0, // USDC : 0 , precision : 6
"amount": "10000000", // 10 USDC
"nonce": nonce
}
}
}
return exchange.IO("api", "POST", "https://gateway.prod.vertexprotocol.com/v1/execute", "", JSON.stringify(params))
}
USDC की परिशुद्धता पर ध्यान दें।
function main() {
var ret = HttpQuery("https://gateway.prod.vertexprotocol.com/v1/query?type=nonces&address=0x123...")
var obj = JSON.parse(ret)
var nonce = obj["data"]["tx_nonce"]
Log("nonce:", nonce)
var params = {
"mint_lp": {
"tx": {
"sender": "0xabc...", // default
"productId": 31, // USDT_USDC
"amountBase": "10000000000000000000",
"quoteAmountLow": "9999900000000000000",
"quoteAmountHigh": "10100000000000000000",
"nonce": nonce,
}
}
}
return exchange.IO("api", "POST", "https://gateway.prod.vertexprotocol.com/v1/execute", "", JSON.stringify(params))
}
ट्रेडिंग जोड़ों के लिए मिंट एलपी टोकनUSDT_USDC
एक्सचेंज पूल तरलता बढ़ाता है।
function main() {
var ret = HttpQuery("https://gateway.prod.vertexprotocol.com/v1/query?type=nonces&address=0x123...")
var obj = JSON.parse(ret)
var nonce = obj["data"]["tx_nonce"]
Log("nonce:", nonce)
var params = {
"burn_lp": {
"tx": {
"sender": "0xabc...", // default
"productId": 31, // USDT_USDC
"amount": "7500000000000000000",
"nonce": nonce,
}
}
}
return exchange.IO("api", "POST", "https://gateway.prod.vertexprotocol.com/v1/execute", "", JSON.stringify(params))
}
वेबसॉकेट इंटरफ़ेस समापन बिंदु:wss://gateway.prod.vertexprotocol.com/v1/ws
。
[🚧🚧🚧ing…]
उपरोक्त परीक्षण नवीनतम कस्टोडियन पर आधारित हैं। Vertex DEX एग्रीगेटर का समर्थन करने के लिए आपको नवीनतम कस्टोडियन डाउनलोड करना होगा।
आपके समर्थन के लिए धन्यवाद और पढ़ने के लिए धन्यवाद।