PageSourceSearch

https://iotrader.io/assets/FutureTrading-DL0Z8Fsh.js

js iotrader.io collected 2026-10-07 02:29:17 UTC 21,213 bytes, 40 lines download raw bytes

1import{j as e}from"./vendor-trading-D1p3lq87.js";import{r as i}from"./vendor-icons-6ckh54d_.js";import{P as M}from"./PageSEO-D5QLkR79.js";import{S as B}from"./SiteHeader-BuEhw28K.js";import{H as $}from"./Home2Footer-DjxO6I_x.js";import{D as X}from"./home2-CFGPzgUz.js";import{O as Z}from"./OrderlyConnect-D8NMU3_e.js";import{a as J,u as ee,b as re,c as te,d as se,e as ae,f as ne,g as oe,h as ie,i as le,C as ce,F as de,T as ue,j as me,M as fe,A as he,k as pe,l as xe,P as be}from"./TradingView-BMVZS5tU.js";import{S as T,g as U,a as ge,p as L,b as ye,c as ve,d as S,e as H,r as je}from"./App-DuU1U4az.js";import{W as we,L as ke,P as Ce}from"./vendor-charts-VTFkYo2H.js";import{I as Pe}from"./Icon-DjBwmRGQ.js";import{e as Ne}from"./vendor-web3-BzpTdpCw.js";import{e as Te,u as Ae,d as Ie}from"./vendor-react-DQUjuWkt.js";import"./vendor-firebase-BholX5ft.js";import"./useTradeHistory-BfpBBIFD.js";import"./LeverageRiskPanel-CZFvysgy.js";const Se="https://fapi.binance.com",_e={1:"1m",3:"3m",5:"5m",15:"15m",60:"1h","1D":"1d"};function Fe({binanceSymbol:r,interval:s="5"}){const n=i.useRef(null),l=i.useRef(null),d=i.useRef(null),[f,m]=i.useState(null),[j,p]=i.useState(!1),u=_e[s]||"5m";return i.useEffect(()=>{if(!n.current||!r)return;const{clientWidth:o,clientHeight:t}=n.current,a=we(n.current,{width:Math.max(o||0,1),height:Math.max(t||0,1),layout:{background:{type:ke.Solid,color:"#050505"},textColor:"#999999"},grid:{vertLines:{color:"rgba(255,255,255,0.05)"},horzLines:{color:"rgba(255,255,255,0.05)"}},rightPriceScale:{borderColor:"#1F1F1F"},timeScale:{borderColor:"#1F1F1F",timeVisible:!0,secondsVisible:!1}}),g=a.addSeries(Ce,{upColor:"#00C853",downColor:"#FF3B69",borderUpColor:"#00C853",borderDownColor:"#FF3B69",wickUpColor:"#00C853",wickDownColor:"#FF3B69"});l.current=a,d.current=g;const y=new ResizeObserver(()=>{if(!n.current||!l.current)return;const{clientWidth:C,clientHeight:x}=n.current;C<2||x<2||l.current.applyOptions({width:C,height:x})});return y.observe(n.current),()=>{y.disconnect(),a.remove(),l.current=null,d.current=null}},[r]),i.useEffect(()=>{const o=d.current;if(!o||!r)return;let t=!1;p(!1);const a=async()=>{try{const y=`${Se}/fapi/v1/klines?symbol=${encodeURIComponent(r)}&interval=${encodeURIComponent(u)}&limit=500`,C=await fetch(y);if(!C.ok)throw new Error("Failed to load candles");const x=await C.json();if(t)return;const N=x.map(w=>({time:Math.floor(w[0]/1e3),open:parseFloat(w[1]),high:parseFloat(w[2]),low:parseFloat(w[3]),close:parseFloat(w[4])}));o.setData(N),l.current?.timeScale?.().fitContent?.(),m(null)}catch(y){t||m(y?.message||"Chart error")}finally{t||p(!0)}};a();const g=setInterval(a,6e4);return()=>{t=!0,clearInterval(g)}},[r,u]),r?e.jsxs("div",{className:"relative w-full h-full bg-[#050505] overflow-hidden",children:[f?e.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center text-[#FF3B69] text-sm px-4 text-center",children:f}):null,!j&&!f?e.jsx("div",{className:"absolute inset-0 z-20 flex items-center justify-center bg-[#050505]",role:"status","aria-label":"Loading chart",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("img",{src:T,alt:"IOTrader",className:"h-12 w-auto object-contain opacity-95"}),e.jsx("div",{className:"w-12 h-12 border-4 border-[#EAB308]/30 border-t-[#EAB308] rounded-full animate-spin"}),e.jsx("p",{className:"text-[#999999] text-sm",children:"Loading chart..."})]})}):null,e.jsx("div",{ref:n,className:"absolute inset-0 w-full h-full min-h-0"}),e.jsx("div",{className:"absolute bottom-2 right-2 text-[10px] text-[#555555] pointer-events-none",children:r?.replace(/USDT$/,"/USDC")??r})]}):e.jsx("div",{className:"w-full h-full flex items-center justify-center bg-[#050505] text-[#666666] text-sm",children:"No symbol"})}const Ee={},Oe=Ee?.VITE_OPENAI_API_KEY||"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",Re="https://api.openai.com/v1/chat/completions",De="You are an expert cryptocurrency market analyst. Provide concise, actionable market analysis focusing on price trends, chart patterns, short-term predictions, and trading recommendations. Keep responses brief (3-4 bullet points maximum).",Me="You are an expert perpetual futures analyst. Provide concise futures trading analysis focusing on price trends, funding context, leverage, and long/short recommendations. Keep responses brief (3-4 bullet points maximum).";function Be(){const r=String(Oe).trim();if(!r||r==="your-api-key-here"||r.length<20)throw new Error("OpenAI API key is not configured or invalid");if(!r.startsWith("sk-"))throw new Error("Invalid API key format");return r}function $e({asset:r,currency:s,price:n,change:l,timeRange:d}){return`Analyze the current market situation for ${r}/${s}.
2
3Current Market Data:
4- Asset: ${r}/${s}
5- Current Price: ${n.toFixed(s==="USDT"?2:6)} ${s}
6- 24h Change: ${l>=0?"+":""}${Number(l).toFixed(2)}%
7- Time Range: ${d}
8
9Provide a brief analysis (3-4 bullet points) focusing on:
101. Current price trends and chart patterns
112. Short-term price predictions (1m, 10m, 1h)
123. Trading recommendations based on technical analysis
134. Risk assessment`}function Ue({assetLabel:r,price:s,change:n,timeRange:l,currency:d="USDC"}){return`Analyze the current perpetual futures market for ${r}.
14
15Current Market Data:
16- Pair: ${r}
17- Current Price: ${Number(s).toFixed(2)} ${d}
18- 24h Change: ${n>=0?"+":""}${Number(n).toFixed(2)}%
19- Chart Timeframe: ${l}
20
21Provide a brief analysis (3-4 bullet points) focusing on:
221. Current price trends and chart patterns
232. Short-term outlook for perpetual positions
243. Long vs short trading considerations
254. Risk assessment`}async function Le(r,s="prediction"){const n=Be(),l=s==="futures"?Me:De;try{const f=(await J.post(Re,{model:"gpt-4o-mini",messages:[{role:"system",content:l},{role:"user",content:r}],temperature:.7,max_tokens:500},{headers:{"Content-Type":"application/json",Authorization:`Bearer ${n}`},timeout:3e4})).data?.choices?.[0]?.message?.content;return f?String(f).replace(/\*/g,""):"Unable to generate analysis at this time."}catch(d){if(d.response?.status===401){const f=d.response?.data?.error?.message;throw new Error(`API Authentication Failed (401): ${f||"Invalid or expired API key. Update src/config/openai.js."}`)}throw d}}function He(r){const s=r?.response?.status??r?.status,n=r?.message||"";return s===429?"Rate limit exceeded. Please wait a few moments and try again.":s===401||n.includes("Authentication Failed")?n.includes("Authentication Failed")?n:"API key invalid or expired. Update the key in src/config/openai.js.":s===400?"Invalid request. Please try again later.":s>=500?"OpenAI server error. Please try again later.":n==="OpenAI API key is not configured or invalid"||n==="Invalid API key format"?`${n}. Set your key in src/config/openai.js.`:r?.code==="ECONNABORTED"||n.includes("timeout")?"OpenAI request timed out. Please try again.":n.includes("Network Error")||n.includes("Failed to fetch")?"Network error reaching OpenAI. Check your connection and try again.":n||"Error loading market analysis. Please try again later."}function ze({cacheKey:r,assetLabel:s,currency:n="USDC",price:l,priceChange24h:d=0,timeRange:f,mode:m="prediction",isChatOpen:j}){const[p,u]=i.useState(""),[o,t]=i.useState(!1),a=i.useRef(null),g=i.useRef([]),y=i.useRef(!1),C=i.useRef(0),x=i.useRef(!1),N=i.useRef(!1),w=i.useCallback(async()=>{if(!y.current){for(y.current=!0;g.current.length>0;){const v=g.current.shift();if(v){if(a.current&&a.current.asset===v.cacheKey){u(a.current.text),t(!1),v.resolve(a.current.text);continue}try{t(!0);const h=await Le(v.userMessage,v.mode);C.current=Date.now(),a.current={text:h,timestamp:Date.now(),asset:v.cacheKey},u(h),t(!1),v.resolve(h)}catch(h){console.error("OpenAI API error:",h);const k=He(h);u(k),t(!1),v.reject(h)}}}y.current=!1}},[]),A=i.useCallback(async()=>{if(!r||l<=0)return;if(a.current&&a.current.asset===r){u(a.current.text),t(!1);return}if(N.current&&a.current?.asset===r||x.current)return;x.current=!0,N.current=!0;const v=m==="futures"?Ue({assetLabel:s,price:l,change:d,timeRange:f,currency:n}):$e({asset:s,currency:n,price:l,change:d,timeRange:f});return new Promise((h,k)=>{g.current.push({userMessage:v,cacheKey:r,mode:m,resolve:I=>{x.current=!1,h(I)},reject:I=>{x.current=!1,k(I)}}),w()})},[s,r,n,m,l,d,w,f]);return i.useEffect(()=>{a.current&&a.current.asset!==r&&(a.current=null,u(""),x.current=!1,N.current=!1)},[r]),i.useEffect(()=>{if(!(!j||l<=0)){if(a.current&&a.current.asset===r){u(a.current.text),t(!1);return}!x.current&&!N.current&&(!a.current||a.current.asset!==r)&&A()}},[r,A,j,l]),{analysisText:p,isLoadingAnalysis:o,hasCachedAnalysis:!!a.current}}const We=`
26  @keyframes iotrader-ai-slide-up {
27    from { opacity: 0; transform: translateY(100%); }
28    to { opacity: 1; transform: translateY(0); }
29  }
30  .iotrader-ai-slide-up {
31    animation: iotrader-ai-slide-up 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
32  }
33  @keyframes iotrader-ai-pulse-ring {
34    0% { transform: scale(1); opacity: 1; }
35    100% { transform: scale(1.3); opacity: 0; }
36  }
37  .iotrader-ai-pulse-ring {
38    animation: iotrader-ai-pulse-ring 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
39  }
40`;function Ye({assetLabel:r,price:s=0,priceChange24h:n=0,timeRange:l="5M",currency:d="USDC",mode:f="prediction",className:m=""}){const[j,p]=i.useState(!1),u=`${f}-${r}-${d}`,{analysisText:o,isLoadingAnalysis:t,hasCachedAnalysis:a}=ze({cacheKey:u,assetLabel:r,currency:d,price:s,priceChange24h:n,timeRange:l,mode:f,isChatOpen:j});return e.jsxs(e.Fragment,{children:[e.jsx("style",{children:We}),e.jsxs("div",{className:`absolute top-2 right-2 z-50 flex flex-col items-center gap-1 max-lg:top-1.5 max-lg:right-1.5 ${m}`,children:[e.jsxs("button",{type:"button",onClick:()=>p(g=>!g),className:"w-16 h-16 max-lg:w-10 max-lg:h-10 rounded-full bg-white shadow-[0_8px_24px_rgba(0,0,0,0.3),inset_0_2px_4px_rgba(255,255,255,0.8)] flex items-center justify-center group hover:scale-110 active:scale-95 transition-all duration-300 cursor-pointer relative","aria-label":"Open IO Trader AI",children:[!j&&e.jsx("div",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-yellow-500/30 to-yellow-600/30 iotrader-ai-pulse-ring max-lg:hidden"}),e.jsx("div",{className:"absolute inset-2 max-lg:inset-1 rounded-full overflow-hidden",children:e.jsxs("svg",{className:"w-full h-full",viewBox:"0 0 100 100","aria-hidden":"true",children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"iotraderAiGradient",x1:"0%",y1:"0%",x2:"100%",y2:"0%",children:[e.jsx("stop",{offset:"0%",stopColor:"#f3b340"}),e.jsx("stop",{offset:"50%",stopColor:"#f5c842"}),e.jsx("stop",{offset:"100%",stopColor:"#f3b340"})]})}),e.jsx("circle",{cx:"50",cy:"50",r:"48",fill:"url(#iotraderAiGradient)"}),e.jsx("circle",{cx:"50",cy:"50",r:"38",fill:"#000000"})]})}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-center z-10",children:e.jsx("img",{src:T,alt:"IO Trader",className:"w-8 h-8 max-lg:w-5 max-lg:h-5 object-contain"})}),e.jsx("div",{className:"absolute inset-0 rounded-full bg-gradient-to-r from-yellow-500/20 to-yellow-600/20 opacity-0 group-hover:opacity-100 transition-opacity duration-300 blur-md -z-10"})]}),e.jsx("span",{className:"text-xs max-lg:text-[9px] font-black text-white uppercase tracking-wider max-lg:tracking-wide drop-shadow-[0_2px_4px_rgba(0,0,0,0.8)]",children:"IOTRADER AI"})]}),j&&e.jsxs("div",{className:"fixed inset-0 z-[70] flex items-end justify-end pointer-events-none",children:[e.jsx("button",{type:"button",className:"absolute inset-0 bg-black/50 backdrop-blur-sm pointer-events-auto",onClick:()=>p(!1),"aria-label":"Close IO Trader AI"}),e.jsxs("div",{className:"relative w-full max-w-md h-[600px] max-h-[85vh] bg-[#0a0b0d] border border-white/10 rounded-t-2xl shadow-2xl pointer-events-auto iotrader-ai-sli
40de-up flex flex-col mr-0",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-white/10 bg-[#111] rounded-t-2xl",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"relative w-10 h-10",children:e.jsx("div",{className:"absolute inset-0 bg-white rounded-full shadow-[0_4px_12px_rgba(0,0,0,0.2),inset_0_1px_2px_rgba(255,255,255,0.8)] flex items-center justify-center",children:e.jsx("img",{src:T,alt:"IO Trader",className:"w-5 h-5 object-contain"})})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-white font-bold text-sm",children:"Analysis Bot"}),e.jsx("p",{className:"text-xs text-gray-400",children:"AI-powered market analysis"})]})]}),e.jsx("button",{type:"button",onClick:()=>p(!1),className:"text-gray-400 hover:text-white transition-colors p-2","aria-label":"Close chat",children:e.jsx(Pe,{name:"ChevronDown",size:20})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-4 no-scrollbar",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-gradient-to-r from-yellow-500 to-yellow-600 flex items-center justify-center flex-shrink-0",children:e.jsx("img",{src:T,alt:"IO Trader",className:"w-5 h-5 object-contain"})}),e.jsxs("div",{className:"flex-1 bg-[#111] border border-white/10 rounded-lg p-3",children:[e.jsx("p",{className:"text-sm text-white",children:"Hello! I'm your AI Analysis Bot. I can help you with:"}),e.jsxs("ul",{className:"mt-2 space-y-1 text-xs text-gray-300 list-disc list-inside",children:[e.jsx("li",{children:"Market trend anal
40ysis"}),e.jsx("li",{children:"Price outlooks"}),e.jsx("li",{children:"Trading insights"}),e.jsx("li",{children:"Risk assessment"})]}),e.jsxs("p",{className:"text-xs text-gray-400 mt-2",children:["Ask me anything about ",r,"!"]})]})]}),t&&e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-gradient-to-r from-yellow-500 to-yellow-600 flex items-center justify-center flex-shrink-0",children:e.jsx("img",{src:T,alt:"IO Trader",className:"w-5 h-5 object-contain"})}),e.jsx("div",{className:"flex-1 bg-[#111] border border-white/10 rounded-lg p-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-2 h-2 bg-yellow-400 rounded-full animate-pulse"}),e.jsx("span",{className:"text-xs text-gray-400",children:"Fetching market analysis..."})]})})]}),o&&!t&&e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-gradient-to-r from-yellow-500 to-yellow-600 flex items-center justify-center flex-shrink-0",children:e.jsx("img",{src:T,alt:"IO Trader",className:"w-5 h-5 object-contain"})}),e.jsxs("div",{className:"flex-1 bg-[#111] border border-white/10 rounded-lg p-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("span",{className:"text-xs font-bold text-yellow-400 uppercase",children:"AI Market Analysis"}),a&&e.jsx("span",{className:"text-[10px] text-gray-500 italic",children:"(Cached)"})]}),e.jsx("div",{className:"text-sm text-white whitespace-pre-wrap",children:o})]})]})]})]})]})]})}const Ve=[{evmChainId:1},{evmChainId:42161},{evmChainId:8453},{evmChainId:56},{evmChainId:11155111}],qe=[{value:"1M",label:"1M"},{value:"5M",label:"5M"},{value:"15M",label:"15M"},{value:"1H",label:"1H"},{value:"1D",label:"1D"}],ur=()=>{const r=Ne(),{pair:s}=Te(),[n]=Ae(),l=Ie(),[d,f]=i.useState("5M");X();const{markets:m}=ee(),j=re(),p=i.useMemo(()=>{const c=m||[],b=U(c),R=c.filter(P=>!b.has(P.symbol)),K=new Set(R.map(P=>P.symbol)),Q=ge(c,b).filter(P=>!K.has(P.appSymbol)).map(P=>{const D=j[P.appSymbol];
40return{symbol:P.appSymbol,"24h_close":D?.["24h_close"]??null,change:D?.change??null,label:P.label}});return[...R,...Q]},[m,j]),u=i.useMemo(()=>new Set(p.map(c=>c.symbol).filter(Boolean)),[p]),o=i.useMemo(()=>{let c="PERP_ETH_USDC";if(s!=null&&s!=="")c=L(s,u.size?u:null);else{const b=n.get("symbol");b&&(b.startsWith("PERP_")||b.startsWith("BF_"))&&(c=b)}return ye(c,m)},[s,u,n,m]),t=ve(o,m),a=i.useMemo(()=>{const c=p.find(b=>b.symbol===o);return c?.label?c.label:t?.label?t.label:o.replace(/^PERP_/i,"").replace(/_/g,"/")},[p,o,t]),g=t?"PERP_ETH_USDC":o,y=t?`${t.shortName}_USDC`:o,C=te(g),x=se(g),N=ae(t?.binanceSymbol??null),w=ne(t?.binanceSymbol??null),A=oe(t?.binanceSymbol??null,50),v=ie(t?.binanceSymbol??null,20),h=le(y),k=t?N:C,I=t?w:x,z=i.useMemo(()=>t?{...h,contract:{...h?.contract||{},base_currency:h?.contract?.base_currency||t.shortName}}:h,[t,h]);i.useEffect(()=>{if(s==null||s===""||!u.size)return;const c=L(s,u),b=S(c);s!==b&&l(`/trade/pro/${b}`,{replace:!0})},[s,u,l]),i.useEffect(()=>{if(!m?.length)return;const c=U(m);o.startsWith("PERP_")&&c.has(o)&&l(H(je(o,m,u)),{replace:!0})},[m,o,l,u]);const W=Ve.some(c=>c.evmChainId===r),_={"1M":"1","5M":"5","15M":"15","1H":"60","1D":"1D"}[d]||"5",Y=k?.lastPrice??k?.markPrice??k?.["24h_close"]??0,V=k?.priceChangePercent??k?.change??0,q=i.useCallback((c,b)=>{},[]),G=i.useCallback(c=>{l(H(c))},[l]),F=e.jsxs("div",{className:"relative w-full h-full min-h-0 flex flex-col flex-1",children:[e.jsx("div",{className:"flex flex-row items-center gap-1 px-2 py-1.5 overflow-x-auto scrollbar-hide flex-shrink-0 border-b border-[color:var(--color-border-strong)] bg-[#080808] z-20",children:qe.map(c=>e.jsx("button",{type:"button",onClick:()=>f(c.value),className:`flex flex-row justify-center items-center px-2 py-1 rounded transition-all cursor-pointer shrink-0 text-xs font-medium whitespace-nowrap ${d===c.value?"bg-[#1A1A1A] text-white border border-[#333333]":"text-[#999999] hover:text-white hover:bg-[#0A0A0A] border border-transparent"}`,children:c.label},c.value))}),e.jsxs("div",{className:"relative w-full flex-1 min-h-0 max-lg:min-h-[220px] lg:min-h-[480px]",children:[t?e.jsx(Fe,{binanceSymbol:t.binanceSymbol,interval:_},o):e.jsx(ce,{symbol:o,interval:_,showCustomToolbar:!0},o),e.jsx(Ye,{assetLabel:a,price:Number(Y)||0,priceChange24h:Number(V)||0,timeRange:d,currency:"USDC",mode:"futures"})]})]}),E=e.jsx(be,{symbol:o}),O=e.jsx(de,{symbol:o,onPriceClick:q,orderBookPriceLabel:t&&t.quoteAsset||"USDC",orderBookSizeLabel:t?t.shortName:"USDT",orderBookTotalLabel:t?t.shortName:"USDT",orderbook:t?{...A,isLoading:A.isLoading}:void 0,trades:t?v.trades:void 0},o);return W?e.jsxs(e.Fragment,{children:[e.jsx(M,{url:s?`/trade/pro/${S(o)}`:"/trade/pro/ETH_USDC",title:s?`Trade ${a} Perpetual Futures`:"Trade Crypto Perpetual Futures",description:s?`Trade ${a} perpetual futures on IO Trader: live charts, funding rates, order-book depth, and long or short execution. Up to 20x leverage.`:"Trade crypto perpetual futures on IO Trader — BTC, ETH, altcoins, and select markets with charts, order book, and long or short positions.",keywords:`${a}, perpetual futures, crypto futures, 20x leverage, IO Trader`,imageAlt:`IO Trader — ${a} perpetual futures`}),e.jsxs("div",{className:"flex flex-col min-h-[100dvh] lg:min-h-screen bg-[#080808] overflow-x-hidden max-lg:overflow-y-auto lg:overflow-visible pb-[env(safe-area-inset-bottom)]",children:[e.jsx(B,{}),e.jsx(Z,{}),e.jsx(ue,{value:{disableTooltipsOnMobile:!0},children:e.jsx(me,{header:e.jsx(xe,{markets:p,symbol:o,onSymbolChange:G,ticker:k,fundingRate:I,derivatives:z}),chart:F,orderBook:O,rightPanel:E,bottomTabs:e.jsx(pe,{symbol:o}),account:e.jsx(he,{}),mobileTabs:e.jsx(fe,{chart:F,orderBook:O,orderEntry:E,symbol:o})})}),e.jsx($,{})]})]}):e.jsxs(e.Fragment,{children:[e.jsx(M,{url:s?`/trade/pro/${S(o)}`:"/trade/pro/ETH_USDC",title:s?`Trade ${a} Perpetual Futures`:"Trade Crypto Perpetual Futures",description:s?`Trade ${a} perpetual futures on IO Trader: live charts, funding rates, order-book depth, and long or short execution. Up to 20x leverage.`:"Trade crypto perpetual futures on IO Trader — BTC, ETH, altcoins, and select markets with charts, order book, and long or short positions.",ke
40ywords:`${a}, perpetual futures, crypto futures, 20x leverage, IO Trader`,imageAlt:`IO Trader — ${a} perpetual futures`}),e.jsxs("div",{className:"flex min-h-screen flex-col bg-[#080808] text-white font-sans",children:[e.jsx(B,{}),e.jsx("div",{className:"flex w-full flex-1 items-center justify-center",children:e.jsx("div",{className:"max-w-md p-8 bg-[color:var(--color-background-secondary)] border border-[color:var(--color-border-strong)] rounded-2xl",children:e.jsxs("div",{className:"flex flex-col items-center gap-4 text-center",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-rose-500/10 flex items-center justify-center",children:e.jsx("svg",{className:"w-8 h-8 text-rose-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),e.jsx("h2",{className:"text-xl font-bold text-white",children:"Unsupported Network"}),e.jsx("p",{className:"text-gray-400 text-sm leading-relaxed",children:"Perpetual trading is not available on this network. Please switch to Ethereum, Arbitrum, or BNB Chain to access perpetual futures."}),e.jsxs("div",{className:"mt-2 text-xs text-gray-500",children:["Current Chain ID: ",r]})]})})}),e.jsx($,{})]})]})};export{ur as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.