@rango-dev/widget-embedded 0.29.1-next.14 → 0.29.1-next.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/dist/store/slices/settings.d.ts.map +1 -1
- package/dist/types/config.d.ts +0 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +1 -1
- package/src/store/slices/settings.ts +4 -1
- package/src/types/config.ts +0 -4
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var qf=Object.defineProperty;var i=(t,e)=>qf(t,"name",{value:e,configurable:!0});import{EventSeverity as GV,RouteEventType as VV,StepEventType as XV,StepExecutionBlockedEventStatus as KV,StepExecutionEventStatus as jV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as ZV,useWallets as kr,Events as JV}from"@rango-dev/wallets-react";import{Networks as e2,WalletTypes as t2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as n2}from"rango-types";import{UI_ID as zf}from"@rango-dev/ui";var wn="c6381a79-2817-4602-83bf-6a641a409e32",sl="https://api.rango.exchange",ll="https://explorer.rango.exchange",ye={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...zf};var pl="Roboto",ki=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as Di,Provider as Dg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Fg}from"rango-sdk";import Un,{createContext as Og,useEffect as rp,useMemo as Ug,useRef as ip}from"react";import{useEffect as cg}from"react";import{create as sg}from"zustand";import{subscribeWithSelector as lg}from"zustand/middleware";import Hf from"mitt";var ke=Hf(),Gf={on:ke.on,off:ke.off};import{RangoClient as ig}from"rango-sdk";import{BlockchainCategories as Jf,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as Rf}from"@rango-dev/wallets-react";import{detectInstallLink as eg,getCosmosExperimentalChainInfo as tg,isEvmAddress as og,KEPLR_COMPATIBLE_WALLETS as Xw,Networks as vl}from"@rango-dev/wallets-shared";import Ai from"bignumber.js";import{isCosmosBlockchain as ng}from"rango-types";import Vf from"bignumber.js";var Be=new Vf(0);import{WalletTypes as Xf}from"@rango-dev/wallets-shared";var cl=[Xf.LEAP];import{BlockchainCategories as vi,WalletState as Zf}from"@rango-dev/ui";import{TransactionType as xn}from"rango-sdk";function yo(t){return Array.from(new Set(t))}i(yo,"removeDuplicateFrom");function bi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(bi,"areEqual");function hl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(hl,"debounce");function xt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(xt,"containsText");function dl(t,e){return t.toLowerCase()===e.toLowerCase()}i(dl,"exactText");function fl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(fl,"startWithText");var P=i(()=>document.getElementById(ye.SWAP_BOX_ID),"getContainer"),Do=i(()=>document.getElementById(ye.EXPANDED_BOX_ID),"getExpanded");function gl(t,e,o){let n=!!e&&dl(e,t),r=!!o&&dl(o,t);return n!==r?n?-1:1:0}i(gl,"compareExactMatchText");function wi(t,e,o){let n=!!e&&xt(e,t),r=!!o&&xt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(wi,"compareContainsText");function xi(t,e,o){let n=!!e&&fl(e,t),r=!!o&&fl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(xi,"compareStartWithText");function yl(t,e,o){if(!o)return 0;let n=gl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=gl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=wi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=wi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=wi(o,t.address,e.address);if(r!==0)return r}return 0}i(yl,"compareWithSearchFor");var bn=i((t,e)=>{switch(e){case vi.ALL:return!0;case vi.UTXO:return t===xn.TRANSFER;case vi.OTHER:return t!==xn.TRANSFER&&t!==xn.COSMOS&&t!==xn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Sl=i(t=>ki.find(o=>o.value===t)?.url,"getFontUrlByName");function En(t,e){let o=!!t.find(n=>n.state===Zf.CONNECTED);return e===!1&&o}i(En,"isSingleWalletActive");function In(t,e){return e.find(o=>o.name===t)?.displayName}i(In,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function Cl(t,e){return e.find(o=>o.name===t)?.logo}i(Cl,"getBlockchainImage");function Fo(t,e){return e.find(o=>o.id===t)?.title}i(Fo,"getSwapperDisplayName");function Ei(t,e){return e.find(o=>o.name===t)??null}i(Ei,"findBlockchain");function Ii(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ii,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as kl}from"bignumber.js";var Oo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new kl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new kl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var An=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var gt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Uo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ce(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(ce,"formatTooltipNumbers");function Ni(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Ni,"mapStatusToWalletState");function wl(t,e,o,n){return o.filter(r=>!cl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m}=e(r),f=yo(m.map(g=>g.type)),d=Ni(t(r));return{title:a,image:s,link:eg(l),state:d,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:f}})}i(wl,"mapWalletTypesToWalletInfo");function Mn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Mn,"walletAndSupportedChainsNames");function xl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=Rf(p),m=l.length>0,f=l.includes(c),d=c===vl.Unknown;if(m&&!f&&!d)return;let T=c===vl.Unknown&&og(u);if(d&&!T)return;o.includes(c)||T?r?s(c,u.toLowerCase()):l.filter(S=>o.includes(S)).forEach(S=>{s(S,u.toLowerCase())}):s(c,u)}),a}i(xl,"prepareAccountsForWalletStore");function Jt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let m=u.from.blockchain,f=u.to.blockchain,d=a===o.swaps.length-1,g=c===p.length-1;(!d&&!g||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(l)}),Array.from(n)}i(Jt,"getQuoteWallets");function Ln(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ln,"isAccountAndWalletMatched");function bl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Ai(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(bl,"makeBalanceFor");function El(t){return{...t,loading:!1,error:!0}}i(El,"resetConnectedWalletState");var Il=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=N(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Ai(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return rg(r)},"calculateWalletUsdValue");function rg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(rg,"numberWithThousandSeparator");var Bn=i((t,e)=>{let o=tg(Object.entries(t).map(([,n])=>n).filter(ng));return o&&o[e]?.experimental},"isExperimentalChain");function Pn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Pn,"formatBalance");function Al(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(Al,"compareTokenBalance");function Rt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Rt,"areTokensEqual");function Nl(t){return t.sort((e,o)=>+(o.state===ht.CONNECTED)-+(e.state===ht.CONNECTED)||+(o.state===ht.DISCONNECTED||o.state===ht.CONNECTING)-+(e.state===ht.DISCONNECTED||e.state===ht.CONNECTING))}i(Nl,"sortWalletsBasedOnConnectionState");function _n(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(_n,"getConciseAddress");function Wl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Wl,"getAddress");function $n(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ai(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Dt({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i($n,"makeTokensBalance");var Ml=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ll(t){return t.map(e=>e.state).join("-")}i(Ll,"hashWalletsState");function Bl(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Bl,"filterBlockchainsByWalletTypes");function Pl(t,e){return e===Jf.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(bn(n,e))return!0;return!1})}i(Pl,"filterWalletsByCategory");var Wi={API_KEY:wn};function bt(t){return Wi[t]||""}i(bt,"getConfig");function _l(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Wi=e,Wi}i(_l,"initConfig");var $l=20,Dl=25,Mi="theme-widget",Qo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Rt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Rt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Li=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Fl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Dn,Ft=i(()=>Dn||(Dn=new ig(bt("API_KEY"),bt("BASE_URL")),Dn),"httpService");import{WidgetEvents as Ol}from"@rango-dev/queue-manager-rango-preset";var Bi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Bi||{}),Pi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Pi||{}),qo=(r=>(r[r.RouteEvent=Ol.RouteEvent]="RouteEvent",r[r.StepEvent=Ol.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(qo||{});var ag=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ot=ag;var te=Ot(sg()(lg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{ke.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}});let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{n.connectedWallets.find(l=>l.walletType===o)&&ke.emit("walletEvent",{type:"disconnect",payload:{walletType:o}});let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:$n(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Ln(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ft().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(T=>Ln(T,f)),g=p.find(T=>T.address===f.address&&T.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:bl(g,n),loading:!1}:f});return{loading:!1,balances:$n(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Ln(m,c))?El(c):c);return{loading:!1,balances:$n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Dt(o);return n[r]??null}}))));import{allProviders as pg}from"@rango-dev/provider-all";function Fn(t,e){let o=pg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(Fn,"matchAndGenerateProviders");function Ul(t,e){return Fn(t,e).map(r=>r.config.type)}i(Ul,"configWalletsToWalletName");function Ql(t,e){let o=te.use.clearConnectedWallet(),n=Fn(t,e);return cg(()=>{o(),n=Fn(t,e)},[t?.length]),{providers:n}}i(Ql,"useWalletProviders");import Wg,{createContext as Mg,useContext as Lg,useEffect as Bg,useRef as Pg}from"react";import{create as Ag}from"zustand";import{persist as Ng}from"zustand/middleware";var _i={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},ug={clientUrl:void 0},mg={liquiditySources:void 0},ql=i((t,e,o)=>({config:{..._i,...t},iframe:ug,campaignMode:mg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function On(t,e){let o=t.map(a=>a.swapperGroup),n=[];return yo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(On,"getUniqueSwappersGroups");function zl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(zl,"sortLiquiditySourcesByGroupTitle");function Ke(t,e){return e?.[t]==="hidden"}i(Ke,"isFeatureHidden");function Hl(t,e){return e?.[t]==="enabled"}i(Hl,"isFeatureEnabled");var Gl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&Qo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(xt(c.symbol,o.searchFor)||xt(c.address||"",o.searchFor)||xt(c.name||"",o.searchFor)):!0).sort((c,m)=>{let f=e().isTokenPinned(c,o.type),d=e().isTokenPinned(m,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let S=o.getBalanceFor(c),k=o.getBalanceFor(m),w=Al(S,k);if(w!==0)return w}let g=a.get(c.blockchain),T=a.get(m.blockchain),C=Ii(c,g),y=Ii(m,T);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let S=yl(c,m,o.searchFor);if(S)return S}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&T?g.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Dt(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Rt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(zl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,f)=>m.sort-f.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let f=Dt(m);a.set(f,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as dg,English as fg,Finland as gg,French as hg,German as yg,Greece as Sg,Italian as Cg,Japanese as Tg,Netherlands as kg,Poland as vg,Portuguese as wg,Russian as xg,Spanish as bg,Swedish as Eg,Ukrainian as Ig}from"@rango-dev/ui";var Vl=[{title:"English",label:"English",local:"en",SVGFlag:fg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:bg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:hg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Tg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:wg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:dg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:xg},{title:"German",label:"Deutsch",local:"de",SVGFlag:yg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Ig},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Eg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:gg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:kg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Sg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Cg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:vg}],So="en";var Xl=[.5,1,3],Kl=1,jl=5,Yl=100,Zl=0;var Jl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Kl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=yo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Ke("theme",n),s=Ke("language",n),l=Ke("liquiditySource",n),p=r?.singleTheme;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||So},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...o?._INTERNAL_SETTINGS_?.autoUpdateSettings&&{language:o.language||So}})}}),"createSettingsSlice");function Rl(t){return Ag()(Ng((...e)=>({...Gl(...e),...Jl(...e),...ql(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(Rl,"createAppStore");var ep=Mg(null);function h(){let t=Lg(ep);if(Bg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function tp(t){let e=Pg();return e.current||(e.current=Rl(t.config)),Wg.createElement(ep.Provider,{value:e.current},t.children)}i(tp,"AppStoreProvider");import{create as $g}from"zustand";var op="rango-widget";var zo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(op),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ie=Ot($g()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new zo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var Qn=Og({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Qg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:s?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Ql(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=ip(),f=ip();rp(()=>{n().catch(console.log)},[]),rp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter(Fg).map(y=>y.name),g=i((y,S,k,w,A)=>{if(S===Di.ACCOUNTS)if(k){let L=Mn(A.supportedBlockchains),E=xl(y,k,d,L,A.isContractWallet);E.length&&u(E,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(S===Di.ACCOUNTS&&w.connected){let L=`${y}-${w.network}-${k}`;w.connected&&(m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(S===Di.NETWORK&&w.network){let L=`${y}-${w.network}`;m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,S,k,w,A)},"onUpdateState"),T=ie.use.isActiveTab(),C=Ug(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Un.createElement(Qn.Provider,{value:C},Un.createElement(Dg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!T},t.children))}i(Qg,"Main");function qn(t){let{config:e,...o}=t;return Un.createElement(tp,{config:e},Un.createElement(Qg,{...o,config:e}))}i(qn,"WidgetWallets");import Ti from"react";import qg,{Fragment as zg}from"react";import{MemoryRouter as Hg,useInRouterContext as Gg}from"react-router";function ap({children:t}){let o=Gg()?zg:Hg;return qg.createElement(o,null,t)}i(ap,"AppRouter");import{I18nManager as Zv}from"@rango-dev/ui";import rl from"react";import Qe from"react";import{useRoutes as Dv}from"react-router-dom";var q={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as ko,useRef as Rn}from"react";import It from"bignumber.js";import{create as Kg}from"zustand";import{subscribeWithSelector as jg}from"zustand/middleware";import{getLastSuccessfulStep as Xg}from"@rango-dev/queue-manager-rango-preset";import wE from"bignumber.js";import{i18n as Ho}from"@lingui/core";var Fi={"Network Fee":Ho.t("Network Fee"),"Swapper Fee":Ho.t("Protocol Fee"),"Affiliate Fee":Ho.t("Affiliate Fee"),"Outbound network fee":Ho.t("Outbound Fee"),"Rango Fee":Ho.t("Rango Fee")},Oi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],sp=30;import{i18n as it}from"@lingui/core";import{RouteEventType as sE}from"@rango-dev/queue-manager-rango-preset";import Pe from"bignumber.js";import{PendingSwapNetworkStatus as Gn}from"rango-types";function zn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(zn,"isValidAddress");import{i18n as Me}from"@lingui/core";var oe=i(()=>({genericServerError:Me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Me.t("Please reset your liquidity sources."),description:Me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Me.t("No Routes Found."),description:Me.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Me.t("High Price Impact"),title:Me.t("Price impact is too high!"),description:Me.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Me.t("USD Price Unknown"),title:Me.t("USD Price Unknown, Cannot calculate Price Impact."),description:Me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Me.t("Confirm USD Price Unknown")}}),"errorMessages");function lp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(lp,"getQuoteErrorMessage");import{i18n as Hn}from"@lingui/core";var to=i(()=>({connectWallet:Hn.t("Connect Wallet"),swap:Hn.t("Swap"),swapAnyway:Hn.t("Swap anyway"),ethWarning:Hn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function pp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Pe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Pe(1e3)))??!1}i(pp,"hasHighValueLoss");function cp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(cp,"hasLimitError");function up(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Pe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Pe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=it.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=it.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=it.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=it.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(up,"getLimitErrorMessage");function mp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:to().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:to().swap,action:"confirm-swap",disabled:!0}:s?{title:to().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:to().ethWarning,action:"confirm-warning",disabled:!1}:{title:to().swap,action:"confirm-swap",disabled:!1}:{title:to().connectWallet,action:"connect-wallet",disabled:!1}}i(mp,"getSwapButtonState");function Ui(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Ui,"canComputePriceImpact");function Qi(t,e){let o=Be;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(Qi,"getUsdFeeOfStep");function Vn(t,e){return t.reduce((o,n)=>o.plus(Qi(n,e)),Be)}i(Vn,"getTotalFeeInUsd");function qi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(qi,"getUsdFee");function dp(t){return t.reduce((e,o)=>e.plus(qi(o)),Be)}i(dp,"getTotalFeesInUsd");function fp(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(fp,"getFeesGroup");function gp(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(gp,"checkSlippageErrors");function hp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(hp,"checkSlippageWarnings");function Xn(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Xn,"getMinRequiredSlippage");function yp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(yp,"hasProperSlippage");function Sp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:f,destination:d,enableCentralizedSwappers:g}=t,T=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:T??{},slippage:u.toString(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(Sp,"createQuoteRequestBody");function Cp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Cp,"getWalletsForNewSwap");function Co(t){return t?.outputAmount||null}i(Co,"getQuoteOutputAmount");function Tp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(Tp,"getPercentageChange");function kp(t,e){let o=Co(t),n=Co(e);if(!o||!n)return!1;let r=je(o,n);return r?r<=-1:!0}i(kp,"isOutputAmountChangedALot");function vp(t,e,o){let n=t.validationStatus,r=Jt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Ap(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Pe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Pe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=it.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=it.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=it.t(" for input and network fee")),it.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Xe(s.asset.blockchain,o)}})})}i(vp,"generateBalanceWarnings");function Kn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(Kn,"calcOutputUsdValue");function Go(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Gn.NetworkChanged}i(Go,"isNetworkStatusInWarningState");function wp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Go(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Gn.WaitingForConnectingWallet:n=n||it.t("Waiting for connecting wallet");break;case Gn.WaitingForQueue:n=n||it.t("Waiting for other running tasks to be finished");break;case Gn.WaitingForNetworkChange:n=n||it.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(wp,"getSwapMessages");function xp(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(xp,"getLastConvertedTokenInFailedSwap");function bp(t){return t.status==="failed"}i(bp,"shouldRetrySwap");function Ep(t,e,o,n,r,a){if(!n||t)return!0;let s=Jt({filter:"all",quote:n}),l=Jt({filter:"required",quote:n}),p=s.every(m=>r.some(f=>f.chain===m)),u=l.every(m=>r.some(f=>f.chain===m)),c=o&&a?zn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Ep,"isConfirmSwapDisabled");function Ip(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Ip,"isTokensIdentical");function Yn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Yn,"getQuoteToTokenUsdPrice");function zi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(zi,"isNumberOfSwapsChanged");function Hi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!bi(o,n)}i(Hi,"isQuoteSwappersUpdated");function Gi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!bi(o,n)}i(Gi,"isQuoteInternalCoinsUpdated");function Wp(t,e){return zi(t,e)||Hi(t,e)||Gi(t,e)}i(Wp,"isQuoteChanged");function Ap(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Ap,"getRequiredBalanceOfWallet");function Et(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Et,"getPriceImpactLevel");function Zn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Xg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ei(a?a.toBlockchain:n.fromBlockchain,e),p=Ei(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(Zn,"createRetryQuote");function To(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=je(s.toString(),l.toString());if(!!c&&pp(s,c)){let f=Vn(t?.swaps,r),d=Et(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Xn(t.swaps),u=a>jl;if(yp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:hp(t,a),minRequiredSlippage:p};return null}i(To,"generateQuoteWarnings");function je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Tp(t.toString(),e.toString());return n&&n<0?n:null}i(je,"getPriceImpact");var Mp=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Jn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Lp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Bp=i(t=>{let e=i((o,n)=>{let r=Oi.indexOf(o.value),a=Oi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=i((t,e)=>t?.usdPrice?new It(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Ot(Kg()(jg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new It(0),outputUsdValue:new It(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Be;return Uo(o.inputAmount)?(e&&(n=e?.outputAmount?new It(e?.outputAmount):null,r=Kn(e?.outputAmount,Yn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new It(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:oo(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new It(0),outputUsdValue:new It(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new It(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?oo(e.toToken,e.outputAmount?.toString()||""):new It(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Pp=j.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ke.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&ke.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function _p(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:T,setAffiliatePercent:C,setAffiliateWallets:y}=h(),S=c?.from?.tokens,k=c?.from?.blockchains,w=c?.to?.tokens,A=c?.to?.blockchains,L=Rn(void 0),E=Rn(void 0),v=Rn(void 0),b=Rn(void 0);ko(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),ko(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.from?.blockchain),B=c?.from?.token,U=B&&g(B);(x||!x&&v.current)&&n(x??null),U?a({token:U,meta:{blockchains:f,tokens:d}}):!U&&L.current&&a({token:null}),v.current=c?.from?.blockchain,L.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),ko(()=>{Qo(s,S)&&a({token:null}),Li(p,k)&&n(null)},[S,k]),ko(()=>{Qo(l,w)&&a({token:null}),Li(u,A)&&o(null)},[w,A]),ko(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.to?.blockchain),B=c?.to?.token,U=B&&g(B);(x||!x&&b.current)&&o(x??null),U?e({token:U,meta:{blockchains:f,tokens:d}}):!U&&E.current&&e({token:null}),b.current=c?.to?.blockchain,E.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),ko(()=>{T(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(_p,"useSyncStoresWithConfig");import{useEffect as Ki,useRef as Yg}from"react";import{useInRouterContext as Zg,useLocation as Jg,useSearchParams as Rg}from"react-router-dom";function Vi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Vi,"convertTokenSearchParamToAsset");function Xi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Xi,"tokenToSearchParam");function ji(){let t=Jg(),[e,o]=Rg(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=j(),d=h().fetchStatus,g=h().blockchains(),T=h().tokens(),C=Zg(),{updateIframe:y,updateCampaignMode:S}=h(),k=h().isInCampaignMode(),w=Yg(),{findToken:A}=h(),L=i(()=>{let v={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(v[G]=ee);let b=e.get("fromAmount"),x=e.get("fromBlockchain"),B=e.get("fromToken"),U=e.get("toBlockchain"),I=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:x,fromToken:B,toBlockchain:U,toToken:I,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:v}},"getUrlSearchParams"),E=i(v=>{for(let b in v)v[b]||delete v[b];o(v,{replace:!0})},"updateUrlSearchParams");Ki(()=>{let{autoConnect:v,clientUrl:b,utmQueryParams:x}=L();C&&d==="success"&&E({fromBlockchain:n?.name,fromToken:Xi(a),toBlockchain:r?.name,toToken:Xi(s),fromAmount:l,autoConnect:v??void 0,clientUrl:b??void 0,liquiditySources:k?w.current:void 0,...x})},[t.pathname,l,n,a,r,s,k]),Ki(()=>{if(!C)return;let v=L();if(!w.current&&v.liquiditySources&&(w.current=v.liquiditySources),v.fromAmount&&f(v.fromAmount),d==="success"){let b=g.find(I=>I.name===v.fromBlockchain),x=v.fromToken&&b?A(Vi(v.fromToken,b)):void 0,B=g.find(I=>I.name===v.toBlockchain),U=v.toToken&&B?A(Vi(v.toToken,B)):void 0;b&&(p(b),x&&c({token:x,meta:{blockchains:g,tokens:T}})),B&&(u(B),U&&m({token:U,meta:{blockchains:g,tokens:T}}))}},[d]),Ki(()=>{let{clientUrl:v,liquiditySources:b}=L();y("clientUrl",v||void 0),S("liquiditySources",b?.split(",")??void 0)},[])}i(ji,"useSyncUrlAndStore");import{i18n as ja}from"@lingui/core";import{useManager as hC}from"@rango-dev/queue-manager-react";import{Alert as lm,Button as yC,css as Za,Divider as Ya,IconButton as pm,styled as SC,Typography as CC,WalletIcon as TC}from"@rango-dev/ui";import be,{useEffect as zr,useLayoutEffect as kC,useRef as vC,useState as sn}from"react";import{useNavigate as wC}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Aa,BalanceErrors as tS,Button as Uc,ChevronDownIcon as oS,ChevronLeftIcon as nS,CloseIcon as rS,Divider as jo,IconButton as Qc,MessageBox as iS,PasteIcon as aS,Typography as vr,WalletIcon as sS}from"@rango-dev/ui";import $,{useCallback as lS,useEffect as qc,useRef as pS,useState as po}from"react";import{useNavigate as cS}from"react-router-dom";import{i18n as er}from"@lingui/core";function tr(t){switch(t.type){case 0:return er.t("Route has been updated.");case 3:return er.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return er.t("Route swappers has been updated.");case 2:return er.t("Route internal coins has been updated.");default:return""}}i(tr,"getQuoteUpdateWarningMessage");import{Modal as th}from"@rango-dev/ui";import oh from"react";function ne(t){let{watermark:e}=ie();return oh.createElement(th,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import ir,{useRef as ih}from"react";import*as vo from"@radix-ui/react-collapsible";import{keyframes as Dp,styled as or}from"@rango-dev/ui";var Yi=300,nh=Dp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),rh=Dp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Fp=or(vo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Zi=or(vo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),nr=or(vo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${nh} ${Yi}ms ease-out`},false:{animation:`${rh} ${Yi}ms ease-out`}}}}),rr=or("div",{transition:`all ${Yi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ar(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ih(null);return ir.createElement(Fp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ir.createElement(Zi,{className:"collapsible_trigger",onClick:a},s),ir.createElement(nr,{className:"collapsible_content",open:e},r),l==="bottom"&&ir.createElement(Zi,{className:"collapsible_trigger",onClick:a},s))}i(ar,"CustomCollapsible");import{css as Op,darkTheme as Vo,IconButton as ah,styled as Ye,TextField as sh}from"@rango-dev/ui";var Up=Ye("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Qp=Ye("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),lh=Ye("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),qp=Ye(lh,{alignSelf:"stretch",minHeight:"93px"}),zp=Ye("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Hp=Ye(ah,{position:"absolute",left:"$20"}),Gp=Ye("div",{paddingTop:"$20"}),Vp=Op({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Xp=Ye("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Kp=Op({paddingTop:"$5"}),jp=Ye("div",{display:"flex"}),Yp=Ye(sh,{backgroundColor:"$neutral100",padding:"$15"}),Zp=Ye("div",{overflow:"visible",width:"100%"}),Jp=Ye("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Vo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as Zy,Divider as Ea,Image as Jy,MessageBox as Tr,SelectableWallet as Ry,Typography as Dc,WalletState as Fc}from"@rango-dev/ui";import ue,{useEffect as Oc,useState as Io}from"react";import{WalletState as Ji}from"@rango-dev/ui";import{useWallets as ph}from"@rango-dev/wallets-react";import{detectMobileScreens as ch,KEPLR_COMPATIBLE_WALLETS as uh,WalletTypes as wo}from"@rango-dev/wallets-shared";import{useCallback as mh,useEffect as dh,useState as fh}from"react";var gh=Object.values(wo);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=ph(),{connectedWallets:c}=te(),m=h().blockchains(),f=Ul(a?.wallets,{walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||gh,d=wl(s,p,f,e);d=ch()?d.filter(E=>E.showOnMobile!==!1&&s(E.type).installed):d;let g=Nl(d),[T,C]=fh(""),y=i(E=>!c.find(v=>v.walletType===E&&v.chain===e),"isExperimentalChainNotAdded"),S=i(async(E,v)=>{let b=s(E);try{if(T&&C(""),b.connected)await l(E);else{if(En(d,a.multiWallets))return;o?.(E),await u(E,void 0,v),n?.(E)}}catch(x){r?.(x?.message),C("Error: "+x?.message)}},"handleClick"),k=mh(()=>{let E=d?.filter(v=>v.state===Ji.CONNECTING)||[];for(let v of E)l(v.type)},[Ll(d)]),w=i(async E=>{s(E).connected&&await l(E)},"disconnectWallet");dh(()=>()=>{k()},[]);let A=i(E=>{let v=E.find(x=>x.type===wo.DEFAULT);return!v||v.state===Ji.NOT_INSTALLED?!1:E.filter(x=>x.state!=Ji.NOT_INSTALLED&&![wo.DEFAULT,wo.WALLET_CONNECT_2,wo.LEDGER].includes(x.type)&&p(x.type).supportedChains.filter(B=>B.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),L=i((E,v,b)=>Bn(b,v)&&y(E)&&!uh.includes(E)||E==wo.DEFAULT&&!A(d),"shouldExcludeWallet");return{list:g.filter(E=>!L(E.type,e??"",m)),error:T,handleClick:S,disconnectConnectingWallets:k,disconnectWallet:w}}i(no,"useWalletList");import{i18n as Wc}from"@lingui/core";import{Divider as qy,getCategoriesCount as zy,SelectableCategoryList as Hy,styled as Lc,Typography as Gy,Wallet as Vy,WalletState as Mc}from"@rango-dev/ui";import at,{useState as Sr}from"react";import{useManager as Ty}from"@rango-dev/queue-manager-react";import{BottomLogo as ky,Divider as wc,Header as vy}from"@rango-dev/ui";import Se,{useEffect as Ta,useRef as xc,useState as wy}from"react";import{useRef as hh}from"react";function sr(){return window.self!==window.top}i(sr,"isAppLoadedIntoIframe");function Ri(){let t=hh(null),{iframe:e}=h(),o=sr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ri,"useIframe");import{useNavigate as yh}from"react-router-dom";function Ze(){let t=yh();return()=>t(-1)}i(Ze,"useNavigateBack");import{createTheme as aa,darkTheme as Mh,lightTheme as Lh}from"@rango-dev/ui";import{useEffect as Bh,useState as Ph}from"react";import{theme as Nh,darkColors as Wh}from"@rango-dev/ui";import ra from"react";function Sh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Sh,"expandShortHexColor");function Ch(t){return/[0-9]+$/.test(t)}i(Ch,"isOverridingColor");function Th(t,e){return t.padStart(e,"0")}i(Th,"pad");function ea(t){let e=Math.min(Math.max(Math.round(t),0),255);return Th(e.toString(16),2)}i(ea,"intToHex");function kh(t){return`#${ea(t.red)}${ea(t.green)}${ea(t.blue)}`}i(kh,"rgbToHex");function vh(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(vh,"hexToRGB");function wh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(wh,"generateShade");function xh(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(xh,"generateTint");function bh(t){return Rp(t,wh)}i(bh,"calculateShades");function Eh(t){return Rp(t,xh)}i(Eh,"calculateTints");function Rp(t,e){let o=vh(t),n=[];for(let r=1;r<9;r++)n.push(kh(e(o,r)));return n}i(Rp,"calculateColors");function ta(t,e,o){let a=Eh(t).reverse().concat(t),s=bh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(ta,"createTintsAndShades");function oa(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Ch(r)){let p=Sh(a);Object.assign(n,ta(p,r,s))}}return{...n,...e}}i(oa,"expandToGenerateThemeColors");var ec=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ih=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=ec(o%52)+e;return ec(o%52)+e},"toAlphabeticName"),Ah=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),na=i(t=>Ih(Ah(5381,JSON.stringify(t))>>>0),"toHash");function ia(t){let e=Nh.colors,o={...e,...Wh},n,r;if(t?.light){let s={colors:oa(e,t.light)};n={id:`${Mi}-light-${na(s)}`,tokens:s}}if(t?.dark){let s={colors:oa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Mi}-dark-${na(s)}`,tokens:s}}return{light:n,dark:r}}i(ia,"customizedThemeTokens");function tc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ra.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ra.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ra.cloneElement(e,{key:l}))}}),o}i(tc,"joinList");function lr(t){let{colors:e,fontFamily:o=pl,borderRadius:n=$l,secondaryBorderRadius:r=Dl}=t,[a,s]=Ph("light"),{theme:l}=h(),{dark:p,light:u}=ia(e),c=aa({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Lh.className],f=[c.className,Mh.className];if(u){let g=aa(u.id,u.tokens);m.push(g.className)}if(p){let g=aa(p.id,p.tokens);f.push(g.className)}return Bh(()=>{let g=i(T=>{T.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),T=f.join(" ");return l==="auto"?a==="dark"?T:g:l==="dark"?T:g},"getActiveTheme")}}i(lr,"useTheme");var Je=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as oc}from"@lingui/core";import{Alert as _h,Button as $h}from"@rango-dev/ui";import nc from"react";function sa(t){return nc.createElement(_h,{action:nc.createElement($h,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},oc.t("Activate this tab")),type:"warning",variant:"alarm",title:oc.t("Another tab is open and handles transactions.")})}i(sa,"ActivateTabAlert");import{i18n as la}from"@lingui/core";import{Button as Dh,Divider as Fh,MessageBox as Oh}from"@rango-dev/ui";import pr from"react";function pa(t){let{open:e,onClose:o,onConfirm:n}=t;return pr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},pr.createElement(Oh,{title:la.t("Activate current tab"),type:"warning",description:la.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},pr.createElement(Fh,{size:20}),pr.createElement(Dh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},la.t("Confirm"))))}i(pa,"ActivateTabModal");import{ChevronLeftIcon as qh}from"@rango-dev/ui";import cc from"react";import{css as Uh,darkTheme as rc,IconButton as Qh,styled as ro}from"@rango-dev/ui";var yt=ro(Qh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${rc} &`]:{backgroundColor:"$neutral"}}}),ic=ro("div",{position:"absolute",background:"$secondary500",[`.${rc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),xo=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),ac=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),sc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),lc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),pc=Uh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),cr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ca(t){return cc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},cc.createElement(qh,{color:"black",size:16}))}i(ca,"BackButton");import{i18n as zh}from"@lingui/core";import{Button as Hh,Typography as Gh}from"@rango-dev/ui";import ua from"react";function ma(t){return ua.createElement(xo,null,ua.createElement(Hh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ua.createElement(Gh,{variant:"label",size:"medium",color:"error500"},zh.t("Cancel"))))}i(ma,"CancelButton");import{i18n as Vh}from"@lingui/core";import{Image as Xh,Tooltip as Kh,WalletIcon as jh}from"@rango-dev/ui";import io from"react";function da(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:pc()},o.map(r=>io.createElement(cr,{key:r.title},io.createElement(Xh,{src:r.image,size:14})))):Vh.t("Connect Wallet");return io.createElement(Kh,{container:t.container,side:"bottom",content:n},io.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(ic,null),io.createElement(jh,{size:18,color:"black"})))}i(da,"WalletButton");import{i18n as mr}from"@lingui/core";import{NotificationsIcon as uy,Popover as my,SettingsIcon as dy,Tooltip as dr,TransactionIcon as fy}from"@rango-dev/ui";import Ae from"react";import{Notifications as Rh}from"@rango-dev/ui";import ey from"react";import{useNavigate as ty}from"react-router-dom";import{create as Yh}from"zustand";import{persist as Zh,subscribeWithSelector as Jh}from"zustand/middleware";var ve=Ot(Yh()(Zh(Jh((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>a.creationTime-r.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function fa(){let t=ty(),{getNotifications:e,clearNotifications:o}=ve(),n=e(),r=h().blockchains(),{findToken:a}=h();return ey.createElement(Rh,{list:n,getBlockchainImage:l=>Cl(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(fa,"NotificationContent");import{useManager as oy}from"@rango-dev/queue-manager-react";import{InProgressIcon as ny}from"@rango-dev/ui";import uc from"react";var ry=i(()=>{let{manager:t}=oy();return Je(t).map(({swap:o})=>o).find(o=>o.status==="running")?uc.createElement(lc,null,uc.createElement(ny,{color:"info",size:6})):null},"InProgressTransactionBadge"),mc=ry;import{EventSeverity as iy}from"@rango-dev/queue-manager-rango-preset";import{Typography as ay}from"@rango-dev/ui";import dc from"react";function fc(){let{getNotifications:t}=ve(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===iy.WARNING);return o?dc.createElement(ac,{isSever:n},dc.createElement(ay,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(fc,"NotificationsBadge");import{RefreshProgressButton as sy}from"@rango-dev/ui";import ga,{useEffect as ly,useState as gc}from"react";var py=1e3,hc=60,cy=100;function ur({onClick:t}){let[e,o]=gc(0),[n,r]=gc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");ly(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===hc&&l()},py):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ga.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ga.createElement(sc,{onTransitionEnd:()=>r(!1),isRefetched:n},ga.createElement(sy,{size:22,color:t?"black":"gray",progress:e/hc*cy})))}i(ur,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Ke("notification",s)||r.includes("notifications");return Ae.createElement(Ae.Fragment,null,!r.includes("refresh")&&Ae.createElement(dr,{container:a||P(),side:"top",content:mr.t("Refresh")},Ae.createElement(ur,{onClick:e})),!l&&Ae.createElement(my,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Ae.createElement(fa,null)},Ae.createElement("div",null,Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Notifications")},Ae.createElement(yt,{size:"small",variant:"ghost"},Ae.createElement(uy,{size:18,color:"black"}),Ae.createElement(fc,null))))),!r.includes("settings")&&Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Settings")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ae.createElement(dy,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Transactions History")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ae.createElement(fy,{size:18,color:"black"}),Ae.createElement(mc,null))))}i(ao,"HeaderButtons");import{i18n as ha}from"@lingui/core";import{Divider as Sc,MessageBox as yy,RefreshIcon as Sy}from"@rango-dev/ui";import bo from"react";import{Button as gy,styled as hy}from"@rango-dev/ui";var yc=hy(gy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ya(t){let{open:e,onClose:o}=t;return bo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},bo.createElement(yy,{title:ha.t("Something went wrong"),type:"error",description:ha.t("Something went wrong. Please refresh the app.")},bo.createElement(Sc,{size:30}),bo.createElement(yc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},bo.createElement(Sy,{size:20,color:"primary"}),bo.createElement(Sc,{size:4,direction:"horizontal"}),ha.t("Refresh"))))}i(ya,"RefreshModal");function Sa(t){let e=t.target;if(e){let o=e.scrollTop,n=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Sa,"onScrollContentAttachStatusToContainer");import{css as Cy,styled as Ca}from"@rango-dev/ui";var Cc="700px",fr=Cy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Tc=Ca("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Cc},fixed:{height:Cc}}}}),kc=Ca("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),vc=Ca("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ri(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=wy(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ie(),g=d==="FULL",{activeTheme:T}=lr(f||{}),C=Ke("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:S,showActivateTabModal:k,setShowActivateTabModal:w,activateCurrentTab:A}=ie(),L=Ze(),{manager:E}=Ty(),b=Je(E).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),x=i(()=>A(eo.forceClaim,b),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),U=typeof r.hasBackButton>"u"||r.hasBackButton,I=xc(null),H=xc(null);return Ta(()=>(sr()&&H.current&&e(H.current),()=>{o()}),[]),Ta(()=>(I.current?.addEventListener("scroll",Sa),()=>{I.current?.removeEventListener("scroll",Sa)}),[]),Ta(()=>{u(l==="failed")},[l]),Se.createElement(Tc,{height:s,id:ye.SWAP_BOX_ID,className:`${T()} ${fr()}`,ref:H},Se.createElement(vy,{prefix:Se.createElement(Se.Fragment,null,U&&Se.createElement(ca,{onClick:()=>{L(),r.onBack&&r.onBack()}})),title:r.title,suffix:Se.createElement(Se.Fragment,null,r.suffix,r.onWallet&&!C&&Se.createElement(da,{container:P(),onClick:B,isConnected:!!c?.length}),r.onCancel&&Se.createElement(ma,{onClick:r.onCancel}))}),Se.createElement(kc,{ref:I},n),Se.createElement(pa,{open:k,onClose:()=>w(!1),onConfirm:x}),Se.createElement(vc,null,Se.createElement("div",{className:"footer__content"},S&&!y&&Se.createElement("div",{className:"footer__alert"},Se.createElement(sa,{onActivateTab:x}),Se.createElement(wc,{size:10})),a),Se.createElement(wc,{size:12}),Se.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Se.createElement(ky,null))),Se.createElement(ya,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as xy}from"@rango-dev/ui";var bc="$20 $20 $10 $20",Xo=xy("div",{padding:bc,overflowY:"auto",flexGrow:1});import{styled as by}from"@rango-dev/ui";var me=by("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as Wy}from"@rango-dev/ui";import va from"react";import{i18n as Eo}from"@lingui/core";import{Image as Ay,MessageBox as ka,WalletState as Ny}from"@rango-dev/ui";import so from"react";import{keyframes as Ey,styled as gr}from"@rango-dev/ui";var KN=gr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),hr=gr("div",{position:"relative"}),Iy=Ey({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),yr=gr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Iy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ec=gr("div",{"& img":{borderRadius:"50%"}});function Ic(t){let{state:e,image:o,error:n}=t;return e===Ny.CONNECTED?so.createElement(ka,{type:"success",title:Eo.t("Wallet Connected"),description:Eo.t("Your wallet is connected, you can use it to swap.")}):n?so.createElement(ka,{type:"error",title:Eo.t("Failed to Connect"),description:n||Eo.t("Your wallet is not connected. Please try again.")}):so.createElement(ka,{type:"loading",title:Eo.t("Connecting to your wallet"),description:Eo.t("Click connect in your wallet popup."),icon:so.createElement(hr,null,so.createElement(Ec,null,so.createElement(Ay,{src:o,size:45})),so.createElement(yr,null))})}i(Ic,"ModalContent");function Ko(t){let{open:e,onClose:o,...n}=t;return va.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},va.createElement(Ic,{...n}),va.createElement(Wy,{direction:"vertical",size:32}))}i(Ko,"WalletModal");import{i18n as wa}from"@lingui/core";import{Button as Ly,Checkbox as By,Image as Nc,ListItemButton as Py,MessageBox as _y,Radio as $y,RadioRoot as Dy}from"@rango-dev/ui";import{namespaceMainBlockchain as Fy}from"@rango-dev/wallets-shared";import We,{useMemo as Oy,useState as Uy}from"react";import{styled as My}from"@rango-dev/ui";var Ac=My("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Qy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function lo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Uy([]),a=h().blockchains(),s=Oy(()=>o?.map(u=>({name:u,logo:Qy(a,Fy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?We.createElement(Dy,{value:n?.[0]},u):We.createElement(We.Fragment,null,u),"wrapRadioRoot");return We.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},We.createElement(_y,{type:"info",title:wa.t("Select chain types"),description:wa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:We.createElement(hr,null,We.createElement(cr,null,We.createElement(Nc,{src:t.image,size:45})),We.createElement(yr,null))}),We.createElement(Ac,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(Py,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:We.createElement(Nc,{src:u.logo,size:22}),end:e?We.createElement($y,{value:u.name}):We.createElement(By,{checked:n.includes(u.name)})}))))),We.createElement(Ly,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},wa.t("Confirm")))}i(lo,"WalletNamespacesModal");var Xy=Lc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Ky=Lc(me,{textAlign:"center"}),Cr=3e3,xa=300;function Bc(){let{fetchStatus:t}=h(),[e,o]=Sr("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Sr(!1),[l,p]=Sr(null),[u,c]=Sr(""),m=null,f=ie.use.isActiveTab(),{list:d,handleClick:g,error:T,disconnectConnectingWallets:C}=no({onBeforeConnect:x=>{m=setTimeout(()=>{s(!0),c(x)},xa)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},Cr)}}),y=i(()=>{C(),s(!1)},"handleCloseWalletModal"),S=d.find(x=>x.type===u),k=S?.image||"",w=S?.state||Mc.NOT_INSTALLED,A=Bl(d,n),E=zy(A)!==1,v=Pl(d,e),b=i((x,B)=>{if(B.namespaces&&B.state===Mc.DISCONNECTED){if(En(d,r.multiWallets))return;p({providerType:x,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace})}else g(x)},"handleWalletClick");return at.createElement(le,{header:{title:Wc.t("Connect Wallets")}},at.createElement(Ky,null,E&&at.createElement(at.Fragment,null,at.createElement(Hy,{setCategory:o,category:e,blockchains:A,isLoading:t==="loading"}),at.createElement(qy,{size:24})),at.createElement(Gy,{variant:"title",size:"xmedium",align:"center"},Wc.t("Choose a wallet to connect.")),at.createElement(Xy,null,v.map((x,B)=>{let U=`wallet-${B}-${x.type}`;return at.createElement(Vy,{key:U,...x,container:P(),onClick:I=>b(I,x),isLoading:t==="loading",disabled:!f})}),at.createElement(Ko,{open:!!a,onClose:y,image:k,state:w,error:T}),at.createElement(lo,{open:!!l,onClose:()=>p(null),onConfirm:x=>{g(l?.providerType,x),p(null)},image:l?.providerImage,namespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}))))}i(Bc,"WalletsPage");import{keyframes as jy,styled as ba}from"@rango-dev/ui";var Pc=ba("div",{position:"relative"}),Yy=jy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),_c=ba("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Yy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),$c=ba("div",{"& img":{borderRadius:"50%"}});var eS=7;function Ia(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=Io(""),[f,d]=Io(null),[g,T]=Io(!1),[C,y]=Io(null),[S,k]=Io(null),{suggestAndConnect:w}=kr(),A=null,{list:L,error:E,handleClick:v,disconnectWallet:b,disconnectConnectingWallets:x}=no({chain:e,onBeforeConnect:W=>{A=setTimeout(()=>{m(W)},xa)},onConnect:W=>{s?.(W),A&&clearTimeout(A),setTimeout(()=>{m("")},Cr)}}),[B,U]=Io(L),I=L.length,H=r&&I-r>0,Y=i(async W=>{T(!1),y("in-progress");try{await w(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),pe=i(W=>{k({providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal");Oc(()=>{U(W=>{let Q=L.findIndex(Z=>o(Z.type,e));return H&&Q>1?[L[Q]].concat(L.filter((Z,re)=>re!==Q)):W.map(Z=>L.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(L)]);let G=document.getElementById(ye.SWAP_BOX_ID);Oc(()=>{let W=null;return(C==="completed"||C==="rejected")&&(W=setTimeout(()=>y(null),Cr)),()=>{W&&clearTimeout(W)}},[C]);let ee=i(()=>{x(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,B.slice(0,r).map(W=>{let Q=Wl({connectedWallets:p,walletType:W.type,chain:e}),Z=Q?_n(Q,eS):"",re=Bn(u(),e),Te=!p.find(Oe=>Oe.walletType===W.type&&Oe.chain===e),_=re&&Te&&W.state===Fc.CONNECTED,Fe=_?st.t({id:"Add {chain} chain",values:{chain:e}}):Z,ot=i(async()=>{W.state===Fc.DISCONNECTED?W.namespaces?pe(W):v(W.type):W.namespaces&&!Z?(await b(W.type),pe(W)):_?(d({walletType:W.type,chain:e,address:Q??""}),T(!0)):n({walletType:W.type,chain:e,address:Q??""})},"onClick"),de=f?.chain?In(f.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${W.title}_${de}`},ue.createElement(Ko,{open:c===W.type,onClose:ee,image:W.image,state:W.state,error:E}),ue.createElement(lo,{open:!!S,onClose:()=>k(null),onConfirm:Oe=>{v(S?.providerType,Oe),k(null)},image:S?.providerImage,namespaces:S?.availableNamespaces,singleNamespace:S?.singleNamespace}),!!f&&ue.createElement(ne,{open:!!f&&g,container:G,onClose:()=>{d(null)}},ue.createElement(Tr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:de}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:de}})},ue.createElement(Ea,{size:18}),ue.createElement(Ea,{size:32}),ue.createElement(Zy,{onClick:Y.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),C&&ue.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ue.createElement(Tr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:de}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:de}}),icon:ue.createElement(Pc,null,ue.createElement($c,null,ue.createElement(Jy,{src:W.image,size:45})),ue.createElement(_c,null))}),C==="completed"&&ue.createElement(Tr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:de}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:de}})}),C==="rejected"&&ue.createElement(Tr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:de}})}),ue.createElement(Ea,{direction:"vertical",size:32})),ue.createElement(Ry,{key:W.type,description:Fe,onClick:ot,selected:o(W.type,e),disabled:!l,...W}))}),H&&ue.createElement(qp,{selected:!1,onClick:a},ue.createElement(Dc,{variant:"label",size:"medium"},st.t("Show more wallets"),ue.createElement(Dc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(Ia,"WalletList");var uS=2;function zc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=cS(),l=h().config,p=pS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:T}=j(),{connectedWallets:C,selectWallets:y}=te(),[S,k]=po(""),[w,A]=po([]),[L,E]=po(""),[v,b]=po(null),[x,B]=po(!!g),U=navigator?.userAgent.includes("Firefox"),I=Jt({filter:"all",quote:c}),H=Jt({filter:"required",quote:c}),Y=u.find(M=>M.name===c?.swaps[c?.swaps.length-1].to.blockchain),pe=i(M=>H.includes(M),"isWalletRequiredFor"),G=lS(()=>C.filter(M=>M.selected&&I.includes(M.chain)),[C.length,I.length]),[ee,W]=po(G()),[Q,Z]=po([]),re=i((M,V)=>Z(X=>X.concat({blockchain:M,walletType:V})),"addNextSelectedWallets"),Te=w.length>0,_=i((M,V)=>!!ee.find(X=>X.walletType===M&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),Fe=!!g&&x&&Y&&!zn(Y,g),ot=i(()=>{B(!1),T(null),W(M=>{let V=!1;return M.map(X=>!V&&X.chain===Y?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),de=i(()=>T(""),"handleClearCustomDestination"),Oe=i(async M=>{if(M.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();T(V),p?.current?.focus()}},"handlePasteCustomDestination"),wt=i(M=>{M?pe(Y?.name??"")||W(V=>V.map(X=>X.chain===Y?.name?{...X,selected:!1}:X)):ot()},"handleCustomDestinationCollapsibleOpenChange"),Ve=i(M=>{if(S&&k(""),_(M.walletType,M.chain))return;let X=C.find(qe=>qe.walletType===M.walletType&&qe.chain===M.chain);X&&(n(),M.chain===Y?.name&&x&&!pe(Y.name)&&(B(!1),T(null)),W(qe=>qe.filter(ft=>ft.chain!==M.chain).concat({...X,selected:!0})))},"onChange"),nt=i(()=>{let M=ee.filter(V=>V.selected);y(M),m(M),d(!0),o()},"onConfirmBalance"),rt=i(async()=>{A([]),E(""),b(null);let M=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=M.warnings;V?.balance?.messages&&A(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),M.error&&E(lp(M.error)),!M.error&&!V?.balance?.messages.length?nt():A(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(Qc,{onClick:de,variant:"ghost"},$.createElement(rS,{size:12,color:"gray"})):U?null:$.createElement(Qc,{onClick:Oe,variant:"ghost"},$.createElement(aS,{size:16})),"renderCustomDestinationSuffix");qc(()=>{W(M=>{let V=[];return M.forEach(X=>{!C.some(ft=>ft.chain===X.chain&&ft.walletType===X.walletType&&ft.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ft=>ft.chain===X.chain)&&X.selected&&I.includes(X.chain))),V})},[C.length,I.length]),qc(()=>{let M=[];Q.length>0&&(Q.forEach(V=>{let X=C.find(qe=>qe.chain===V.blockchain&&qe.walletType===V.walletType);X?Ve(X):M.push(V)}),Z(M))},[C.length,Q.length]);let he=document.getElementById(ye.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!S,container:he,...!S&&{footer:$.createElement(jp,null,$.createElement(Uc,{loading:a,disabled:Ep(a,x,g,c,ee,Y),onClick:rt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))},...S&&{styles:{container:{padding:"$0"}},header:$.createElement(zp,null,$.createElement(Hp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(nS,{size:16})),$.createElement(vr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(S,u)}})))},anchor:"center"},$.createElement(ne,{open:Te,onClose:A.bind(null,[]),container:he},$.createElement(iS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(tS,{messages:w??[]})},$.createElement(Uc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:nt},St.t("Proceed anyway")))),S&&$.createElement(Gp,null,$.createElement("div",{className:Vp()},$.createElement(Ia,{chain:S,isSelected:_,selectWallet:Ve,onShowMore:()=>k(S),onConnect:M=>{re(S,M)}}))),!S&&$.createElement($.Fragment,null,L&&$.createElement($.Fragment,null,$.createElement(Aa,{variant:"alarm",type:"error",title:St.t(L)}),$.createElement(jo,{size:12})),v&&$.createElement($.Fragment,null,$.createElement(Aa,{variant:"alarm",type:"warning",title:tr(v)}),$.createElement(jo,{size:12})),$.createElement(Zp,null,I.map((M,V)=>{let X=u.find(Zt=>Zt.name===M),qe=`wallet-${V}`,ft=V===I.length-1;return $.createElement("div",{key:qe},$.createElement(Up,null,$.createElement(vr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(vr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(jo,{size:24}),$.createElement(Qp,null,$.createElement(Ia,{chain:M,isSelected:_,selectWallet:Ve,limit:uS,onShowMore:()=>k(X?.name??""),onConnect:Zt=>{re(M,Zt)}})),!ft&&$.createElement(jo,{size:32}),ft&&l?.customDestination!==!1&&$.createElement(Xp,null,$.createElement(ar,{onOpenChange:wt,hasSelected:!0,open:x,triggerAnchor:"top",trigger:$.createElement(Jp,null,$.createElement("div",{className:"button__content"},$.createElement(sS,{size:18,color:"info"}),$.createElement(jo,{size:4,direction:"horizontal"}),$.createElement(vr,{variant:"label",size:"medium",color:x?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(rr,{orientation:x?"up":"down"},$.createElement(oS,{size:10,color:"secondary"}))),onClickTrigger:()=>B(Zt=>!Zt)},$.createElement(Yp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:St.t("Enter {blockchainName} address",{blockchainName:In(M,u)}),value:g||"",suffix:dt(),onChange:Zt=>{let Qf=Zt.target.value;T(Qf)},...!g&&{autoFocus:!0}})),Fe&&$.createElement("div",{className:Kp()},$.createElement(Aa,{variant:"alarm",type:"error",title:St.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(zc,"ConfirmWalletsModal");import{i18n as WS}from"@lingui/core";import{Alert as MS,Button as LS,InfoIcon as BS}from"@rango-dev/ui";import He from"react";import{Alert as fS,Button as gS,Divider as Ma,NoRouteIcon as hS,RefreshIcon as yS,Typography as Yc}from"@rango-dev/ui";import ze from"react";import{i18n as Hc}from"@lingui/core";var mS=24,dS=60;function Gc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:Hc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Hc.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(Gc,"makeInfo");var Na=(o=>(o[o.small=mS]="small",o[o.large=dS]="large",o))(Na||{}),Wa=(o=>(o.small="small",o.large="medium",o))(Wa||{});import{styled as wr}from"@rango-dev/ui";var Vc=wr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Xc=wr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Kc=wr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),jc=wr("div",{padding:"$6 $0"});function Yo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=Gc(o,r,()=>a(s,!0),e);return ze.createElement(Vc,null,ze.createElement(hS,{size:Na[n],color:"gray"}),ze.createElement(Ma,{size:4}),ze.createElement(Yc,{variant:"title",size:Wa[n]},oe().noResultError.title),n==="large"&&ze.createElement(Ma,{size:4}),!!l.description&&ze.createElement(Xc,{size:n},ze.createElement(Yc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ze.createElement(Ma,{size:n==="large"?"24":"4"}),!!l.alert&&ze.createElement(Kc,{size:n},ze.createElement(fS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ze.createElement(gS,{size:"xsmall",type:l.alert.type,prefix:ze.createElement(jc,null,ze.createElement(yS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Yo,"NoResult");import{i18n as Zo}from"@lingui/core";import{Button as CS,Divider as TS,MessageBox as kS,Typography as vS,WarningIcon as wS}from"@rango-dev/ui";import At from"react";import{Typography as eu}from"@rango-dev/ui";import Ba from"react";import{darkTheme as SS,styled as xr}from"@rango-dev/ui";var Zc=xr("div",{width:"100%"}),La=xr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Jc=xr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${SS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rc=xr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function tu(t){let{title:e,value:o,valueColor:n}=t;return Ba.createElement(Jc,null,Ba.createElement(eu,{size:"medium",variant:"label",className:"_title"},e),Ba.createElement(eu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(tu,"QuoteErrorsModalItem");function ou(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Zo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Zo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Zo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Zo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(CS,{type:"primary",size:"large",prefix:At.createElement(wS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},At.createElement(kS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(La,null,At.createElement(TS,{size:"4"}),At.createElement(vS,{size:"small",variant:"title"},Zo.t("Details")),At.createElement(La,null,l.map((p,u)=>At.createElement(tu,{key:u,...p})))))}i(ou,"HighValueLossWarningModal");import{i18n as Pa}from"@lingui/core";function nu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Pa.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Et(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=Pa.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=Pa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(nu,"makeAlerts");import{i18n as Ao}from"@lingui/core";import{Button as ru,Divider as iu,MessageBox as xS,Typography as bS}from"@rango-dev/ui";import co from"react";import{useNavigate as ES}from"react-router-dom";function au(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=ES(),u=e??o;return co.createElement(ne,{anchor:"bottom",open:n,prefix:co.createElement(ru,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},co.createElement(bS,{variant:"label",size:"medium",color:"$neutral900"},Ao.t("Change settings"))),container:P(),onClose:r},co.createElement(xS,{type:"warning",title:s.type===3?Ao.t("High slippage"):Ao.t("Low slippage"),description:s.type===3?Ao.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Ao.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},co.createElement(iu,{size:18}),co.createElement(iu,{size:32}),co.createElement(ru,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Ao.t("Confirm anyway"))))}i(au,"SlippageWarningModal");import{Button as IS,MessageBox as AS,WarningIcon as NS}from"@rango-dev/ui";import br from"react";function su(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return br.createElement(ne,{footer:br.createElement(IS,{type:"primary",size:"large",prefix:br.createElement(NS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},br.createElement(AS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(su,"UnknownPriceWarningModal");function Jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=nu(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),He.createElement(He.Fragment,null,f&&He.createElement(Yo,{error:o,fetch:s}),!!d&&He.createElement(Zc,null,He.createElement(MS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:He.createElement(Rc,{onClick:l},He.createElement(BS,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:He.createElement(LS,{size:"xxsmall",type:d.alertType,onClick:c},WS.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(ou,{...m,warning:e}),(e.type===3||e.type===2)&&He.createElement(au,{...m,warning:e}),e.type===1&&He.createElement(su,{...m,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import cC from"bignumber.js";import Or from"react";import{i18n as uo}from"@lingui/core";import{Alert as ZS,Divider as Wo,FullExpandedQuote as JS,InfoIcon as RS,QuoteTag as eC,StepDetails as tC,TokenAmount as oC,Tooltip as Uu,Typography as Mo}from"@rango-dev/ui";import qa from"bignumber.js";import D,{useRef as nC,useState as rC}from"react";import{styled as _a}from"@rango-dev/ui";var $a=_a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),lu=_a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),pu=_a("div",{width:"100%",display:"flex"});import*as Er from"@radix-ui/react-collapsible";import{Button as PS,css as Ro,darkTheme as we,Image as cu,styled as _e,Typography as _S}from"@rango-dev/ui";var $S=300,uu=_e(Er.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),mu=Ro({padding:"$10 $15"}),du=_e(PS,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),fu=_e("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),gu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),hu=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),No=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),yu=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Su=_e(Er.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${cu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${cu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Cu=_e("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Tu=_e(nr,{width:"100%",background:"inherit"}),Da=_e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${$S}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),JL=_e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),ku=_e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),vu=_e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Fa=_e(_S,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),wu=_e("div",{display:"flex",flexWrap:"wrap"}),Oa=_e("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),xu=_e("div",{display:"flex"}),Ir=_e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Gt}from"@lingui/core";import{ChevronDownIcon as FS,CloseIcon as OS,Divider as Wr,IconButton as US,QuoteCost as QS,Tooltip as qS,Typography as lt}from"@rango-dev/ui";import J,{useState as Au}from"react";import{css as DS,styled as Ar}from"@rango-dev/ui";var Nr=Ar("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Ua=Ar("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),bu=Ar("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Eu=Ar("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Iu=DS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var zS=i(t=>t.fee.isZero()?null:J.createElement(Nr,null,J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Nu(t){let[e,o]=Au(!1),[n,r]=Au(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=P(),d=fp(m);return J.createElement(J.Fragment,null,J.createElement(QS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Gt.t("View more info"):void 0,tooltipContainer:f}),J.createElement(ne,{container:f,open:e,header:J.createElement(Eu,null,J.createElement(lt,{variant:"title",size:"medium"},Gt.t("Gas & Fee Explanation")),J.createElement(US,{onClick:()=>o(!1),variant:"ghost"},J.createElement(OS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(bu,null,J.createElement(lt,{variant:"title",size:"small"},Gt.t("Details")),J.createElement(Wr,{size:10}),Object.entries(d.payable).flatMap(([g,T])=>T.map((C,y)=>{let S=`payable-fee-${y}`,k=qi(C);return J.createElement(Nr,{key:S},J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Fi[g]),J.createElement(qS,{content:ce(C.amount),container:f},J.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),J.createElement(Nr,{className:"total_payable_fee"},J.createElement(lt,{variant:"label",size:"medium"},Gt.t("Total Payable Fee")),J.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),J.createElement(Ua,null),Object.keys(d.nonePayable).length&&J.createElement(ar,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:J.createElement("div",{className:Iu()},J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},n?Gt.t("Hide non-payable fees"):Gt.t("Show non-payable fees")),J.createElement(Wr,{size:4,direction:"horizontal"}),J.createElement(rr,{orientation:n?"up":"down"},J.createElement(FS,{size:12,color:"gray"}))),open:n},J.createElement(lt,{size:"small",variant:"title"},Gt.t("Description")),J.createElement(Wr,{size:4}),J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},Gt.t(`The following fees are considered in the transaction output and
|
|
1
|
+
var qf=Object.defineProperty;var i=(t,e)=>qf(t,"name",{value:e,configurable:!0});import{EventSeverity as GV,RouteEventType as VV,StepEventType as XV,StepExecutionBlockedEventStatus as KV,StepExecutionEventStatus as jV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as ZV,useWallets as kr,Events as JV}from"@rango-dev/wallets-react";import{Networks as e2,WalletTypes as t2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as n2}from"rango-types";import{UI_ID as zf}from"@rango-dev/ui";var wn="c6381a79-2817-4602-83bf-6a641a409e32",sl="https://api.rango.exchange",ll="https://explorer.rango.exchange",ye={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...zf};var pl="Roboto",ki=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];import{Events as Di,Provider as Dg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Fg}from"rango-sdk";import Un,{createContext as Og,useEffect as rp,useMemo as Ug,useRef as ip}from"react";import{useEffect as cg}from"react";import{create as sg}from"zustand";import{subscribeWithSelector as lg}from"zustand/middleware";import Hf from"mitt";var ke=Hf(),Gf={on:ke.on,off:ke.off};import{RangoClient as ig}from"rango-sdk";import{BlockchainCategories as Jf,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as Rf}from"@rango-dev/wallets-react";import{detectInstallLink as eg,getCosmosExperimentalChainInfo as tg,isEvmAddress as og,KEPLR_COMPATIBLE_WALLETS as Xw,Networks as vl}from"@rango-dev/wallets-shared";import Ai from"bignumber.js";import{isCosmosBlockchain as ng}from"rango-types";import Vf from"bignumber.js";var Be=new Vf(0);import{WalletTypes as Xf}from"@rango-dev/wallets-shared";var cl=[Xf.LEAP];import{BlockchainCategories as vi,WalletState as Zf}from"@rango-dev/ui";import{TransactionType as xn}from"rango-sdk";function yo(t){return Array.from(new Set(t))}i(yo,"removeDuplicateFrom");function bi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(bi,"areEqual");function hl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(hl,"debounce");function xt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(xt,"containsText");function dl(t,e){return t.toLowerCase()===e.toLowerCase()}i(dl,"exactText");function fl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(fl,"startWithText");var P=i(()=>document.getElementById(ye.SWAP_BOX_ID),"getContainer"),Do=i(()=>document.getElementById(ye.EXPANDED_BOX_ID),"getExpanded");function gl(t,e,o){let n=!!e&&dl(e,t),r=!!o&&dl(o,t);return n!==r?n?-1:1:0}i(gl,"compareExactMatchText");function wi(t,e,o){let n=!!e&&xt(e,t),r=!!o&&xt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(wi,"compareContainsText");function xi(t,e,o){let n=!!e&&fl(e,t),r=!!o&&fl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(xi,"compareStartWithText");function yl(t,e,o){if(!o)return 0;let n=gl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=gl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=xi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=wi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=xi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=wi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=xi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=wi(o,t.address,e.address);if(r!==0)return r}return 0}i(yl,"compareWithSearchFor");var bn=i((t,e)=>{switch(e){case vi.ALL:return!0;case vi.UTXO:return t===xn.TRANSFER;case vi.OTHER:return t!==xn.TRANSFER&&t!==xn.COSMOS&&t!==xn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Sl=i(t=>ki.find(o=>o.value===t)?.url,"getFontUrlByName");function En(t,e){let o=!!t.find(n=>n.state===Zf.CONNECTED);return e===!1&&o}i(En,"isSingleWalletActive");function In(t,e){return e.find(o=>o.name===t)?.displayName}i(In,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function Cl(t,e){return e.find(o=>o.name===t)?.logo}i(Cl,"getBlockchainImage");function Fo(t,e){return e.find(o=>o.id===t)?.title}i(Fo,"getSwapperDisplayName");function Ei(t,e){return e.find(o=>o.name===t)??null}i(Ei,"findBlockchain");function Ii(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Ii,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as kl}from"bignumber.js";var Oo=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new kl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new kl(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var An=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var gt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Uo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ce(t){return N(t,12,12).replace(/(?:\.0*|(\.\d+?)0*)$/,"$1")}i(ce,"formatTooltipNumbers");function Ni(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Ni,"mapStatusToWalletState");function wl(t,e,o,n){return o.filter(r=>!cl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m}=e(r),f=yo(m.map(g=>g.type)),d=Ni(t(r));return{title:a,image:s,link:eg(l),state:d,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:f}})}i(wl,"mapWalletTypesToWalletInfo");function Mn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Mn,"walletAndSupportedChainsNames");function xl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=Rf(p),m=l.length>0,f=l.includes(c),d=c===vl.Unknown;if(m&&!f&&!d)return;let T=c===vl.Unknown&&og(u);if(d&&!T)return;o.includes(c)||T?r?s(c,u.toLowerCase()):l.filter(S=>o.includes(S)).forEach(S=>{s(S,u.toLowerCase())}):s(c,u)}),a}i(xl,"prepareAccountsForWalletStore");function Jt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let m=u.from.blockchain,f=u.to.blockchain,d=a===o.swaps.length-1,g=c===p.length-1;(!d&&!g||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(l)}),Array.from(n)}i(Jt,"getQuoteWallets");function Ln(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Ln,"isAccountAndWalletMatched");function bl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Ai(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(bl,"makeBalanceFor");function El(t){return{...t,loading:!1,error:!0}}i(El,"resetConnectedWalletState");var Il=i(t=>{let e=new Set,n=t?.reduce((a,s)=>a.findIndex(l=>l.address===s.address&&l.chain===s.chain)===-1?[...a,s]:a,[])?.map(a=>{let s={name:a.chain,accounts:[]};return e.has(a.address)||e.add(a.address),e.forEach(l=>{a.address===l&&s.accounts.push(a)}),s}),r=N(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new Ai(a?.amount||Be).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Be)||Be).toString();return rg(r)},"calculateWalletUsdValue");function rg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(rg,"numberWithThousandSeparator");var Bn=i((t,e)=>{let o=tg(Object.entries(t).map(([,n])=>n).filter(ng));return o&&o[e]?.experimental},"isExperimentalChain");function Pn(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Pn,"formatBalance");function Al(t,e){return t?.usdValue||e?.usdValue?parseFloat(e?.usdValue||"0")-parseFloat(t?.usdValue||"0"):t?.amount||e?.amount?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(Al,"compareTokenBalance");function Rt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Rt,"areTokensEqual");function Nl(t){return t.sort((e,o)=>+(o.state===ht.CONNECTED)-+(e.state===ht.CONNECTED)||+(o.state===ht.DISCONNECTED||o.state===ht.CONNECTING)-+(e.state===ht.DISCONNECTED||e.state===ht.CONNECTING))}i(Nl,"sortWalletsBasedOnConnectionState");function _n(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(_n,"getConciseAddress");function Wl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Wl,"getAddress");function $n(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ai(o?.usdPrice??Be).multipliedBy(o?.amount).toString():""},r=o?Dt({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i($n,"makeTokensBalance");var Ml=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ll(t){return t.map(e=>e.state).join("-")}i(Ll,"hashWalletsState");function Bl(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(Bl,"filterBlockchainsByWalletTypes");function Pl(t,e){return e===Jf.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(bn(n,e))return!0;return!1})}i(Pl,"filterWalletsByCategory");var Wi={API_KEY:wn};function bt(t){return Wi[t]||""}i(bt,"getConfig");function _l(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Wi=e,Wi}i(_l,"initConfig");var $l=20,Dl=25,Mi="theme-widget",Qo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Rt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Rt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Li=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Fl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Dn,Ft=i(()=>Dn||(Dn=new ig(bt("API_KEY"),bt("BASE_URL")),Dn),"httpService");import{WidgetEvents as Ol}from"@rango-dev/queue-manager-rango-preset";var Bi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Bi||{}),Pi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Pi||{}),qo=(r=>(r[r.RouteEvent=Ol.RouteEvent]="RouteEvent",r[r.StepEvent=Ol.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(qo||{});var ag=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ot=ag;var te=Ot(sg()(lg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{ke.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}});let r=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let l=!a.connectedWallets.some(p=>p.chain===s.chain&&p.selected&&p.walletType!==s.walletType);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{n.connectedWallets.find(l=>l.walletType===o)&&ke.emit("walletEvent",{type:"disconnect",payload:{walletType:o}});let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),a=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:$n(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Ln(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ft().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(T=>Ln(T,f)),g=p.find(T=>T.address===f.address&&T.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:bl(g,n),loading:!1}:f});return{loading:!1,balances:$n(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Ln(m,c))?El(c):c);return{loading:!1,balances:$n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Dt(o);return n[r]??null}}))));import{allProviders as pg}from"@rango-dev/provider-all";function Fn(t,e){let o=pg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let a=o.find(s=>s.config.type===r);a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(Fn,"matchAndGenerateProviders");function Ul(t,e){return Fn(t,e).map(r=>r.config.type)}i(Ul,"configWalletsToWalletName");function Ql(t,e){let o=te.use.clearConnectedWallet(),n=Fn(t,e);return cg(()=>{o(),n=Fn(t,e)},[t?.length]),{providers:n}}i(Ql,"useWalletProviders");import Wg,{createContext as Mg,useContext as Lg,useEffect as Bg,useRef as Pg}from"react";import{create as Ag}from"zustand";import{persist as Ng}from"zustand/middleware";var _i={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default"},ug={clientUrl:void 0},mg={liquiditySources:void 0},ql=i((t,e,o)=>({config:{..._i,...t},iframe:ug,campaignMode:mg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function On(t,e){let o=t.map(a=>a.swapperGroup),n=[];return yo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(On,"getUniqueSwappersGroups");function zl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(zl,"sortLiquiditySourcesByGroupTitle");function Ke(t,e){return e?.[t]==="hidden"}i(Ke,"isFeatureHidden");function Hl(t,e){return e?.[t]==="enabled"}i(Hl,"isFeatureEnabled");var Gl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&Qo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(xt(c.symbol,o.searchFor)||xt(c.address||"",o.searchFor)||xt(c.name||"",o.searchFor)):!0).sort((c,m)=>{let f=e().isTokenPinned(c,o.type),d=e().isTokenPinned(m,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let S=o.getBalanceFor(c),k=o.getBalanceFor(m),w=Al(S,k);if(w!==0)return w}let g=a.get(c.blockchain),T=a.get(m.blockchain),C=Ii(c,g),y=Ii(m,T);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let S=yl(c,m,o.searchFor);if(S)return S}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&T?g.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Dt(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Rt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(zl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,f)=>m.sort-f.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let f=Dt(m);a.set(f,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as dg,English as fg,Finland as gg,French as hg,German as yg,Greece as Sg,Italian as Cg,Japanese as Tg,Netherlands as kg,Poland as vg,Portuguese as wg,Russian as xg,Spanish as bg,Swedish as Eg,Ukrainian as Ig}from"@rango-dev/ui";var Vl=[{title:"English",label:"English",local:"en",SVGFlag:fg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:bg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:hg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Tg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:wg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:dg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:xg},{title:"German",label:"Deutsch",local:"de",SVGFlag:yg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Ig},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Eg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:gg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:kg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Sg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Cg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:vg}],So="en";var Xl=[.5,1,3],Kl=1,jl=5,Yl=100,Zl=0;var Jl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Kl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=yo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Ke("theme",n),s=Ke("language",n),l=Ke("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||So},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||So}})}}),"createSettingsSlice");function Rl(t){return Ag()(Ng((...e)=>({...Gl(...e),...Jl(...e),...ql(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(Rl,"createAppStore");var ep=Mg(null);function h(){let t=Lg(ep);if(Bg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function tp(t){let e=Pg();return e.current||(e.current=Rl(t.config)),Wg.createElement(ep.Provider,{value:e.current},t.children)}i(tp,"AppStoreProvider");import{create as $g}from"zustand";var op="rango-widget";var zo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(op),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ie=Ot($g()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new zo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var Qn=Og({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Qg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:s?.walletConnectProjectId,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Ql(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=ip(),f=ip();rp(()=>{n().catch(console.log)},[]),rp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter(Fg).map(y=>y.name),g=i((y,S,k,w,A)=>{if(S===Di.ACCOUNTS)if(k){let L=Mn(A.supportedBlockchains),E=xl(y,k,d,L,A.isContractWallet);E.length&&u(E,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(S===Di.ACCOUNTS&&w.connected){let L=`${y}-${w.network}-${k}`;w.connected&&(m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(S===Di.NETWORK&&w.network){let L=`${y}-${w.network}`;m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,S,k,w,A)},"onUpdateState"),T=ie.use.isActiveTab(),C=Ug(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Un.createElement(Qn.Provider,{value:C},Un.createElement(Dg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!T},t.children))}i(Qg,"Main");function qn(t){let{config:e,...o}=t;return Un.createElement(tp,{config:e},Un.createElement(Qg,{...o,config:e}))}i(qn,"WidgetWallets");import Ti from"react";import qg,{Fragment as zg}from"react";import{MemoryRouter as Hg,useInRouterContext as Gg}from"react-router";function ap({children:t}){let o=Gg()?zg:Hg;return qg.createElement(o,null,t)}i(ap,"AppRouter");import{I18nManager as Zv}from"@rango-dev/ui";import rl from"react";import Qe from"react";import{useRoutes as Dv}from"react-router-dom";var q={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as ko,useRef as Rn}from"react";import It from"bignumber.js";import{create as Kg}from"zustand";import{subscribeWithSelector as jg}from"zustand/middleware";import{getLastSuccessfulStep as Xg}from"@rango-dev/queue-manager-rango-preset";import wE from"bignumber.js";import{i18n as Ho}from"@lingui/core";var Fi={"Network Fee":Ho.t("Network Fee"),"Swapper Fee":Ho.t("Protocol Fee"),"Affiliate Fee":Ho.t("Affiliate Fee"),"Outbound network fee":Ho.t("Outbound Fee"),"Rango Fee":Ho.t("Rango Fee")},Oi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],sp=30;import{i18n as it}from"@lingui/core";import{RouteEventType as sE}from"@rango-dev/queue-manager-rango-preset";import Pe from"bignumber.js";import{PendingSwapNetworkStatus as Gn}from"rango-types";function zn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(zn,"isValidAddress");import{i18n as Me}from"@lingui/core";var oe=i(()=>({genericServerError:Me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Me.t("Please reset your liquidity sources."),description:Me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Me.t("No Routes Found."),description:Me.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Me.t("High Price Impact"),title:Me.t("Price impact is too high!"),description:Me.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Me.t("USD Price Unknown"),title:Me.t("USD Price Unknown, Cannot calculate Price Impact."),description:Me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Me.t("Confirm USD Price Unknown")}}),"errorMessages");function lp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(lp,"getQuoteErrorMessage");import{i18n as Hn}from"@lingui/core";var to=i(()=>({connectWallet:Hn.t("Connect Wallet"),swap:Hn.t("Swap"),swapAnyway:Hn.t("Swap anyway"),ethWarning:Hn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function pp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Pe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Pe(1e3)))??!1}i(pp,"hasHighValueLoss");function cp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(cp,"hasLimitError");function up(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Pe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Pe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Pe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Pe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=it.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=it.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=it.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=it.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(up,"getLimitErrorMessage");function mp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:to().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:to().swap,action:"confirm-swap",disabled:!0}:s?{title:to().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:to().ethWarning,action:"confirm-warning",disabled:!1}:{title:to().swap,action:"confirm-swap",disabled:!1}:{title:to().connectWallet,action:"connect-wallet",disabled:!1}}i(mp,"getSwapButtonState");function Ui(t,e,o){return!((!o||o.lte(Be))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Ui,"canComputePriceImpact");function Qi(t,e){let o=Be;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Pe(r.amount).multipliedBy(a||0))}return o}i(Qi,"getUsdFeeOfStep");function Vn(t,e){return t.reduce((o,n)=>o.plus(Qi(n,e)),Be)}i(Vn,"getTotalFeeInUsd");function qi(t){let e=Be;return e=e.plus(new Pe(t.amount).multipliedBy(t.price||0)),e}i(qi,"getUsdFee");function dp(t){return t.reduce((e,o)=>e.plus(qi(o)),Be)}i(dp,"getTotalFeesInUsd");function fp(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(fp,"getFeesGroup");function gp(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(gp,"checkSlippageErrors");function hp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(hp,"checkSlippageWarnings");function Xn(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Xn,"getMinRequiredSlippage");function yp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(yp,"hasProperSlippage");function Sp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:f,destination:d,enableCentralizedSwappers:g}=t,T=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:T??{},slippage:u.toString(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(Sp,"createQuoteRequestBody");function Cp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Cp,"getWalletsForNewSwap");function Co(t){return t?.outputAmount||null}i(Co,"getQuoteOutputAmount");function Tp(t,e){return new Pe(e).div(new Pe(t)).minus(1).multipliedBy(100).toNumber()}i(Tp,"getPercentageChange");function kp(t,e){let o=Co(t),n=Co(e);if(!o||!n)return!1;let r=je(o,n);return r?r<=-1:!0}i(kp,"isOutputAmountChangedALot");function vp(t,e,o){let n=t.validationStatus,r=Jt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Ap(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=N(new Pe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=N(new Pe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=it.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=it.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=it.t(" for input and network fee")),it.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Xe(s.asset.blockchain,o)}})})}i(vp,"generateBalanceWarnings");function Kn(t,e){return(t?new Pe(t):Be).multipliedBy(e||0)}i(Kn,"calcOutputUsdValue");function Go(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Gn.NetworkChanged}i(Go,"isNetworkStatusInWarningState");function wp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Go(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Gn.WaitingForConnectingWallet:n=n||it.t("Waiting for connecting wallet");break;case Gn.WaitingForQueue:n=n||it.t("Waiting for other running tasks to be finished");break;case Gn.WaitingForNetworkChange:n=n||it.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(wp,"getSwapMessages");function xp(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(xp,"getLastConvertedTokenInFailedSwap");function bp(t){return t.status==="failed"}i(bp,"shouldRetrySwap");function Ep(t,e,o,n,r,a){if(!n||t)return!0;let s=Jt({filter:"all",quote:n}),l=Jt({filter:"required",quote:n}),p=s.every(m=>r.some(f=>f.chain===m)),u=l.every(m=>r.some(f=>f.chain===m)),c=o&&a?zn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Ep,"isConfirmSwapDisabled");function Ip(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Ip,"isTokensIdentical");function Yn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Yn,"getQuoteToTokenUsdPrice");function zi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(zi,"isNumberOfSwapsChanged");function Hi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!bi(o,n)}i(Hi,"isQuoteSwappersUpdated");function Gi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!bi(o,n)}i(Gi,"isQuoteInternalCoinsUpdated");function Wp(t,e){return zi(t,e)||Hi(t,e)||Gi(t,e)}i(Wp,"isQuoteChanged");function Ap(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(Ap,"getRequiredBalanceOfWallet");function Et(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Et,"getPriceImpactLevel");function Zn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Xg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ei(a?a.toBlockchain:n.fromBlockchain,e),p=Ei(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(Zn,"createRetryQuote");function To(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=je(s.toString(),l.toString());if(!!c&&pp(s,c)){let f=Vn(t?.swaps,r),d=Et(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Xn(t.swaps),u=a>jl;if(yp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:hp(t,a),minRequiredSlippage:p};return null}i(To,"generateQuoteWarnings");function je(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Tp(t.toString(),e.toString());return n&&n<0?n:null}i(je,"getPriceImpact");var Mp=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Jn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Lp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,...r||e[0]}},"getDefaultQuote"),Bp=i(t=>{let e=i((o,n)=>{let r=Oi.indexOf(o.value),a=Oi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=i((t,e)=>t?.usdPrice?new It(e||Be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Ot(Kg()(jg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new It(0),outputUsdValue:new It(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Be;return Uo(o.inputAmount)?(e&&(n=e?.outputAmount?new It(e?.outputAmount):null,r=Kn(e?.outputAmount,Yn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new It(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:oo(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new It(0),outputUsdValue:new It(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new It(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?oo(e.toToken,e.outputAmount?.toString()||""):new It(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Pp=j.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ke.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&ke.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function _p(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:T,setAffiliatePercent:C,setAffiliateWallets:y}=h(),S=c?.from?.tokens,k=c?.from?.blockchains,w=c?.to?.tokens,A=c?.to?.blockchains,L=Rn(void 0),E=Rn(void 0),v=Rn(void 0),b=Rn(void 0);ko(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),ko(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.from?.blockchain),B=c?.from?.token,U=B&&g(B);(x||!x&&v.current)&&n(x??null),U?a({token:U,meta:{blockchains:f,tokens:d}}):!U&&L.current&&a({token:null}),v.current=c?.from?.blockchain,L.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),ko(()=>{Qo(s,S)&&a({token:null}),Li(p,k)&&n(null)},[S,k]),ko(()=>{Qo(l,w)&&a({token:null}),Li(u,A)&&o(null)},[w,A]),ko(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.to?.blockchain),B=c?.to?.token,U=B&&g(B);(x||!x&&b.current)&&o(x??null),U?e({token:U,meta:{blockchains:f,tokens:d}}):!U&&E.current&&e({token:null}),b.current=c?.to?.blockchain,E.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),ko(()=>{T(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(_p,"useSyncStoresWithConfig");import{useEffect as Ki,useRef as Yg}from"react";import{useInRouterContext as Zg,useLocation as Jg,useSearchParams as Rg}from"react-router-dom";function Vi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Vi,"convertTokenSearchParamToAsset");function Xi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Xi,"tokenToSearchParam");function ji(){let t=Jg(),[e,o]=Rg(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=j(),d=h().fetchStatus,g=h().blockchains(),T=h().tokens(),C=Zg(),{updateIframe:y,updateCampaignMode:S}=h(),k=h().isInCampaignMode(),w=Yg(),{findToken:A}=h(),L=i(()=>{let v={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(v[G]=ee);let b=e.get("fromAmount"),x=e.get("fromBlockchain"),B=e.get("fromToken"),U=e.get("toBlockchain"),I=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:x,fromToken:B,toBlockchain:U,toToken:I,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:v}},"getUrlSearchParams"),E=i(v=>{for(let b in v)v[b]||delete v[b];o(v,{replace:!0})},"updateUrlSearchParams");Ki(()=>{let{autoConnect:v,clientUrl:b,utmQueryParams:x}=L();C&&d==="success"&&E({fromBlockchain:n?.name,fromToken:Xi(a),toBlockchain:r?.name,toToken:Xi(s),fromAmount:l,autoConnect:v??void 0,clientUrl:b??void 0,liquiditySources:k?w.current:void 0,...x})},[t.pathname,l,n,a,r,s,k]),Ki(()=>{if(!C)return;let v=L();if(!w.current&&v.liquiditySources&&(w.current=v.liquiditySources),v.fromAmount&&f(v.fromAmount),d==="success"){let b=g.find(I=>I.name===v.fromBlockchain),x=v.fromToken&&b?A(Vi(v.fromToken,b)):void 0,B=g.find(I=>I.name===v.toBlockchain),U=v.toToken&&B?A(Vi(v.toToken,B)):void 0;b&&(p(b),x&&c({token:x,meta:{blockchains:g,tokens:T}})),B&&(u(B),U&&m({token:U,meta:{blockchains:g,tokens:T}}))}},[d]),Ki(()=>{let{clientUrl:v,liquiditySources:b}=L();y("clientUrl",v||void 0),S("liquiditySources",b?.split(",")??void 0)},[])}i(ji,"useSyncUrlAndStore");import{i18n as ja}from"@lingui/core";import{useManager as hC}from"@rango-dev/queue-manager-react";import{Alert as lm,Button as yC,css as Za,Divider as Ya,IconButton as pm,styled as SC,Typography as CC,WalletIcon as TC}from"@rango-dev/ui";import be,{useEffect as zr,useLayoutEffect as kC,useRef as vC,useState as sn}from"react";import{useNavigate as wC}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Aa,BalanceErrors as tS,Button as Uc,ChevronDownIcon as oS,ChevronLeftIcon as nS,CloseIcon as rS,Divider as jo,IconButton as Qc,MessageBox as iS,PasteIcon as aS,Typography as vr,WalletIcon as sS}from"@rango-dev/ui";import $,{useCallback as lS,useEffect as qc,useRef as pS,useState as po}from"react";import{useNavigate as cS}from"react-router-dom";import{i18n as er}from"@lingui/core";function tr(t){switch(t.type){case 0:return er.t("Route has been updated.");case 3:return er.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return er.t("Route swappers has been updated.");case 2:return er.t("Route internal coins has been updated.");default:return""}}i(tr,"getQuoteUpdateWarningMessage");import{Modal as th}from"@rango-dev/ui";import oh from"react";function ne(t){let{watermark:e}=ie();return oh.createElement(th,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import ir,{useRef as ih}from"react";import*as vo from"@radix-ui/react-collapsible";import{keyframes as Dp,styled as or}from"@rango-dev/ui";var Yi=300,nh=Dp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),rh=Dp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Fp=or(vo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Zi=or(vo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),nr=or(vo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${nh} ${Yi}ms ease-out`},false:{animation:`${rh} ${Yi}ms ease-out`}}}}),rr=or("div",{transition:`all ${Yi}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ar(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=ih(null);return ir.createElement(Fp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ir.createElement(Zi,{className:"collapsible_trigger",onClick:a},s),ir.createElement(nr,{className:"collapsible_content",open:e},r),l==="bottom"&&ir.createElement(Zi,{className:"collapsible_trigger",onClick:a},s))}i(ar,"CustomCollapsible");import{css as Op,darkTheme as Vo,IconButton as ah,styled as Ye,TextField as sh}from"@rango-dev/ui";var Up=Ye("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Qp=Ye("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),lh=Ye("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Vo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),qp=Ye(lh,{alignSelf:"stretch",minHeight:"93px"}),zp=Ye("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Hp=Ye(ah,{position:"absolute",left:"$20"}),Gp=Ye("div",{paddingTop:"$20"}),Vp=Op({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Xp=Ye("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Kp=Op({paddingTop:"$5"}),jp=Ye("div",{display:"flex"}),Yp=Ye(sh,{backgroundColor:"$neutral100",padding:"$15"}),Zp=Ye("div",{overflow:"visible",width:"100%"}),Jp=Ye("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Vo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Vo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as st}from"@lingui/core";import{Button as Zy,Divider as Ea,Image as Jy,MessageBox as Tr,SelectableWallet as Ry,Typography as Dc,WalletState as Fc}from"@rango-dev/ui";import ue,{useEffect as Oc,useState as Io}from"react";import{WalletState as Ji}from"@rango-dev/ui";import{useWallets as ph}from"@rango-dev/wallets-react";import{detectMobileScreens as ch,KEPLR_COMPATIBLE_WALLETS as uh,WalletTypes as wo}from"@rango-dev/wallets-shared";import{useCallback as mh,useEffect as dh,useState as fh}from"react";var gh=Object.values(wo);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=ph(),{connectedWallets:c}=te(),m=h().blockchains(),f=Ul(a?.wallets,{walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||gh,d=wl(s,p,f,e);d=ch()?d.filter(E=>E.showOnMobile!==!1&&s(E.type).installed):d;let g=Nl(d),[T,C]=fh(""),y=i(E=>!c.find(v=>v.walletType===E&&v.chain===e),"isExperimentalChainNotAdded"),S=i(async(E,v)=>{let b=s(E);try{if(T&&C(""),b.connected)await l(E);else{if(En(d,a.multiWallets))return;o?.(E),await u(E,void 0,v),n?.(E)}}catch(x){r?.(x?.message),C("Error: "+x?.message)}},"handleClick"),k=mh(()=>{let E=d?.filter(v=>v.state===Ji.CONNECTING)||[];for(let v of E)l(v.type)},[Ll(d)]),w=i(async E=>{s(E).connected&&await l(E)},"disconnectWallet");dh(()=>()=>{k()},[]);let A=i(E=>{let v=E.find(x=>x.type===wo.DEFAULT);return!v||v.state===Ji.NOT_INSTALLED?!1:E.filter(x=>x.state!=Ji.NOT_INSTALLED&&![wo.DEFAULT,wo.WALLET_CONNECT_2,wo.LEDGER].includes(x.type)&&p(x.type).supportedChains.filter(B=>B.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),L=i((E,v,b)=>Bn(b,v)&&y(E)&&!uh.includes(E)||E==wo.DEFAULT&&!A(d),"shouldExcludeWallet");return{list:g.filter(E=>!L(E.type,e??"",m)),error:T,handleClick:S,disconnectConnectingWallets:k,disconnectWallet:w}}i(no,"useWalletList");import{i18n as Wc}from"@lingui/core";import{Divider as qy,getCategoriesCount as zy,SelectableCategoryList as Hy,styled as Lc,Typography as Gy,Wallet as Vy,WalletState as Mc}from"@rango-dev/ui";import at,{useState as Sr}from"react";import{useManager as Ty}from"@rango-dev/queue-manager-react";import{BottomLogo as ky,Divider as wc,Header as vy}from"@rango-dev/ui";import Se,{useEffect as Ta,useRef as xc,useState as wy}from"react";import{useRef as hh}from"react";function sr(){return window.self!==window.top}i(sr,"isAppLoadedIntoIframe");function Ri(){let t=hh(null),{iframe:e}=h(),o=sr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ri,"useIframe");import{useNavigate as yh}from"react-router-dom";function Ze(){let t=yh();return()=>t(-1)}i(Ze,"useNavigateBack");import{createTheme as aa,darkTheme as Mh,lightTheme as Lh}from"@rango-dev/ui";import{useEffect as Bh,useState as Ph}from"react";import{theme as Nh,darkColors as Wh}from"@rango-dev/ui";import ra from"react";function Sh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Sh,"expandShortHexColor");function Ch(t){return/[0-9]+$/.test(t)}i(Ch,"isOverridingColor");function Th(t,e){return t.padStart(e,"0")}i(Th,"pad");function ea(t){let e=Math.min(Math.max(Math.round(t),0),255);return Th(e.toString(16),2)}i(ea,"intToHex");function kh(t){return`#${ea(t.red)}${ea(t.green)}${ea(t.blue)}`}i(kh,"rgbToHex");function vh(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(vh,"hexToRGB");function wh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(wh,"generateShade");function xh(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(xh,"generateTint");function bh(t){return Rp(t,wh)}i(bh,"calculateShades");function Eh(t){return Rp(t,xh)}i(Eh,"calculateTints");function Rp(t,e){let o=vh(t),n=[];for(let r=1;r<9;r++)n.push(kh(e(o,r)));return n}i(Rp,"calculateColors");function ta(t,e,o){let a=Eh(t).reverse().concat(t),s=bh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(ta,"createTintsAndShades");function oa(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!Ch(r)){let p=Sh(a);Object.assign(n,ta(p,r,s))}}return{...n,...e}}i(oa,"expandToGenerateThemeColors");var ec=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ih=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=ec(o%52)+e;return ec(o%52)+e},"toAlphabeticName"),Ah=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),na=i(t=>Ih(Ah(5381,JSON.stringify(t))>>>0),"toHash");function ia(t){let e=Nh.colors,o={...e,...Wh},n,r;if(t?.light){let s={colors:oa(e,t.light)};n={id:`${Mi}-light-${na(s)}`,tokens:s}}if(t?.dark){let s={colors:oa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Mi}-dark-${na(s)}`,tokens:s}}return{light:n,dark:r}}i(ia,"customizedThemeTokens");function tc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ra.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ra.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ra.cloneElement(e,{key:l}))}}),o}i(tc,"joinList");function lr(t){let{colors:e,fontFamily:o=pl,borderRadius:n=$l,secondaryBorderRadius:r=Dl}=t,[a,s]=Ph("light"),{theme:l}=h(),{dark:p,light:u}=ia(e),c=aa({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Lh.className],f=[c.className,Mh.className];if(u){let g=aa(u.id,u.tokens);m.push(g.className)}if(p){let g=aa(p.id,p.tokens);f.push(g.className)}return Bh(()=>{let g=i(T=>{T.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),T=f.join(" ");return l==="auto"?a==="dark"?T:g:l==="dark"?T:g},"getActiveTheme")}}i(lr,"useTheme");var Je=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as oc}from"@lingui/core";import{Alert as _h,Button as $h}from"@rango-dev/ui";import nc from"react";function sa(t){return nc.createElement(_h,{action:nc.createElement($h,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},oc.t("Activate this tab")),type:"warning",variant:"alarm",title:oc.t("Another tab is open and handles transactions.")})}i(sa,"ActivateTabAlert");import{i18n as la}from"@lingui/core";import{Button as Dh,Divider as Fh,MessageBox as Oh}from"@rango-dev/ui";import pr from"react";function pa(t){let{open:e,onClose:o,onConfirm:n}=t;return pr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},pr.createElement(Oh,{title:la.t("Activate current tab"),type:"warning",description:la.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},pr.createElement(Fh,{size:20}),pr.createElement(Dh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},la.t("Confirm"))))}i(pa,"ActivateTabModal");import{ChevronLeftIcon as qh}from"@rango-dev/ui";import cc from"react";import{css as Uh,darkTheme as rc,IconButton as Qh,styled as ro}from"@rango-dev/ui";var yt=ro(Qh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${rc} &`]:{backgroundColor:"$neutral"}}}),ic=ro("div",{position:"absolute",background:"$secondary500",[`.${rc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),xo=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),ac=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),sc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),lc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),pc=Uh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),cr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ca(t){return cc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},cc.createElement(qh,{color:"black",size:16}))}i(ca,"BackButton");import{i18n as zh}from"@lingui/core";import{Button as Hh,Typography as Gh}from"@rango-dev/ui";import ua from"react";function ma(t){return ua.createElement(xo,null,ua.createElement(Hh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ua.createElement(Gh,{variant:"label",size:"medium",color:"error500"},zh.t("Cancel"))))}i(ma,"CancelButton");import{i18n as Vh}from"@lingui/core";import{Image as Xh,Tooltip as Kh,WalletIcon as jh}from"@rango-dev/ui";import io from"react";function da(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:pc()},o.map(r=>io.createElement(cr,{key:r.title},io.createElement(Xh,{src:r.image,size:14})))):Vh.t("Connect Wallet");return io.createElement(Kh,{container:t.container,side:"bottom",content:n},io.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(ic,null),io.createElement(jh,{size:18,color:"black"})))}i(da,"WalletButton");import{i18n as mr}from"@lingui/core";import{NotificationsIcon as uy,Popover as my,SettingsIcon as dy,Tooltip as dr,TransactionIcon as fy}from"@rango-dev/ui";import Ae from"react";import{Notifications as Rh}from"@rango-dev/ui";import ey from"react";import{useNavigate as ty}from"react-router-dom";import{create as Yh}from"zustand";import{persist as Zh,subscribeWithSelector as Jh}from"zustand/middleware";var ve=Ot(Yh()(Zh(Jh((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>a.creationTime-r.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function fa(){let t=ty(),{getNotifications:e,clearNotifications:o}=ve(),n=e(),r=h().blockchains(),{findToken:a}=h();return ey.createElement(Rh,{list:n,getBlockchainImage:l=>Cl(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(fa,"NotificationContent");import{useManager as oy}from"@rango-dev/queue-manager-react";import{InProgressIcon as ny}from"@rango-dev/ui";import uc from"react";var ry=i(()=>{let{manager:t}=oy();return Je(t).map(({swap:o})=>o).find(o=>o.status==="running")?uc.createElement(lc,null,uc.createElement(ny,{color:"info",size:6})):null},"InProgressTransactionBadge"),mc=ry;import{EventSeverity as iy}from"@rango-dev/queue-manager-rango-preset";import{Typography as ay}from"@rango-dev/ui";import dc from"react";function fc(){let{getNotifications:t}=ve(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===iy.WARNING);return o?dc.createElement(ac,{isSever:n},dc.createElement(ay,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(fc,"NotificationsBadge");import{RefreshProgressButton as sy}from"@rango-dev/ui";import ga,{useEffect as ly,useState as gc}from"react";var py=1e3,hc=60,cy=100;function ur({onClick:t}){let[e,o]=gc(0),[n,r]=gc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");ly(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===hc&&l()},py):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ga.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ga.createElement(sc,{onTransitionEnd:()=>r(!1),isRefetched:n},ga.createElement(sy,{size:22,color:t?"black":"gray",progress:e/hc*cy})))}i(ur,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Ke("notification",s)||r.includes("notifications");return Ae.createElement(Ae.Fragment,null,!r.includes("refresh")&&Ae.createElement(dr,{container:a||P(),side:"top",content:mr.t("Refresh")},Ae.createElement(ur,{onClick:e})),!l&&Ae.createElement(my,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Ae.createElement(fa,null)},Ae.createElement("div",null,Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Notifications")},Ae.createElement(yt,{size:"small",variant:"ghost"},Ae.createElement(uy,{size:18,color:"black"}),Ae.createElement(fc,null))))),!r.includes("settings")&&Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Settings")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ae.createElement(dy,{size:18,color:"black"}))),!r.includes("history")&&Ae.createElement(dr,{container:P(),side:"top",content:mr.t("Transactions History")},Ae.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ae.createElement(fy,{size:18,color:"black"}),Ae.createElement(mc,null))))}i(ao,"HeaderButtons");import{i18n as ha}from"@lingui/core";import{Divider as Sc,MessageBox as yy,RefreshIcon as Sy}from"@rango-dev/ui";import bo from"react";import{Button as gy,styled as hy}from"@rango-dev/ui";var yc=hy(gy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ya(t){let{open:e,onClose:o}=t;return bo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},bo.createElement(yy,{title:ha.t("Something went wrong"),type:"error",description:ha.t("Something went wrong. Please refresh the app.")},bo.createElement(Sc,{size:30}),bo.createElement(yc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},bo.createElement(Sy,{size:20,color:"primary"}),bo.createElement(Sc,{size:4,direction:"horizontal"}),ha.t("Refresh"))))}i(ya,"RefreshModal");function Sa(t){let e=t.target;if(e){let o=e.scrollTop,n=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Sa,"onScrollContentAttachStatusToContainer");import{css as Cy,styled as Ca}from"@rango-dev/ui";var Cc="700px",fr=Cy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Tc=Ca("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Cc},fixed:{height:Cc}}}}),kc=Ca("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),vc=Ca("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ri(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=wy(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ie(),g=d==="FULL",{activeTheme:T}=lr(f||{}),C=Ke("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:S,showActivateTabModal:k,setShowActivateTabModal:w,activateCurrentTab:A}=ie(),L=Ze(),{manager:E}=Ty(),b=Je(E).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),x=i(()=>A(eo.forceClaim,b),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),U=typeof r.hasBackButton>"u"||r.hasBackButton,I=xc(null),H=xc(null);return Ta(()=>(sr()&&H.current&&e(H.current),()=>{o()}),[]),Ta(()=>(I.current?.addEventListener("scroll",Sa),()=>{I.current?.removeEventListener("scroll",Sa)}),[]),Ta(()=>{u(l==="failed")},[l]),Se.createElement(Tc,{height:s,id:ye.SWAP_BOX_ID,className:`${T()} ${fr()}`,ref:H},Se.createElement(vy,{prefix:Se.createElement(Se.Fragment,null,U&&Se.createElement(ca,{onClick:()=>{L(),r.onBack&&r.onBack()}})),title:r.title,suffix:Se.createElement(Se.Fragment,null,r.suffix,r.onWallet&&!C&&Se.createElement(da,{container:P(),onClick:B,isConnected:!!c?.length}),r.onCancel&&Se.createElement(ma,{onClick:r.onCancel}))}),Se.createElement(kc,{ref:I},n),Se.createElement(pa,{open:k,onClose:()=>w(!1),onConfirm:x}),Se.createElement(vc,null,Se.createElement("div",{className:"footer__content"},S&&!y&&Se.createElement("div",{className:"footer__alert"},Se.createElement(sa,{onActivateTab:x}),Se.createElement(wc,{size:10})),a),Se.createElement(wc,{size:12}),Se.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Se.createElement(ky,null))),Se.createElement(ya,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as xy}from"@rango-dev/ui";var bc="$20 $20 $10 $20",Xo=xy("div",{padding:bc,overflowY:"auto",flexGrow:1});import{styled as by}from"@rango-dev/ui";var me=by("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as Wy}from"@rango-dev/ui";import va from"react";import{i18n as Eo}from"@lingui/core";import{Image as Ay,MessageBox as ka,WalletState as Ny}from"@rango-dev/ui";import so from"react";import{keyframes as Ey,styled as gr}from"@rango-dev/ui";var KN=gr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),hr=gr("div",{position:"relative"}),Iy=Ey({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),yr=gr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Iy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ec=gr("div",{"& img":{borderRadius:"50%"}});function Ic(t){let{state:e,image:o,error:n}=t;return e===Ny.CONNECTED?so.createElement(ka,{type:"success",title:Eo.t("Wallet Connected"),description:Eo.t("Your wallet is connected, you can use it to swap.")}):n?so.createElement(ka,{type:"error",title:Eo.t("Failed to Connect"),description:n||Eo.t("Your wallet is not connected. Please try again.")}):so.createElement(ka,{type:"loading",title:Eo.t("Connecting to your wallet"),description:Eo.t("Click connect in your wallet popup."),icon:so.createElement(hr,null,so.createElement(Ec,null,so.createElement(Ay,{src:o,size:45})),so.createElement(yr,null))})}i(Ic,"ModalContent");function Ko(t){let{open:e,onClose:o,...n}=t;return va.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},va.createElement(Ic,{...n}),va.createElement(Wy,{direction:"vertical",size:32}))}i(Ko,"WalletModal");import{i18n as wa}from"@lingui/core";import{Button as Ly,Checkbox as By,Image as Nc,ListItemButton as Py,MessageBox as _y,Radio as $y,RadioRoot as Dy}from"@rango-dev/ui";import{namespaceMainBlockchain as Fy}from"@rango-dev/wallets-shared";import We,{useMemo as Oy,useState as Uy}from"react";import{styled as My}from"@rango-dev/ui";var Ac=My("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Qy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function lo(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Uy([]),a=h().blockchains(),s=Oy(()=>o?.map(u=>({name:u,logo:Qy(a,Fy[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?We.createElement(Dy,{value:n?.[0]},u):We.createElement(We.Fragment,null,u),"wrapRadioRoot");return We.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},We.createElement(_y,{type:"info",title:wa.t("Select chain types"),description:wa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:We.createElement(hr,null,We.createElement(cr,null,We.createElement(Nc,{src:t.image,size:45})),We.createElement(yr,null))}),We.createElement(Ac,null,p(We.createElement(We.Fragment,null,s?.map(u=>We.createElement(Py,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:We.createElement(Nc,{src:u.logo,size:22}),end:e?We.createElement($y,{value:u.name}):We.createElement(By,{checked:n.includes(u.name)})}))))),We.createElement(Ly,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},wa.t("Confirm")))}i(lo,"WalletNamespacesModal");var Xy=Lc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Ky=Lc(me,{textAlign:"center"}),Cr=3e3,xa=300;function Bc(){let{fetchStatus:t}=h(),[e,o]=Sr("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Sr(!1),[l,p]=Sr(null),[u,c]=Sr(""),m=null,f=ie.use.isActiveTab(),{list:d,handleClick:g,error:T,disconnectConnectingWallets:C}=no({onBeforeConnect:x=>{m=setTimeout(()=>{s(!0),c(x)},xa)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},Cr)}}),y=i(()=>{C(),s(!1)},"handleCloseWalletModal"),S=d.find(x=>x.type===u),k=S?.image||"",w=S?.state||Mc.NOT_INSTALLED,A=Bl(d,n),E=zy(A)!==1,v=Pl(d,e),b=i((x,B)=>{if(B.namespaces&&B.state===Mc.DISCONNECTED){if(En(d,r.multiWallets))return;p({providerType:x,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace})}else g(x)},"handleWalletClick");return at.createElement(le,{header:{title:Wc.t("Connect Wallets")}},at.createElement(Ky,null,E&&at.createElement(at.Fragment,null,at.createElement(Hy,{setCategory:o,category:e,blockchains:A,isLoading:t==="loading"}),at.createElement(qy,{size:24})),at.createElement(Gy,{variant:"title",size:"xmedium",align:"center"},Wc.t("Choose a wallet to connect.")),at.createElement(Xy,null,v.map((x,B)=>{let U=`wallet-${B}-${x.type}`;return at.createElement(Vy,{key:U,...x,container:P(),onClick:I=>b(I,x),isLoading:t==="loading",disabled:!f})}),at.createElement(Ko,{open:!!a,onClose:y,image:k,state:w,error:T}),at.createElement(lo,{open:!!l,onClose:()=>p(null),onConfirm:x=>{g(l?.providerType,x),p(null)},image:l?.providerImage,namespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}))))}i(Bc,"WalletsPage");import{keyframes as jy,styled as ba}from"@rango-dev/ui";var Pc=ba("div",{position:"relative"}),Yy=jy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),_c=ba("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Yy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),$c=ba("div",{"& img":{borderRadius:"50%"}});var eS=7;function Ia(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=Io(""),[f,d]=Io(null),[g,T]=Io(!1),[C,y]=Io(null),[S,k]=Io(null),{suggestAndConnect:w}=kr(),A=null,{list:L,error:E,handleClick:v,disconnectWallet:b,disconnectConnectingWallets:x}=no({chain:e,onBeforeConnect:W=>{A=setTimeout(()=>{m(W)},xa)},onConnect:W=>{s?.(W),A&&clearTimeout(A),setTimeout(()=>{m("")},Cr)}}),[B,U]=Io(L),I=L.length,H=r&&I-r>0,Y=i(async W=>{T(!1),y("in-progress");try{await w(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),pe=i(W=>{k({providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal");Oc(()=>{U(W=>{let Q=L.findIndex(Z=>o(Z.type,e));return H&&Q>1?[L[Q]].concat(L.filter((Z,re)=>re!==Q)):W.map(Z=>L.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(L)]);let G=document.getElementById(ye.SWAP_BOX_ID);Oc(()=>{let W=null;return(C==="completed"||C==="rejected")&&(W=setTimeout(()=>y(null),Cr)),()=>{W&&clearTimeout(W)}},[C]);let ee=i(()=>{x(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,B.slice(0,r).map(W=>{let Q=Wl({connectedWallets:p,walletType:W.type,chain:e}),Z=Q?_n(Q,eS):"",re=Bn(u(),e),Te=!p.find(Oe=>Oe.walletType===W.type&&Oe.chain===e),_=re&&Te&&W.state===Fc.CONNECTED,Fe=_?st.t({id:"Add {chain} chain",values:{chain:e}}):Z,ot=i(async()=>{W.state===Fc.DISCONNECTED?W.namespaces?pe(W):v(W.type):W.namespaces&&!Z?(await b(W.type),pe(W)):_?(d({walletType:W.type,chain:e,address:Q??""}),T(!0)):n({walletType:W.type,chain:e,address:Q??""})},"onClick"),de=f?.chain?In(f.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${W.title}_${de}`},ue.createElement(Ko,{open:c===W.type,onClose:ee,image:W.image,state:W.state,error:E}),ue.createElement(lo,{open:!!S,onClose:()=>k(null),onConfirm:Oe=>{v(S?.providerType,Oe),k(null)},image:S?.providerImage,namespaces:S?.availableNamespaces,singleNamespace:S?.singleNamespace}),!!f&&ue.createElement(ne,{open:!!f&&g,container:G,onClose:()=>{d(null)}},ue.createElement(Tr,{title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:de}}),type:"warning",description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:de}})},ue.createElement(Ea,{size:18}),ue.createElement(Ea,{size:32}),ue.createElement(Zy,{onClick:Y.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},st.t("Confirm")))),C&&ue.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ue.createElement(Tr,{type:"loading",title:st.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:de}}),description:st.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:de}}),icon:ue.createElement(Pc,null,ue.createElement($c,null,ue.createElement(Jy,{src:W.image,size:45})),ue.createElement(_c,null))}),C==="completed"&&ue.createElement(Tr,{type:"success",title:st.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:de}}),description:st.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:de}})}),C==="rejected"&&ue.createElement(Tr,{type:"error",title:st.t("Request Rejected"),description:st.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:de}})}),ue.createElement(Ea,{direction:"vertical",size:32})),ue.createElement(Ry,{key:W.type,description:Fe,onClick:ot,selected:o(W.type,e),disabled:!l,...W}))}),H&&ue.createElement(qp,{selected:!1,onClick:a},ue.createElement(Dc,{variant:"label",size:"medium"},st.t("Show more wallets"),ue.createElement(Dc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(Ia,"WalletList");var uS=2;function zc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=cS(),l=h().config,p=pS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:T}=j(),{connectedWallets:C,selectWallets:y}=te(),[S,k]=po(""),[w,A]=po([]),[L,E]=po(""),[v,b]=po(null),[x,B]=po(!!g),U=navigator?.userAgent.includes("Firefox"),I=Jt({filter:"all",quote:c}),H=Jt({filter:"required",quote:c}),Y=u.find(M=>M.name===c?.swaps[c?.swaps.length-1].to.blockchain),pe=i(M=>H.includes(M),"isWalletRequiredFor"),G=lS(()=>C.filter(M=>M.selected&&I.includes(M.chain)),[C.length,I.length]),[ee,W]=po(G()),[Q,Z]=po([]),re=i((M,V)=>Z(X=>X.concat({blockchain:M,walletType:V})),"addNextSelectedWallets"),Te=w.length>0,_=i((M,V)=>!!ee.find(X=>X.walletType===M&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),Fe=!!g&&x&&Y&&!zn(Y,g),ot=i(()=>{B(!1),T(null),W(M=>{let V=!1;return M.map(X=>!V&&X.chain===Y?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),de=i(()=>T(""),"handleClearCustomDestination"),Oe=i(async M=>{if(M.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();T(V),p?.current?.focus()}},"handlePasteCustomDestination"),wt=i(M=>{M?pe(Y?.name??"")||W(V=>V.map(X=>X.chain===Y?.name?{...X,selected:!1}:X)):ot()},"handleCustomDestinationCollapsibleOpenChange"),Ve=i(M=>{if(S&&k(""),_(M.walletType,M.chain))return;let X=C.find(qe=>qe.walletType===M.walletType&&qe.chain===M.chain);X&&(n(),M.chain===Y?.name&&x&&!pe(Y.name)&&(B(!1),T(null)),W(qe=>qe.filter(ft=>ft.chain!==M.chain).concat({...X,selected:!0})))},"onChange"),nt=i(()=>{let M=ee.filter(V=>V.selected);y(M),m(M),d(!0),o()},"onConfirmBalance"),rt=i(async()=>{A([]),E(""),b(null);let M=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=M.warnings;V?.balance?.messages&&A(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),M.error&&E(lp(M.error)),!M.error&&!V?.balance?.messages.length?nt():A(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(Qc,{onClick:de,variant:"ghost"},$.createElement(rS,{size:12,color:"gray"})):U?null:$.createElement(Qc,{onClick:Oe,variant:"ghost"},$.createElement(aS,{size:16})),"renderCustomDestinationSuffix");qc(()=>{W(M=>{let V=[];return M.forEach(X=>{!C.some(ft=>ft.chain===X.chain&&ft.walletType===X.walletType&&ft.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ft=>ft.chain===X.chain)&&X.selected&&I.includes(X.chain))),V})},[C.length,I.length]),qc(()=>{let M=[];Q.length>0&&(Q.forEach(V=>{let X=C.find(qe=>qe.chain===V.blockchain&&qe.walletType===V.walletType);X?Ve(X):M.push(V)}),Z(M))},[C.length,Q.length]);let he=document.getElementById(ye.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!S,container:he,...!S&&{footer:$.createElement(jp,null,$.createElement(Uc,{loading:a,disabled:Ep(a,x,g,c,ee,Y),onClick:rt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))},...S&&{styles:{container:{padding:"$0"}},header:$.createElement(zp,null,$.createElement(Hp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(nS,{size:16})),$.createElement(vr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(S,u)}})))},anchor:"center"},$.createElement(ne,{open:Te,onClose:A.bind(null,[]),container:he},$.createElement(iS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(tS,{messages:w??[]})},$.createElement(Uc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:nt},St.t("Proceed anyway")))),S&&$.createElement(Gp,null,$.createElement("div",{className:Vp()},$.createElement(Ia,{chain:S,isSelected:_,selectWallet:Ve,onShowMore:()=>k(S),onConnect:M=>{re(S,M)}}))),!S&&$.createElement($.Fragment,null,L&&$.createElement($.Fragment,null,$.createElement(Aa,{variant:"alarm",type:"error",title:St.t(L)}),$.createElement(jo,{size:12})),v&&$.createElement($.Fragment,null,$.createElement(Aa,{variant:"alarm",type:"warning",title:tr(v)}),$.createElement(jo,{size:12})),$.createElement(Zp,null,I.map((M,V)=>{let X=u.find(Zt=>Zt.name===M),qe=`wallet-${V}`,ft=V===I.length-1;return $.createElement("div",{key:qe},$.createElement(Up,null,$.createElement(vr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(vr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(jo,{size:24}),$.createElement(Qp,null,$.createElement(Ia,{chain:M,isSelected:_,selectWallet:Ve,limit:uS,onShowMore:()=>k(X?.name??""),onConnect:Zt=>{re(M,Zt)}})),!ft&&$.createElement(jo,{size:32}),ft&&l?.customDestination!==!1&&$.createElement(Xp,null,$.createElement(ar,{onOpenChange:wt,hasSelected:!0,open:x,triggerAnchor:"top",trigger:$.createElement(Jp,null,$.createElement("div",{className:"button__content"},$.createElement(sS,{size:18,color:"info"}),$.createElement(jo,{size:4,direction:"horizontal"}),$.createElement(vr,{variant:"label",size:"medium",color:x?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(rr,{orientation:x?"up":"down"},$.createElement(oS,{size:10,color:"secondary"}))),onClickTrigger:()=>B(Zt=>!Zt)},$.createElement(Yp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:St.t("Enter {blockchainName} address",{blockchainName:In(M,u)}),value:g||"",suffix:dt(),onChange:Zt=>{let Qf=Zt.target.value;T(Qf)},...!g&&{autoFocus:!0}})),Fe&&$.createElement("div",{className:Kp()},$.createElement(Aa,{variant:"alarm",type:"error",title:St.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(zc,"ConfirmWalletsModal");import{i18n as WS}from"@lingui/core";import{Alert as MS,Button as LS,InfoIcon as BS}from"@rango-dev/ui";import He from"react";import{Alert as fS,Button as gS,Divider as Ma,NoRouteIcon as hS,RefreshIcon as yS,Typography as Yc}from"@rango-dev/ui";import ze from"react";import{i18n as Hc}from"@lingui/core";var mS=24,dS=60;function Gc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:Hc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Hc.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(Gc,"makeInfo");var Na=(o=>(o[o.small=mS]="small",o[o.large=dS]="large",o))(Na||{}),Wa=(o=>(o.small="small",o.large="medium",o))(Wa||{});import{styled as wr}from"@rango-dev/ui";var Vc=wr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Xc=wr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Kc=wr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),jc=wr("div",{padding:"$6 $0"});function Yo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=Gc(o,r,()=>a(s,!0),e);return ze.createElement(Vc,null,ze.createElement(hS,{size:Na[n],color:"gray"}),ze.createElement(Ma,{size:4}),ze.createElement(Yc,{variant:"title",size:Wa[n]},oe().noResultError.title),n==="large"&&ze.createElement(Ma,{size:4}),!!l.description&&ze.createElement(Xc,{size:n},ze.createElement(Yc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ze.createElement(Ma,{size:n==="large"?"24":"4"}),!!l.alert&&ze.createElement(Kc,{size:n},ze.createElement(fS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ze.createElement(gS,{size:"xsmall",type:l.alert.type,prefix:ze.createElement(jc,null,ze.createElement(yS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Yo,"NoResult");import{i18n as Zo}from"@lingui/core";import{Button as CS,Divider as TS,MessageBox as kS,Typography as vS,WarningIcon as wS}from"@rango-dev/ui";import At from"react";import{Typography as eu}from"@rango-dev/ui";import Ba from"react";import{darkTheme as SS,styled as xr}from"@rango-dev/ui";var Zc=xr("div",{width:"100%"}),La=xr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Jc=xr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${SS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rc=xr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function tu(t){let{title:e,value:o,valueColor:n}=t;return Ba.createElement(Jc,null,Ba.createElement(eu,{size:"medium",variant:"label",className:"_title"},e),Ba.createElement(eu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(tu,"QuoteErrorsModalItem");function ou(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Zo.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:Zo.t("Gas cost"),value:N(r.totalFee,2,2)},{title:Zo.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:Zo.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(CS,{type:"primary",size:"large",prefix:At.createElement(wS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},At.createElement(kS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(La,null,At.createElement(TS,{size:"4"}),At.createElement(vS,{size:"small",variant:"title"},Zo.t("Details")),At.createElement(La,null,l.map((p,u)=>At.createElement(tu,{key:u,...p})))))}i(ou,"HighValueLossWarningModal");import{i18n as Pa}from"@lingui/core";function nu(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Pa.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Et(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=Pa.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=Pa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(nu,"makeAlerts");import{i18n as Ao}from"@lingui/core";import{Button as ru,Divider as iu,MessageBox as xS,Typography as bS}from"@rango-dev/ui";import co from"react";import{useNavigate as ES}from"react-router-dom";function au(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=ES(),u=e??o;return co.createElement(ne,{anchor:"bottom",open:n,prefix:co.createElement(ru,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},co.createElement(bS,{variant:"label",size:"medium",color:"$neutral900"},Ao.t("Change settings"))),container:P(),onClose:r},co.createElement(xS,{type:"warning",title:s.type===3?Ao.t("High slippage"):Ao.t("Low slippage"),description:s.type===3?Ao.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Ao.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},co.createElement(iu,{size:18}),co.createElement(iu,{size:32}),co.createElement(ru,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Ao.t("Confirm anyway"))))}i(au,"SlippageWarningModal");import{Button as IS,MessageBox as AS,WarningIcon as NS}from"@rango-dev/ui";import br from"react";function su(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return br.createElement(ne,{footer:br.createElement(IS,{type:"primary",size:"large",prefix:br.createElement(NS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},br.createElement(AS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(su,"UnknownPriceWarningModal");function Jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=nu(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),He.createElement(He.Fragment,null,f&&He.createElement(Yo,{error:o,fetch:s}),!!d&&He.createElement(Zc,null,He.createElement(MS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:He.createElement(Rc,{onClick:l},He.createElement(BS,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:He.createElement(LS,{size:"xxsmall",type:d.alertType,onClick:c},WS.t("Change"))}})),e&&He.createElement(He.Fragment,null,e.type===0&&He.createElement(ou,{...m,warning:e}),(e.type===3||e.type===2)&&He.createElement(au,{...m,warning:e}),e.type===1&&He.createElement(su,{...m,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import cC from"bignumber.js";import Or from"react";import{i18n as uo}from"@lingui/core";import{Alert as ZS,Divider as Wo,FullExpandedQuote as JS,InfoIcon as RS,QuoteTag as eC,StepDetails as tC,TokenAmount as oC,Tooltip as Uu,Typography as Mo}from"@rango-dev/ui";import qa from"bignumber.js";import D,{useRef as nC,useState as rC}from"react";import{styled as _a}from"@rango-dev/ui";var $a=_a("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),lu=_a("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),pu=_a("div",{width:"100%",display:"flex"});import*as Er from"@radix-ui/react-collapsible";import{Button as PS,css as Ro,darkTheme as we,Image as cu,styled as _e,Typography as _S}from"@rango-dev/ui";var $S=300,uu=_e(Er.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),mu=Ro({padding:"$10 $15"}),du=_e(PS,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),fu=_e("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),gu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),hu=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),No=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),yu=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Su=_e(Er.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${cu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${cu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Cu=_e("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Tu=_e(nr,{width:"100%",background:"inherit"}),Da=_e("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${$S}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),JL=_e("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),ku=_e("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),vu=_e("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Fa=_e(_S,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),wu=_e("div",{display:"flex",flexWrap:"wrap"}),Oa=_e("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),xu=_e("div",{display:"flex"}),Ir=_e("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as Gt}from"@lingui/core";import{ChevronDownIcon as FS,CloseIcon as OS,Divider as Wr,IconButton as US,QuoteCost as QS,Tooltip as qS,Typography as lt}from"@rango-dev/ui";import J,{useState as Au}from"react";import{css as DS,styled as Ar}from"@rango-dev/ui";var Nr=Ar("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Ua=Ar("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),bu=Ar("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Eu=Ar("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Iu=DS({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var zS=i(t=>t.fee.isZero()?null:J.createElement(Nr,null,J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(lt,{variant:"label",size:"medium"},"$",N(t.fee,4,4))),"NonPayableFee");function Nu(t){let[e,o]=Au(!1),[n,r]=Au(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=P(),d=fp(m);return J.createElement(J.Fragment,null,J.createElement(QS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Gt.t("View more info"):void 0,tooltipContainer:f}),J.createElement(ne,{container:f,open:e,header:J.createElement(Eu,null,J.createElement(lt,{variant:"title",size:"medium"},Gt.t("Gas & Fee Explanation")),J.createElement(US,{onClick:()=>o(!1),variant:"ghost"},J.createElement(OS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(bu,null,J.createElement(lt,{variant:"title",size:"small"},Gt.t("Details")),J.createElement(Wr,{size:10}),Object.entries(d.payable).flatMap(([g,T])=>T.map((C,y)=>{let S=`payable-fee-${y}`,k=qi(C);return J.createElement(Nr,{key:S},J.createElement(lt,{variant:"label",size:"medium",color:"neutral600"},Fi[g]),J.createElement(qS,{content:ce(C.amount),container:f},J.createElement(lt,{variant:"label",size:"medium"},N(C.amount,2,2)," ",C.asset.symbol," ($",N(k,4,4),")")))})),J.createElement(Nr,{className:"total_payable_fee"},J.createElement(lt,{variant:"label",size:"medium"},Gt.t("Total Payable Fee")),J.createElement(lt,{variant:"label",size:"medium"},"$",N(l,4,4))),J.createElement(Ua,null),Object.keys(d.nonePayable).length&&J.createElement(ar,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:J.createElement("div",{className:Iu()},J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},n?Gt.t("Hide non-payable fees"):Gt.t("Show non-payable fees")),J.createElement(Wr,{size:4,direction:"horizontal"}),J.createElement(rr,{orientation:n?"up":"down"},J.createElement(FS,{size:12,color:"gray"}))),open:n},J.createElement(lt,{size:"small",variant:"title"},Gt.t("Description")),J.createElement(Wr,{size:4}),J.createElement(lt,{size:"small",variant:"body",color:"neutral700"},Gt.t(`The following fees are considered in the transaction output and
|
|
2
2
|
you won\u2019t need to pay extra gas for them.`)),J.createElement(Wr,{size:10}),Object.entries(d.nonePayable).map(([g,T],C)=>{let y=dp(T),S=Fi[g],k=`non-payable-fee-${C}`;return J.createElement(zS,{key:k,fee:y,label:S})}),J.createElement(Ua,null)))))}i(Nu,"QuoteCostDetails");import{i18n as Lu}from"@lingui/core";import{TokenAmount as Bu}from"@rango-dev/ui";import Mr from"react";import{css as HS,styled as GS}from"@rango-dev/ui";var Wu=GS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Mu=HS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function en(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Mr.createElement(Wu,null,Mr.createElement(Bu,{direction:"horizontal",label:Lu.t("Swap input"),type:"input",tooltipContainer:P(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Mr.createElement("div",{className:Mu()}),Mr.createElement(Bu,{direction:"horizontal",tooltipContainer:P(),label:Lu.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(en,"QuoteSummary");import{i18n as Fu}from"@lingui/core";import{ChevronDownIcon as KS,ChevronRightIcon as jS,Divider as Qa,Image as YS,Tooltip as $r,Typography as Br}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as VS,useState as tn}from"react";var Pu=480,_u=768,$u=1024,Du=1200,XS=i(()=>{let[t,e]=tn(!1),[o,n]=tn(!1),[r,a]=tn(!1),[s,l]=tn(!1),[p,u]=tn(!1),c=i(()=>{e(window.innerWidth<=Pu),n(window.innerWidth>Pu&&window.innerWidth<=_u),a(window.innerWidth>_u&&window.innerWidth<=$u),l(window.innerWidth>$u&&window.innerWidth<=Du),u(window.innerWidth>Du)},"handleResize");return VS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Lr=XS;var Pr=4,_r=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return F.createElement($r,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Cu,{className:n,state:a},F.createElement(YS,{src:o,size:16})))},"ImageComponent");function Ou(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Mp(r),{isTablet:m,isMobile:f}=Lr();return F.createElement(Su,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:No()},F.createElement(Br,{variant:"body",size:"xsmall"},Fu.t("Via:")),F.createElement(Qa,{direction:"horizontal",size:4}),r.map((d,g)=>{let T=`item-${g}`,C=F.createElement(Da,null,F.createElement(jS,{size:12,color:"black"}));return f||m?F.createElement(F.Fragment,{key:T},F.createElement(on,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:T},u<=Pr||u>Pr&&g<Pr-1?F.createElement(F.Fragment,null,F.createElement(on,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===Pr-1&&F.createElement($r,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},C,r.map((y,S)=>{let k=`image-${S}`;return S>=g&&F.createElement(F.Fragment,{key:k},F.createElement(on,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),S!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Oa,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(Br,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:No()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:No()},F.createElement(Br,{variant:"body",size:"xsmall"},Fu.t("Chains:")),F.createElement(Qa,{direction:"horizontal",size:4}),c.map((d,g)=>F.createElement(F.Fragment,{key:d.displayName},c.length<=_r||c.length>_r&&g<_r-1?F.createElement($r,{container:p,side:"bottom",content:d.displayName,sideOffset:4},F.createElement(on,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===_r-1&&F.createElement($r,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:No()},c.map((T,C)=>C>=g&&F.createElement(on,{key:T.displayName,content:"",src:T.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Oa,{className:"blockchainImage"},F.createElement(Br,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(Qa,{direction:"horizontal",size:32}))),F.createElement(Da,{orientation:a?"up":"down"},F.createElement(KS,{size:12,color:"black"}))))}i(Ou,"QuoteTrigger");function za(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:m=!1,container:f}=t,d=h().blockchains(),{findToken:g}=h(),T=h().swappers(),{customSlippage:C,slippage:y}=h(),S=C||y,[k,w]=rC(t.expanded),A=nC(null),L=N(o.value,6,6),E=N(n.value,6,6),v=n.usdValue?N(n.usdValue,4,4):"",b=je(o.usdValue,n.usdValue??null),x=N(b,2,2),B=Et(b??0),U=i((re,Te)=>re.map((_,Fe)=>{let ot,de=r?.type===3&&r.swap.swapperId===_.swapperId,Oe=r?.type===4&&r.recommendedSlippages?.has(Fe),wt=a?.type===2&&a.recommendedSlippages?.has(Fe),Ve=de||Oe,nt=wt;Ve?ot="error":nt&&(ot="warning");let rt=Ve?uo.t("Slippage Error"):uo.t("Slippage Warning");return de&&(rt=uo.t("Bridge Limit Error")),{swapper:{displayName:Fo(_.swapperId,T),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Xe(_.from.blockchain,d),image:_.from.blockchainLogo},price:{value:Fe===0&&!Te?N(o.value,6,6):N(_.fromAmount,6,6),usdValue:N((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:ce(Fe===0?o.value:_.fromAmount),realUsdValue:ce(new qa(_.from.usdPrice??0).multipliedBy(_.fromAmount))}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Xe(_.to.blockchain,d),image:_.to.blockchainLogo},price:{value:N(_.toAmount,6,6),usdValue:N((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:ce(_.toAmount),realUsdValue:ce(new qa(_.to.usdPrice??0).multipliedBy(_.toAmount))}},state:ot,alerts:Ve||nt?D.createElement(lu,{dense:m},D.createElement(ZS,{variant:"alarm",type:Ve?"error":"warning",title:rt,footer:D.createElement(pu,null,de&&D.createElement("div",null,D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {amount} {symbol}",values:{amount:N(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Oe||wt)&&!de&&D.createElement("div",null,D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Fe)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Fe)}}})),D.createElement(Wo,{direction:"vertical",size:2}),D.createElement(Mo,{size:"xsmall",variant:"body",color:"neutral900"},uo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Oo(_.estimatedTimeInSeconds),fee:N(Qi(_,g),2,2),internalSwaps:_.internalSwaps?U(_.internalSwaps):void 0}}),"getQuoteSteps"),I=U(e?.swaps??[]),H=I.length,Y=f||P(),pe=Bp(t.quote.tags||[]),G=!!c,ee=Oo(An(e?.swaps)),W=Vn(e?.swaps??[],g),Q=N(W,2,2),Z=W.gte(new qa(sp));return m?D.createElement(JS,{selected:l,fee:Q,time:ee,tooltipContainer:Do(),steps:I,tags:pe,feeWarning:Z,percentageChange:x,warningLevel:B,outputPrice:{value:E,usdValue:v,realValue:ce(n.value),realUsdValue:ce(n.usdValue)}}):D.createElement(fu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:gu()},!p&&pe.length?D.createElement(D.Fragment,null,D.createElement(xu,null,pe.map((re,Te)=>{let _=`${re.value}_${Te}`;return D.createElement(D.Fragment,{key:_},D.createElement(eC,{label:re.label,value:re.value}),D.createElement(Wo,{size:4,direction:"horizontal"}))})),D.createElement(Ir,null),!G&&D.createElement(Wo,{size:4})):null,D.createElement("div",{id:"portal-root",className:hu()},D.createElement(Nu,{quote:e,time:ee,fee:Q,feeWarning:Z,showModalFee:u,steps:H}),G&&D.createElement(du,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Mo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},uo.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:yu()},D.createElement(vu,null,D.createElement(RS,{size:12,color:"gray"})),D.createElement(wu,null,D.createElement(Fa,{size:"small",variant:"body"},`${L} ${I[0].from.token.displayName} = `),D.createElement(Uu,{content:ce(n.value),container:Y,open:n.value?void 0:!1},D.createElement(Fa,{size:"small",variant:"body"},"\xA0",`${E} ${I[I.length-1].to.token.displayName}`))),D.createElement(Uu,{content:ce(n.usdValue),container:Y},D.createElement(Wo,{size:2,direction:"horizontal"}),D.createElement(Mo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&D.createElement(oC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:E,usdValue:v,realValue:ce(n.value),realUsdValue:ce(n.usdValue)},token:{displayName:I[H-1].to.token.displayName,image:I[H-1].to.token.image},chain:{image:I[H-1].to.chain.image},percentageChange:x,warningLevel:B}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(en,{from:I[0].from,to:I[H-1].to,percentageChange:x,warningLevel:B}),D.createElement(Wo,{size:4}))),D.createElement(uu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},D.createElement(Ou,{type:s,quoteRef:A,selected:l,setExpanded:w,container:Y,expanded:k,steps:I}),D.createElement(Tu,{open:k},D.createElement(ku,null),D.createElement("div",{className:mu()},I.map((re,Te)=>{let _=`item-${Te}`;return D.createElement(tC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:Te!==I.length-1,state:re.state})})))))}i(za,"Quote");import{Divider as lC,Skeleton as pC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as iC,styled as Dr}from"@rango-dev/ui";var Qu=Dr("div",{$$color:"$colors$neutral100",[`.${iC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),qu=Dr("div",{paddingTop:"$2"}),zu=Dr("div",{paddingLeft:"$8"}),Hu=Dr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as em,Divider as pt,Skeleton as Ge}from"@rango-dev/ui";import z from"react";import{css as aC,styled as Nt}from"@rango-dev/ui";var Ha=Nt("div",{display:"flex"}),Gu=Nt("div",{padding:"$10 $0 $20"}),Vu=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Xu=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ku=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),ju=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Yu=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),Zu=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Ju=Nt("div",{padding:"$15 $0 $15 $0"}),Ru=aC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(Ku,null,z.createElement(Yu,null,z.createElement(em,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{size:8,direction:"horizontal"}),z.createElement(Zu,null,z.createElement(Ge,{height:10,width:60,variant:"rounded"}),z.createElement(pt,{size:4}),z.createElement(Ge,{height:15,variant:"rounded"}))),z.createElement(Ge,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return z.createElement("div",null,!o&&z.createElement(z.Fragment,null,z.createElement(Ha,null,z.createElement(Ge,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:65,height:20,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:65,height:20,variant:"rounded"})),z.createElement(Ir,null),!r&&z.createElement(pt,{size:4})),z.createElement("div",{className:Ru()},z.createElement(Ha,null,z.createElement(Ge,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:60,height:10,variant:"rounded"}),z.createElement(pt,{size:4,direction:"horizontal"}),z.createElement(Ge,{width:60,height:10,variant:"rounded"})),r&&z.createElement(Ge,{width:85,height:24,variant:"rounded"})),e==="basic"&&z.createElement(Gu,null,z.createElement(Ge,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(Vu,null,z.createElement(Xu,null,z.createElement(em,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(pt,{direction:"horizontal",size:4}),z.createElement(Ge,{height:15,width:150,variant:"rounded"})),z.createElement(pt,{size:10}),z.createElement(Ge,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(pt,{size:4}),z.createElement(Ju,null,n,z.createElement(ju,null),n),z.createElement(pt,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as im,Divider as Va,NextIcon as sC,Skeleton as Fr}from"@rango-dev/ui";import xe from"react";import{styled as rn}from"@rango-dev/ui";var tm=rn("div",{display:"flex",alignItems:"start"}),om=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ga=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),nm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),rm=rn("div",{display:"flex",alignItems:"center"});function Ct(t){let{separator:e=!0}=t;return xe.createElement(xe.Fragment,null,xe.createElement(rm,null,xe.createElement(Fr,{height:22,width:22,variant:"circular"}),xe.createElement(Va,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:15,width:148,variant:"rounded"})),xe.createElement(tm,null,xe.createElement(Hu,{hideSeparator:!e}),xe.createElement(om,{extraSpace:e},xe.createElement(Ga,null,xe.createElement(im,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(Va,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:12,variant:"rounded"})),xe.createElement(nm,null,xe.createElement(sC,{color:"gray",size:16})),xe.createElement(Ga,null,xe.createElement(im,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(Va,{direction:"horizontal",size:8}),xe.createElement(Fr,{height:12,variant:"rounded"})))))}i(Ct,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(Qu,{expanded:o,rounded:e!=="basic"},Wt.createElement(nn,{type:e,tagHidden:n}),Wt.createElement(qu,null,Wt.createElement(pC,{height:15,variant:"rounded"})),o&&Wt.createElement(zu,null,Wt.createElement(lC,{size:24}),Wt.createElement(Ct,null),Wt.createElement(Ct,null),Wt.createElement(Ct,{separator:!1})))}i(an,"QuoteSkeleton");function mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:f=!1,container:d}=t,{inputAmount:g,inputUsdValue:T,toToken:C}=j(),y=e?.outputAmount?new cC(e?.outputAmount):null,S=e?.outputAmount?Kn(e?.outputAmount,Yn(e)||C?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Or.createElement($a,null,Or.createElement(an,{tagHidden:l,type:o,expanded:s})):w?Or.createElement($a,{onClick:()=>p?.(e)},Or.createElement(za,{quote:e,error:r,container:d,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:f,input:{value:g,usdValue:T?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(mo,"QuoteInfo");import{calculatePendingSwap as fC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as gC}from"react";import{useRef as uC,useState as mC}from"react";var dC=2e3;function Ur({request:t}){let[e,o]=mC(!1),n=uC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,dC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Ur,"useFetch");function am(){let{fetch:t,loading:e,cancelFetch:o}=Ur({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(am,"useFetchConfirmQuote");function Qr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Xa(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Qr,"throwErrorIfResponseIsNotValid");function Xa(t){if(cp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=up(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=gp(t);if(o){let n=Xn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Xa,"getQuoteError");function sm(t,e,o){let n=!1;t&&(n=Wp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=To(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(kp(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(Co(e)),percentageChange:N(je(Co(t)??"",Co(e)??""),null,2)}:zi(t,e)?r.quoteUpdate={type:0}:Hi(t,e)?r.quoteUpdate={type:1}:Gi(t,e)&&(r.quoteUpdate={type:2}));let s=vp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(sm,"generateWarnings");function qr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(qr,"handleQuoteErrors");function Ka(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:T,cancelFetch:C,loading:y}=am();return gC(()=>C,[]),{loading:y,fetch:i(async k=>{let w=k.selectedWallets,A=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let L=w.reduce((v,b)=>(v[b.chain]=b.address,v),{}),E={requestId:r?.requestId||"",selectedWallets:L,destination:A||void 0};try{return await T(E,!0).then(v=>{let{result:b}=v;Qr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let x={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(x);let B={slippage:g.toString(),disabledSwappersGroups:c},U=sm(r??void 0,x,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:w,userSlippage:g});U.quoteUpdate&&s(!1),l();let I=!!U.balance,H=fC(o.toString(),b,Cp(w),B,!I,{blockchains:m,tokens:f});return{quote:x,swap:H,error:null,warnings:U}})}catch(v){return qr(v)}},"fetch"),cancelFetch:C}}i(Ka,"useConfirmSwap");var xC=SC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${pm}`]:{width:"$48",height:"$48"}}),bC=Za({flexGrow:1,paddingRight:"$10"}),EC=Za({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),IC=Za({display:"flex",justifyContent:"space-between",alignItems:"center"});function cm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=wC(),[l,p]=sn(""),u=!n,[c,m]=sn(!1),[f,d]=sn(!1),{isActiveTab:g}=ie(),T=h().getDisabledLiquiditySources(),C=vC(T),{manager:y}=hC(),{fetch:S,loading:k,cancelFetch:w}=Ka(),[A,L]=sn({swap:null,error:null,warnings:null}),[E,v]=sn(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let W=await S?.({selectedWallets:G,customDestination:ee});return L(W),W},"onConfirmSwap"),x=i(async()=>{if(A.swap&&n)try{await y?.create("swap",{swapDetails:A.swap},{id:A.swap.requestId});let G=`../${q.swaps}/${A.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),B=i(async()=>{d(!0),await x(),d(!1)},"onConfirm"),U=i(async()=>{A?.warnings?.quote&&!a?v(!0):await B()},"onStartConfirmSwap"),I=i(async()=>{L({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(G=>{L(G)}).catch(G=>console.error(G))},"onRefresh");zr(()=>{!!C.current.length&&!T.length&&I(),C.current=T},[T.length]),zr(()=>{u&&w()},[u]),zr(()=>{u&&m(u)},[u]),zr(()=>{u||S({selectedWallets:o,customDestination:r}).then(G=>L(G)).catch(G=>console.error(G))},[]),kC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=A.warnings?.quote??null,Y=A.error,pe=[];if(l&&pe.push(be.createElement(lm,{type:"error",variant:"alarm",title:l})),A.warnings?.quoteUpdate&&pe.push(be.createElement(lm,{variant:"alarm",type:"warning",title:A.warnings.quoteUpdate&&tr(A.warnings.quoteUpdate)})),H||Y){let G=`../${q.settings}`;pe.push(be.createElement(Jo,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:I,showWarningModal:E,confirmationDisabled:!g,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await x()},onChangeSettings:()=>s(G)}))}return be.createElement(le,{header:{title:ja.t("Confirm Swap"),onWallet:()=>{let G=`../${q.wallets}`;s(G)}},footer:be.createElement(xC,null,be.createElement("div",{className:bC()},be.createElement(yC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!A.error||!g,onClick:U},ja.t("Start Swap"))),be.createElement(pm,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},be.createElement(TC,{size:24})))},c&&be.createElement(zc,{open:c,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:b}),be.createElement(me,null,be.createElement("div",{className:IC()},be.createElement(CC,{variant:"title",size:"small"},ja.t("You get")),be.createElement("div",{className:EC()},be.createElement(ur,{onClick:!k&&!c&&!E?I:void 0}))),be.createElement(Ya,{size:"12"}),tc(pe.map((G,ee)=>({element:G,key:`alert-${ee}`})),be.createElement(Ya,{size:10})),pe.length>0?be.createElement(Ya,{size:10}):null,be.createElement(mo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:A.error,loading:k,warning:A.warnings?.quote??null})))}i(cm,"ConfirmSwapPage");import{i18n as Gr}from"@lingui/core";import{useManager as zC}from"@rango-dev/queue-manager-react";import{Divider as km,NotFound as HC,styled as GC}from"@rango-dev/ui";import Lt,{useState as VC}from"react";import{useNavigate as XC}from"react-router-dom";import{i18n as WC}from"@lingui/core";import{Divider as gm,GroupedVirtualizedList as MC,Skeleton as LC,SwapListItem as hm,Typography as BC}from"@rango-dev/ui";import $e,{useCallback as ym,useEffect as PC,useRef as _C,useState as $C}from"react";function um(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(um,"calculateGroupsSoFar");import{css as AC,darkTheme as NC,styled as ln}from"@rango-dev/ui";var Ja=AC(),mm=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ra=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Ja}`]:{$$color:"$colors$neutral600",[`.${NC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),es=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),dm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),fm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var DC=10;function ts(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=$C([]),l=_C(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=ym(um,[]),f=ym(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,DC),s(m(u,l.current)))},[e.length]);if(PC(()=>{r||f()},[r,f]),r){let d=[1,2];return $e.createElement($e.Fragment,null,[d,d].map((T,C)=>$e.createElement(Ra,{key:C},$e.createElement(es,null,$e.createElement(LC,{variant:"text",width:60,size:"small"}),$e.createElement(gm,{size:16})),$e.createElement(gm,{size:4}),$e.createElement(dm,null,T.map((S,k)=>$e.createElement(hm,{isLoading:!0,key:k}))))))}return $e.createElement(MC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>$e.createElement(Ra,null,$e.createElement(es,null,$e.createElement(BC,{variant:"label",size:"medium",className:Ja()},c[d]))),itemContent:(d,g)=>{let T=p[d];if(!T)return null;let C=T.steps[0],y=T.steps[T.steps.length-1];return $e.createElement(mm,{key:T.requestId},$e.createElement(hm,{requestId:T.requestId,creationTime:T.creationTime,status:T.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===WC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:N(T.inputAmount,6,6),realAmount:ce(T.inputAmount)},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:N(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:ce(y.outputAmount||y.expectedOutputAmountHumanReadable)}}}))}})}i(ts,"HistoryGroupedList");import{CloseIcon as OC,IconButton as UC,SearchIcon as QC,TextField as qC}from"@rango-dev/ui";import pn from"react";import{styled as FC}from"@rango-dev/ui";var Sm=FC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(qC,{prefix:pn.createElement(Sm,null,pn.createElement(QC,{color:"black"})),suffix:!!s.length&&pn.createElement(UC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(OC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Mt,"SearchInput");import{i18n as Hr}from"@lingui/core";import Cm from"dayjs";var Tm=i(t=>{let e=new Map([["today",{title:Hr.t("Today"),swaps:[]}],["week",{title:Hr.t("This week"),swaps:[]}],["month",{title:Hr.t("This month"),swaps:[]}],["year",{title:Hr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Cm();t.forEach(p=>{let u=Number(p.creationTime),c=Cm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let m=new Date(u).getFullYear().toString();o(m,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var KC=GC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),jC=i((t,e)=>t?.length?t.filter(o=>gt(o.fromBlockchain,e)||gt(o.toBlockchain,e)||gt(o.toSymbol,e)||gt(o.fromSymbol,e)).length:!1,"isStepContainsText");function vm(){let t=XC(),{manager:e,state:o}=zC(),n=Je(e).map(({swap:c})=>c),[r,a]=VC(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||jC(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:Gr.t("History")}},Lt.createElement(me,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Gr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(km,{size:"16"}),Lt.createElement(KC,null,u&&Lt.createElement(fm,null,Lt.createElement(km,{size:32}),Lt.createElement(HC,{title:Gr.t("No results found"),description:r?Gr.t("Try using different keywords"):""})),!u&&Lt.createElement(ts,{list:p,onSwapClick:t,groupBy:Tm,isLoading:s}))))}i(vm,"HistoryPage");import{i18n as fT}from"@lingui/core";import{Button as gT,Divider as Um,styled as hT,WarningIcon as yT}from"@rango-dev/ui";import ST from"bignumber.js";import Ue,{useEffect as Qm,useState as qm}from"react";import{useNavigate as CT}from"react-router-dom";import{i18n as tT}from"@lingui/core";import{Header as oT}from"@rango-dev/ui";import Vt,{useEffect as nT,useState as rT}from"react";import{i18n as ZC}from"@lingui/core";import{Divider as ns,FullExpandedQuote as JC,Typography as RC}from"@rango-dev/ui";import fe from"react";import{styled as os}from"@rango-dev/ui";var wm=os("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),xm=os("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),bm=os("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as YC}from"@rango-dev/ui";import Em from"react";function Vr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:cn.t("Smart Routing")},{value:"FEE",label:cn.t("Lowest Fee")},{value:"SPEED",label:cn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:cn.t("Maximum Return")},{value:"PRICE",label:cn.t("Maximum Output")}];return Em.createElement(bm,null,Em.createElement(YC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Vr,"SelectStrategy");var Im=3;function un(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:f,sortStrategy:d,error:g}=j(),{slippage:T,customSlippage:C}=h(),{findToken:y}=h(),S=l||P(),k=!!u&&u.results.length,w=C??T,A=i(v=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...v};return To(b,{fromToken:m,toToken:f,userSlippage:w,findToken:y})},"getQuoteWarning"),L=g?.type===0||g?.type===1,E=u?.results?Jn(d,u?.results):[];return fe.createElement(fe.Fragment,null,a&&fe.createElement(fe.Fragment,null,fe.createElement(xm,null,fe.createElement(RC,{size:"xmedium",variant:"title"},ZC.t("Sort by")),fe.createElement(Vr,{container:S})),fe.createElement(ns,{size:"10"})),e&&Array.from({length:Im},(v,b)=>fe.createElement(fe.Fragment,{key:b},s?fe.createElement(JC,{loading:!0}):fe.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Im-1&&fe.createElement(ns,{size:16}))),!e&&fe.createElement(fe.Fragment,null,k?E.map((v,b)=>{let x=A(v),B=Xa(v.swaps),U=E.length-1===b;return fe.createElement(fe.Fragment,{key:v.requestId},fe.createElement(mo,{showModalFee:r,container:S,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:x,fullExpandedMode:s,onClick:I=>{B||c("warning",x),c("error",B?.options||null),o(I)},type:"list-item"}),!U&&fe.createElement(ns,{size:16}))}):L&&fe.createElement(wm,null,fe.createElement(Yo,{size:s?"large":"small",error:g,fetch:n}))))}i(un,"Quotes");import{darkTheme as eT,styled as Am}from"@rango-dev/ui";var Nm=Am("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${eT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Wm=Am("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var iT=100;function rs(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=rT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=Do();return nT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},iT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Vt.createElement(Nm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${fr()}`,id:ye.EXPANDED_BOX_ID},Vt.createElement(oT,{title:tT.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Vr,{container:m}),Vt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(Wm,null,Vt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Do(),onClickOnQuote:n,fullExpandedMode:c})))}i(rs,"ExpandedQuotes");import{i18n as Dm}from"@lingui/core";import{SwapInput as Fm}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as lT}from"@rango-dev/ui";import as from"react";import{keyframes as aT,styled as Mm}from"@rango-dev/ui";var is=450,sT=aT({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Lm=Mm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Bm=Mm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${sT} ${is}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function ss(){let t=j.use.switchFromAndTo();return as.createElement(Lm,null,as.createElement(Bm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},is),t()}},as.createElement(lT,{size:12})))}i(ss,"SwitchFromAndToButton");import{styled as Pm}from"@rango-dev/ui";var _m=Pm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),$m=Pm("div",{position:"relative"});function ls(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=j(),{connectedWallets:T,getBalanceFor:C}=te(),y=a?C(a):null,S=Pn(y)?.amount??"0",k=s&&a?N(y?.amount,y?.decimals):"0",w=!!s&&Ml(T,s.name),A=!Ui(g,c,m),L=!Ui(g,c,d),E=!m||!d||!d.gt(0)?null:je(m.toString(),d.toString());return mn.createElement(_m,null,mn.createElement($m,null,mn.createElement(Fm,{label:Dm.t("From"),mode:"From",onInputChange:u,balance:S,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:A?void 0:N(m,4,4),realUsdValue:A?void 0:ce(m),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),mn.createElement(ss,null)),mn.createElement(Fm,{sharpBottomStyle:!r&&(!!g||e),label:Dm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(je(m,d),2,2),warningLevel:Et(E??0),price:{value:N(f,6,6),usdValue:L?void 0:N(d,4,4),realValue:ce(f),realUsdValue:L?void 0:ce(d),error:L?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(ls,"Inputs");import{useCallback as pT,useEffect as cT,useRef as uT,useState as mT}from"react";function Om(){let{fetch:t,loading:e,cancelFetch:o}=Ur({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Om,"useFetchAllQuotes");var dT=600;function Xr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Om(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:f,resetQuote:d,error:g,warning:T,setSelectedQuote:C,updateQuotePartialState:y}=j(),{slippage:S,customSlippage:k,affiliatePercent:w,affiliateRef:A,affiliateWallets:L,fetchStatus:E}=h(),v=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),x=h().excludeLiquiditySources(),{findToken:B}=h(),[U,I]=mT(!0),H=uT(u),Y=k??S,G=!l||!p||Rt(l,p)||!Uo(u),ee=i(Z=>{I(Z)},"resetState"),W=i(Z=>{let{fromToken:re,toToken:Te,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:de,slippage:Oe,affiliateRef:wt,affiliatePercent:Ve,affiliateWallets:nt}=Z;if(U||ee(!0),!G&&re&&Te){d();let rt=Sp({fromToken:re,toToken:Te,inputAmount:_,liquiditySources:Fe,excludeLiquiditySources:ot,disabledLiquiditySources:de,wallets:s,slippage:Oe,affiliateRef:wt,affiliatePercent:Ve,affiliateWallets:nt,enableCentralizedSwappers:a});Hl("experimentalRoute",r)&&(rt.experimental=!0),e(rt).then(dt=>{let he=Jn(f,dt.results),M=Lp(m,he,dt.requestAmount);I(!1),y("quotes",dt),C(M),Qr({diagnosisMessages:dt.diagnosisMessages,requestId:M?.requestId||"",swaps:M?.swaps});let V=M&&To(M,{fromToken:re,toToken:Te,userSlippage:Y,findToken:B});y("warning",V)}).catch(dt=>{let{error:he}=qr(dt);(he?.type===0||he?.type===1)&&d(),he?.type!==2&&(y("error",he),I(!1))})}},"fetch"),Q=pT(hl(Z=>{W(Z)},dT),[G]);return cT(()=>{if(!t){I(!1);return}if(E!=="success")return;if(G){I(!1),(m||g||T)&&d();return}if(!Uo(u)||c?.eq(0)){ee(!1),o();return}d(),ee(!0);let Z=W;return H.current&&H.current!=u&&(Z=Q),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,v?.length,n,b.length,Y,A,w,JSON.stringify(L)]),{fetch:()=>W({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),loading:U}}i(Xr,"useSwapInput");var TT=hT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),kT=300;function zm(){let t=CT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=j(),[d,g]=qm(!1),{isLargeScreen:T,isExtraLargeScreen:C}=Lr(),{fetch:y,loading:S}=Xr({refetchQuote:a}),{config:k,fetchStatus:w}=h(),{connectedWallets:A}=te(),{isActiveTab:L}=ie(),[E,v]=qm(!1),x=mp({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:A.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Fl(T,C,k?.variant),U=!!n&&!!e&&!!o&&new ST(n).gt(0)&&!Ip(e,o),I=U&&w==="success"&&S,pe=(!B||B&&p?.results.length)&&(l||s);Qm(()=>{c(),f("refetchQuote",!0)},[]),Qm(()=>{g(U)},[U]);let G=(r||s)&&!E?y:void 0,ee=i(Q=>{B&&d?(g(!1),setTimeout(()=>{t(Q)},kT)):t(Q)},"onHandleNavigation"),W=i(Q=>{r?.requestId!==Q.requestId&&(v(!1),u(Q))},"onClickOnQuote");return Ue.createElement(TT,null,Ue.createElement(le,{height:"auto",footer:Ue.createElement(gT,{type:"primary",size:"large",disabled:x.disabled||!L,prefix:x.action==="confirm-warning"&&Ue.createElement(yT,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?ee(q.wallets):x.action==="confirm-warning"?v(!0):ee(q.confirmSwap)}},x.title),header:{onWallet:()=>{ee(q.wallets)},hasBackButton:!1,title:k.title||fT.t("Swap"),suffix:Ue.createElement(ao,{hidden:B?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(q.swaps),onClickSettings:()=>{ee(q.settings)}})}},Ue.createElement(me,null,Ue.createElement(ls,{fetchingQuote:I,fetchMetaStatus:w,isExpandable:B,onClickToken:Q=>{ee(Q==="from"?q.fromSwap:q.toSwap)}}),Ue.createElement(Um,{size:"2"}),B?null:Ue.createElement(mo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),ee(q.routes)}:void 0}),pe?Ue.createElement(Ue.Fragment,null,Ue.createElement(Um,{size:"10"}),Ue.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:E,confirmationDisabled:!L,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),m(!0),ee(q.confirmSwap)},onChangeSettings:()=>ee(q.settings)})):null)),B?Ue.createElement(rs,{loading:I,onClickOnQuote:W,fetch:y,onClickRefresh:G,isVisible:d}):null)}i(zm,"Home");import{i18n as Hm}from"@lingui/core";import{Alert as vT,Divider as wT,List as xT,ListItemButton as bT,Radio as ET,RadioRoot as IT,Typography as AT}from"@rango-dev/ui";import Tt from"react";function Xt(){let{setLanguage:t,language:e,config:o}=h(),n=Vl,r=o?.language||So;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||So),resetLanguage:()=>t(null)}}i(Xt,"useLanguage");function Gm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Xt(),n=Ze(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Tt.createElement(AT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Tt.createElement(ET,{value:s}),start:Tt.createElement(p,null)}});return Tt.createElement(le,{header:{title:Hm.t("Language")}},Tt.createElement(me,null,Tt.createElement(vT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Tt.createElement(wT,{size:"8"}),Tt.createElement(IT,{value:t},Tt.createElement(xT,{type:Tt.createElement(bT,{title:Hm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Gm,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as BT,Checkbox as PT,Image as _T,ListItemButton as $T,NotFound as DT,Typography as FT}from"@rango-dev/ui";import De,{useState as OT}from"react";import{Checkbox as MT,Skeleton as Xm}from"@rango-dev/ui";import fn from"react";import{styled as ps}from"@rango-dev/ui";var dn=ps("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),cs=ps("div",{width:80,display:"flex",justifyContent:"flex-end"}),us=ps("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as NT,styled as WT}from"@rango-dev/ui";var Vm=WT(NT,{height:61});var LT=30;function ms(){return fn.createElement(dn,null,Array.from(Array(LT),(t,e)=>fn.createElement(Vm,{hasDivider:!0,key:e,start:fn.createElement(Xm,{variant:"circular",width:35,height:35}),title:fn.createElement(Xm,{variant:"text",size:"large",width:90}),end:fn.createElement(MT,{checked:!1})})))}i(ms,"LoadingLiquiditySourceList");function ds({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=OT(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=On(o,n),u={Exchanges:Bt.t("Exchanges"),Bridges:Bt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,d=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:S,groupTitle:k,logo:w}=y;return{start:De.createElement(_T,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:De.createElement(PT,{checked:S,disabled:l}),title:De.createElement(FT,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),T=i(y=>{let S=y.target.value;a(S)},"searchHandler"),C=g;return r&&(C=g.filter(y=>gt(y.groupTitle,r))),De.createElement(le,{header:{title:Bt.t(t),suffix:De.createElement(cs,null,De.createElement(BT,{variant:"ghost",size:"xsmall",onClick:d},f?Bt.t("Deselect all"):Bt.t("Select all")))}},De.createElement(me,{view:!0},De.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:T}),e==="loading"&&De.createElement(ms,null),!C.length&&r?De.createElement(us,null,De.createElement(DT,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&De.createElement(dn,{disabled:l},C.map(y=>{let{groupTitle:S,...k}=y;return De.createElement(De.Fragment,{key:y.id},De.createElement($T,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ds,"LiquiditySourcePage");import{i18n as UT}from"@lingui/core";import Kr from"react";import{useNavigate as QT}from"react-router-dom";function Km(){let t=QT(),e=Ze(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=Xr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,m=`../${q.wallets}`;return Kr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:UT.t("Routes"),suffix:Kr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(me,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(Km,"RoutesPage");import{i18n as od}from"@lingui/core";import{Divider as nd,getCategoriesCount as YT,SelectableCategoryList as ZT}from"@rango-dev/ui";import Pt,{useState as rd}from"react";import{i18n as fs}from"@lingui/core";import{Divider as ed,Image as GT,ListItemButton as VT,NotFound as XT,Typography as td}from"@rango-dev/ui";import Re,{useEffect as KT,useState as jT}from"react";var jm=i((t,e,o)=>t.filter(n=>bn(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as qT,styled as Ym}from"@rango-dev/ui";var Zm=Ym("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),jr=Ym(Xo,{padding:0,margin:0,listStyle:"none",[`& ${qT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as zT,Skeleton as Jm}from"@rango-dev/ui";import Yr from"react";var HT=20;function Rm(){return Yr.createElement(jr,null,Array.from(Array(HT),t=>Yr.createElement(zT,{key:t,hasDivider:!0,start:Yr.createElement(Jm,{variant:"circular",width:35,height:35}),title:Yr.createElement(Jm,{variant:"text",size:"large",width:90})})))}i(Rm,"LoadingBlockchainList");function gs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=jT(e),{fetchStatus:l}=h();KT(()=>{s([...jm(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Re.createElement(Re.Fragment,null,Re.createElement(ed,{size:32}),Re.createElement(XT,{title:fs.t("No results found"),description:fs.t("Try using different keywords")})):Re.createElement(jr,{as:"ul",key:`${r}-${o}`},a.map(u=>Re.createElement(VT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Re.createElement(GT,{src:u.logo,size:30}),title:Re.createElement(td,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Re.createElement(Zm,null,Re.createElement(td,{variant:"label",size:"large"},fs.t("Select Blockchain")),Re.createElement(ed,{size:4}),l==="loading"&&Re.createElement(Rm,null),l==="success"&&p())}i(gs,"BlockchainList");function hs(t){let{type:e}=t,o=Ze(),[n,r]=rd(""),[a,s]=rd("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=YT(c)!==1;return Pt.createElement(le,{header:{title:od.t("Select Blockchain")}},Pt.createElement(me,{view:!0},f&&Pt.createElement(Pt.Fragment,null,Pt.createElement(ZT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(nd,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:od.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),Pt.createElement(nd,{size:16}),Pt.createElement(gs,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(hs,"SelectBlockchainPage");import{i18n as ti}from"@lingui/core";import{Divider as bd}from"@rango-dev/ui";import fo,{useState as fk}from"react";import{useNavigate as gk}from"react-router-dom";import{i18n as Cs}from"@lingui/core";import{BlockchainsChip as Zr,Divider as ld,Image as pd,Skeleton as ok,Tooltip as nk,Typography as Ts}from"@rango-dev/ui";import Ne from"react";import{useEffect as ek}from"react";var id=["ETH","COSMOS","OSMOSIS"];function ys(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(JT),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(RT(s)),r=n.splice(a)}return{list:n,more:r}}i(ys,"prepare");function JT(t,e){let o=id,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(JT,"sortByMostUsedBlockchains");function RT(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(RT,"generateSortByPreferredBlockchainsFor");function ad(t,e){return!!e.list.find(o=>o.name===t)}i(ad,"isInVisibleList");function Ss(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();ek(()=>{if(e?.selected){let a=ys(t,o,e);ad(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=ys(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Ss,"usePrepareBlockchainList");import{styled as tk}from"@rango-dev/ui";var sd=tk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var rk=12;function ks(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Ss(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Ne.createElement(Ne.Fragment,null,Ne.createElement(ld,{size:12}),Ne.createElement(Ts,{variant:"label",size:"large"},Cs.t("Select Blockchain")),Ne.createElement(ld,{size:12}),Ne.createElement(sd,null,l==="loading"&&Array.from(Array(rk),d=>Ne.createElement(ok,{key:d,variant:"rounded",height:50})),l==="success"&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Zr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ne.createElement(Ts,{variant:"body",size:"xsmall",color:"secondary500"},Cs.t("All"))),s.list.map(d=>Ne.createElement(nk,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:P()},Ne.createElement(Zr,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Ne.createElement(pd,{src:d.logo,size:30})))),m?Ne.createElement(Zr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ne.createElement(pd,{src:s.more[0].logo,size:30})):null,f?Ne.createElement(Zr,{onClick:a,key:"more-blockchains"},Ne.createElement(Ts,{variant:"body",size:"xsmall",color:"secondary500"},Cs._("More +{count}",{count:s.more.length}))):null)))}i(ks,"BlockchainsSection");import{i18n as Ms}from"@lingui/core";import{darkTheme as Td,Divider as Bo,ExternalLinkIcon as sk,Image as lk,ListItemButton as pk,NotFound as ck,PinIcon as uk,Skeleton as kd,Typography as ei,VirtualizedList as mk}from"@rango-dev/ui";import K,{useEffect as vd,useState as wd}from"react";import{Divider as Sd,ListItem as ak,Skeleton as gn}from"@rango-dev/ui";import ct from"react";import{css as Lo,darkTheme as cd,ImageContainer as ik,styled as et,Typography as ud}from"@rango-dev/ui";var vs=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),ws=Lo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),xs=Lo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),bs=Lo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${cd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Es=Lo({}),Is=Lo(),md=et("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),As=et("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Jr=et("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${ws}`]:{[`& .${bs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Es}`]:{bottom:"-15px"},[`& .${vs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${xs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ns=et("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ws=et(ud,{}),dd=et("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Is}`]:{$$color:"$colors$neutral600",[`.${cd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rr=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),$O=et("div",{display:"flex",alignItems:"center"}),fd=et("div",{position:"relative",[`& ${ik}`]:{borderRadius:"$xm",overflow:"hidden"}}),gd=et("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),hd=et(ud,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),yd=et("a",{"& svg:hover":{color:"$colors$info"}});function Cd(t){return ct.createElement(Jr,null,Array.from(Array(t.size),e=>ct.createElement(ak,{key:e,hasDivider:!0,start:ct.createElement(gn,{variant:"circular",width:35,height:35}),end:ct.createElement(Rr,null,ct.createElement(gn,{variant:"text",size:"large",width:70}),ct.createElement(Sd,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:50})),title:ct.createElement("div",null,ct.createElement(gn,{variant:"text",size:"large",width:90}),ct.createElement(Sd,{size:4}),ct.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i(Cd,"LoadingTokenList");var Ls=20,dk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:ws()},o?K.createElement("div",{className:vs()},o):K.createElement(As,{className:xs()},K.createElement(ei,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Bo,{direction:"horizontal",size:4}),K.createElement(Ns,{css:a},K.createElement(Ws,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${bs()} ${!o&&Es()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Bo,{size:4,direction:"horizontal"}),K.createElement(yd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(sk,{size:12}))))},"renderDesc");function xd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=wd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=wd(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+Ls))},"loadNextPage");vd(()=>{c(e.length>a.length)},[a.length]),vd(()=>{s(e.slice(0,Ls))},[e.length]);let T=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Bo,{size:32}),K.createElement(ck,{title:Ms.t("No results found"),description:Ms.t("Try using different keywords")})):K.createElement(mk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],S=Pn(m(y)),k=y.address||"",w=p.find(v=>v.name===y.blockchain),A=ta(w.color,"main"),L={$$color:A.main250,[`.${Td} &`]:{$$color:A.main850},backgroundColor:"$$color"},E={$$color:A.main600,[`.${Td} &`]:{$$color:A.main200},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(pk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:K.createElement(fd,null,K.createElement(lk,{src:y.image,size:30}),d(y,t.type)&&K.createElement(gd,null,K.createElement(uk,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(As,null,K.createElement(ei,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Bo,{direction:"horizontal",size:4}),K.createElement(Ns,{css:L},K.createElement(Ws,{variant:"body",size:"xsmall",css:E},y.blockchain))):void 0,description:w?.info&&k&&w.type!=="COSMOS"?dk({address:k,token:a[C],customCssForTag:L,customCssForTagTitle:E,name:y.name,url:w.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(Rr,null,K.createElement(kd,{variant:"text",size:"large",width:70}),K.createElement(Bo,{size:4}),K.createElement(kd,{variant:"text",size:"medium",width:50})):S&&K.createElement(dd,null,K.createElement(hd,{variant:"title",size:"small"},S.amount),K.createElement("div",null),S.usdValue&&K.createElement(ei,{variant:"body",className:Is(),size:"xsmall"},`$${S.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(md,null,K.createElement(ei,{variant:"label",size:"large"},Ms.t("Select Token")),K.createElement(Bo,{size:4}),l==="loading"&&K.createElement(Cd,{size:Ls}),l==="success"&&K.createElement(Jr,{as:"ul"},T()))}i(xd,"TokenList");function Bs(t){let{type:e}=t,o=gk(),n=Ze(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=te.use.getBalanceFor(),[m,f]=fk(""),g=(e==="source"?r:a)?.name??"",T=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(w=>{e==="source"?p(w):u(w)},"updateBlockchain"),S=i(w=>{e==="source"?s({token:w,meta:{blockchains:T,tokens:C}}):l({token:w,meta:{blockchains:T,tokens:C}})},"updateToken"),k={source:ti.t("Source"),destination:ti.t("Destination")};return fo.createElement(le,{header:{title:ti.t("Swap {type}",{type:k[e]})}},fo.createElement(me,null,fo.createElement(ks,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:w=>{y(w)}}),fo.createElement(bd,{size:24}),fo.createElement(Mt,{value:m,autoFocus:!0,placeholder:ti.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:w=>f(w.target.value)}),fo.createElement(bd,{size:16}),fo.createElement(xd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:w=>{S(w);let A=T.find(L=>w.blockchain===L.name);A&&y(A),n()}})))}i(Bs,"SelectSwapItemsPage");import{i18n as Ds}from"@lingui/core";import{Alert as Uk,Button as Qk,styled as qk}from"@rango-dev/ui";import go from"react";import{useInRouterContext as zk,useSearchParams as Hk}from"react-router-dom";import{i18n as Md}from"@lingui/core";import{Divider as Ck,InfoIcon as Tk,TextField as kk,Tooltip as vk,Typography as Ld}from"@rango-dev/ui";import ut from"react";import{Chip as hk,styled as hn,TextField as yk}from"@rango-dev/ui";var Ed=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Id=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${yk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ad=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),oi=hn("div",{maxWidth:"280px",padding:"$10"}),Nd=hn(hk,{width:"61px",flexShrink:0});import{i18n as Ps}from"@lingui/core";import{Typography as Sk}from"@rango-dev/ui";import yn from"react";function Wd(){return yn.createElement(oi,null,yn.createElement(Sk,{variant:"label",size:"medium",color:"neutral700"},Ps.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),yn.createElement("br",null),yn.createElement("br",null),yn.createElement("b",null,Ps.t("Warning")),":",Ps.t("This setting is applied per step (e.g. 1Inch, Thorchain, etc) which means only the step will be reverted, not the whole transaction.")))}i(Wd,"SlippageTooltipContent");function _s(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ut.createElement(Ed,null,ut.createElement(Ad,null,ut.createElement(Ld,{variant:"title",size:"xmedium"},Md.t("Slippage tolerance per swap")),ut.createElement(Ck,{direction:"horizontal",size:4}),ut.createElement(vk,{container:P(),side:"top",sideOffset:4,content:ut.createElement(Wd,null)},ut.createElement(Tk,{color:"gray"}))),ut.createElement(Id,null,Xl.map((r,a)=>{let s=`slippage-${a}`;return ut.createElement(Nd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ut.createElement(kk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=Zl&&s<=Yl?n(s):n(null)},suffix:o&&ut.createElement(Ld,{variant:"body",size:"small"},"%"),placeholder:Md.t("Custom")})))}i(_s,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as Bd,BridgesIcon as wk,ChevronRightIcon as $s,DarkModeIcon as Pd,Divider as ni,ExchangeIcon as xk,InfinityIcon as bk,InfoIcon as Ek,LanguageIcon as Ik,LightModeIcon as _d,List as Ak,ListItem as Nk,ListItemButton as Wk,Skeleton as Mk,styled as Lk,Switch as Bk,Tabs as Pk,Tooltip as _k,Typography as tt}from"@rango-dev/ui";import O from"react";import{useNavigate as $k}from"react-router-dom";var Dk=Lk("div",{width:"202px",height:"$40"}),Fk=[{id:"light",icon:O.createElement(_d,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:O.createElement(Pd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:O.createElement(Bd,{color:"black",size:24}),tooltip:O.createElement(tt,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Ok=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Bd,{...e});case"dark":return O.createElement(Pd,{...e});default:return O.createElement(_d,{...e})}},"getThemeIcon");function $d(){let t=$k(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Xt(),s=a.find(H=>H.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=Ke("theme",c),f=Ke("liquiditySource",c),d=Ke("language",c),g=h().infiniteApprove,T=h().toggleInfiniteApprove,C=On(p,u),y=C.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),S=y.length,k=y.filter(H=>H.selected).length,w=C.filter(H=>H.type==="DEX"),A=w.length,L=w.filter(H=>H.selected).length,E=i((H,Y)=>{switch(l){case"loading":return O.createElement(Mk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(tt,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return O.createElement(tt,{variant:"body",size:"medium"},`${H} / ${Y}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:O.createElement(O.Fragment,null,E(k,S),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement($s,{color:"black"})),onClick:()=>t(q.bridges),start:O.createElement(wk,{color:"gray",size:16})},b={id:"exchange-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:O.createElement(O.Fragment,null,E(L,A),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement($s,{color:"black"})),start:O.createElement(xk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},x={id:"language-item",title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Language")),start:O.createElement(Ik,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"body",size:"medium"},s),O.createElement(ni,{direction:"horizontal",size:8}),O.createElement($s,{color:"black"})),onClick:()=>t(q.languages)},B={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),O.createElement(ni,{direction:"horizontal",size:4}),O.createElement(_k,{side:"top",sideOffset:4,container:P(),content:O.createElement(oi,null,O.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},kt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},O.createElement(Ek,{color:"gray"}))),start:O.createElement(bk,{color:"gray",size:16}),end:O.createElement(Bk,{checked:g}),onClick:T},U={id:"theme-item",type:O.createElement(Nk,null),title:O.createElement(tt,{variant:"title",size:"xmedium"},kt.t("Theme")),end:O.createElement(Dk,null,O.createElement(Pk,{container:P(),items:Fk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Ok(n)},I=f?[]:[v,b];return d||I.push(x),I.push(B),!e?.singleTheme&&!m&&I.push(U),O.createElement(Ak,{type:O.createElement(Wk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i($d,"SettingsLists");var Gk=qk("div",{paddingLeft:"$8"});function Dd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=Hk(),r=zk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return go.createElement(le,{header:{title:Ds.t("Settings")}},go.createElement(me,null,o&&go.createElement(Uk,{type:"info",variant:"alarm",title:Ds.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:go.createElement(Gk,null,go.createElement(Qk,{type:"secondary",size:"small",onClick:a},Ds.t("Reset")))}),go.createElement(_s,null),go.createElement($d,null)))}i(Dd,"SettingsPage");import{i18n as Lv}from"@lingui/core";import{cancelSwap as Bv}from"@rango-dev/queue-manager-rango-preset";import{useManager as Pv}from"@rango-dev/queue-manager-react";import{Alert as _v}from"@rango-dev/ui";import el from"react";import{useParams as $v}from"react-router-dom";import{i18n as vt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as dv,getCurrentStep as fv,getRelatedWalletOrNull as gv}from"@rango-dev/queue-manager-rango-preset";import{Button as gf,CopyIcon as hv,Divider as yv,IconButton as Sv,QuoteCost as Cv,RangoExplorerIcon as Tv,StepDetails as kv,Tooltip as vv,Typography as ho,useCopyToClipboard as wv}from"@rango-dev/ui";import{useWallets as xv}from"@rango-dev/wallets-react";import hf from"bignumber.js";import{PendingSwapNetworkStatus as mi}from"rango-types";import R,{useEffect as yf,useRef as bv,useState as Sf}from"react";import{useNavigate as Ev}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var Vk=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Fd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${Vk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Fd,"timeSince");function Od(t){return t.finishTime?Fd(parseInt(t.finishTime)):Fd(parseInt(t.creationTime))}i(Od,"getSwapDate");import{PendingSwapNetworkStatus as ai}from"rango-types";import si from"react";import{i18n as ri}from"@lingui/core";import{Button as Ud,Divider as Fs,MessageBox as Xk}from"@rango-dev/ui";import jt from"react";var Qd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Fs,{size:20}),jt.createElement(Xk,{type:"error",title:ri.t("Cancel Swap"),description:ri.t("Are you sure you want to cancel this swap?")}),jt.createElement(Fs,{size:32}),jt.createElement(Ud,{variant:"contained",type:"primary",size:"large",onClick:t},ri.t("Yes, Cancel it")),jt.createElement(Fs,{size:12}),jt.createElement(Ud,{variant:"outlined",type:"primary",size:"large",onClick:e},ri.t("No, Continue"))),"CancelContent");import{i18n as ii}from"@lingui/core";import{Button as qd,Divider as Os,MessageBox as Kk,Typography as jk}from"@rango-dev/ui";import _t from"react";var zd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Os,{size:20}),_t.createElement(Kk,{type:"error",title:ii.t("Delete Transaction"),description:ii.t("Are you sure you want to delete this swap?")}),_t.createElement(Os,{size:32}),_t.createElement(qd,{variant:"contained",type:"primary",size:"large",onClick:t},ii.t("Yes, Delete it")),_t.createElement(Os,{size:12}),_t.createElement(qd,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(jk,{variant:"title",size:"medium",color:"primary"},ii.t("No, Cancel")))),"DeleteContent");import{i18n as Us}from"@lingui/core";import{PendingSwapNetworkStatus as Qs}from"rango-types";var qs={[Qs.WaitingForNetworkChange]:{type:"loading",title:Us.t("Change Network")},[Qs.WaitingForConnectingWallet]:{type:"warning",title:Us.t("Connect Wallet")},[Qs.NetworkChanged]:{type:"success",title:Us.t("Network Changed")}};import{debug as Vd}from"@rango-dev/logging-core";import{MessageBox as Yk,Wallet as Zk}from"@rango-dev/ui";import{useWallets as Jk}from"@rango-dev/wallets-react";import Po,{useState as Rk}from"react";import{styled as Hd}from"@rango-dev/ui";var Gd=Hd("div",{display:"flex",justifyContent:"center"}),xQ=Hd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Xd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Jk(),[c,m]=Rk(null),f=n?.walletType,d=f?Ni(u(f)):null,g=f?p(f):null;return Po.createElement(Po.Fragment,null,Po.createElement(Yk,{type:e,title:o,description:r}),a&&!!f&&!!d&&!!g&&Po.createElement(Gd,null,Po.createElement(Zk,{container:P(),title:g.name,image:g.img,type:f,state:d,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:f,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(f).catch(C=>Vd(C))}})),Po.createElement(lo,{open:!!c,onClose:()=>m(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>Vd(y)),m(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function zs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ai.WaitingForNetworkChange||e===ai.WaitingForConnectingWallet||e===ai.NetworkChanged;return si.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},p&&si.createElement(Xd,{type:qs[e].type,title:qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ai.WaitingForNetworkChange}),e==="delete"&&si.createElement(zd,{onClose:o,onDelete:n}),e==="cancel"&&si.createElement(Qd,{onClose:o,onCancel:r}))}i(zs,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Hs,Divider as li,MessageBox as Kd,TokenAmount as ev,Typography as Gs}from"@rango-dev/ui";import Le from"react";import{useNavigate as tv}from"react-router-dom";function Vs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=tv();return Le.createElement(ne,{open:e,onClose:o,container:document.getElementById(ye.SWAP_BOX_ID)||document.body},n==="success"?Le.createElement(Kd,{type:"success",title:Sn.t("Swap Successful")},Le.createElement(ev,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Le.createElement(li,{size:12}),Le.createElement(Gs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Le.createElement(Kd,{type:"error",title:Sn.t("Transaction Failed"),description:m}),Le.createElement(li,{size:32}),n==="success"&&Le.createElement(Hs,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Le.createElement(Gs,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Le.createElement(li,{size:12}),f&&Le.createElement(Le.Fragment,null,Le.createElement(Hs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Sn.t("Diagnosis")),Le.createElement(li,{size:12})),Le.createElement(Hs,{variant:"outlined",type:"primary",size:"large",onClick:o},Le.createElement(Gs,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(Vs,"SwapDetailsCompleteModal");import mv from"react";import{i18n as lv}from"@lingui/core";import{Alert as uf,IconButton as pv,LinkIcon as cv}from"@rango-dev/ui";import Yt,{Fragment as uv}from"react";import{Alert as rv,ChevronDownIcon as iv,IconButton as av}from"@rango-dev/ui";import $o,{useState as sv}from"react";import{css as Cn,darkTheme as ov,styled as $t,Typography as nv}from"@rango-dev/ui";var jd=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),pi=$t("div",{width:"100%"}),Yd=$t(Xo,{padding:"$0 $20 $20 $20"}),aq=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Zd=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),sq=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),_o=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${ov} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Jd=Cn({padding:"$5 0"}),ci=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Rd=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),ef=Cn({width:"100%",padding:"0 $20 $10"}),tf=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),of=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),ui=$t(nv,{wordBreak:"break-word"});import{styled as Xs}from"@rango-dev/ui";var nf=Xs("div",{display:"flex",flexDirection:"column",gap:"$10"}),rf=Xs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),af=Xs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function sf(t){let{message:e}=t,[o,n]=sv(!1);return $o.createElement(rv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&$o.createElement(av,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},$o.createElement(rf,{rotated:o},$o.createElement(iv,{size:12,color:"gray"}))),footer:$o.createElement(af,{open:o},$o.createElement(ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(sf,"FailedAlert");import{i18n as lf}from"@lingui/core";import{Alert as Ks,Button as pf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as js}from"rango-types";import Tn from"react";function cf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(Ks,{type:"warning",title:n.shortMessage,action:Tn.createElement(pf,{size:"xxsmall",type:"warning",onClick:()=>{o(js.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},lf.t("Change"))}):r===js.WaitingForConnectingWallet?Tn.createElement(Ks,{type:"warning",title:n.shortMessage,action:Tn.createElement(pf,{size:"xxsmall",type:"warning",onClick:()=>{o(js.WaitingForConnectingWallet)}},lf.t("Connect"))}):Tn.createElement(Ks,{type:"warning",title:n.shortMessage})}i(cf,"WarningAlert");function Ys(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Go(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(nf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,T=f===d.length-1,C=(T&&u||p)&&!c,y=T&&a.status==="failed";return Yt.createElement(uv,{key:g},Yt.createElement(uf,{type:T&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:lv.t("View transaction"),action:m.url&&Yt.createElement(pv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Yt.createElement(cv,{size:12}))}))}),c&&Yt.createElement(uf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(cf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(sf,{message:r}))}i(Ys,"SwapDetailsAlerts");var mf=2e3;var df=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:Xe(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:N(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Xe(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:N(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Fo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Xe(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Xe(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Fo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:mv.createElement(Ys,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function ff(t){if(Go(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(ff,"getStepState");function Zs(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=xv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=j.use.retry(),f=ie.use.isActiveTab(),d=Ev(),[g,T]=wv(mf),C=bv(null),[y,S]=Sf(null),[k,w]=Sf(null),A=i(()=>{r(),S(null)},"onCancel"),L=ve.use.getNotifications(),E=ve.use.removeNotification(),v=L(),b=fv(e),x=b?.networkStatus;yf(()=>{v.find(M=>M.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId)):k&&w(null))},[e.status,e.requestId]),yf(()=>{G?S(mi.WaitingForNetworkChange):x===mi.WaitingForConnectingWallet||x===mi.NetworkChanged?S(x):S(null)},[x]);let B=xp(e),U=b?dv(e,b):null,I=b?gv(e,b):null,H=Od(e),Y=bp(e),pe=i(he=>!!l(he)?.mobileWallet,"isMobileWallet"),G=x===mi.WaitingForNetworkChange&&!!U&&!!I?.walletType&&(pe(I.walletType)||a(I.walletType,U)),ee=G?s.bind(null,I.walletType,U):void 0,W=wp(e,b),Q=df({swap:e,switchNetwork:ee,showNetworkModal:x,setNetworkModal:S,message:W,blockchains:p,swappers:u}),Z=Q.length,[re,Te]=[e.steps[0],e.steps[Z-1]],_=Te.outputAmount||Te.expectedOutputAmountHumanReadable,Fe=e.steps.reduce((he,M)=>he+parseFloat(M.feeInUsd||""),0),ot=e.steps.find(he=>he.diagnosisUrl)?.diagnosisUrl,de=N(parseFloat(N(_,6,6))*(Te.toUsdPrice||0),4,4),Oe=N(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),wt=_?ce(new hf(_).multipliedBy(Te.toUsdPrice||0)):"",Ve=ce(new hf(e.inputAmount).multipliedBy(re.fromUsdPrice||0)),nt=je(Oe,de),rt=W.detailedMessage.content||W.shortMessage,dt=e.status==="success"?vt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(_,6,6),token:Q[Z-1].to.token.displayName,conciseAddress:_n(e.wallets[Q[Z-1].to.chain.displayName]?.address||""),chain:Q[Z-1].to.chain.displayName}}):R.createElement(of,null,R.createElement(ho,{variant:"body",size:"medium",color:"neutral700",align:"center"},rt?"":vt.t("Transaction was not sent."),B?`${vt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),rt&&R.createElement(ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",rt));return R.createElement(le,{header:{title:vt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(xo,null,R.createElement(gf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},R.createElement(ho,{size:"medium",variant:"label",color:"error"},vt.t("Delete"))))},footer:Y&&!k&&R.createElement(gf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let he=Zn(e,p,c);m(he),setTimeout(()=>{d("../../")},0)}},vt.t("Try again"))},R.createElement(me,{compact:!0,view:!0},R.createElement(pi,null,R.createElement("div",{className:_o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${vt.t("Request ID")}:`),R.createElement("div",{className:ci()},R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Sv,{variant:"ghost",onClick:T.bind(null,o||"")},R.createElement(hv,{size:16,color:"gray"})),R.createElement(tf,{target:"_blank",href:`${ll}/swap/${o}`},R.createElement(vv,{container:P(),content:vt.t("View on Rango Explorer"),side:"bottom"},R.createElement(Tv,{size:20}))))),R.createElement("div",{className:_o()},R.createElement(ho,{variant:"label",size:"large",color:"neutral700"},`${vt.t(e.finishTime?"Finished at":"Created at")}:`),R.createElement(ho,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:Rd()},R.createElement(Cv,{fee:N(String(Fe),2,2),time:Oo(An(e.steps)),steps:Z}),R.createElement(en,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Oe,realUsdValue:Ve,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:N(_,6,6),usdValue:de,realUsdValue:wt,realValue:_},token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image,displayName:Q[Z-1].to.chain.displayName}},percentageChange:N(nt,2,2),warningLevel:Et(nt??0)})),R.createElement("div",{className:ef()},R.createElement(ho,{variant:"title",size:"small"},vt.t("Swaps steps"))),R.createElement(yv,{size:8}),R.createElement(Yd,{ref:C},Q.map((he,M)=>{let V=M,X=ff(e.steps[M]),qe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&M===Q.length-1;return R.createElement(kv,{key:V,step:he,type:"swap-progress",ref:C,state:X,hasSeparator:M!==0,tabIndex:V,isFocused:qe,tooltipContainer:P()})}))),R.createElement(zs,{state:y,onClose:()=>S(null),onCancel:A,onDelete:n,message:W.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!f}),R.createElement(Vs,{open:!!k,diagnosisUrl:ot,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:N(_,6,6),usdValue:de,realUsdValue:wt,realValue:ce(_),percentageChange:N(nt,2,2),token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image},description:dt}))}i(Zs,"SwapDetails");import{i18n as fi}from"@lingui/core";import{Divider as kf,NotFound as Mv,Skeleton as vn,Typography as gi}from"@rango-dev/ui";import ge from"react";import{i18n as Iv}from"@lingui/core";import{Divider as Av,Skeleton as Nv,Typography as Wv}from"@rango-dev/ui";import Ce from"react";import{css as mt,styled as Js}from"@rango-dev/ui";var Cf=Js("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=Js("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),di=Js("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),Cz=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Tz=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),kz=mt({paddingTop:"$15",display:"flex"}),vz=mt({padding:"$15 $0"}),wz=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),xz=mt({paddingBottom:"$10"}),bz=mt({display:"flex",justifyContent:"start",alignItems:"center"}),Ez=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),Iz=mt({display:"flex",alignItems:"center"}),Az=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Tf=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Rs(){return Ce.createElement(Cf,null,Ce.createElement(nn,{type:"swap-preview"}),Ce.createElement("div",{className:"swaps-steps"},Ce.createElement(Wv,{variant:"title",size:"small"},Iv.t("Swaps steps"))),Ce.createElement(Ce.Fragment,null,Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1}),Ce.createElement("div",{className:Tf()},Ce.createElement(Av,{direction:"horizontal",size:20}),Ce.createElement(Nv,{height:22,variant:"rectangular"}))),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1})),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1})),Ce.createElement(di,null),Ce.createElement(kn,null,Ce.createElement(Ct,{separator:!1}))))}i(Rs,"LoadingSwapDetails");function vf(t){let{requestId:e,showSkeleton:o}=t;return ge.createElement(le,{header:{title:fi.t("Swap and Bridge"),suffix:ge.createElement(xo,null)}},o&&ge.createElement(jd,null,ge.createElement(pi,null,ge.createElement("div",{className:_o()},ge.createElement(gi,{variant:"label",size:"large",color:"neutral700"},`${fi.t("Request ID")}:`),ge.createElement("div",{className:ci()},ge.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})),ge.createElement(kf,{direction:"horizontal",size:4}),ge.createElement(vn,{width:16,height:16,variant:"rectangular"}),ge.createElement(kf,{direction:"horizontal",size:4}),ge.createElement(vn,{width:16,height:16,variant:"rectangular"}))),ge.createElement("div",{className:_o()},ge.createElement(gi,{className:Jd(),variant:"label",size:"large",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})),ge.createElement(gi,{variant:"label",size:"small",color:"neutral700"},ge.createElement(vn,{width:60,height:10,variant:"rounded"})))),ge.createElement(Rs,null)),!o&&ge.createElement(Zd,null,ge.createElement(Mv,{title:fi.t("Not found"),description:fi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(vf,"SwapDetailsPlaceholder");function wf(){let{manager:t,state:e}=Pv(),o=!e.loadedFromPersistor,n=Je(t),{requestId:r}=$v(),a=Ze(),{fetchStatus:s}=h();if(!r)return el.createElement(_v,{containerStyles:{margin:"20px"},type:"error",title:Lv.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:f})=>f.requestId===r):void 0,u=i(()=>{if(p?.id){let f=t?.get(p.id);f&&Bv(f)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(f){console.log(f)}},"onDelete"),m=p?.swap;return!m||l?el.createElement(vf,{requestId:r,showSkeleton:l}):el.createElement(Zs,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(wf,"SwapDetailsPage");function xf(){return _p(),ji(),Dv([{path:q.home,element:Qe.createElement(zm,null)},{path:q.routes,element:Qe.createElement(Km,null)},{path:q.fromSwap,children:[{index:!0,element:Qe.createElement(Bs,{type:"source"})},{path:q.blockchains,element:Qe.createElement(hs,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Qe.createElement(Bs,{type:"destination"})},{path:q.blockchains,element:Qe.createElement(hs,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Qe.createElement(Dd,null)},{path:q.languages,element:Qe.createElement(Gm,null)},{path:q.exchanges,element:Qe.createElement(ds,{sourceType:"Exchanges"})},{path:q.bridges,element:Qe.createElement(ds,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Qe.createElement(vm,null)},{path:q.swapDetails,element:Qe.createElement(wf,null)}]},{path:q.wallets,element:Qe.createElement(Bc,null)},{path:q.confirmSwap,element:Qe.createElement(cm,null)}])}i(xf,"AppRoutes");import{useQueueManager as Vv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Xv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Kv}from"rango-sdk";import{useContext as jv,useEffect as Mf,useState as Lf}from"react";import{globalCss as Fv}from"@rango-dev/ui";var bf=i(()=>Fv({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Ef(){let{setWatermark:t}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${bt("BASE_URL")}/meta/dapp/config?apiKey=${bt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(Ef,"useFetchApiConfig");import{useWallets as Ov}from"@rango-dev/wallets-react";import{useEffect as Uv,useRef as Qv}from"react";function If(){let{connect:t,state:e}=Ov(),o=Qv({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Uv(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(If,"useForceAutoConnect");import{isApprovalTX as qv,RouteEventType as Af,StepEventType as Nf,StepExecutionEventStatus as zv,WidgetEvents as hi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Wf}from"react";function tl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=ve.use.setNotification(),{findToken:n}=h();Wf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===Nf.TX_EXECUTION&&s.status===zv.TX_SENT&&!qv(l)||s.type===Nf.SUCCEEDED){let c=t.find(f=>f.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(f=>f.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return ke.on(hi.StepEvent,r),()=>ke.off(hi.StepEvent,r)},[ke,t.length]),Wf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Af.FAILED||s.type===Af.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return ke.on(hi.RouteEvent,r),()=>ke.off(hi.RouteEvent,r)},[ke,t.length])}i(tl,"useSubscribeToWidgetEvents");import{useManager as Hv}from"@rango-dev/queue-manager-react";import{useEffect as Gv}from"react";function ol(){let{isSynced:t,syncNotifications:e}=ve(),{manager:o,state:n}=Hv();Gv(()=>{ve.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Je(o))},[ve.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ol,"useSyncNotifications");function nl(){If(),bf(),tl(),ol();let t=h().blockchains(),{canSwitchNetworkTo:e}=kr(),[o,n]=Lf(""),[r,a]=Lf(),s=jv(Qn),l=t.filter(Kv),{fetchApiConfig:p}=Ef();Mf(()=>()=>Pp(),[]),Vv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Mf(()=>(eo.init(),ve.persist.hasHydrated()||ve.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Xv(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(nl,"useBootstrap");import{styled as Yv}from"@rango-dev/ui";var Bf=Yv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function yi(){nl();let{config:t}=h(),{activeTheme:e}=lr(t?.theme||{}),{activeLanguage:o}=Xt();return rl.createElement(Zv,{language:o},rl.createElement(Bf,{id:"swap-container",className:e()},rl.createElement(xf,null)))}i(yi,"Main");import{setSolanaSignerConfig as yw}from"@rango-dev/signer-solana";import al,{useEffect as Ff,useMemo as Sw}from"react";import{useState as Jv}from"react";var Rv=i(()=>{let[t,e]=Jv(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=Sl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Pf=Rv;import{checkWaitingForNetworkChange as ew,makeQueueDefinition as tw}from"@rango-dev/queue-manager-rango-preset";import{Provider as ow}from"@rango-dev/queue-manager-react";import{useWallets as nw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as rw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as iw}from"rango-types";import aw,{useMemo as sw}from"react";function lw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=nw(),l=sw(()=>tw({API_KEY:t.apiKey||bt("API_KEY"),BASE_URL:bt("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,w)=>{if(a(k,w))return r(k,w)},"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),g=p.filter(iw),T=i(k=>{let{supportedChains:w}=s(k);return Mn(w)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:rw(g),getSupportedChainNames:T},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},S=ie.use.isActiveTab();return aw.createElement(ow,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{ew(k)},isPaused:!S},t.children)}i(lw,"QueueManager");var _f=lw;import{useManager as dw}from"@rango-dev/queue-manager-react";import fw,{createContext as gw,useContext as hw}from"react";import{cancelSwap as pw,getCurrentBlockchainOfOrNull as cw,getCurrentStep as uw,getRelatedWalletOrNull as mw}from"@rango-dev/queue-manager-rango-preset";var Si=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Je(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=Zn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&pw(o)}getCurrentStepInfo(e){let o=uw(e);return{step:o,wallet:o?mw(e,o):null,network:o?cw(e,o):null}}};var $f=gw(void 0);function il(t){let{manager:e}=dw(),o=ie.use.isActiveTab(),n=j.use.retry(),{findToken:r}=h(),a=new Si(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Il(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Xt().resetLanguage,T=ve().getNotifications(),C=ve().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:S=>u(S,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:T,clearAll:C}};return fw.createElement($f.Provider,{value:y},t.children)}i(il,"WidgetInfo");function Df(){let t=hw($f);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Df,"useWidget");function Ci(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Pf();return Ff(()=>{n&&r(n)},[n]),Sw(()=>{_l({API_KEY:o?.apiKey||wn,BASE_URL:o?.apiUrl||sl})},[o.apiKey,o.apiUrl]),Ff(()=>{t.config?.signers?.customSolanaRPC&&yw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),al.createElement(qn,{config:o,onUpdateState:e},al.createElement(_f,{apiKey:o.apiKey},al.createElement(il,null,t.children)))}i(Ci,"WidgetProvider");function Of(t){let e=t.config?.externalWallets;return Ti.createElement(ap,null,e?Ti.createElement(yi,null):Ti.createElement(Ci,{config:t.config??_i},Ti.createElement(yi,null)))}i(Of,"Widget");function Uf(){let{on:t,off:e}=ke;return{on:t,off:e}}i(Uf,"useWidgetEvents");export{GV as EventSeverity,qo as MainEvents,e2 as Networks,n2 as PendingSwapNetworkStatus,Bi as QuoteEventTypes,VV as RouteEventType,ki as SUPPORTED_FONTS,XV as StepEventType,KV as StepExecutionBlockedEventStatus,jV as StepExecutionEventStatus,ye as UI_ID,Pi as WalletEventTypes,JV as WalletEvents,t2 as WalletTypes,Of as Widget,qo as WidgetEvents,Ci as WidgetProvider,qn as WidgetWallets,ia as customizedThemeTokens,ZV as readAccountAddress,no as useWalletList,kr as useWallets,Df as useWidget,Uf as useWidgetEvents,Gf as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|