PageSourceSearch

https://midas.exchange/_next/static/chunks/15aae697479b725e.js

js midas.exchange collected 2026-09-24 14:21:42 UTC 119,138 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,847100,414526,589160,t=>{"use strict";var e=t.i(681307),a=t.i(261238),r=t.i(444592),n=t.i(31241),o=t.i(104433);let i=e.z.union([e.z.string(),e.z.number()]).transform(String).optional(),s=e.z.union([e.z.string(),e.z.number()]).transform(String),l=e.z.object({asset:e.z.string(),network:e.z.string(),balance:s,available:s,locked:s,address:e.z.string()}).transform(t=>({asset:t.asset,network:t.network,balance:t.balance,available:t.available,locked:t.locked,address:t.address})),_=e.z.object({assets:e.z.array(e.z.object({asset:e.z.string(),network:e.z.string(),wallets:e.z.unknown().optional(),total:i,total_usd:i,price_usd:i,price_change_24h:i,logo_url:e.z.string().optional()})).optional(),grand_total:i,count:e.z.number().optional()}).transform(t=>({assets:Array.isArray(t.assets)?t.assets:[],grand_total:t.grand_total,count:t.count,total_balance_usd:t.grand_total})),p=e.z.object({wallets:e.z.array(l).optional()}).transform(t=>t.wallets??[]),c=e.z.object({balances:e.z.record(e.z.string(),e.z.string()).optional(),count:e.z.number().optional()}).transform(()=>({total_usd:"0",total_btc:"0"})),d=e.z.object({wallet:l}).transform(t=>t.wallet),u=e.z.object({total_balance:i,asset:e.z.string().optional(),network:e.z.string().optional(),balances:e.z.unknown().optional()}).transform(t=>({balance:t.total_balance??"0",available:t.total_balance??"0",locked:"0"})),m=e.z.object({}).passthrough().transform(t=>t),g=e.z.object({asset:e.z.string(),network:e.z.string(),address:e.z.string()}).transform(t=>({asset:t.asset,network:t.network,address:t.address})),y=e.z.object({networks:e.z.array(e.z.object({network:e.z.string(),display_name:e.z.string().optional(),logo_url:e.z.string().optional(),native_asset:e.z.string().optional()})).optional()}).transform(t=>(t.networks??[]).map(t=>({id:t.network,name:t.network,display_name:t.display_name||t.network,is_testnet:!1,is_enabled:!0,logo_url:t.logo_url||void 0,native_asset:t.native_asset||void 0}))),b=e.z.object({assets:e.z.array(e.z.object({symbol:e.z.string(),name:e.z.string(),networks:e.z.array(e.z.string()).optional(),is_depositable:e.z.boolean().optional(),is_withdrawable:e.z.boolean().optional(),logo_url:e.z.string().optional(),image_small:e.z.string().optional()})).optional()}).transform(t=>(t.assets??[]).map(t=>({symbol:t.symbol,name:t.name,network:t.networks&&t.networks.length>0?t.networks[0]:"ETH",contract_address:"",decimals:18,is_native:!1,logo_url:t.logo_url||t.image_small||void 0,is_depositable:!1!==t.is_depositable,is_withdrawable:!1!==t.is_withdrawable}))),z=e.z.object({networks:e.z.array(e.z.object({network:e.z.string(),is_deposit_enabled:e.z.boolean().optional(),min_deposit:i,min_deposit_usd:i,min_withdrawal:i,min_withdrawal_usd:i,display_name:e.z.string().optional(),logo_url:e.z.string().optional(),native_asset:e.z.string().optional(),min_confirmations:e.z.number().optional(),block_time_seconds:e.z.number().optional()})).optional()}).transform(t=>(t.networks??[]).map(t=>({network:t.network,network_name:t.display_name||t.network,contract_address:"",decimals:18,is_native:!1,min_deposit:t.min_deposit,min_deposit_usd:t.min_deposit_usd,min_withdrawal:t.min_withdrawal,min_withdrawal_usd:t.min_withdrawal_usd,is_deposit_enabled:!1!==t.is_deposit_enabled,is_withdrawal_enabled:!0,display_name:t.display_name||void 0,logo_url:t.logo_url||void 0,native_asset:t.native_asset||void 0,min_confirmations:t.min_confirmations,block_time_seconds:t.block_t
1ime_seconds}))),h=e.z.object({chains:e.z.array(e.z.object({network:e.z.string(),ready:e.z.boolean().optional(),status:e.z.string().optional(),reason:e.z.string().optional()})).optional()}).transform(t=>(t.chains??[]).map(t=>({network:t.network,ready:!1!==t.ready,status:t.status||void 0,reason:t.reason||void 0}))),f=(0,r.list)(e.z.object({asset:e.z.string().optional(),network:e.z.string().optional(),balance:i,available:i,locked:i,address:e.z.string().optional()})),w=e.z.string().transform(t=>t).optional(),k=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),user_id:e.z.union([e.z.string(),e.z.number()]).transform(String).optional(),type:e.z.string().transform(t=>t).optional(),asset:e.z.string(),network:e.z.string(),amount:s,fee:i,net_amount:i,status:w,address:e.z.string().optional(),from_address:e.z.string().optional(),to_address:e.z.string().optional(),tx_hash:e.z.string().optional(),confirmations:e.z.number().optional(),required_confirmations:e.z.number().optional(),created_at:e.z.string(),updated_at:e.z.string().optional(),confirmed_at:e.z.string().optional(),completed_at:e.z.string().optional()}).transform(t=>({id:t.id,user_id:t.user_id,type:t.type,asset:t.asset,network:t.network,amount:t.amount,fee:t.fee,net_amount:t.net_amount,status:t.status??"pending",address:t.address,from_address:t.from_address,to_address:t.to_address,tx_hash:t.tx_hash,confirmations:t.confirmations,required_confirmations:t.required_confirmations,created_at:t.created_at,updated_at:t.updated_at,completed_at:t.completed_at??t.confirmed_at})),v=e.z.object({deposits:e.z.array(k).optional(),count:e.z.number().optional()}).transform(t=>({deposits:t.deposits??[],total:t.count??t.deposits?.length??0})),S=e.z.union([e.z.array(k).transform(t=>({withdrawals:t,count:t.length})),e.z.object({data:e.z.array(k),count:e.z.number().optional()}).transform(t=>({withdrawals:t.data,count:t.count})),e.z.object({withdrawals:e.z.array(k),count:e.z.number().optional()}).transform(t=>({withdrawals:t.withdrawals,count:t.count}))]).transform(t=>({withdrawals:t.withdrawals,total:t.count??t.withdrawals.length})),E=e.z.object({asset:e.z.string(),amount:i,amount_usd:i,fee:s,fee_usd:i,tier_fee_percent:i,vip_discount:i,final_fee_percent:i,net_amount:i,min_fee_usd:i,min_amount:i,min_amount_usd:i,max_amount:i,tier_description:e.z.string().optional(),vip_level:e.z.number().optional(),liquidity_ready:e.z.boolean().optional(),liquidity_reason:e.z.string().optional(),original_fee:i,voucher_discount:i,voucher_code:e.z.string().optional(),voucher_applied:e.z.boolean().optional(),voucher_error:e.z.string().optional()}).transform(t=>({asset:t.asset,amount:t.amount,amount_usd:t.amount_usd,fee:t.fee,fee_usd:t.fee_usd,tier_fee_percent:t.tier_fee_percent,vip_discount:t.vip_discount,final_fee_percent:t.final_fee_percent,net_amount:t.net_amount,min_fee_usd:t.min_fee_usd,min_amount:t.min_amount,min_amount_usd:t.min_amount_usd,max_amount:t.max_amount,tier_description:t.tier_description,vip_level:t.vip_level,liquidity_ready:t.liquidity_ready,liquidity_reason:t.liquidity_reason,original_fee:t.original_fee,voucher_discount:t.voucher_discount,voucher_code:t.voucher_code||void 0,voucher_applied:t.voucher_applied,voucher_error:t.voucher_error||void 0})),T=e.z.union([e.z.string(),e.z.number()]).transform(t=>String(t)).optional(),A=e.z.object({total_value:T,total_value_usd:T,total_invested:T,today_pnl_usd:T,today_pnl_percentage:T,daily_pnl:T,daily_pnl_pct:T,weekly_pnl:T,weekly_pnl_pct:T,monthly_pnl:T,monthly_pnl_pct:T,all_time_pnl:T,all_time_pnl_pct:T,unrealized_pnl:T,unrealized_pnl_pct:T,change_24h:T,change_24h_percent:T,total_pnl:T,total_deposits:T,total_withdrawals:T,updated_at:e.z.string().optional()}),j=e.z.union([e.z.object({stats:A}).transform(t=>t.stats),A]),x=e.z.object({timestamp:e.z.union([e.z.string(),e.z.number()]),value:i}).transform(t=>({timestamp:t.timestamp,value:t.value,value_usd:t.value})),F=e.z.union([e.z.object({history:e.z.array(x),seeding:e.z.boolean().optional()}).transform(t=>({points:t.history,seeding:t.seeding??!1})),e.z.array(x).transform(t=>({points:t,seeding:!1}))]),P=e.z.object({asset:e.z.string()}).passthrough().transform(t=>t),L=(0,r.list)(P),q=e.z.object({}).passthrough().transform(t=>t),G=e.z.union([e.z.array(q),e.z.record(e.z.string(),q).transform(t=>Object.values(t))]).transform(t=>Array.isArray(t)?t:[]),N=(0,r.list)(e.z.object({timestamp:e.z.union([e.z.string(),e.z.number()]).optional(),currentValueUsd:i}).transform(t=>({timestamp:t.timestamp??"",value_usd:t.currentValueUsd}))),$=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),type:e.z.string().optional(),asset:e.z.string().optional(),amount:i,balance_after:i,reference_id:e.z.string().optional(),description:e.z.string().optional(),created_at:e.z.string().optional()}).transform(t=>({id:t.id,type:t.type??"",asset:t.asset??"",amount:t.amount??"0",balance_after:t.balance_after??"0",reference_id:t.reference_id,description:t.description,created_at:t.created_at??""})),I=e.z.object({transactions:e.z.array($).nullable().optional(),pagination:e.z.object({total:e.z.number().optional(),page:e.z.number().optional(),limit:e.z.number().optional(),total_pages:e.z.number().optional()}).optional()}).transform(t=>({transactions:t.transactions??[],total:t.pagination?.total??0,page:t.pagination?.page??1,totalPages:t.pagination?.total_pages??1})),O=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String)}).passthrough().transform(t=>t),R=e.z.object({conversions:e.z.array(O).optional(),total:e.z.number().optional()}).transform(t=>({conversions:t.conversions??[],total:t.total??t.conversions?.length??0})),C=e.z.object({pairs:e.z.array(e.z.object({from_asset:e.z.string(),to_asset:e.z.string(),min_amount:s,max_amount:s,is_enabled:e.z.boolean().optional()})).optional()}).transform(t=>(t.pairs??[]).map(t=>({from_asset:t.from_asset,to_asset:t.to_asset,min_amount:t.min_amount,max_amount:t.max_amount,is_enabled:!1!==t.is_enabled})));function D(t,e=8){let a=parseFloat(t);return isNaN(a)||0===a?"0.00":a<1e-8?"< 0.00000001":a.toFixed(e).replace(/\.?0+$/,"")}function U(t){let e=parseFloat(t);return isNaN(e)?"$0.00":new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(e)}function M(t,e=!1){if(null==t||""===t)return null;let a=parseFloat(t);if(isNaN(a))return null;let r=a>0,n=a<0,i=r?"+":n?"-":"";return{value:e?`${i}${Math.abs(a).toFixed(2)}%`:`${i}${(0,o.formatCurrency)(Math.abs(a),(0,o.getPreferredCurrency)())}`,isPositive:r,isNegative:n}}function W(t){return({spot:"Spot",funding:"Funding",earn:"Earn",futures:"Futures",margin:"Margin",bot:"Trading Bots"})[t]}function B(t){return({spot:"common.spot",funding:"common.funding",earn:"common.earn",futures:"common.futures",margin:"common.margin",bot:"common.tradingBots"})[t]}function H(t){return({spot:"common.forSpotTrading",funding:"common.forDepositsAndWithdrawals",earn:"common.forStakingAndSavings",futures:"common.forFuturesTrading",margin:"common.forMarginTrading",bot:"common.forTradingBots"})[t]}t.s(["convertService",0,{async getQuote(t){let e=await a.api.post(n.API_ENDPOINTS.CONVERT_QUOTE,t);
1if(!e.success||!e.data)throw Error(e.message||"Failed to get quote");return e.data.quote},async execute(t){let e=await a.api.post(n.API_ENDPOINTS.CONVERT_EXECUTE,t);if(!e.success||!e.data)throw Error(e.message||"Failed to execute conversion");return e.data.conversion},async getHistory(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get(n.API_ENDPOINTS.CONVERT_HISTORY+e,R,"GET /convert/history")},getPairs:async()=>r.http.get(n.API_ENDPOINTS.CONVERT_PAIRS,C,"GET /convert/pairs")},"depositService",0,{async getDeposits(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get(n.API_ENDPOINTS.DEPOSITS+e,v,"GET /deposits")}},"formatBalance",()=>D,"formatPnL",()=>M,"formatUSD",()=>U,"getWalletTypeDescriptionKey",()=>H,"getWalletTypeLabel",()=>W,"getWalletTypeLabelKey",()=>B,"ledgerService",0,{async getTransactions(t){let e=new URLSearchParams;t?.type&&e.set("type",t.type),e.set("page",String(t?.page??1)),e.set("limit",String(t?.limit??30));let a=e.toString();return r.http.get(n.API_ENDPOINTS.WALLET_TRANSACTIONS+(a?`?${a}`:""),I,"GET /wallet/transactions")}},"portfolioService",0,{async getStats(){let[t,e]=await Promise.all([r.http.get(n.API_ENDPOINTS.PORTFOLIO_STATS,j,"GET /portfolio/stats"),a.api.get(`${n.API_ENDPOINTS.PORTFOLIO_STATS.replace("/stats","/pnl")}`).catch(()=>null)]),o=e?.success&&e?.data?e.data:{},i=o.total_trades||0,s=o.winning_trades||0,l=i>0?(s/i*100).toFixed(1):"0",_=t.all_time_pnl??o.total_pnl??t.total_pnl,p=parseFloat(t.total_invested||"0"),c=parseFloat(_||"0"),d=t.all_time_pnl_pct??(p>0?(c/p*100).toFixed(2):void 0);return{total_value_usd:t.total_value_usd??t.total_value,today_pnl_usd:t.today_pnl_usd,today_pnl_percentage:t.today_pnl_percentage,unrealized_pnl:t.unrealized_pnl,unrealized_pnl_pct:t.unrealized_pnl_pct,total_invested:t.total_invested,total_value:t.total_value,change_24h:t.change_24h,change_24h_percent:t.change_24h_percent,total_pnl:_,updated_at:t.updated_at,daily_pnl:t.daily_pnl??t.today_pnl_usd,daily_pnl_pct:t.daily_pnl_pct??t.today_pnl_percentage,weekly_pnl:t.weekly_pnl,weekly_pnl_pct:t.weekly_pnl_pct,monthly_pnl:t.monthly_pnl,monthly_pnl_pct:t.monthly_pnl_pct,all_time_pnl:_,all_time_pnl_pct:d,total_deposits:t.total_deposits,total_withdrawals:t.total_withdrawals,total_trades:i,winning_trades:s,losing_trades:o.losing_trades||0,win_rate:l}},async getHistory(t){let e=t?.period?`?period=${t.period}`:"";return r.http.get(n.API_ENDPOINTS.PORTFOLIO_HISTORY+e,F,"GET /portfolio/history")},getWalletPnL:async t=>r.http.get(n.API_ENDPOINTS.WALLET_PNL(t),L,"GET /wallet/:type/pnl"),getPnLSummary:async()=>r.http.get(n.API_ENDPOINTS.WALLET_PNL_SUMMARY,G,"GET /wallet/pnl/summary"),getPnLHistory:async(t,e)=>r.http.get(n.API_ENDPOINTS.WALLET_PNL_HISTORY(t,e),N,"GET /wallet/:type/:asset/pnl/history"),getTopGainers:async t=>r.http.get(n.API_ENDPOINTS.WALLET_PNL_TOP_GAINERS(t),L,"GET /wallet/:type/pnl/top-gainers"),getTopLosers:async t=>r.http.get(n.API_ENDPOINTS.WALLET_PNL_TOP_LOSERS(t),L,"GET /wallet/:type/pnl/top-losers"),async refreshPnL(){let t=await a.api.post(n.API_ENDPOINTS.WALLET_PNL_REFRESH);if(!t.success)throw Error(t.message||"Failed to refresh PnL")}},"walletService",0,{getOverview:async()=>r.http.get(n.API_ENDPOINTS.WALLET_OVERVIEW,_,"GET /wallets/overview"),getWallets:async()=>r.http.get(n.API_ENDPOINTS.WALLETS,p,"GET /wallets"),getTotalBalance:async()=>r.http.get(n.API_ENDPOINTS.WALLET_TOTAL_BALANCE,c,"GET /wallets/total-balance"),getWallet:async(t,e)=>r.http.get(n.API_ENDPOINTS.WALLET_BY_ASSET(t,e),d,"GET /wallets/:asset/:network"),getWalletBalance:async(t,e)=>r.http.get(n.API_ENDPOINTS.WALLET_BALANCE(t,e),u,"GET /wallets/:asset/:network/balance"),getAllBalances:async(t,e)=>r.http.get(n.API_ENDPOINTS.WALLET_ALL_BALANCES(t,e),m,"GET /wallets/:asset/:network/all-balances"),getDepositAddress:async(t,e)=>r.http.get(n.API_ENDPOINTS.WALLET_ADDRESS(t,e),g,"GET /wallets/:asset/:network/address"),async createWallet(t,e){let r=await a.api.post(n.API_ENDPOINTS.WALLET_CREATE,{asset:t,network:e});if(!r.success||!r.data)throw Error(r.message||"Failed to create wallet");let o=r.data;return o.wallet||o},async transfer(t){let e=await a.api.post(n.API_ENDPOINTS.WALLET_TRANSFER,t);
1if(!e.success||!e.data)throw Error(e.message||"Failed to transfer");return e.data},async validateAddress(t,e){let r=await a.api.post(n.API_ENDPOINTS.WALLET_VALIDATE_ADDRESS,{address:t,network:e});if(!r.success||!r.data)throw Error(r.message||"Failed to validate address");let o=r.data;return{valid:o.valid,address:o.address,network:o.network}},getNetworks:async()=>r.http.get(n.API_ENDPOINTS.WALLET_NETWORKS,y,"GET /wallets/networks"),getTokens:async()=>r.http.get(n.API_ENDPOINTS.WALLET_TOKENS,b,"GET /wallets/tokens"),getTokenNetworks:async t=>r.http.get(n.API_ENDPOINTS.WALLET_TOKEN_NETWORKS(t),z,"GET /wallets/tokens/by-symbol/:symbol/networks"),getWithdrawable:async t=>r.http.get(n.API_ENDPOINTS.WALLET_WITHDRAWABLE(t),h,"GET /wallets/:asset/withdrawable"),getBlockchainBalances:async()=>r.http.get(n.API_ENDPOINTS.WALLET_BLOCKCHAIN_BALANCES,f,"GET /wallets/blockchain-balances")},"withdrawalService",0,{async getWithdrawals(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get(n.API_ENDPOINTS.WITHDRAWALS+e,S,"GET /withdrawals")},async getFee(t,e,a,o){let i={asset:t,network:e};a&&(i.amount=a),o&&(i.voucher_id=o);let s="?"+new URLSearchParams(i).toString();return r.http.get(n.API_ENDPOINTS.WITHDRAWAL_FEE+s,E,"GET /withdrawals/fee")},async createWithdrawal(t){let e=await a.api.post(n.API_ENDPOINTS.WITHDRAWALS,t);if(!e.success||!e.data)throw Error(e.message||"Failed to create withdrawal");return e.data},async beginPasskeyWithdrawal(t){let e=await a.api.post(n.API_ENDPOINTS.WITHDRAWAL_PASSKEY_BEGIN,t);if(!e.success||!e.data)throw Error(e.message||"Failed to start passkey verification");return{session_id:e.session_id??"",data:e.data}},async finishPasskeyWithdrawal(t,e){let r=await a.api.post(n.API_ENDPOINTS.WITHDRAWAL_PASSKEY_FINISH,{session_id:t,assertion:e});if(!r.success||!r.data)throw Error(r.message||"Failed to complete passkey verification");return r.data}}],847100);let K="/margin/settings",V=e.z.union([e.z.string(),e.z.number()]).transform(String);function Y(t,e){let a=parseFloat(t)-parseFloat(e);if(!Number.isFinite(a))return"0";let r=a.toFixed(8).replace(/\.?0+$/,"");return"-0"===r||""===r?"0":r}function J(t){return{id:String(t.id??""),asset:String(t.borrowed_asset??t.asset??""),principal:String(t.borrowed_amount??t.principal??"0"),interest:String(t.accrued_interest??t.interest??"0"),interest_rate:String(t.interest_rate??"0"),status:t.status??"active",created_at:String(t.created_at??t.borrowed_at??""),updated_at:String(t.updated_at??"")}}let Q=e.z.object({id:e.z.union([e.z.string(),e.z.number()]),borrowed_asset:e.z.string().optional(),asset:e.z.string().optional(),borrowed_amount:V.optional(),principal:V.optional(),accrued_interest:V.optional(),interest:V.optional(),interest_rate:V.optional(),status:e.z.string().optional(),created_at:e.z.string().optional(),borrowed_at:e.z.string().optional(),updated_at:e.z.string().optional()}).transform(J),X=e.z.union([e.z.object({loans:e.z.array(Q)}).transform(t=>({loans:t.loans,total:t.loans.length})),e.z.array(Q).transform(t=>({loans:t,total:t.length}))]),Z=e.z.union([e.z.object({loan:Q}).transform(t=>t.loan),Q]),tt=e.z.union([e.z.object({rate:e.z.object({asset:e.z.string().optional(),daily_rate:V.optional(),annual_rate:V.optional()})}),e.z.object({asset:e.z.string().optional(),daily_rate:V.optional(),annual_rate:V.optional()})]);function te(t){return{id:String(t.id??""),loan_id:String(t.loan_id??""),asset:String(t.asset??""),amount:String(t.paid_amount??t.interest_amount??t.amount??"0"),type:t.type??(null!=t.paid_amount?"paid":"accrued"),created_at:String(t.created_at??t.paid_at??t.payment_date??"")}}let ta=e.z.object({id:e.z.union([e.z.string(),e.z.number()]),loan_id:e.z.union([e.z.string(),e.z.number()]).optional(),asset:e.z.string().optional(),interest_amount:V.optional(),paid_amount:V.optional(),amount:V.optional(),type:e.z.string().optional(),created_at:e.z.string().optional(),paid_at:e.z.string().optional(),payment_date:e.z.string().optional()}).transform(te),tr=e.z.object({id:e.z.union([e.z.string(),e.z.number()]),action_type:e.z.string().optional(),type:e.z.string().optional(),asset:e.z.string().optional(),amount:V.optional(),status:e.z.string().optional(),created_at:e.z.string().optional()}).transform(function(t){return{id:String(t.id??""),type:t.action_type??t.type??"",asset:String(t.asset??""),amount:String(t.amount??"0"),status:"completed"===t.status?"success":"failed"===t.status?"failed":t.status??"success",created_at:String(t.created_at??"")}});function tn(t){return{loan_id:String(t.loan_id??""),asset:String(t.collateral_asset??t.asset??""),current_price:String(t.current_collateral_price??t.current_price??"0"),liquidation_price:String(t.liquidation_price??"0"),distance_percent:String(t.percentage_to_liquidation??t.distance_percent??"0")}}let to=e.z.object({loan_id:e.z.union([e.z.string(),e.z.number()]).optional(),collateral_asset:e.z.string().optional(),asset:e.z.string().optional(),current_collateral_price:V.optional(),current_price:V.optional(),liquidation_price:V.optional(),percentage_to_liquidation:V.optional(),distance_percent:V.optional()}),ti=e.z.object({asset:e.z.string().optional(),is_borrowable:e.z.boolean().optional(),is_collateral:e.z.boolean().optional(),collateral_ratio:V.optional(),max_leverage:V.optional(),max_leverage_cross:V.optional(),min_borrow:V.optional(),max_borrow:V.optional(),max_borrow_amount:V.optional(),daily_interest_rate:V.optional()}).transform(function(t){return{asset:String(t.asset??""),is_borrowable:!!t.is_borrowable,is_collateral:!!t.is_collateral,collateral_ratio:String(t.collateral_ratio??"0"),max_leverage:String(t.max_leverage??t.max_leverage_cross??""),min_borrow:String(t.min_borrow??""),max_borrow:String(t.max_borrow??t.max_borrow_amount??""),daily_interest_rate:String(t.daily_interest_rate??"")}});function ts(t){let e=parseFloat(t);return isNaN(e)?"0.00%":`${(100*e).toFixed(4)}%`}t.s(["formatInterestRate",()=>ts,"marginService",0,{async getAccount(t="cross_margin",a){let n=e.z.object({account:e.z.unknown().optional(),wallet_balances:e.z.array(e.z.unknown()).optional(),assets:e.z.array(e.z.unknown()).optional()}).passthrough().transform(t=>{let e=t.account??t,a=Array.isArray(t.wallet_balances)?t.wallet_balances:Array.isArray(t.assets)?t.assets:[],r=String(e.total_asset_value??e.total_asset_of_btc??"0"),n=String(e.total_liability??e.total_liability_of_btc??"0"),o=Y(r,n);return{total_asset_of_btc:r,total_liability_of_btc:n,total_net_asset_of_btc:null!=e.total_net_asset_value?String(e.total_net_asset_value):o,margin_level:String(e.margin_level??"0"),margin_ratio:String(e.margin_ratio??e.maintenance_margin??"0"),trade_enabled:"liquidating"!==e.status,transfer_enabled:!e.restriction_active,borrow_enabled:!e.restriction_active,assets:a.map(t=>({asset:t.asset,free:String(t.free_amount??t.free??"0"),locked:String(t.locked_amount??t.locked??"0"),borrowed:String(t.borrowed_amount??t.borrowed??"0"),interest:String(t.interest_accrued??t.interest??"0"),net_asset:String(t.net_equity??t.net_asset??"0"),symbol:t.symbol??void 0}))}}),o=`?account_type=${encodeURIComponent(t)}${a?`&symbol=${encodeURIComponent(a)}`:""}`;return r.http.get("/margin/account"+o,n,"GET /margin/account")},async transferToMargin(t){let e={asset:t.asset,amount:t.amount,account_type:t.account_type??"cross_margin",network:t.network??"unified",from_wallet:t.from_wallet??"spot",...t.symbol?{symbol:t.symbol}:{}},r=await a.api.post("/margin/transfer/to-margin",e);if(!r.success)throw Error(r.message||"Failed to transfer to margin");return r.data||{success:!0,message:"Transfer successful"}},async transferFromMargin(t){let e={asset:t.asset,amount:t.amount,account_type:t.account_type??"cross_margin",network:t.network??"unified",to_wallet:t.to_wallet??"spot",...t.symbol?{symbol:t.symbol}:{}},r=await a.api.post("/margin/transfer/from-margin",e);if(!r.success)throw Error(r.message||"Failed to transfer from margin");return r.data||{success:!0,message:"Transfer successful"}},async borrow(t){let e={account_type:t.account_type??"cross_margin",borrowed_asset:t.asset,borrowed_amount:t.amount,...t.symbol?{symbol:t.symbol}:{}},r=await a.api.post("/margin/borrow",e);if(!r.success||!r.data)throw Error(r.message||"Failed to borrow");return r.data.loan??r.data},async repay(t){let e={loan_id:t.loan_id,...t.amount?{repay_amount:t.amount}:{},network:t.network??"unified"},r=await a.api.post("/margin/repay",e);if(!r.success)throw Error(r.message||"Failed to repay");return r.data??{repaid_amount:"",remaining_debt:""}},async repayInterestOnly(t,e="unified"){let r=await a.api.post("/margin/repay/interest-only",{loan_id:t,network:e});if(!r.success)throw Error(r.message||"Failed to repay interest")},async getLoans(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get("/margin/loans"+e,X,"GET /margin/loans")},getLoan:async t=>{let e;return r.http.get((e=t,`/margin/loans/${e}`),Z,"GET /margin/loans/:id")},async getInterestRate(t){let e,a=await r.http.get((e=t,`/margin/interest-rate/${e}`),tt,"GET /margin/interest-rate/:asset"),n=a.rate??a;return{asset:t,daily_rate:String(n.daily_rate??"0"),yearly_rate:String(n.annual_rate??""),borrow_limit:""}},async getInterestPayments(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"",a=await r.http.get("/margin/interest/payments"+e,(0,r.list)(ta),"GET /margin/interest/payments");return{payments:a,total:a.length}},getInterestPaymentsByLoan:async t=>{let e;return r.http.get((e=t,`/margin/interest/payments/loan/${e}`),(0,r.list)(ta),"GET /margin/interest/payments/loan/:id")},async getTotalInterest(){let t=e.z.object({total:V.optional(),total_paid:V.optional(),total_accrued:V.optional()}).transform(t=>({total_paid:String(t.total_paid??t.total??"0"),total_accrued:String(t.total_accrued??"")}));return r.http.get("/margin/interest/total",t,"GET /margin/interest/total")},async getMaxBorrowable(t,a="cross_margin",n,o){let i=n??t,s=`?account_type=${encodeURIComponent(a)}&borrowed_asset=${encodeURIComponent(t)}&collateral_asset=${encodeURIComponent(i)}${o?`&symbol=${encodeURIComponent(o)}`:""}`,l=e.z.object({data:e.z.object({max_borrowable_amount:V.optional()}).passthrough().optional(),max_borrowable_amount:V.optional(),amount:V.optional()}).transform(e=>({asset:t,amount:String((e.data??e).max_borrowable_amount??e.amount??"0")}));
1return r.http.get("/margin/max-borrowable"+s,l,"GET /margin/max-borrowable")},async getMarginRatio(t="cross_margin",a){let n=e.z.object({data:e.z.unknown().optional()}).passthrough().transform(t=>t.data??t),o=`?account_type=${encodeURIComponent(t)}${a?`&symbol=${encodeURIComponent(a)}`:""}`;return r.http.get("/margin/margin-ratio"+o,n,"GET /margin/margin-ratio")},async getRiskScore(t="cross_margin",a){let n=e.z.object({data:e.z.unknown().optional()}).passthrough().transform(t=>t.data??t),o=`?account_type=${encodeURIComponent(t)}${a?`&symbol=${encodeURIComponent(a)}`:""}`;return r.http.get("/margin/risk-score"+o,n,"GET /margin/risk-score")},async getSettings(t="cross_margin",a){let n=e.z.object({data:e.z.unknown().optional()}).passthrough().transform(t=>t.data??t),o=`?account_type=${encodeURIComponent(t)}${a?`&symbol=${encodeURIComponent(a)}`:""}`;return r.http.get(K+o,n,"GET /margin/settings")},async updateSettings(t){let e={account_type:t.account_type,...t.symbol?{symbol:t.symbol}:{},auto_borrow_enabled:t.auto_borrow_enabled,...null!=t.max_auto_borrow_amount&&""!==t.max_auto_borrow_amount?{max_auto_borrow_amount:t.max_auto_borrow_amount}:{},auto_repay_enabled:t.auto_repay_enabled},r=await a.api.put(K,e);if(!r.success||!r.data)throw Error(r.message||"Failed to update margin settings");return r.data},async getAutoActions(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"",a=await r.http.get("/margin/auto-actions"+e,(0,r.list)(tr),"GET /margin/auto-actions");return{actions:a,total:a.length}},async getAutoActionStats(){let t=e.z.union([e.z.number(),e.z.string()]).transform(Number),a=e.z.object({total_auto_borrows:t.optional(),total_auto_repays:t.optional(),total_margin_calls:t.optional(),total_liquidations:t.optional()}).passthrough().transform(t=>({total_auto_borrows:t.total_auto_borrows??0,total_auto_repays:t.total_auto_repays??0,total_margin_calls:t.total_margin_calls??0,total_liquidations:t.total_liquidations??0}));return r.http.get("/margin/auto-actions/stats",a,"GET /margin/auto-actions/stats")},getAssetsConfig:async()=>r.http.get("/margin/assets/config",(0,r.list)(ti),"GET /margin/assets/config"),getAssetConfig:async t=>{let e;return r.http.get((e=t,`/margin/assets/config/${e}`),ti,"GET /margin/assets/config/:asset")},getBorrowableAssets:async()=>r.http.get("/margin/assets/borrowable",(0,r.list)(ti),"GET /margin/assets/borrowable"),getCollateralAssets:async()=>r.http.get("/margin/assets/collateral",(0,r.list)(ti),"GET /margin/assets/collateral"),async getMaxLeverage(t){let e,r=await a.api.get((e=t,`/margin/assets/${e}/max-leverage`));if(!r.success)throw Error(r.message||"Failed to get max leverage");let n=r.max_leverage??r.data?.max_leverage;if(null==n)throw Error(r.message||"Failed to get max leverage");return{max_leverage:String(n)}},async getLiquidationPrice(t){let e,a=to.transform(tn);return r.http.get((e=t,`/margin/liquidation/price/${e}`),a,"GET /margin/liquidation/price/:id")},async getLiquidationProjection(t){let e,a=to.extend({projected_interest:V.optional(),interest_projection:V.optional()}).transform(t=>{let e=tn(t);return{current:e,projected:e,interest_projection:String(t.projected_interest??t.interest_projection??"0")}});return r.http.get((e=t,`/margin/liquidation/price/${e}/projection`),a,"GET /margin/liquidation/price/:id/projection")},async getLiquidationPercentage(){let t=e.z.object({safety_percentage:V.optional(),percentage:V.optional()}).passthrough().transform(t=>({percentage:String(t.percentage??t.safety_percentage??"0")}));return r.http.get("/margin/liquidation/percentage",t,"GET /margin/liquidation/percentage")},async getLiquidationRisk(){let t=e.z.object({overall_risk:e.z.string().optional(),risk_level:e.z.string().optional()}).passthrough().transform(t=>{let e=String(t.overall_risk??t.risk_level??"safe"),a="critical"===e||"high"===e?"critical"===e?"critical":"danger":"medium"===e?"warning":"safe"===e||"warning"===e||"danger"===e?e:"safe";return{total_debt_usd:String(t.total_debt_usd??t.total_debt_value_usd??"0"),total_collateral_usd:String(t.total_collateral_usd??t.total_collateral_value_usd??"0"),margin_ratio:String(t.margin_ratio??t.current_margin_level??"0"),liquidation_threshold:String(t.liquidation_threshold??t.maintenance_margin_ratio??"0"),estimated_liquidation_price:String(t.estimated_liquidation_price??"0"),risk_level:a}});return r.http.get("/margin/liquidation/risk",t,"GET /margin/liquidation/risk")},async getDashboard(){let t=e.z.object({account_info:e.z.unknown().optional(),account:e.z.unknown().optional(),active_loans:e.z.array(e.z.unknown()).optional(),recent_interest_payments:e.z.array(e.z.unknown()).optional(),liquidation_risk:e.z.unknown().optional(),risk:e.z.unknown().optional(),settings:e.z.unknown().optional()}).passthrough().transform(t=>{let e=t.account_info??t.account??{},a=String(e.total_asset_value??e.total_asset_of_btc??"0"),r=String(e.total_liability??e.total_liability_of_btc??"0"),n=Y(a,r),o=Array.isArray(t.wallet_balances)?t.wallet_balances:[],i={total_asset_of_btc:a,total_liability_of_btc:r,total_net_asset_of_btc:null!=e.total_net_asset_value?String(e.total_net_asset_value):n,margin_level:String(e.margin_level??"0"),margin_ratio:String(e.margin_ratio??e.maintenance_margin??"0"),trade_enabled:"liquidating"!==e.status,transfer_enabled:!e.restriction_active,borrow_enabled:!e.restriction_active,assets:o.map(t=>({asset:t.asset,free:String(t.free_amount??t.free??"0"),locked:String(t.locked_amount??t.locked??"0"),borrowed:String(t.borrowed_amount??t.borrowed??"0"),interest:String(t.interest_accrued??t.interest??"0"),net_asset:String(t.net_equity??t.net_asset??"0")}))},s=t.liquidation_risk??t.risk??{},l=String(s.overall_risk??s.risk_level??"safe"),_="critical"===l?"critical":"high"===l?"danger":"medium"===l?"warning":"safe"===l||"warning"===l||"danger"===l?l:"safe",p={total_debt_usd:String(s.total_debt_usd??s.total_debt_value_usd??"0"),total_collateral_usd:String(s.total_collateral_usd??s.total_collateral_value_usd??"0"),margin_ratio:String(s.margin_ratio??s.current_margin_level??"0"),liquidation_threshold:String(s.liquidation_threshold??s.maintenance_margin_ratio??"0"),estimated_liquidation_price:String(s.estimated_liquidation_price??"0"),risk_level:_},c=t.settings??{},d={account_type:c.account_type??"cross_margin",auto_borrow_enabled:!!c.auto_borrow_enabled,auto_repay_enabled:!!c.auto_repay_enabled,max_auto_borrow_amount:c.max_auto_borrow_amount??null};return{account:i,active_loans:(Array.isArray(t.active_loans)?t.active_loans:[]).map(J),recent_interest_payments:(Array.isArray(t.recent_interest_payments)?t.recent_interest_payments:[]).map(te),risk:p,settings:d}});return r.http.get("/margin/dashboard",t,"GET /margin/dashboard")}}],414526);let tl="/options/orders",t_=e.z.union([e.z.string(),e.z.number()]).transform(String),tp=e.z.object({symbol:e.z.string(),underlying_asset:e.z.string().nullish(),underlying:e.z.string().nullish(),quote_asset:e.z.string().nullish(),option_type:e.z.string().nullish(),exercise_style:e.z.string().nullish(),option_style:e.z.string().nullish(),strike_price:t_.nullish(),expiration_date:e.z.string().nullish(),expiry_date:e.z.string().nullish(),contract_size:t_.nullish(),tick_size:t_.nullish(),min_quantity:t_.nullish(),status:e.z.string().nullish(),id:e.z.string().nullish(),mark_price:t_.nullish(),index_price:t_.nullish(),underlying_price:t_.nullish(),bid_price:t_.nullish(),ask_price:t_.nullish(),last_price:t_.nullish(),has_quote:e.z.boolean().nullish(),mark_price_source:e.z.string().nullish(),open_interest:t_.nullish(),volume_24h:t_.nullish(),bid_iv:t_.nullish(),ask_iv:t_.nullish(),mark_iv:t_.nullish(),implied_volatility:t_.nullish(),delta:t_.nullish(),gamma:t_.nullish(),theta:t_.nullish(),vega:t_.nullish()}),tc=e.z.object({id:t_,user_id:t_.nullish(),symbol:e.z.string().nullish(),side:e.z.string().nullish(),type:e.z.string().nullish(),status:e.z.string().nullish(),price:t_.nullish(),quantity:t_.nullish(),filled_quantity:t_.nullish(),executed_quantity:t_.nullish(),average_price:t_.nullish(),avg_price:t_.nullish(),premium:t_.nullish(),reduce_only:e.z.boolean().nullish(),time_in_force:e.z.string().nullish(),created_at:e.z.string().nullish(),updated_at:e.z.string().nullish(),contract:e.z.looseObject({symbol:e.z.string().nullish()}).nullish()}),td=e.z.object({id:t_,symbol:e.z.string().nullish(),position_side:e.z.string().nullish(),side:e.z.string().nullish(),quantity:t_.nullish(),entry_price:t_.nullish(),average_price:t_.nullish(),avg_entry_price:t_.nullish(),mark_price:t_.nullish(),current_price:t_.nullish(),unrealized_pnl:t_.nullish(),realized_pnl:t_.nullish(),total_premium_paid:t_.nullish(),premium_paid:t_.nullish(),delta:t_.nullish(),gamma:t_.nullish(),theta:t_.nullish(),vega:t_.nullish(),created_at:e.z.string().nullish(),updated_at:e.z.string().nullish(),contract:e.z.looseObject({symbol:e.z.string().nullish()}).nullish()});function tu(t){if(null==t||""===t)return null;let e=parseFloat(t);return Number.isFinite(e)&&e>0?t:null}
1let tm=tp.transform(function(t){return{id:t.id??"",symbol:t.symbol,underlying:t.underlying??t.underlying_asset??"",quote_asset:t.quote_asset??"USDT",option_type:"put"===String(t.option_type??"").toLowerCase()?"put":"call",option_style:"american"===String(t.option_style??t.exercise_style??"european").toLowerCase()?"american":"european",strike_price:t.strike_price??"",expiry_date:t.expiry_date??t.expiration_date??"",contract_size:t.contract_size??"",tick_size:t.tick_size??"",min_quantity:t.min_quantity??"",status:"halt"===t.status||"expired"===t.status?t.status:"trading",mark_price:t.mark_price??"",index_price:t.index_price??t.underlying_price??"",bid_price:!1===t.has_quote?null:tu(t.bid_price),ask_price:!1===t.has_quote?null:tu(t.ask_price),has_quote:t.has_quote??(null!==tu(t.bid_price)||null!==tu(t.ask_price)),mark_price_source:t.mark_price_source??"",open_interest:t.open_interest??"",volume_24h:t.volume_24h??"",bid_iv:t.bid_iv??"",ask_iv:t.ask_iv??"",mark_iv:t.mark_iv??t.implied_volatility??"",delta:t.delta??"",gamma:t.gamma??"",theta:t.theta??"",vega:t.vega??""}}),tg=tc.transform(function(t){return{id:t.id,user_id:t.user_id??"",symbol:t.symbol??t.contract?.symbol??"",side:"sell"===String(t.side??"").toLowerCase()?"sell":"buy",type:"market"===String(t.type??"").toLowerCase()?"market":"limit",status:t.status??"new",price:t.price??"0",quantity:t.quantity??"0",filled_quantity:t.filled_quantity??t.executed_quantity??"0",avg_price:t.avg_price??t.average_price??"0",premium:t.premium??"0",reduce_only:!!t.reduce_only,time_in_force:t.time_in_force??"",created_at:t.created_at??"",updated_at:t.updated_at??""}}),ty=td.transform(function(t){let e=String(t.position_side??t.side??"").toLowerCase();return{id:t.id,symbol:t.symbol??t.contract?.symbol??"",side:"short"===e?"short":"long",quantity:t.quantity??"0",avg_entry_price:t.avg_entry_price??t.average_price??t.entry_price??"0",mark_price:t.mark_price??t.current_price??"0",unrealized_pnl:t.unrealized_pnl??"0",realized_pnl:t.realized_pnl??"0",premium_paid:t.premium_paid??t.total_premium_paid??"0",settlement_value:"0",delta:t.delta??"0",gamma:t.gamma??"0",theta:t.theta??"0",vega:t.vega??"0",created_at:t.created_at??"",updated_at:t.updated_at??""}});function tb(t,a){return e.z.union([e.z.object({[t]:e.z.array(a)}).transform(e=>e[t]),(0,r.list)(a)])}function tz(t){let e=parseFloat(t);return isNaN(e)?"0.00%":`${(100*e).toFixed(2)}%`}t.s(["formatIV",()=>tz,"optionsPublicService",0,{async getContracts(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get("/options/contracts"+e,tb("contracts",tm),"GET /options/contracts")},getContract:async t=>{let a;return r.http.get((a=t,`/options/contracts/${a}`),e.z.union([e.z.object({contract:e.z.unknown(),premium:e.z.unknown().optional()}).transform(t=>{let e=t.contract??{};return{...t.premium??{},...e}}),e.z.unknown().transform(t=>t??{})]).pipe(tm),"GET /options/contracts/:symbol")},async getChain(t,a){let n=a?`/${encodeURIComponent(t)}?expiration=${encodeURIComponent(a)}`:`/${encodeURIComponent(t)}`;return r.http.get("/options/chain"+n,e.z.object({underlying:e.z.string().optional(),chain:e.z.record(e.z.string(),e.z.record(e.z.string(),e.z.array(tm))).optional()}).transform(e=>{let a=e.underlying??t;return Object.entries(e.chain??{}).map(([t,e])=>({underlying:a,expiry_date:t,calls:e.call??e.CALL??[],puts:e.put??e.PUT??[]}))}),"GET /options/chain/:underlying")}},"optionsService",0,{async placeOrder(t){let a={...t,side:t.side.toUpperCase(),type:t.type.toUpperCase()};return r.http.post(tl,a,e.z.union([e.z.object({order:tg}).transform(t=>t.order),tg]),"POST /options/orders")},cancelOrder:async t=>{let e;return r.http.del((e=t,`/options/orders/${e}`),r.ok,"DELETE /options/orders/:id")},async getOpenOrders(t){var a;let n=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get(tl+n,(a="orders",e.z.union([e.z.object({[a]:e.z.array(tg),total:e.z.number().optional(),count:e.z.number().optional()}).transform(t=>{let e=t[a]??[],r=t.total??t.count??e.length;return{[a]:e,total:r}}),e.z.array(tg).transform(t=>({[a]:t,total:t.length}))])),"GET /options/orders")},async getPositions(t){let e=t?`?symbol=${t}`:"";return r.http.get("/options/positions"+e,tb("positions",ty),"GET /options/positions")},closePosition:async t=>{let a;return r.http.post((a=t,`/options/positions/${a}/close`),{},e.z.union([e.z.object({position:ty}).transform(t=>t.position),ty]),"POST /options/positions/:id/close")},getAccount:async()=>r.http.get("/options/account",e.z.object({balance:t_.optional(),wallet_balance:t_.optional(),equity:t_.optional(),available_balance:t_.optional(),locked_margin:t_.optional(),order_margin:t_.optional(),unrealized_pnl:t_.optional(),realized_pnl:t_.optional(),maintenance_margin:t_.optional(),total_delta:t_.optional(),total_gamma:t_.optional(),total_theta:t_.optional(),total_vega:t_.optional()}).transform(t=>({total_balance:t.wallet_balance??t.balance??t.equity??"0",available_balance:t.available_balance??"0",margin_balance:t.locked_margin??"0",unrealized_pnl:t.unrealized_pnl??"0",realized_pnl:t.realized_pnl??"0",initial_margin:t.order_margin??"0",maintenance_margin:t.maintenance_margin??"0",total_delta:t.total_delta??"0",total_gamma:t.total_gamma??"0",total_theta:t.total_theta??"0",total_vega:t.total_vega??"0"})),"GET /options/account"),async getGreeks(t){let a,n=e.z.object({delta:t_.nullish(),gamma:t_.nullish(),theta:t_.nullish(),vega:t_.nullish(),rho:t_.nullish()}).transform(t=>({delta:t.delta??"0",gamma:t.gamma??"0",theta:t.theta??"0",vega:t.vega??"0",rho:t.rho??"0"}));return r.http.get((a=t,`/options/greeks/${a}`),e.z.union([e.z.object({greeks:n}).transform(t=>t.greeks),n]),"GET /options/greeks/:contract_id")}}],589160)},816595,t=>{"use strict";var e=t.i(681307),a=t.i(261238),r=t.i(444592);function n(t){return e.z.object({...t??{}}).passthrough()}let o={id:e.z.union([e.z.string(),e.z.number()]).transform(String)},i=(t,e)=>{let a={...t};for(let t of e){if(null==a[t])continue;let e=Number(a[t]);a[t]=Number.isFinite(e)?e:void 0}return a},s=["fixed_price","price_margin","effective_price","min_amount","max_amount","available_amount"],l=e.z.object({...o}).passthrough().transform(t=>i(t,s)),_=["crypto_amount","fiat_amount","price","escrow_balance"],p=e.z.object({...o}).passthrough().transform(t=>i(t,_)),c=n(o),d=n(o);function u(t,e){if(null==t)return e;if("string"==typeof t)try{return JSON.parse(t)??e}catch{return e}return t}let m=e.z.object({id:o.id,account_details:e.z.unknown().optional()}).passthrough().transform(t=>({...t,account_details:u(t.account_details,{})})),g=["completion_rate","average_rating"],y=e.z.object({user_id:e.z.union([e.z.string(),e.z.number()]).transform(String)}).passthrough().transform(t=>i(t,g)),b=e.z.object({type:e.z.string().optional(),name:e.z.string().optional(),account_details:e.z.unknown().optional()}).transform(t=>({type:t.type??"",name:t.name??"",account_details:t.account_details??{}})),z=e.z.object({eligible:e.z.boolean(),already_merchant:e.z.boolean(),pending_application:e.z.boolean(),criteria:e.z.array(e.z.object({key:e.z.string(),label:e.z.string(),current:e.z.string(),required:e.z.string(),passed:e.z.boolean()}))}),h=e.z.union([e.z.object({data:e.z.array(p),total:e.z.number().optional()}).transform(t=>({orders:t.data,total:t.total??t.data.length})),e.z.array(p).transform(t=>({orders:t,total:t.length}))]),f=e.z.object({profile:y}).transform(t=>t.profile),w=e.z.object({nickname:e.z.string(),available:e.z.boolean()}),k=(0,r.list)(e.z.unknown()),v=e.z.unknown(),S=e.z.object({eligible:e.z.boolean(),requirements_met:e.z.array(e.z.string()).optional(),requirements_missing:e.z.array(e.z.string()).optional()}).transform(t=>({eligible:t.eligible,requirements_met:t.requirements_met??[],requirements_missing:t.requirements_missing??[]})),E=n(o),T=e.z.object({id:o.id,regions:e.z.unknown().optional()}).passthrough().transform(t=>{let e=u(t.regions,[]);return{...t,regions:Array.isArray(e)?e:[]}}),A=n({code:e.z.string()}),j=e.z.union([e.z.object({data:e.z.array(l),total:e.z.number().optional()}).transform(t=>({ads:t.data,total:t.total??t.data.length})),e.z.array(l).transform(t=>({ads:t,total:t.length}))]),x=e.z.union([e.z.object({data:e.z.array(E),total:e.z.number().optional()}).transform(t=>({feedbacks:t.data,total:t.total??t.data.length})),e.z.array(E).transform(t=>({feedbacks:t,total:t.length}))]),F=e.z.object({code:e.z.string()}).transform(t=>({currency:t})),P=e.z.object({rate:e.z.union([e.z.string(),e.z.number()])}).transform(t=>({rate:Number(t.rate)})),L=e.z.union([e.z.object({traders:e.z.array(y)}).transform(t=>t.traders),e.z.array(y)]),q=(0,r.list)(n()),G="/p2p/ads",N=t=>`/p2p/ads/${t}`,$=t=>`/p2p/orders/${t}/messages`,I="/p2p/payment-methods",O=t=>`/p2p/payment-methods/${t}`,R="/p2p/favorites",C="/p2p/notification-settings",D="/p2p/price-alerts";function U(t){return`${(Number(t)||0).toFixed(1)}%`}function M(t){return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:`${Math.floor(t/3600)}h ${Math.floor(t%3600/60)}m`}t.s(["formatCompletionRate",()=>U,"formatResponseTime",()=>M,"p2pPublicService",0,{async getAds(t){let e={};t&&(t.type&&(e.type=t.type),t.asset&&(e.asset=t.asset),t.fiat_currency&&(e.fiat_currency=t.fiat_currency),t.payment_method&&(e.payment_method=t.payment_method),void 0!==t.min_price&&(e.min_price=String(t.min_price)),void 0!==t.max_price&&(e.max_price=String(t.max_price)),void 0!==t.amount&&(e.amount=String(t.amount)),void 0!==t.min_available&&(e.min_available=String(t.min_available)),void 0!==t.min_completion_rate&&(e.min_completion_rate=String(t.min_completion_rate)),void 0!==t.merchant_only&&(e.merchant_only=String(t.merchant_only)),void 0!==t.verified_only&&(e.verified_only=String(t.verified_only)),void 0!==t.online_only&&(e.online_only=String(t.online_only)),t.sort_by&&(e.sort_by=t.sort_by),void 0!==t.limit&&(e.limit=String(t.limit)),void 0!==t.offset&&(e.offset=String(t.offset)));let a=Object.keys(e).length>0?"?"+new URLSearchParams(e).toString():"";
1return r.http.get(G+a,j,"GET /p2p/ads",{skipAuth:!0})},getAd:async t=>r.http.get(N(t),l,"GET /p2p/ads/:id",{skipAuth:!0}),getUserStats:async t=>{let e;return r.http.get((e=t,`/p2p/users/${e}/stats`),y,"GET /p2p/users/:id/stats",{skipAuth:!0})},async getUserFeedbacks(t,e){let a,n={};e?.rating&&(n.rating=e.rating),e?.limit!==void 0&&(n.limit=String(e.limit)),e?.offset!==void 0&&(n.offset=String(e.offset));let o=Object.keys(n).length>0?"?"+new URLSearchParams(n).toString():"";return r.http.get((a=t,`/p2p/users/${a}/feedbacks`+o),x,"GET /p2p/users/:id/feedbacks",{skipAuth:!0})},async getPaymentTypes(t){let e=t?`?country=${t}`:"";return r.http.get("/p2p/payment-types"+e,(0,r.list)(T),"GET /p2p/payment-types",{skipAuth:!0})},getFiatCurrencies:async()=>r.http.get("/p2p/fiat-currencies",(0,r.list)(A),"GET /p2p/fiat-currencies",{skipAuth:!0}),detectCurrency:async t=>r.http.get(`/p2p/detect-currency?country=${t}`,F,"GET /p2p/detect-currency",{skipAuth:!0}),getExchangeRate:async(t,e)=>r.http.get(`/exchange-rates?base=${t}&target=${e}`,P,"GET /exchange-rates",{skipAuth:!0}),getMerchantRequirements:async()=>r.http.get("/p2p/merchant/requirements",k,"GET /p2p/merchant/requirements",{skipAuth:!0}),getTopMerchants:async(t=10)=>r.http.get(`/p2p/merchant/top?limit=${t}`,q,"GET /p2p/merchant/top",{skipAuth:!0}),getPlatformStatistics:async()=>r.http.get("/p2p/platform-statistics",v,"GET /p2p/platform-statistics",{skipAuth:!0}),getTopTraders:async(t=10)=>r.http.get(`/p2p/top-traders?limit=${t}`,L,"GET /p2p/top-traders",{skipAuth:!0})},"p2pService",0,{getMyProfile:async()=>r.http.get("/p2p/profile/me",f,"GET /p2p/profile/me"),async setupProfile(t){let e=await a.api.post("/p2p/profile/setup",{nickname:t});if(!e.success||!e.data)throw Error(e.message||"Failed to setup profile");return e.data.profile},checkNickname:async t=>r.http.get(`/p2p/profile/check-nickname?nickname=${t}`,w,"GET /p2p/profile/check-nickname"),async createAd(t){let e=await a.api.post(G,t);if(!e.success||!e.data)throw Error(e.message||"Failed to create ad");return e.data},async getMyAds(t){let e=t?`?status=${t}`:"";return r.http.get("/p2p/my-ads"+e,(0,r.list)(l),"GET /p2p/my-ads")},async updateAd(t,e){let r=await a.api.put(N(t),e);if(!r.success||!r.data)throw Error(r.message||"Failed to update ad");return r.data},async deleteAd(t){let e=await a.api.delete(N(t));if(!e.success)throw Error(e.message||"Failed to delete ad")},async reactivateAd(t){let e,r=await a.api.post((e=t,`/p2p/ads/${e}/reactivate`));if(!r.success)throw Error(r.message||"Failed to reactivate ad")},async updateAdStatus(t,e){let r,n=await a.api.put((r=t,`/p2p/ads/${r}/status`),{status:e});if(!n.success)throw Error(n.message||"Failed to update ad status")},async createOrder(t){let e=await a.api.post("/p2p/orders",t);if(!e.success||!e.data)throw Error(e.message||"Failed to create order");return e.data},getOrder:async t=>{let e;return r.http.get((e=t,`/p2p/orders/${e}`),p,"GET /p2p/orders/:id")},async getMyOrders(t){let e={};t?.status&&(e.status=t.status),t?.limit!==void 0&&(e.limit=String(t.limit)),t?.offset!==void 0&&(e.offset=String(t.offset));let a=Object.keys(e).length>0?"?"+new URLSearchParams(e).toString():"";return r.http.get("/p2p/my-orders"+a,h,"GET /p2p/my-orders")},async markAsPaid(t,e){let r,n=await a.api.post((r=t,`/p2p/orders/${r}/mark-paid`),{proof_url:e?.payment_proof_url});if(!n.success)throw Error(n.message||"Failed to mark order as paid")},async releaseCrypto(t){let e,r=await a.api.post((e=t,`/p2p/orders/${e}/release`));if(!r.success)throw Error(r.message||"Failed to release crypto")},async cancelOrder(t,e){let r,n=await a.api.post((r=t,`/p2p/orders/${r}/cancel`),{reason:e});if(!n.success)throw Error(n.message||"Failed to cancel order")},getOrderPaymentDetails:async t=>{let e;return r.http.get((e=t,`/p2p/orders/${e}/payment-details`),b,"GET /p2p/orders/:id/payment-details")},getOrderMessages:async t=>r.http.get($(t),(0,r.list)(c),"GET /p2p/orders/:id/messages"),async sendOrderMessage(t,e,r){let n=await a.api.post($(t),{message:e,attachment_url:r});if(!n.success||!n.data)throw Error(n.message||"Failed to send message");return n.data},async sendTypingIndicator(t){let e;await a.api.post((e=t,`/p2p/orders/${e}/typing`))},async markMessageDelivered(t){let e;await a.api.post((e=t,`/p2p/messages/${e}/delivered`))}
1,async openDispute(t,e,r,n){let o=await a.api.post("/p2p/disputes",{order_id:t,reason:e,description:r,evidence_urls:n});if(!o.success||!o.data)throw Error(o.message||"Failed to open dispute");return o.data},getDispute:async t=>{let e;return r.http.get((e=t,`/p2p/disputes/${e}`),d,"GET /p2p/disputes/:id")},async uploadDisputeEvidence(t,e){let r,n=await a.api.post((r=t,`/p2p/disputes/${r}/upload-evidence`),e);if(!n.success)throw Error(n.message||"Failed to upload evidence");return n.data},async escalateDispute(t,e){let r,n=await a.api.post((r=t,`/p2p/disputes/${r}/escalate`),{reason:e});if(!n.success)throw Error(n.message||"Failed to escalate dispute")},getDisputeTimeline:async t=>{let e;return r.http.get((e=t,`/p2p/disputes/${e}/timeline`),k,"GET /p2p/disputes/:id/timeline")},getDisputeEvidence:async t=>{let e;return r.http.get((e=t,`/p2p/disputes/${e}/evidence`),k,"GET /p2p/disputes/:id/evidence")},async submitFeedback(t,e,r){let n=await a.api.post("/p2p/feedback",{order_id:t,rating:e,comment:r});if(!n.success||!n.data)throw Error(n.message||"Failed to submit feedback");return n.data},getPaymentMethods:async()=>r.http.get(I,(0,r.list)(m),"GET /p2p/payment-methods"),async addPaymentMethod(t){let e=await a.api.post(I,{...t,account_details:JSON.stringify(t.account_details??{})});if(!e.success||!e.data)throw Error(e.message||"Failed to add payment method");return e.data},async updatePaymentMethod(t,e){let r={...e};r.account_details&&"string"!=typeof r.account_details&&(r.account_details=JSON.stringify(r.account_details));let n=await a.api.put(O(t),r);if(!n.success||!n.data)throw Error(n.message||"Failed to update payment method");return n.data},async deletePaymentMethod(t){let e=await a.api.delete(O(t));if(!e.success)throw Error(e.message||"Failed to delete payment method")},async applyForMerchant(t){let e=await a.api.post("/p2p/merchant/apply",t);if(!e.success||!e.data)throw Error(e.message||"Failed to apply for merchant");return e.data},async getMyMerchantApplication(){let t=await a.api.get("/p2p/merchant/my-application");if(!t.success){let e=(t.message||"").toLowerCase(),a=(t.error||"").toLowerCase();if(e.includes("not found")||a.includes("not found")||"not_found"===a)return null;throw Error(t.message||"Failed to get application")}return t.data||null},getMerchantPerformance:async()=>r.http.get("/p2p/merchant/performance",v,"GET /p2p/merchant/performance"),checkMerchantEligibility:async()=>r.http.get("/p2p/merchant/check-eligibility",S,"GET /p2p/merchant/check-eligibility"),getMerchantEligibility:async()=>r.http.get("/p2p/merchant/eligibility",z,"GET /p2p/merchant/eligibility"),async blockUser(t,e){let r=await a.api.post("/p2p/users/block",{blocked_user_id:t,reason:e});if(!r.success)throw Error(r.message||"Failed to block user")},async unblockUser(t){let e,r=await a.api.delete((e=t,`/p2p/users/block/${e}`));if(!r.success)throw Error(r.message||"Failed to unblock user")},getBlockedUsers:async()=>r.http.get("/p2p/users/blocked",k,"GET /p2p/users/blocked"),async addFavorite(t,e){let r=await a.api.post(R,{favorite_user_id:t,notes:e});if(!r.success)throw Error(r.message||"Failed to add favorite")},async removeFavorite(t){let e,r=await a.api.delete((e=t,`/p2p/favorites/${e}`));if(!r.success)throw Error(r.message||"Failed to remove favorite")},getFavorites:async()=>r.http.get(R,k,"GET /p2p/favorites"),async enableBreakMode(t){let e=await a.api.post("/p2p/break-mode/enable",{duration:t});if(!e.success)throw Error(e.message||"Failed to enable break mode");return e.message||"Break mode enabled."},async disableBreakMode(){let t=await a.api.post("/p2p/break-mode/disable");if(!t.success)throw Error(t.message||"Failed to disable break mode");return t.message||"Break mode disabled."},getBreakModeStatus:async()=>r.http.get("/p2p/break-mode/status",v,"GET /p2p/break-mode/status"),getBreakModeHistory:async()=>r.http.get("/p2p/break-mode/history",k,"GET /p2p/break-mode/history"),getMyStatistics:async()=>r.http.get("/p2p/my-statistics",k,"GET /p2p/my-statistics"),getMyRank:async()=>r.http.get("/p2p/my-rank",v,"GET /p2p/my-rank"),getUserStatistics:async t=>{let e;return r.http.get((e=t,`/p2p/users/${e}/statistics`),k,"GET /p2p/users/:id/statistics")},getNotificationSettings:async()=>r.http.get(C,v,"GET /p2p/notification-settings"),async updateNotificationSettings(t){let e=await a.api.put(C,t);if(!e.success)throw Error(e.message||"Failed to update notification settings");return e.data},getPriceAlerts:async()=>r.http.get(D,k,"GET /p2p/price-alerts"),async createPriceAlert(t){let e=await a.api.post(D,t);if(!e.success)throw Error(e.message||"Failed to create price alert");return e.data},async deletePriceAlert(t){let e=await a.api.delete(`${D}/${t}`);if(!e.success)throw Error(e.message||"Failed to delete price alert")},async uploadFile(t){let e=new FormData;e.append("file",t);let a=await fetch("/p2p/upload",{method:"POST",body:e}),r=await a.json();if(!r.success||!r.data)throw Error(r.message||"Failed to upload file");return r.data}}])},622891,t=>{"use strict";var e=t.i(681307);t.i(261238),t.i(444592);let a=e.z.union([e.z.string(),e.z.number()]).transform(String),r=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),user_id:e.z.union([e.z.string(),e.z.number()]).optional(),from_asset:e.z.string().optional(),to_asset:e.z.string().optional(),from_network:e.z.string().optional(),to_network:e.z.string().optional(),from_amount:a.optional(),to_amount:a.optional(),price:a.optional(),fee:a.optional(),fee_rate:a.optional(),status:e.z.string().optional(),expires_at:e.z.string().optional(),executed_at:e.z.string().nullish(),created_at:e.z.string().optional(),updated_at:e.z.string().optional()}).transform(t=>({id:t.id,user_id:null!=t.user_id?String(t.user_id):"",from_asset:t.from_asset??"",to_asset:t.to_asset??"",from_network:t.from_network??"",to_network:t.to_network??"",from_amount:t.from_amount??"",to_amount:t.to_amount??"",price:t.price??"",fee:t.fee??"",fee_rate:t.fee_rate??"",status:t.status??"",expires_at:t.expires_at??"",executed_at:t.executed_at??void 0,created_at:t.created_at??"",updated_at:t.updated_at??t.created_at??""})),n=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),user_id:e.z.union([e.z.string(),e.z.number()]).optional(),from_asset:e.z.string().optional(),to_asset:e.z.string().optional(),from_network:e.z.string().optional(),to_network:e.z.string().optional(),from_amount:a.optional(),to_amount:a.optional(),price:a.optional(),fee:a.optional(),fee_rate:a.optional(),status:e.z.string().optional(),expires_at:e.z.string().optional(),executed_at:e.z.string().nullish(),completed_at:e.z.string().nullish(),created_at:e.z.string().optional(),updated_at:e.z.string().optional()}).transform(t=>({id:t.id,user_id:null!=t.user_id?String(t.user_id):"",from_asset:t.from_asset??"",to_asset:t.to_asset??"",from_network:t.from_network??"",to_network:t.to_network??"",from_amount:t.from_amount??"",to_amount:t.to_amount??"",price:t.price??"",fee:t.fee??"",fee_rate:t.fee_rate??"",status:t.status??"",expires_at:t.expires_at??"",executed_at:t.executed_at??t.completed_at??void 0,created_at:t.created_at??"",updated_at:t.updated_at??t.completed_at??t.created_at??""})),o=e.z.object({from_asset:e.z.string().optional(),to_asset:e.z.string().optional(),min_amount:a.optional(),max_amount:a.optional(),is_enabled:e.z.boolean().optional(),fee_rate:a.optional()}).transform(t=>({from_asset:t.from_asset??"",to_asset:t.to_asset??"",min_amount:t.min_amount??"",max_amount:t.max_amount??"",is_enabled:t.is_enabled??!0,fee_rate:t.fee_rate??""}));e.z.object({conversions:e.z.array(n).nullish(),total:e.z.number().optional()}).transform(t=>({conversions:t.conversions??[],total:t.total??t.conversions?.length??0})),e.z.object({quotes:e.z.array(r).nullish(),total:e.z.number().optional()}).transform(t=>({quotes:t.quotes??[],total:t.total??t.quotes?.length??0})),e.z.object({pairs:e.z.array(o).nullish()}).transform(t=>t.pairs??[]),t.s([])},88090,t=>{"use strict";var e=t.i(681307),a=t.i(261238),r=t.i(444592);let n="/bots",o=t=>`/bots/${t}`,i=(t,e=0)=>{let a=Number(t);return Number.isFinite(a)?a:e},s=(t,e="0")=>null==t?e:String(t);function l(t,e){let a=e??{};switch(t){case"grid":{let t=i(a.investment_per_grid),e=i(a.grid_count);return{grid:{direction:a.direction??"neutral",lower_price:s(a.lower_price),upper_price:s(a.upper_price),grid_count:e,grid_type:a.grid_type??"arithmetic",investment_amount:s(a.investment_amount??(t&&e?String(t*e):a.investment_per_grid)),stop_loss:a.stop_loss?String(a.stop_loss):void 0,take_profit:a.take_profit?String(a.take_profit):void 0}}}case"dca":return{dca:{investment_per_order:s(a.amount),frequency:a.interval??"daily",amount_type:a.amount_type??"f
1ixed",order_type:a.order_type??"market"}};case"twap":return{twap:{total_amount:s(a.total_amount),duration_hours:i(a.duration)/60,order_interval_minutes:i(a.slice_interval)/60,side:a.side??"buy",order_type:a.order_type??"market"}};case"rebalance":{let t=a.allocations;return{rebalance:{target_allocations:t&&"object"==typeof t?Object.entries(t).map(([t,e])=>({asset:t,percentage:String(e)})):Array.isArray(a.target_allocations)?a.target_allocations:[],rebalance_threshold:s(a.drift_threshold),frequency:a.rebalance_interval??"weekly"}}}case"arbitrage":return{arbitrage:{exchanges:Array.isArray(a.trading_path)?a.trading_path:[],min_spread:s(a.min_profit_percent),max_position:s(a.max_trade_amount)}};case"trailing":return{trailing:{side:a.side??"buy",callback_rate:s(a.trailing_percent),investment_amount:s(a.amount),activation_price:a.activation_price?String(a.activation_price):void 0}};default:return a}}let _=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),name:e.z.string().optional(),type:e.z.string().optional(),symbol:e.z.string().optional(),status:e.z.string().optional(),user_id:e.z.union([e.z.string(),e.z.number()]).optional(),created_at:e.z.string().optional()}).passthrough().transform(t=>{let e;return e=String(t.type??"dca"),{id:String(t.id),user_id:String(t.user_id??""),name:t.name??"",type:e,symbol:t.symbol??"",status:t.status??"stopped",config:l(e,t.config),performance:function(t){let e=i(t.total_trades),a=i(t.winning_trades),r=i(t.losing_trades),n=0;if("string"==typeof t.started_at&&t.started_at){let e=Date.parse(t.started_at),a="string"==typeof t.stopped_at&&t.stopped_at?Date.parse(t.stopped_at):Date.now();Number.isFinite(e)&&a>e&&(n=Math.floor((a-e)/1e3))}return{total_investment:s(t.invested_amount),current_value:s(t.current_value),total_pnl
1:s(t.total_profit),total_pnl_percent:s(t.total_profit_pct),unrealized_pnl:s(t.unrealized_pnl),realized_pnl:s(t.total_profit),total_trades:e,winning_trades:a,losing_trades:r,win_rate:e>0?(a/e*100).toFixed(2):"0",avg_profit_per_trade:e>0?(i(t.total_profit)/e).toFixed(4):"0",max_drawdown:s(t.max_drawdown),sharpe_ratio:void 0!==t.sharpe_ratio?String(t.sharpe_ratio):void 0,daily_pnl:s(t.daily_pnl),weekly_pnl:s(t.weekly_pnl),monthly_pnl:s(t.monthly_pnl),running_time:n}}(t),created_at:t.created_at??"",started_at:t.started_at??void 0,stopped_at:t.stopped_at??void 0,error_message:t.error_message??void 0}}),p=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),bot_id:e.z.union([e.z.string(),e.z.number()]).optional(),status:e.z.string().optional()}).passthrough().transform(t=>t),c=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),name:e.z.string().optional(),type:e.z.string().optional()}).passthrough().transform(t=>{let e=String(t.type??"dca");return{id:String(t.id),name:t.name??"",description:t.description??"",type:e,symbol:t.symbol??"",config:l(e,t.config),expected_apy:s(t.expected_apy??t.expected_apr,""),risk_level:t.risk_level??"medium",min_investment:s(t.min_investment??t.recommended_capital,"0"),is_featured:!!t.is_featured,created_by:t.created_by??"system",usage_count:i(t.usage_count)}}),d=e.z.union([e.z.object({bots:e.z.array(_),total:e.z.number().optional()}).transform(t=>({bots:t.bots,total:t.total??t.bots.length})),e.z.array(_).transform(t=>({bots:t,total:t.length}))]),u=e.z.union([e.z.object({executions:e.z.array(p),total:e.z.number().optional()}).transform(t=>({executions:t.executions,total:t.total??t.executions.length})),e.z.array(p).transform(t=>({executions:t,total:t.length}))]),m=e.z.union([e.z.object({performance:e.z.unknown()}).transform(t=>t.performance),e.z.unknown().transform(t=>t)]),g=e.z.object({total_bots:e.z.union([e.z.string(),e.z.number()]).optional()}).passthrough().transform(t=>{let e=i(t.total_invested??t.total_investment),a=i(t.total_profit??t.total_pnl);return{total_bots:i(t.total_bots),running_bots:i(t.active_bots??t.running_bots),total_investment:s(t.total_invested??t.total_investment),total_pnl
1:s(t.total_profit??t.total_pnl),total_pnl_percent:e>0?(a/e*100).toFixed(2):"0",best_performing_bot:t.best_performing_bot,worst_performing_bot:t.worst_performing_bot}}),y=e.z.unknown().transform(t=>t);function b(t){return({grid:"Grid Trading",dca:"DCA",twap:"TWAP",rebalance:"Rebalance",arbitrage:"Arbitrage",trailing:"Trailing",market_maker:"Market Maker"})[t]}function z(t){switch(t){case"active":return"text-[#BDFF2B]";case"paused":return"text-yellow-500";case"stopped":default:return"text-gray-500";case"error":return"text-[#E44D90]"}}function h(t){return({active:"Active",paused:"Paused",stopped:"Stopped",error:"Error"})[t]}function f(t){let e=Math.floor(t/86400),a=Math.floor(t%86400/3600),r=Math.floor(t%3600/60);return e>0?`${e}d ${a}h`:a>0?`${a}h ${r}m`:`${r}m`}t.s(["botService",0,{async createBot(t){let e=await a.api.post(n,t);if(!e.success||!e.data)throw Error(e.message||"Failed to create bot");return e.data},async getBots(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get(n+e,d,"GET /bots")},getBot:async t=>r.http.get(o(t),_,"GET /bots/:id"),async updateBot(t,e){let r=await a.api.put(o(t),e);if(!r.success||!r.data)throw Error(r.message||"Failed to update bot");return r.data},async deleteBot(t){let e=await a.api.delete(o(t));if(!e.success)throw Error(e.message||"Failed to delete bot");return e.data||{success:!0}},async startBot(t){let e,r=await a.api.put((e=t,`/bots/${e}/start`));if(!r.success||!r.data)throw Error(r.message||"Failed to start bot");return r.data},async pauseBot(t){let e,r=await a.api.put((e=t,`/bots/${e}/pause`));if(!r.success||!r.data)throw Error(r.message||"Failed to pause bot");return r.data},async stopBot(t){let e,r=await a.api.put((e=t,`/bots/${e}/stop`));if(!r.success||!r.data)throw Error(r.message||"Failed to stop bot");return r.data},getBotPerformance:async t=>{let e;return r.http.get((e=t,`/bots/${e}/performance`),m,"GET /bots/:id/performance")},async getBotExecutions(t,e){let a,n=e?"?"+new URLSearchParams(Object.entries(e).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get((a=t,`/bots/${a}/executions`+n),u,"GET /bots/:id/executions")},async getTemplates(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get("/bots/templates"+e,(0,r.list)(c),"GET /bots/templates")}
1,getFeaturedTemplates:async()=>r.http.get("/bots/templates/featured",(0,r.list)(c),"GET /bots/templates/featured"),getStatistics:async()=>r.http.get("/bots/statistics",g,"GET /bots/statistics"),getSchedulerStatus:async()=>r.http.get("/bots/scheduler/status",y,"GET /bots/scheduler/status")},"formatBotStatus",()=>h,"formatBotType",()=>b,"formatRunningTime",()=>f,"getBotStatusColor",()=>z])},909611,795172,31022,287392,t=>{"use strict";var e=t.i(681307),a=t.i(261238),r=t.i(444592);let n="/copy-trading/lead-trader/profile",o=t=>`/copy-trading/subscriptions/${t}`,i=e.z.union([e.z.string(),e.z.number()]).transform(String),s=e.z.union([e.z.string(),e.z.number()]).transform(String).optional(),l=e.z.object({id:i,user_id:i.optional(),display_name:e.z.string().optional(),nickname:e.z.string().optional(),avatar_url:e.z.string().optional(),bio:e.z.string().optional(),trading_style:e.z.string().optional(),status:e.z.string().optional(),total_followers:e.z.number().optional(),followers_count:e.z.number().optional(),total_copiers:e.z.number().optional(),total_copy_amount:s,assets_under_copy:s,profit_share_rate:s,profit_sharing_rate:s,min_copy_amount:s,max_copy_amount:s,created_at:e.z.string().optional()}).transform(t=>({id:t.id,user_id:t.user_id??"",nickname:t.nickname??t.display_name??"",avatar_url:t.avatar_url,bio:t.bio,trading_style:t.trading_style??"moderate",status:t.status??"pending",followers_count:t.followers_count??t.total_followers??0,total_copiers:t.total_copiers??0,assets_under_copy:t.assets_under_copy??t.total_copy_amount??"0",profit_sharing_rate:t.profit_sharing_rate??t.profit_share_rate??"0",min_copy_amount:t.min_copy_amount??"0",max_copy_amount:t.max_copy_amount,created_at:t.created_at??""})),_=e.z.object({id:i,follower_id:i.optional(),user_id:i.optional(),lead_trader_id:i.optional(),lead_trader:e.z.unknown().optional(),copy_mode:e.z.string().optional(),fixed_amount:s,copy_amount:s,proportional_ratio:s,copy_ratio:s,max_position_size:s,stop_loss_percentage:s,stop_loss_percent:s,take_profit_percentage:s,take_profit_percent:s,status:e.z.string().optional(),total_invested:s,current_invested:s,current_value:s,total_pnl
1:s,total_pnl_percent:s,total_copied_trades:e.z.number().optional(),total_profit_shared:s,profit_share_paid:s,created_at:e.z.string().optional(),started_at:e.z.string().optional(),paused_at:e.z.string().optional()}).transform(t=>{let e=t.lead_trader,a=e&&"object"==typeof e?l.safeParse(e).data:void 0;return{id:t.id,user_id:t.user_id??t.follower_id??"",lead_trader_id:t.lead_trader_id??"",lead_trader:a??{},copy_mode:t.copy_mode??"fixed_amount",copy_amount:t.copy_amount??t.fixed_amount,copy_ratio:t.copy_ratio??t.proportional_ratio,max_position_size:t.max_position_size,stop_loss_percent:t.stop_loss_percent??t.stop_loss_percentage,take_profit_percent:t.take_profit_percent??t.take_profit_percentage,status:t.status??"active",total_invested:t.total_invested??"0",current_value:t.current_value??t.current_invested??"0",total_pnl:t.total_pnl??"0",total_pnl_percent:t.total_pnl_percent??"0",total_copied_trades:t.total_copied_trades??0,profit_share_paid:t.profit_share_paid??t.total_profit_shared??"0",created_at:t.created_at??"",started_at:t.started_at,paused_at:t.paused_at}}),p=e.z.object({id:i,subscription_id:i.optional(),lead_trade_id:i.optional(),leader_order_id:i.optional(),symbol:e.z.string().optional(),side:e.z.string().optional(),order_type:e.z.string().optional(),type:e.z.string().optional(),leader_price:s,price:s,leader_quantity:s,quantity:s,follower_quantity:s,copied_quantity:s,status:e.z.string().optional(),realized_pnl:s,pnl:s,created_at:e.z.string().optional(),filled_at:e.z.string().optional(),executed_at:e.z.string().optional()}).transform(t=>({id:t.id,subscription_id:t.subscription_id??"",lead_trade_id:t.lead_trade_id??t.leader_order_id??"",symbol:t.symbol??"",side:t.side??"buy",type:t.type??t.order_type??"market",price:t.price??t.leader_price??"0",quantity:t.quantity??t.leader_quantity??"0",copied_quantity:t.copied_quantity??t.follower_quantity??"0",status:t.status??"pending",pnl:t.pnl??t.realized_pnl,created_at:t.created_at??"",executed_at:t.executed_at??t.filled_at})),c=e.z.object({id:i,subscription_id:i.optional(),lead_trader_id:i.optional(),period_start:e.z.string().optional(),period_end:e.z.string().optional(),gross_profit:s,share_rate:s,profit_share_rate:s,leader_share:s,profit_share_amount:s,status:e.z.string().optional(),settled_at:e.z.string().optional(),paid_at:e.z.string().optional()}).transform(t=>({id:t.id,subscription_id:t.subscription_id??"",lead_trader_id:t.lead_trader_id??"",period_start:t.period_start??"",period_end:t.period_end??"",gross_profit:t.gross_profit??"0",profit_share_rate:t.profit_share_rate??t.share_rate??"0",profit_share_amount:t.profit_share_amount??t.leader_share??"0",status:t.status??"pending",paid_at:t.paid_at??t.settled_at})),d=e.z.object({period:e.z.string().optional(),total_pnl:s,total_pnl_percentage:s,win_rate:s,total_trades:e.z.number().optional(),winning_trades:e.z.number().optional(),losing_trades:e.z.number().optional(),avg_holding_time_minutes:e.z.number().optional(),max_drawdown:s,sharpe_ratio:s,roi:s});function u(t){let e=new Map(t.map(t=>[t.period??"",t])),a=e.get("all_time")??t[0];return a?{total_pnl:a.total_pnl??"0",total_pnl_percent:a.total_pnl_percentage??"0",win_rate:a.win_rate??"0",total_trades:a.total_trades??0,winning_trades:a.winning_trades??0,losing_trades:a.losing_trades??0,avg_holding_time:null!=a.avg_holding_time_minutes?String(a.avg_holding_time_minutes):"0",max_drawdown:a.max_drawdown??"0",sharpe_ratio:a.sharpe_ratio??"0",roi_7d:e.get("7d")?.roi??"0",roi_30d:e.get("30d")?.roi??"0",roi_90d:e.get("90d")?.roi??"0",roi_all_time:a.roi??"0",aum:"0",pnl_7d:e.get("7d")?.total_pnl??"0",pnl_30d:e.get("30d")?.total_pnl??"0",pnl_90d:e.get("90d")?.total_pnl??"0"}:m}let m={total_pnl:"0",total_pnl_percent:"0",win_rate:"0",total_trades:0,winning_trades:0,losing_trades:0,avg_holding_time:"0",max_drawdown:"0",sharpe_ratio:"0",roi_7d:"0",roi_30d:"0",roi_90d:"0",roi_all_time:"0",aum:"0",pnl_7d:"0",pnl_30d:"0",pnl_90d:"0"},g=e.z.union([e.z.array(d).transform(t=>u(t)),d.transform(t=>u([t]))]),y=e.z.object({stat_date:e.z.string().optional(),date:e.z.string().optional(),daily_pnl:s,pnl:s,daily_pnl_percentage:s,pnl_percent:s,daily_trades:e.z.number().optional(),trades_count:e.z.number().optional(),daily_winning_trades:e.z.number().optional(),win_count:e.z.number().optional(),ending_balance:s,aum:s}).transform(t=>({date:t.date??t.stat_date??"",pnl:t.pnl??t.daily_pnl??"0",pnl_percent:t.pnl_percent??t.daily_pnl_percentage??"0",trades_count:t.trades_count??t.daily_trades??0,win_count:t.win_count??t.daily_winning_trades??0,aum:t.aum??t.ending_balance??"0"})),b=t=>{if(void 0===t||""===t)return;let e=Number.parseFloat(t);return Number.isFinite(e)?e:void 0};function z(t){let e,a=void 0===(e=t.copy_mode)?void 0:"fixed_amount"===e?"fixed":"proportional";return{copy_mode:a,fixed_amount:"fixed"===a?b(t.copy_amount):void 0,proportional_ratio:"proportional"===a?b(t.copy_ratio):void 0,max_position_size:b(t.max_position_size),stop_loss_percentage:b(t.stop_loss_percent),take_profit_percentage:b(t.take_profit_percent)}
1}let h=e.z.object({stats:e.z.array(d).optional()}).passthrough(),f=(0,r.list)(h).transform(t=>t.flatMap((t,e)=>{let a=l.safeParse(t).data;return a?[{rank:e+1,lead_trader:a,stats:t.stats?.length?u(t.stats):m}]:[]})),w=e.z.object({total_earnings:s,pending_earnings:s,paid_earnings:s,last_30_days:s,last_7_days:s,total_followers:e.z.number().optional(),active_followers:e.z.number().optional(),aum:s}).transform(t=>({total_earnings:t.total_earnings??"0",pending_earnings:t.pending_earnings??"0",paid_earnings:t.paid_earnings??t.total_earnings??"0",total_followers:t.total_followers??0,active_followers:t.active_followers??0,aum:t.aum??"0"})),k=e.z.object({total_invested:s,current_value:s,total_pnl:s,total_pnl_percent:s,total_trades:e.z.number().optional(),total_copied_trades:e.z.number().optional(),winning_trades:e.z.number().optional(),win_rate:s,profit_share_paid:s,active_subscriptions:e.z.number().optional()}).transform(t=>({total_invested:t.total_invested??"0",current_value:t.current_value??"0",total_pnl:t.total_pnl??"0",total_pnl_percent:t.total_pnl_percent??"0",total_trades:t.total_trades??t.total_copied_trades??0,winning_trades:t.winning_trades??0,win_rate:t.win_rate??"0",profit_share_paid:t.profit_share_paid??"0",active_subscriptions:t.active_subscriptions??0})),v=e.z.union([l,e.z.null().transform(()=>{throw Error("Not a lead trader")})]);function S(t,a){return e.z.union([e.z.object({[a]:e.z.array(t)}).transform(t=>t[a]),(0,r.list)(t)])}function E(t,e){return e?e({conservative:"dashboard.copyTrading.conservative",moderate:"dashboard.copyTrading.moderate",aggressive:"dashboard.copyTrading.aggressive"}[t]):({conservative:"Conservative",moderate:"Moderate",aggressive:"Aggressive"})[t]}function T(t){switch(t){case"conservative":return"text-[#BDFF2B]";case"moderate":return"text-yellow-500";case"aggressive":return"text-[#E44D90]";default:return"text-gray-500"}}function A(t){let e=parseFloat(t);return isNaN(e)?"0%":`${(100*e).toFixed(1)}%`}function j(t){let e=parseFloat(t),a=e>=0;return{value:`${a?"+":""}${(100*e).toFixed(2)}%`,isPositive:a}}t.s(["copyTradingPublicService",0,{async getLeadTraders(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"",a=await r.http.get("/copy-trading/lead-traders"+e,S(l,"lead_traders"),"GET /copy-trading/lead-traders");return{traders:a,total:a.length}},getLeadTrader:async t=>{let e;return r.http.get((e=t,`/copy-trading/lead-traders/${e}`),l,"GET /copy-trading/lead-traders/:id")},getLeadTraderStats:async t=>{let e;return r.http.get((e=t,`/copy-trading/lead-traders/${e}/stats`),g,"GET /copy-trading/lead-traders/:id/stats")},async getLeadTraderDailyStats(t,e){let a,n=e?.days?`?days=${e.days}`:"";return r.http.get((a=t,`/copy-trading/lead-traders/${a}/daily-stats`+n),(0,r.list)(y),"GET /copy-trading/lead-traders/:id/daily-stats")},async getRankings(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get("/copy-trading/rankings"+e,f,"GET /copy-trading/rankings")}},"copyTradingService",0,{async applyAsLeadTrader(t){let e=await a.api.post("/copy-trading/lead-trader/apply",t);if(!e.success||!e.data)throw Error(e.message||"Failed to apply as lead trader");return e.data},getMyLeadTraderProfile:async()=>r.http.get(n,v,"GET /copy-trading/lead-trader/profile"),async updateLeadTraderProfile(t){let e=await a.api.put(n,t);if(!e.success||!e.data)throw Error(e.message||"Failed to update profile");return e.data},async getMyFollowers(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"",a=await r.http.get("/copy-trading/lead-trader/followers"+e,S(_,"followers"),"GET /copy-trading/lead-trader/followers");return{followers:a,total:a.length}},getMyEarnings:async()=>r.http.get("/copy-trading/lead-trader/earnings",w,"GET /copy-trading/lead-trader/earnings"),async subscribe(t){let e=await a.api.post("/copy-trading/subscribe",{lead_trader_id:t.lead_trader_id,...z(t)});if(!e.success||!e.data)throw Error(e.message||"Failed to subscribe");let r=_.safeParse(e.data);return r.success?r.data:e.data},async unsubscribe(t){let e,r=await a.api.delete((e=t,`/copy-trading/subscribe/${e}`));if(!r.success)throw Error(r.message||"Failed to unsubscribe");return r.data||{success:!0}},async getSubscriptions(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"",a=await r.http.get("/copy-trading/subscriptions"+e,S(_,"subscriptions"),"GET /copy-trading/subscriptions");return{subscriptions:a,total:a.length}},getSubscription:async t=>r.http.get(o(t),_,"GET /copy-trading/subscriptions/:id"),async updateSubscription(t,e){let r=await a.api.put(o(t),z(e));if(!r.success||!r.data)throw Error(r.message||"Failed to update subscription");let n=_.safeParse(r.data);return n.success?n.data:r.data},async pauseSubscription(t){let e,r=await a.api.post((e=t,`/copy-trading/subscriptions/${e}/pause`));if(!r.success||!r.data)throw Error(r.message||"Failed to pause subscription");return r.data},async resumeSubscription(t){let e,r=await a.api.post((e=t,`/copy-trading/subscriptions/${e}/resume`));if(!r.success||!r.data)throw Error(r.message||"Failed to resume subscription");return r.data},async getCopyTrades(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"",a=await r.http.get("/copy-trading/trades"+e,S(p,"trades"),"GET /copy-trading/trades");return{trades:a,total:a.length}},getPerformance:async()=>r.http.get("/copy-trading/performance",k,"GET /copy-trading/performance"),async getProfitSharingHistory(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"",a=await r.http.get("/copy-trading/profit-sharing"+e,S(c,"history"),"GET /copy-trading/profit-sharing");return{history:a,total:a.length}}},"formatROI",()=>j,"formatTradingStyle",()=>E,"formatWinRate",()=>A,"getTradingStyleColor",()=>T],909611);let x="/kyc/applications",F=[0,1,2,3];function P(t){let e=Number(t);return F.includes(e)?e:0}let L=["low","medium","high","severe"],q=["pending","approved","flagged","blocked"],G=e.z.union([e.z.string(),e.z.number()]).transform(String),N=e.z.object({level:e.z.union([e.z.string(),e.z.number()]),name:e.z.string().optional(),description:e.z.string().optional(),daily_withdrawal_limit:G.optional(),daily_deposit_limit:G.optional(),monthly_volume_limit:G.optional(),monthly_withdrawal_limit:G.optional(),required_documents:e.z.array(e.z.unknown()).optional(),requirements:e.z.array(e.z.unknown()).optional(),p2p_enabled:e.z.boolean().optional(),futures_enabled:e.z.boolean().optional(),margin_enabled:e.z.boolean().optional()}).transform(function(t){let e=Array.isArray(t.required_documents)?t.required_documents.map(String):Array.isArray(t.requirements)?t.requirements.map(String):[],a=P(t.level);
1return{level:a,name:String(t.name??""),description:String(t.description??""),limits:{daily_withdrawal:String(t.daily_withdrawal_limit??""),monthly_withdrawal:String(t.monthly_volume_limit??t.monthly_withdrawal_limit??""),daily_deposit:String(t.daily_deposit_limit??""),p2p_enabled:"boolean"==typeof t.p2p_enabled?t.p2p_enabled:a>=1,futures_enabled:"boolean"==typeof t.futures_enabled?t.futures_enabled:a>=2,margin_enabled:"boolean"==typeof t.margin_enabled?t.margin_enabled:a>=2},requirements:e}}),$=e.z.object({id:G,user_id:G,level_requested:e.z.union([e.z.string(),e.z.number()]),current_level:e.z.union([e.z.string(),e.z.number()]).optional(),status:e.z.string().optional(),document_type:e.z.string().optional(),country:e.z.string().optional(),country_of_residence:e.z.string().optional(),rejection_reason:e.z.string().optional(),rejection_details:e.z.array(e.z.unknown()).optional(),rejection_labels:e.z.array(e.z.unknown()).optional(),submitted_at:e.z.string().optional(),reviewed_at:e.z.string().optional(),expires_at:e.z.string().optional(),created_at:e.z.string(),updated_at:e.z.string().optional()}).transform(function(t){let e=Array.isArray(t.rejection_details)?t.rejection_details.map(String):Array.isArray(t.rejection_labels)?t.rejection_labels.map(String):void 0;return{id:String(t.id??""),user_id:String(t.user_id??""),level_requested:P(t.level_requested),current_level:P(t.current_level),status:t.status??"pending",document_type:t.document_type??void 0,country:t.country??t.country_of_residence??void 0,rejection_reason:t.rejection_reason??void 0,rejection_details:e,submitted_at:t.submitted_at??void 0,reviewed_at:t.reviewed_at??void 0,expires_at:t.expires_at??void 0,created_at:t.created_at??"",updated_at:t.updated_at??""}}),I=e.z.object({level:e.z.union([e.z.string(),e.z.number()]).optional(),current_level:e.z.union([e.z.string(),e.z.number()]).optional(),daily_withdrawal_limit:G.optional(),daily_withdrawal_used:G.optional(),monthly_volume_limit:G.optional(),monthly_withdrawal_limit:G.optional(),monthly_withdrawal_used:G.optional(),daily_deposit_limit:G.optional(),daily_deposit_used:G.optional(),p2p_enabled:e.z.boolean().optional(),futures_enabled:e.z.boolean().optional(),margin_enabled:e.z.boolean().optional(),fiat_enabled:e.z.boolean().optional()}).transform(function(t){let e=P(t.current_level??t.level);return{current_level:e,daily_withdrawal_limit:String(t.daily_withdrawal_limit??""),daily_withdrawal_used:String(t.daily_withdrawal_used??"0"),monthly_withdrawal_limit:String(t.monthly_withdrawal_limit??t.monthly_volume_limit??""),monthly_withdrawal_used:String(t.monthly_withdrawal_used??"0"),daily_deposit_limit:String(t.daily_deposit_limit??""),daily_deposit_used:String(t.daily_deposit_used??"0"),p2p_enabled:"boolean"==typeof t.p2p_enabled?t.p2p_enabled:e>=1,futures_enabled:"boolean"==typeof t.futures_enabled?t.futures_enabled:e>=2,margin_enabled:"boolean"==typeof t.margin_enabled?t.margin_enabled:e>=2,fiat_enabled:"boolean"==typeof t.fiat_enabled?t.fiat_enabled:e>=1}}),O=e.z.object({token:e.z.string(),url:e.z.string()}).transform(t=>({token:t.token,url:t.url}));e.z.object({id:G,user_id:G.optional(),tx_hash:e.z.string().optional(),transaction_hash:e.z.string().optional(),transaction_type:e.z.string().optional(),address:e.z.string().optional(),network:e.z.string().optional(),direction:e.z.string().optional(),amount:G.optional(),asset:e.z.string().optional(),risk_score:e.z.union([e.z.string(),e.z.number()]).optional(),risk_level:e.z.string().optional(),address_risk_level:e.z.string().optional(),risk_factors:e.z.array(e.z.unknown()).optional(),status:e.z.string().optional(),decision:e.z.string().optional(),created_at:e.z.string().optional(),checked_at:e.z.string().optional(),completed_at:e.z.string().optional(),reviewed_at:e.z.string().optional()}).transform(function(t){let e,a,r="number"==typeof t.risk_score?t.risk_score:Number(t.risk_score??0)||0,n="incoming"===t.direction||"outgoing"===t.direction?t.direction:"deposit"===String(t.transaction_type??"").toLowerCase()?"incoming":"outgoing";return{id:String(t.id??""),user_id:String(t.user_id??""),tx_hash:t.tx_hash??t.transaction_hash??void 0,address:String(t.address??""),network:String(t.network??""),direction:n,amount:String(t.amount??""),asset:String(t.asset??""),risk_score:r,risk_level:(e=String(t.risk_level??t.address_risk_level??"").toLowerCase(),L.includes(e)?e:"critical"===e?"severe":r<25?"low":r<50?"medium":r<75?"high":"severe"),risk_factors:Array.isArray(t.risk_factors)?t.risk_factors.map(String):[],status:(a=String(t.status??t.decision??"").toLowerCase(),q.includes(a)?a:"pending"),created_at:t.created_at??t.checked_at??"",completed_at:t.completed_at??t.reviewed_at??void 0}}),t.s(["kycPublicService",0,{getLevels:async()=>r.http.get("/kyc/levels",(0,r.list)(N),"GET /kyc/levels",{skipAuth:!0})},"kycService",0,{async createApplication(t){let e=await a.api.post(x,t);if(!e.success||!e.data)throw Error(e.message||"Failed to create application");return e.data},getApplications:async()=>r.http.get(x,(0,r.list)($),"GET /kyc/applications"),getApplication:async t=>{let e;return r.http.get((e=t,`/kyc/applications/${e}`),$,"GET /kyc/applications/:id")},getAccessToken:async()=>r.http.get("/kyc/access-token?platform=web",O,"GET /kyc/access-token"),getLimits:async()=>r.http.get("/kyc/limits",I,"GET /kyc/limits"),async resetApplication(){let t=await a.api.post("/kyc/reset");if(!t.success)throw Error(t.message||"Failed to reset application");return t.data||{success:!0}}}],795172);let R=e.z.union([e.z.string(),e.z.number()]).transform(String),C=e.z.object({day_number:e.z.number().optional(),reward_asset:e.z.string().optional(),reward_amount:R.optional(),bonus_multiplier:R.optional(),is_active:e.z.boolean().optional()}),D=(0,r.list)(C).transform(t=>({rewards_by_day:t.map(t=>({day:t.day_number??0,reward_asset:t.reward_asset??"",reward_amount:t.reward_amount??"0",is_bonus:!1})),streak_bonuses:[],reset_on_miss:!0,max_streak:t.length})),U=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),name:e.z.string().optional(),description:e.z.string().optional(),start_date:e.z.string().optional(),end_date:e.z.string().optional(),bonus_multiplier:R.optional(),is_active:e.z.boolean().optional()}).transform(t=>({id:t.id,name:t.name??"",description:t.description??"",start_date:t.start_date??"",end_date:t.end_date??"",bonus_multiplier:t.bonus_multiplier??"1",special_rewards:[],is_active:!!t.is_active})),M=e.z.object({day_number:e.z.number().optional(),reward_amount:R.optional(),reward_asset:e.z.string().optional(),bonus_multiplier:R.optional(),is_today:e.z.boolean().optional(),is_completed:e.z.boolean().optional(),is_current:e.z.boolean().optional()}),W=e.z.object({can_checkin:e.z.boolean().optional(),reward_gated:e.z.boolean().optional(),current_streak:e.z.number().optional(),longest_streak:e.z.number().optional(),total_checkins:e.z.number().optional(),last_checkin_date:e.z.string().optional(),next_cycle_day:e.z.number().optional(),week_rewards:e.z.array(M).optional(),today_reward:e.z.object({reward_asset:e.z.string().optional(),reward_amount:R.optional()}).partial().optional(),next_milestone:e.z.object({streak_days:e.z.number().optional(),reward_asset:e.z.string().optional(),reward_amount:R.optional()}).partial().optional()}).transform(t=>({user_id:"",current_streak:t.current_streak??0,longest_streak:t.longest_streak??0,total_check_ins:t.total_checkins??0,last_check_in:t.last_checkin_date,can_check_in:!!t.can_checkin,reward_gated:!!t.reward_gated,next_cycle_day:t.next_cycle_day??0,week_rewards:(t.
1week_rewards??[]).map(t=>({day_number:t.day_number??0,reward_amount:t.reward_amount??"0",reward_asset:t.reward_asset??"",bonus_multiplier:t.bonus_multiplier??"1",is_today:!!t.is_today,is_completed:!!t.is_completed,is_current:!!t.is_current})),next_reward:{asset:t.today_reward?.reward_asset??"",amount:t.today_reward?.reward_amount??"0",is_bonus:!1},next_milestone:t.next_milestone?{days:t.next_milestone.streak_days??0,bonus_asset:t.next_milestone.reward_asset??"",bonus_amount:t.next_milestone.reward_amount??"0"}:void 0})),B=e.z.object({reward_asset:e.z.string().optional(),reward_amount:R.optional(),bonus_applied:e.z.boolean().optional(),reward_gated:e.z.boolean().optional(),new_streak:e.z.number().optional(),day_in_cycle:e.z.number().optional(),milestone_claimed:e.z.object({streak_days:e.z.number().optional(),reward_amount:R.optional(),reward_asset:e.z.string().optional(),description:e.z.string().optional()}).nullish(),total_rewards:R.optional()}).transform(t=>({reward_asset:t.reward_asset??"",reward_amount:t.reward_amount??"0",bonus_applied:!!t.bonus_applied,reward_gated:!!t.reward_gated,new_streak:t.new_streak??0,day_in_cycle:t.day_in_cycle??0,milestone_claimed:t.milestone_claimed?{streak_days:t.milestone_claimed.streak_days??0,reward_amount:t.milestone_claimed.reward_amount??"0",reward_asset:t.milestone_claimed.reward_asset??"",description:t.milestone_claimed.description??""}:void 0,total_rewards:t.total_rewards??"0"})),H=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),checkin_date:e.z.string().optional(),streak_count:e.z.number().optional(),reward_asset:e.z.string().optional(),reward_amount:R.optional(),bonus_applied:e.z.boolean().optional()}).transform(t=>({id:t.id,check_in_date:t.checkin_date??"",streak_day:t.streak_count??0,reward_asset:t.reward_asset??"",reward_amount:t.reward_amount??"0",bonus_applied:!!t.bonus_applied})),K=e.z.object({total_checkins:e.z.number().optional(),total_rewards:R.optional(),reward_asset:e.z.string().optional(),current_streak:e.z.number().optional(),longest_streak:e.z.number().optional()}).transform(t=>({total_checkins:t.total_checkins??0,total_rewards:t.total_rewards??"0",reward_asset:t.reward_asset??"",current_streak:t.current_streak??0,longest_streak:t.longest_streak??0})),V=e.z.union([e.z.object({checkins:e.z.array(H),pagination:e.z.unknown().optional(),summary:K.optional()}).transform(t=>({history:t.checkins,total:t.pagination?.total??t.checkins.length,summary:t.summary})),e.z.array(H).transform(t=>({history:t,total:t.length,summary:void 0}))]),Y=e.z.object({month:e.z.number().optional(),year:e.z.number().optional(),days:e.z.array(e.z.object({date:e.z.string().optional(),checked_in:e.z.boolean().optional(),reward:R.optional()})).optional()}).transform(t=>({month:t.month??0,year:t.year??0,days:(t.days??[]).map(t=>({date:t.date??"",checked_in:!!t.checked_in,reward_amount:t.reward}))})),J=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),streak_days:e.z.number().optional(),reward_asset:e.z.string().optional(),reward_amount:R.optional(),is_achieved:e.z.boolean().optional(),is_claimed:e.z.boolean().optional(),claimed_at:e.z.string().optional()}).transform(t=>({id:t.id,days_required:t.streak_days??0,reward_asset:t.reward_asset??"",reward_amount:t.reward_amount??"0",is_completed:!!t.is_achieved,is_claimed:!!t.is_claimed,claimed_at:t.claimed_at})),Q=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),title:e.z.string().optional(),description:e.z.string().optional(),thumbnail_url:e.z.string().optional(),category:e.z.string().optional(),difficulty:e.z.string().optional(),estimated_minutes:e.z.number().optional(),duration_minutes:e.z.number().optional(),reward_asset:e.z.string().optional(),reward_amount:R.optional(),total_lessons:e.z.number().optional(),lessons_count:e.z.number().optional(),total_questions:e.z.number().optional(),passing_score:e.z.number().optional(),featured:e.z.boolean().optional(),is_featured:e.z.boolean().optional(),is_active:e.z.boolean().optional(),is_published:e.z.boolean().optional(),created_at:e.z.string().optional()}).transform(t=>({id:t.id,title:t.title??"",description:t.description??"",thumbnail_url:t.thumbnail_url,category:t.category??"",difficulty:t.difficulty??"beginner",duration_minutes:t.estimated_minutes??t.duration_minutes??0,reward_asset:t.reward_asset??"",reward_amount:t.reward_amount??"0",lessons_count:t.total_lessons??t.lessons_count??0,quiz_questions_count:t.total_questions??0,passing_score:t.passing_score??0,is_featured:t.is_featured??t.featured??
1!1,is_published:t.is_published??t.is_active??!0,created_at:t.created_at??""}));e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),course_id:e.z.union([e.z.string(),e.z.number()]).transform(String).optional(),title:e.z.string().optional(),content:e.z.string().optional(),video_url:e.z.string().optional(),reading_time_minutes:e.z.number().optional(),duration_minutes:e.z.number().optional(),sort_order:e.z.number().optional(),order:e.z.number().optional(),question:e.z.object({question:e.z.string().optional(),options:e.z.array(e.z.string()).optional()}).partial().optional()}).transform(t=>({id:t.id,course_id:t.course_id??"",title:t.title??"",content:t.content??"",video_url:t.video_url,duration_minutes:t.reading_time_minutes??t.duration_minutes??0,order:t.sort_order??t.order??0,quiz_question:t.question?{question:t.question.question??"",options:t.question.options??[],correct_index:0}:void 0})),e.z.object({total_courses_completed:e.z.number().optional(),total_rewards_earned:R.optional(),current_streak:e.z.number().optional(),in_progress_courses:e.z.array(Q).optional(),recommended_courses:e.z.array(Q).optional()}).transform(t=>({total_courses_completed:t.total_courses_completed??0,total_rewards_earned:t.total_rewards_earned??"0",current_streak:t.current_streak??0,in_progress_courses:(t.in_progress_courses??[]).map(t=>({course:t,progress:{course_id:t.id,user_id:"",status:"in_progress",lessons_completed:0,quiz_attempts:0,reward_claimed:!1}})),recommended_courses:t.recommended_courses??[]}));let X=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),code:e.z.string().optional(),discount_type:e.z.string().optional(),discount_value:R.optional(),discount_asset:e.z.string().nullish(),max_discount:R.nullish(),min_order_value:R.optional(),valid_from:e.z.string().optional(),expires_at:e.z.string().optional(),uses_remaining:e.z.number().optional(),status:e.z.string().optional(),created_at:e.z.string().optional()}).transform(t=>({id:t.id,code:t.code??"",type:"bonus",value:t.discount_value??"0",value_type:"percentage"===t.discount_type?"percentage":"fixed",asset:t.discount_asset??void 0,min_amount:t.min_order_value,max_discount:t.max_discount??void 0,valid_from:t.valid_from??t.created_at??"",valid_until:t.expires_at??"",used_count:0,status:t.status??"active",created_at:t.created_at??""}));e.z.union([e.z.object({vouchers:e.z.array(X)}).transform(t=>t.vouchers),(0,r.list)(X)]);let Z=e.z.object({total_cashback_earned:R.optional(),pending_cashback:R.optional(),claimable_cashback:R.optional(),current_tier:e.z.number().optional(),trading_volume_30d:R.optional(),cashback_rate:R.optional(),card_info:e.z.unknown().optional()}).transform(t=>({total_cashback_earned:t.total_cashback_earned??"0",pending_cashback:t.pending_cashback??"0",claimable_cashback:t.claimable_cashback??"0",current_tier:t.current_tier??0,trading_volume_30d:t.trading_volume_30d??"0",cashback_rate:t.cashback_rate??"0"})),tt=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),transaction_type:e.z.string().optional(),cashback_amount:R.optional(),cashback_asset:e.z.string().optional(),status:e.z.string().optional(),created_at:e.z.string().optional()}).transform(t=>({id:t.id,type:t.transaction_type??"trading",source_id:"",amount:t.cashback_amount??"0",asset:t.cashback_asset??"",status:t.status??"pending",created_at:t.created_at??"",claimable_at:t.created_at??""})),te=e.z.union([e.z.object({transactions:e.z.array(tt),pagination:e.z.unknown().optional()}).transform(t=>({history:t.transactions,total:t.pagination?.total??t.transactions.length})),e.z.array(tt).transform(t=>({history:t,total:t.length}))]),ta=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),status:e.z.string().optional(),bonus_amount:R.optional(),required_volume:R.optional(),current_volume:R.optional(),granted_at:e.z.string().optional(),expires_at:e.z.string().optional()}).transform(t=>({id:t.id,status:t.status??"active",locked_amount:t.bonus_amount??"0",required_volume:t.required_volume??"0",current_volume:t.current_volume??"0",expires_at:t.expires_at??"",created_at:t.granted_at??""})),tr=e.z.object({locked_amount:R.optional(),wagerings:e.z.array(ta).optional()}).transform(t=>({locked_amount:t.locked_amount??"0",wagerings:t.wagerings??[]}));e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),name:e.z.string().optional(),description:e.z.string().optional(),type:e.z.string().optional(),startTime:e.z.string().optional(),endTime:e.z.string().optional(),start_date:e.z.string().optional(),end_date:e.z.string().optional(),entryFee:R.optional(),minEntryBalance:R.optional(),status:e.z.string().optional()}).transform(t=>({id:t.id,name:t.name??"",description:t.description??"",type:t.type??"trading_volume",start_date:t.startTime??t.start_date??"",end_date:t.endTime??t.end_date??"",prize_pool:[],rules:[],min_entry_amount:t.minEntryBalance,entry_fee:t.entryFee,participants_count:0,is_active:(t.status??"")==="active"}));let tn=e.z.object({user_id:e.z.union([e.z.string(),e.z.number()]).transform(String).optional(),username:e.z.string().optional(),nickname:e.z.string().optional(),rank:e.z.number().optional(),current_rank:e.z.number().nullish(),score:R.optional(),current_score:R.optional()}).transform(t=>({rank:t.rank??t.current_rank??0,user_id:t.user_id??"",nickname:t.nickname??t.username??"",score:t.score??t.current_score??"0"}));e.z.union([e.z.object({items:e.z.array(tn)}).transform(t=>t.items),(0,r.list)(tn)]);let to=e.z.object({competition_id:e.z.union([e.z.string(),e.z.number()]).transform(String).optional(),user_id:e.z.union([e.z.string(),e.z.number()]).transform(String).optional(),current_rank:e.z.number().nullish(),rank:e.z.number().nullish(),current_score:R.optional(),score:R.optional(),registered_at:e.z.string().optional(),joined_at:e.z.string().optional()}).transform(t=>({competition_id:t.competition_id??"",user_id:t.user_id??"",rank:t.current_rank??t.rank??void 0,score:t.current_score??t.score??"0",joined_at:t.registered_at??t.joined_at??""}));function ti(t,e){return e?0===t?e("dashboard.rewards.noStreak"):1===t?e("dashboard.rewards.oneDay"):e("dashboard.rewards.nDays",{n:t}):0===t?"No streak":1===t?"1 day":`${t} days`}
1function ts(t){switch(t){case"pending":return"bg-yellow-500/10 text-yellow-500";case"claimable":return"bg-[#BDFF2B]/10 text-[#BDFF2B]";case"claimed":return"bg-blue-500/10 text-blue-400";default:return"bg-gray-500/10 text-gray-500"}}function tl(t){switch(t){case"trading":return"Trading";case"withdrawal":return"Withdrawal";case"referral":return"Referral";default:return t}}function t_(t){let e=parseFloat(t.required_volume)||0,a=parseFloat(t.current_volume)||0;return 0===e?100:Math.min(a/e*100,100)}e.z.union([e.z.object({items:e.z.array(to)}).transform(t=>t.items),(0,r.list)(to)]),e.z.object({id:e.z.union([e.z.string(),e.z.number()]).transform(String),name:e.z.string().optional(),description:e.z.string().optional(),token_asset:e.z.string().optional(),asset:e.z.string().optional(),total_amount:R.optional(),min_amount_per_user:R.optional(),registration_start:e.z.string().optional(),distribution_start:e.z.string().optional(),distribution_end:e.z.string().optional(),claim_deadline:e.z.string().optional(),status:e.z.string().optional()}).transform(t=>({id:t.id,name:t.name??"",description:t.description??"",asset:t.token_asset??t.asset??"",total_amount:t.total_amount??"0",per_user_amount:t.min_amount_per_user??"0",eligibility_criteria:[],start_date:t.registration_start??t.distribution_start??"",end_date:t.distribution_end??"",claim_deadline:t.claim_deadline??"",status:t.status??"upcoming",participants_count:0})),e.z.object({campaign_id:e.z.union([e.z.string(),e.z.number()]).transform(String).optional(),airdrop_id:e.z.union([e.z.string(),e.z.number()]).transform(String).optional(),is_eligible:e.z.boolean().optional(),allocated_amount:R.optional(),claimed_amount:R.optional(),status:e.z.string().optional()}).transform(t=>({airdrop_id:t.campaign_id??t.airdrop_id??"",is_eligible:!!t.is_eligible,amount:t.allocated_amount??"0",criteria_met:[],claimed:(t.claimed_amount??"0")!=="0"||"claimed"===t.status,claim_deadline:""})),t.s(["cashbackService",0,{getDashboard:async()=>r.http.get("/cashback/dashboard",Z,"GET /cashback/dashboard"),async getHistory(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get("/cashback/history"+e,te,"GET /cashback/history")},async claimCashback(){let t=await a.api.post("/cashback/claim");if(!t.success||!t.data)throw Error(t.message||"Failed to claim cashback");return t.data},async getWagering(){try{return await r.http.get("/vouchers/cashback/wagering",tr,"GET /vouchers/cashback/wagering")}catch{return{locked_amount:"0",wagerings:[]}}}},"checkInService",0,{getConfig:async()=>r.http.get("/checkin/config",D,"GET /checkin/config"),getEvents:async()=>r.http.get("/checkin/events",(0,r.list)(U),"GET /checkin/events"),checkIn:async()=>r.http.post("/checkin",void 0,B,"POST /checkin"),getStatus:async()=>r.http.get("/checkin/status",W,"GET /checkin/status"),async getHistory(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get("/checkin/history"+e,V,"GET /checkin/history")},async getCalendar(t,e){let a=new URLSearchParams;t&&a.set("month",String(t)),e&&a.set("year",String(e));let n=a.toString()?`?${a.toString()}`:"";return r.http.get("/checkin/calendar"+n,Y,"GET /checkin/calendar")},async getMilestones(){let t=e.z.union([e.z.object({milestones:e.z.array(J)}).transform(t=>t.milestones),(0,r.list)(J)]);return r.http.get("/checkin/milestones",t,"GET /checkin/milestones")},async claimMilestone(t){let e,r=await a.api.post((e=t,`/checkin/milestones/${e}/claim`));if(!r.success||!r.data)throw Error(r.message||"Failed to claim milestone");return r.data}},"formatStreak",()=>ti,"getCashbackStatusBg",()=>ts,"getCashbackTypeLabel",()=>tl,"getWageringProgress",()=>t_],31022);let tp=e.z.union([e.z.string(),e.z.number()]).transform(String),tc=e.z.object({total_24h:tp.optional(),total_7d:tp.optional(),total_30d:tp.optional(),total_trades_24h:e.z.number().optional(),by_symbol_24h:e.z.record(e.z.string(),tp).optional()}).transform(t=>{let e=t.total_24h??"0",a=t.by_symbol_24h??{},r=parseFloat(e)||0;return{period:"24h",total_volume:e,total_7d:t.total_7d??"0",total_30d:t.total_30d??"0",total_trades_24h:t.total_trades_24h??0,spot_volume:"0",futures_volume:"0",margin_volume:"0",options_volume:"0",volume_change_percent:"0",volume_by_pair:Object.entries(a).map(([t,e])=>
1({symbol:t,volume:e,percentage:r>0?(parseFloat(e)/r*100).toFixed(2):"0"}))}}),td=e.z.object({user_id:e.z.union([e.z.string(),e.z.number()]).optional(),username:e.z.string().optional(),total_volume:tp.optional(),total_trades:e.z.number().optional(),profit_loss:tp.optional(),win_rate:e.z.number().optional()}).transform(t=>({rank:0,user_id:String(t.user_id??""),nickname:t.username??"",trading_volume:t.total_volume??"0",pnl:t.profit_loss??"0",pnl_percent:"0",win_rate:null!=t.win_rate?String(t.win_rate):"0",trades_count:t.total_trades??0})),tu=e.z.unknown().transform(t=>(Array.isArray(t)?t:Array.isArray(t?.traders)?t.traders:Array.isArray(t?.data)?t.data:[]).map(t=>td.safeParse(t)).filter(t=>t.success).map((t,e)=>({...t.data,rank:e+1}))),tm=e.z.object({symbol:e.z.string(),volume_24h:tp.optional(),trades_24h:e.z.number().optional(),price_change:tp.optional(),price_change_percent:tp.optional()}).transform(t=>{let[e="",a=""]=t.symbol.includes("/")?t.symbol.split("/"):[t.symbol,""],r=parseFloat(t.price_change_percent??"0")||0;return{symbol:t.symbol,base_asset:e,quote_asset:a,volume_24h:t.volume_24h??"0",trades_24h:t.trades_24h??0,price:"0",price_change_24h:t.price_change??"0",trend:r>0?"up":r<0?"down":"neutral"}}),tg=e.z.object({pairs:e.z.array(tm)}).transform(t=>t.pairs),ty=e.z.object({total_trades:e.z.number().optional(),total_volume:tp.optional(),total_buy_volume:tp.optional(),total_sell_volume:tp.optional(),total_fees_paid:tp.optional(),avg_trade_size:tp.optional(),most_traded_symbol:e.z.string().optional()}).transform(t=>({total_trading_volume:t.total_volume??"0",spot_volume:t.total_volume??"0",futures_volume:"0",margin_volume:"0",total_trades:t.total_trades??0,total_buy_volume:t.total_buy_volume??"0",total_sell_volume:t.total_sell_volume??"0",total_fees_paid:t.total_fees_paid??"0",avg_trade_size:t.avg_trade_size??"0",most_traded_symbol:t.most_traded_symbol??"",total_deposits:"0",total_withdrawals:"0",net_deposits:"0",account_age_days:0,vip_level:0,trading_fee_tier:"",maker_fee:"0",taker_fee:"0"})),tb=e.z.object({pnl:tp.optional(),start_time:e.z.string().optional(),end_time:e.z.string().optional()}).transform(t=>{let e=t.pnl??"0";return{period:"30d",total_pnl:e,realized_pnl:e,unrealized_pnl:"0",spot_pnl:e,futures_pnl:"0",margin_pnl:"0",options_pnl:"0",trading_fees_paid:"0",funding_fees_paid:"0",interest_paid:"0",net_pnl:e,roi:"0",best_trade:{symbol:"",pnl:"0",date:""},worst_trade:{symbol:"",pnl:"0",date:""},pnl_by_day:[],pnl_by_asset:[]}});function tz(t){let e=parseFloat(t);return isNaN(e)?"$0":e>=1e12?`$${(e/1e12).toFixed(2)}T`:e>=1e9?`$${(e/1e9).toFixed(2)}B`:e>=1e6?`$${(e/1e6).toFixed(2)}M`:e>=1e3?`$${(e/1e3).toFixed(2)}K`:`$${e.toFixed(2)}`}t.s(["analyticsPublicService",0,{async getTradingVolume(t){let e=t?`?period=${t}`:"";return r.http.get("/analytics/trading-volume"+e,tc,"GET /analytics/trading-volume")},async getTopTraders(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return r.http.get("/analytics/top-traders"+e,tu,"GET /analytics/top-traders")},async getPopularPairs(t){let e=t?`?limit=${t}`:"";return r.http.get("/analytics/popular-pairs"+e,tg,"GET /analytics/popular-pairs")},async getMarketOverview(){let t=await a.api.get("/analytics/market-overview",{skipAuth:!0});if(!t.success||!t.data)throw Error(t.message||"Failed to get market overview");return t.data},async getAssetAnalytics(t){let e,r=await a.api.get((e=t,`/analytics/assets/${e}`),{skipAuth:!0});if(!r.success||!r.data)throw Error(r.message||"Failed to get asset analytics");return r.data}},"analyticsService",0,{getUserStats:async()=>r.http.get("/analytics/user/stats",ty,"GET /analytics/user/stats"),async getUserPnL(t="30d"){let e=Math.floor(Date.now()/1e3),a=`?start_time=${"all"===t?0:e-({"24h":86400,"7d":604800,"30d":2592e3,"90d":7776e3,"1y":31536e3,all:0})[t]}&end_time=${e}`;return r.http.get("/analytics/user/pnl"+a,tb,"GET /analytics/user/pnl")}},"formatVolume",()=>tz],287392)},429058,t=>{"use strict";var e=t.i(681307),a=t.i(444592);let r=e.z.union([e.z.string(),e.z.number()]).transform(String),n=e.z.object({id:e.z.union([e.z.string(),e.z.number()]).optional(),symbol:e.z.string(),name:e.z.string()}).passthrough().transform(function(t){let e=Array.isArray(t.category)?t.category:Array.isArray(t.categories)?t.categories:"string"==typeof t.category&&t.category?[t.category]:[];return{id:String(t.id??t.symbol??""),symbol:String(t.symbol??""),name:String(t.name??""),logo_url:t.logo_url??t.image_small??t.image_large??t.image_thumb??void 0,description:t.description??t.short_description??void 0,website:t.website??t.homepage??void 0,whitepaper:t.whitepaper??void 0,explorer:t.explorer??void 0,github:t.github??void 0,twitter:t.twitter??void 0,telegram:t.telegram??void 0,discord:t.discord??void 0,reddit:t.reddit??void 0,category:e,tags:Array.isArray(t.tags)?t.tags:[],launch_date:t.launch_date??t.genesis_date??void 0,max_supply:null!=t.max_supply?String(t.max_supply):void 0,total_supply:null!=t.total_supply?String(t.total_supply):void 0,circulating_supply:null!=t.circulating_supply?String(t.circulating_supply):void 0,market_cap:null!=t.market_cap?String(t.market_cap):null!=t.market_cap_usd?String(t.market_cap_usd):void 0,market_cap_rank:"number"==typeof t.market_cap_rank?t.market_cap_rank:void 0,fully_diluted_valuation:null!=t.fully_diluted_valuation?String(t.fully_diluted_valuation):void 0,coingecko_id:t.coingecko_id??void 0,coinmarketcap_id:"number"==typeof t.coinmarketcap_id?t.coinmarketcap_id:void 0,is_listed:t.is_listed??t.is_active??!0,is_stablecoin:!!t.is_stablecoin,is_enabled:t.is_enabled??t.is_active??!0}}),o=e.z.union([e.z.object({tokens:e.z.array(n),total:e.z.number().optional()}).transform(t=>({tokens:t.tokens,total:t.total??t.tokens.length})),e.z.array(n).transform(t=>({tokens:t,total:t.length}))]),i=e.z.object({token_id:e.z.union([e.z.string(),e.z.number()]).optional().transform(t=>null!=t?String(t):""),network_id:e.z.union([e.z.string(),e.z.number()]).optional().transform(t=>null!=t?String(t):""),network_name:e.z.string().optional().transform(t=>t??""),contract_address:e.z.string().optional(),decimals:e.z.union([e.z.string(),e.z.number()]).optional().transform(t=>Number(t??0)),is_native:e.z.boolean().optional().transform(t=>!!t),is_deposit_enabled:e.z.boolean().optional().transform(t=>!!t),is_withdrawal_enabled:e.z.boolean().optional().transform(t=>!!t),min_deposit:r.optional().transform(t=>t??"0"),min_withdrawal:r.optional().transform(t=>t??"0"),withdrawal_fee:r.optional().transform(t=>t??"0"),confirmation_blocks:e.z.union([e.z.string(),e.z.number()]).optional().transform(t=>Number(t??0)),explorer_url:e.z.string().optional()}),s=e.z.object({symbol:e.z.string().optional().transform(t=>t??""),price_usd:r.optional().transform(t=>t??"0"),price_btc:r.optional().transform(t=>t??"0"),price_change_1h:r.optional().transform(t=>t??"0"),price_change_24h:r.optional().transform(t=>t??"0"),price_change_7d:r.optional().transform(t=>t??"0"),price_change_30d:r.optional().transform(t=>t??"0"),volume_24h:r.optional().transform(t=>t??"0"),market_cap:r.optional().transform(t=>t??"0"),updated_at:e.z.string().optional().transform(t=>t??"")}),l=e.z.object({symbol:e.z.string().optional().transform(t=>t??""),current_price_usd:r.optional(),market_cap_usd:r.optional(),total_volume_usd:r.optional(),all_time_high:r.optional(),all_time_high_date:e.z.string().optional(),all_time_low:r.optional(),all_time_low_date:e.z.string().optional(),price_usd:r.optional().transform(t=>t??"0"),market_cap:r.optional().transform(t=>t??"0"),market_cap_rank:e.z.union([e.z.string(),e.z.number()]).optional().transform(t=>Number(t??0)),volume_24h:r.optional().transform(t=>t??"0"),high_24h:r.optional().transform(t=>t??"0"),low_24h:r.optional().transform(t=>t??"0"),price_change_24h:r.optional().transform(t=>t??"0"),price_change_percentage_24h:r.optional().transform(t=>t??"0"),circulating_supply:r.optional().transform(t=>t??"0"),total_supply:r.optional().transform(t=>t??"0"),max_supply:r.optional(),ath:r.optional().transform(t=>t??"0"),ath_date:e.z.string().optional().transform(t=>t??""),ath_change_percentage:r.optional().transform(t=>t??"0"),atl:r.optional().transform(t=>t??"0"),atl_date:e.z.string().optional().transform(t=>t??""),atl_change_percentage:r.optional().transform(t=>t??"0")}).passthrough().transform(t=>{let e=(...e)=>{for(let a of e){let e=t[a];if(null!=e&&""!==e&&"0"!==e)return String(e)}return"0"},a=e("price_change_percentage_24h","price_change_24h");return{...t,price_usd:e("price_usd","current_price_usd"),market_cap:e("market_cap","market_cap_usd"),volume_24h:e("volume_24h","total_volume_usd"),price_change_percentage_24h:a,ath:e("ath","all_time_high"),ath_date:String(t.ath_date??t.all_time_high_date??""),atl:e("atl","all_time_low"),atl_date:String(t.atl_date??t.all_time_low_date??"")}}),_=e.z.object({timestamp:e.z.union([e.z.string(),e.z.number()]).optional().transform(t=>null!=t?String(t):""),price:r.optional().transform(t=>t??"0"),volume:r.optional().transform(t=>t??"0"),market_cap:r.optional().transform(t=>t??"0")});e.z.object({rate:e.z.union([e.z.string(),e.z.number()]).optional()}).passthrough().transform(function(t){let e=null!=t.rate?String(t.rate):"0",a=parseFloat(e);return{from:String(t.from??t.base_currency??""),to:String(t.to??t.target_currency??""),rate:e,inverse_rate:null!=t.inverse_rate?String(t.inverse_rate):a?String(1/a):"0",updated_at:String(t.updated_at??t.last_updated??"")}}),e.z.object({code:e.z.string().optional().transform(t=>t??""),name:e.z.string().optional().transform(t=>t??""),symbol:e.z.string().optional().transform(t=>t??""),decimal_places:e.z.union([e.z.string(),e.z.number()]).optional().transform(t=>Number(t??2)),is_enabled:e.z.boolean().optional().transform(t=>t??!0)}),t.s(["tokenInfoService",0,{async getTokens(t){let e=t?"?"+new URLSearchParams(Object.entries(t).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return a.http.get("/tokens"+e,o,"GET /tokens")},getToken:async t=>{let e;return a.http.get((e=t,`/tokens/${e}`),n,"GET /tokens/:symbol")},getTokenNetworks:async t=>{let e;return a.http.get((e=t,`/token-info/tokens/${e}/networks`),(0,a.list)(i),"GET /token-info/tokens/:symbol/networks")},getTokenPrice:async t=>{let e;return a.http.get((e=t,`/token-info/tokens/${e}/price`),s,"GET /token-info/tokens/:symbol/price")},getTokenMarketData:async t=>{let e;return a.http.get((e=t,`/tokens/${e}`),l,"GET /tokens/:symbol (market fields)")},async getTokenHistory(t,e){let r,n=e?"?"+new URLSearchParams(Object.entries(e).filter(([,t])=>void 0!==t).map(([t,e])=>[t,String(e)])).toString():"";return a.http.get((r=t,`/token-info/tokens/${r}/history`+n),(0,a.list)(_),"GET /token-info/tokens/:symbol/history")},getCategories:async()=>a.http.get("/token-info/categories",(0,a.list)(e.z.string()),"GET /token-info/categories"),searchTokens:async t=>a.http.get(`/token-info/search?q=${encodeURIComponent(t)}`,(0,a.list)(n),"GET /token-info/search")}])},525301,386691,t=>{"use strict";var e=t.i(843476),a=t.i(271645);t.i(31241);var r=t.i(261238),n=t.i(28352);t.i(847100),t.i(557306),t.i(414526),t.i(679985),t.i(589160),t.i(816595),t.i(622891),t.i(797044),t.i(701452),t.i(514279),t.i(88090),t.i(909611),t.i(177885),t.i(795172),t.i(646897),t.i(31022),t.i(287392),t.i(791375),t.i(429058),t.i(660236),t.i(841651),t.s([],386691);var o=t.i(94623);function i(t){if(!t)return null;try{let e=t.split(".")[1];if(!e)return null;let a=JSON.parse(atob(e.replace(/-/g,"+").replace(/_/g,"/")));return a.active_account_id||a.user_id||null}catch{return null}}let s=(0,a.createContext)(void 0);function l({children:t}){let[l,_]=(0,a.useState)({user:null,isLoading:!0,isAuthenticated:!1,error:null,requires2FA:!1,twoFAToken:null}),p=(0,a.useCallback)(async(t,e)=>t.requires_2fa&&t.two_fa_token?(_(e=>({...e,isLoading:!1,isAuthenticated:!1,error:null,requires2FA:!0,requires2FAEnrollment:!1,twoFAToken:t.two_fa_token})),{success:!0,message:e,requires2FA:!0}):t.requires_2fa_enrollment&&t.two_fa_token?(_(e=>({...e,isLoading:!1,isAuthenticated:!1,error:null,requires2FA:!1,requires2FAEnrollment:!0,twoFAToken:t.two_fa_token})),{success:!0,message:e,requires2FAEnrollment:!0}):t.requires_passkey?(_(e=>({...e,isLoading:!1,isAuthenticated:!1,error:null,requires2FA:!1,requires2FAEnrollment:!1,requiresPasskey:!0,passkeyEmail:t.user?.email??null})),{success:!0,message:e,requiresPasskey:!0}):(await (0,o.finalizeReferralAfterAuth)(t.referral_status),_({user:t.user,isLoading:!1,isAuthenticated:!0,error:null,requires2FA:!1,twoFAToken:null}),{success:!0,message:e,isNewUser:t.is_new_user}),[]);(0,a.useEffect)(()=>{(async()=>
1{if(r.tokenStorage.hasTokens())try{let t=await n.authService.getProfile();t.success&&t.data?_({user:t.data,isLoading:!1,isAuthenticated:!0,error:null,requires2FA:!1,twoFAToken:null}):((401===t.status||"UNAUTHORIZED"===t.error)&&r.tokenStorage.clearTokens(),_({user:null,isLoading:!1,isAuthenticated:!1,error:null,requires2FA:!1,twoFAToken:null}))}catch{_({user:null,isLoading:!1,isAuthenticated:!1,error:null,requires2FA:!1,twoFAToken:null})}else _({user:null,isLoading:!1,isAuthenticated:!1,error:null,requires2FA:!1,twoFAToken:null})})()},[]),(0,a.useEffect)(()=>{let t=t=>{t.key!==r.ACCESS_TOKEN_KEY||i(t.oldValue)!==i(t.newValue)&&window.location.reload()};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[]);let c=(0,a.useCallback)(async(t,e)=>{_(t=>({...t,isLoading:!0,error:null}));let a=`${window.location.origin}/verify`,r=await n.authService.sendMagicLink(t,e,a);return _(t=>({...t,isLoading:!1,error:r.success?null:r.message})),{success:r.success,message:r.message}},[]),d=(0,a.useCallback)(async t=>{_(t=>({...t,isLoading:!0,error:null}));let e=await n.authService.verifyMagicLink(t);return e.success&&e.data?p(e.data,e.message):(_(t=>({...t,isLoading:!1,error:e.message})),{success:!1,message:e.message})},[p]),u=(0,a.useCallback)(async()=>{_(t=>({...t,isLoading:!0,error:null}));let t=Math.random().toString(36).substring(2,15),e=`${t}_web`;sessionStorage.setItem("oauth_state",t);let a=await n.authService.getGoogleAuthUrl(e);a.success&&a.data?.url?window.location.href=a.data.url:_(t=>({...t,isLoading:!1,error:a.message||"Failed to get Google auth URL"}))},[]),m=(0,a.useCallback)(async t=>{_(t=>({...t,isLoading:!0,error:null}));let e=await n.authService.googleCallback(t);return e.success&&e.data?p(e.data,e.message):(_(t=>({...t,isLoading:!1,error:e.message})),{success:!1,message:e.message})},[p]),g=(0,a.useCallback)(async t=>{_(t=>({...t,isLoading:!0,error:null}));let e=await n.authService.appleCallback(t);return e.success&&e.data?p(e.data,e.message):(_(t=>({...t,isLoading:!1,error:e.message})),{success:!1,message:e.message})},[p]),y=(0,a.useCallback)(async t=>{if(!l.twoFAToken)return{success:!1,message:"context.authContext.your2faSessionHasExpiredPlease"};_(t=>({...t,isLoading:!0,error:null}));let e=await n.authService.verifyLogin2FA(l.twoFAToken,t);return e.success&&e.data?.token&&e.data.user?(await (0,o.finalizeReferralAfterAuth)(e.data.referral_status),_({user:e.data.user,isLoading:!1,isAuthenticated:!0,error:null,requires2FA:!1,twoFAToken:null}),{success:!0,message:e.message}):(_(t=>({...t,isLoading:!1,error:e.message})),{success:!1,message:e.message})},[l.twoFAToken]),b=(0,a.useCallback)(()=>{_(t=>({...t,requires2FA:!1,requires2FAEnrollment:!1,requiresPasskey:!1,passkeyEmail:null,twoFAToken:null,error:null}))},[]),z=(0,a.useCallback)(async()=>{if(!l.twoFAToken)return{success:!1,message:"context.authContext.yourSessionHasExpiredPleaseSign"};let t=await n.authService.enrollStart2FA(l.twoFAToken);return t.success&&t.data?{success:!0,message:t.message,secret:t.data.secret,qrCode:t.data.qr_code,backupCodes:t.data.backup_codes??[]}:{success:!1,message:t.message}},[l.twoFAToken]),h=(0,a.useCallback)(async t=>{if(!l.twoFAToken)return{success:!1,message:"context.authContext.yourSessionHasExpiredPleaseSign"};_(t=>({...t,isLoading:!0,error:null}));let e=await n.authService.enrollFinish2FA(l.twoFAToken,t);return e.success&&e.data?.token&&e.data.user?(await (0,o.finalizeReferralAfterAuth)(e.data.referral_status),_({user:e.data.user,isLoading:!1,isAuthenticated:!0,error:null,requires2FA:!1,requires2FAEnrollment:!1,twoFAToken:null}),{success:!0,message:e.message}):(_(t=>({...t,isLoading:!1,error:e.message})),{success:!1,message:e.message})},[l.twoFAToken]),f=(0,a.useCallback)(async()=>{_(t=>({...t,isLoading:!0})),await n.authService.logout(),_({user:null,isLoading:!1,isAuthenticated:!1,error:null,requires2FA:!1,twoFAToken:null})},[]),w=(0,a.useCallback)(async()=>{if(!r.tokenStorage.hasTokens())return;let t=await n.authService.getProfile();t.success&&t.data&&_(e=>({...e,user:t.data}))},[]),k=(0,a.useCallback)(async t=>{_(t=>({...t,isLoading:!0,error:null}));let e=await n.authService.beginPasskeyLogin(t);return _(t=>({...t,isLoading:!1,error:e.success?null:e.message})),{success:e.success,message:e.message,challenge:e.data?.challenge}},[]),v=(0,a.useCallback)(async(t,e)=>{_(t=>({...t,isLoading:!0,error:null}));let a=await n.authService.finishPasskeyLogin(t,e);return a.success&&a.data?(await (0,o.finalizeReferralAfterAuth)(a.data.referral_status),_({user:a.data.user,isLoading:!1,isAuthenticated:!0,error:null,requires2FA:!1,twoFAToken:null}),{success:!0,message:a.message}):(_(t=>({...t,isLoading:!1,error:a.message})),{success:!1,message:a.message})},[]),S=(0,a.useCallback)(()=>{_(t=>({...t,error:null}))},[]),E={...l,sendMagicLink:c,verifyMagicLink:d,loginWithGoogle:u,handleGoogleCallback:m,loginWithApple:g,verify2FACode:y,cancel2FA:b,enroll2FAStart:z,verify2FAEnrollment:h,logout:f,refreshUser:w,beginPasskeyLogin:k,finishPasskeyLogin:v,clearError:S};return(0,e.jsx)(s.Provider,{value:E,children:t})}function _(){let t=(0,a.useContext)(s);if(void 0===t)throw Error("useAuth must be used within an AuthProvider");return t}function p(t="/login"){let e=_();return(0,a.useEffect)(()=>{e.isLoading||e.isAuthenticated||(window.location.href=t)},[e.isLoading,e.isAuthenticated,t]),e}t.s(["AuthProvider",()=>l,"useAuth",()=>_,"useRequireAuth",()=>p],525301)}]);

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.