test-bun-ccxt
Version:
1 lines • 4.67 MB
JavaScript
(()=>{var e={6589:function(e,t,i){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.VerityClient=void 0;const r=s(i(6425)),a=i(182);let o;function n(){if("undefined"!=typeof window&&window.EventSource)o=window.EventSource;else try{o=i(9982)}catch(e){console.warn("eventsource package not available, EventSource functionality may not work in Node.js environment"),o=null}}n();class d{config;promise;axiosInstance;redacted=null;requestId;url;sse_is_ready=!1;proof;constructor(e,t,i,s,o){const{url:n,...d}=s??{};this.config=d||{},this.requestId=(0,a.v4)().toString(),this.url=i,this.axiosInstance=e,this.proof=this.subscribeToProof().catch((e=>{throw console.error(`Proof SSE failed for ${this.requestId}:`,e),e}));const h=r.default.create();h.interceptors.response.use((async e=>{try{const t=await this.proof,i=t.indexOf("|");return e.notary_pub_key=t.slice(0,i),e.proof=t.slice(i+1),e}catch(t){return console.log({error:t}),e}})),h.interceptors.request.use((async e=>{let t=0;for(;!(this.sse_is_ready||t>=100);)await new Promise((e=>setTimeout(e,20))),t+=20;return e.headers["T-REQUEST-ID"]=this.requestId,e.headers["T-PROXY-URL"]=this.url,this.redacted&&(e.headers["T-REDACTED"]=this.redacted),e})),this.promise=h.request({method:t,url:`${e.defaults.baseURL}/proxy`,data:o,...this.config})}redact(e){return this.redacted=e,this}then(e,t){return this.promise.then(e,t)}catch(e){return this.promise.catch(e)}finally(e){return this.promise.finally(e)}async subscribeToProof(e=18e5){o||n();const t=`${this.axiosInstance.defaults.baseURL}/proof/${this.requestId}`;return new Promise(((i,s)=>{if(!o)return void s(new Error("EventSource not available in this environment. Please install 'eventsource' package for Node.js environments."));const r=new o(t),a=setTimeout((()=>{r.close(),s(new Error("Timeout: No SSE event received"))}),e);r.onopen=async e=>{this.sse_is_ready=!0},r.onmessage=e=>{clearTimeout(a),r.close(),i(e.data)},r.onerror=e=>{clearTimeout(a),console.error("SSE error:",e),r.close(),s(e)}}))}}t.VerityClient=class{axios;constructor(e,t){this.axios=r.default.create({...t,baseURL:e.prover_url})}get(e,t){return new d(this.axios,"get",e,t)}post(e,t,i){return new d(this.axios,"post",e,t,i)}async get_notary_info(){return(await this.axios.get("/notaryinfo")).data}}},4523:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},1185:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},566:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3971:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},335:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},4619:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3885:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},2308:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},5625:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},9332:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},1578:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},6771:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3974:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},1466:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},8186:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7202:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},8800:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},9656:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},5223:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},8535:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7754:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},8716:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},5254:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},1769:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},9644:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3829:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},2317:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},8430:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},1293:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},5465:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},5661:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},1552:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},2609:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},5769:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},2938:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},5277:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},8109:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},1671:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},6658:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},4935:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},9360:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},4295:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3037:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},9872:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7227:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},4012:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},970:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},9420:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},6351:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},1352:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7418:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3434:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},9722:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},706:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},1180:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},8617:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},9023:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},359:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},4558:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},2459:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},1359:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3548:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3942:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(1397);class r extends s.A{}const a=r},121:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},575:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7533:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},6928:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},9174:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},5362:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3414:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},1426:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7774:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},9886:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},5531:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3800:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},9401:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7849:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},2134:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},8563:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},4158:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7733:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},995:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},334:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7999:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},4352:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},6405:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},8139:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7698:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3965:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7246:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},5308:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3521:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},3578:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},8291:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},5517:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});var s=i(2961);class r extends s.k{}const a=r},7930:(e,t,i)=>{"use strict";i.d(t,{A:()=>n});var s=i(4523),r=i(5147),a=i(2079),o=i(1579);class n extends s.A{describe(){return this.deepExtend(super.describe(),{id:"alpaca",name:"Alpaca",countries:["US"],rateLimit:333,hostname:"alpaca.markets",pro:!0,urls:{logo:"https://github.com/user-attachments/assets/e9476df8-a450-4c3e-ab9a-1a7794219e1b",www:"https://alpaca.markets",api:{broker:"https://broker-api.{hostname}",trader:"https://api.{hostname}",market:"https://data.{hostname}"},test:{broker:"https://broker-api.sandbox.{hostname}",trader:"https://paper-api.{hostname}",market:"https://data.{hostname}"},doc:"https://alpaca.markets/docs/",fees:"https://docs.alpaca.markets/docs/crypto-fees"},has:{CORS:!1,spot:!0,margin:!1,swap:!1,future:!1,option:!1,addMargin:!1,borrowCrossMargin:!1,borrowIsolatedMargin:!1,borrowMargin:!1,cancelAllOrders:!0,cancelOrder:!0,closeAllPositions:!1,closePosition:!1,createMarketBuyOrder:!0,createMarketBuyOrderWithCost:!0,createMarketOrderWithCost:!0,createOrder:!0,createOrderWithTakeProfitAndStopLoss:!1,createOrderWithTakeProfitAndStopLossWs:!1,createReduceOnlyOrder:!1,createStopOrder:!0,createTriggerOrder:!0,editOrder:!0,fetchBalance:!0,fetchBidsAsks:!1,fetchBorrowInterest:!1,fetchBorrowRate:!1,fetchBorrowRateHistories:!1,fetchBorrowRateHistory:!1,fetchBorrowRates:!1,fetchBorrowRatesPerSymbol:!1,fetchClosedOrders:!0,fetchCrossBorrowRate:!1,fetchCrossBorrowRates:!1,fetchCurrencies:!1,fetchDepositAddress:!0,fetchDepositAddressesByNetwork:!1,fetchDeposits:!0,fetchDepositsWithdrawals:!0,fetchFundingHistory:!1,fetchFundingInterval:!1,fetchFundingIntervals:!1,fetchFundingRate:!1,fetchFundingRateHistory:!1,fetchFundingRates:!1,fetchGreeks:!1,fetchIndexOHLCV:!1,fetchIsolatedBorrowRate:!1,fetchIsolatedBorrowRates:!1,fetchIsolatedPositions:!1,fetchL1OrderBook:!0,fetchL2OrderBook:!1,fetchLeverage:!1,fetchLeverages:!1,fetchLeverageTiers:!1,fetchLiquidations:!1,fetchLongShortRatio:!1,fetchLongShortRatioHistory:!1,fetchMarginAdjustmentHistory:!1,fetchMarginMode:!1,fetchMarginModes:!1,fetchMarketLeverageTiers:!1,fetchMarkets:!0,fetchMarkOHLCV:!1,fetchMarkPrices:!1,fetchMyLiquidations:!1,fetchMySettlementHistory:!1,fetchMyTrades:!0,fetchOHLCV:!0,fetchOpenInterest:!1,fetchOpenInterestHistory:!1,fetchOpenInterests:!1,fetchOpenOrder:!1,fetchOpenOrders:!0,fetchOption:!1,fetchOptionChain:!1,fetchOrder:!0,fetchOrderBook:!0,fetchOrders:!0,fetchPosition:!1,fetchPositionHistory:!1,fetchPositionMode:!1,fetchPositions:!1,fetchPositionsForSymbol:!1,fetchPositionsHistory:!1,fetchPositionsRisk:!1,fetchPremiumIndexOHLCV:!1,fetchSettlementHistory:!1,fetchStatus:!1,fetchTicker:!0,fetchTickers:!0,fetchTime:!0,fetchTrades:!0,fetchTradingFee:!1,fetchTradingFees:!1,fetchTransactionFees:!1,fetchTransactions:!1,fetchTransfers:!1,fetchVolatilityHistory:!1,fetchWithdrawals:!0,reduceMargin:!1,repayCrossMargin:!1,repayIsolatedMargin:!1,sandbox:!0,setLeverage:!1,setMargin:!1,setMarginMode:!1,setPositionMode:!1,transfer:!1,withdraw:!0},api:{broker:{},trader:{private:{get:["v2/account","v2/orders","v2/orders/{order_id}","v2/positions","v2/positions/{symbol_or_asset_id}","v2/account/portfolio/history","v2/watchlists","v2/watchlists/{watchlist_id}","v2/watchlists:by_name","v2/account/configurations","v2/account/activities","v2/account/activities/{activity_type}","v2/calendar","v2/clock","v2/assets","v2/assets/{symbol_or_asset_id}","v2/corporate_actions/announcements/{id}","v2/corporate_actions/announcements","v2/wallets","v2/wallets/transfers"],post:["v2/orders","v2/watchlists","v2/watchlists/{watchlist_id}","v2/watchlists:by_name","v2/wallets/transfers"],put:["v2/orders/{order_id}","v2/watchlists/{watchlist_id}","v2/watchlists:by_name"],patch:["v2/orders/{order_id}","v2/account/configurations"],delete:["v2/orders","v2/orders/{order_id}","v2/positions","v2/positions/{symbol_or_asset_id}","v2/watchlists/{watchlist_id}","v2/watchlists:by_name","v2/watchlists/{watchlist_id}/{symbol}"]}},market:{public:{get:["v1beta3/crypto/{loc}/bars","v1beta3/crypto/{loc}/latest/bars","v1beta3/crypto/{loc}/latest/orderbooks","v1beta3/crypto/{loc}/latest/quotes","v1beta3/crypto/{loc}/latest/trades","v1beta3/crypto/{loc}/quotes","v1beta3/crypto/{loc}/snapshots","v1beta3/crypto/{loc}/trades"]},private:{get:["v1beta1/corporate-actions","v1beta1/forex/latest/rates","v1beta1/forex/rates","v1beta1/logos/{symbol}","v1beta1/news","v1beta1/screener/stocks/most-actives","v1beta1/screener/{market_type}/movers","v2/stocks/auctions","v2/stocks/bars","v2/stocks/bars/latest","v2/stocks/meta/conditions/{ticktype}","v2/stocks/meta/exchanges","v2/stocks/quotes","v2/stocks/quotes/latest","v2/stocks/snapshots","v2/stocks/trades","v2/stocks/trades/latest","v2/stocks/{symbol}/auctions","v2/stocks/{symbol}/bars","v2/stocks/{symbol}/bars/latest","v2/stocks/{symbol}/quotes","v2/stocks/{symbol}/quotes/latest","v2/stocks/{symbol}/snapshot","v2/stocks/{symbol}/trades","v2/stocks/{symbol}/trades/latest"]}}},timeframes:{"1m":"1min","3m":"3min","5m":"5min","15m":"15min","30m":"30min","1h":"1H","2h":"2H","4h":"4H","6h":"6H","8h":"8H","12h":"12H","1d":"1D","3d":"3D","1w":"1W","1M":"1M"},precisionMode:o.kb,requiredCredentials:{apiKey:!0,secret:!0},fees:{trading:{tierBased:!0,percentage:!0,maker:this.parseNumber("0.0015"),taker:this.parseNumber("0.0025"),tiers:{taker:[[this.parseNumber("0"),this.parseNumber("0.0025")],[this.parseNumber("100000"),this.parseNumber("0.0022")],[this.parseNumber("500000"),this.parseNumber("0.0020")],[this.parseNumber("1000000"),this.parseNumber("0.0018")],[this.parseNumber("10000000"),this.parseNumber("0.0015")],[this.parseNumber("25000000"),this.parseNumber("0.0013")],[this.parseNumber("50000000"),this.parseNumber("0.0012")],[this.parseNumber("100000000"),this.parseNumber("0.001")]],maker:[[this.parseNumber("0"),this.parseNumber("0.0015")],[this.parseNumber("100000"),this.parseNumber("0.0012")],[this.parseNumber("500000"),this.parseNumber("0.001")],[this.parseNumber("1000000"),this.parseNumber("0.0008")],[this.parseNumber("10000000"),this.parseNumber("0.0005")],[this.parseNumber("25000000"),this.parseNumber("0.0002")],[this.parseNumber("50000000"),this.parseNumber("0.0002")],[this.parseNumber("100000000"),this.parseNumber("0.00")]]}}},headers:{"APCA-PARTNER-ID":"ccxt"},options:{defaultExchange:"CBSE",exchanges:["CBSE","FTX","GNSS","ERSX"],defaultTimeInForce:"gtc",clientOrderId:"ccxt_{id}"},features:{spot:{sandbox:!0,createOrder:{marginMode:!1,triggerPrice:!0,triggerPriceType:void 0,triggerDirection:!1,stopLossPrice:!1,takeProfitPrice:!1,attachedStopLossTakeProfit:{triggerPriceType:{last:!0,mark:!0,index:!0},price:!0},timeInForce:{IOC:!0,FOK:!0,PO:!0,GTD:!1},hedged:!1,trailing:!0,leverage:!1,marketBuyRequiresPrice:!1,marketBuyByCost:!1,selfTradePrevention:!1,iceberg:!1},createOrders:void 0,fetchMyTrades:{marginMode:!1,limit:100,daysBack:1e5,untilDays:1e5,symbolRequired:!1},fetchOrder:{marginMode:!1,trigger:!1,trailing:!1,symbolRequired:!1},fetchOpenOrders:{marginMode:!1,limit:500,trigger:!1,trailing:!1,symbolRequired:!1},fetchOrders:{marginMode:!1,limit:500,daysBack:1e5,untilDays:1e5,trigger:!1,trailing:!1,symbolRequired:!1},fetchClosedOrders:{marginMode:!1,limit:500,daysBack:1e5,daysBackCanceled:void 0,untilDays:1e5,trigger:!1,trailing:!1,symbolRequired:!1},fetchOHLCV:{limit:1e3}},swap:{linear:void 0,inverse:void 0},future:{linear:void 0,inverse:void 0}},exceptions:{exact:{"forbidden.":a.PermissionDenied,4041e4:a.InvalidOrder,40010001:a.BadRequest,4011e4:a.PermissionDenied,4031e4:a.InsufficientFunds,4291e4:a.RateLimitExceeded},broad:{"Invalid format for parameter":a.BadRequest,"Invalid symbol":a.BadSymbol}}})}async fetchTime(e={}){const t=await this.traderPrivateGetV2Clock(e),i=this.safeString(t,"timestamp"),s=i.slice(0,23),r=i.length-6,a=i.length-3,o=i.slice(r,a);return this.parse8601(s)-3600*this.parseToNumeric(o)*1e3}async fetchMarkets(e={}){const t=await this.traderPrivateGetV2Assets(this.extend({asset_class:"crypto",status:"active"},e));return this.parseMarkets(t)}parseMarket(e){const t=this.safeString(e,"symbol"),i=t.split("/"),s=this.safeString(e,"class"),r=this.safeString(i,0),a=this.safeString(i,1),o=this.safeCurrencyCode(r);let n=this.safeCurrencyCode(a);void 0===n&&"us_equity"===s&&(n="USD");const d=o+"/"+n,h="active"===this.safeString(e,"status"),c=this.safeNumber(e,"min_order_size");return{id:t,symbol:d,base:o,quote:n,settle:void 0,baseId:r,quoteId:a,settleId:void 0,type:"spot",spot:!0,margin:void 0,swap:!1,future:!1,option:!1,active:h,contract:!1,linear:void 0,inverse:void 0,contractSize:void 0,expiry:void 0,expiryDatetime:void 0,strike:void 0,optionType:void 0,precision:{amount:this.safeNumber(e,"min_trade_increment"),price:this.safeNumber(e,"price_increment")},limits:{leverage:{min:void 0,max:void 0},amount:{min:c,max:void 0},price:{min:void 0,max:void 0},cost:{min:void 0,max:void 0}},created:void 0,info:e}}async fetchTrades(e,t=void 0,i=void 0,s={}){await this.loadMarkets();const r=this.market(e),o=r.id,n=this.safeString(s,"loc","us"),d=this.safeString(s,"method","marketPublicGetV1beta3CryptoLocTrades"),h={symbols:o,loc:n};let c;if(s=this.omit(s,["loc","method"]),"marketPublicGetV1beta3CryptoLocTrades"===d){void 0!==t&&(h.start=this.iso8601(t)),void 0!==i&&(h.limit=i);const e=await this.marketPublicGetV1beta3CryptoLocTrades(this.extend(h,s)),r=this.safeDict(e,"trades",{});c=this.safeList(r,o,[])}else{if("marketPublicGetV1beta3CryptoLocLatestTrades"!==d)throw new a.NotSupported(this.id+" fetchTrades() does not support "+d+", marketPublicGetV1beta3CryptoLocTrades and marketPublicGetV1beta3CryptoLocLatestTrades are supported");{const e=await this.marketPublicGetV1beta3CryptoLocLatestTrades(this.extend(h,s)),t=this.safeDict(e,"trades",{});c=this.safeDict(t,o,{}),c=[c]}}return this.parseTrades(c,r,t,i)}async fetchOrderBook(e,t=void 0,i={}){await this.loadMarkets();const s=this.market(e),r=s.id,a={symbols:r,loc:this.safeString(i,"loc","us")},o=await this.marketPublicGetV1beta3CryptoLocLatestOrderbooks(this.extend(a,i)),n=this.safeDict(o,"orderbooks",{}),d=this.safeDict(n,r,{}),h=this.parse8601(this.safeString(d,"t"));return this.parseOrderBook(d,s.symbol,h,"b","a","p","s")}async fetchOHLCV(e,t="1m",i=void 0,s=void 0,r={}){await this.loadMarkets();const o=this.market(e),n=o.id,d=this.safeString(r,"loc","us"),h=this.safeString(r,"method","marketPublicGetV1beta3CryptoLocBars"),c={symbols:n,loc:d};let l;if(r=this.omit(r,["loc","method"]),"marketPublicGetV1beta3CryptoLocBars"===h){void 0!==s&&(c.limit=s),void 0!==i&&(c.start=this.yyyymmdd(i)),c.timeframe=this.safeString(this.timeframes,t,t);const e=await this.marketPublicGetV1beta3CryptoLocBars(this.extend(c,r)),a=this.safeDict(e,"bars",{});l=this.safeList(a,n,[])}else{if("marketPublicGetV1beta3CryptoLocLatestBars"!==h)throw new a.NotSupported(this.id+" fetchOHLCV() does not support "+h+", marketPublicGetV1beta3CryptoLocBars and marketPublicGetV1beta3CryptoLocLatestBars are supported");{const e=await this.marketPublicGetV1beta3CryptoLocLatestBars(this.extend(c,r)),t=this.safeDict(e,"bars",{});l=this.safeDict(t,n,{}),l=[l]}}return this.parseOHLCVs(l,o,t,i,s)}parseOHLCV(e,t=void 0){const i=this.safeString(e,"t");return[this.parse8601(i),this.safeNumber(e,"o"),this.safeNumber(e,"h"),this.safeNumber(e,"l"),this.safeNumber(e,"c"),this.safeNumber(e,"v")]}async fetchTicker(e,t={}){await this.loadMarkets(),e=this.symbol(e);const i=await this.fetchTickers([e],t);return this.safeDict(i,e)}async fetchTickers(e=void 0,t={}){if(void 0===e)throw new a.ArgumentsRequired(this.id+" fetchTickers() requires a symbols argument");await this.loadMarkets(),e=this.marketSymbols(e);const i=this.safeString(t,"loc","us"),s={symbols:this.marketIds(e).join(","),loc:i};t=this.omit(t,"loc");const r=await this.marketPublicGetV1beta3CryptoLocSnapshots(this.extend(s,t)),o=[],n=this.safeDict(r,"snapshots",{}),d=Object.keys(n);for(let e=0;e<d.length;e++){const t=d[e],i=this.safeMarket(t),s=this.safeDict(n,t),r=this.safeDict(s,"dailyBar",{}),a=this.safeDict(s,"prevDailyBar",{}),h=this.safeDict(s,"latestQuote",{}),c=this.safeDict(s,"latestTrade",{}),l=this.safeString(h,"t"),u=this.safeTicker({info:s,symbol:i.symbol,timestamp:this.parse8601(l),datetime:l,high:this.safeString(r,"h"),low:this.safeString(r,"l"),bid:this.safeString(h,"bp"),bidVolume:this.safeString(h,"bs"),ask:this.safeString(h,"ap"),askVolume:this.safeString(h,"as"),vwap:this.safeString(r,"vw"),open:this.safeString(r,"o"),close:this.safeString(r,"c"),last:this.safeString(c,"p"),previousClose:this.safeString(a,"c"),change:void 0,percentage:void 0,average:void 0,baseVolume:this.safeString(r,"v"),quoteVolume:this.safeString(r,"n")},i);o.push(u)}return this.filterByArray(o,"symbol",e)}generateClientOrderId(e){const t=this.safeString(this.options,"clientOrderId"),i=this.uuid().split("-").join(""),s=this.implodeParams(t,{id:i});return this.safeString(e,"clientOrderId",s)}async createMarketOrderWithCost(e,t,i,s={}){await this.loadMarkets();const r={cost:i};return await this.createOrder(e,"market",t,0,void 0,this.extend(r,s))}async createMarketBuyOrderWithCost(e,t,i={}){await this.loadMarkets();const s={cost:t};return await this.createOrder(e,"market","buy",0,void 0,this.extend(s,i))}async createMarketSellOrderWithCost(e,t,i={}){await this.loadMarkets();const s={cost:t};return await this.createOrder(e,"market","sell",t,void 0,this.extend(s,i))}async createOrder(e,t,i,s,r=void 0,o={}){await this.loadMarkets();const n=this.market(e),d={symbol:n.id,side:i,type:t},h=this.safeStringN(o,["triggerPrice","stop_price"]);if(void 0!==h){let i;if(!(t.indexOf("limit")>=0))throw new a.NotSupported(this.id+" createOrder() does not support stop orders for "+t+" orders, only stop_limit orders are supported");i="stop_limit",d.stop_price=this.priceToPrecision(e,h),d.type=i}t.indexOf("limit")>=0&&(d.limit_price=this.priceToPrecision(e,r));const c=this.safeString(o,"cost");void 0!==c?(o=this.omit(o,"cost"),d.notional=this.costToPrecision(e,c)):d.qty=this.amountToPrecision(e,s);const l=this.safeString(this.options,"defaultTimeInForce");d.time_in_force=this.safeString(o,"timeInForce",l),o=this.omit(o,["timeInForce","triggerPrice"]),d.client_order_id=this.generateClientOrderId(o),o=this.omit(o,["clientOrderId"]);const u=await this.traderPrivatePostV2Orders(this.extend(d,o));return this.parseOrder(u,n)}async cancelOrder(e,t=void 0,i={}){const s={order_id:e},r=await this.traderPrivateDeleteV2OrdersOrderId(this.extend(s,i));return this.parseOrder(r)}async cancelAllOrders(e=void 0,t={}){await this.loadMarkets();const i=await this.traderPrivateDeleteV2Orders(t);return Array.isArray(i)?this.parseOrders(i,void 0):[this.safeOrder({info:i})]}async fetchOrder(e,t=void 0,i={}){await this.loadMarkets();const s={order_id:e},r=await this.traderPrivateGetV2OrdersOrderId(this.extend(s,i)),a=this.safeString(r,"symbol"),o=this.safeMarket(a);return this.parseOrder(r,o)}async fetchOrders(e=void 0,t=void 0,i=void 0,s={}){await this.loadMarkets();const r={status:"all"};let a;void 0!==e&&(a=this.market(e),r.symbols=a.id);const o=this.safeInteger(s,"until");void 0!==o&&(s=this.omit(s,"until"),r.endTime=this.iso8601(o)),void 0!==t&&(r.after=this.iso8601(t)),void 0!==i&&(r.limit=i);const n=await this.traderPrivateGetV2Orders(this.extend(r,s));return this.parseOrders(n,a,t,i)}async fetchOpenOrders(e=void 0,t=void 0,i=void 0,s={}){return await this.fetchOrders(e,t,i,this.extend({status:"open"},s))}async fetchClosedOrders(e=void 0,t=void 0,i=void 0,s={}){return await this.fetchOrders(e,t,i,this.extend({status:"closed"},s))}async editOrder(e,t,i,s,r=void 0,a=void 0,o={}){await this.loadMarkets();const n={order_id:e};let d;void 0!==t&&(d=this.market(t)),void 0!==r&&(n.qty=this.amountToPrecision(t,r));const h=this.safeStringN(o,["triggerPrice","stop_price"]);let c;void 0!==h&&(n.stop_price=this.priceToPrecision(t,h),o=this.omit(o,"triggerPrice")),void 0!==a&&(n.limit_price=this.priceToPrecision(t,a)),[c,o]=this.handleOptionAndParams2(o,"editOrder","timeInForce","defaultTimeInForce"),void 0!==c&&(n.time_in_force=c),n.client_order_id=this.generateClientOrderId(o),o=this.omit(o,["clientOrderId"]);const l=await this.traderPrivatePatchV2OrdersOrderId(this.extend(n,o));return this.parseOrder(l,d)}parseOrder(e,t=void 0){const i=this.safeString(e,"symbol"),s=(t=this.safeMarket(i,t)).symbol,r=this.safeString(e,"status"),a=this.parseOrderStatus(r),o=this.safeString(e,"commission");let n;void 0!==o&&(n={cost:o,currency:"USD"});let d=this.safeString(e,"order_type");void 0!==d&&d.indexOf("limit")>=0&&(d="limit");const h=this.safeString(e,"submitted_at"),c=this.parse8601(h);return this.safeOrder({id:this.safeString(e,"id"),clientOrderId:this.safeString(e,"client_order_id"),timestamp:c,datetime:h,lastTradeTimeStamp:void 0,status:a,symbol:s,type:d,timeInForce:this.parseTimeInForce(this.safeString(e,"time_in_force")),postOnly:void 0,side:this.safeString(e,"side"),price:this.safeNumber(e,"limit_price"),triggerPrice:this.safeNumber(e,"stop_price"),cost:void 0,average:this.safeNumber(e,"filled_avg_price"),amount:this.safeNumber(e,"qty"),filled:this.safeNumber(e,"filled_qty"),remaining:void 0,trades:void 0,fee:n,info:e},t)}parseOrderStatus(e){return this.safeString({pending_new:"open",accepted:"open",new:"open",partially_filled:"open",activated:"open",filled:"closed"},e,e)}parseTimeInForce(e){return this.safeString({day:"Day"},e,e)}async fetchMyTrades(e=void 0,t=void 0,i=void 0,s={}){let r;await this.loadMarkets();let a={activity_type:"FILL"};void 0!==e&&(r=this.market(e));const o=this.safeInteger(s,"until");void 0!==o&&(s=this.omit(s,"until"),a.until=this.iso8601(o)),void 0!==t&&(a.after=this.iso8601(t)),void 0!==i&&(a.page_size=i),[a,s]=this.handleUntilOption("until",a,s);const n=await this.traderPrivateGetV2AccountActivitiesActivityType(this.extend(a,s));return this.parseTrades(n,r,t,i)}parseTrade(e,t=void 0){const i=this.safeString2(e,"S","symbol"),s=this.safeSymbol(i,t),r=this.safeString2(e,"t","transaction_time"),a=this.parse8601(r),o=this.safeString(e,"tks");let n=this.safeString(e,"side");"B"===o?n="buy":"S"===o&&(n="sell");const d=this.safeString2(e,"p","price"),h=this.safeString2(e,"s","qty");return this.safeTrade({info:e,id:this.safeString2(e,"i","id"),timestamp:a,datetime:this.iso8601(a),symbol:s,order:this.safeString(e,"order_id"),type:void 0,side:n,takerOrMaker:"taker",price:d,amount:h,cost:void 0,fee:void 0},t)}async fetchDepositAddress(e,t={}){await this.loadMarkets();const i=this.currency(e),s={asset:i.id},r=await this.traderPrivateGetV2Wallets(this.extend(s,t));return this.parseDepositAddress(r,i)}parseDepositAddress(e,t=void 0){let i;return void 0!==t&&(i=t.id),{info:e,currency:i,network:void 0,address:this.safeString(e,"address"),tag:void 0}}async withdraw(e,t,i,s=void 0,r={}){[s,r]=this.handleWithdrawTagAndParams(s,r),this.checkAddress(i),await this.loadMarkets();const a=this.currency(e);s&&(i=i+":"+s);const o={asset:a.id,address:i,amount:this.numberToString(t)},n=await this.traderPrivatePostV2WalletsTransfers(this.extend(o,r));return this.parseTransaction(n,a)}async fetchTransactionsHelper(e,t,i,s,r){let a;await this.loadMarkets(),void 0!==t&&(a=this.currency(t));const o=await this.traderPrivateGetV2WalletsTransfers(r),n=[];for(let t=0;t<o.length;t++){const i=o[t];(this.safeString(i,"direction")===e||"BOTH"===e)&&n.push(i)}return this.parseTransactions(n,a,i,s,r)}async fetchDepositsWithdrawals(e=void 0,t=void 0,i=void 0,s={}){return await this.fetchTransactionsHelper("BOTH",e,t,i,s)}async fetchDeposits(e=void 0,t=void 0,i=void 0,s={}){return await this.fetchTransactionsHelper("INCOMING",e,t,i,s)}async fetchWithdrawals(e=void 0,t=void 0,i=void 0,s={}){return await this.fetchTransactionsHelper("OUTGOING",e,t,i,s)}parseTransaction(e,t=void 0){const i=this.safeString(e,"created_at"),s=this.safeString(e,"asset"),a=this.safeCurrencyCode(s,t),o=this.safeString(e,"fees"),n=this.safeString(e,"network_fee"),d=r.Y.stringAdd(o,n),h={cost:this.parseNumber(d),currency:a};return{info:e,id:this.safeString(e,"id"),txid:this.safeString(e,"tx_hash"),timestamp:this.parse8601(i),datetime:i,network:this.safeString(e,"chain"),address:this.safeString(e,"to_address"),addressTo:this.safeString(e,"to_address"),addressFrom:this.safeString(e,"from_address"),tag:void 0,tagTo:void 0,tagFrom:void 0,type:this.parseTransactionType(this.safeString(e,"direction")),amount:this.safeNumber(e,"amount"),currency:a,status:this.parseTransactionStatus(this.safeString(e,"status")),updated:void 0,fee:h,comment:void 0,internal:void 0}}parseTransactionStatus(e){return this.safeString({PROCESSING:"pending",FAILED:"failed",COMPLETE:"ok"},e,e)}parseTransactionType(e){return this.safeString({INCOMING:"deposit",OUTGOING:"withdrawal"},e,e)}async fetchBalance(e={}){await this.loadMarkets();const t=await this.traderPrivateGetV2Account(e);return this.parseBalance(t)}parseBalance(e){const t={info:e},i=this.account(),s=this.safeString(e,"currency"),r=this.safeCurrencyCode(s);return i.free=this.safeString(e,"cash"),i.total=this.safeString(e,"equity"),t[r]=i,this.safeBalance(t)}sign(e,t="public",i="GET",s={},r=void 0,a=void 0){let o="/"+this.implodeParams(e,s),n=this.implodeHostname(this.urls.api[t[0]]);r=void 0!==r?r:{},"private"===t[1]&&(this.checkRequiredCredentials(),r["APCA-API-KEY-ID"]=this.apiKey,r["APCA-API-SECRET-KEY"]=this.secret);const d=this.omit(s,this.extractParams(e));return Object.keys(d).length&&("GET"===i||"DELETE"===i?o+="?"+this.urlencode(d):(a=this.json(d),r["Content-Type"]="application/json")),n+=o,{url:n,method:i,body:a,headers:r}}handleErrors(e,t,i,s,r,o,n,d,h){if(void 0===n)return;const c=this.id+" "+o,l=this.safeString(n,"code");void 0!==e&&this.throwExactlyMatchedException(this.exceptions.exact,l,c);const u=this.safeValue(n,"message",void 0);if(void 0!==u)throw this.throwExactlyMatchedException(this.exceptions.exact,u,c),this.throwBroadlyMatchedException(this.exceptions.broad,u,c),new a.ExchangeError(c)}}},4920:(e,t,i)=>{"use strict";i.d(t,{A:()=>d});var s=i(5147),r=i(1185),a=i(1579),o=i(4852),n=i(2079);class d extends r.A{describe(){return this.deepExtend(super.describe(),{id:"apex",name:"Apex",countries:[],version:"v3",rateLimit:20,certified:!1,pro:!0,dex:!0,has:{CORS:void 0,spot:!1,margin:!1,swap:!0,future:!1,option:!1,addMargin:!1,borrowCrossMargin:!1,borrowIsolatedMargin:!1,cancelAllOrders:!0,cancelAllOrdersAfter:!1,cancelOrder:!0,cancelOrders:!1,cancelOrdersForSymbols:!1,closeAllPositions:!1,closePosition:!1,createMarketBuyOrderWithCost:!1,createMarketOrderWithCost:!1,createMarketSellOrderWithCost:!1,createOrder:!0,createOrders:!1,createPostOnlyOrder:!0,createReduceOnlyOrder:!0,createStopOrder:!0,createTriggerOrder:!0,editOrder:!1,fetchAccounts:!0,fetchBalance:!0,fetchBorrowInterest:!1,fetchBorrowRateHistories:!1,fetchBorrowRateHistory:!1,fetchCanceledAndClosedOrders:!1,fetchCanceledOrders:!1,fetchClosedOrders:!1,fetchCrossBorrowRate:!1,fetchCrossBorrowRates:!1,fetchCurrencies:!0,fetchDepositAddress:!1,fetchDepositAddresses:!1,fetchDeposits:!1,fetchDepositWithdrawFee:!1,fetchDepositWithdrawFees:!1,fetchFundingHistory:!0,fetchFundingRate:!1,fetchFundingRateHistory:!0,fetchFundingRates:!1,fetchIndexOHLCV:!1,fetchIsolatedBorrowRate:!1,fetchIsolatedBorrowRates:!1,fetchLedger:!1,fetchLeverage:!1,fetchLeverageTiers:!1,fetchLiquidations:!1,fetchMarginMode:!1,fetchMarketLeverageTiers:!1,fetchMarkets:!0,fetchMarkOHLCV:!1,fetchMyLiquidations:!1,fetchMyTrades:!0,fetchOHLCV:!0,fetchOpenInterest:!0,fetchOpenInterestHistory:!1,fetchOpenInterests:!1,fetchOpenOrders:!0,fetchOrder:!0,fetchOrderBook:!0,fetchOrders:!0,fetchOrderTrades:!0,fetchPosition:!1,fetchPositionMode:!1,fetchPositions:!0,fetchPositionsRisk:!1,fetchPremiumIndexOHLCV:!1,fetchTicker:!0,fetchTickers:!0,fetchTime:!0,fetchTrades:!0,fetchTradingFee:!1,fetchTradingFees:!1,fetchTransfer:!0,fetchTransfers:!0,fetchWithdrawal:!1,fetchWithdrawals:!1,reduceMargin:!1,repayCrossMargin:!1,repayIsolatedMargin:!1,sandbox:!0,setLeverage:!0,setMarginMode:!1,setPositionMode:!1,transfer:!1,withdraw:!1},timeframes:{"1m":"1","5m":"5","15m":"15","30m":"30","1h":"60","2h":"120","4h":"240","6h":"360","12h":"720","1d":"D","1w":"W","1M":"M"},hostname:"omni.apex.exchange",urls:{logo:"https://github.com/user-attachments/assets/fef8f2f7-4265-46aa-965e-33a91881cb00",api:{public:"https://{hostname}/api",private:"https://{hostname}/api"},test:{public:"https://testnet.omni.apex.exchange/api",private:"https://testnet.omni.apex.exchange/api"},www:"https://apex.exchange/",doc:"https://api-docs.pro.apex.exchange",fees:"https://apex-pro.gitbook.io/apex-pro/apex-omni-live-now/trading-perpetual-contracts/trading-fees",referral:"https://omni.apex.exchange/trade"},api:{public:{get:{"v3/symbols":1,"v3/history-funding":1,"v3/ticker":1,"v3/klines":1,"v3/trades":1,"v3/depth":1,"v3/time":1,"v3/data/all-ticker-info":1}},private:{get:{"v3/account":1,"v3/account-balance":1,"v3/fills":1,"v3/order-fills":1,"v3/order":1,"v3/history-orders":1,"v3/order-by-client-order-id":1,"v3/funding":1,"v3/historical-pnl":1,"v3/open-orders":1,"v3/transfers":1,"v3/transfer":1},post:{"v3/delete-open-orders":1,"v3/delete-client-order-id":1,"v3/delete-order":1,"v3/order":1,"v3/set-initial-margin-rate":1,"v3/transfer-out":1,"v3/contract-transfer-out":1}}},httpExceptions:{403:n.RateLimitExceeded},exceptions:{exact:{20006:"apikey sign error",20016:"request para error",10001:n.BadRequest},broad:{ORDER_PRICE_MUST_GREETER_ZERO:n.InvalidOrder,ORDER_POSSIBLE_LEAD_TO_ACCOUNT_LIQUIDATED:n.InvalidOrder,ORDER_WITH_THIS_PRICE_CANNOT_REDUCE_POSITION_ONLY:n.InvalidOrder}},fees:{swap:{taker:this.parseNumber("0.0005"),maker:this.parseNumber("0.0002")}},requiredCredentials:{apiKey:!0,secret:!0,walletAddress:!1,privateKey:!1,password:!0},precisionMode:a.kb,commonCurrencies:{},options:{defaultType:"swap",defaultSlippage:.05,brokerId:"6956"},features:{default:{sandbox:!0,createOrder:{marginMode:!1,triggerPrice:!0,triggerPriceType:void 0,triggerDirection:!1,stopLossPrice:!1,takeProfitPrice:!1,attachedStopLossTakeProfit:void 0,timeInForce:{IOC:!0,FOK:!0,PO:!0,GTD:!0},hedged:!1,selfTradePrevention:!1,trailing:!0,leverage:!1,marketBuyByCost:!1,marketBuyRequiresPrice:!1,iceberg:!1},createOrders:void 0,fetchMyTrades:{marginMode:!1,limit:500,daysBack:1e5,untilDays:1e5,symbolRequired:!1},fetchOrder:{marginMode:!1,trigger:!1,trailing:!1,symbolRequired:!1},fetchOpenOrders:{marginMode:!1,limit:void 0,trigger:!1,trailing:!1,symbolRequired:!1},fetchOrders:{marginMode:!1,limit:100,daysBack:1e5,untilDays:1e5,trigger:!1,trailing:!1,symbolRequired:!1},fetchClosedOrders:void 0,fetchOHLCV:{limit:200}},swap:{linear:{extends:"default"},inverse:void 0}}})}async fetchTime(e={}){const t=await this.publicGetV3Time(e),i=this.safeDict(t,"data",{});return this.safeInteger(i,"time")}parseBalance(e){const t=this.milliseconds(),i={info:e,timestamp:t,datetime:this.iso8601(t)},s=this.account();return s.free=this.safeString(e,"availableBalance"),s.total=this.safeString(e,"totalEquityValue"),i.USDT=s,this.safeBalance(i)}async fetchBalance(e={}){await this.loadMarkets();const t=await this.privateGetV3AccountBalance(e),i=this.safeDict(t,"data",{});return this.parseBalance(i)}parseAccount(e){return{id:this.safeString(e,"id","0"),type:void 0,code:void 0,info:e}}async fetchAccount(e={}){await this.loadMarkets();const t=await this.privateGetV3Account(e),i=this.safeDict(t,"data",{});return this.parseAccount(i)}async fetchCurrencies(e={}){const t=await this.publicGetV3Symbols(e),i=this.safeDict(t,"data",{}),s=this.safeDict(i,"spotConfig",{}),r=this.safeDict(s,"multiChain",{}),a=this.safeList(s,"assets",[]),o=this.safeList(r,"chains",[]),n={};for(let e=0;e<a.length;e++){const t=a[e],i=this.safeString(t,"token"),s=this.safeCurrencyCode(i),r=this.safeString(t,"displayName"),d={};for(let e=0;e<o.length;e++){const t=o[e],s=this.safeList(t,"tokens",[]);for(let e=0;e<s.length;e++){const r=s[e];if(this.safeString(r,"token")===i){const e=this.safeString(t,"chainId"),i=this.networkIdToCode(e);d[i]={info:t,id:e,network:i,active:void 0,deposit:!this.safeBool(t,"depositDisable"),withdraw:this.safeBool(r,"withdrawEnable"),fee:this.safeNumber(r,"minFee"),precision:this.parseNumber(this.parsePrecision(this.safeString(r,"decimals"))),limits:{withdraw:{min:this.safeNumber(r,"minWithdraw"),max:void 0},deposit:{min:this.safeNumber(t,"minDeposit"),max:void 0}}}}}}const h=!(0===Object.keys(d).length)&&void 0;n[s]=this.safeCurrencyStructure({info:t,code:s,id:i,type:"crypto",name:r,active:void 0,deposit:h,withdraw:h,fee:void 0,precision:void 0,limits:{amount:{min:void 0,max:void 0},withdraw:{min:void 0,max:void 0},deposit:{min:void 0,max:void 0}},networks:d})}return n}async fetchMarkets(e={}){const t=await this.publicGetV3Symbols(e),i=this.safeDict(t,"data",{}),s=this.safeDict(i,"contractConfig",{}),r=this.safeList(s,"perpetualContract",[]);return this.parseMarkets(r)}parseMarket(e){const t=this.safeString(e,"symbol"),i=this.safeString(e,"crossSymbolName"),s=this.safeString(e,"l2PairId"),r=this.safeString(e,"baseTokenId"),a=this.safeString(e,"settleAssetId"),o=this.safeCurrencyCode(r),n=this.safeString(e,"settleAssetId"),d=this.safeCurrencyCode(n),h=r+"/"+a+":"+d,c=this.parseNumber("0.0002"),l=this.parseNumber("0.0005");return this.safeMarketStructure({id:t,id2:i,symbol:h,base:o,quote:a,settle:d,baseId:r,quoteId:s,settleId:n,type:"swap",spot:!1,margin:void 0,swap:!0,future:!1,option:!1,active:this.safeBool(e,"enableTrade"),contract:!0,linear:!0,inverse:!1,taker:c,maker:l,contractSize:this.safeNumber(e,"minOrderSize"),expiry:void 0,expiryDatetime:void 0,strike:void 0,optionType:void 0,precision:{amount:this.safeNumber(e,"stepSize"),price:this.safeNumber(e,"tickSize")},limits:{leverage:{min:this.safeNumber(e,"displayMinLeverage"),max:this.safeNumber(e,"displayMaxLeverage")},amount:{min:this.safeNumber(e,"minOrderSize"),max:this.safeNumber(e,"maxOrderSize")},price:{min:void 0,max:void 0},cost:{min:void 0,max:void 0}},created:void 0,info:e})}parseTicker(e,t=void 0){const i=this.milliseconds(),s=this.safeString(e,"symbol");t=this.safeMarket(s,t);const r=this.safeSymbol(s,t),a=this.safeString(e,"lastPrice"),o=this.safeString(e,"price24hPcnt"),n=this.safeString(e,"turnover24h"),d=this.safeString(e,"volume24h"),h=this.safeString(e,"highPrice24h"),c=this.safeString(e,"lowPrice24h");return this.safeTicker({symbol:r,timestamp:i,datetime:this.iso8601(i),high:h,low:c,bid:void 0,bidVolume:void 0,ask:void 0,askVolume:void 0,vwap:void 0,open:void 0,close:a,last:a,previousClose:void 0,change:void 0,percentage:o,average:void 0,baseVolume:d,quoteVolume:n,markPrice:this.safeString(e,"markPrice"),indexPrice:this.safeString(e,"indexPrice"),info:e},t)}async fetchTicker(e,t={}){await this.loadMarkets();const i=this.market(e),s={symbol:i.id2},r=await this.publicGetV3Ticker(this.extend(s,t)),a=this.safeList(r,"data",[]),o=this.safeDict(a,0,{});return this.parseTicker(o,i)}async fetchTickers(e=void 0,t={}){await this.loadMarkets();const i=await this.publicGetV3DataAllTickerInfo(t),s=this.safeList(i,"data",[]);return this.parseTickers(s,e)}async fetchOHLCV(e,t="1m",i=void 0,s=void 0,r={}){await this.loadMarkets();const a=this.market(e);let o={interval:this.safeString(this.timeframes,t,t),symbol:a.id2};void 0===s&&(s=200),o.limit=s,[o,r]=this.handleUntilOption("end",o,r),void 0!==i&&(o.start=i);const n=await this.publicGetV3Klines(this.extend(o,r)),d=this.safeDict(n,"data",{}),h=this.safeList(d,a.id2,[]);return this.parseOHLCVs(h,a,t,i,s)}parseOHLCV(e,t=void 0){return[this.safeIntegerN(e,["start","t"]),this.safeNumberN(e,["open","o"]),this.safeNumberN(e,["high","h"]),this.safeNumberN(e,["low","l"]),this.safeNumberN(e,["close","c"]),this.safeNumberN(e,["volume","v"])]}async fetchOrderBook(e,t=void 0,i={}){await this.loadMarkets();const s=this.market(e),r={symbol:s.id2};void 0===t&&(t=100),r.limit=t;const a=await this.publicGetV3Depth(this.extend(r,i)),o=this.safeDict(a,"data",{}),n=this.milliseconds(),d=this.parseOrderBook(o,s.symbol,n,"b","a");return d.nonce=this.safeInteger(o,"u"),d}async fetchTrades(e,t=void 0,i=void 0,s={}){await this.loadMarkets();const r=this.market(e),a={symbol:r.id2};void 0===i&&(i=500),a.limit=i;const o=await this.publicGetV3Trades(this.extend(a,s)),n=this.safeList(o,"data",[]);return this.parseTrades(n,r,t,i)}parseTrade(e,t=void 0){const i=this.safeStringN(e,["s","symbol"]);t=this.safeMarket(i,t);const s=this.safeStringN(e,["i","id"]),r=this.safeIntegerN(e,["t","T","createdAt"]),a=this.safeStringN(e,["p","price"]),o=this.safeStringN(e,["v","size"]),n=this.safeStringLowerN(e,["S","side"]),d=this.safeStringN(e,["type"]),h=this.safeStringN(e,["fee"]);return this.safeTrade({info:e,id:s,order:void 0,timestamp:r,datetime:this.iso8601(r),symbol:t.symbol,type:d,takerOrMaker:void 0,side:n,price:a,amount:o,cost:void 0,fee:h},t)}async fetchOpenInterest(e,t={}){await this.loadMarkets();const i=this.market(e),s={symbol:i.id2},r=await this.publicGetV3Ticker(this.extend(s,t)),a=this.safeList(r,"data",[]),o=this.safeDict(a,0,{});return this.parseOpenInterest(o,i)}parseOpenInterest(e,t=void 0){const i=this.milliseconds(),s=this.safeString(e,"symbol");t=this.safeMarket(s,t);const r=this.safeSymbol(s,t);return this.safeOpenInterest({symbol:r,openInterestAmount:this.safeString(e,"openInterest"),openInterestValue:void 0,timestamp:i,datetime:this.iso8601(i),info:e},t)}async fetchFundingRateHistory(e=void 0,t=void 0,i=void 0,s={}){if(void 0===e)throw new n.ArgumentsRequired(this.id+" fetchFundingRateHistory() requires a symbol argument");await this.loadMarkets();const r={},a=this.market(e);r.symbol=a.id,void 0!==t&&(r.beginTimeInclusive=t),void 0!==i&&(r.limit=i);const o=this.safeInteger(s,"page");void 0!==o&&(r.page=o);const d=this.safeIntegerN(s,["endTime","endTimeExclusive","until"]);void 0!==d&&(r.endTimeExclusive=d);const h=await this.publicGetV3HistoryFunding(this.extend(r,s)),c=[],l=this.safeDict(h,"data",{}),u=this.safeList(l,"historyFunds",[]);for(let e=0;e<u.length;e++){const t=u[e],i=this.safeInteger(t,"fundingTimestamp"),s=this.safeString(t,"symbol");c.push({info:t,symbol:this.safeSymbol(s,a),fundingRate:this.safeNumber(t,"rate"),timestamp:i,datetime:this.iso8601(i)})}const f=this.sortBy(c,"timestamp");return this.filterBySymbolSinceLimit(f,e,t,i)}parseOrder(e,t=void 0){const i=this.safeInteger(e,"createdAt"),s=this.safeString(e,"id"),r=this.safeString(e,"clientId"),a=this.safeString(e,"symbol"),o=(t=this.safeMarket(a,t)).symbol,n=this.safeString(e,"price"),d=this.safeString(e,"size"),h=this.safeString(e,"type"),c=this.safeString(e,"status"),l=this.safeStringLower(e,"side"),u=this.omitZero(this.safeString(e,"remainingSize")),f=this.safeInteger(e,"updatedTime");return this.safeOrder({id:s,clientOrderId:r,timestamp:i,datetime:this.iso8601(i),lastTradeTimestamp:void 0,lastUpdateTimestamp:f,status:this.parseOrderStatus(c),symbol:o,type:this.parseOrderType(h),timeInForce:this.parseTimeInForce(this.safeString(e,"timeInForce")),postOnly:this.safeBool(e,"postOnly"),reduceOnly:this.safeBool(e,"reduceOnly"),side:l,price:n,triggerPrice:this.safeString(e,"triggerPrice"),takeProfitPrice:void 0,stopLossPrice:void 0,average:void 0,amount:d,filled:void 0,remaining:u,cost:void 0,trades:void 0,fee:{cost:this.safeString(e,"fee"),currency:t.settleId},info:e},t)}parseTimeInForce(e){return this.safeString({GOOD_TIL_CANCEL:"GOOD_TIL_CANCEL",FILL_OR_KILL:"FILL_OR_KILL",IMMEDIATE_OR_CANCEL:"IMMEDIATE_OR_CANCEL",POST_ONLY:"POST_ONLY"},e,void 0)}parseOrderStatus(e){if(void 0!==e){const t={PENDING:"open",OPEN:"open",FILLED:"filled",CANCELING:"canceled",CANCELED:"canceled",UNTRIGGERED:"open"};return this.safeString(t,e,e)}return e}parseOrderType(e){return this.safeStringUpper({LIMIT:"LIMIT",MARKET:"MARKET",STOP_LIMIT:"STOP_LIMIT",STOP_MARKET:"STOP_MARKET",TAKE_PROFIT_LIMIT:"TAKE_PROFIT_LIMIT",TAKE_PROFIT_MARKET:"TAKE_PROFIT_MARKET"},e,e)}safeMarket(e=void 0,t=void 0,i=void 0,s=void 0){if(void 0===t&&void 0!==e)if(e in this.markets)t=this.markets[e];else if(e in this.markets_by_id)t=this.markets_by_id[e];else{const i=this.addHyphenBeforeUsdt(e);if(i in this.markets_by_id){this.markets_by_id[i].length>0&&this.markets_by_id[i][0].id2===e&&(t=this.markets_by_id[i][0])}}return super.safeMarket(e,t,i,s)}generateRandomClientIdOmni(e){return"apexomni-"+(e||this.randNumber(12).toString())+"-"+this.milliseconds().toString()+"-"+this.randNumber(6).toString()}addHyphenBeforeUsdt(e){const t=e.toUpperCase().indexOf("USDT"),i=this.safeString(e,t-1);return t>0&&"-"!==i?e.slice(0,t)+"-"+e.slice(t):e}getSeeds(){const e=this.safeString(this.options,"seeds");if(void 0===e)throw new n.ArgumentsRequired(this.id+' the "seeds" key is required in the options to access private endpoints. You can find it in API Management > Omni Key, and then set it as exchange.options["seeds"] = XXXX');return e}async getAccountId(){if("0"===this.safeString(this.options,"accountId","0")){const e=await this.fetchAccount();this.options.accountId=this.safeString(e,"id","0")}return this.options.accountId}async createOrder(e,t,i,r,o=void 0,d={}){await this.loadMarkets();const h=this.market(e),c=t.toUpperCase(),l=i.toUpperCase(),u=this.amountToPrecision(e,r);let f="0";void 0!==o&&(f=this.priceToPrecision(e,o));const p=this.safeDict(this.fees,"swap",{}),m=this.safeNumber(p,"taker",5e-4),g=this.safeNumber(p,"maker",2e-4),v=this.decimalToPrecision(s.Y.stringAdd(s.Y.stringMul(s.Y.stringMul(f,u),m.toString()),h.precision.price.toString()),a.R3,h.precision.price,this.precisionMode,this.paddingMode),y=this.milliseconds(),w="MARKET"===c;if(w&&void 0===o)throw new n.ArgumentsRequired(this.id+" createOrder() requires a price argument for market orders");let b=this.safeStringUpper(d,"timeInForce");const k=this.isPostOnly(w,void 0,d);void 0===b&&(b="GOOD_TIL_CANCEL"),w||(k?b="POST_ONLY":"ioc"===b&&(b="IMMEDIATE_OR_CANCEL")),d=this.omit(d,"timeInForce"),d=this.omit(d,"postOnly");let S=this.safeStringN(d,["clientId","clientOrderId","client_order_id"]);const O=await this.getAccountId();void 0===S&&(S=this.generateRandomClientIdOmni(O)),d=this.omit(d,["clientId","clientOrderId","client_order_id"]);const T={accountId:O,slotId:S,nonce:S,pairId:h.quoteId,size:u,price:f,direction:l,makerFeeRate:g.toString(),takerFeeRate:m.toString()},P=await this.getZKContractSignatureObj(this.remove0xPrefix(this.getSeeds()),T),I={symbol:h.id,side:l,type:c,size:u,price:f,limitFee:v,expiration:Math.floor(y/1e3+2592e3),timeInForce:b,clientId:S,brokerId:this.safeString(this.options,"brokerId","6956")};I.signature=P;const M=await this.privatePostV3Order(this.extend(I,d)),x=this.safeDict(M,"data",{});return this.parseOrder(x,h)}async transfer(e,t,i,r,a={}){await this.loadMarkets();const o=await this.publicGetV3Symbols(a),n=this.safeDict(o,"data",{}),d=this.safeDict(n,"contractConfig",{}),h=this.safeList(d,"assets",[]),c=this.safeDict(n,"spotConfig",{}),l=this.safeList(c,"assets",[]),u=this.safeDict(c,"global",{}),f=this.safeString(u,"contractAssetPoolEthAddress",""),p=this.safeString(u,"contractAssetPoolZkAccountId",""),m=this.safeString(u,"contractAssetPoolSubAccount",""),g=this.safeString(u,"contractAssetPoolAccountId",""),v=aw