@rango-dev/widget-embedded 0.30.1-next.17 → 0.30.1-next.19

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 CHANGED
@@ -1,3 +1,3 @@
1
- var Wg=Object.defineProperty;var i=(t,e)=>Wg(t,"name",{value:e,configurable:!0});import{EventSeverity as x4,RouteEventType as w4,StepEventType as b4,StepExecutionBlockedEventStatus as E4,StepExecutionEventStatus as I4}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as N4,useWallets as Er,Events as W4}from"@rango-dev/wallets-react";import{Networks as L4,WalletTypes as B4}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as D4}from"rango-types";import{UI_ID as Mg}from"@rango-dev/ui";var Wn="c6381a79-2817-4602-83bf-6a641a409e32",Al="https://api.rango.exchange",Nl="https://explorer.rango.exchange",Ce={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Mg};var Wl="Roboto",Ni=[{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 Xi,Provider as bh}from"@rango-dev/wallets-react";import{isEvmBlockchain as Eh}from"rango-sdk";import Kn,{createContext as Ih,useEffect as wp,useMemo as Ah,useRef as bp}from"react";import{useEffect as Jg}from"react";import{create as Xg}from"zustand";import{subscribeWithSelector as Yg}from"zustand/middleware";import Lg from"mitt";var ke=Lg(),Bg={on:ke.on,off:ke.off};import{RangoClient as Kg}from"rango-sdk";import{BlockchainCategories as Ug,WalletState as Ct}from"@rango-dev/ui";import{readAccountAddress as Qg}from"@rango-dev/wallets-react";import{detectInstallLink as zg,getCosmosExperimentalChainInfo as qg,isEvmAddress as Hg,KEPLR_COMPATIBLE_WALLETS as ob,Networks as zl}from"@rango-dev/wallets-shared";import _i from"bignumber.js";import{isCosmosBlockchain as Gg}from"rango-types";import Pg from"bignumber.js";var Ue=new Pg(0);import{WalletTypes as Dg}from"@rango-dev/wallets-shared";var Ml=[Dg.LEAP];import{BlockchainCategories as Wi,WalletState as Og}from"@rango-dev/ui";import{TransactionType as Mn}from"rango-sdk";function ko(t){return Array.from(new Set(t))}i(ko,"removeDuplicateFrom");function Bi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Bi,"areEqual");function $l(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i($l,"debounce");function bt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(bt,"containsText");function Pl(t,e){return t.toLowerCase()===e.toLowerCase()}i(Pl,"exactText");function Dl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Dl,"startWithText");var L=i(()=>document.getElementById(Ce.SWAP_BOX_ID),"getContainer"),Ho=i(()=>document.getElementById(Ce.EXPANDED_BOX_ID),"getExpanded");function _l(t,e,o){let n=!!e&&Pl(e,t),r=!!o&&Pl(o,t);return n!==r?n?-1:1:0}i(_l,"compareExactMatchText");function Mi(t,e,o){let n=!!e&&bt(e,t),r=!!o&&bt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Mi,"compareContainsText");function Li(t,e,o){let n=!!e&&Dl(e,t),r=!!o&&Dl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Li,"compareStartWithText");function Fl(t,e,o){if(!o)return 0;let n=_l(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=_l(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Li(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Mi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Li(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Mi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Li(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Mi(o,t.address,e.address);if(r!==0)return r}return 0}i(Fl,"compareWithSearchFor");var Ln=i((t,e)=>{switch(e){case Wi.ALL:return!0;case Wi.UTXO:return t===Mn.TRANSFER;case Wi.OTHER:return t!==Mn.TRANSFER&&t!==Mn.COSMOS&&t!==Mn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Ol=i(t=>Ni.find(o=>o.value===t)?.url,"getFontUrlByName");function Bn(t,e){let o=!!t.find(n=>n.state===Og.CONNECTED);return e===!1&&o}i(Bn,"isSingleWalletActive");function Pn(t,e){return e.find(o=>o.name===t)?.displayName}i(Pn,"getBlockchainDisplayNameFor");function tt(t,e){return e.find(o=>o.name===t)?.shortName}i(tt,"getBlockchainShortNameFor");function Ul(t,e){return e.find(o=>o.name===t)?.logo}i(Ul,"getBlockchainImage");function Go(t,e){return e.find(o=>o.id===t)?.title}i(Go,"getSwapperDisplayName");function Pi(t,e){return e.find(o=>o.name===t)??null}i(Pi,"findBlockchain");function Di(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(Di,"isTokenNative");function ct(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(ct,"createTokenHash");import{BigNumber as Ql}from"bignumber.js";var Vo=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"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ql(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Ql(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 Dn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var St=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Ko=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function $i(t){switch(!0){case t.connected:return Ct.CONNECTED;case t.connecting:return Ct.CONNECTING;case!t.installed:return Ct.NOT_INSTALLED;default:return Ct.DISCONNECTED}}i($i,"mapStatusToWalletState");function ql(t,e,o,n){return o.filter(r=>!Ml.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(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:c,singleNamespace:u,supportedChains:g,needsDerivationPath:d}=e(r),m=ko(g.map(C=>C.type)),f=$i(t(r));return{title:a,image:s,link:zg(l),state:f,type:r,showOnMobile:p,namespaces:c,singleNamespace:u,blockchainTypes:m,needsDerivationPath:d}})}i(ql,"mapWalletTypesToWalletInfo");function Fn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Fn,"walletAndSupportedChainsNames");function Hl(t,e,o,n,r){let a=[];function s(p,c){if(!!!a.find(g=>g.chain===p)){let g={address:c,chain:p,walletType:t};a.push(g)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:c,network:u}=Qg(p),g=l.length>0,d=l.includes(u),m=u===zl.Unknown;if(g&&!d&&!m)return;let C=u===zl.Unknown&&Hg(c);if(m&&!C)return;o.includes(u)||C?r?s(u,c.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,c.toLowerCase())}):s(u,c)}),a}i(Hl,"prepareAccountsForWalletStore");function Zt(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((c,u)=>{let g=c.from.blockchain,d=c.to.blockchain,m=a===o.swaps.length-1,f=u===p.length-1;(!m&&!f||m&&l!==g||e==="all")&&n.add(g),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Zt,"getQuoteWallets");function On(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(On,"isAccountAndWalletMatched");function Gl(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 _i(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Gl,"makeBalanceFor");function Vl(t){return{...t,loading:!1,error:!0}}i(Vl,"resetConnectedWalletState");var Kl=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=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new _i(a?.amount||Ue).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Ue)||Ue).toString();return Vg(r)},"calculateWalletUsdValue");function Vg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Vg,"numberWithThousandSeparator");var Un=i((t,e)=>{let o=qg(Object.entries(t).map(([,n])=>n).filter(Gg));return o&&o[e]?.experimental},"isExperimentalChain");function Qn(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(Qn,"formatBalance");function jl(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(jl,"compareTokenBalance");function Jt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Jt,"areTokensEqual");function Xl(t){return t.sort((e,o)=>+(o.state===Ct.CONNECTED)-+(e.state===Ct.CONNECTED)||+(o.state===Ct.DISCONNECTED||o.state===Ct.CONNECTING)-+(e.state===Ct.DISCONNECTED||e.state===Ct.CONNECTING))}i(Xl,"sortWalletsBasedOnConnectionState");function zn(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(zn,"getConciseAddress");function Yl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Yl,"getAddress");function qn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new _i(o?.usdPrice??Ue).multipliedBy(o?.amount).toString():""},r=o?ct({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(qn,"makeTokensBalance");var Zl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Jl(t){return t.map(e=>e.state).join("-")}i(Jl,"hashWalletsState");function Rl(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(Rl,"filterBlockchainsByWalletTypes");function ep(t,e){return e===Ug.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Ln(n,e))return!0;return!1})}i(ep,"filterWalletsByCategory");var Fi={API_KEY:Wn};function Et(t){return Fi[t]||""}i(Et,"getConfig");function tp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Fi=e,Fi}i(tp,"initConfig");var op=20,np=25,Oi="theme-widget",Ui=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Jt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Jt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Qi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),rp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Hn,$t=i(()=>Hn||(Hn=new Kg(Et("API_KEY"),Et("BASE_URL")),Hn),"httpService");import{WidgetEvents as ip}from"@rango-dev/queue-manager-rango-preset";var zi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(zi||{}),qi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(qi||{}),Hi=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Hi||{}),vo=(a=>(a[a.RouteEvent=ip.RouteEvent]="RouteEvent",a[a.StepEvent=ip.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(vo||{});var jg=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"),Ft=jg;var oe=Ft(Xg()(Yg((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:qn(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=>On(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:c,chain:u})=>({address:c,blockchain:u})),p=(await $t().getWalletsDetails(s)).wallets;if(p)t(c=>{let u=c.connectedWallets.map(d=>{let m=o.find(C=>On(C,d)),f=p.find(C=>C.address===d.address&&C.blockChain===d.chain);return f?.failed&&m&&r&&a([m],n,!1),m&&f?{...d,explorerUrl:f.explorerUrl,balances:Gl(f,n),loading:!1}:d});return{loading:!1,balances:qn(u),connectedWallets:u}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(u=>o.find(g=>On(g,u))?Vl(u):u);return{loading:!1,balances:qn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=ct(o);return n[r]??null}}))));import{allProviders as Zg}from"@rango-dev/provider-all";function Gn(t,e){let o=Zg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0});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(Gn,"matchAndGenerateProviders");function ap(t,e){return Gn(t,e).map(r=>r.config.type)}i(ap,"configWalletsToWalletName");function sp(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(sp,"hashProviders");function Gi(t,e){let o=oe.use.clearConnectedWallet(),n=Gn(t,e);return Jg(()=>{o(),n=Gn(t,e)},[sp(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Gi,"useWalletProviders");import Sh,{createContext as Ch,useContext as Th,useEffect as kh,useRef as vh}from"react";import{create as hh}from"zustand";import{persist as yh}from"zustand/middleware";var Vi=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},xo=new Vi;function jo(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=ct(p));let c=o.tokensMapByTokenHash.get(p);c&&(n[p]=c)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(c=>{let u=ct(c);delete n[u]})):a(p.tokens))}),Object.values(n)}i(jo,"matchTokensFromConfigWithMeta");var Ki={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},Rg={clientUrl:void 0},eh={liquiditySources:void 0},lp=i((t,e,o)=>({config:{...Ki,...t},iframe:Rg,campaignMode:eh,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,{_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s}=o(),l=jo({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=jo({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});xo.set("supportedSourceTokens",l),xo.set("supportedDestinationTokens",p),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 Vn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return ko(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(Vn,"getUniqueSwappersGroups");function pp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(pp,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function cp(t,e){return e?.[t]==="enabled"}i(cp,"isFeatureEnabled");var up=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_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{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a}=e(),s=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return s;let p=o.type==="source"?"from":"to",c=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",u=xo.get(c);u||(u=jo({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),xo.set(c,u));let g=e().blockchains({type:o.type});return u.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!g.some(f=>f.name===m.blockchain)?!1:o.searchFor?!!(bt(m.symbol,o.searchFor)||bt(m.address||"",o.searchFor)||bt(m.name||"",o.searchFor)):!0).sort((m,f)=>{let C=e().isTokenPinned(m,o.type),S=e().isTokenPinned(f,o.type);if(C!==S)return C?-1:1;if(o.getBalanceFor){let b=o.getBalanceFor(m),W=o.getBalanceFor(f),w=jl(b,W);if(w!==0)return w}let y=l.get(m.blockchain),T=l.get(f.blockchain),k=Di(m,y),x=Di(f,T);if(k!==x)return k?-1:1;if(m.isPopular!==f.isPopular)return m.isPopular?-1:1;if(o.searchFor){let b=Fl(m,f,o.searchFor);if(b)return b}return m.isSecondaryCoin!==f.isSecondaryCoin?m.isSecondaryCoin?1:-1:y&&T?y.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=ct(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Jt(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(c=>{let u=a?.includes(c.swapperGroup);return s||!a||a.length===0?!u:u}).sort(pp)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await $t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s={},l=[],p=n.popularTokens,c=n.swappers,u=new Set;n.tokens.forEach(d=>{u.add(d.blockchain),l.push(d)}),n.blockchains.sort((d,m)=>d.sort-m.sort).forEach(d=>{d.enabled&&u.has(d.name)&&r.set(d.name,d)}),l.forEach(d=>{let m=ct(d);s[d.blockchain]||(s[d.blockchain]=[]),a.set(m,d),s[d.blockchain].push(m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:c})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as th,English as oh,Finland as nh,French as rh,German as ih,Greece as ah,Italian as sh,Japanese as lh,Netherlands as ph,Poland as ch,Portuguese as uh,Russian as mh,Spanish as dh,Swedish as fh,Ukrainian as gh}from"@rango-dev/ui";var mp=[{title:"English",label:"English",local:"en",SVGFlag:oh},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:dh},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:rh},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:lh},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:uh},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:th},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:mh},{title:"German",label:"Deutsch",local:"de",SVGFlag:ih},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:gh},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:fh},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:nh},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:ph},{title:"Greek",label:"Grieks",local:"el",SVGFlag:ah},{title:"Italian",label:"Italiana",local:"it",SVGFlag:sh},{title:"Polish",label:"Polski",local:"pl",SVGFlag:ch}],wo="en";var dp=[.5,1,3],fp=1,gp=5,hp=100,yp=0;var Sp=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:fp,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,c=l<=9;return p&&c}))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=ko(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=ot("theme",n),s=ot("language",n),l=ot("liquiditySource",n),p=r?.singleTheme,c=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||wo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...c&&{language:o.language||wo}})}}),"createSettingsSlice");function Cp(t){return hh()(yh((...e)=>({...up(...e),...Sp(...e),...lp(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(Cp,"createAppStore");var Tp=Ch(null);function h(){let t=Th(Tp);if(kh(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function kp(t){let e=vh();return e.current||(e.current=Cp(t.config)),Sh.createElement(Tp.Provider,{value:e.current},t.children)}i(kp,"AppStoreProvider");import{create as wh}from"zustand";var vp="rango-widget";var Xo=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.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.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(vp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}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}}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 pe=Ft(wh()((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})}}))),Rt=new Xo({onInit:()=>pe.setState({tabManagerInitiated:!0}),onClaim:()=>pe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>pe.setState({isActiveTab:!1})});var jn=Ih({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Nh(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=h(),a=h().blockchains(),{findToken:s}=h(),l=h().config,p={walletConnectProjectId:l?.walletConnectProjectId,trezorManifest:l?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:c}=Gi(l.wallets,p),{connectWallet:u,disconnectWallet:g}=oe(),d=bp(),m=bp();wp(()=>{n().catch(console.log)},[]),wp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let f=a.filter(Eh).map(T=>T.name),C=i((T,k,x,b,W)=>{if(k===Xi.ACCOUNTS)if(x){let w=Fn(W.supportedBlockchains),v=Hl(T,x,f,w,W.isContractWallet);v.length&&u(v,s)}else g(T),m.current?m.current(T):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(k===Xi.ACCOUNTS&&b.connected){let w=`${T}-${b.network}-${x}`;b.connected&&(d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===Xi.NETWORK&&b.network){let w=`${T}-${b.network}`;d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(T,k,x,b,W)},"onUpdateState"),S=pe.use.isActiveTab(),y=Ah(()=>({onConnectWallet:T=>{d.current=T},onDisconnectWallet:T=>{m.current=T}}),[]);return Kn.createElement(jn.Provider,{value:y},Kn.createElement(bh,{allBlockChains:a,providers:c,onUpdateState:C,autoConnect:!!S},t.children))}i(Nh,"Main");function Xn(t){let{config:e,...o}=t;return Kn.createElement(kp,{config:e},Kn.createElement(Nh,{...o,config:e}))}i(Xn,"WidgetWallets");import Ai from"react";import Wh,{Fragment as Mh}from"react";import{MemoryRouter as Lh,useInRouterContext as Bh}from"react-router";function Ep({children:t}){let o=Bh()?Mh:Lh;return Wh.createElement(o,null,t)}i(Ep,"AppRouter");import{I18nManager as sw}from"@rango-dev/ui";import bl from"react";import Xe from"react";import{useRoutes as Kx}from"react-router-dom";var H={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 Io,useRef as ar}from"react";import Ve from"bignumber.js";import{create as _h}from"zustand";import{subscribeWithSelector as $h}from"zustand/middleware";import{getLastSuccessfulStep as Dh}from"@rango-dev/queue-manager-rango-preset";import KI from"bignumber.js";function Yi(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Yi,"getFeeLabel");var Zi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Ip=30;import{i18n as ut}from"@lingui/core";import{RouteEventType as MI}from"@rango-dev/queue-manager-rango-preset";import Qe from"bignumber.js";import{PendingSwapNetworkStatus as Jn}from"rango-types";function Yn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Yn,"isValidAddress");import{i18n as Fe}from"@lingui/core";var re=i(()=>({genericServerError:Fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Fe.t("Please reset your liquidity sources."),description:Fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Fe.t("No Routes Found."),description:Fe.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:Fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Fe.t("High Price Impact"),title:Fe.t("Price impact is too high!"),description:Fe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Fe.t("USD Price Unknown"),title:Fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:Fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Fe.t("Confirm USD Price Unknown")}}),"errorMessages");function Ap(t){switch(t.type){case 0:return t.diagnosisMessage??re().noResultError.title;case 1:return re().genericServerError;default:return""}}i(Ap,"getQuoteErrorMessage");import{i18n as Zn}from"@lingui/core";var eo=i(()=>({connectWallet:Zn.t("Connect Wallet"),swap:Zn.t("Swap"),swapAnyway:Zn.t("Swap anyway"),ethWarning:Zn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Np(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Qe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Qe(1e3)))??!1}i(Np,"hasHighValueLoss");function Wp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Qe(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(Wp,"hasLimitError");function Mp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Qe(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new Qe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||c?.lte(l.fromAmount):p?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Qe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=ut.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ut.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ut.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ut.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Mp,"getLimitErrorMessage");function Lp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:eo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:eo().swap,action:"confirm-swap",disabled:!0}:s?{title:eo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:eo().ethWarning,action:"confirm-warning",disabled:!1}:{title:eo().swap,action:"confirm-swap",disabled:!1}:{title:eo().connectWallet,action:"connect-wallet",disabled:!1}}i(Lp,"getSwapButtonState");function Ji(t,e,o){return!((!o||o.lte(Ue))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Ji,"canComputePriceImpact");function Ri(t,e){let o=Ue;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 Qe(r.amount).multipliedBy(a||0))}return o}i(Ri,"getUsdFeeOfStep");function Rn(t,e){return t.reduce((o,n)=>o.plus(Ri(n,e)),Ue)}i(Rn,"getTotalFeeInUsd");function ea(t){let e=Ue;return e=e.plus(new Qe(t.amount).multipliedBy(t.price||0)),e}i(ea,"getUsdFee");function Bp(t){return t.reduce((e,o)=>e.plus(ea(o)),Ue)}i(Bp,"getTotalFeesInUsd");function Pp(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(Pp,"getFeesGroup");function Dp(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(Dp,"checkSlippageErrors");function _p(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(_p,"checkSlippageWarnings");function er(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(er,"getMinRequiredSlippage");function $p(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i($p,"hasProperSlippage");function Fp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:c,affiliateRef:u,affiliatePercent:g,affiliateWallets:d,destination:m,enableCentralizedSwappers:f}=t,C=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),S=[];return r?.forEach(T=>{S.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:g??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:C??{},slippage:c.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:f}}i(Fp,"createQuoteRequestBody");function Op(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Op,"getWalletsForNewSwap");function bo(t){return t?.outputAmount||null}i(bo,"getQuoteOutputAmount");function Up(t,e){return new Qe(e).div(new Qe(t)).minus(1).multipliedBy(100).toNumber()}i(Up,"getPercentageChange");function Qp(t,e){let o=bo(t),n=bo(e);if(!o||!n)return!1;let r=nt(o,n);return r?r<=-1:!0}i(Qp,"isOutputAmountChangedALot");function zp(t,e,o){let n=t.validationStatus,r=Zt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>jp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Qe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),c=M(new Qe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=ut.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=ut.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=ut.t(" for input and network fee")),ut.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:c,symbol:l,reason:u,currentAmount:p,blockchain:tt(s.asset.blockchain,o)}})})}i(zp,"generateBalanceWarnings");function tr(t,e){return(t?new Qe(t):Ue).multipliedBy(e||0)}i(tr,"calcOutputUsdValue");function Yo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Jn.NetworkChanged}i(Yo,"isNetworkStatusInWarningState");function qp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Yo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Jn.WaitingForConnectingWallet:n=n||ut.t("Waiting for connecting wallet");break;case Jn.WaitingForQueue:n=n||ut.t("Waiting for other running tasks to be finished");break;case Jn.WaitingForNetworkChange:n=n||ut.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(qp,"getSwapMessages");function Hp(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(Hp,"getLastConvertedTokenInFailedSwap");function Gp(t){return t.status==="failed"}i(Gp,"shouldRetrySwap");function Vp(t,e,o,n,r,a){if(!n||t)return!0;let s=Zt({filter:"all",quote:n}),l=Zt({filter:"required",quote:n}),p=s.every(g=>r.some(d=>d.chain===g)),c=l.every(g=>r.some(d=>d.chain===g)),u=o&&a?Yn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!u||!c)}i(Vp,"isConfirmSwapDisabled");function Kp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Kp,"isTokensIdentical");function nr(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(nr,"getQuoteToTokenUsdPrice");function ta(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(ta,"isNumberOfSwapsChanged");function oa(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Bi(o,n)}i(oa,"isQuoteSwappersUpdated");function na(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Bi(o,n)}i(na,"isQuoteInternalCoinsUpdated");function Yp(t,e){return ta(t,e)||oa(t,e)||na(t,e)}i(Yp,"isQuoteChanged");function jp(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(jp,"getRequiredBalanceOfWallet");function It(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(It,"getPriceImpactLevel");function rr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Dh(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Pi(a?a.toBlockchain:n.fromBlockchain,e),p=Pi(r.toBlockchain,e),c=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),g=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:c,toBlockchain:p,toToken:u,inputAmount:g}}i(rr,"createRetryQuote");function Eo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=to(o,t.requestAmount),l=to(n,t?.outputAmount??"");if(t&&s&&l){let u=nt(s.toString(),l.toString());if(!!u&&Np(s,u)){let d=Rn(t?.swaps,r),m=It(u);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:u,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=er(t.swaps),c=a>gp;if($p(e.userSlippage.toString(),p)){if(c&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:_p(t,a),minRequiredSlippage:p};return null}i(Eo,"generateQuoteWarnings");function nt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Up(t.toString(),e.toString());return n&&n<0?n:null}i(nt,"getPriceImpact");var Zp=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"),ir=i((t,e)=>e.sort((o,n)=>{let r=i(c=>c.scores?.find(u=>u.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"),Jp=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"),Rp=i(t=>{let e=i((o,n)=>{let r=Zi.indexOf(o.value),a=Zi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var to=i((t,e)=>t?.usdPrice?new Ve(e||Ue).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),G=Ft(_h()($h(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Ve(0),outputUsdValue:new Ve(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=Ue;return Ko(o.inputAmount)?(e&&(n=e?.outputAmount?new Ve(e?.outputAmount):null,r=tr(e?.outputAmount,nr(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 Ve(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Ve(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Ve(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:to(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Ve(0)}})},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:null,outputUsdValue:new Ve(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:to(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:to(n??null,s),outputUsdValue:new Ve(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?to(e.toToken,e.outputAmount?.toString()||""):new Ve(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Ve(0),inputUsdValue:new Ve(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Ve(0),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})})))),ec=G.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 tc(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:c}=G(),u=h().config,g=h().fetchStatus,d=h().blockchains(),m=h().tokens(),{findToken:f}=h(),{setAffiliateRef:C,setAffiliatePercent:S,setAffiliateWallets:y}=h(),T=u?.from?.tokens,k=u?.from?.blockchains,x=u?.to?.tokens,b=u?.to?.blockchains,W=ar(void 0),w=ar(void 0),v=ar(void 0),E=ar(void 0);Io(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Io(()=>{if(g==="success"){r();let A=d.find(I=>I.name===u?.from?.blockchain),B=u?.from?.token,q=B&&f(B);(A||!A&&v.current)&&n(A??null),q?a({token:q,meta:{blockchains:d,tokens:m}}):!q&&W.current&&a({token:null}),v.current=u?.from?.blockchain,W.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,g]),Io(()=>{Ui(s,T)&&a({token:null}),Qi(p,k)&&n(null)},[T,k]),Io(()=>{Ui(l,x)&&a({token:null}),Qi(c,b)&&o(null)},[x,b]),Io(()=>{if(g==="success"){r();let A=d.find(I=>I.name===u?.to?.blockchain),B=u?.to?.token,q=B&&f(B);(A||!A&&E.current)&&o(A??null),q?e({token:q,meta:{blockchains:d,tokens:m}}):!q&&w.current&&e({token:null}),E.current=u?.to?.blockchain,w.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,g]),Io(()=>{C(u?.affiliate?.ref??null),S(u?.affiliate?.percent??null),y(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(tc,"useSyncStoresWithConfig");import{useEffect as aa,useRef as Fh}from"react";import{useInRouterContext as Oh,useLocation as Uh,useSearchParams as Qh}from"react-router-dom";function ra(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(ra,"convertTokenSearchParamToAsset");function ia(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(ia,"tokenToSearchParam");function sa(){let t=Uh(),[e,o]=Qh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:c,setFromToken:u,setToToken:g,setInputAmount:d}=G(),m=h().fetchStatus,f=h().blockchains(),C=h().tokens(),S=Oh(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),x=Fh(),{findToken:b}=h(),W=i(()=>{let v={};for(let[_,X]of e.entries())_.startsWith("utm_")&&(v[_]=X);let E=e.get("fromAmount"),A=e.get("fromBlockchain"),B=e.get("fromToken"),q=e.get("toBlockchain"),I=e.get("toToken"),Q=e.get("autoConnect"),te=e.get("clientUrl"),P=e.get("liquiditySources");return{fromAmount:E,fromBlockchain:A,fromToken:B,toBlockchain:q,toToken:I,autoConnect:Q,clientUrl:te,liquiditySources:P,utmQueryParams:v}},"getUrlSearchParams"),w=i(v=>{for(let E in v)v[E]||delete v[E];o(v,{replace:!0})},"updateUrlSearchParams");aa(()=>{let{autoConnect:v,clientUrl:E,utmQueryParams:A}=W();S&&m==="success"&&w({fromBlockchain:n?.name,fromToken:ia(a),toBlockchain:r?.name,toToken:ia(s),fromAmount:l,autoConnect:v??void 0,clientUrl:E??void 0,liquiditySources:k?x.current:void 0,...A})},[t.pathname,l,n,a,r,s,k]),aa(()=>{if(!S)return;let v=W();if(!x.current&&v.liquiditySources&&(x.current=v.liquiditySources),v.fromAmount&&d(v.fromAmount),m==="success"){let E=f.find(I=>I.name===v.fromBlockchain),A=v.fromToken&&E?b(ra(v.fromToken,E)):void 0,B=f.find(I=>I.name===v.toBlockchain),q=v.toToken&&B?b(ra(v.toToken,B)):void 0;E&&(p(E),A&&u({token:A,meta:{blockchains:f,tokens:C}})),B&&(c(B),q&&g({token:q,meta:{blockchains:f,tokens:C}}))}},[m]),aa(()=>{let{clientUrl:v,liquiditySources:E}=W();y("clientUrl",v||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(sa,"useSyncUrlAndStore");import{i18n as ms}from"@lingui/core";import{useManager as yT}from"@rango-dev/queue-manager-react";import{Alert as $m,Button as ST,css as fs,Divider as ds,IconButton as Fm,styled as CT,Typography as TT,WalletIcon as kT}from"@rango-dev/ui";import We,{useEffect as jr,useLayoutEffect as vT,useRef as xT,useState as un}from"react";import{useNavigate as wT}from"react-router-dom";import{i18n as co}from"@lingui/core";import{Alert as gu,BalanceErrors as aC,Button as hu,ChevronLeftIcon as sC,Divider as Ir,MessageBox as lC,Typography as Ga}from"@rango-dev/ui";import J,{useCallback as pC,useEffect as yu,useMemo as cC,useState as uo}from"react";import{useNavigate as uC}from"react-router-dom";import{i18n as sr}from"@lingui/core";function lr(t){switch(t.type){case 0:return sr.t("Route has been updated.");case 3:return sr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return sr.t("Route swappers has been updated.");case 2:return sr.t("Route internal coins has been updated.");default:return""}}i(lr,"getQuoteUpdateWarningMessage");import{Modal as qh}from"@rango-dev/ui";import Hh from"react";function ne(t){let{watermark:e}=pe();return Hh.createElement(qh,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import{i18n as ua}from"@lingui/core";import{Alert as Xh,ChevronDownIcon as Yh,CloseIcon as Zh,Divider as pc,IconButton as cc,PasteIcon as Jh,Typography as Rh,WalletIcon as ey}from"@rango-dev/ui";import Be,{useEffect as ty,useRef as oy}from"react";import mr,{useRef as Kh}from"react";import*as Ao from"@radix-ui/react-collapsible";import{keyframes as nc,styled as pr}from"@rango-dev/ui";var la=300,Gh=nc({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Vh=nc({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),rc=pr(Ao.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),pa=pr(Ao.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),cr=pr(Ao.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Gh} ${la}ms ease-out`},false:{animation:`${Vh} ${la}ms ease-out`}}}}),ur=pr("div",{transition:`all ${la}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function dr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=Kh(null);return mr.createElement(rc,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&mr.createElement(pa,{className:"collapsible_trigger",onClick:a},s),mr.createElement(cr,{className:"collapsible_content",open:e},r),l==="bottom"&&mr.createElement(pa,{className:"collapsible_trigger",onClick:a},s))}i(dr,"CustomCollapsible");import{darkTheme as ic,styled as ca,TextField as jh}from"@rango-dev/ui";var ac=ca("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),sc=ca(jh,{backgroundColor:"$neutral100",padding:"$15"}),lc=ca("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${ic} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${ic} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function uc(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=G(),{config:s}=h(),l=h().blockchains(),p=Pn(e.name,l),c=oy(null),u=s?.defaultCustomDestinations?.[e.name],g=navigator?.userAgent.includes("Firefox"),m=n&&!!r&&e&&!Yn(e,r),f=i(()=>{a("")},"handleClear"),C=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let T=await navigator.clipboard.readText();a(T),c?.current?.focus()}},"handlePaste"),S=i(()=>r?Be.createElement(cc,{onClick:f,variant:"ghost"},Be.createElement(Zh,{size:12,color:"gray"})):g?null:Be.createElement(cc,{onClick:C,variant:"ghost"},Be.createElement(Jh,{size:16})),"renderSuffix");return ty(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Be.createElement(ac,null,Be.createElement(dr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Be.createElement(lc,null,Be.createElement("div",{className:"button__content"},Be.createElement(ey,{size:18,color:"info"}),Be.createElement(pc,{size:4,direction:"horizontal"}),Be.createElement(Rh,{variant:"label",size:"medium",color:n?"$neutral600":void 0},ua.t("Send to a different address"))),Be.createElement(ur,{orientation:n?"up":"down"},Be.createElement(Yh,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Be.createElement(sc,{ref:c,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:ua.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:S(),onChange:y=>{let T=y.target.value;a(T)}})),m&&Be.createElement(Be.Fragment,null,Be.createElement(pc,{size:4}),Be.createElement(Xh,{variant:"alarm",type:"error",title:ua.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(uc,"CustomDestination");import{css as ny,darkTheme as ma,IconButton as ry,styled as At}from"@rango-dev/ui";var mc=At("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),dc=At("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),iy=At("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ma} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ma} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ma} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),fc=At(iy,{alignSelf:"stretch",minHeight:"93px"}),gc=At("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),hc=At(ry,{position:"absolute",left:"$20"}),yc=At("div",{paddingTop:"$20"}),Sc=ny({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Cc=At("div",{display:"flex"}),Tc=At("div",{overflow:"visible",width:"100%"});import{i18n as mt}from"@lingui/core";import{Button as oC,Divider as qa,Image as nC,MessageBox as br,SelectableWallet as rC,Typography as mu,WalletState as du}from"@rango-dev/ui";import de,{useEffect as fu,useState as po}from"react";import{WalletState as da}from"@rango-dev/ui";import{useWallets as ay}from"@rango-dev/wallets-react";import{detectMobileScreens as sy,KEPLR_COMPATIBLE_WALLETS as ly,WalletTypes as No}from"@rango-dev/wallets-shared";import{useCallback as py,useEffect as cy,useState as uy}from"react";var my=Object.values(No);function oo(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:c}=ay(),{connectedWallets:u}=oe(),g=h().blockchains(),d=ap(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||my,m=ql(s,p,d,e);m=sy()?m.filter(w=>w.showOnMobile!==!1&&s(w.type).installed):m;let f=Xl(m),[C,S]=uy(""),y=i(w=>!u.find(v=>v.walletType===w&&v.chain===e),"isExperimentalChainNotAdded"),T=i(async(w,v)=>{let E=s(w);try{if(C&&S(""),E.connected)await l(w);else{if(Bn(m,a.multiWallets))return;o?.(w),await c(w,void 0,v),n?.(w)}}catch(A){r?.(A?.message),S("Error: "+A?.message)}},"handleClick"),k=py(()=>{let w=m?.filter(v=>v.state===da.CONNECTING)||[];for(let v of w)l(v.type)},[Jl(m)]),x=i(async w=>{s(w).connected&&await l(w)},"disconnectWallet");cy(()=>()=>{k()},[]);let b=i(w=>{let v=w.find(A=>A.type===No.DEFAULT);return!v||v.state===da.NOT_INSTALLED?!1:w.filter(A=>A.state!=da.NOT_INSTALLED&&![No.DEFAULT,No.WALLET_CONNECT_2,No.LEDGER].includes(A.type)&&p(A.type).supportedChains.filter(B=>B.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),W=i((w,v,E)=>Un(E,v)&&y(w)&&!ly.includes(w)||w==No.DEFAULT&&!b(m),"shouldExcludeWallet");return{list:f.filter(w=>!W(w.type,e??"",g)),error:C,handleClick:T,disconnectConnectingWallets:k,disconnectWallet:x}}i(oo,"useWalletList");import{i18n as iu}from"@lingui/core";import{Divider as KS,getCategoriesCount as jS,SelectableCategoryList as XS,styled as su,Typography as YS,Wallet as ZS,WalletState as au}from"@rango-dev/ui";import at,{useState as Ro}from"react";import{useManager as yS}from"@rango-dev/queue-manager-react";import{BottomLogo as SS,Divider as Vc,Header as CS}from"@rango-dev/ui";import we,{useEffect as Da,useRef as Kc,useState as TS}from"react";import{useRef as dy}from"react";function fr(){return window.self!==window.top}i(fr,"isAppLoadedIntoIframe");function fa(){let t=dy(null),{iframe:e}=h(),o=fr()&&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(fa,"useIframe");import{useNavigate as fy}from"react-router-dom";function rt(){let t=fy();return()=>t(-1)}i(rt,"useNavigateBack");import{createTheme as ka,darkTheme as Ay,lightTheme as Ny}from"@rango-dev/ui";import{useEffect as Wy,useState as My}from"react";import{theme as Ey,darkColors as Iy}from"@rango-dev/ui";import Ca from"react";function gy(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(gy,"expandShortHexColor");function hy(t){return/[0-9]+$/.test(t)}i(hy,"isOverridingColor");function yy(t,e){return t.padStart(e,"0")}i(yy,"pad");function ga(t){let e=Math.min(Math.max(Math.round(t),0),255);return yy(e.toString(16),2)}i(ga,"intToHex");function Sy(t){return`#${ga(t.red)}${ga(t.green)}${ga(t.blue)}`}i(Sy,"rgbToHex");function Cy(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(Cy,"hexToRGB");function Ty(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Ty,"generateShade");function ky(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(ky,"generateTint");function vy(t){return kc(t,Ty)}i(vy,"calculateShades");function xy(t){return kc(t,ky)}i(xy,"calculateTints");function kc(t,e){let o=Cy(t),n=[];for(let r=1;r<9;r++)n.push(Sy(e(o,r)));return n}i(kc,"calculateColors");function ha(t,e,o){let a=xy(t).reverse().concat(t),s=vy(t),l=a.concat(s),p={},c=l.length;for(let u=0;u<c;u++){let g=100+(o?c-1-u:u)*50;p[`${e}${g}`]=l[u]}return p}i(ha,"createTintsAndShades");function ya(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)&&!hy(r)){let p=gy(a);Object.assign(n,ha(p,r,s))}}return{...n,...e}}i(ya,"expandToGenerateThemeColors");var vc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),wy=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=vc(o%52)+e;return vc(o%52)+e},"toAlphabeticName"),by=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Sa=i(t=>wy(by(5381,JSON.stringify(t))>>>0),"toHash");function Ta(t){let e=Ey.colors,o={...e,...Iy},n,r;if(t?.light){let s={colors:ya(e,t.light)};n={id:`${Oi}-light-${Sa(s)}`,tokens:s}}if(t?.dark){let s={colors:ya(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Oi}-dark-${Sa(s)}`,tokens:s}}return{light:n,dark:r}}i(Ta,"customizedThemeTokens");function xc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ca.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ca.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ca.cloneElement(e,{key:l}))}}),o}i(xc,"joinList");function wc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(wc,"doesWindowPreferDarkColorScheme");function gr(t){let{colors:e,fontFamily:o=Wl,borderRadius:n=op,secondaryBorderRadius:r=np}=t,[a,s]=My(wc()?"dark":"light"),{theme:l}=h(),{dark:p,light:c}=Ta(e),u=ka({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),g=[u.className,Ny.className],d=[u.className,Ay.className];if(c){let f=ka(c.id,c.tokens);g.push(f.className)}if(p){let f=ka(p.id,p.tokens);d.push(f.className)}return Wy(()=>{let f=i(C=>{C.matches?s("dark"):s("light")},"switchThemeListener");return wc()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=g.join(" "),C=d.join(" ");return l==="auto"?a==="dark"?C:f:l==="dark"?C:f},"getActiveTheme")}}i(gr,"useTheme");var it=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 bc}from"@lingui/core";import{Alert as Ly,Button as By}from"@rango-dev/ui";import Ec from"react";function va(t){return Ec.createElement(Ly,{action:Ec.createElement(By,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},bc.t("Activate this tab")),type:"warning",variant:"alarm",title:bc.t("Another tab is open and handles transactions.")})}i(va,"ActivateTabAlert");import{i18n as xa}from"@lingui/core";import{Button as Py,Divider as Dy,MessageBox as _y}from"@rango-dev/ui";import hr from"react";function wa(t){let{open:e,onClose:o,onConfirm:n}=t;return hr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:L()},hr.createElement(_y,{title:xa.t("Activate current tab"),type:"warning",description:xa.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.")},hr.createElement(Dy,{size:20}),hr.createElement(Py,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},xa.t("Confirm"))))}i(wa,"ActivateTabModal");import{ChevronLeftIcon as Oy}from"@rango-dev/ui";import Bc from"react";import{css as $y,darkTheme as Ic,IconButton as Fy,styled as no}from"@rango-dev/ui";var Tt=no(Fy,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Ic} &`]:{backgroundColor:"$neutral"}}}),Ac=no("div",{position:"absolute",background:"$secondary500",[`.${Ic} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Ut=no("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Nc=no("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"}}}}),Wc=no("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Mc=no("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Lc=$y({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),yr=no("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ba(t){return Bc.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},Bc.createElement(Oy,{color:"black",size:16}))}i(ba,"BackButton");import{i18n as Uy}from"@lingui/core";import{Button as Qy,Typography as zy}from"@rango-dev/ui";import Ea from"react";function Ia(t){return Ea.createElement(Ut,null,Ea.createElement(Qy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Ea.createElement(zy,{variant:"label",size:"medium",color:"error500"},Uy.t("Cancel"))))}i(Ia,"CancelButton");import{i18n as qy}from"@lingui/core";import{Image as Hy,Tooltip as Gy,WalletIcon as Vy}from"@rango-dev/ui";import ro from"react";function Aa(t){let{list:e}=oo({}),o=e.filter(r=>r.state==="connected"),n=o.length?ro.createElement("div",{className:Lc()},o.map(r=>ro.createElement(yr,{key:r.title},ro.createElement(Hy,{src:r.image,size:14})))):qy.t("Connect Wallet");return ro.createElement(Gy,{container:t.container,side:"bottom",content:n},ro.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&ro.createElement(Ac,null),ro.createElement(Vy,{size:18,color:"black"})))}i(Aa,"WalletButton");import{i18n as Cr}from"@lingui/core";import{NotificationsIcon as lS,Popover as pS,SettingsIcon as cS,Tooltip as Tr,TransactionIcon as uS}from"@rango-dev/ui";import Pe from"react";import{Notifications as Yy}from"@rango-dev/ui";import Zy from"react";import{useNavigate as Jy}from"react-router-dom";import{create as Ky}from"zustand";import{persist as jy,subscribeWithSelector as Xy}from"zustand/middleware";var Ie=Ft(Ky()(jy(Xy((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:{creationTime:parseInt(n.creationTime),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)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.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 Na(){let t=Jy(),{getNotifications:e,clearNotifications:o}=Ie(),n=e(),r=h().blockchains(),{findToken:a}=h();return Zy.createElement(Yy,{list:n,getBlockchainImage:l=>Ul(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${H.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Na,"NotificationContent");import{useManager as Ry}from"@rango-dev/queue-manager-react";import{InProgressIcon as eS}from"@rango-dev/ui";import Pc from"react";var tS=i(()=>{let{manager:t}=Ry();return it(t).map(({swap:o})=>o).find(o=>o.status==="running")?Pc.createElement(Mc,null,Pc.createElement(eS,{color:"info",size:6})):null},"InProgressTransactionBadge"),Dc=tS;import{EventSeverity as oS}from"@rango-dev/queue-manager-rango-preset";import{Typography as nS}from"@rango-dev/ui";import _c from"react";function $c(){let{getNotifications:t}=Ie(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===oS.WARNING);return o?_c.createElement(Nc,{isSever:n},_c.createElement(nS,{variant:"body",size:"xsmall",color:"$background"},o)):null}i($c,"NotificationsBadge");import{RefreshProgressButton as rS}from"@rango-dev/ui";import Wa,{useEffect as iS,useState as Fc}from"react";var aS=1e3,Oc=60,sS=100;function Sr({onClick:t}){let[e,o]=Fc(0),[n,r]=Fc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");iS(()=>{let p;return t?p=window.setInterval(()=>{o(c=>c+1),e===Oc&&l()},aS):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 Wa.createElement(Tt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Wa.createElement(Wc,{onTransitionEnd:()=>r(!1),isRefetched:n},Wa.createElement(rS,{size:22,color:t?"black":"gray",progress:e/Oc*sS})))}i(Sr,"RefreshButton");function io(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=ot("notification",s)||r.includes("notifications");return Pe.createElement(Pe.Fragment,null,!r.includes("refresh")&&Pe.createElement(Tr,{container:a||L(),side:"top",content:Cr.t("Refresh")},Pe.createElement(Sr,{onClick:e})),!l&&Pe.createElement(pS,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:L(),content:Pe.createElement(Na,null)},Pe.createElement("div",null,Pe.createElement(Tr,{container:L(),side:"top",content:Cr.t("Notifications")},Pe.createElement(Tt,{size:"small",variant:"ghost"},Pe.createElement(lS,{size:18,color:"black"}),Pe.createElement($c,null))))),!r.includes("settings")&&Pe.createElement(Tr,{container:L(),side:"top",content:Cr.t("Settings")},Pe.createElement(Tt,{size:"small",variant:"ghost",onClick:n},Pe.createElement(cS,{size:18,color:"black"}))),!r.includes("history")&&Pe.createElement(Tr,{container:L(),side:"top",content:Cr.t("Transactions History")},Pe.createElement(Tt,{size:"small",variant:"ghost",onClick:o},Pe.createElement(uS,{size:18,color:"black"}),Pe.createElement(Dc,null))))}i(io,"HeaderButtons");import{i18n as Ma}from"@lingui/core";import{Divider as Qc,MessageBox as fS,RefreshIcon as gS}from"@rango-dev/ui";import Wo from"react";import{Button as mS,styled as dS}from"@rango-dev/ui";var Uc=dS(mS,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function La(t){let{open:e,onClose:o}=t;return Wo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:L()},Wo.createElement(fS,{title:Ma.t("Something went wrong"),type:"error",description:Ma.t("Something went wrong. Please refresh the app.")},Wo.createElement(Qc,{size:30}),Wo.createElement(Uc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Wo.createElement(gS,{size:20,color:"primary"}),Wo.createElement(Qc,{size:4,direction:"horizontal"}),Ma.t("Refresh"))))}i(La,"RefreshModal");function Ba(t){let e=t.target;if(e){let o=e.scrollTop,n=L();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Ba,"onScrollContentAttachStatusToContainer");import{css as hS,styled as Pa}from"@rango-dev/ui";var zc="700px",kr=hS({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),qc=Pa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:zc},fixed:{height:zc}}}}),Hc=Pa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Gc=Pa("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 me(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=fa(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,c]=TS(!1),u=oe.use.connectedWallets(),{config:{features:g,theme:d}}=h(),{watermark:m}=pe(),f=m==="FULL",{activeTheme:C}=gr(d||{}),S=ot("connectWalletButton",g),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:x,activateCurrentTab:b}=pe(),W=rt(),{manager:w}=yS(),E=it(w).map(({swap:te})=>te).some(te=>te.status==="running"),A=i(()=>b(Rt.forceClaim,E),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),q=typeof r.hasBackButton>"u"||r.hasBackButton,I=Kc(null),Q=Kc(null);return Da(()=>(fr()&&Q.current&&e(Q.current),()=>{o()}),[]),Da(()=>(I.current?.addEventListener("scroll",Ba),()=>{I.current?.removeEventListener("scroll",Ba)}),[]),Da(()=>{c(l==="failed")},[l]),we.createElement(qc,{height:s,id:Ce.SWAP_BOX_ID,className:`${C()} ${kr()}`,ref:Q},we.createElement(CS,{prefix:we.createElement(we.Fragment,null,q&&we.createElement(ba,{onClick:()=>{W(),r.onBack&&r.onBack()}})),title:r.title,suffix:we.createElement(we.Fragment,null,r.suffix,r.onWallet&&!S&&we.createElement(Aa,{container:L(),onClick:B,isConnected:!!u?.length}),r.onCancel&&we.createElement(Ia,{onClick:r.onCancel}))}),we.createElement(Hc,{ref:I},n),we.createElement(wa,{open:k,onClose:()=>x(!1),onConfirm:A}),we.createElement(Gc,null,we.createElement("div",{className:"footer__content"},T&&!y&&we.createElement("div",{className:"footer__alert"},we.createElement(va,{onActivateTab:A}),we.createElement(Vc,{size:10})),a),we.createElement(Vc,{size:12}),we.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},we.createElement(SS,null))),we.createElement(La,{open:p,onClose:()=>c(!1)}))}i(me,"Layout");import{styled as kS}from"@rango-dev/ui";var jc="$20 $20 $10 $20",Zo=kS("div",{padding:jc,overflowY:"auto",flexGrow:1});import{styled as vS}from"@rango-dev/ui";var ye=vS("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Bo}from"@lingui/core";import{Button as ES,Divider as Zc,Image as IS,MessageBox as AS,Select as NS,TextField as WS}from"@rango-dev/ui";import{namespaces as MS}from"@rango-dev/wallets-shared";import Ke,{useEffect as LS,useState as Jc}from"react";import{keyframes as xS,styled as vr}from"@rango-dev/ui";var LM=vr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Mo=vr("div",{position:"relative"}),wS=xS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Lo=vr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${wS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),xr=vr("div",{"& img":{borderRadius:"50%"}});import{styled as Xc,Typography as bS}from"@rango-dev/ui";var Yc=Xc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),_a=Xc(bS,{paddingLeft:"$10"}),$a={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var eu={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Rc(t){let e=t?MS[t].derivationPaths:null;return e?[...e,eu]:[]}i(Rc,"getDerivationPaths");function ao(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Jc(null),[c,u]=Jc("0"),g=l===eu.id,d=Rc(n),m=i(({value:C})=>{let S=d?.find(y=>y.id===C);S&&p(S.id)},"handleDerivationPathItemClick"),f=i(()=>{let C=d.find(S=>S.id===l);if(C)o(C.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return LS(()=>{p(Rc(n)[0]?.id||null)},[n]),Ke.createElement(ne,{open:s,onClose:e,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},Ke.createElement(Zc,{size:20}),Ke.createElement(AS,{type:"info",title:Bo.t("Select Derivation Path"),description:Bo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:Ke.createElement(Mo,null,Ke.createElement(xr,null,Ke.createElement(IS,{src:r,size:45})),Ke.createElement(Lo,null))}),Ke.createElement(Yc,null,Ke.createElement(_a,{variant:"body",size:"xsmall",color:"$neutral600"},Bo.t("Choose Derivation Path Template")),Ke.createElement(NS,{value:l||"",options:d.map(C=>({value:C.id,label:C.label})),variant:"filled",handleItemClick:m,styles:{trigger:$a}}),Ke.createElement(Zc,{size:20}),Ke.createElement(_a,{variant:"body",size:"xsmall",color:"$neutral600"},g?Bo.t("Enter Path"):Bo.t("Enter Index")),Ke.createElement(WS,{type:g?"text":"number",variant:"contained",value:c,onChange:C=>u(C.target.value),style:$a})),Ke.createElement(ES,{type:"primary",onClick:f,disabled:!d||!l||!c},Bo.t("Confirm")))}i(ao,"WalletDerivationPathModal");import{Divider as DS}from"@rango-dev/ui";import Oa from"react";import{i18n as Po}from"@lingui/core";import{Image as BS,MessageBox as Fa,WalletState as PS}from"@rango-dev/ui";import so from"react";function tu(t){let{state:e,image:o,error:n}=t;return e===PS.CONNECTED?so.createElement(Fa,{type:"success",title:Po.t("Wallet Connected"),description:Po.t("Your wallet is connected, you can use it to swap.")}):n?so.createElement(Fa,{type:"error",title:Po.t("Failed to Connect"),description:n||Po.t("Your wallet is not connected. Please try again.")}):so.createElement(Fa,{type:"loading",title:Po.t("Connecting to your wallet"),description:Po.t("Click connect in your wallet popup."),icon:so.createElement(Mo,null,so.createElement(xr,null,so.createElement(BS,{src:o,size:45})),so.createElement(Lo,null))})}i(tu,"ModalContent");function Jo(t){let{open:e,onClose:o,...n}=t;return Oa.createElement(ne,{open:e,onClose:o,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},Oa.createElement(tu,{...n}),Oa.createElement(DS,{direction:"vertical",size:32}))}i(Jo,"WalletModal");import{i18n as Ua}from"@lingui/core";import{Button as $S,Checkbox as FS,Divider as OS,Image as nu,ListItemButton as US,MessageBox as QS,Radio as zS,RadioRoot as qS}from"@rango-dev/ui";import{namespaces as ru}from"@rango-dev/wallets-shared";import De,{useMemo as HS,useState as GS}from"react";import{styled as _S}from"@rango-dev/ui";var ou=_S("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var VS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function lo(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=GS([]),a=h().blockchains(),s=HS(()=>o?.map(c=>({name:c,logo:VS(a,ru[c].mainBlockchain),title:ru[c].title})),[o]),l=i(c=>{r(e?[c]:u=>u.includes(c)?u.filter(g=>g!==c):u.concat(c))},"onSelect"),p=i(c=>e?De.createElement(qS,{value:n?.[0]},c):De.createElement(De.Fragment,null,c),"wrapRadioRoot");return De.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},De.createElement(OS,{size:20}),De.createElement(QS,{type:"info",title:Ua.t("Select chain types"),description:Ua.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:De.createElement(Mo,null,De.createElement(yr,null,De.createElement(nu,{src:t.image,size:45})),De.createElement(Lo,null))}),De.createElement(ou,null,p(De.createElement(De.Fragment,null,s?.map(c=>De.createElement(US,{key:c.name,id:c.name,title:c.title,hasDivider:!0,style:{height:60},onClick:()=>l(c.name),start:De.createElement(nu,{src:c.logo,size:22}),end:e?De.createElement(zS,{value:c.name}):De.createElement(FS,{checked:n.includes(c.name)})}))))),De.createElement($S,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Ua.t("Confirm")))}i(lo,"WalletNamespacesModal");var JS=su("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),RS=su(ye,{textAlign:"center"}),wr=3e3,Qa=300;function lu(){let{fetchStatus:t}=h(),[e,o]=Ro("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Ro(!1),[l,p]=Ro(null),[c,u]=Ro(null),[g,d]=Ro(""),m=null,f=pe.use.isActiveTab(),{list:C,handleClick:S,error:y,disconnectConnectingWallets:T}=oo({onBeforeConnect:P=>{m=setTimeout(()=>{s(!0),d(P)},Qa)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},wr)}}),k=i(()=>{T(),s(!1)},"handleCloseWalletModal"),x=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),b=i(()=>{c&&u({...c,open:!1})},"handleCloseDerivationPathModal"),W=C.find(P=>P.type===g),w=W?.image||"",v=W?.state||au.NOT_INSTALLED,E=Rl(C,n),B=jS(E)!==1,q=ep(C,e),I=i(P=>{Bn(C,r.multiWallets)||(P.namespaces?.length&&P.state===au.DISCONNECTED?P.namespaces.length>1?p({open:!0,providerType:P.type,providerImage:P.image,availableNamespaces:P.namespaces,singleNamespace:P.singleNamespace}):P.needsDerivationPath?u({open:!0,providerType:P.type,providerImage:P.image,namespace:P.namespaces[0]}):S(P.type):S(P.type))},"handleWalletItemClick"),Q=i(P=>{let _=q.find(X=>X.type===l?.providerType);_?.singleNamespace&&_?.needsDerivationPath&&P[0]?u({open:!0,providerType:_.type,providerImage:_.image,namespace:P[0]}):S(l?.providerType,P.map(X=>({namespace:X}))),x()},"handleConfirmNamespaces"),te=i(P=>{P&&c?.namespace&&S(c.providerType,[{namespace:c.namespace,derivationPath:P}]),b()},"handleDerivationPathConfirm");return at.createElement(me,{header:{title:iu.t("Connect Wallets")}},at.createElement(RS,null,B&&at.createElement(at.Fragment,null,at.createElement(XS,{setCategory:o,category:e,blockchains:E,isLoading:t==="loading"}),at.createElement(KS,{size:24})),at.createElement(YS,{variant:"title",size:"xmedium",align:"center"},iu.t("Choose a wallet to connect.")),at.createElement(JS,null,q.map((P,_)=>{let X=`wallet-${_}-${P.type}`;return at.createElement(ZS,{key:X,...P,container:L(),onClick:()=>I(P),isLoading:t==="loading",disabled:!f})}),at.createElement(Jo,{open:!!a,onClose:k,image:w,state:v,error:y}),at.createElement(lo,{open:!!l?.open,onClose:x,onConfirm:Q,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),at.createElement(ao,{open:!!c?.open,selectedNamespace:c?.namespace,type:c?.providerType,image:c?.providerImage,onClose:b,onConfirm:te}))))}i(lu,"WalletsPage");import{keyframes as eC,styled as za}from"@rango-dev/ui";var pu=za("div",{position:"relative"}),tC=eC({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),cu=za("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${tC} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),uu=za("div",{"& img":{borderRadius:"50%"}});var iC=7;function Ha(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=pe.use.isActiveTab(),p=oe.use.connectedWallets(),{blockchains:c}=h(),[u,g]=po(""),[d,m]=po(null),[f,C]=po(!1),[S,y]=po(null),[T,k]=po(null),[x,b]=po(null),{suggestAndConnect:W}=Er(),w=null,{list:v,error:E,handleClick:A,disconnectWallet:B,disconnectConnectingWallets:q}=oo({chain:e,onBeforeConnect:N=>{w=setTimeout(()=>{g(N)},Qa)},onConnect:N=>{s?.(N),w&&clearTimeout(w),setTimeout(()=>{g("")},wr)}}),[I,Q]=po(v),te=v.length,P=r&&te-r>0,_=i(async N=>{C(!1),y("in-progress");try{await W(N.walletType,N.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),X=i(()=>{T&&k({...T,open:!1})},"handleCloseNamespaceModal"),Se=i(()=>{x&&b({...x,open:!1})},"handleCloseDerivationPathModal"),Y=i(N=>{k({open:!0,providerType:N.type,providerImage:N.image,availableNamespaces:N.namespaces,singleNamespace:N.singleNamespace})},"handleOpenNamespacesModal"),ie=i(N=>{let ce=I.find(ue=>ue.type===T?.providerType);ce?.singleNamespace&&ce?.needsDerivationPath&&N[0]?b({open:!0,providerType:ce.type,providerImage:ce.image,namespace:N[0]}):A(T?.providerType,N.map(ue=>({namespace:ue}))),X()},"handleConfirmNamespaces"),he=i(N=>{N&&x?.namespace&&A(x.providerType,[{namespace:x.namespace,derivationPath:N}]),Se()},"handleDerivationPathConfirm");fu(()=>{Q(N=>{let ce=v.findIndex(ue=>o(ue.type,e));return P&&ce>1?[v[ce]].concat(v.filter((ue,$e)=>$e!==ce)):N.map(ue=>v.find($e=>$e.type===ue.type)??ue)})},[JSON.stringify(v)]);let Te=document.getElementById(Ce.SWAP_BOX_ID);fu(()=>{let N=null;return(S==="completed"||S==="rejected")&&(N=setTimeout(()=>y(null),wr)),()=>{N&&clearTimeout(N)}},[S]);let $=i(()=>{q(),g("")},"handleCloseWalletModal");return de.createElement(de.Fragment,null,I.slice(0,r).map(N=>{let ce=Yl({connectedWallets:p,walletType:N.type,chain:e}),ue=ce?zn(ce,iC):"",$e=Un(c(),e),D=!p.find(le=>le.walletType===N.type&&le.chain===e),z=$e&&D&&N.state===du.CONNECTED,K=z?mt.t({id:"Add {chain} chain",values:{chain:e}}):ue,se=i(async()=>{N.state===du.DISCONNECTED?N.namespaces?.length?N.namespaces.length>1?Y(N):N.needsDerivationPath?b({open:!0,providerType:N.type,providerImage:N.image,namespace:N.namespaces[0]}):A(N.type):A(N.type):N.namespaces&&!ue?(await B(N.type),Y(N)):z?(m({walletType:N.type,chain:e,address:ce??""}),C(!0)):n({walletType:N.type,chain:e,address:ce??""})},"onSelectableWalletClick"),ee=d?.chain?Pn(d.chain,c()):void 0;return de.createElement(de.Fragment,{key:`${N.title}_${ee}`},de.createElement(Jo,{open:u===N.type,onClose:$,image:N.image,state:N.state,error:E}),de.createElement(lo,{open:!!T?.open,onClose:X,onConfirm:ie,image:T?.providerImage,availableNamespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),de.createElement(ao,{open:!!x?.open,selectedNamespace:x?.namespace,type:x?.providerType,image:x?.providerImage,onClose:Se,onConfirm:he}),!!d&&de.createElement(ne,{open:!!d&&f,container:Te,onClose:()=>{m(null)}},de.createElement(br,{title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),type:"warning",description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}})},de.createElement(qa,{size:18}),de.createElement(qa,{size:32}),de.createElement(oC,{onClick:_.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},mt.t("Confirm")))),S&&de.createElement(ne,{open:!!S,onClose:y.bind(null,null),container:Te},S==="in-progress"&&de.createElement(br,{type:"loading",title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}}),icon:de.createElement(pu,null,de.createElement(uu,null,de.createElement(nC,{src:N.image,size:45})),de.createElement(cu,null))}),S==="completed"&&de.createElement(br,{type:"success",title:mt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ee}}),description:mt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ee}})}),S==="rejected"&&de.createElement(br,{type:"error",title:mt.t("Request Rejected"),description:mt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ee}})}),de.createElement(qa,{direction:"vertical",size:32})),de.createElement(rC,{key:N.type,description:K,onClick:se,selected:o(N.type,e),disabled:!l,...N}))}),P&&de.createElement(fc,{selected:!1,onClick:a},de.createElement(mu,{variant:"label",size:"medium"},mt.t("Show more wallets"),de.createElement(mu,{variant:"label",size:"medium",color:"$primary"},"\xA0+",te-(r??0)))))}i(Ha,"WalletList");var mC=2;function Su(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=uC(),l=h().blockchains(),{selectedQuote:p,setSelectedWallets:c,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:g,customDestination:d,setCustomDestination:m}=G(),{connectedWallets:f,selectWallets:C}=oe(),{config:S}=h(),[y,T]=uo(""),[k,x]=uo([]),[b,W]=uo(""),[w,v]=uo(null),[E,A]=uo(!!d),B=cC(()=>Zt({filter:"all",quote:p}),[p]),q=Zt({filter:"required",quote:p}),I=l.find(D=>D.name===p?.swaps[p?.swaps.length-1].to.blockchain),Q=i(D=>q.includes(D),"isWalletRequiredFor"),te=pC(()=>f.filter(D=>D.selected&&B.includes(D.chain)),[f,B]),[P,_]=uo(te()),[X,Se]=uo([]),Y=i((D,z)=>Se(K=>K.concat({blockchain:D,walletType:z})),"addNextSelectedWallets"),ie=k.length>0,he=i((D,z)=>!!P.find(K=>K.walletType===D&&K.chain===z&&K.selected&&(Q(z)||!Q(z)&&!d)),"isSelected"),Te=i((D,z,K)=>{let se=!1;return D.map(ee=>{if(ee.chain===z){let le=ee.selected;return!se&&K?(se=!0,le=!0):K||(le=!1),{...ee,selected:le}}return ee})},"updateSelectableWallets"),$=i(D=>{A(D),D?Q(I?.name??"")||_(z=>Te(z,I?.name||"",!1)):(m(""),_(z=>Te(z,I?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),N=i(D=>{if(y&&T(""),he(D.walletType,D.chain))return;let K=f.find(se=>se.walletType===D.walletType&&se.chain===D.chain);K&&(n(),D.chain===I?.name&&E&&!Q(I.name)&&(A(!1),m(null)),_(se=>se.filter(ee=>ee.chain!==D.chain).concat({...K,selected:!0})))},"onChange"),ce=i(()=>{let D=P.filter(z=>z.selected);C(D),c(D),g(!0),o()},"onConfirmBalance"),ue=i(async()=>{x([]),W(""),v(null);let D=await r?.({selectedWallets:P.filter(K=>K.selected),customDestination:d}),z=D.warnings;z?.balance?.messages&&x(z.balance.messages),z?.quoteUpdate&&v(z.quoteUpdate),D.error&&W(Ap(D.error)),!D.error&&!z?.balance?.messages.length?ce():x(z?.balance?.messages??[])},"onConfirmWallets");yu(()=>{_(D=>{let z=[];return D.forEach(K=>{!f.some(ee=>ee.chain===K.chain&&ee.walletType===K.walletType&&ee.address===K.address)||z.push(K)}),z=z.concat(f.filter(K=>!!!z.find(ee=>ee.chain===K.chain)&&K.selected&&B.includes(K.chain))),z})},[f,B]),yu(()=>{let D=[];X.length>0&&(X.forEach(z=>{let K=f.find(se=>se.chain===z.blockchain&&se.walletType===z.walletType);K?N(K):D.push(z)}),Se(D))},[f,X]);let $e=document.getElementById(Ce.SWAP_BOX_ID);return J.createElement(ne,{open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:$e,...!y&&{footer:J.createElement(Cc,null,J.createElement(hu,{loading:a,disabled:Vp(a,E,d,p,P,I),onClick:ue,variant:"contained",type:"primary",fullWidth:!0,size:"large"},co.t("Confirm")))},...y&&{styles:{container:{padding:"$0"}},header:J.createElement(gc,null,J.createElement(hc,{variant:"ghost",onClick:T.bind(null,"")},J.createElement(sC,{size:16})),J.createElement(Ga,{variant:"headline",size:"small"},co.t({id:"Your {blockchainName} wallets",values:{blockchainName:tt(y,l)}})))},anchor:"center"},J.createElement(ne,{open:ie,onClose:x.bind(null,[]),container:$e},J.createElement(lC,{title:co.t("Insufficient account balance"),type:"error",description:J.createElement(aC,{messages:k??[]})},J.createElement(hu,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ce},co.t("Proceed anyway")))),y&&J.createElement(yc,null,J.createElement("div",{className:Sc()},J.createElement(Ha,{chain:y,isSelected:he,selectWallet:N,onShowMore:()=>T(y),onConnect:D=>{Y(y,D)}}))),!y&&J.createElement(J.Fragment,null,b&&J.createElement(J.Fragment,null,J.createElement(gu,{variant:"alarm",type:"error",title:co.t(b)}),J.createElement(Ir,{size:12})),w&&J.createElement(J.Fragment,null,J.createElement(gu,{variant:"alarm",type:"warning",title:lr(w)}),J.createElement(Ir,{size:12})),J.createElement(Tc,null,B.map((D,z)=>{let K=l.find(Ee=>Ee.name===D),se=`wallet-${z}`,ee=z===B.length-1,le=ee&&I&&S?.customDestination!==!1;return J.createElement("div",{key:se},J.createElement(mc,null,J.createElement(Ga,{variant:"title",size:"xmedium"},co.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),J.createElement(Ga,{variant:"label",color:"$neutral700",size:"medium"},co.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),J.createElement(Ir,{size:24}),J.createElement(dc,null,J.createElement(Ha,{chain:D,isSelected:he,selectWallet:N,limit:mC,onShowMore:()=>T(K?.name??""),onConnect:Ee=>{Y(D,Ee)}})),!ee&&J.createElement(Ir,{size:32}),le&&J.createElement(uc,{blockchain:I,open:E,handleOpenChange:$}))}))))}i(Su,"ConfirmWalletsModal");import{i18n as MC}from"@lingui/core";import{Alert as LC,Button as BC,InfoIcon as PC}from"@rango-dev/ui";import Ze from"react";import{Alert as gC,Button as hC,Divider as ja,NoRouteIcon as yC,RefreshIcon as SC,Typography as bu}from"@rango-dev/ui";import Ye from"react";import{i18n as Cu}from"@lingui/core";var dC=24,fC=60;function Tu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:re().genericServerError,action:{onClick:n,title:Cu.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:re().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Cu.t("Reset")}},description:re().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:re().noResultError.description}}i(Tu,"makeInfo");var Va=(o=>(o[o.small=dC]="small",o[o.large=fC]="large",o))(Va||{}),Ka=(o=>(o.small="small",o.large="medium",o))(Ka||{});import{styled as Ar}from"@rango-dev/ui";var ku=Ar("div",{display:"flex",flexDirection:"column",alignItems:"center"}),vu=Ar("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),xu=Ar("div",{variants:{size:{small:{width:"100%"},large:{}}}}),wu=Ar("div",{padding:"$6 $0"});function en(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=Tu(o,r,()=>a(s,!0),e);return Ye.createElement(ku,null,Ye.createElement(yC,{size:Va[n],color:"gray"}),Ye.createElement(ja,{size:4}),Ye.createElement(bu,{variant:"title",size:Ka[n]},re().noResultError.title),n==="large"&&Ye.createElement(ja,{size:4}),!!l.description&&Ye.createElement(vu,{size:n},Ye.createElement(bu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ye.createElement(ja,{size:n==="large"?"24":"4"}),!!l.alert&&Ye.createElement(xu,{size:n},Ye.createElement(gC,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ye.createElement(hC,{size:"xsmall",type:l.alert.type,prefix:Ye.createElement(wu,null,Ye.createElement(SC,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(en,"NoResult");import{i18n as tn}from"@lingui/core";import{Button as TC,Divider as kC,MessageBox as vC,Typography as xC,WarningIcon as wC}from"@rango-dev/ui";import Nt from"react";import{Typography as Nu}from"@rango-dev/ui";import Ya from"react";import{darkTheme as CC,styled as Nr}from"@rango-dev/ui";var Eu=Nr("div",{width:"100%"}),Xa=Nr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Iu=Nr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${CC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Au=Nr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Wu(t){let{title:e,value:o,valueColor:n}=t;return Ya.createElement(Iu,null,Ya.createElement(Nu,{size:"medium",variant:"label",className:"_title"},e),Ya.createElement(Nu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Wu,"QuoteErrorsModalItem");function Mu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:tn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:tn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:tn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:tn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Nt.createElement(ne,{footer:Nt.createElement(TC,{type:"primary",size:"large",prefix:Nt.createElement(wC,null),fullWidth:!0,disabled:a,onClick:n},re().highValueLossError.confirmMessage),open:e,onClose:o,container:L()},Nt.createElement(vC,{type:s,title:re().highValueLossError.impactTitle,description:re().highValueLossError.description}),Nt.createElement(Xa,null,Nt.createElement(kC,{size:"4"}),Nt.createElement(xC,{size:"small",variant:"title"},tn.t("Details")),Nt.createElement(Xa,null,l.map((p,c)=>Nt.createElement(Wu,{key:c,...p})))))}i(Mu,"HighValueLossWarningModal");import{i18n as Za}from"@lingui/core";function Lu(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=Za.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&&(It(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=re().highValueLossError.title),t.type===1&&(o.title=re().unknownPriceError.title),t.type===2&&(o.title=Za.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=Za.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Lu,"makeAlerts");import{i18n as Do}from"@lingui/core";import{Button as Bu,Divider as Pu,MessageBox as bC,Typography as EC}from"@rango-dev/ui";import mo from"react";import{useNavigate as IC}from"react-router-dom";function Du(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=IC(),c=e??o;return mo.createElement(ne,{anchor:"bottom",open:n,prefix:mo.createElement(Bu,{size:"small",variant:"ghost",onClick:()=>p("../"+H.settings)},mo.createElement(EC,{variant:"label",size:"medium",color:"$neutral900"},Do.t("Change settings"))),container:L(),onClose:r},mo.createElement(bC,{type:"warning",title:s.type===3?Do.t("High slippage"):Do.t("Low slippage"),description:s.type===3?Do.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:c}}):Do.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},mo.createElement(Pu,{size:18}),mo.createElement(Pu,{size:32}),mo.createElement(Bu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Do.t("Confirm anyway"))))}i(Du,"SlippageWarningModal");import{Button as AC,MessageBox as NC,WarningIcon as WC}from"@rango-dev/ui";import Wr from"react";function _u(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Wr.createElement(ne,{footer:Wr.createElement(AC,{type:"primary",size:"large",prefix:Wr.createElement(WC,null),fullWidth:!0,disabled:r,onClick:n},re().unknownPriceError.confirmMessage),open:e,onClose:o,container:L()},Wr.createElement(NC,{type:"warning",title:re().unknownPriceError.impactTitle,description:re().unknownPriceError.description}))}i(_u,"UnknownPriceWarningModal");function on(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:c,onChangeSettings:u}=t,g={confirmationDisabled:a,open:r,onClose:p,onConfirm:c},d=o?.type===0||o?.type===1,m=Lu(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),Ze.createElement(Ze.Fragment,null,d&&Ze.createElement(en,{error:o,fetch:s}),!!m&&Ze.createElement(Eu,null,Ze.createElement(LC,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ze.createElement(Au,{onClick:l},Ze.createElement(PC,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:Ze.createElement(BC,{size:"xxsmall",type:m.alertType,onClick:u},MC.t("Change"))}})),e&&Ze.createElement(Ze.Fragment,null,e.type===0&&Ze.createElement(Mu,{...g,warning:e}),(e.type===3||e.type===2)&&Ze.createElement(Du,{...g,warning:e}),e.type===1&&Ze.createElement(_u,{...g,warning:e})))}i(on,"QuoteWarningsAndErrors");import uT from"bignumber.js";import Hr from"react";import{i18n as fo}from"@lingui/core";import{Alert as JC,Divider as $o,FullExpandedQuote as RC,InfoIcon as eT,NumericTooltip as gm,QuoteTag as tT,StepDetails as oT,TokenAmount as nT,Typography as Fo}from"@rango-dev/ui";import is from"bignumber.js";import F,{useRef as rT,useState as iT}from"react";import{styled as Ja}from"@rango-dev/ui";var Ra=Ja("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),$u=Ja("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Fu=Ja("div",{width:"100%",display:"flex"});import*as Mr from"@radix-ui/react-collapsible";import{Button as DC,css as nn,darkTheme as Ae,Image as Ou,styled as ze,Typography as _C}from"@rango-dev/ui";var $C=300,Uu=ze(Mr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ae} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Qu=nn({padding:"$10 $15"}),zu=ze(DC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Ae} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Ae} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ae} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),qu=ze("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",[`.${Ae} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ae} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ae} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ae} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ae} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ae} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ae} &`]:{backgroundColor:"$neutral400"}}}}]}),Hu=nn({width:"100%",padding:"$15 $15 $10 $15"}),Gu=nn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),_o=nn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Vu=nn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ae} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ku=ze(Mr.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:{[`& ${Ou}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Ou}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ae} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),ju=ze("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"}}}}),Xu=ze(cr,{width:"100%",background:"inherit"}),es=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${$C}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),YP=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Yu=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ae} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Zu=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ts=ze(_C,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Ju=ze("div",{display:"flex",flexWrap:"wrap"}),os=ze("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"}}}}),Ru=ze("div",{display:"flex"}),Lr=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ae} &`]:{borderTopColor:"$neutral800"}});import{i18n as kt}from"@lingui/core";import{ChevronDownIcon as OC,CloseIcon as UC,Divider as Dr,IconButton as QC,NumericTooltip as zC,QuoteCost as qC,Typography as dt}from"@rango-dev/ui";import R,{useState as nm}from"react";import{css as FC,styled as Br}from"@rango-dev/ui";var Pr=Br("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),ns=Br("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),em=Br("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),tm=Br("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),om=FC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var HC=i(t=>t.fee.isZero()?null:R.createElement(Pr,null,R.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(dt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function rm(t){let[e,o]=nm(!1),[n,r]=nm(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:c,showModalFee:u}=t,g=s?.swaps??[],d=L(),m=Pp(g);return R.createElement(R.Fragment,null,R.createElement(qC,{onClickFee:u?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:c,time:p,steps:a,tooltipGas:u?kt.t("View more info"):void 0,tooltipContainer:d}),R.createElement(ne,{container:d,open:e,header:R.createElement(tm,null,R.createElement(dt,{variant:"title",size:"medium"},kt.t("Gas & Fee Explanation")),R.createElement(QC,{onClick:()=>o(!1),variant:"ghost"},R.createElement(UC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement(em,null,R.createElement(dt,{variant:"title",size:"small"},kt.t("Details")),R.createElement(Dr,{size:10}),Object.entries(m.payable).flatMap(([f,C])=>C.map((S,y)=>{let T=`payable-fee-${y}`,k=ea(S);return R.createElement(Pr,{key:T},R.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},Yi(f,kt.t)),R.createElement(zC,{content:S.amount,container:d},R.createElement(dt,{variant:"label",size:"medium"},M(S.amount,2,2)," ",S.asset.symbol," ($",M(k,4,4),")")))})),R.createElement(Pr,{className:"total_payable_fee"},R.createElement(dt,{variant:"label",size:"medium"},kt.t("Total Payable Fee")),R.createElement(dt,{variant:"label",size:"medium"},"$",M(l,4,4))),R.createElement(ns,null),Object.keys(m.nonePayable).length&&R.createElement(dr,{triggerAnchor:"bottom",onClickTrigger:()=>r(f=>!f),trigger:R.createElement("div",{className:om()},R.createElement(dt,{size:"small",variant:"body",color:"neutral700"},n?kt.t("Hide non-payable fees"):kt.t("Show non-payable fees")),R.createElement(Dr,{size:4,direction:"horizontal"}),R.createElement(ur,{orientation:n?"up":"down"},R.createElement(OC,{size:12,color:"gray"}))),open:n},R.createElement(dt,{size:"small",variant:"title"},kt.t("Description")),R.createElement(Dr,{size:4}),R.createElement(dt,{size:"small",variant:"body",color:"neutral700"},kt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),R.createElement(Dr,{size:10}),Object.entries(m.nonePayable).map(([f,C],S)=>{let y=Bp(C),T=Yi(f,kt.t),k=`non-payable-fee-${S}`;return R.createElement(HC,{key:k,fee:y,label:T})}),R.createElement(ns,null)))))}i(rm,"QuoteCostDetails");import{i18n as sm}from"@lingui/core";import{TokenAmount as lm}from"@rango-dev/ui";import _r from"react";import{css as GC,styled as VC}from"@rango-dev/ui";var im=VC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),am=GC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function rn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return _r.createElement(im,null,_r.createElement(lm,{direction:"horizontal",label:sm.t("Swap input"),type:"input",tooltipContainer:L(),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}}),_r.createElement("div",{className:am()}),_r.createElement(lm,{direction:"horizontal",tooltipContainer:L(),label:sm.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(rn,"QuoteSummary");import{i18n as dm}from"@lingui/core";import{ChevronDownIcon as XC,ChevronRightIcon as YC,Divider as rs,Image as ZC,Tooltip as Qr,Typography as Fr}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as KC,useState as an}from"react";var pm=480,cm=768,um=1024,mm=1200,jC=i(()=>{let[t,e]=an(!1),[o,n]=an(!1),[r,a]=an(!1),[s,l]=an(!1),[p,c]=an(!1),u=i(()=>{e(window.innerWidth<=pm),n(window.innerWidth>pm&&window.innerWidth<=cm),a(window.innerWidth>cm&&window.innerWidth<=um),l(window.innerWidth>um&&window.innerWidth<=mm),c(window.innerWidth>mm)},"handleResize");return KC(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),$r=jC;var Or=4,Ur=6,sn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||L();return O.createElement(Qr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(ju,{className:n,state:a},O.createElement(ZC,{src:o,size:16})))},"ImageComponent");function fm(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||L(),c=r.length,u=Zp(r),{isTablet:g,isMobile:d}=$r();return O.createElement(Ku,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(f=>!f)}},O.createElement("div",{className:_o()},O.createElement(Fr,{variant:"body",size:"xsmall"},dm.t("Via:")),O.createElement(rs,{direction:"horizontal",size:4}),r.map((m,f)=>{let C=`item-${f}`,S=O.createElement(es,null,O.createElement(YC,{size:12,color:"black"}));return d||g?O.createElement(O.Fragment,{key:C},O.createElement(sn,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==c-1&&O.createElement(O.Fragment,null,S)):O.createElement(O.Fragment,{key:C},c<=Or||c>Or&&f<Or-1?O.createElement(O.Fragment,null,O.createElement(sn,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==c-1&&O.createElement(O.Fragment,null,S)):f===Or-1&&O.createElement(Qr,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},S,r.map((y,T)=>{let k=`image-${T}`;return T>=f&&O.createElement(O.Fragment,{key:k},O.createElement(sn,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==c-1&&O.createElement(O.Fragment,null,S))}))},O.createElement(os,{state:r.find((y,T)=>T>=f&&(y.state==="error"||y.state==="warning"))?.state},O.createElement(Fr,{size:"xsmall",variant:"body"},"+",c-f))))})),O.createElement("div",{className:_o()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:_o()},O.createElement(Fr,{variant:"body",size:"xsmall"},dm.t("Chains:")),O.createElement(rs,{direction:"horizontal",size:4}),u.map((m,f)=>O.createElement(O.Fragment,{key:m.displayName},u.length<=Ur||u.length>Ur&&f<Ur-1?O.createElement(Qr,{container:p,side:"bottom",content:m.displayName,sideOffset:4},O.createElement(sn,{content:"",src:m.image,open:!1,className:f!==0?"blockchainImage":""})):f===Ur-1&&O.createElement(Qr,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},u.map((C,S)=>S>=f&&O.createElement(sn,{key:C.displayName,content:"",src:C.image,open:!1,className:S>f?"blockchainImage":"",container:l})))},O.createElement(os,{className:"blockchainImage"},O.createElement(Fr,{size:"xsmall",variant:"body"},"+",u.length-f))))),O.createElement(rs,{direction:"horizontal",size:32}))),O.createElement(es,{orientation:a?"up":"down"},O.createElement(XC,{size:12,color:"black"}))))}i(fm,"QuoteTrigger");function as(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:c=!0,onClickAllRoutes:u,fullExpandedMode:g=!1,container:d}=t,m=h().blockchains(),{findToken:f}=h(),C=h().swappers(),{customSlippage:S,slippage:y}=h(),T=S||y,[k,x]=iT(t.expanded),b=rT(null),W=M(o.value,6,6),w=M(n.value,6,6),v=n.usdValue?M(n.usdValue,4,4):"",E=nt(o.usdValue,n.usdValue??null),A=M(E,2,2),B=It(E??0),q=i((he,Te)=>he.map(($,N)=>{let ce,ue=r?.type===3&&r.swap.swapperId===$.swapperId,$e=r?.type===4&&r.recommendedSlippages?.has(N),D=a?.type===2&&a.recommendedSlippages?.has(N),z=ue||$e,K=D;z?ce="error":K&&(ce="warning");let se=z?fo.t("Slippage Error"):fo.t("Slippage Warning");return ue&&(se=fo.t("Bridge Limit Error")),{swapper:{displayName:Go($.swapperId,C)??"",image:$.swapperLogo},from:{token:{displayName:$.from.symbol,image:$.from.logo},chain:{displayName:tt($.from.blockchain,m)??"",image:$.from.blockchainLogo},price:{value:N===0&&!Te?M(o.value,6,6):M($.fromAmount,6,6),usdValue:M(($.from.usdPrice??0)*parseFloat($.fromAmount),4,4),realValue:N===0?o.value:$.fromAmount,realUsdValue:new is($.from.usdPrice??0).multipliedBy($.fromAmount).toString()}},to:{token:{displayName:$.to.symbol,image:$.to.logo},chain:{displayName:tt($.to.blockchain,m)||"",image:$.to.blockchainLogo},price:{value:M($.toAmount,6,6),usdValue:M(($.to.usdPrice??0)*parseFloat($.toAmount),4,4),realValue:$.toAmount,realUsdValue:new is($.to.usdPrice??0).multipliedBy($.toAmount).toString()}},state:ce,alerts:z||K?F.createElement($u,{dense:g},F.createElement(JC,{variant:"alarm",type:z?"error":"warning",title:se,footer:F.createElement(Fu,null,ue&&F.createElement("div",null,F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement($o,{direction:"vertical",size:2}),F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {amount} {symbol}",values:{amount:M($.fromAmount,6,6),symbol:$?.from.symbol}}))),($e||D)&&!ue&&F.createElement("div",null,F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(N)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(N)}}})),F.createElement($o,{direction:"vertical",size:2}),F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Vo($.estimatedTimeInSeconds),fee:M(Ri($,f),2,2),internalSwaps:$.internalSwaps?q($.internalSwaps):void 0}}),"getQuoteSteps"),I=q(e?.swaps??[]),Q=I.length,te=d||L(),P=Rp(t.quote.tags||[]),_=!!u,X=Vo(Dn(e?.swaps)),Se=Rn(e?.swaps??[],f),Y=M(Se,2,2),ie=Se.gte(new is(Ip));return g?F.createElement(RC,{selected:l,fee:Y,time:X,tooltipContainer:Ho(),steps:I,tags:P,feeWarning:ie,percentageChange:A,warningLevel:B,outputPrice:{value:w,usdValue:v,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(qu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Hu()},!p&&P.length?F.createElement(F.Fragment,null,F.createElement(Ru,null,P.map((he,Te)=>{let $=`${he.value}_${Te}`;return F.createElement(F.Fragment,{key:$},F.createElement(tT,{label:he.label,value:he.value}),F.createElement($o,{size:4,direction:"horizontal"}))})),F.createElement(Lr,null),!_&&F.createElement($o,{size:4})):null,F.createElement("div",{id:"portal-root",className:Gu()},F.createElement(rm,{quote:e,time:X,fee:Y,feeWarning:ie,showModalFee:c,steps:Q}),_&&F.createElement(zu,{onClick:he=>{he.stopPropagation(),u()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Fo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},fo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Vu()},F.createElement(Zu,null,F.createElement(eT,{size:12,color:"gray"})),F.createElement(Ju,null,F.createElement(ts,{size:"small",variant:"body"},`${W} ${I[0].from.token.displayName} = `),F.createElement(gm,{content:n.value,container:te,open:n.value?void 0:!1},F.createElement(ts,{size:"small",variant:"body"},"\xA0",`${w} ${I[I.length-1].to.token.displayName}`))),F.createElement(gm,{content:n.usdValue,container:te},F.createElement($o,{size:2,direction:"horizontal"}),F.createElement(Fo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&F.createElement(nT,{tooltipContainer:te,type:"output",direction:"vertical",price:{value:w,usdValue:v,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:I[Q-1].to.token.displayName,image:I[Q-1].to.token.image},chain:{image:I[Q-1].to.chain.image},percentageChange:A,warningLevel:B}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(rn,{from:I[0].from,to:I[Q-1].to,percentageChange:A,warningLevel:B}),F.createElement($o,{size:4}))),F.createElement(Uu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:x},F.createElement(fm,{type:s,quoteRef:b,selected:l,setExpanded:x,container:te,expanded:k,steps:I}),F.createElement(Xu,{open:k},F.createElement(Yu,null),F.createElement("div",{className:Qu()},I.map((he,Te)=>{let $=`item-${Te}`;return F.createElement(oT,{type:"quote-details",key:$,tooltipContainer:te,step:he,hasSeparator:Te!==I.length-1,state:he.state})})))))}i(as,"Quote");import{Divider as pT,Skeleton as cT}from"@rango-dev/ui";import Mt from"react";import{darkTheme as aT,styled as zr}from"@rango-dev/ui";var hm=zr("div",{$$color:"$colors$neutral100",[`.${aT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),ym=zr("div",{paddingTop:"$2"}),Sm=zr("div",{paddingLeft:"$8"}),Cm=zr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Nm,Divider as ft,Skeleton as Je}from"@rango-dev/ui";import V from"react";import{css as sT,styled as Wt}from"@rango-dev/ui";var ss=Wt("div",{display:"flex"}),Tm=Wt("div",{padding:"$10 $0 $20"}),km=Wt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),vm=Wt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),xm=Wt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),wm=Wt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),bm=Wt("div",{width:"65%",display:"flex",justifyContent:"start"}),Em=Wt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Im=Wt("div",{padding:"$15 $0 $15 $0"}),Am=sT({display:"flex",justifyContent:"space-between",alignItems:"center"});function ln(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(xm,null,V.createElement(bm,null,V.createElement(Nm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),V.createElement(ft,{size:8,direction:"horizontal"}),V.createElement(Em,null,V.createElement(Je,{height:10,width:60,variant:"rounded"}),V.createElement(ft,{size:4}),V.createElement(Je,{height:15,variant:"rounded"}))),V.createElement(Je,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(ss,null,V.createElement(Je,{width:65,height:20,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:65,height:20,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:65,height:20,variant:"rounded"})),V.createElement(Lr,null),!r&&V.createElement(ft,{size:4})),V.createElement("div",{className:Am()},V.createElement(ss,null,V.createElement(Je,{width:60,height:10,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:60,height:10,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:60,height:10,variant:"rounded"})),r&&V.createElement(Je,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Tm,null,V.createElement(Je,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(km,null,V.createElement(vm,null,V.createElement(Nm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),V.createElement(ft,{direction:"horizontal",size:4}),V.createElement(Je,{height:15,width:150,variant:"rounded"})),V.createElement(ft,{size:10}),V.createElement(Je,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(ft,{size:4}),V.createElement(Im,null,n,V.createElement(wm,null),n),V.createElement(ft,{size:12})))}i(ln,"QuoteSummarySkeleton");import{ChainToken as Pm,Divider as ps,NextIcon as lT,Skeleton as qr}from"@rango-dev/ui";import Ne from"react";import{styled as pn}from"@rango-dev/ui";var Wm=pn("div",{display:"flex",alignItems:"start"}),Mm=pn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),ls=pn("div",{display:"flex",alignItems:"center",flexGrow:1}),Lm=pn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Bm=pn("div",{display:"flex",alignItems:"center"});function vt(t){let{separator:e=!0}=t;return Ne.createElement(Ne.Fragment,null,Ne.createElement(Bm,null,Ne.createElement(qr,{height:22,width:22,variant:"circular"}),Ne.createElement(ps,{direction:"horizontal",size:8}),Ne.createElement(qr,{height:15,width:148,variant:"rounded"})),Ne.createElement(Wm,null,Ne.createElement(Cm,{hideSeparator:!e}),Ne.createElement(Mm,{extraSpace:e},Ne.createElement(ls,null,Ne.createElement(Pm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ne.createElement(ps,{direction:"horizontal",size:8}),Ne.createElement(qr,{height:12,variant:"rounded"})),Ne.createElement(Lm,null,Ne.createElement(lT,{color:"gray",size:16})),Ne.createElement(ls,null,Ne.createElement(Pm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ne.createElement(ps,{direction:"horizontal",size:8}),Ne.createElement(qr,{height:12,variant:"rounded"})))))}i(vt,"StepSkeleton");function cn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Mt.createElement(hm,{expanded:o,rounded:e!=="basic"},Mt.createElement(ln,{type:e,tagHidden:n}),Mt.createElement(ym,null,Mt.createElement(cT,{height:15,variant:"rounded"})),o&&Mt.createElement(Sm,null,Mt.createElement(pT,{size:24}),Mt.createElement(vt,null),Mt.createElement(vt,null),Mt.createElement(vt,{separator:!1})))}i(cn,"QuoteSkeleton");function go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:c,selected:u,onClickAllRoutes:g,fullExpandedMode:d=!1,container:m}=t,{inputAmount:f,inputUsdValue:C,toToken:S}=G(),y=e?.outputAmount?new uT(e?.outputAmount):null,T=e?.outputAmount?tr(e?.outputAmount,nr(e)||S?.usdPrice):null,x=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Hr.createElement(Ra,null,Hr.createElement(cn,{tagHidden:l,type:o,expanded:s})):x?Hr.createElement(Ra,{onClick:()=>p?.(e)},Hr.createElement(as,{quote:e,error:r,container:m,showModalFee:c,warning:a,tagHidden:l,selected:u,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:d,input:{value:f,usdValue:C?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(go,"QuoteInfo");import{calculatePendingSwap as gT}from"@rango-dev/queue-manager-rango-preset";import{useEffect as hT}from"react";import{useRef as mT,useState as dT}from"react";var fT=2e3;function Gr({request:t}){let[e,o]=dT(!1),n=mT(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,fT)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let c=await t(l,{signal:n.current.signal});return n.current=null,c}catch(c){if(p)return await a(l);throw c}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Gr,"useFetch");function Dm(){let{fetch:t,loading:e,cancelFetch:o}=Gr({request:async(n,r)=>await $t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Dm,"useFetchConfirmQuote");function Vr(t){if(!t.swaps)throw new Error(re().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=cs(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Vr,"throwErrorIfResponseIsNotValid");function cs(t){if(Wp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Mp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Dp(t);if(o){let n=er(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(cs,"getQuoteError");function _m(t,e,o){let n=!1;t&&(n=Yp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Eo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Qp(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(bo(e)),percentageChange:M(nt(bo(t)??"",bo(e)??""),null,2)}:ta(t,e)?r.quoteUpdate={type:0}:oa(t,e)?r.quoteUpdate={type:1}:na(t,e)&&(r.quoteUpdate={type:2}));let s=zp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(_m,"generateWarnings");function Kr(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(Kr,"handleQuoteErrors");function us(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=G(),{slippage:p,customSlippage:c}=h(),u=h().getDisabledLiquiditySources(),g=h().blockchains(),d=h().tokens(),{findToken:m}=h(),f=c||p,{fetch:C,cancelFetch:S,loading:y}=Dm();return hT(()=>S,[]),{loading:y,fetch:i(async k=>{let x=k.selectedWallets,b=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let W=x.reduce((v,E)=>(v[E.chain]=E.address,v),{}),w={requestId:r?.requestId||"",selectedWallets:W,destination:b||void 0};try{return await C(w,!0).then(v=>{let{result:E}=v;Vr({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let A={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(A);let B={slippage:f.toString(),disabledSwappersGroups:u},q=_m(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:g},findToken:m,selectedWallets:x,userSlippage:f});q.quoteUpdate&&s(!1),l();let I=!!q.balance,Q=gT(o.toString(),E,Op(x),B,!I,{blockchains:g,tokens:d});return{quote:A,swap:Q,error:null,warnings:q}})}catch(v){return Kr(v)}},"fetch"),cancelFetch:S}}i(us,"useConfirmSwap");var bT=CT("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Fm}`]:{width:"$48",height:"$48"}}),ET=fs({flexGrow:1,paddingRight:"$10"}),IT=fs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),AT=fs({display:"flex",justifyContent:"space-between",alignItems:"center"});function Om(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=G(),s=wT(),[l,p]=un(""),c=!n,[u,g]=un(!1),[d,m]=un(!1),{isActiveTab:f}=pe(),C=h().getDisabledLiquiditySources(),S=xT(C),{manager:y}=yT(),{fetch:T,loading:k,cancelFetch:x}=us(),[b,W]=un({swap:null,error:null,warnings:null}),[w,v]=un(!1),E=i(async({selectedWallets:_,customDestination:X})=>{let Se=await T?.({selectedWallets:_,customDestination:X});return W(Se),Se},"onConfirmSwap"),A=i(async()=>{if(b.swap&&n)try{await y?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let _=`../${H.swaps}/${b.swap.requestId}`;s(_,{replace:!0}),setTimeout(()=>{e("")},0)}catch(_){p("Error: "+_?.message)}},"addNewSwap"),B=i(async()=>{m(!0),await A(),m(!1)},"onConfirm"),q=i(async()=>{b?.warnings?.quote&&!a?v(!0):await B()},"onStartConfirmSwap"),I=i(async()=>{W({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(_=>{W(_)}).catch(_=>console.error(_))},"onRefresh");jr(()=>{!!S.current.length&&!C.length&&I(),S.current=C},[C.length]),jr(()=>{c&&x()},[c]),jr(()=>{c&&g(c)},[c]),jr(()=>{c||T({selectedWallets:o,customDestination:r}).then(_=>W(_)).catch(_=>console.error(_))},[]),vT(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let Q=b.warnings?.quote??null,te=b.error,P=[];if(l&&P.push(We.createElement($m,{type:"error",variant:"alarm",title:l})),b.warnings?.quoteUpdate&&P.push(We.createElement($m,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&lr(b.warnings.quoteUpdate)})),Q||te){let _=`../${H.settings}`;P.push(We.createElement(on,{warning:Q,error:te,couldChangeSettings:!1,refetchQuote:I,showWarningModal:w,confirmationDisabled:!f,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await A()},onChangeSettings:()=>s(_)}))}return We.createElement(me,{header:{title:ms.t("Confirm Swap"),onWallet:()=>{let _=`../${H.wallets}`;s(_)}},footer:We.createElement(bT,null,We.createElement("div",{className:ET()},We.createElement(ST,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!b.error||!f,onClick:q},ms.t("Start Swap"))),We.createElement(Fm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!f,onClick:g.bind(null,!0)},We.createElement(kT,{size:24})))},u&&We.createElement(Su,{open:u,onClose:()=>g(!1),onCancel:x,loading:k,onCheckBalance:E}),We.createElement(ye,null,We.createElement("div",{className:AT()},We.createElement(TT,{variant:"title",size:"small"},ms.t("You get")),We.createElement("div",{className:IT()},We.createElement(Sr,{onClick:!k&&!u&&!w?I:void 0}))),We.createElement(ds,{size:"12"}),xc(P.map((_,X)=>({element:_,key:`alert-${X}`})),We.createElement(ds,{size:10})),P.length>0?We.createElement(ds,{size:10}):null,We.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:k,warning:b.warnings?.quote??null})))}i(Om,"ConfirmSwapPage");import{i18n as He}from"@lingui/core";import{useManager as JT}from"@rango-dev/queue-manager-react";import{Button as ks,darkTheme as RT,Divider as Gt,MessageBox as ek,NotFound as tk,styled as vs,Typography as Zr}from"@rango-dev/ui";import{TransactionStatus as gn}from"rango-types";import ae,{useMemo as id,useState as Jr}from"react";import{useNavigate as ok}from"react-router-dom";import{FilterIcon as DT,Popover as _T}from"@rango-dev/ui";import ho from"react";import{css as NT,darkTheme as Xr,IconButton as WT,styled as mn}from"@rango-dev/ui";var gs=mn("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Xr} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Um=mn(WT,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Xr} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Xr} &`]:{backgroundColor:"$neutral"},[`& ${gs}::before`]:{backgroundColor:"$secondary100",[`.${Xr} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Qm=mn("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),zm=mn("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),qm=NT({display:"flex",justifyContent:"space-between",alignItems:"center"}),Hm=mn("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Gm}from"@lingui/core";import{Button as MT,Divider as Vm,ListItemButton as LT,Radio as BT,RadioRoot as PT,Typography as Km}from"@rango-dev/ui";import Re from"react";function jm(t){let{filterBy:e,onClickItem:o}=t;return Re.createElement(zm,null,Re.createElement("div",{className:qm()},Re.createElement(Km,{size:"small",variant:"body"},Gm.t("Status")),Re.createElement(MT,{variant:"ghost",size:"xxsmall",onClick:()=>o("")},Gm.t("Reset"))),Re.createElement(Vm,{size:10}),Re.createElement(PT,{value:e},Re.createElement(Hm,null,t.list.map((n,r)=>Re.createElement(LT,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:Re.createElement(Re.Fragment,null,Re.createElement(Vm,{direction:"horizontal",size:4}),Re.createElement(Km,{size:"medium",variant:"body"},n.title)),start:Re.createElement(BT,{value:n.id}),onClick:o})))))}i(jm,"FilterSelectorContent");function hs(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return ho.createElement("div",null,ho.createElement(_T,{open:a,align:"end",onOpenChange:o,container:L(),content:ho.createElement(jm,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},ho.createElement(Um,{variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},ho.createElement(gs,{isSelect:!!n},ho.createElement(DT,{size:16,color:"black"}),!!n&&ho.createElement(Qm,null)))))}i(hs,"FilterSelector");import{i18n as OT}from"@lingui/core";import{Divider as Rm,GroupedVirtualizedList as UT,Skeleton as QT,SwapListItem as ed,Typography as zT}from"@rango-dev/ui";import qe,{useCallback as td,useEffect as qT,useRef as HT,useState as GT}from"react";function Xm(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(Xm,"calculateGroupsSoFar");import{css as $T,darkTheme as FT,styled as dn}from"@rango-dev/ui";var ys=$T(),Ym=dn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ss=dn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ys}`]:{$$color:"$colors$neutral600",[`.${FT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Cs=dn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Zm=dn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Jm=dn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var VT=10;function Ts(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=GT([]),l=HT(0),{swaps:p,groupCounts:c,groups:u}=n(e),g=td(Xm,[]),d=td(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,VT),s(g(c,l.current)))},[e.length]);if(qT(()=>{r||d()},[r,d]),r){let m=[1,2];return qe.createElement(qe.Fragment,null,[m,m].map((C,S)=>qe.createElement(Ss,{key:S},qe.createElement(Cs,null,qe.createElement(QT,{variant:"text",width:60,size:"small"}),qe.createElement(Rm,{size:16})),qe.createElement(Rm,{size:4}),qe.createElement(Zm,null,C.map((T,k)=>qe.createElement(ed,{isLoading:!0,key:k}))))))}return qe.createElement(UT,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>qe.createElement(Ss,null,qe.createElement(Cs,null,qe.createElement(zT,{variant:"label",size:"medium",className:ys()},u[m]))),itemContent:(m,f)=>{let C=p[m];if(!C)return null;let S=C.steps[0],y=C.steps[C.steps.length-1];return qe.createElement(Ym,{key:C.requestId},qe.createElement(ed,{requestId:C.requestId,creationTime:C.creationTime,status:C.status,onClick:o,tooltipContainer:L(),onlyShowTime:u[f]===OT.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:M(C.inputAmount,6,6),realAmount:C.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:M(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(Ts,"HistoryGroupedList");import{CloseIcon as jT,IconButton as XT,SearchIcon as YT,TextField as ZT}from"@rango-dev/ui";import fn from"react";import{styled as KT}from"@rango-dev/ui";var od=KT("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:p,...c}=t;return fn.createElement(ZT,{prefix:fn.createElement(od,null,fn.createElement(YT,{color:"black"})),suffix:!!s.length&&fn.createElement(XT,{variant:"ghost",onClick:()=>p?.(""),size:"small"},fn.createElement(jT,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...c})}i(Lt,"SearchInput");import{i18n as Yr}from"@lingui/core";import nd from"dayjs";var rd=i(t=>{let e=new Map([["today",{title:Yr.t("Today"),swaps:[]}],["week",{title:Yr.t("This week"),swaps:[]}],["month",{title:Yr.t("This month"),swaps:[]}],["year",{title:Yr.t("This year"),swaps:[]}]]);function o(p,c){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(c)}i(o,"addYearsToOutput");let n=nd();t.forEach(p=>{let c=Number(p.creationTime),u=nd(c);if(n.isSame(u,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(p);else{let g=new Date(c).getFullYear().toString();o(g,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 nk=vs("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),rk=vs("div",{display:"flex",justifyContent:"center",alignItems:"center"}),ik=vs("div",{"._typography":{color:"$neutral700",[`.${RT}&`]:{color:"$neutral900"}}}),ak=[{id:gn.SUCCESS,title:He.t("Complete")},{id:gn.RUNNING,title:He.t("Running")},{id:gn.FAILED,title:He.t("Failed")}],sk=i((t,e)=>t?.length?t.filter(o=>St(o.fromBlockchain,e)||St(o.toBlockchain,e)||St(o.toSymbol,e)||St(o.fromSymbol,e)).length:!1,"isStepContainsText");function ad(){let t=ok(),{manager:e,state:o}=JT(),n=it(e).map(({swap:k})=>k),[r,a]=Jr(""),[s,l]=Jr(!1),p=!o.loadedFromPersistor,[c,u]=Jr(""),[g,d]=Jr(!1),m=i(k=>{let x=k.target.value;a(x)},"searchHandler"),f=id(()=>!r&&!c?n:n.filter(k=>{let{inputAmount:x,status:b,steps:W,requestId:w}=k;return(!r||St(x,r)||St(b,r)||sk(W,r)||St(w,r))&&(!c||c===b)}),[n,r,c]),C=!f?.length&&!p,S=i(()=>d(!1),"onCloseModal"),y=i(async()=>{try{await e?.clearQueue(),d(!1)}catch(k){console.log(k)}},"onClear"),T=id(()=>!n.some(k=>k.status===gn.SUCCESS||k.status===gn.FAILED),[n]);return ae.createElement(me,{header:{title:He.t("History"),suffix:ae.createElement(Ut,null,ae.createElement(ks,{disabled:T,variant:"ghost",size:"xsmall",onClick:()=>d(!0)},ae.createElement(Zr,{size:"medium",variant:"label",color:"error"},He.t("Clear all Txs"))))}},ae.createElement(ye,null,ae.createElement(rk,null,ae.createElement(Lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:He.t("Search Transaction"),autoFocus:!0,onChange:m,style:{height:36},value:r}),ae.createElement(Gt,{size:10,direction:"horizontal"}),ae.createElement(hs,{filterBy:c,open:s,onOpenChange:k=>l(k),onClickItem:k=>u(k),list:ak})),ae.createElement(Gt,{size:"16"}),ae.createElement(nk,null,C&&ae.createElement(Jm,null,ae.createElement(Gt,{size:32}),ae.createElement(tk,{title:r?He.t("No results found"):He.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?He.t("Try using different keywords"):He.t("Your transaction history is stored locally and will appear here after you start a swap")})),!C&&ae.createElement(Ts,{list:f,onSwapClick:t,groupBy:rd,isLoading:p}))),ae.createElement(ne,{open:g,onClose:S,container:L()},ae.createElement(Gt,{size:20}),ae.createElement(ek,{type:"warning",title:He.t("Clear History"),description:ae.createElement(ik,null,ae.createElement(Zr,{variant:"body",size:"medium"},He.t("This would clear all succeeded/failed transactions from widget. Do you wish to proceed?")),ae.createElement(Gt,{size:"24"}),ae.createElement(Zr,{variant:"body",size:"small"},He.t("Hint: This does not clear your transaction history on blockchain. Only hides them in this page.")))}),ae.createElement(Gt,{size:40}),ae.createElement(Gt,{size:10}),ae.createElement(ks,{variant:"contained",type:"primary",size:"large",onClick:y},He.t("Yes, Clear history")),ae.createElement(Gt,{size:10}),ae.createElement(ks,{variant:"outlined",type:"primary",size:"large",onClick:S},ae.createElement(Zr,{variant:"title",size:"medium",color:"primary"},He.t("No, Cancel")))))}i(ad,"HistoryPage");import{i18n as Ek}from"@lingui/core";import{Button as Ik,Divider as bd,styled as Ak,WarningIcon as Nk}from"@rango-dev/ui";import Wk from"bignumber.js";import je,{useEffect as Ed,useState as Id}from"react";import{useNavigate as Mk}from"react-router-dom";import{i18n as dk}from"@lingui/core";import{Header as fk}from"@rango-dev/ui";import Vt,{useEffect as gk,useState as hk}from"react";import{i18n as pk}from"@lingui/core";import{Divider as ws,FullExpandedQuote as ck,Typography as uk}from"@rango-dev/ui";import ve from"react";import{styled as xs}from"@rango-dev/ui";var sd=xs("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),ld=xs("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),pd=xs("div",{width:"146px"});import{i18n as hn}from"@lingui/core";import{Select as lk}from"@rango-dev/ui";import cd from"react";function Rr(t){let{updateQuotePartialState:e,sortStrategy:o}=G(),n=[{value:"SMART",label:hn.t("Smart Routing")},{value:"FEE",label:hn.t("Lowest Fee")},{value:"SPEED",label:hn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:hn.t("Maximum Return")},{value:"PRICE",label:hn.t("Maximum Output")}];return cd.createElement(pd,null,cd.createElement(lk,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Rr,"SelectStrategy");var ud=3;function yn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:c,updateQuotePartialState:u,fromToken:g,toToken:d,sortStrategy:m,error:f}=G(),{slippage:C,customSlippage:S}=h(),{findToken:y}=h(),T=l||L(),k=!!c&&c.results.length,x=S??C,b=i(v=>{if(!g||!d||!c)return null;let E={requestAmount:c.requestAmount,...v};return Eo(E,{fromToken:g,toToken:d,userSlippage:x,findToken:y})},"getQuoteWarning"),W=f?.type===0||f?.type===1,w=c?.results?ir(m,c?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(ld,null,ve.createElement(uk,{size:"xmedium",variant:"title"},pk.t("Sort by")),ve.createElement(Rr,{container:T})),ve.createElement(ws,{size:"10"})),e&&Array.from({length:ud},(v,E)=>ve.createElement(ve.Fragment,{key:E},s?ve.createElement(ck,{loading:!0}):ve.createElement(cn,{tagHidden:!1,type:"list-item",expanded:!1}),E!==ud-1&&ve.createElement(ws,{size:16}))),!e&&ve.createElement(ve.Fragment,null,k?w.map((v,E)=>{let A=b(v),B=cs(v.swaps),q=w.length-1===E;return ve.createElement(ve.Fragment,{key:v.requestId},ve.createElement(go,{showModalFee:r,container:T,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:c.requestAmount},loading:e,error:B?.options||null,warning:A,fullExpandedMode:s,onClick:I=>{B||u("warning",A),u("error",B?.options||null),o(I)},type:"list-item"}),!q&&ve.createElement(ws,{size:16}))}):W&&ve.createElement(sd,null,ve.createElement(en,{size:s?"large":"small",error:f,fetch:n}))))}i(yn,"Quotes");import{darkTheme as mk,styled as md}from"@rango-dev/ui";var dd=md("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${mk} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),fd=md("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var yk=100;function bs(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=hk(!1),p=s?"":"is-hidden",{config:c}=h(),u=c?.variant==="full-expanded",g=Ho();return gk(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},yk):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Vt.createElement(dd,{expandMode:c?.variant==="full-expanded"?"full":"default",className:`${p} ${kr()}`,id:Ce.EXPANDED_BOX_ID},Vt.createElement(fk,{title:dk.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Rr,{container:g}),Vt.createElement(io,{container:g,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(fd,null,Vt.createElement(yn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Ho(),onClickOnQuote:n,fullExpandedMode:u})))}i(bs,"ExpandedQuotes");import{i18n as kd}from"@lingui/core";import{SwapInput as vd}from"@rango-dev/ui";import Sn from"react";import{ReverseIcon as Tk}from"@rango-dev/ui";import Is from"react";import{keyframes as Sk,styled as gd}from"@rango-dev/ui";var Es=450,Ck=Sk({"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)"}}),hd=gd("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),yd=gd("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${Ck} ${Es}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 As(){let t=G.use.switchFromAndTo();return Is.createElement(hd,null,Is.createElement(yd,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Es),t()}},Is.createElement(Tk,{size:12})))}i(As,"SwitchFromAndToButton");import{styled as Sd}from"@rango-dev/ui";var Cd=Sd("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Td=Sd("div",{position:"relative"});function Ns(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:c,inputAmount:u,inputUsdValue:g,outputAmount:d,outputUsdValue:m,selectedQuote:f}=G(),{connectedWallets:C,getBalanceFor:S}=oe(),y=a?S(a):null,T=Qn(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",x=!!s&&Zl(C,s.name),b=!Ji(f,u,g),W=!Ji(f,u,m),w=!g||!m||!m.gt(0)?null:nt(g.toString(),m.toString());return Sn.createElement(Cd,null,Sn.createElement(Td,null,Sn.createElement(vd,{label:kd.t("From"),mode:"From",onInputChange:c,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:u,usdValue:b?void 0:M(g,4,4),realUsdValue:b?void 0:g?.toString(),error:b?re().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:L(),onSelectMaxBalance:()=>{c(k.split(",").join(""))},anyWalletConnected:C.length>0}),Sn.createElement(As,null)),Sn.createElement(vd,{sharpBottomStyle:!r&&(!!f||e),label:kd.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(nt(g,m),2,2),warningLevel:It(w??0),price:{value:M(d,6,6),usdValue:W?void 0:M(m,4,4),realValue:d?.toString(),realUsdValue:W?void 0:m?.toString(),error:W?re().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:L()}))}i(Ns,"Inputs");import{useCallback as kk,useEffect as vk,useRef as xk,useState as wk}from"react";function xd(){let{fetch:t,loading:e,cancelFetch:o}=Gr({request:async(n,r)=>await $t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(xd,"useFetchAllQuotes");var bk=600;function ei({refetchQuote:t}){let{fetch:e,cancelFetch:o}=xd(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=oe.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:c,inputUsdValue:u,selectedQuote:g,sortStrategy:d,resetQuote:m,error:f,warning:C,setSelectedQuote:S,updateQuotePartialState:y}=G(),{slippage:T,customSlippage:k,affiliatePercent:x,affiliateRef:b,affiliateWallets:W,fetchStatus:w}=h(),v=h().getLiquiditySources(),E=h().getDisabledLiquiditySources(),A=h().excludeLiquiditySources(),{findToken:B}=h(),[q,I]=wk(!0),Q=xk(c),te=k??T,_=!l||!p||Jt(l,p)||!Ko(c),X=i(ie=>{I(ie)},"resetState"),Se=i(ie=>{let{fromToken:he,toToken:Te,inputAmount:$,liquiditySources:N,excludeLiquiditySources:ce,disabledLiquiditySources:ue,slippage:$e,affiliateRef:D,affiliatePercent:z,affiliateWallets:K}=ie;if(q||X(!0),!_&&he&&Te){m();let se=Fp({fromToken:he,toToken:Te,inputAmount:$,liquiditySources:N,excludeLiquiditySources:ce,disabledLiquiditySources:ue,wallets:s,slippage:$e,affiliateRef:D,affiliatePercent:z,affiliateWallets:K,enableCentralizedSwappers:a});cp("experimentalRoute",r)&&(se.experimental=!0),e(se).then(ee=>{let le=ir(d,ee.results),Ee=Jp(g,le,ee.requestAmount);I(!1),y("quotes",ee),S(Ee),Vr({diagnosisMessages:ee.diagnosisMessages,requestId:Ee?.requestId||"",swaps:Ee?.swaps});let Nn=Ee&&Eo(Ee,{fromToken:he,toToken:Te,userSlippage:te,findToken:B});y("warning",Nn)}).catch(ee=>{let{error:le}=Kr(ee);(le?.type===0||le?.type===1)&&m(),le?.type!==2&&(y("error",le),I(!1))})}},"fetch"),Y=kk($l(ie=>{Se(ie)},bk),[_]);return vk(()=>{if(!t){I(!1);return}if(w!=="success")return;if(_){I(!1),(g||f||C)&&m();return}if(!Ko(c)||u?.eq(0)){X(!1),o();return}m(),X(!0);let ie=Se;return Q.current&&Q.current!=c&&(ie=Y),Q.current=c,ie({inputAmount:c,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:x,affiliateWallets:W}),o},[w,c,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,_,v?.length,n,E.length,te,b,x,JSON.stringify(W)]),{fetch:()=>Se({inputAmount:c,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:x,affiliateWallets:W}),loading:q}}i(ei,"useSwapInput");function wd(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ke.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(wd,"emitPreventableEvent");var Lk=Ak("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Bk=300;function Ad(){let t=Mk(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:c,resetQuoteWallets:u,setQuoteWarningsConfirmed:g,updateQuotePartialState:d}=G(),[m,f]=Id(!1),{isLargeScreen:C,isExtraLargeScreen:S}=$r(),{fetch:y,loading:T}=ei({refetchQuote:a}),{config:k,fetchStatus:x}=h(),{connectedWallets:b}=oe(),{isActiveTab:W}=pe(),[w,v]=Id(!1),A=Lp({fetchMetaStatus:x,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=rp(C,S,k?.variant),q=!!n&&!!e&&!!o&&new Wk(n).gt(0)&&!Kp(e,o),I=q&&x==="success"&&T,P=(!B||B&&p?.results.length)&&(l||s);Ed(()=>{u(),d("refetchQuote",!0)},[]),Ed(()=>{f(q)},[q]);let _=(r||s)&&!w?y:void 0,X=i(Y=>{B&&m?(f(!1),setTimeout(()=>{t(Y)},Bk)):t(Y)},"onHandleNavigation"),Se=i(Y=>{r?.requestId!==Y.requestId&&(v(!1),c(Y))},"onClickOnQuote");return je.createElement(Lk,null,je.createElement(me,{height:"auto",footer:je.createElement(Ik,{type:"primary",size:"large",disabled:A.disabled||!W,prefix:A.action==="confirm-warning"&&je.createElement(Nk,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?wd({type:"clickConnectWallet"},()=>X(H.wallets)):A.action==="confirm-warning"?v(!0):X(H.confirmSwap)}},A.title),header:{onWallet:()=>{X(H.wallets)},hasBackButton:!1,title:k.title||Ek.t("Swap"),suffix:je.createElement(io,{hidden:B?["refresh"]:void 0,onClickRefresh:_,onClickHistory:()=>X(H.swaps),onClickSettings:()=>{X(H.settings)}})}},je.createElement(ye,null,je.createElement(Ns,{fetchingQuote:I,fetchMetaStatus:x,isExpandable:B,onClickToken:Y=>{X(Y==="from"?H.fromSwap:H.toSwap)}}),je.createElement(bd,{size:"2"}),B?null:je.createElement(go,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),X(H.routes)}:void 0}),P?je.createElement(je.Fragment,null,je.createElement(bd,{size:"10"}),je.createElement(on,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:w,confirmationDisabled:!W,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),g(!0),X(H.confirmSwap)},onChangeSettings:()=>X(H.settings)})):null)),B?je.createElement(bs,{loading:I,onClickOnQuote:Se,fetch:y,onClickRefresh:_,isVisible:m}):null)}i(Ad,"Home");import{i18n as Nd}from"@lingui/core";import{Alert as Pk,Divider as Dk,List as _k,ListItemButton as $k,Radio as Fk,RadioRoot as Ok,Typography as Uk}from"@rango-dev/ui";import xt from"react";function Kt(){let{setLanguage:t,language:e,config:o}=h(),n=mp,r=o?.language||wo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||wo),resetLanguage:()=>t(null)}}i(Kt,"useLanguage");function Wd(){let{activeLanguage:t,changeLanguage:e,languages:o}=Kt(),n=rt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:xt.createElement(Uk,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:xt.createElement(Fk,{value:s}),start:xt.createElement(p,null)}});return xt.createElement(me,{header:{title:Nd.t("Language")}},xt.createElement(ye,null,xt.createElement(Pk,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),xt.createElement(Dk,{size:"8"}),xt.createElement(Ok,{value:t},xt.createElement(_k,{type:xt.createElement($k,{title:Nd.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Wd,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as Gk,Checkbox as Vk,Image as Kk,ListItemButton as jk,NotFound as Xk,Typography as Yk}from"@rango-dev/ui";import Ge,{useState as Zk}from"react";import{Checkbox as qk,Skeleton as Ld}from"@rango-dev/ui";import Tn from"react";import{styled as Ws}from"@rango-dev/ui";var Cn=Ws("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ms=Ws("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ls=Ws("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as Qk,styled as zk}from"@rango-dev/ui";var Md=zk(Qk,{height:61});var Hk=30;function Bs(){return Tn.createElement(Cn,null,Array.from(Array(Hk),(t,e)=>Tn.createElement(Md,{hasDivider:!0,key:e,start:Tn.createElement(Ld,{variant:"circular",width:35,height:35}),title:Tn.createElement(Ld,{variant:"text",size:"large",width:90}),end:Tn.createElement(qk,{checked:!1})})))}i(Bs,"LoadingLiquiditySourceList");function Ps({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=Zk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Vn(o,n),c={Exchanges:Bt.t("Exchanges"),Bridges:Bt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let g=p.filter(y=>u.includes(y.type)),d=g.length===g.filter(y=>y.selected).length,m=i(()=>{g.forEach(y=>{d?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),f=g.map(y=>{let{selected:T,groupTitle:k,logo:x}=y;return{start:Ge.createElement(Kk,{src:x,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Ge.createElement(Vk,{checked:T,disabled:l}),title:Ge.createElement(Yk,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),C=i(y=>{let T=y.target.value;a(T)},"searchHandler"),S=f;return r&&(S=f.filter(y=>St(y.groupTitle,r))),Ge.createElement(me,{header:{title:Bt.t(t),suffix:Ge.createElement(Ms,null,Ge.createElement(Gk,{variant:"ghost",size:"xsmall",onClick:m},d?Bt.t("Deselect all"):Bt.t("Select all")))}},Ge.createElement(ye,{view:!0},Ge.createElement(Lt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:c[t]}),onChange:C}),e==="loading"&&Ge.createElement(Bs,null),!S.length&&r?Ge.createElement(Ls,null,Ge.createElement(Xk,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&Ge.createElement(Cn,{disabled:l},S.map(y=>{let{groupTitle:T,...k}=y;return Ge.createElement(Ge.Fragment,{key:y.id},Ge.createElement(jk,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Ps,"LiquiditySourcePage");import{i18n as Jk}from"@lingui/core";import ti from"react";import{useNavigate as Rk}from"react-router-dom";function Bd(){let t=Rk(),e=rt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=G(),{fetch:l,loading:p}=ei({refetchQuote:n}),c=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${H.settings}`,g=`../${H.wallets}`;return ti.createElement(me,{header:{onWallet:()=>{t(g),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Jk.t("Routes"),suffix:ti.createElement(io,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},ti.createElement(ye,null,ti.createElement(yn,{fetch:l,loading:p,onClickOnQuote:c})))}i(Bd,"RoutesPage");import{i18n as Qd}from"@lingui/core";import{Divider as zd,getCategoriesCount as lv,SelectableCategoryList as pv}from"@rango-dev/ui";import Pt,{useState as qd}from"react";import{i18n as Ds}from"@lingui/core";import{Divider as Od,Image as nv,ListItemButton as rv,NotFound as iv,Typography as Ud}from"@rango-dev/ui";import st,{useEffect as av,useState as sv}from"react";var Pd=i((t,e,o)=>t.filter(n=>Ln(n.type,o)).filter(n=>bt(n.name,e)||bt(n.displayName,e)),"filterBlockchains");import{ImageContainer as ev,styled as Dd}from"@rango-dev/ui";var _d=Dd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),oi=Dd(Zo,{padding:0,margin:0,listStyle:"none",[`& ${ev}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as tv,Skeleton as $d}from"@rango-dev/ui";import ni from"react";var ov=20;function Fd(){return ni.createElement(oi,null,Array.from(Array(ov),t=>ni.createElement(tv,{key:t,hasDivider:!0,start:ni.createElement($d,{variant:"circular",width:35,height:35}),title:ni.createElement($d,{variant:"text",size:"large",width:90})})))}i(Fd,"LoadingBlockchainList");function _s(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=sv(e),{fetchStatus:l}=h();av(()=>{s([...Pd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?st.createElement(st.Fragment,null,st.createElement(Od,{size:32}),st.createElement(iv,{title:Ds.t("No results found"),description:Ds.t("Try using different keywords")})):st.createElement(oi,{as:"ul",key:`${r}-${o}`},a.map(c=>st.createElement(rv,{key:`${c.name}-${c.chainId}`,hasDivider:!0,onClick:()=>n(c),start:st.createElement(nv,{src:c.logo,size:30}),title:st.createElement(Ud,{variant:"title",size:"medium"},c.displayName),id:c.chainId}))),"renderList");return st.createElement(_d,null,st.createElement(Ud,{variant:"label",size:"large"},Ds.t("Select Blockchain")),st.createElement(Od,{size:4}),l==="loading"&&st.createElement(Fd,null),l==="success"&&p())}i(_s,"BlockchainList");function $s(t){let{type:e}=t,o=rt(),[n,r]=qd(""),[a,s]=qd("ALL"),l=G.use.setToBlockchain(),p=G.use.setFromBlockchain(),c=h().fetchStatus,u=h().blockchains({type:e}),d=lv(u)!==1;return Pt.createElement(me,{header:{title:Qd.t("Select Blockchain")}},Pt.createElement(ye,{view:!0},d&&Pt.createElement(Pt.Fragment,null,Pt.createElement(pv,{setCategory:s,category:a,blockchains:u,isLoading:c==="loading"}),Pt.createElement(zd,{size:24})),Pt.createElement(Lt,{value:n,autoFocus:!0,placeholder:Qd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Pt.createElement(zd,{size:16}),Pt.createElement(_s,{list:u,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i($s,"SelectBlockchainPage");import{i18n as li}from"@lingui/core";import{Divider as uf}from"@rango-dev/ui";import yo,{useState as Ev}from"react";import{useNavigate as Iv}from"react-router-dom";import{i18n as Us}from"@lingui/core";import{BlockchainsChip as ri,Divider as Kd,Image as jd,Skeleton as fv,Tooltip as gv,Typography as Qs}from"@rango-dev/ui";import _e from"react";import{useEffect as mv}from"react";var Hd=["ETH","COSMOS","OSMOSIS"];function Fs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(cv),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 c=n[p];s=s.filter(u=>c.name!==u)}}n.sort(uv(s)),r=n.splice(a)}return{list:n,more:r}}i(Fs,"prepare");function cv(t,e){let o=Hd,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(cv,"sortByMostUsedBlockchains");function uv(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(uv,"generateSortByPreferredBlockchainsFor");function Gd(t,e){return!!e.list.find(o=>o.name===t)}i(Gd,"isInVisibleList");function Os(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();mv(()=>{if(e?.selected){let a=Fs(t,o,e);Gd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Fs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Os,"usePrepareBlockchainList");import{styled as dv}from"@rango-dev/ui";var Vd=dv("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var hv=12;function zs(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Os(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=G.use.resetToBlockchain(),c=G.use.resetFromBlockchain(),u=s.more.length>0,g=s.more.length===1,d=!g&&u;return _e.createElement(_e.Fragment,null,_e.createElement(Kd,{size:12}),_e.createElement(Qs,{variant:"label",size:"large"},Us.t("Select Blockchain")),_e.createElement(Kd,{size:12}),_e.createElement(Vd,null,l==="loading"&&Array.from(Array(hv),m=>_e.createElement(fv,{key:m,variant:"rounded",height:50})),l==="success"&&_e.createElement(_e.Fragment,null,_e.createElement(ri,{selected:!n,onClick:()=>{o==="from"?c():p()}},_e.createElement(Qs,{variant:"body",size:"xsmall",color:"secondary500"},Us.t("All"))),s.list.map(m=>_e.createElement(gv,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:L()},_e.createElement(ri,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},_e.createElement(jd,{src:m.logo,size:30})))),g?_e.createElement(ri,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},_e.createElement(jd,{src:s.more[0].logo,size:30})):null,d?_e.createElement(ri,{onClick:a,key:"more-blockchains"},_e.createElement(Qs,{variant:"body",size:"xsmall",color:"secondary500"},Us._("More +{count}",{count:s.more.length}))):null)))}i(zs,"BlockchainsSection");import{i18n as Js}from"@lingui/core";import{darkTheme as af,Divider as Uo,ExternalLinkIcon as Cv,Image as Tv,ListItemButton as kv,NotFound as vv,PinIcon as xv,Skeleton as sf,Typography as si,VirtualizedList as wv}from"@rango-dev/ui";import j,{useEffect as lf,useState as pf}from"react";import{Divider as nf,ListItem as Sv,Skeleton as kn}from"@rango-dev/ui";import gt from"react";import{css as Oo,darkTheme as Xd,ImageContainer as yv,styled as lt,Typography as Yd}from"@rango-dev/ui";var qs=Oo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Hs=Oo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Gs=Oo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Vs=Oo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Xd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ks=Oo({}),js=Oo(),Zd=lt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Xs=lt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ii=lt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Hs}`]:{[`& .${Vs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ks}`]:{bottom:"-15px"},[`& .${qs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Gs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ys=lt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Zs=lt(Yd,{}),Jd=lt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${js}`]:{$$color:"$colors$neutral600",[`.${Xd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ai=lt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),lz=lt("div",{display:"flex",alignItems:"center"}),Rd=lt("div",{position:"relative",[`& ${yv}`]:{borderRadius:"$xm",overflow:"hidden"}}),ef=lt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),tf=lt(Yd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),of=lt("a",{"& svg:hover":{color:"$colors$info"}});function rf(t){return gt.createElement(ii,null,Array.from(Array(t.size),e=>gt.createElement(Sv,{key:e,hasDivider:!0,start:gt.createElement(kn,{variant:"circular",width:35,height:35}),end:gt.createElement(ai,null,gt.createElement(kn,{variant:"text",size:"large",width:70}),gt.createElement(nf,{size:4}),gt.createElement(kn,{variant:"text",size:"medium",width:50})),title:gt.createElement("div",null,gt.createElement(kn,{variant:"text",size:"large",width:90}),gt.createElement(nf,{size:4}),gt.createElement(kn,{variant:"text",size:"medium",width:90}))})))}i(rf,"LoadingTokenList");var Rs=20,bv=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return j.createElement("div",{className:Hs()},o?j.createElement("div",{className:qs()},o):j.createElement(Xs,{className:Gs()},j.createElement(si,{variant:"title",size:"xmedium"},r.symbol),j.createElement(Uo,{direction:"horizontal",size:4}),j.createElement(Ys,{css:a},j.createElement(Zs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&j.createElement("div",{className:`${Vs()} ${!o&&Ks()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",j.createElement(Uo,{size:4,direction:"horizontal"}),j.createElement(of,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},j.createElement(Cv,{size:12}))))},"renderDesc");function cf(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=pf(e),l=h().fetchStatus,p=h().blockchains(),[c,u]=pf(!0),{getBalanceFor:g,loading:d}=oe(),{isTokenPinned:m}=h(),f=i(()=>{s(e.slice(0,a.length+Rs))},"loadNextPage");lf(()=>{u(e.length>a.length)},[a.length]),lf(()=>{s(e.slice(0,Rs))},[e.length,r]);let C=i(()=>!a.length&&o?j.createElement(j.Fragment,null,j.createElement(Uo,{size:32}),j.createElement(vv,{title:Js.t("No results found"),description:Js.t("Try using different keywords")})):j.createElement(wv,{endReached:c?f:void 0,itemContent:S=>{let y=a[S],T=Qn(g(y)),k=y.address||"",x=p.find(v=>v.name===y.blockchain),b=ha(x.color,"main"),W={$$color:b.main150,[`.${af} &`]:{$$color:b.main750},backgroundColor:"$$color"},w={$$color:b.main750,[`.${af} &`]:{$$color:b.main150},color:"$$color"};return j.createElement("div",{style:{paddingRight:5}},j.createElement(kv,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":S,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[S]),start:j.createElement(Rd,null,j.createElement(Tv,{src:y.image,size:30}),m(y,t.type)&&j.createElement(ef,null,j.createElement(xv,{size:12,color:"gray"}))),title:x?.type==="COSMOS"||y.name||!y.name&&!k?j.createElement(Xs,null,j.createElement(si,{variant:"title",size:"xmedium"},y.symbol),j.createElement(Uo,{direction:"horizontal",size:4}),j.createElement(Ys,{css:W},j.createElement(Zs,{variant:"body",size:"xsmall",css:w},y.blockchain))):void 0,description:x?.info&&k&&x.type!=="COSMOS"?bv({address:k,token:a[S],customCssForTag:W,customCssForTagTitle:w,name:y.name,url:x.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:d?j.createElement(ai,null,j.createElement(sf,{variant:"text",size:"large",width:70}),j.createElement(Uo,{size:4}),j.createElement(sf,{variant:"text",size:"medium",width:50})):T&&j.createElement(Jd,null,j.createElement(tf,{variant:"title",size:"small"},T.amount),j.createElement("div",null),T.usdValue&&j.createElement(si,{variant:"body",className:js(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return j.createElement(Zd,null,j.createElement(si,{variant:"label",size:"large"},Js.t("Select Token")),j.createElement(Uo,{size:4}),l==="loading"&&j.createElement(rf,{size:Rs}),l==="success"&&j.createElement(ii,{as:"ul"},C()))}i(cf,"TokenList");function el(t){let{type:e}=t,o=Iv(),n=rt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:c}=G(),u=oe.use.getBalanceFor(),[g,d]=Ev(""),f=(e==="source"?r:a)?.name??"",C=h().blockchains({type:e}),S=h().tokens({type:e,blockchain:f,searchFor:g,getBalanceFor:u}),y=i(x=>{e==="source"?p(x):c(x)},"updateBlockchain"),T=i(x=>{e==="source"?s({token:x,meta:{blockchains:C,tokens:S}}):l({token:x,meta:{blockchains:C,tokens:S}})},"updateToken"),k={source:li.t("Source"),destination:li.t("Destination")};return yo.createElement(me,{header:{title:li.t("Swap {type}",{type:k[e]})}},yo.createElement(ye,null,yo.createElement(zs,{blockchains:C,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(H.blockchains),onChange:x=>{y(x)}}),yo.createElement(uf,{size:24}),yo.createElement(Lt,{value:g,autoFocus:!0,placeholder:li.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:x=>d(x.target.value)}),yo.createElement(uf,{size:16}),yo.createElement(cf,{list:S,selectedBlockchain:f,searchedFor:g,type:e,onChange:x=>{T(x);let b=C.find(W=>x.blockchain===W.name);b&&y(b),n()}})))}i(el,"SelectSwapItemsPage");import{i18n as rl}from"@lingui/core";import{Alert as Jv,Button as Rv,styled as ex}from"@rango-dev/ui";import So from"react";import{useInRouterContext as tx,useSearchParams as ox}from"react-router-dom";import{i18n as yf}from"@lingui/core";import{Divider as Mv,InfoIcon as Lv,TextField as Bv,Tooltip as Pv,Typography as Sf}from"@rango-dev/ui";import ht from"react";import{Chip as Av,styled as vn,TextField as Nv}from"@rango-dev/ui";var mf=vn("div",{paddingTop:"$5",padding:"$10 $5"}),df=vn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Nv}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),ff=vn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),pi=vn("div",{maxWidth:"280px",padding:"$10"}),gf=vn(Av,{width:"61px",flexShrink:0});import{i18n as tl}from"@lingui/core";import{Typography as Wv}from"@rango-dev/ui";import xn from"react";function hf(){return xn.createElement(pi,null,xn.createElement(Wv,{variant:"label",size:"medium",color:"neutral700"},tl.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),xn.createElement("br",null),xn.createElement("br",null),xn.createElement("b",null,tl.t("Warning")),":",tl.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(hf,"SlippageTooltipContent");function ol(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ht.createElement(mf,null,ht.createElement(ff,null,ht.createElement(Sf,{variant:"title",size:"xmedium"},yf.t("Slippage tolerance per swap")),ht.createElement(Mv,{direction:"horizontal",size:4}),ht.createElement(Pv,{container:L(),side:"top",sideOffset:4,content:ht.createElement(hf,null)},ht.createElement(Lv,{color:"gray"}))),ht.createElement(df,null,dp.map((r,a)=>{let s=`slippage-${a}`;return ht.createElement(gf,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ht.createElement(Bv,{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>=yp&&s<=hp?n(s):n(null)},suffix:o&&ht.createElement(Sf,{variant:"body",size:"small"},"%"),placeholder:yf.t("Custom")})))}i(ol,"Slippage");import{i18n as wt}from"@lingui/core";import{AutoThemeIcon as Cf,BridgesIcon as Dv,ChevronRightIcon as nl,DarkModeIcon as Tf,Divider as ci,ExchangeIcon as _v,InfinityIcon as $v,InfoIcon as Fv,LanguageIcon as Ov,LightModeIcon as kf,List as Uv,ListItem as Qv,ListItemButton as zv,Skeleton as qv,styled as Hv,Switch as Gv,Tabs as Vv,Tooltip as Kv,Typography as pt}from"@rango-dev/ui";import U from"react";import{useNavigate as jv}from"react-router-dom";var Xv=Hv("div",{width:"202px",height:"$40"}),Yv=[{id:"light",icon:U.createElement(kf,{color:"black",size:24}),tooltip:U.createElement(pt,{size:"xsmall",variant:"body"},wt.t("Light"))},{id:"dark",icon:U.createElement(Tf,{color:"black",size:24}),tooltip:U.createElement(pt,{size:"xsmall",variant:"body"},wt.t("Dark"))},{id:"auto",icon:U.createElement(Cf,{color:"black",size:24}),tooltip:U.createElement(pt,{size:"xsmall",variant:"body"},wt.t("Auto"))}],Zv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Cf,{...e});case"dark":return U.createElement(Tf,{...e});default:return U.createElement(kf,{...e})}},"getThemeIcon");function vf(){let t=jv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Kt(),s=a.find(Q=>Q.local===r)?.label,l=h().fetchStatus,p=h().swappers(),c=h().getDisabledLiquiditySources(),{config:{features:u}}=h(),g=ot("theme",u),d=ot("liquiditySource",u),m=ot("language",u),f=h().infiniteApprove,C=h().toggleInfiniteApprove,S=Vn(p,c),y=S.filter(Q=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(Q.type)),T=y.length,k=y.filter(Q=>Q.selected).length,x=S.filter(Q=>Q.type==="DEX"),b=x.length,W=x.filter(Q=>Q.selected).length,w=i((Q,te)=>{switch(l){case"loading":return U.createElement(qv,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(pt,{variant:"body",size:"medium",color:"$error500"},wt.t("Loading failed"));default:return U.createElement(pt,{variant:"body",size:"medium"},`${Q} / ${te}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Bridges")),end:U.createElement(U.Fragment,null,w(k,T),U.createElement(ci,{direction:"horizontal",size:8}),U.createElement(nl,{color:"black"})),onClick:()=>t(H.bridges),start:U.createElement(Dv,{color:"gray",size:16})},E={id:"exchange-item",title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Exchanges")),end:U.createElement(U.Fragment,null,w(W,b),U.createElement(ci,{direction:"horizontal",size:8}),U.createElement(nl,{color:"black"})),start:U.createElement(_v,{color:"gray",size:16}),onClick:()=>t(H.exchanges)},A={id:"language-item",title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Language")),start:U.createElement(Ov,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(pt,{variant:"body",size:"medium"},s),U.createElement(ci,{direction:"horizontal",size:8}),U.createElement(nl,{color:"black"})),onClick:()=>t(H.languages)},B={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Infinite approval")),U.createElement(ci,{direction:"horizontal",size:4}),U.createElement(Kv,{side:"top",sideOffset:4,container:L(),content:U.createElement(pi,null,U.createElement(pt,{variant:"label",size:"medium",color:"neutral700"},wt.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.")))},U.createElement(Fv,{color:"gray"}))),start:U.createElement($v,{color:"gray",size:16}),end:U.createElement(Gv,{checked:f}),onClick:C},q={id:"theme-item",type:U.createElement(Qv,null),title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Theme")),end:U.createElement(Xv,null,U.createElement(Vv,{container:L(),items:Yv,value:n,onChange:Q=>o(Q.id),type:"primary",borderRadius:"small"})),start:Zv(n)},I=d?[]:[v,E];return m||I.push(A),I.push(B),!e?.singleTheme&&!g&&I.push(q),U.createElement(Uv,{type:U.createElement(zv,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(vf,"SettingsLists");var nx=ex("div",{paddingLeft:"$8"});function xf(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=ox(),r=tx(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return So.createElement(me,{header:{title:rl.t("Settings")}},So.createElement(ye,null,o&&So.createElement(Jv,{type:"info",variant:"alarm",title:rl.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:So.createElement(nx,null,So.createElement(Rv,{type:"secondary",size:"small",onClick:a},rl.t("Reset")))}),So.createElement(ol,null),So.createElement(vf,null)))}i(xf,"SettingsPage");import{i18n as zx}from"@lingui/core";import{cancelSwap as qx}from"@rango-dev/queue-manager-rango-preset";import{useManager as Hx}from"@rango-dev/queue-manager-react";import{Alert as Gx}from"@rango-dev/ui";import kl from"react";import{useParams as Vx}from"react-router-dom";import{i18n as et}from"@lingui/core";import{getCurrentBlockchainOfOrNull as xx,getCurrentStep as wx,getRelatedWalletOrNull as bx}from"@rango-dev/queue-manager-rango-preset";import{Button as tg,CopyIcon as Ex,Divider as Ix,DoneIcon as Ax,IconButton as Nx,QuoteCost as Wx,RangoExplorerIcon as Mx,StepDetails as Lx,Tooltip as og,Typography as To,useCopyToClipboard as Bx}from"@rango-dev/ui";import{useWallets as Px}from"@rango-dev/wallets-react";import ng from"bignumber.js";import{PendingSwapNetworkStatus as Ti}from"rango-types";import Z,{useEffect as rg,useRef as Dx,useState as ig}from"react";import{useNavigate as _x}from"react-router-dom";import{i18n as jt}from"@lingui/core";var rx=[jt.t("Sunday"),jt.t("Monday"),jt.t("Tuesday"),jt.t("Wednesday"),jt.t("Thursday"),jt.t("Friday"),jt.t("Saturday")];function wf(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?jt.t("Today"):`${rx[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(wf,"timeSince");function bf(t){return t.finishTime?wf(parseInt(t.finishTime)):wf(parseInt(t.creationTime))}i(bf,"getSwapDate");import{PendingSwapNetworkStatus as fi}from"rango-types";import gi from"react";import{i18n as ui}from"@lingui/core";import{Button as Ef,Divider as il,MessageBox as ix}from"@rango-dev/ui";import Xt from"react";var If=i(({onCancel:t,onClose:e})=>Xt.createElement(Xt.Fragment,null,Xt.createElement(il,{size:20}),Xt.createElement(ix,{type:"error",title:ui.t("Cancel Swap"),description:ui.t("Are you sure you want to cancel this swap?")}),Xt.createElement(il,{size:32}),Xt.createElement(Ef,{variant:"contained",type:"primary",size:"large",onClick:t},ui.t("Yes, Cancel it")),Xt.createElement(il,{size:12}),Xt.createElement(Ef,{variant:"outlined",type:"primary",size:"large",onClick:e},ui.t("No, Continue"))),"CancelContent");import{i18n as mi}from"@lingui/core";import{Button as Af,Divider as al,MessageBox as ax,Typography as sx}from"@rango-dev/ui";import Dt from"react";var Nf=i(({onDelete:t,onClose:e})=>Dt.createElement(Dt.Fragment,null,Dt.createElement(al,{size:20}),Dt.createElement(ax,{type:"error",title:mi.t("Delete Transaction"),description:mi.t("Are you sure you want to delete this swap?")}),Dt.createElement(al,{size:32}),Dt.createElement(Af,{variant:"contained",type:"primary",size:"large",onClick:t},mi.t("Yes, Delete it")),Dt.createElement(al,{size:12}),Dt.createElement(Af,{variant:"outlined",type:"primary",size:"large",onClick:e},Dt.createElement(sx,{variant:"title",size:"medium",color:"primary"},mi.t("No, Cancel")))),"DeleteContent");import{i18n as sl}from"@lingui/core";import{PendingSwapNetworkStatus as ll}from"rango-types";var pl={[ll.WaitingForNetworkChange]:{type:"loading",title:sl.t("Change Network")},[ll.WaitingForConnectingWallet]:{type:"warning",title:sl.t("Connect Wallet")},[ll.NetworkChanged]:{type:"success",title:sl.t("Network Changed")}};import{debug as di}from"@rango-dev/logging-core";import{MessageBox as lx,Wallet as px}from"@rango-dev/ui";import{useWallets as cx}from"@rango-dev/wallets-react";import Co,{useState as Lf}from"react";import{styled as Wf}from"@rango-dev/ui";var Mf=Wf("div",{display:"flex",justifyContent:"center"}),Yq=Wf("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Bf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:c}=cx(),[u,g]=Lf(null),[d,m]=Lf(null),f=n?.walletType,C=f?$i(c(f)):null,S=f?p(f):null,y=a&&!!f&&!!C&&!!S,T=i(()=>{u&&g({...u,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{d&&m({...d,open:!1})},"handleCloseDerivationPathModal"),x=i(()=>{f&&S&&(S.namespaces?.length?S.namespaces.length>1?g({open:!0,providerType:f,providerImage:S.img,availableNamespaces:S.namespaces,singleNamespace:S.singleNamespace}):S.needsDerivationPath?m({open:!0,providerType:f,providerImage:S.img,namespace:S.namespaces[0]}):l(f).catch(w=>di(w)):l(f).catch(w=>di(w)))},"handleWalletItemClick"),b=i(w=>{S?.needsDerivationPath&&S?.singleNamespace&&w[0]&&f?m({open:!0,providerType:f,providerImage:S.img,namespace:w[0]}):l(u?.providerType,void 0,w.map(v=>({namespace:v}))).catch(v=>di(v)),T()},"handleConfirmNamespaces"),W=i(w=>{w&&d?.namespace&&l(d?.providerType,void 0,[{namespace:d.namespace,derivationPath:w}]).catch(v=>di(v)),k()},"handleDerivationPathConfirm");return Co.createElement(Co.Fragment,null,Co.createElement(lx,{type:e,title:o,description:r}),y&&Co.createElement(Mf,null,Co.createElement(px,{container:L(),title:S.name,image:S.img,type:f,state:C,link:S.installLink,disabled:s,onClick:x})),Co.createElement(lo,{open:!!u?.open,onClose:T,onConfirm:b,image:u?.providerImage,availableNamespaces:u?.availableNamespaces,singleNamespace:u?.singleNamespace}),Co.createElement(ao,{open:!!d?.open,selectedNamespace:d?.namespace,type:d?.providerType,image:d?.providerImage,onClose:k,onConfirm:W}))},"WalletStateContent");function cl(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===fi.WaitingForNetworkChange||e===fi.WaitingForConnectingWallet||e===fi.NetworkChanged;return gi.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},p&&gi.createElement(Bf,{type:pl[e].type,title:pl[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==fi.WaitingForNetworkChange}),e==="delete"&&gi.createElement(Nf,{onClose:o,onDelete:n}),e==="cancel"&&gi.createElement(If,{onClose:o,onCancel:r}))}i(cl,"SwapDetailsModal");import{i18n as wn}from"@lingui/core";import{Button as ul,Divider as hi,MessageBox as Pf,TokenAmount as ux,Typography as ml}from"@rango-dev/ui";import Oe from"react";import{useNavigate as mx}from"react-router-dom";function dl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:c,percentageChange:u,description:g,diagnosisUrl:d}=t,m=mx();return Oe.createElement(ne,{open:e,onClose:o,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},n==="success"?Oe.createElement(Pf,{type:"success",title:wn.t("Swap Successful")},Oe.createElement(ux,{direction:"vertical",tooltipContainer:L(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:c,percentageChange:u}),Oe.createElement(hi,{size:12}),Oe.createElement(ml,{variant:"body",size:"medium",color:"neutral700",align:"center"},g)):Oe.createElement(Pf,{type:"error",title:wn.t("Transaction Failed"),description:g}),Oe.createElement(hi,{size:32}),n==="success"&&Oe.createElement(ul,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Oe.createElement(ml,{variant:"title",size:"medium",color:"neutral100"},wn.t("Done"))),Oe.createElement(hi,{size:12}),d&&Oe.createElement(Oe.Fragment,null,Oe.createElement(ul,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},wn.t("Diagnosis")),Oe.createElement(hi,{size:12})),Oe.createElement(ul,{variant:"outlined",type:"primary",size:"large",onClick:o},Oe.createElement(ml,{variant:"title",size:"medium",color:"primary"},wn.t("See Details"))))}i(dl,"SwapDetailsCompleteModal");import vx from"react";import{i18n as Sx}from"@lingui/core";import{Alert as Zf,IconButton as Cx,LinkIcon as Tx}from"@rango-dev/ui";import Yt,{Fragment as kx}from"react";import{Alert as fx,ChevronDownIcon as gx,IconButton as hx}from"@rango-dev/ui";import zo,{useState as yx}from"react";import{css as bn,darkTheme as Df,styled as _t,Typography as dx}from"@rango-dev/ui";var _f=_t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),yi=_t("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Df} &`]:{color:"$secondary500"}}}}}),$f=_t(Zo,{padding:"$0 $20 $20 $20"}),BH=_t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Ff=_t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),PH=_t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Qo=bn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Df} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Of=bn({padding:"$5 0"}),Si=bn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Uf=bn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Qf=bn({width:"100%",padding:"0 $20 $10"}),zf=_t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),qf=_t("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ci=_t(dx,{wordBreak:"break-word"});import{styled as fl}from"@rango-dev/ui";var Hf=fl("div",{display:"flex",flexDirection:"column",gap:"$10"}),Gf=fl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Vf=fl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Kf(t){let{message:e}=t,[o,n]=yx(!1);return zo.createElement(fx,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&zo.createElement(hx,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},zo.createElement(Gf,{rotated:o},zo.createElement(gx,{size:12,color:"gray"}))),footer:zo.createElement(Vf,{open:o},zo.createElement(Ci,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Kf,"FailedAlert");import{i18n as jf}from"@lingui/core";import{Alert as gl,Button as Xf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as hl}from"rango-types";import En from"react";function Yf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?En.createElement(gl,{type:"warning",title:n.shortMessage,action:En.createElement(Xf,{size:"xxsmall",type:"warning",onClick:()=>{o(hl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},jf.t("Change"))}):r===hl.WaitingForConnectingWallet?En.createElement(gl,{type:"warning",title:n.shortMessage,action:En.createElement(Xf,{size:"xxsmall",type:"warning",onClick:()=>{o(hl.WaitingForConnectingWallet)}},jf.t("Connect"))}):En.createElement(gl,{type:"warning",title:n.shortMessage})}i(Yf,"WarningAlert");function yl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Yo(a),p=a.status==="waitingForApproval"&&!l,c=a.status==="running"&&!l,u=c&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(Hf,null,a.explorerUrl?.map((g,d,m)=>{let f=d+g.url,C=d===m.length-1,S=(C&&c||p)&&!u,y=C&&a.status==="failed";return Yt.createElement(kx,{key:f},Yt.createElement(Zf,{type:C&&(S&&"loading"||y&&"error")||"success",title:g.description?`${g.description} Tx`:Sx.t("View transaction"),action:g.url&&Yt.createElement(Cx,{variant:"ghost",size:"xsmall",onClick:()=>window.open(g.url,"_blank")},Yt.createElement(Tx,{size:12}))}))}),u&&Yt.createElement(Zf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(Yf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(Kf,{message:r}))}i(yl,"SwapDetailsAlerts");var Jf=2e3;var Rf=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:tt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:tt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Go(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:tt(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:tt(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Go(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:vx.createElement(yl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function eg(t){if(Yo(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(eg,"getStepState");function Sl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Px(),p=h().blockchains(),c=h().swappers(),{findToken:u}=h(),g=G.use.retry(),d=pe.use.isActiveTab(),m=_x(),[f,C]=Bx(Jf),S=Dx(null),[y,T]=ig(null),[k,x]=ig(null),b=i(()=>{r(),T(null)},"onCancel"),W=Ie.use.getNotifications(),w=Ie.use.removeNotification(),v=W(),E=wx(e),A=E?.networkStatus;rg(()=>{v.find(Ee=>Ee.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),w(e.requestId)):k&&x(null))},[e.status,e.requestId]),rg(()=>{_?T(Ti.WaitingForNetworkChange):A===Ti.WaitingForConnectingWallet||A===Ti.NetworkChanged?T(A):T(null)},[A]);let B=Hp(e),q=E?xx(e,E):null,I=E?bx(e,E):null,Q=bf(e),te=Gp(e),P=i(le=>!!l(le)?.mobileWallet,"isMobileWallet"),_=A===Ti.WaitingForNetworkChange&&!!q&&!!I?.walletType&&(P(I.walletType)||a(I.walletType,q)),X=_?s.bind(null,I.walletType,q):void 0,Se=qp(e,E),Y=Rf({swap:e,switchNetwork:X,showNetworkModal:A,setNetworkModal:T,message:Se,blockchains:p,swappers:c}),ie=Y.length,[he,Te]=[e.steps[0],e.steps[ie-1]],$=Te.outputAmount||Te.expectedOutputAmountHumanReadable,N=e.steps.reduce((le,Ee)=>le+parseFloat(Ee.feeInUsd||""),0),ce=e.steps.find(le=>le.diagnosisUrl)?.diagnosisUrl,ue=M(parseFloat($||"0")*(Te.toUsdPrice||0),4,4),$e=M(parseFloat(e.inputAmount)*(he.fromUsdPrice||0),4,4),D=$?new ng($).multipliedBy(Te.toUsdPrice||0).toString():"",z=new ng(e.inputAmount).multipliedBy(he.fromUsdPrice||0).toString(),K=nt($e,ue),se=Se.detailedMessage.content||Se.shortMessage,ee=e.status==="success"?et.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M($,6,6),token:Y[ie-1].to.token.displayName,conciseAddress:zn(e.wallets[Y[ie-1].to.chain.displayName]?.address||""),chain:Y[ie-1].to.chain.displayName}}):Z.createElement(qf,null,Z.createElement(To,{variant:"body",size:"medium",color:"neutral700",align:"center"},se?"":et.t("Transaction was not sent."),B?`${et.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),se&&Z.createElement(Ci,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",se));return Z.createElement(me,{header:{title:et.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(Ut,null,Z.createElement(tg,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},Z.createElement(To,{size:"medium",variant:"label",color:"error"},et.t("Delete"))))},footer:te&&!k&&Z.createElement(tg,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let le=rr(e,p,u);g(le),setTimeout(()=>{m("../../")},0)}},et.t("Try again"))},Z.createElement(ye,{compact:!0,view:!0},Z.createElement(yi,null,Z.createElement("div",{className:Qo()},Z.createElement(To,{variant:"label",size:"large",color:"neutral700"},`${et.t("Request ID")}:`),Z.createElement("div",{className:Si()},Z.createElement(To,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(og,{container:L(),content:f?et.t("Copied To Clipboard"):et.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(Nx,{variant:"ghost",onClick:C.bind(null,o||"")},f?Z.createElement(Ax,{size:16,color:"secondary"}):Z.createElement(Ex,{size:16,color:"gray"}))),Z.createElement(zf,{target:"_blank",href:`${Nl}/swap/${o}`},Z.createElement(og,{container:L(),content:et.t("View on Rango Explorer"),side:"bottom"},Z.createElement(Mx,{size:20}))))),Z.createElement("div",{className:Qo()},Z.createElement(To,{variant:"label",size:"large",color:"neutral700"},e.finishTime?et.t("Finished at"):et.t("Created at")),Z.createElement(To,{variant:"label",size:"small",color:"neutral700"},Q))),Z.createElement("div",{className:Uf()},Z.createElement(Wx,{fee:M(String(N),2,2),time:Vo(Dn(e.steps)),steps:ie}),Z.createElement(rn,{from:{price:{value:M(e.inputAmount,6,6),usdValue:$e,realUsdValue:z,realValue:e.inputAmount},token:{displayName:Y[0].from.token.displayName,image:Y[0].from.token.image},chain:{image:Y[0].from.chain.image,displayName:Y[0].from.chain.displayName}},to:{price:{value:M($,6,6),usdValue:ue,realUsdValue:D,realValue:$||""},token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image,displayName:Y[ie-1].to.chain.displayName}},percentageChange:M(K,2,2),warningLevel:It(K??0)})),Z.createElement("div",{className:Qf()},Z.createElement(To,{variant:"title",size:"small"},et.t("Swaps steps"))),Z.createElement(Ix,{size:8}),Z.createElement($f,{ref:S},Y.map((le,Ee)=>{let Nn=Ee,qo=eg(e.steps[Ee]),Ng=qo==="error"||qo==="in-progress"||qo==="warning"||qo==="completed"&&Ee===Y.length-1;return Z.createElement(Lx,{key:Nn,step:le,type:"swap-progress",ref:S,state:qo,hasSeparator:Ee!==0,tabIndex:Nn,isFocused:Ng,tooltipContainer:L()})}))),Z.createElement(cl,{state:y,onClose:()=>T(null),onCancel:b,onDelete:n,message:Se.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!d}),Z.createElement(dl,{open:!!k,diagnosisUrl:ce,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:M($,6,6),usdValue:ue,realUsdValue:D,realValue:$||"",percentageChange:M(K,2,2),token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image},description:ee}))}i(Sl,"SwapDetails");import{i18n as vi}from"@lingui/core";import{Divider as lg,NotFound as Qx,Skeleton as An,Typography as xi}from"@rango-dev/ui";import xe from"react";import{i18n as $x}from"@lingui/core";import{Divider as Fx,Skeleton as Ox,Typography as Ux}from"@rango-dev/ui";import be from"react";import{css as yt,styled as Cl}from"@rango-dev/ui";var ag=Cl("div",{width:"100%",height:"100%",padding:"$10 $20"}),In=Cl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ki=Cl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),VG=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),KG=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),jG=yt({paddingTop:"$15",display:"flex"}),XG=yt({padding:"$15 $0"}),YG=yt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),ZG=yt({paddingBottom:"$10"}),JG=yt({display:"flex",justifyContent:"start",alignItems:"center"}),RG=yt({paddingTop:"$5",display:"flex",alignItems:"center"}),eV=yt({display:"flex",alignItems:"center"}),tV=yt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),sg=yt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Tl(){return be.createElement(ag,null,be.createElement(ln,{type:"swap-preview"}),be.createElement("div",{className:"swaps-steps"},be.createElement(Ux,{variant:"title",size:"small"},$x.t("Swaps steps"))),be.createElement(be.Fragment,null,be.createElement(In,null,be.createElement(vt,{separator:!1}),be.createElement("div",{className:sg()},be.createElement(Fx,{direction:"horizontal",size:20}),be.createElement(Ox,{height:22,variant:"rectangular"}))),be.createElement(ki,null),be.createElement(In,null,be.createElement(vt,{separator:!1})),be.createElement(ki,null),be.createElement(In,null,be.createElement(vt,{separator:!1})),be.createElement(ki,null),be.createElement(In,null,be.createElement(vt,{separator:!1}))))}i(Tl,"LoadingSwapDetails");function pg(t){let{requestId:e,showSkeleton:o}=t;return xe.createElement(me,{header:{title:vi.t("Swap Details"),suffix:xe.createElement(Ut,null)}},o&&xe.createElement(_f,null,xe.createElement(yi,null,xe.createElement("div",{className:Qo()},xe.createElement(xi,{variant:"label",size:"large",color:"neutral700"},`${vi.t("Request ID")}:`),xe.createElement("div",{className:Si()},xe.createElement(xi,{variant:"label",size:"small",color:"neutral700"},xe.createElement(An,{width:60,height:10,variant:"rounded"})),xe.createElement(lg,{direction:"horizontal",size:4}),xe.createElement(An,{width:16,height:16,variant:"rectangular"}),xe.createElement(lg,{direction:"horizontal",size:4}),xe.createElement(An,{width:16,height:16,variant:"rectangular"}))),xe.createElement("div",{className:Qo()},xe.createElement(xi,{className:Of(),variant:"label",size:"large",color:"neutral700"},xe.createElement(An,{width:60,height:10,variant:"rounded"})),xe.createElement(xi,{variant:"label",size:"small",color:"neutral700"},xe.createElement(An,{width:60,height:10,variant:"rounded"})))),xe.createElement(Tl,null)),!o&&xe.createElement(Ff,null,xe.createElement(Qx,{title:vi.t("Not found"),description:vi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(pg,"SwapDetailsPlaceholder");function cg(){let{manager:t,state:e}=Hx(),o=!e.loadedFromPersistor,n=it(t),{requestId:r}=Vx(),a=rt(),{fetchStatus:s}=h();if(!r)return kl.createElement(Gx,{containerStyles:{margin:"20px"},type:"error",title:zx.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:d})=>d.requestId===r):void 0,c=i(()=>{if(p?.id){let d=t?.get(p.id);d&&qx(d)}},"onCancel"),u=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),g=p?.swap;return!g||l?kl.createElement(pg,{requestId:r,showSkeleton:l}):kl.createElement(Sl,{swap:g,requestId:r,onCancel:c,onDelete:u})}i(cg,"SwapDetailsPage");function ug(){return tc(),sa(),Kx([{path:H.home,element:Xe.createElement(Ad,null)},{path:H.routes,element:Xe.createElement(Bd,null)},{path:H.fromSwap,children:[{index:!0,element:Xe.createElement(el,{type:"source"})},{path:H.blockchains,element:Xe.createElement($s,{type:"source"})}]},{path:H.toSwap,children:[{index:!0,element:Xe.createElement(el,{type:"destination"})},{path:H.blockchains,element:Xe.createElement($s,{type:"destination"})}]},{path:H.settings,children:[{index:!0,element:Xe.createElement(xf,null)},{path:H.languages,element:Xe.createElement(Wd,null)},{path:H.exchanges,element:Xe.createElement(Ps,{sourceType:"Exchanges"})},{path:H.bridges,element:Xe.createElement(Ps,{sourceType:"Bridges"})}]},{path:H.swaps,children:[{index:!0,element:Xe.createElement(ad,null)},{path:H.swapDetails,element:Xe.createElement(cg,null)}]},{path:H.wallets,element:Xe.createElement(lu,null)},{path:H.confirmSwap,element:Xe.createElement(Om,null)}])}i(ug,"AppRoutes");import{useQueueManager as ow}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as nw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as rw}from"rango-sdk";import{useContext as iw,useEffect as Sg,useState as Cg}from"react";import{globalCss as jx}from"@rango-dev/ui";var mg=i(()=>jx({"@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 dg(){let{setWatermark:t}=pe();return{fetchApiConfig:i(async()=>{let o=await fetch(`${Et("BASE_URL")}/meta/dapp/config?apiKey=${Et("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(dg,"useFetchApiConfig");import{useWallets as Xx}from"@rango-dev/wallets-react";import{useEffect as Yx,useRef as Zx}from"react";function fg(){let{connect:t,state:e}=Xx(),o=Zx({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Yx(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(fg,"useForceAutoConnect");import{isApprovalTX as Jx,RouteEventType as gg,StepEventType as hg,StepExecutionEventStatus as Rx,WidgetEvents as wi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as yg}from"react";function vl(){let t=oe.use.connectedWallets(),e=oe.use.getWalletsDetails(),o=Ie.use.setNotification(),{findToken:n}=h();yg(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===hg.TX_EXECUTION&&s.status===Rx.TX_SENT&&!Jx(l)||s.type===hg.SUCCEEDED){let u=t.find(d=>d.chain===l?.fromBlockchain),g=l?.fromBlockchain!==l?.toBlockchain&&t.find(d=>d.chain===l?.toBlockchain);u&&e([u],n),g&&e([g],n)}o(s,p)},"handleStepEvent");return ke.on(wi.StepEvent,r),()=>ke.off(wi.StepEvent,r)},[ke,t]),yg(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===gg.FAILED||s.type===gg.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return ke.on(wi.RouteEvent,r),()=>ke.off(wi.RouteEvent,r)},[ke])}i(vl,"useSubscribeToWidgetEvents");import{useManager as ew}from"@rango-dev/queue-manager-react";import{useEffect as tw}from"react";function xl(){let{isSynced:t,syncNotifications:e}=Ie(),{manager:o,state:n}=ew();tw(()=>{Ie.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(it(o))},[Ie.persist.hasHydrated(),n.loadedFromPersistor,t])}i(xl,"useSyncNotifications");function wl(){fg(),mg(),vl(),xl();let t=h().blockchains(),{canSwitchNetworkTo:e}=Er(),[o,n]=Cg(""),[r,a]=Cg(),s=iw(jn),l=t.filter(rw),{fetchApiConfig:p}=dg();Sg(()=>()=>ec(),[]),ow({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Sg(()=>(Rt.init(),Ie.persist.hasHydrated()||Ie.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(c=>{a(c),c===nw(o)?.[0]&&n("")}),p().catch(console.log),Rt.destroy),[])}i(wl,"useBootstrap");import{styled as aw}from"@rango-dev/ui";var Tg=aw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function bi(){wl();let{config:t}=h(),{activeTheme:e}=gr(t?.theme||{}),{activeLanguage:o}=Kt();return bl.createElement(sw,{language:o},bl.createElement(Tg,{id:"swap-container",className:e()},bl.createElement(ug,null)))}i(bi,"Main");import{setSolanaSignerConfig as Iw}from"@rango-dev/signer-solana";import Il,{useEffect as Eg,useMemo as Aw}from"react";import{useState as lw}from"react";var pw=i(()=>{let[t,e]=lw(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=Ol(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),kg=pw;import{checkWaitingForNetworkChange as cw,makeQueueDefinition as uw}from"@rango-dev/queue-manager-rango-preset";import{Provider as mw}from"@rango-dev/queue-manager-react";import{useWallets as dw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as fw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as gw}from"rango-types";import hw,{useMemo as yw}from"react";function Sw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=dw(),l=yw(()=>uw({API_KEY:t.apiKey||Et("API_KEY"),BASE_URL:Et("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),p=h().blockchains(),u={blockchains:oe.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},g=i(async(k,x)=>{if(a(k,x))return r(k,x)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),m=p.filter(k=>k.enabled).reduce((k,x)=>(k[x.name]=x,k),{}),f=p.filter(gw),C=i(k=>{let{supportedChains:x}=s(k);return Fn(x)},"getSupportedChainNames"),S=e(),y={meta:{blockchains:m,evmBasedChains:f,evmNetworkChainInfo:fw(f),getSupportedChainNames:C},getSigners:o,wallets:u,providers:S,switchNetwork:g,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},T=pe.use.isActiveTab();return hw.createElement(mw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{cw(k)},isPaused:!T},t.children)}i(Sw,"QueueManager");var vg=Sw;import{useManager as xw}from"@rango-dev/queue-manager-react";import ww,{createContext as bw,useContext as Ew}from"react";function xg(){let{findToken:t}=h(),e=h().blockchains(),o=h().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=G();return i(c=>{let{fromBlockchain:u,fromToken:g,toBlockchain:d,toToken:m,requestAmount:f}=c,C={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(g!==void 0){let S=g?t(g)??null:null;r({meta:C,token:S})}if(d!==void 0){let S=e.find(y=>y.name===d)??null;a(S)}if(m!==void 0){let S=m?t(m)??null:null;s({meta:C,token:S})}f!==void 0&&l(f)},"updateQuoteInput")}i(xg,"useUpdateQuoteInput");import{cancelSwap as Cw,getCurrentBlockchainOfOrNull as Tw,getCurrentStep as kw,getRelatedWalletOrNull as vw}from"@rango-dev/queue-manager-rango-preset";var Ei=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return it(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=rr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Cw(o)}getCurrentStepInfo(e){let o=kw(e);return{step:o,wallet:o?vw(e,o):null,network:o?Tw(e,o):null}}};var wg=bw(void 0);function El(t){let{manager:e}=xw(),o=pe.use.isActiveTab(),n=G.use.retry(),{findToken:r}=h(),a=new Ei(e,{retrySwap:n,findToken:r}),s=oe.use.connectedWallets(),l=oe.use.loading(),p=Kl(s),c=oe.use.getWalletsDetails(),u=h().blockchains(),g=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=Kt().resetLanguage,C=Ie().getNotifications(),S=Ie().clearNotifications,y=xg(),T={isActiveTab:o,setCurrentTabAsActive:Rt.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:k=>c(k,r)},meta:{blockchains:u,tokens:g,swappers:d,loadingStatus:m,findToken:r},resetLanguage:f,notifications:{list:C,clearAll:S},quote:{updateQuoteInput:y}};return ww.createElement(wg.Provider,{value:T},t.children)}i(El,"WidgetInfo");function bg(){let t=Ew(wg);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(bg,"useWidget");function Ii(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=kg();return Eg(()=>{n&&r(n)},[n]),Aw(()=>{tp({API_KEY:o?.apiKey||Wn,BASE_URL:o?.apiUrl||Al})},[o.apiKey,o.apiUrl]),Eg(()=>{t.config?.signers?.customSolanaRPC&&Iw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Il.createElement(Xn,{config:o,onUpdateState:e},Il.createElement(vg,{apiKey:o.apiKey},Il.createElement(El,null,t.children)))}i(Ii,"WidgetProvider");function Ig(t){let e=t.config?.externalWallets;return Ai.createElement(Ep,null,e?Ai.createElement(bi,null):Ai.createElement(Ii,{config:t.config??Ki},Ai.createElement(bi,null)))}i(Ig,"Widget");function Ag(){let{on:t,off:e}=ke;return{on:t,off:e}}i(Ag,"useWidgetEvents");export{x4 as EventSeverity,vo as MainEvents,L4 as Networks,D4 as PendingSwapNetworkStatus,zi as QuoteEventTypes,w4 as RouteEventType,Ni as SUPPORTED_FONTS,b4 as StepEventType,E4 as StepExecutionBlockedEventStatus,I4 as StepExecutionEventStatus,Ce as UI_ID,Hi as UiEventTypes,qi as WalletEventTypes,W4 as WalletEvents,B4 as WalletTypes,Ig as Widget,vo as WidgetEvents,Ii as WidgetProvider,Xn as WidgetWallets,Ta as customizedThemeTokens,N4 as readAccountAddress,oo as useWalletList,Er as useWallets,bg as useWidget,Ag as useWidgetEvents,Bg as widgetEventEmitter};
1
+ var Wg=Object.defineProperty;var i=(t,e)=>Wg(t,"name",{value:e,configurable:!0});import{EventSeverity as x4,RouteEventType as w4,StepEventType as b4,StepExecutionBlockedEventStatus as E4,StepExecutionEventStatus as I4}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as N4,useWallets as Er,Events as W4}from"@rango-dev/wallets-react";import{Networks as B4,WalletTypes as L4}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as D4}from"rango-types";import{UI_ID as Mg}from"@rango-dev/ui";var Wn="c6381a79-2817-4602-83bf-6a641a409e32",Al="https://api.rango.exchange",Nl="https://explorer.rango.exchange",Ce={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Mg};var Wl="Roboto",Ni=[{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 Xi,Provider as bh}from"@rango-dev/wallets-react";import{isEvmBlockchain as Eh}from"rango-sdk";import Kn,{createContext as Ih,useEffect as wp,useMemo as Ah,useRef as bp}from"react";import{useEffect as Jg}from"react";import{create as Xg}from"zustand";import{subscribeWithSelector as Yg}from"zustand/middleware";import Bg from"mitt";var ke=Bg(),Lg={on:ke.on,off:ke.off};import{RangoClient as Kg}from"rango-sdk";import{BlockchainCategories as Ug,WalletState as Ct}from"@rango-dev/ui";import{readAccountAddress as Qg}from"@rango-dev/wallets-react";import{detectInstallLink as zg,getCosmosExperimentalChainInfo as qg,isEvmAddress as Hg,KEPLR_COMPATIBLE_WALLETS as ob,Networks as zl}from"@rango-dev/wallets-shared";import _i from"bignumber.js";import{isCosmosBlockchain as Gg}from"rango-types";import Pg from"bignumber.js";var Ue=new Pg(0);import{WalletTypes as Dg}from"@rango-dev/wallets-shared";var Ml=[Dg.LEAP];import{BlockchainCategories as Wi,WalletState as Og}from"@rango-dev/ui";import{TransactionType as Mn}from"rango-sdk";function ko(t){return Array.from(new Set(t))}i(ko,"removeDuplicateFrom");function Li(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Li,"areEqual");function $l(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i($l,"debounce");function bt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(bt,"containsText");function Pl(t,e){return t.toLowerCase()===e.toLowerCase()}i(Pl,"exactText");function Dl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Dl,"startWithText");var B=i(()=>document.getElementById(Ce.SWAP_BOX_ID),"getContainer"),Ho=i(()=>document.getElementById(Ce.EXPANDED_BOX_ID),"getExpanded");function _l(t,e,o){let n=!!e&&Pl(e,t),r=!!o&&Pl(o,t);return n!==r?n?-1:1:0}i(_l,"compareExactMatchText");function Mi(t,e,o){let n=!!e&&bt(e,t),r=!!o&&bt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Mi,"compareContainsText");function Bi(t,e,o){let n=!!e&&Dl(e,t),r=!!o&&Dl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Bi,"compareStartWithText");function Fl(t,e,o){if(!o)return 0;let n=_l(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=_l(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Bi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Mi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Bi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Mi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Bi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Mi(o,t.address,e.address);if(r!==0)return r}return 0}i(Fl,"compareWithSearchFor");var Bn=i((t,e)=>{switch(e){case Wi.ALL:return!0;case Wi.UTXO:return t===Mn.TRANSFER;case Wi.OTHER:return t!==Mn.TRANSFER&&t!==Mn.COSMOS&&t!==Mn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Ol=i(t=>Ni.find(o=>o.value===t)?.url,"getFontUrlByName");function Ln(t,e){let o=!!t.find(n=>n.state===Og.CONNECTED);return e===!1&&o}i(Ln,"isSingleWalletActive");function Pn(t,e){return e.find(o=>o.name===t)?.displayName}i(Pn,"getBlockchainDisplayNameFor");function tt(t,e){return e.find(o=>o.name===t)?.shortName}i(tt,"getBlockchainShortNameFor");function Ul(t,e){return e.find(o=>o.name===t)?.logo}i(Ul,"getBlockchainImage");function Go(t,e){return e.find(o=>o.id===t)?.title}i(Go,"getSwapperDisplayName");function Pi(t,e){return e.find(o=>o.name===t)??null}i(Pi,"findBlockchain");function Di(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(Di,"isTokenNative");function ct(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(ct,"createTokenHash");import{BigNumber as Ql}from"bignumber.js";var Vo=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"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ql(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Ql(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 Dn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var St=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Ko=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function $i(t){switch(!0){case t.connected:return Ct.CONNECTED;case t.connecting:return Ct.CONNECTING;case!t.installed:return Ct.NOT_INSTALLED;default:return Ct.DISCONNECTED}}i($i,"mapStatusToWalletState");function ql(t,e,o,n){return o.filter(r=>!Ml.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(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:c,singleNamespace:u,supportedChains:g,needsDerivationPath:d}=e(r),m=ko(g.map(C=>C.type)),f=$i(t(r));return{title:a,image:s,link:zg(l),state:f,type:r,showOnMobile:p,namespaces:c,singleNamespace:u,blockchainTypes:m,needsDerivationPath:d}})}i(ql,"mapWalletTypesToWalletInfo");function Fn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Fn,"walletAndSupportedChainsNames");function Hl(t,e,o,n,r){let a=[];function s(p,c){if(!!!a.find(g=>g.chain===p)){let g={address:c,chain:p,walletType:t};a.push(g)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:c,network:u}=Qg(p),g=l.length>0,d=l.includes(u),m=u===zl.Unknown;if(g&&!d&&!m)return;let C=u===zl.Unknown&&Hg(c);if(m&&!C)return;o.includes(u)||C?r?s(u,c.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,c.toLowerCase())}):s(u,c)}),a}i(Hl,"prepareAccountsForWalletStore");function Zt(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((c,u)=>{let g=c.from.blockchain,d=c.to.blockchain,m=a===o.swaps.length-1,f=u===p.length-1;(!m&&!f||m&&l!==g||e==="all")&&n.add(g),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Zt,"getQuoteWallets");function On(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(On,"isAccountAndWalletMatched");function Gl(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 _i(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Gl,"makeBalanceFor");function Vl(t){return{...t,loading:!1,error:!0}}i(Vl,"resetConnectedWalletState");var Kl=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=M(n?.flatMap(a=>a.accounts)?.flatMap(a=>a?.balances)?.map(a=>new _i(a?.amount||Ue).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Ue)||Ue).toString();return Vg(r)},"calculateWalletUsdValue");function Vg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Vg,"numberWithThousandSeparator");var Un=i((t,e)=>{let o=qg(Object.entries(t).map(([,n])=>n).filter(Gg));return o&&o[e]?.experimental},"isExperimentalChain");function Qn(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(Qn,"formatBalance");function jl(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(jl,"compareTokenBalance");function Jt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Jt,"areTokensEqual");function Xl(t){return t.sort((e,o)=>+(o.state===Ct.CONNECTED)-+(e.state===Ct.CONNECTED)||+(o.state===Ct.DISCONNECTED||o.state===Ct.CONNECTING)-+(e.state===Ct.DISCONNECTED||e.state===Ct.CONNECTING))}i(Xl,"sortWalletsBasedOnConnectionState");function zn(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(zn,"getConciseAddress");function Yl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Yl,"getAddress");function qn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new _i(o?.usdPrice??Ue).multipliedBy(o?.amount).toString():""},r=o?ct({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(qn,"makeTokensBalance");var Zl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Jl(t){return t.map(e=>e.state).join("-")}i(Jl,"hashWalletsState");function Rl(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(Rl,"filterBlockchainsByWalletTypes");function ep(t,e){return e===Ug.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Bn(n,e))return!0;return!1})}i(ep,"filterWalletsByCategory");var Fi={API_KEY:Wn};function Et(t){return Fi[t]||""}i(Et,"getConfig");function tp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Fi=e,Fi}i(tp,"initConfig");var op=20,np=25,Oi="theme-widget",Ui=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Jt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Jt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Qi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),rp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Hn,$t=i(()=>Hn||(Hn=new Kg(Et("API_KEY"),Et("BASE_URL")),Hn),"httpService");import{WidgetEvents as ip}from"@rango-dev/queue-manager-rango-preset";var zi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(zi||{}),qi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(qi||{}),Hi=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Hi||{}),vo=(a=>(a[a.RouteEvent=ip.RouteEvent]="RouteEvent",a[a.StepEvent=ip.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(vo||{});var jg=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"),Ft=jg;var oe=Ft(Xg()(Yg((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:qn(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=>On(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:c,chain:u})=>({address:c,blockchain:u})),p=(await $t().getWalletsDetails(s)).wallets;if(p)t(c=>{let u=c.connectedWallets.map(d=>{let m=o.find(C=>On(C,d)),f=p.find(C=>C.address===d.address&&C.blockChain===d.chain);return f?.failed&&m&&r&&a([m],n,!1),m&&f?{...d,explorerUrl:f.explorerUrl,balances:Gl(f,n),loading:!1}:d});return{loading:!1,balances:qn(u),connectedWallets:u}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(u=>o.find(g=>On(g,u))?Vl(u):u);return{loading:!1,balances:qn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=ct(o);return n[r]??null}}))));import{allProviders as Zg}from"@rango-dev/provider-all";function Gn(t,e){let o=Zg({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0});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(Gn,"matchAndGenerateProviders");function ap(t,e){return Gn(t,e).map(r=>r.config.type)}i(ap,"configWalletsToWalletName");function sp(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(sp,"hashProviders");function Gi(t,e){let o=oe.use.clearConnectedWallet(),n=Gn(t,e);return Jg(()=>{o(),n=Gn(t,e)},[sp(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Gi,"useWalletProviders");import Sh,{createContext as Ch,useContext as Th,useEffect as kh,useRef as vh}from"react";import{create as hh}from"zustand";import{persist as yh}from"zustand/middleware";var Vi=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},xo=new Vi;function jo(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=ct(p));let c=o.tokensMapByTokenHash.get(p);c&&(n[p]=c)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(c=>{let u=ct(c);delete n[u]})):a(p.tokens))}),Object.values(n)}i(jo,"matchTokensFromConfigWithMeta");var Ki={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},Rg={clientUrl:void 0},eh={liquiditySources:void 0},lp=i((t,e,o)=>({config:{...Ki,...t},iframe:Rg,campaignMode:eh,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,{_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s}=o(),l=jo({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=jo({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});xo.set("supportedSourceTokens",l),xo.set("supportedDestinationTokens",p),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 Vn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return ko(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(Vn,"getUniqueSwappersGroups");function pp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(pp,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function cp(t,e){return e?.[t]==="enabled"}i(cp,"isFeatureEnabled");var up=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_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{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a}=e(),s=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return s;let p=o.type==="source"?"from":"to",c=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",u=xo.get(c);u||(u=jo({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),xo.set(c,u));let g=e().blockchains({type:o.type});return u.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!g.some(f=>f.name===m.blockchain)?!1:o.searchFor?!!(bt(m.symbol,o.searchFor)||bt(m.address||"",o.searchFor)||bt(m.name||"",o.searchFor)):!0).sort((m,f)=>{let C=e().isTokenPinned(m,o.type),S=e().isTokenPinned(f,o.type);if(C!==S)return C?-1:1;if(o.getBalanceFor){let b=o.getBalanceFor(m),W=o.getBalanceFor(f),w=jl(b,W);if(w!==0)return w}let y=l.get(m.blockchain),T=l.get(f.blockchain),k=Di(m,y),v=Di(f,T);if(k!==v)return k?-1:1;if(m.isPopular!==f.isPopular)return m.isPopular?-1:1;if(o.searchFor){let b=Fl(m,f,o.searchFor);if(b)return b}return m.isSecondaryCoin!==f.isSecondaryCoin?m.isSecondaryCoin?1:-1:y&&T?y.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=ct(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Jt(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(c=>{let u=a?.includes(c.swapperGroup);return s||!a||a.length===0?!u:u}).sort(pp)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await $t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s={},l=[],p=n.popularTokens,c=n.swappers,u=new Set;n.tokens.forEach(d=>{u.add(d.blockchain),l.push(d)}),n.blockchains.sort((d,m)=>d.sort-m.sort).forEach(d=>{d.enabled&&u.has(d.name)&&r.set(d.name,d)}),l.forEach(d=>{let m=ct(d);s[d.blockchain]||(s[d.blockchain]=[]),a.set(m,d),s[d.blockchain].push(m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:c})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as th,English as oh,Finland as nh,French as rh,German as ih,Greece as ah,Italian as sh,Japanese as lh,Netherlands as ph,Poland as ch,Portuguese as uh,Russian as mh,Spanish as dh,Swedish as fh,Ukrainian as gh}from"@rango-dev/ui";var mp=[{title:"English",label:"English",local:"en",SVGFlag:oh},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:dh},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:rh},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:lh},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:uh},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:th},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:mh},{title:"German",label:"Deutsch",local:"de",SVGFlag:ih},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:gh},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:fh},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:nh},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:ph},{title:"Greek",label:"Grieks",local:"el",SVGFlag:ah},{title:"Italian",label:"Italiana",local:"it",SVGFlag:sh},{title:"Polish",label:"Polski",local:"pl",SVGFlag:ch}],wo="en";var dp=[.5,1,3],fp=1,gp=5,hp=100,yp=0;var Sp=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:fp,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,c=l<=9;return p&&c}))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=ko(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=ot("theme",n),s=ot("language",n),l=ot("liquiditySource",n),p=r?.singleTheme,c=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||wo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...c&&{language:o.language||wo}})}}),"createSettingsSlice");function Cp(t){return hh()(yh((...e)=>({...up(...e),...Sp(...e),...lp(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(Cp,"createAppStore");var Tp=Ch(null);function h(){let t=Th(Tp);if(kh(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function kp(t){let e=vh();return e.current||(e.current=Cp(t.config)),Sh.createElement(Tp.Provider,{value:e.current},t.children)}i(kp,"AppStoreProvider");import{create as wh}from"zustand";var vp="rango-widget";var Xo=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.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.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(vp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}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}}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 pe=Ft(wh()((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})}}))),Rt=new Xo({onInit:()=>pe.setState({tabManagerInitiated:!0}),onClaim:()=>pe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>pe.setState({isActiveTab:!1})});var jn=Ih({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Nh(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=h(),a=h().blockchains(),{findToken:s}=h(),l=h().config,p={walletConnectProjectId:l?.walletConnectProjectId,trezorManifest:l?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:c}=Gi(l.wallets,p),{connectWallet:u,disconnectWallet:g}=oe(),d=bp(),m=bp();wp(()=>{n().catch(console.log)},[]),wp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let f=a.filter(Eh).map(T=>T.name),C=i((T,k,v,b,W)=>{if(k===Xi.ACCOUNTS)if(v){let w=Fn(W.supportedBlockchains),x=Hl(T,v,f,w,W.isContractWallet);x.length&&u(x,s)}else g(T),m.current?m.current(T):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(k===Xi.ACCOUNTS&&b.connected){let w=`${T}-${b.network}-${v}`;b.connected&&(d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===Xi.NETWORK&&b.network){let w=`${T}-${b.network}`;d.current?d.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(T,k,v,b,W)},"onUpdateState"),S=pe.use.isActiveTab(),y=Ah(()=>({onConnectWallet:T=>{d.current=T},onDisconnectWallet:T=>{m.current=T}}),[]);return Kn.createElement(jn.Provider,{value:y},Kn.createElement(bh,{allBlockChains:a,providers:c,onUpdateState:C,autoConnect:!!S},t.children))}i(Nh,"Main");function Xn(t){let{config:e,...o}=t;return Kn.createElement(kp,{config:e},Kn.createElement(Nh,{...o,config:e}))}i(Xn,"WidgetWallets");import Ai from"react";import Wh,{Fragment as Mh}from"react";import{MemoryRouter as Bh,useInRouterContext as Lh}from"react-router";function Ep({children:t}){let o=Lh()?Mh:Bh;return Wh.createElement(o,null,t)}i(Ep,"AppRouter");import{I18nManager as sw}from"@rango-dev/ui";import bl from"react";import Xe from"react";import{useRoutes as Kx}from"react-router-dom";var G={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 Io,useRef as ar}from"react";import Ve from"bignumber.js";import{create as _h}from"zustand";import{subscribeWithSelector as $h}from"zustand/middleware";import{getLastSuccessfulStep as Dh}from"@rango-dev/queue-manager-rango-preset";import KI from"bignumber.js";function Yi(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Yi,"getFeeLabel");var Zi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Ip=30;import{i18n as ut}from"@lingui/core";import{RouteEventType as MI}from"@rango-dev/queue-manager-rango-preset";import Qe from"bignumber.js";import{PendingSwapNetworkStatus as Jn}from"rango-types";function Yn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Yn,"isValidAddress");import{i18n as Fe}from"@lingui/core";var re=i(()=>({genericServerError:Fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Fe.t("Please reset your liquidity sources."),description:Fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Fe.t("No Routes Found."),description:Fe.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:Fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Fe.t("High Price Impact"),title:Fe.t("Price impact is too high!"),description:Fe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Fe.t("USD Price Unknown"),title:Fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:Fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Fe.t("Confirm USD Price Unknown")}}),"errorMessages");function Ap(t){switch(t.type){case 0:return t.diagnosisMessage??re().noResultError.title;case 1:return re().genericServerError;default:return""}}i(Ap,"getQuoteErrorMessage");import{i18n as Zn}from"@lingui/core";var eo=i(()=>({connectWallet:Zn.t("Connect Wallet"),swap:Zn.t("Swap"),swapAnyway:Zn.t("Swap anyway"),ethWarning:Zn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Np(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Qe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Qe(1e3)))??!1}i(Np,"hasHighValueLoss");function Wp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Qe(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(Wp,"hasLimitError");function Mp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Qe(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new Qe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||c?.lte(l.fromAmount):p?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Qe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=ut.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ut.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ut.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ut.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Mp,"getLimitErrorMessage");function Bp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:eo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:eo().swap,action:"confirm-swap",disabled:!0}:s?{title:eo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:eo().ethWarning,action:"confirm-warning",disabled:!1}:{title:eo().swap,action:"confirm-swap",disabled:!1}:{title:eo().connectWallet,action:"connect-wallet",disabled:!1}}i(Bp,"getSwapButtonState");function Ji(t,e,o){return!((!o||o.lte(Ue))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Ji,"canComputePriceImpact");function Ri(t,e){let o=Ue;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 Qe(r.amount).multipliedBy(a||0))}return o}i(Ri,"getUsdFeeOfStep");function Rn(t,e){return t.reduce((o,n)=>o.plus(Ri(n,e)),Ue)}i(Rn,"getTotalFeeInUsd");function ea(t){let e=Ue;return e=e.plus(new Qe(t.amount).multipliedBy(t.price||0)),e}i(ea,"getUsdFee");function Lp(t){return t.reduce((e,o)=>e.plus(ea(o)),Ue)}i(Lp,"getTotalFeesInUsd");function Pp(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(Pp,"getFeesGroup");function Dp(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(Dp,"checkSlippageErrors");function _p(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(_p,"checkSlippageWarnings");function er(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(er,"getMinRequiredSlippage");function $p(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i($p,"hasProperSlippage");function Fp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:c,affiliateRef:u,affiliatePercent:g,affiliateWallets:d,destination:m,enableCentralizedSwappers:f}=t,C=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),S=[];return r?.forEach(T=>{S.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:g??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:C??{},slippage:c.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:f}}i(Fp,"createQuoteRequestBody");function Op(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Op,"getWalletsForNewSwap");function bo(t){return t?.outputAmount||null}i(bo,"getQuoteOutputAmount");function Up(t,e){return new Qe(e).div(new Qe(t)).minus(1).multipliedBy(100).toNumber()}i(Up,"getPercentageChange");function Qp(t,e){let o=bo(t),n=bo(e);if(!o||!n)return!1;let r=nt(o,n);return r?r<=-1:!0}i(Qp,"isOutputAmountChangedALot");function zp(t,e,o){let n=t.validationStatus,r=Zt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>jp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Qe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),c=M(new Qe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=ut.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=ut.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=ut.t(" for input and network fee")),ut.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:c,symbol:l,reason:u,currentAmount:p,blockchain:tt(s.asset.blockchain,o)}})})}i(zp,"generateBalanceWarnings");function tr(t,e){return(t?new Qe(t):Ue).multipliedBy(e||0)}i(tr,"calcOutputUsdValue");function Yo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Jn.NetworkChanged}i(Yo,"isNetworkStatusInWarningState");function qp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Yo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Jn.WaitingForConnectingWallet:n=n||ut.t("Waiting for connecting wallet");break;case Jn.WaitingForQueue:n=n||ut.t("Waiting for other running tasks to be finished");break;case Jn.WaitingForNetworkChange:n=n||ut.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(qp,"getSwapMessages");function Hp(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(Hp,"getLastConvertedTokenInFailedSwap");function Gp(t){return t.status==="failed"}i(Gp,"shouldRetrySwap");function Vp(t,e,o,n,r,a){if(!n||t)return!0;let s=Zt({filter:"all",quote:n}),l=Zt({filter:"required",quote:n}),p=s.every(g=>r.some(d=>d.chain===g)),c=l.every(g=>r.some(d=>d.chain===g)),u=o&&a?Yn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!u||!c)}i(Vp,"isConfirmSwapDisabled");function Kp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Kp,"isTokensIdentical");function nr(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(nr,"getQuoteToTokenUsdPrice");function ta(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(ta,"isNumberOfSwapsChanged");function oa(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Li(o,n)}i(oa,"isQuoteSwappersUpdated");function na(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Li(o,n)}i(na,"isQuoteInternalCoinsUpdated");function Yp(t,e){return ta(t,e)||oa(t,e)||na(t,e)}i(Yp,"isQuoteChanged");function jp(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(jp,"getRequiredBalanceOfWallet");function It(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(It,"getPriceImpactLevel");function rr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Dh(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Pi(a?a.toBlockchain:n.fromBlockchain,e),p=Pi(r.toBlockchain,e),c=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),g=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:c,toBlockchain:p,toToken:u,inputAmount:g}}i(rr,"createRetryQuote");function Eo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=to(o,t.requestAmount),l=to(n,t?.outputAmount??"");if(t&&s&&l){let u=nt(s.toString(),l.toString());if(!!u&&Np(s,u)){let d=Rn(t?.swaps,r),m=It(u);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:u,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=er(t.swaps),c=a>gp;if($p(e.userSlippage.toString(),p)){if(c&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:_p(t,a),minRequiredSlippage:p};return null}i(Eo,"generateQuoteWarnings");function nt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Up(t.toString(),e.toString());return n&&n<0?n:null}i(nt,"getPriceImpact");var Zp=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"),ir=i((t,e)=>e.sort((o,n)=>{let r=i(c=>c.scores?.find(u=>u.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"),Jp=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"),Rp=i(t=>{let e=i((o,n)=>{let r=Zi.indexOf(o.value),a=Zi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var to=i((t,e)=>t?.usdPrice?new Ve(e||Ue).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),H=Ft(_h()($h(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Ve(0),outputUsdValue:new Ve(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=Ue;return Ko(o.inputAmount)?(e&&(n=e?.outputAmount?new Ve(e?.outputAmount):null,r=tr(e?.outputAmount,nr(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 Ve(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Ve(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Ve(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:to(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Ve(0)}})},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:null,outputUsdValue:new Ve(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:to(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:to(n??null,s),outputUsdValue:new Ve(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?to(e.toToken,e.outputAmount?.toString()||""):new Ve(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Ve(0),inputUsdValue:new Ve(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Ve(0),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})})))),ec=H.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 tc(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:c}=H(),u=h().config,g=h().fetchStatus,d=h().blockchains(),m=h().tokens(),{findToken:f}=h(),{setAffiliateRef:C,setAffiliatePercent:S,setAffiliateWallets:y}=h(),T=u?.from?.tokens,k=u?.from?.blockchains,v=u?.to?.tokens,b=u?.to?.blockchains,W=ar(void 0),w=ar(void 0),x=ar(void 0),E=ar(void 0);Io(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Io(()=>{if(g==="success"){r();let A=d.find(I=>I.name===u?.from?.blockchain),L=u?.from?.token,q=L&&f(L);(A||!A&&x.current)&&n(A??null),q?a({token:q,meta:{blockchains:d,tokens:m}}):!q&&W.current&&a({token:null}),x.current=u?.from?.blockchain,W.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,g]),Io(()=>{Ui(s,T)&&a({token:null}),Qi(p,k)&&n(null)},[T,k]),Io(()=>{Ui(l,v)&&a({token:null}),Qi(c,b)&&o(null)},[v,b]),Io(()=>{if(g==="success"){r();let A=d.find(I=>I.name===u?.to?.blockchain),L=u?.to?.token,q=L&&f(L);(A||!A&&E.current)&&o(A??null),q?e({token:q,meta:{blockchains:d,tokens:m}}):!q&&w.current&&e({token:null}),E.current=u?.to?.blockchain,w.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,g]),Io(()=>{C(u?.affiliate?.ref??null),S(u?.affiliate?.percent??null),y(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(tc,"useSyncStoresWithConfig");import{useEffect as aa,useRef as Fh}from"react";import{useInRouterContext as Oh,useLocation as Uh,useSearchParams as Qh}from"react-router-dom";function ra(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(ra,"convertTokenSearchParamToAsset");function ia(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(ia,"tokenToSearchParam");function sa(){let t=Uh(),[e,o]=Qh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:c,setFromToken:u,setToToken:g,setInputAmount:d}=H(),m=h().fetchStatus,f=h().blockchains(),C=h().tokens(),S=Oh(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=Fh(),{findToken:b}=h(),W=i(()=>{let x={};for(let[_,X]of e.entries())_.startsWith("utm_")&&(x[_]=X);let E=e.get("fromAmount"),A=e.get("fromBlockchain"),L=e.get("fromToken"),q=e.get("toBlockchain"),I=e.get("toToken"),Q=e.get("autoConnect"),te=e.get("clientUrl"),P=e.get("liquiditySources");return{fromAmount:E,fromBlockchain:A,fromToken:L,toBlockchain:q,toToken:I,autoConnect:Q,clientUrl:te,liquiditySources:P,utmQueryParams:x}},"getUrlSearchParams"),w=i(x=>{for(let E in x)x[E]||delete x[E];o(x,{replace:!0})},"updateUrlSearchParams");aa(()=>{let{autoConnect:x,clientUrl:E,utmQueryParams:A}=W();S&&m==="success"&&w({fromBlockchain:n?.name,fromToken:ia(a),toBlockchain:r?.name,toToken:ia(s),fromAmount:l,autoConnect:x??void 0,clientUrl:E??void 0,liquiditySources:k?v.current:void 0,...A})},[t.pathname,l,n,a,r,s,k]),aa(()=>{if(!S)return;let x=W();if(!v.current&&x.liquiditySources&&(v.current=x.liquiditySources),x.fromAmount&&d(x.fromAmount),m==="success"){let E=f.find(I=>I.name===x.fromBlockchain),A=x.fromToken&&E?b(ra(x.fromToken,E)):void 0,L=f.find(I=>I.name===x.toBlockchain),q=x.toToken&&L?b(ra(x.toToken,L)):void 0;E&&(p(E),A&&u({token:A,meta:{blockchains:f,tokens:C}})),L&&(c(L),q&&g({token:q,meta:{blockchains:f,tokens:C}}))}},[m]),aa(()=>{let{clientUrl:x,liquiditySources:E}=W();y("clientUrl",x||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(sa,"useSyncUrlAndStore");import{i18n as ms}from"@lingui/core";import{useManager as yT}from"@rango-dev/queue-manager-react";import{Alert as $m,Button as ST,css as fs,Divider as ds,IconButton as Fm,styled as CT,Typography as TT,WalletIcon as kT}from"@rango-dev/ui";import We,{useEffect as jr,useLayoutEffect as vT,useRef as xT,useState as un}from"react";import{useNavigate as wT}from"react-router-dom";import{i18n as co}from"@lingui/core";import{Alert as gu,BalanceErrors as aC,Button as hu,ChevronLeftIcon as sC,Divider as Ir,MessageBox as lC,Typography as Ga}from"@rango-dev/ui";import J,{useCallback as pC,useEffect as yu,useMemo as cC,useState as uo}from"react";import{useNavigate as uC}from"react-router-dom";import{i18n as sr}from"@lingui/core";function lr(t){switch(t.type){case 0:return sr.t("Route has been updated.");case 3:return sr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return sr.t("Route swappers has been updated.");case 2:return sr.t("Route internal coins has been updated.");default:return""}}i(lr,"getQuoteUpdateWarningMessage");import{Modal as qh}from"@rango-dev/ui";import Hh from"react";function ne(t){let{watermark:e}=pe();return Hh.createElement(qh,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import{i18n as ua}from"@lingui/core";import{Alert as Xh,ChevronDownIcon as Yh,CloseIcon as Zh,Divider as pc,IconButton as cc,PasteIcon as Jh,Typography as Rh,WalletIcon as ey}from"@rango-dev/ui";import Le,{useEffect as ty,useRef as oy}from"react";import mr,{useRef as Kh}from"react";import*as Ao from"@radix-ui/react-collapsible";import{keyframes as nc,styled as pr}from"@rango-dev/ui";var la=300,Gh=nc({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Vh=nc({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),rc=pr(Ao.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),pa=pr(Ao.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),cr=pr(Ao.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Gh} ${la}ms ease-out`},false:{animation:`${Vh} ${la}ms ease-out`}}}}),ur=pr("div",{transition:`all ${la}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function dr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=Kh(null);return mr.createElement(rc,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&mr.createElement(pa,{className:"collapsible_trigger",onClick:a},s),mr.createElement(cr,{className:"collapsible_content",open:e},r),l==="bottom"&&mr.createElement(pa,{className:"collapsible_trigger",onClick:a},s))}i(dr,"CustomCollapsible");import{darkTheme as ic,styled as ca,TextField as jh}from"@rango-dev/ui";var ac=ca("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),sc=ca(jh,{backgroundColor:"$neutral100",padding:"$15"}),lc=ca("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${ic} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${ic} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function uc(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=H(),{config:s}=h(),l=h().blockchains(),p=Pn(e.name,l),c=oy(null),u=s?.defaultCustomDestinations?.[e.name],g=navigator?.userAgent.includes("Firefox"),m=n&&!!r&&e&&!Yn(e,r),f=i(()=>{a("")},"handleClear"),C=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let T=await navigator.clipboard.readText();a(T),c?.current?.focus()}},"handlePaste"),S=i(()=>r?Le.createElement(cc,{onClick:f,variant:"ghost"},Le.createElement(Zh,{size:12,color:"gray"})):g?null:Le.createElement(cc,{onClick:C,variant:"ghost"},Le.createElement(Jh,{size:16})),"renderSuffix");return ty(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Le.createElement(ac,null,Le.createElement(dr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Le.createElement(lc,null,Le.createElement("div",{className:"button__content"},Le.createElement(ey,{size:18,color:"info"}),Le.createElement(pc,{size:4,direction:"horizontal"}),Le.createElement(Rh,{variant:"label",size:"medium",color:n?"$neutral600":void 0},ua.t("Send to a different address"))),Le.createElement(ur,{orientation:n?"up":"down"},Le.createElement(Yh,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Le.createElement(sc,{ref:c,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:ua.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:S(),onChange:y=>{let T=y.target.value;a(T)}})),m&&Le.createElement(Le.Fragment,null,Le.createElement(pc,{size:4}),Le.createElement(Xh,{variant:"alarm",type:"error",title:ua.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(uc,"CustomDestination");import{css as ny,darkTheme as ma,IconButton as ry,styled as At}from"@rango-dev/ui";var mc=At("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),dc=At("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),iy=At("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ma} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ma} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ma} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),fc=At(iy,{alignSelf:"stretch",minHeight:"93px"}),gc=At("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),hc=At(ry,{position:"absolute",left:"$20"}),yc=At("div",{paddingTop:"$20"}),Sc=ny({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Cc=At("div",{display:"flex"}),Tc=At("div",{overflow:"visible",width:"100%"});import{i18n as mt}from"@lingui/core";import{Button as oC,Divider as qa,Image as nC,MessageBox as br,SelectableWallet as rC,Typography as mu,WalletState as du}from"@rango-dev/ui";import de,{useEffect as fu,useState as po}from"react";import{WalletState as da}from"@rango-dev/ui";import{useWallets as ay}from"@rango-dev/wallets-react";import{detectMobileScreens as sy,KEPLR_COMPATIBLE_WALLETS as ly,WalletTypes as No}from"@rango-dev/wallets-shared";import{useCallback as py,useEffect as cy,useState as uy}from"react";var my=Object.values(No);function oo(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:c}=ay(),{connectedWallets:u}=oe(),g=h().blockchains(),d=ap(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||my,m=ql(s,p,d,e);m=sy()?m.filter(w=>w.showOnMobile!==!1&&s(w.type).installed):m;let f=Xl(m),[C,S]=uy(""),y=i(w=>!u.find(x=>x.walletType===w&&x.chain===e),"isExperimentalChainNotAdded"),T=i(async(w,x)=>{let E=s(w);try{if(C&&S(""),E.connected)await l(w);else{if(Ln(m,a.multiWallets))return;o?.(w),await c(w,void 0,x),n?.(w)}}catch(A){r?.(A?.message),S("Error: "+A?.message)}},"handleClick"),k=py(()=>{let w=m?.filter(x=>x.state===da.CONNECTING)||[];for(let x of w)l(x.type)},[Jl(m)]),v=i(async w=>{s(w).connected&&await l(w)},"disconnectWallet");cy(()=>()=>{k()},[]);let b=i(w=>{let x=w.find(A=>A.type===No.DEFAULT);return!x||x.state===da.NOT_INSTALLED?!1:w.filter(A=>A.state!=da.NOT_INSTALLED&&![No.DEFAULT,No.WALLET_CONNECT_2,No.LEDGER].includes(A.type)&&p(A.type).supportedChains.filter(L=>L.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),W=i((w,x,E)=>Un(E,x)&&y(w)&&!ly.includes(w)||w==No.DEFAULT&&!b(m),"shouldExcludeWallet");return{list:f.filter(w=>!W(w.type,e??"",g)),error:C,handleClick:T,disconnectConnectingWallets:k,disconnectWallet:v}}i(oo,"useWalletList");import{i18n as iu}from"@lingui/core";import{Divider as KS,getCategoriesCount as jS,SelectableCategoryList as XS,styled as su,Typography as YS,Wallet as ZS,WalletState as au}from"@rango-dev/ui";import at,{useState as Ro}from"react";import{useManager as yS}from"@rango-dev/queue-manager-react";import{BottomLogo as SS,Divider as Vc,Header as CS}from"@rango-dev/ui";import we,{useEffect as Da,useRef as Kc,useState as TS}from"react";import{useRef as dy}from"react";function fr(){return window.self!==window.top}i(fr,"isAppLoadedIntoIframe");function fa(){let t=dy(null),{iframe:e}=h(),o=fr()&&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(fa,"useIframe");import{useNavigate as fy}from"react-router-dom";function rt(){let t=fy();return()=>t(-1)}i(rt,"useNavigateBack");import{createTheme as ka,darkTheme as Ay,lightTheme as Ny}from"@rango-dev/ui";import{useEffect as Wy,useState as My}from"react";import{theme as Ey,darkColors as Iy}from"@rango-dev/ui";import Ca from"react";function gy(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(gy,"expandShortHexColor");function hy(t){return/[0-9]+$/.test(t)}i(hy,"isOverridingColor");function yy(t,e){return t.padStart(e,"0")}i(yy,"pad");function ga(t){let e=Math.min(Math.max(Math.round(t),0),255);return yy(e.toString(16),2)}i(ga,"intToHex");function Sy(t){return`#${ga(t.red)}${ga(t.green)}${ga(t.blue)}`}i(Sy,"rgbToHex");function Cy(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(Cy,"hexToRGB");function Ty(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Ty,"generateShade");function ky(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(ky,"generateTint");function vy(t){return kc(t,Ty)}i(vy,"calculateShades");function xy(t){return kc(t,ky)}i(xy,"calculateTints");function kc(t,e){let o=Cy(t),n=[];for(let r=1;r<9;r++)n.push(Sy(e(o,r)));return n}i(kc,"calculateColors");function ha(t,e,o){let a=xy(t).reverse().concat(t),s=vy(t),l=a.concat(s),p={},c=l.length;for(let u=0;u<c;u++){let g=100+(o?c-1-u:u)*50;p[`${e}${g}`]=l[u]}return p}i(ha,"createTintsAndShades");function ya(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)&&!hy(r)){let p=gy(a);Object.assign(n,ha(p,r,s))}}return{...n,...e}}i(ya,"expandToGenerateThemeColors");var vc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),wy=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=vc(o%52)+e;return vc(o%52)+e},"toAlphabeticName"),by=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Sa=i(t=>wy(by(5381,JSON.stringify(t))>>>0),"toHash");function Ta(t){let e=Ey.colors,o={...e,...Iy},n,r;if(t?.light){let s={colors:ya(e,t.light)};n={id:`${Oi}-light-${Sa(s)}`,tokens:s}}if(t?.dark){let s={colors:ya(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Oi}-dark-${Sa(s)}`,tokens:s}}return{light:n,dark:r}}i(Ta,"customizedThemeTokens");function xc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ca.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ca.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ca.cloneElement(e,{key:l}))}}),o}i(xc,"joinList");function wc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(wc,"doesWindowPreferDarkColorScheme");function gr(t){let{colors:e,fontFamily:o=Wl,borderRadius:n=op,secondaryBorderRadius:r=np}=t,[a,s]=My(wc()?"dark":"light"),{theme:l}=h(),{dark:p,light:c}=Ta(e),u=ka({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),g=[u.className,Ny.className],d=[u.className,Ay.className];if(c){let f=ka(c.id,c.tokens);g.push(f.className)}if(p){let f=ka(p.id,p.tokens);d.push(f.className)}return Wy(()=>{let f=i(C=>{C.matches?s("dark"):s("light")},"switchThemeListener");return wc()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=g.join(" "),C=d.join(" ");return l==="auto"?a==="dark"?C:f:l==="dark"?C:f},"getActiveTheme")}}i(gr,"useTheme");var it=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 bc}from"@lingui/core";import{Alert as By,Button as Ly}from"@rango-dev/ui";import Ec from"react";function va(t){return Ec.createElement(By,{action:Ec.createElement(Ly,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},bc.t("Activate this tab")),type:"warning",variant:"alarm",title:bc.t("Another tab is open and handles transactions.")})}i(va,"ActivateTabAlert");import{i18n as xa}from"@lingui/core";import{Button as Py,Divider as Dy,MessageBox as _y}from"@rango-dev/ui";import hr from"react";function wa(t){let{open:e,onClose:o,onConfirm:n}=t;return hr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},hr.createElement(_y,{title:xa.t("Activate current tab"),type:"warning",description:xa.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.")},hr.createElement(Dy,{size:20}),hr.createElement(Py,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},xa.t("Confirm"))))}i(wa,"ActivateTabModal");import{ChevronLeftIcon as Oy}from"@rango-dev/ui";import Lc from"react";import{css as $y,darkTheme as Ic,IconButton as Fy,styled as no}from"@rango-dev/ui";var Tt=no(Fy,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Ic} &`]:{backgroundColor:"$neutral"}}}),Ac=no("div",{position:"absolute",background:"$secondary500",[`.${Ic} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Ut=no("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Nc=no("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"}}}}),Wc=no("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Mc=no("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Bc=$y({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),yr=no("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ba(t){return Lc.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},Lc.createElement(Oy,{color:"black",size:16}))}i(ba,"BackButton");import{i18n as Uy}from"@lingui/core";import{Button as Qy,Typography as zy}from"@rango-dev/ui";import Ea from"react";function Ia(t){return Ea.createElement(Ut,null,Ea.createElement(Qy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Ea.createElement(zy,{variant:"label",size:"medium",color:"error500"},Uy.t("Cancel"))))}i(Ia,"CancelButton");import{i18n as qy}from"@lingui/core";import{Image as Hy,Tooltip as Gy,WalletIcon as Vy}from"@rango-dev/ui";import ro from"react";function Aa(t){let{list:e}=oo({}),o=e.filter(r=>r.state==="connected"),n=o.length?ro.createElement("div",{className:Bc()},o.map(r=>ro.createElement(yr,{key:r.title},ro.createElement(Hy,{src:r.image,size:14})))):qy.t("Connect Wallet");return ro.createElement(Gy,{container:t.container,side:"bottom",content:n},ro.createElement(Tt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&ro.createElement(Ac,null),ro.createElement(Vy,{size:18,color:"black"})))}i(Aa,"WalletButton");import{i18n as Cr}from"@lingui/core";import{NotificationsIcon as lS,Popover as pS,SettingsIcon as cS,Tooltip as Tr,TransactionIcon as uS}from"@rango-dev/ui";import Pe from"react";import{Notifications as Yy}from"@rango-dev/ui";import Zy from"react";import{useNavigate as Jy}from"react-router-dom";import{create as Ky}from"zustand";import{persist as jy,subscribeWithSelector as Xy}from"zustand/middleware";var Ie=Ft(Ky()(jy(Xy((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:{creationTime:parseInt(n.creationTime),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)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.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 Na(){let t=Jy(),{getNotifications:e,clearNotifications:o}=Ie(),n=e(),r=h().blockchains(),{findToken:a}=h();return Zy.createElement(Yy,{list:n,getBlockchainImage:l=>Ul(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${G.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Na,"NotificationContent");import{useManager as Ry}from"@rango-dev/queue-manager-react";import{InProgressIcon as eS}from"@rango-dev/ui";import Pc from"react";var tS=i(()=>{let{manager:t}=Ry();return it(t).map(({swap:o})=>o).find(o=>o.status==="running")?Pc.createElement(Mc,null,Pc.createElement(eS,{color:"info",size:6})):null},"InProgressTransactionBadge"),Dc=tS;import{EventSeverity as oS}from"@rango-dev/queue-manager-rango-preset";import{Typography as nS}from"@rango-dev/ui";import _c from"react";function $c(){let{getNotifications:t}=Ie(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===oS.WARNING);return o?_c.createElement(Nc,{isSever:n},_c.createElement(nS,{variant:"body",size:"xsmall",color:"$background"},o)):null}i($c,"NotificationsBadge");import{RefreshProgressButton as rS}from"@rango-dev/ui";import Wa,{useEffect as iS,useState as Fc}from"react";var aS=1e3,Oc=60,sS=100;function Sr({onClick:t}){let[e,o]=Fc(0),[n,r]=Fc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");iS(()=>{let p;return t?p=window.setInterval(()=>{o(c=>c+1),e===Oc&&l()},aS):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 Wa.createElement(Tt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Wa.createElement(Wc,{onTransitionEnd:()=>r(!1),isRefetched:n},Wa.createElement(rS,{size:22,color:t?"black":"gray",progress:e/Oc*sS})))}i(Sr,"RefreshButton");function io(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=ot("notification",s)||r.includes("notifications");return Pe.createElement(Pe.Fragment,null,!r.includes("refresh")&&Pe.createElement(Tr,{container:a||B(),side:"top",content:Cr.t("Refresh")},Pe.createElement(Sr,{onClick:e})),!l&&Pe.createElement(pS,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Pe.createElement(Na,null)},Pe.createElement("div",null,Pe.createElement(Tr,{container:B(),side:"top",content:Cr.t("Notifications")},Pe.createElement(Tt,{size:"small",variant:"ghost"},Pe.createElement(lS,{size:18,color:"black"}),Pe.createElement($c,null))))),!r.includes("settings")&&Pe.createElement(Tr,{container:B(),side:"top",content:Cr.t("Settings")},Pe.createElement(Tt,{size:"small",variant:"ghost",onClick:n},Pe.createElement(cS,{size:18,color:"black"}))),!r.includes("history")&&Pe.createElement(Tr,{container:B(),side:"top",content:Cr.t("Transactions History")},Pe.createElement(Tt,{size:"small",variant:"ghost",onClick:o},Pe.createElement(uS,{size:18,color:"black"}),Pe.createElement(Dc,null))))}i(io,"HeaderButtons");import{i18n as Ma}from"@lingui/core";import{Divider as Qc,MessageBox as fS,RefreshIcon as gS}from"@rango-dev/ui";import Wo from"react";import{Button as mS,styled as dS}from"@rango-dev/ui";var Uc=dS(mS,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Ba(t){let{open:e,onClose:o}=t;return Wo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:B()},Wo.createElement(fS,{title:Ma.t("Something went wrong"),type:"error",description:Ma.t("Something went wrong. Please refresh the app.")},Wo.createElement(Qc,{size:30}),Wo.createElement(Uc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Wo.createElement(gS,{size:20,color:"primary"}),Wo.createElement(Qc,{size:4,direction:"horizontal"}),Ma.t("Refresh"))))}i(Ba,"RefreshModal");function La(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(La,"onScrollContentAttachStatusToContainer");import{css as hS,styled as Pa}from"@rango-dev/ui";var zc="700px",kr=hS({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),qc=Pa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:zc},fixed:{height:zc}}}}),Hc=Pa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Gc=Pa("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 me(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=fa(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,c]=TS(!1),u=oe.use.connectedWallets(),{config:{features:g,theme:d}}=h(),{watermark:m}=pe(),f=m==="FULL",{activeTheme:C}=gr(d||{}),S=ot("connectWalletButton",g),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:b}=pe(),W=rt(),{manager:w}=yS(),E=it(w).map(({swap:te})=>te).some(te=>te.status==="running"),A=i(()=>b(Rt.forceClaim,E),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),q=typeof r.hasBackButton>"u"||r.hasBackButton,I=Kc(null),Q=Kc(null);return Da(()=>(fr()&&Q.current&&e(Q.current),()=>{o()}),[]),Da(()=>(I.current?.addEventListener("scroll",La),()=>{I.current?.removeEventListener("scroll",La)}),[]),Da(()=>{c(l==="failed")},[l]),we.createElement(qc,{height:s,id:Ce.SWAP_BOX_ID,className:`${C()} ${kr()}`,ref:Q},we.createElement(CS,{prefix:we.createElement(we.Fragment,null,q&&we.createElement(ba,{onClick:()=>{W(),r.onBack&&r.onBack()}})),title:r.title,suffix:we.createElement(we.Fragment,null,r.suffix,r.onWallet&&!S&&we.createElement(Aa,{container:B(),onClick:L,isConnected:!!u?.length}),r.onCancel&&we.createElement(Ia,{onClick:r.onCancel}))}),we.createElement(Hc,{ref:I},n),we.createElement(wa,{open:k,onClose:()=>v(!1),onConfirm:A}),we.createElement(Gc,null,we.createElement("div",{className:"footer__content"},T&&!y&&we.createElement("div",{className:"footer__alert"},we.createElement(va,{onActivateTab:A}),we.createElement(Vc,{size:10})),a),we.createElement(Vc,{size:12}),we.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},we.createElement(SS,null))),we.createElement(Ba,{open:p,onClose:()=>c(!1)}))}i(me,"Layout");import{styled as kS}from"@rango-dev/ui";var jc="$20 $20 $10 $20",Zo=kS("div",{padding:jc,overflowY:"auto",flexGrow:1});import{styled as vS}from"@rango-dev/ui";var ye=vS("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as Lo}from"@lingui/core";import{Button as ES,Divider as Zc,Image as IS,MessageBox as AS,Select as NS,TextField as WS}from"@rango-dev/ui";import{namespaces as MS}from"@rango-dev/wallets-shared";import Ke,{useEffect as BS,useState as Jc}from"react";import{keyframes as xS,styled as vr}from"@rango-dev/ui";var BM=vr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Mo=vr("div",{position:"relative"}),wS=xS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Bo=vr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${wS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),xr=vr("div",{"& img":{borderRadius:"50%"}});import{styled as Xc,Typography as bS}from"@rango-dev/ui";var Yc=Xc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),_a=Xc(bS,{paddingLeft:"$10"}),$a={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var eu={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Rc(t){let e=t?MS[t].derivationPaths:null;return e?[...e,eu]:[]}i(Rc,"getDerivationPaths");function ao(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Jc(null),[c,u]=Jc("0"),g=l===eu.id,d=Rc(n),m=i(({value:C})=>{let S=d?.find(y=>y.id===C);S&&p(S.id)},"handleDerivationPathItemClick"),f=i(()=>{let C=d.find(S=>S.id===l);if(C)o(C.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return BS(()=>{p(Rc(n)[0]?.id||null)},[n]),Ke.createElement(ne,{open:s,onClose:e,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},Ke.createElement(Zc,{size:20}),Ke.createElement(AS,{type:"info",title:Lo.t("Select Derivation Path"),description:Lo.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:Ke.createElement(Mo,null,Ke.createElement(xr,null,Ke.createElement(IS,{src:r,size:45})),Ke.createElement(Bo,null))}),Ke.createElement(Yc,null,Ke.createElement(_a,{variant:"body",size:"xsmall",color:"$neutral600"},Lo.t("Choose Derivation Path Template")),Ke.createElement(NS,{value:l||"",options:d.map(C=>({value:C.id,label:C.label})),variant:"filled",handleItemClick:m,styles:{trigger:$a}}),Ke.createElement(Zc,{size:20}),Ke.createElement(_a,{variant:"body",size:"xsmall",color:"$neutral600"},g?Lo.t("Enter Path"):Lo.t("Enter Index")),Ke.createElement(WS,{type:g?"text":"number",variant:"contained",value:c,onChange:C=>u(C.target.value),style:$a})),Ke.createElement(ES,{type:"primary",onClick:f,disabled:!d||!l||!c},Lo.t("Confirm")))}i(ao,"WalletDerivationPathModal");import{Divider as DS}from"@rango-dev/ui";import Oa from"react";import{i18n as Po}from"@lingui/core";import{Image as LS,MessageBox as Fa,WalletState as PS}from"@rango-dev/ui";import so from"react";function tu(t){let{state:e,image:o,error:n}=t;return e===PS.CONNECTED?so.createElement(Fa,{type:"success",title:Po.t("Wallet Connected"),description:Po.t("Your wallet is connected, you can use it to swap.")}):n?so.createElement(Fa,{type:"error",title:Po.t("Failed to Connect"),description:n||Po.t("Your wallet is not connected. Please try again.")}):so.createElement(Fa,{type:"loading",title:Po.t("Connecting to your wallet"),description:Po.t("Click connect in your wallet popup."),icon:so.createElement(Mo,null,so.createElement(xr,null,so.createElement(LS,{src:o,size:45})),so.createElement(Bo,null))})}i(tu,"ModalContent");function Jo(t){let{open:e,onClose:o,...n}=t;return Oa.createElement(ne,{open:e,onClose:o,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},Oa.createElement(tu,{...n}),Oa.createElement(DS,{direction:"vertical",size:32}))}i(Jo,"WalletModal");import{i18n as Ua}from"@lingui/core";import{Button as $S,Checkbox as FS,Divider as OS,Image as nu,ListItemButton as US,MessageBox as QS,Radio as zS,RadioRoot as qS}from"@rango-dev/ui";import{namespaces as ru}from"@rango-dev/wallets-shared";import De,{useMemo as HS,useState as GS}from"react";import{styled as _S}from"@rango-dev/ui";var ou=_S("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var VS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function lo(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=GS([]),a=h().blockchains(),s=HS(()=>o?.map(c=>({name:c,logo:VS(a,ru[c].mainBlockchain),title:ru[c].title})),[o]),l=i(c=>{r(e?[c]:u=>u.includes(c)?u.filter(g=>g!==c):u.concat(c))},"onSelect"),p=i(c=>e?De.createElement(qS,{value:n?.[0]},c):De.createElement(De.Fragment,null,c),"wrapRadioRoot");return De.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},De.createElement(OS,{size:20}),De.createElement(QS,{type:"info",title:Ua.t("Select chain types"),description:Ua.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:De.createElement(Mo,null,De.createElement(yr,null,De.createElement(nu,{src:t.image,size:45})),De.createElement(Bo,null))}),De.createElement(ou,null,p(De.createElement(De.Fragment,null,s?.map(c=>De.createElement(US,{key:c.name,id:c.name,title:c.title,hasDivider:!0,style:{height:60},onClick:()=>l(c.name),start:De.createElement(nu,{src:c.logo,size:22}),end:e?De.createElement(zS,{value:c.name}):De.createElement(FS,{checked:n.includes(c.name)})}))))),De.createElement($S,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Ua.t("Confirm")))}i(lo,"WalletNamespacesModal");var JS=su("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),RS=su(ye,{textAlign:"center"}),wr=3e3,Qa=300;function lu(){let{fetchStatus:t}=h(),[e,o]=Ro("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Ro(!1),[l,p]=Ro(null),[c,u]=Ro(null),[g,d]=Ro(""),m=null,f=pe.use.isActiveTab(),{list:C,handleClick:S,error:y,disconnectConnectingWallets:T}=oo({onBeforeConnect:P=>{m=setTimeout(()=>{s(!0),d(P)},Qa)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},wr)}}),k=i(()=>{T(),s(!1)},"handleCloseWalletModal"),v=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),b=i(()=>{c&&u({...c,open:!1})},"handleCloseDerivationPathModal"),W=C.find(P=>P.type===g),w=W?.image||"",x=W?.state||au.NOT_INSTALLED,E=Rl(C,n),L=jS(E)!==1,q=ep(C,e),I=i(P=>{Ln(C,r.multiWallets)||(P.namespaces?.length&&P.state===au.DISCONNECTED?P.namespaces.length>1?p({open:!0,providerType:P.type,providerImage:P.image,availableNamespaces:P.namespaces,singleNamespace:P.singleNamespace}):P.needsDerivationPath?u({open:!0,providerType:P.type,providerImage:P.image,namespace:P.namespaces[0]}):S(P.type):S(P.type))},"handleWalletItemClick"),Q=i(P=>{let _=q.find(X=>X.type===l?.providerType);_?.singleNamespace&&_?.needsDerivationPath&&P[0]?u({open:!0,providerType:_.type,providerImage:_.image,namespace:P[0]}):S(l?.providerType,P.map(X=>({namespace:X}))),v()},"handleConfirmNamespaces"),te=i(P=>{P&&c?.namespace&&S(c.providerType,[{namespace:c.namespace,derivationPath:P}]),b()},"handleDerivationPathConfirm");return at.createElement(me,{header:{title:iu.t("Connect Wallets")}},at.createElement(RS,null,L&&at.createElement(at.Fragment,null,at.createElement(XS,{setCategory:o,category:e,blockchains:E,isLoading:t==="loading"}),at.createElement(KS,{size:24})),at.createElement(YS,{variant:"title",size:"xmedium",align:"center"},iu.t("Choose a wallet to connect.")),at.createElement(JS,null,q.map((P,_)=>{let X=`wallet-${_}-${P.type}`;return at.createElement(ZS,{key:X,...P,container:B(),onClick:()=>I(P),isLoading:t==="loading",disabled:!f})}),at.createElement(Jo,{open:!!a,onClose:k,image:w,state:x,error:y}),at.createElement(lo,{open:!!l?.open,onClose:v,onConfirm:Q,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),at.createElement(ao,{open:!!c?.open,selectedNamespace:c?.namespace,type:c?.providerType,image:c?.providerImage,onClose:b,onConfirm:te}))))}i(lu,"WalletsPage");import{keyframes as eC,styled as za}from"@rango-dev/ui";var pu=za("div",{position:"relative"}),tC=eC({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),cu=za("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${tC} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),uu=za("div",{"& img":{borderRadius:"50%"}});var iC=7;function Ha(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=pe.use.isActiveTab(),p=oe.use.connectedWallets(),{blockchains:c}=h(),[u,g]=po(""),[d,m]=po(null),[f,C]=po(!1),[S,y]=po(null),[T,k]=po(null),[v,b]=po(null),{suggestAndConnect:W}=Er(),w=null,{list:x,error:E,handleClick:A,disconnectWallet:L,disconnectConnectingWallets:q}=oo({chain:e,onBeforeConnect:N=>{w=setTimeout(()=>{g(N)},Qa)},onConnect:N=>{s?.(N),w&&clearTimeout(w),setTimeout(()=>{g("")},wr)}}),[I,Q]=po(x),te=x.length,P=r&&te-r>0,_=i(async N=>{C(!1),y("in-progress");try{await W(N.walletType,N.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),X=i(()=>{T&&k({...T,open:!1})},"handleCloseNamespaceModal"),Se=i(()=>{v&&b({...v,open:!1})},"handleCloseDerivationPathModal"),Y=i(N=>{k({open:!0,providerType:N.type,providerImage:N.image,availableNamespaces:N.namespaces,singleNamespace:N.singleNamespace})},"handleOpenNamespacesModal"),ie=i(N=>{let ce=I.find(ue=>ue.type===T?.providerType);ce?.singleNamespace&&ce?.needsDerivationPath&&N[0]?b({open:!0,providerType:ce.type,providerImage:ce.image,namespace:N[0]}):A(T?.providerType,N.map(ue=>({namespace:ue}))),X()},"handleConfirmNamespaces"),he=i(N=>{N&&v?.namespace&&A(v.providerType,[{namespace:v.namespace,derivationPath:N}]),Se()},"handleDerivationPathConfirm");fu(()=>{Q(N=>{let ce=x.findIndex(ue=>o(ue.type,e));return P&&ce>1?[x[ce]].concat(x.filter((ue,$e)=>$e!==ce)):N.map(ue=>x.find($e=>$e.type===ue.type)??ue)})},[JSON.stringify(x)]);let Te=document.getElementById(Ce.SWAP_BOX_ID);fu(()=>{let N=null;return(S==="completed"||S==="rejected")&&(N=setTimeout(()=>y(null),wr)),()=>{N&&clearTimeout(N)}},[S]);let $=i(()=>{q(),g("")},"handleCloseWalletModal");return de.createElement(de.Fragment,null,I.slice(0,r).map(N=>{let ce=Yl({connectedWallets:p,walletType:N.type,chain:e}),ue=ce?zn(ce,iC):"",$e=Un(c(),e),D=!p.find(le=>le.walletType===N.type&&le.chain===e),z=$e&&D&&N.state===du.CONNECTED,K=z?mt.t({id:"Add {chain} chain",values:{chain:e}}):ue,se=i(async()=>{N.state===du.DISCONNECTED?N.namespaces?.length?N.namespaces.length>1?Y(N):N.needsDerivationPath?b({open:!0,providerType:N.type,providerImage:N.image,namespace:N.namespaces[0]}):A(N.type):A(N.type):N.namespaces&&!ue?(await L(N.type),Y(N)):z?(m({walletType:N.type,chain:e,address:ce??""}),C(!0)):n({walletType:N.type,chain:e,address:ce??""})},"onSelectableWalletClick"),ee=d?.chain?Pn(d.chain,c()):void 0;return de.createElement(de.Fragment,{key:`${N.title}_${ee}`},de.createElement(Jo,{open:u===N.type,onClose:$,image:N.image,state:N.state,error:E}),de.createElement(lo,{open:!!T?.open,onClose:X,onConfirm:ie,image:T?.providerImage,availableNamespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),de.createElement(ao,{open:!!v?.open,selectedNamespace:v?.namespace,type:v?.providerType,image:v?.providerImage,onClose:Se,onConfirm:he}),!!d&&de.createElement(ne,{open:!!d&&f,container:Te,onClose:()=>{m(null)}},de.createElement(br,{title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),type:"warning",description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}})},de.createElement(qa,{size:18}),de.createElement(qa,{size:32}),de.createElement(oC,{onClick:_.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},mt.t("Confirm")))),S&&de.createElement(ne,{open:!!S,onClose:y.bind(null,null),container:Te},S==="in-progress"&&de.createElement(br,{type:"loading",title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}}),icon:de.createElement(pu,null,de.createElement(uu,null,de.createElement(nC,{src:N.image,size:45})),de.createElement(cu,null))}),S==="completed"&&de.createElement(br,{type:"success",title:mt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ee}}),description:mt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ee}})}),S==="rejected"&&de.createElement(br,{type:"error",title:mt.t("Request Rejected"),description:mt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ee}})}),de.createElement(qa,{direction:"vertical",size:32})),de.createElement(rC,{key:N.type,description:K,onClick:se,selected:o(N.type,e),disabled:!l,...N}))}),P&&de.createElement(fc,{selected:!1,onClick:a},de.createElement(mu,{variant:"label",size:"medium"},mt.t("Show more wallets"),de.createElement(mu,{variant:"label",size:"medium",color:"$primary"},"\xA0+",te-(r??0)))))}i(Ha,"WalletList");var mC=2;function Su(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=uC(),l=h().blockchains(),{selectedQuote:p,setSelectedWallets:c,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:g,customDestination:d,setCustomDestination:m}=H(),{connectedWallets:f,selectWallets:C}=oe(),{config:S}=h(),[y,T]=uo(""),[k,v]=uo([]),[b,W]=uo(""),[w,x]=uo(null),[E,A]=uo(!!d),L=cC(()=>Zt({filter:"all",quote:p}),[p]),q=Zt({filter:"required",quote:p}),I=l.find(D=>D.name===p?.swaps[p?.swaps.length-1].to.blockchain),Q=i(D=>q.includes(D),"isWalletRequiredFor"),te=pC(()=>f.filter(D=>D.selected&&L.includes(D.chain)),[f,L]),[P,_]=uo(te()),[X,Se]=uo([]),Y=i((D,z)=>Se(K=>K.concat({blockchain:D,walletType:z})),"addNextSelectedWallets"),ie=k.length>0,he=i((D,z)=>!!P.find(K=>K.walletType===D&&K.chain===z&&K.selected&&(Q(z)||!Q(z)&&!d)),"isSelected"),Te=i((D,z,K)=>{let se=!1;return D.map(ee=>{if(ee.chain===z){let le=ee.selected;return!se&&K?(se=!0,le=!0):K||(le=!1),{...ee,selected:le}}return ee})},"updateSelectableWallets"),$=i(D=>{A(D),D?Q(I?.name??"")||_(z=>Te(z,I?.name||"",!1)):(m(""),_(z=>Te(z,I?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),N=i(D=>{if(y&&T(""),he(D.walletType,D.chain))return;let K=f.find(se=>se.walletType===D.walletType&&se.chain===D.chain);K&&(n(),D.chain===I?.name&&E&&!Q(I.name)&&(A(!1),m(null)),_(se=>se.filter(ee=>ee.chain!==D.chain).concat({...K,selected:!0})))},"onChange"),ce=i(()=>{let D=P.filter(z=>z.selected);C(D),c(D),g(!0),o()},"onConfirmBalance"),ue=i(async()=>{v([]),W(""),x(null);let D=await r?.({selectedWallets:P.filter(K=>K.selected),customDestination:d}),z=D.warnings;z?.balance?.messages&&v(z.balance.messages),z?.quoteUpdate&&x(z.quoteUpdate),D.error&&W(Ap(D.error)),!D.error&&!z?.balance?.messages.length?ce():v(z?.balance?.messages??[])},"onConfirmWallets");yu(()=>{_(D=>{let z=[];return D.forEach(K=>{!f.some(ee=>ee.chain===K.chain&&ee.walletType===K.walletType&&ee.address===K.address)||z.push(K)}),z=z.concat(f.filter(K=>!!!z.find(ee=>ee.chain===K.chain)&&K.selected&&L.includes(K.chain))),z})},[f,L]),yu(()=>{let D=[];X.length>0&&(X.forEach(z=>{let K=f.find(se=>se.chain===z.blockchain&&se.walletType===z.walletType);K?N(K):D.push(z)}),Se(D))},[f,X]);let $e=document.getElementById(Ce.SWAP_BOX_ID);return J.createElement(ne,{open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:$e,...!y&&{footer:J.createElement(Cc,null,J.createElement(hu,{loading:a,disabled:Vp(a,E,d,p,P,I),onClick:ue,variant:"contained",type:"primary",fullWidth:!0,size:"large"},co.t("Confirm")))},...y&&{styles:{container:{padding:"$0"}},header:J.createElement(gc,null,J.createElement(hc,{variant:"ghost",onClick:T.bind(null,"")},J.createElement(sC,{size:16})),J.createElement(Ga,{variant:"headline",size:"small"},co.t({id:"Your {blockchainName} wallets",values:{blockchainName:tt(y,l)}})))},anchor:"center"},J.createElement(ne,{open:ie,onClose:v.bind(null,[]),container:$e},J.createElement(lC,{title:co.t("Insufficient account balance"),type:"error",description:J.createElement(aC,{messages:k??[]})},J.createElement(hu,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ce},co.t("Proceed anyway")))),y&&J.createElement(yc,null,J.createElement("div",{className:Sc()},J.createElement(Ha,{chain:y,isSelected:he,selectWallet:N,onShowMore:()=>T(y),onConnect:D=>{Y(y,D)}}))),!y&&J.createElement(J.Fragment,null,b&&J.createElement(J.Fragment,null,J.createElement(gu,{variant:"alarm",type:"error",title:co.t(b)}),J.createElement(Ir,{size:12})),w&&J.createElement(J.Fragment,null,J.createElement(gu,{variant:"alarm",type:"warning",title:lr(w)}),J.createElement(Ir,{size:12})),J.createElement(Tc,null,L.map((D,z)=>{let K=l.find(Ee=>Ee.name===D),se=`wallet-${z}`,ee=z===L.length-1,le=ee&&I&&S?.customDestination!==!1;return J.createElement("div",{key:se},J.createElement(mc,null,J.createElement(Ga,{variant:"title",size:"xmedium"},co.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),J.createElement(Ga,{variant:"label",color:"$neutral700",size:"medium"},co.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),J.createElement(Ir,{size:24}),J.createElement(dc,null,J.createElement(Ha,{chain:D,isSelected:he,selectWallet:N,limit:mC,onShowMore:()=>T(K?.name??""),onConnect:Ee=>{Y(D,Ee)}})),!ee&&J.createElement(Ir,{size:32}),le&&J.createElement(uc,{blockchain:I,open:E,handleOpenChange:$}))}))))}i(Su,"ConfirmWalletsModal");import{i18n as MC}from"@lingui/core";import{Alert as BC,Button as LC,InfoIcon as PC}from"@rango-dev/ui";import Ze from"react";import{Alert as gC,Button as hC,Divider as ja,NoRouteIcon as yC,RefreshIcon as SC,Typography as bu}from"@rango-dev/ui";import Ye from"react";import{i18n as Cu}from"@lingui/core";var dC=24,fC=60;function Tu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:re().genericServerError,action:{onClick:n,title:Cu.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:re().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Cu.t("Reset")}},description:re().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:re().noResultError.description}}i(Tu,"makeInfo");var Va=(o=>(o[o.small=dC]="small",o[o.large=fC]="large",o))(Va||{}),Ka=(o=>(o.small="small",o.large="medium",o))(Ka||{});import{styled as Ar}from"@rango-dev/ui";var ku=Ar("div",{display:"flex",flexDirection:"column",alignItems:"center"}),vu=Ar("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),xu=Ar("div",{variants:{size:{small:{width:"100%"},large:{}}}}),wu=Ar("div",{padding:"$6 $0"});function en(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=Tu(o,r,()=>a(s,!0),e);return Ye.createElement(ku,null,Ye.createElement(yC,{size:Va[n],color:"gray"}),Ye.createElement(ja,{size:4}),Ye.createElement(bu,{variant:"title",size:Ka[n]},re().noResultError.title),n==="large"&&Ye.createElement(ja,{size:4}),!!l.description&&Ye.createElement(vu,{size:n},Ye.createElement(bu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ye.createElement(ja,{size:n==="large"?"24":"4"}),!!l.alert&&Ye.createElement(xu,{size:n},Ye.createElement(gC,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ye.createElement(hC,{size:"xsmall",type:l.alert.type,prefix:Ye.createElement(wu,null,Ye.createElement(SC,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(en,"NoResult");import{i18n as tn}from"@lingui/core";import{Button as TC,Divider as kC,MessageBox as vC,Typography as xC,WarningIcon as wC}from"@rango-dev/ui";import Nt from"react";import{Typography as Nu}from"@rango-dev/ui";import Ya from"react";import{darkTheme as CC,styled as Nr}from"@rango-dev/ui";var Eu=Nr("div",{width:"100%"}),Xa=Nr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Iu=Nr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${CC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Au=Nr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Wu(t){let{title:e,value:o,valueColor:n}=t;return Ya.createElement(Iu,null,Ya.createElement(Nu,{size:"medium",variant:"label",className:"_title"},e),Ya.createElement(Nu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Wu,"QuoteErrorsModalItem");function Mu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:tn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:tn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:tn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:tn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Nt.createElement(ne,{footer:Nt.createElement(TC,{type:"primary",size:"large",prefix:Nt.createElement(wC,null),fullWidth:!0,disabled:a,onClick:n},re().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},Nt.createElement(vC,{type:s,title:re().highValueLossError.impactTitle,description:re().highValueLossError.description}),Nt.createElement(Xa,null,Nt.createElement(kC,{size:"4"}),Nt.createElement(xC,{size:"small",variant:"title"},tn.t("Details")),Nt.createElement(Xa,null,l.map((p,c)=>Nt.createElement(Wu,{key:c,...p})))))}i(Mu,"HighValueLossWarningModal");import{i18n as Za}from"@lingui/core";function Bu(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=Za.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&&(It(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=re().highValueLossError.title),t.type===1&&(o.title=re().unknownPriceError.title),t.type===2&&(o.title=Za.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=Za.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Bu,"makeAlerts");import{i18n as Do}from"@lingui/core";import{Button as Lu,Divider as Pu,MessageBox as bC,Typography as EC}from"@rango-dev/ui";import mo from"react";import{useNavigate as IC}from"react-router-dom";function Du(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=IC(),c=e??o;return mo.createElement(ne,{anchor:"bottom",open:n,prefix:mo.createElement(Lu,{size:"small",variant:"ghost",onClick:()=>p("../"+G.settings)},mo.createElement(EC,{variant:"label",size:"medium",color:"$neutral900"},Do.t("Change settings"))),container:B(),onClose:r},mo.createElement(bC,{type:"warning",title:s.type===3?Do.t("High slippage"):Do.t("Low slippage"),description:s.type===3?Do.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:c}}):Do.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},mo.createElement(Pu,{size:18}),mo.createElement(Pu,{size:32}),mo.createElement(Lu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Do.t("Confirm anyway"))))}i(Du,"SlippageWarningModal");import{Button as AC,MessageBox as NC,WarningIcon as WC}from"@rango-dev/ui";import Wr from"react";function _u(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Wr.createElement(ne,{footer:Wr.createElement(AC,{type:"primary",size:"large",prefix:Wr.createElement(WC,null),fullWidth:!0,disabled:r,onClick:n},re().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},Wr.createElement(NC,{type:"warning",title:re().unknownPriceError.impactTitle,description:re().unknownPriceError.description}))}i(_u,"UnknownPriceWarningModal");function on(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:c,onChangeSettings:u}=t,g={confirmationDisabled:a,open:r,onClose:p,onConfirm:c},d=o?.type===0||o?.type===1,m=Bu(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),Ze.createElement(Ze.Fragment,null,d&&Ze.createElement(en,{error:o,fetch:s}),!!m&&Ze.createElement(Eu,null,Ze.createElement(BC,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ze.createElement(Au,{onClick:l},Ze.createElement(PC,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:Ze.createElement(LC,{size:"xxsmall",type:m.alertType,onClick:u},MC.t("Change"))}})),e&&Ze.createElement(Ze.Fragment,null,e.type===0&&Ze.createElement(Mu,{...g,warning:e}),(e.type===3||e.type===2)&&Ze.createElement(Du,{...g,warning:e}),e.type===1&&Ze.createElement(_u,{...g,warning:e})))}i(on,"QuoteWarningsAndErrors");import uT from"bignumber.js";import Hr from"react";import{i18n as fo}from"@lingui/core";import{Alert as JC,Divider as $o,FullExpandedQuote as RC,InfoIcon as eT,NumericTooltip as gm,QuoteTag as tT,StepDetails as oT,TokenAmount as nT,Typography as Fo}from"@rango-dev/ui";import is from"bignumber.js";import F,{useRef as rT,useState as iT}from"react";import{styled as Ja}from"@rango-dev/ui";var Ra=Ja("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),$u=Ja("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Fu=Ja("div",{width:"100%",display:"flex"});import*as Mr from"@radix-ui/react-collapsible";import{Button as DC,css as nn,darkTheme as Ae,Image as Ou,styled as ze,Typography as _C}from"@rango-dev/ui";var $C=300,Uu=ze(Mr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ae} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Qu=nn({padding:"$10 $15"}),zu=ze(DC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Ae} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Ae} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ae} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),qu=ze("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",[`.${Ae} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ae} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ae} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ae} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ae} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ae} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ae} &`]:{backgroundColor:"$neutral400"}}}}]}),Hu=nn({width:"100%",padding:"$15 $15 $10 $15"}),Gu=nn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),_o=nn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Vu=nn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ae} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ku=ze(Mr.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:{[`& ${Ou}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Ou}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ae} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ae} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),ju=ze("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"}}}}),Xu=ze(cr,{width:"100%",background:"inherit"}),es=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${$C}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),YP=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Yu=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ae} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Zu=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ts=ze(_C,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Ju=ze("div",{display:"flex",flexWrap:"wrap"}),os=ze("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"}}}}),Ru=ze("div",{display:"flex"}),Br=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ae} &`]:{borderTopColor:"$neutral800"}});import{i18n as kt}from"@lingui/core";import{ChevronDownIcon as OC,CloseIcon as UC,Divider as Dr,IconButton as QC,NumericTooltip as zC,QuoteCost as qC,Typography as dt}from"@rango-dev/ui";import R,{useState as nm}from"react";import{css as FC,styled as Lr}from"@rango-dev/ui";var Pr=Lr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),ns=Lr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),em=Lr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),tm=Lr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),om=FC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var HC=i(t=>t.fee.isZero()?null:R.createElement(Pr,null,R.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(dt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function rm(t){let[e,o]=nm(!1),[n,r]=nm(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:c,showModalFee:u}=t,g=s?.swaps??[],d=B(),m=Pp(g);return R.createElement(R.Fragment,null,R.createElement(qC,{onClickFee:u?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:c,time:p,steps:a,tooltipGas:u?kt.t("View more info"):void 0,tooltipContainer:d}),R.createElement(ne,{container:d,open:e,header:R.createElement(tm,null,R.createElement(dt,{variant:"title",size:"medium"},kt.t("Gas & Fee Explanation")),R.createElement(QC,{onClick:()=>o(!1),variant:"ghost"},R.createElement(UC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement(em,null,R.createElement(dt,{variant:"title",size:"small"},kt.t("Details")),R.createElement(Dr,{size:10}),Object.entries(m.payable).flatMap(([f,C])=>C.map((S,y)=>{let T=`payable-fee-${y}`,k=ea(S);return R.createElement(Pr,{key:T},R.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},Yi(f,kt.t)),R.createElement(zC,{content:S.amount,container:d},R.createElement(dt,{variant:"label",size:"medium"},M(S.amount,2,2)," ",S.asset.symbol," ($",M(k,4,4),")")))})),R.createElement(Pr,{className:"total_payable_fee"},R.createElement(dt,{variant:"label",size:"medium"},kt.t("Total Payable Fee")),R.createElement(dt,{variant:"label",size:"medium"},"$",M(l,4,4))),R.createElement(ns,null),Object.keys(m.nonePayable).length&&R.createElement(dr,{triggerAnchor:"bottom",onClickTrigger:()=>r(f=>!f),trigger:R.createElement("div",{className:om()},R.createElement(dt,{size:"small",variant:"body",color:"neutral700"},n?kt.t("Hide non-payable fees"):kt.t("Show non-payable fees")),R.createElement(Dr,{size:4,direction:"horizontal"}),R.createElement(ur,{orientation:n?"up":"down"},R.createElement(OC,{size:12,color:"gray"}))),open:n},R.createElement(dt,{size:"small",variant:"title"},kt.t("Description")),R.createElement(Dr,{size:4}),R.createElement(dt,{size:"small",variant:"body",color:"neutral700"},kt.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),R.createElement(Dr,{size:10}),Object.entries(m.nonePayable).map(([f,C],S)=>{let y=Lp(C),T=Yi(f,kt.t),k=`non-payable-fee-${S}`;return R.createElement(HC,{key:k,fee:y,label:T})}),R.createElement(ns,null)))))}i(rm,"QuoteCostDetails");import{i18n as sm}from"@lingui/core";import{TokenAmount as lm}from"@rango-dev/ui";import _r from"react";import{css as GC,styled as VC}from"@rango-dev/ui";var im=VC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),am=GC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function rn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return _r.createElement(im,null,_r.createElement(lm,{direction:"horizontal",label:sm.t("Swap input"),type:"input",tooltipContainer:B(),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}}),_r.createElement("div",{className:am()}),_r.createElement(lm,{direction:"horizontal",tooltipContainer:B(),label:sm.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(rn,"QuoteSummary");import{i18n as dm}from"@lingui/core";import{ChevronDownIcon as XC,ChevronRightIcon as YC,Divider as rs,Image as ZC,Tooltip as Qr,Typography as Fr}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as KC,useState as an}from"react";var pm=480,cm=768,um=1024,mm=1200,jC=i(()=>{let[t,e]=an(!1),[o,n]=an(!1),[r,a]=an(!1),[s,l]=an(!1),[p,c]=an(!1),u=i(()=>{e(window.innerWidth<=pm),n(window.innerWidth>pm&&window.innerWidth<=cm),a(window.innerWidth>cm&&window.innerWidth<=um),l(window.innerWidth>um&&window.innerWidth<=mm),c(window.innerWidth>mm)},"handleResize");return KC(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),$r=jC;var Or=4,Ur=6,sn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||B();return O.createElement(Qr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(ju,{className:n,state:a},O.createElement(ZC,{src:o,size:16})))},"ImageComponent");function fm(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||B(),c=r.length,u=Zp(r),{isTablet:g,isMobile:d}=$r();return O.createElement(Ku,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(f=>!f)}},O.createElement("div",{className:_o()},O.createElement(Fr,{variant:"body",size:"xsmall"},dm.t("Via:")),O.createElement(rs,{direction:"horizontal",size:4}),r.map((m,f)=>{let C=`item-${f}`,S=O.createElement(es,null,O.createElement(YC,{size:12,color:"black"}));return d||g?O.createElement(O.Fragment,{key:C},O.createElement(sn,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==c-1&&O.createElement(O.Fragment,null,S)):O.createElement(O.Fragment,{key:C},c<=Or||c>Or&&f<Or-1?O.createElement(O.Fragment,null,O.createElement(sn,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==c-1&&O.createElement(O.Fragment,null,S)):f===Or-1&&O.createElement(Qr,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},S,r.map((y,T)=>{let k=`image-${T}`;return T>=f&&O.createElement(O.Fragment,{key:k},O.createElement(sn,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==c-1&&O.createElement(O.Fragment,null,S))}))},O.createElement(os,{state:r.find((y,T)=>T>=f&&(y.state==="error"||y.state==="warning"))?.state},O.createElement(Fr,{size:"xsmall",variant:"body"},"+",c-f))))})),O.createElement("div",{className:_o()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:_o()},O.createElement(Fr,{variant:"body",size:"xsmall"},dm.t("Chains:")),O.createElement(rs,{direction:"horizontal",size:4}),u.map((m,f)=>O.createElement(O.Fragment,{key:m.displayName},u.length<=Ur||u.length>Ur&&f<Ur-1?O.createElement(Qr,{container:p,side:"bottom",content:m.displayName,sideOffset:4},O.createElement(sn,{content:"",src:m.image,open:!1,className:f!==0?"blockchainImage":""})):f===Ur-1&&O.createElement(Qr,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},u.map((C,S)=>S>=f&&O.createElement(sn,{key:C.displayName,content:"",src:C.image,open:!1,className:S>f?"blockchainImage":"",container:l})))},O.createElement(os,{className:"blockchainImage"},O.createElement(Fr,{size:"xsmall",variant:"body"},"+",u.length-f))))),O.createElement(rs,{direction:"horizontal",size:32}))),O.createElement(es,{orientation:a?"up":"down"},O.createElement(XC,{size:12,color:"black"}))))}i(fm,"QuoteTrigger");function as(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:c=!0,onClickAllRoutes:u,fullExpandedMode:g=!1,container:d}=t,m=h().blockchains(),{findToken:f}=h(),C=h().swappers(),{customSlippage:S,slippage:y}=h(),T=S||y,[k,v]=iT(t.expanded),b=rT(null),W=M(o.value,6,6),w=M(n.value,6,6),x=n.usdValue?M(n.usdValue,4,4):"",E=nt(o.usdValue,n.usdValue??null),A=M(E,2,2),L=It(E??0),q=i((he,Te)=>he.map(($,N)=>{let ce,ue=r?.type===3&&r.swap.swapperId===$.swapperId,$e=r?.type===4&&r.recommendedSlippages?.has(N),D=a?.type===2&&a.recommendedSlippages?.has(N),z=ue||$e,K=D;z?ce="error":K&&(ce="warning");let se=z?fo.t("Slippage Error"):fo.t("Slippage Warning");return ue&&(se=fo.t("Bridge Limit Error")),{swapper:{displayName:Go($.swapperId,C)??"",image:$.swapperLogo},from:{token:{displayName:$.from.symbol,image:$.from.logo},chain:{displayName:tt($.from.blockchain,m)??"",image:$.from.blockchainLogo},price:{value:N===0&&!Te?M(o.value,6,6):M($.fromAmount,6,6),usdValue:M(($.from.usdPrice??0)*parseFloat($.fromAmount),4,4),realValue:N===0?o.value:$.fromAmount,realUsdValue:new is($.from.usdPrice??0).multipliedBy($.fromAmount).toString()}},to:{token:{displayName:$.to.symbol,image:$.to.logo},chain:{displayName:tt($.to.blockchain,m)||"",image:$.to.blockchainLogo},price:{value:M($.toAmount,6,6),usdValue:M(($.to.usdPrice??0)*parseFloat($.toAmount),4,4),realValue:$.toAmount,realUsdValue:new is($.to.usdPrice??0).multipliedBy($.toAmount).toString()}},state:ce,alerts:z||K?F.createElement($u,{dense:g},F.createElement(JC,{variant:"alarm",type:z?"error":"warning",title:se,footer:F.createElement(Fu,null,ue&&F.createElement("div",null,F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement($o,{direction:"vertical",size:2}),F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {amount} {symbol}",values:{amount:M($.fromAmount,6,6),symbol:$?.from.symbol}}))),($e||D)&&!ue&&F.createElement("div",null,F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(N)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(N)}}})),F.createElement($o,{direction:"vertical",size:2}),F.createElement(Fo,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Vo($.estimatedTimeInSeconds),fee:M(Ri($,f),2,2),internalSwaps:$.internalSwaps?q($.internalSwaps):void 0}}),"getQuoteSteps"),I=q(e?.swaps??[]),Q=I.length,te=d||B(),P=Rp(t.quote.tags||[]),_=!!u,X=Vo(Dn(e?.swaps)),Se=Rn(e?.swaps??[],f),Y=M(Se,2,2),ie=Se.gte(new is(Ip));return g?F.createElement(RC,{selected:l,fee:Y,time:X,tooltipContainer:Ho(),steps:I,tags:P,feeWarning:ie,percentageChange:A,warningLevel:L,outputPrice:{value:w,usdValue:x,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(qu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Hu()},!p&&P.length?F.createElement(F.Fragment,null,F.createElement(Ru,null,P.map((he,Te)=>{let $=`${he.value}_${Te}`;return F.createElement(F.Fragment,{key:$},F.createElement(tT,{label:he.label,value:he.value}),F.createElement($o,{size:4,direction:"horizontal"}))})),F.createElement(Br,null),!_&&F.createElement($o,{size:4})):null,F.createElement("div",{id:"portal-root",className:Gu()},F.createElement(rm,{quote:e,time:X,fee:Y,feeWarning:ie,showModalFee:c,steps:Q}),_&&F.createElement(zu,{onClick:he=>{he.stopPropagation(),u()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Fo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},fo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Vu()},F.createElement(Zu,null,F.createElement(eT,{size:12,color:"gray"})),F.createElement(Ju,null,F.createElement(ts,{size:"small",variant:"body"},`${W} ${I[0].from.token.displayName} = `),F.createElement(gm,{content:n.value,container:te,open:n.value?void 0:!1},F.createElement(ts,{size:"small",variant:"body"},"\xA0",`${w} ${I[I.length-1].to.token.displayName}`))),F.createElement(gm,{content:n.usdValue,container:te},F.createElement($o,{size:2,direction:"horizontal"}),F.createElement(Fo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${x})`))),s==="list-item"&&F.createElement(nT,{tooltipContainer:te,type:"output",direction:"vertical",price:{value:w,usdValue:x,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:I[Q-1].to.token.displayName,image:I[Q-1].to.token.image},chain:{image:I[Q-1].to.chain.image},percentageChange:A,warningLevel:L}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(rn,{from:I[0].from,to:I[Q-1].to,percentageChange:A,warningLevel:L}),F.createElement($o,{size:4}))),F.createElement(Uu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},F.createElement(fm,{type:s,quoteRef:b,selected:l,setExpanded:v,container:te,expanded:k,steps:I}),F.createElement(Xu,{open:k},F.createElement(Yu,null),F.createElement("div",{className:Qu()},I.map((he,Te)=>{let $=`item-${Te}`;return F.createElement(oT,{type:"quote-details",key:$,tooltipContainer:te,step:he,hasSeparator:Te!==I.length-1,state:he.state})})))))}i(as,"Quote");import{Divider as pT,Skeleton as cT}from"@rango-dev/ui";import Mt from"react";import{darkTheme as aT,styled as zr}from"@rango-dev/ui";var hm=zr("div",{$$color:"$colors$neutral100",[`.${aT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),ym=zr("div",{paddingTop:"$2"}),Sm=zr("div",{paddingLeft:"$8"}),Cm=zr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Nm,Divider as ft,Skeleton as Je}from"@rango-dev/ui";import V from"react";import{css as sT,styled as Wt}from"@rango-dev/ui";var ss=Wt("div",{display:"flex"}),Tm=Wt("div",{padding:"$10 $0 $20"}),km=Wt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),vm=Wt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),xm=Wt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),wm=Wt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),bm=Wt("div",{width:"65%",display:"flex",justifyContent:"start"}),Em=Wt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Im=Wt("div",{padding:"$15 $0 $15 $0"}),Am=sT({display:"flex",justifyContent:"space-between",alignItems:"center"});function ln(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(xm,null,V.createElement(bm,null,V.createElement(Nm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),V.createElement(ft,{size:8,direction:"horizontal"}),V.createElement(Em,null,V.createElement(Je,{height:10,width:60,variant:"rounded"}),V.createElement(ft,{size:4}),V.createElement(Je,{height:15,variant:"rounded"}))),V.createElement(Je,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(ss,null,V.createElement(Je,{width:65,height:20,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:65,height:20,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:65,height:20,variant:"rounded"})),V.createElement(Br,null),!r&&V.createElement(ft,{size:4})),V.createElement("div",{className:Am()},V.createElement(ss,null,V.createElement(Je,{width:60,height:10,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:60,height:10,variant:"rounded"}),V.createElement(ft,{size:4,direction:"horizontal"}),V.createElement(Je,{width:60,height:10,variant:"rounded"})),r&&V.createElement(Je,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Tm,null,V.createElement(Je,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(km,null,V.createElement(vm,null,V.createElement(Nm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),V.createElement(ft,{direction:"horizontal",size:4}),V.createElement(Je,{height:15,width:150,variant:"rounded"})),V.createElement(ft,{size:10}),V.createElement(Je,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(ft,{size:4}),V.createElement(Im,null,n,V.createElement(wm,null),n),V.createElement(ft,{size:12})))}i(ln,"QuoteSummarySkeleton");import{ChainToken as Pm,Divider as ps,NextIcon as lT,Skeleton as qr}from"@rango-dev/ui";import Ne from"react";import{styled as pn}from"@rango-dev/ui";var Wm=pn("div",{display:"flex",alignItems:"start"}),Mm=pn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),ls=pn("div",{display:"flex",alignItems:"center",flexGrow:1}),Bm=pn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Lm=pn("div",{display:"flex",alignItems:"center"});function vt(t){let{separator:e=!0}=t;return Ne.createElement(Ne.Fragment,null,Ne.createElement(Lm,null,Ne.createElement(qr,{height:22,width:22,variant:"circular"}),Ne.createElement(ps,{direction:"horizontal",size:8}),Ne.createElement(qr,{height:15,width:148,variant:"rounded"})),Ne.createElement(Wm,null,Ne.createElement(Cm,{hideSeparator:!e}),Ne.createElement(Mm,{extraSpace:e},Ne.createElement(ls,null,Ne.createElement(Pm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ne.createElement(ps,{direction:"horizontal",size:8}),Ne.createElement(qr,{height:12,variant:"rounded"})),Ne.createElement(Bm,null,Ne.createElement(lT,{color:"gray",size:16})),Ne.createElement(ls,null,Ne.createElement(Pm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ne.createElement(ps,{direction:"horizontal",size:8}),Ne.createElement(qr,{height:12,variant:"rounded"})))))}i(vt,"StepSkeleton");function cn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Mt.createElement(hm,{expanded:o,rounded:e!=="basic"},Mt.createElement(ln,{type:e,tagHidden:n}),Mt.createElement(ym,null,Mt.createElement(cT,{height:15,variant:"rounded"})),o&&Mt.createElement(Sm,null,Mt.createElement(pT,{size:24}),Mt.createElement(vt,null),Mt.createElement(vt,null),Mt.createElement(vt,{separator:!1})))}i(cn,"QuoteSkeleton");function go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:c,selected:u,onClickAllRoutes:g,fullExpandedMode:d=!1,container:m}=t,{inputAmount:f,inputUsdValue:C,toToken:S}=H(),y=e?.outputAmount?new uT(e?.outputAmount):null,T=e?.outputAmount?tr(e?.outputAmount,nr(e)||S?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Hr.createElement(Ra,null,Hr.createElement(cn,{tagHidden:l,type:o,expanded:s})):v?Hr.createElement(Ra,{onClick:()=>p?.(e)},Hr.createElement(as,{quote:e,error:r,container:m,showModalFee:c,warning:a,tagHidden:l,selected:u,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:d,input:{value:f,usdValue:C?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(go,"QuoteInfo");import{calculatePendingSwap as gT}from"@rango-dev/queue-manager-rango-preset";import{useEffect as hT}from"react";import{useRef as mT,useState as dT}from"react";var fT=2e3;function Gr({request:t}){let[e,o]=dT(!1),n=mT(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,fT)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let c=await t(l,{signal:n.current.signal});return n.current=null,c}catch(c){if(p)return await a(l);throw c}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Gr,"useFetch");function Dm(){let{fetch:t,loading:e,cancelFetch:o}=Gr({request:async(n,r)=>await $t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Dm,"useFetchConfirmQuote");function Vr(t){if(!t.swaps)throw new Error(re().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=cs(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Vr,"throwErrorIfResponseIsNotValid");function cs(t){if(Wp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Mp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Dp(t);if(o){let n=er(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(cs,"getQuoteError");function _m(t,e,o){let n=!1;t&&(n=Yp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Eo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Qp(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(bo(e)),percentageChange:M(nt(bo(t)??"",bo(e)??""),null,2)}:ta(t,e)?r.quoteUpdate={type:0}:oa(t,e)?r.quoteUpdate={type:1}:na(t,e)&&(r.quoteUpdate={type:2}));let s=zp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(_m,"generateWarnings");function Kr(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(Kr,"handleQuoteErrors");function us(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=H(),{slippage:p,customSlippage:c}=h(),u=h().getDisabledLiquiditySources(),g=h().blockchains(),d=h().tokens(),{findToken:m}=h(),f=c||p,{fetch:C,cancelFetch:S,loading:y}=Dm();return hT(()=>S,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,b=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let W=v.reduce((x,E)=>(x[E.chain]=E.address,x),{}),w={requestId:r?.requestId||"",selectedWallets:W,destination:b||void 0};try{return await C(w,!0).then(x=>{let{result:E}=x;Vr({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let A={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(A);let L={slippage:f.toString(),disabledSwappersGroups:u},q=_m(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:g},findToken:m,selectedWallets:v,userSlippage:f});q.quoteUpdate&&s(!1),l();let I=!!q.balance,Q=gT(o.toString(),E,Op(v),L,!I,{blockchains:g,tokens:d});return{quote:A,swap:Q,error:null,warnings:q}})}catch(x){return Kr(x)}},"fetch"),cancelFetch:S}}i(us,"useConfirmSwap");var bT=CT("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Fm}`]:{width:"$48",height:"$48"}}),ET=fs({flexGrow:1,paddingRight:"$10"}),IT=fs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),AT=fs({display:"flex",justifyContent:"space-between",alignItems:"center"});function Om(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=H(),s=wT(),[l,p]=un(""),c=!n,[u,g]=un(!1),[d,m]=un(!1),{isActiveTab:f}=pe(),C=h().getDisabledLiquiditySources(),S=xT(C),{manager:y}=yT(),{fetch:T,loading:k,cancelFetch:v}=us(),[b,W]=un({swap:null,error:null,warnings:null}),[w,x]=un(!1),E=i(async({selectedWallets:_,customDestination:X})=>{let Se=await T?.({selectedWallets:_,customDestination:X});return W(Se),Se},"onConfirmSwap"),A=i(async()=>{if(b.swap&&n)try{await y?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let _=`../${G.swaps}/${b.swap.requestId}`;s(_,{replace:!0}),setTimeout(()=>{e("")},0)}catch(_){p("Error: "+_?.message)}},"addNewSwap"),L=i(async()=>{m(!0),await A(),m(!1)},"onConfirm"),q=i(async()=>{b?.warnings?.quote&&!a?x(!0):await L()},"onStartConfirmSwap"),I=i(async()=>{W({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(_=>{W(_)}).catch(_=>console.error(_))},"onRefresh");jr(()=>{!!S.current.length&&!C.length&&I(),S.current=C},[C.length]),jr(()=>{c&&v()},[c]),jr(()=>{c&&g(c)},[c]),jr(()=>{c||T({selectedWallets:o,customDestination:r}).then(_=>W(_)).catch(_=>console.error(_))},[]),vT(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let Q=b.warnings?.quote??null,te=b.error,P=[];if(l&&P.push(We.createElement($m,{type:"error",variant:"alarm",title:l})),b.warnings?.quoteUpdate&&P.push(We.createElement($m,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&lr(b.warnings.quoteUpdate)})),Q||te){let _=`../${G.settings}`;P.push(We.createElement(on,{warning:Q,error:te,couldChangeSettings:!1,refetchQuote:I,showWarningModal:w,confirmationDisabled:!f,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:async()=>{x(!1),await A()},onChangeSettings:()=>s(_)}))}return We.createElement(me,{header:{title:ms.t("Confirm Swap"),onWallet:()=>{let _=`../${G.wallets}`;s(_)}},footer:We.createElement(bT,null,We.createElement("div",{className:ET()},We.createElement(ST,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!b.error||!f,onClick:q},ms.t("Start Swap"))),We.createElement(Fm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!f,onClick:g.bind(null,!0)},We.createElement(kT,{size:24})))},u&&We.createElement(Su,{open:u,onClose:()=>g(!1),onCancel:v,loading:k,onCheckBalance:E}),We.createElement(ye,null,We.createElement("div",{className:AT()},We.createElement(TT,{variant:"title",size:"small"},ms.t("You get")),We.createElement("div",{className:IT()},We.createElement(Sr,{onClick:!k&&!u&&!w?I:void 0}))),We.createElement(ds,{size:"12"}),xc(P.map((_,X)=>({element:_,key:`alert-${X}`})),We.createElement(ds,{size:10})),P.length>0?We.createElement(ds,{size:10}):null,We.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:k,warning:b.warnings?.quote??null})))}i(Om,"ConfirmSwapPage");import{i18n as He}from"@lingui/core";import{useManager as JT}from"@rango-dev/queue-manager-react";import{Button as ks,darkTheme as RT,Divider as Gt,MessageBox as ek,NotFound as tk,styled as vs,Typography as Zr}from"@rango-dev/ui";import{TransactionStatus as gn}from"rango-types";import ae,{useMemo as id,useState as Jr}from"react";import{useNavigate as ok}from"react-router-dom";import{FilterIcon as DT,Popover as _T}from"@rango-dev/ui";import ho from"react";import{css as NT,darkTheme as Xr,IconButton as WT,styled as mn}from"@rango-dev/ui";var gs=mn("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Xr} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Um=mn(WT,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Xr} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Xr} &`]:{backgroundColor:"$neutral"},[`& ${gs}::before`]:{backgroundColor:"$secondary100",[`.${Xr} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Qm=mn("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),zm=mn("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),qm=NT({display:"flex",justifyContent:"space-between",alignItems:"center"}),Hm=mn("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Gm}from"@lingui/core";import{Button as MT,Divider as Vm,ListItemButton as BT,Radio as LT,RadioRoot as PT,Typography as Km}from"@rango-dev/ui";import Re from"react";function jm(t){let{filterBy:e,onClickItem:o}=t;return Re.createElement(zm,null,Re.createElement("div",{className:qm()},Re.createElement(Km,{size:"small",variant:"body"},Gm.t("Status")),Re.createElement(MT,{variant:"ghost",size:"xxsmall",onClick:()=>o("")},Gm.t("Reset"))),Re.createElement(Vm,{size:10}),Re.createElement(PT,{value:e},Re.createElement(Hm,null,t.list.map((n,r)=>Re.createElement(BT,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:Re.createElement(Re.Fragment,null,Re.createElement(Vm,{direction:"horizontal",size:4}),Re.createElement(Km,{size:"medium",variant:"body"},n.title)),start:Re.createElement(LT,{value:n.id}),onClick:o})))))}i(jm,"FilterSelectorContent");function hs(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return ho.createElement("div",null,ho.createElement(_T,{open:a,align:"end",onOpenChange:o,container:B(),content:ho.createElement(jm,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},ho.createElement(Um,{variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},ho.createElement(gs,{isSelect:!!n},ho.createElement(DT,{size:16,color:"black"}),!!n&&ho.createElement(Qm,null)))))}i(hs,"FilterSelector");import{i18n as OT}from"@lingui/core";import{Divider as Rm,GroupedVirtualizedList as UT,Skeleton as QT,SwapListItem as ed,Typography as zT}from"@rango-dev/ui";import qe,{useCallback as td,useEffect as qT,useRef as HT,useState as GT}from"react";function Xm(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(Xm,"calculateGroupsSoFar");import{css as $T,darkTheme as FT,styled as dn}from"@rango-dev/ui";var ys=$T(),Ym=dn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ss=dn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ys}`]:{$$color:"$colors$neutral600",[`.${FT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Cs=dn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Zm=dn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Jm=dn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var VT=10;function Ts(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=GT([]),l=HT(0),{swaps:p,groupCounts:c,groups:u}=n(e),g=td(Xm,[]),d=td(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,VT),s(g(c,l.current)))},[e.length]);if(qT(()=>{r||d()},[r,d]),r){let m=[1,2];return qe.createElement(qe.Fragment,null,[m,m].map((C,S)=>qe.createElement(Ss,{key:S},qe.createElement(Cs,null,qe.createElement(QT,{variant:"text",width:60,size:"small"}),qe.createElement(Rm,{size:16})),qe.createElement(Rm,{size:4}),qe.createElement(Zm,null,C.map((T,k)=>qe.createElement(ed,{isLoading:!0,key:k}))))))}return qe.createElement(UT,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>qe.createElement(Ss,null,qe.createElement(Cs,null,qe.createElement(zT,{variant:"label",size:"medium",className:ys()},u[m]))),itemContent:(m,f)=>{let C=p[m];if(!C)return null;let S=C.steps[0],y=C.steps[C.steps.length-1];return qe.createElement(Ym,{key:C.requestId},qe.createElement(ed,{requestId:C.requestId,creationTime:C.creationTime,status:C.status,onClick:o,tooltipContainer:B(),onlyShowTime:u[f]===OT.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:M(C.inputAmount,6,6),realAmount:C.inputAmount},to:{token:{image:y.toLogo,displayName:y.toSymbol},blockchain:{image:y.toBlockchainLogo||""},amount:M(y.outputAmount||y.expectedOutputAmountHumanReadable||"",6,6),realAmount:y.outputAmount||y.expectedOutputAmountHumanReadable||""}}}))}})}i(Ts,"HistoryGroupedList");import{CloseIcon as jT,IconButton as XT,SearchIcon as YT,TextField as ZT}from"@rango-dev/ui";import fn from"react";import{styled as KT}from"@rango-dev/ui";var od=KT("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Bt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:p,...c}=t;return fn.createElement(ZT,{prefix:fn.createElement(od,null,fn.createElement(YT,{color:"black"})),suffix:!!s.length&&fn.createElement(XT,{variant:"ghost",onClick:()=>p?.(""),size:"small"},fn.createElement(jT,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...c})}i(Bt,"SearchInput");import{i18n as Yr}from"@lingui/core";import nd from"dayjs";var rd=i(t=>{let e=new Map([["today",{title:Yr.t("Today"),swaps:[]}],["week",{title:Yr.t("This week"),swaps:[]}],["month",{title:Yr.t("This month"),swaps:[]}],["year",{title:Yr.t("This year"),swaps:[]}]]);function o(p,c){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(c)}i(o,"addYearsToOutput");let n=nd();t.forEach(p=>{let c=Number(p.creationTime),u=nd(c);if(n.isSame(u,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(p);else{let g=new Date(c).getFullYear().toString();o(g,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 nk=vs("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),rk=vs("div",{display:"flex",justifyContent:"center",alignItems:"center"}),ik=vs("div",{"._typography":{color:"$neutral700",[`.${RT}&`]:{color:"$neutral900"}}}),ak=[{id:gn.SUCCESS,title:He.t("Complete")},{id:gn.RUNNING,title:He.t("Running")},{id:gn.FAILED,title:He.t("Failed")}],sk=i((t,e)=>t?.length?t.filter(o=>St(o.fromBlockchain,e)||St(o.toBlockchain,e)||St(o.toSymbol,e)||St(o.fromSymbol,e)).length:!1,"isStepContainsText");function ad(){let t=ok(),{manager:e,state:o}=JT(),n=it(e).map(({swap:k})=>k),[r,a]=Jr(""),[s,l]=Jr(!1),p=!o.loadedFromPersistor,[c,u]=Jr(""),[g,d]=Jr(!1),m=i(k=>{let v=k.target.value;a(v)},"searchHandler"),f=id(()=>!r&&!c?n:n.filter(k=>{let{inputAmount:v,status:b,steps:W,requestId:w}=k;return(!r||St(v,r)||St(b,r)||sk(W,r)||St(w,r))&&(!c||c===b)}),[n,r,c]),C=!f?.length&&!p,S=i(()=>d(!1),"onCloseModal"),y=i(async()=>{try{await e?.clearQueue(),d(!1)}catch(k){console.log(k)}},"onClear"),T=id(()=>!n.some(k=>k.status===gn.SUCCESS||k.status===gn.FAILED),[n]);return ae.createElement(me,{header:{title:He.t("History"),suffix:ae.createElement(Ut,null,ae.createElement(ks,{disabled:T,variant:"ghost",size:"xsmall",onClick:()=>d(!0)},ae.createElement(Zr,{size:"medium",variant:"label",color:"error"},He.t("Clear all Txs"))))}},ae.createElement(ye,null,ae.createElement(rk,null,ae.createElement(Bt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:He.t("Search Transaction"),autoFocus:!0,onChange:m,style:{height:36},value:r}),ae.createElement(Gt,{size:10,direction:"horizontal"}),ae.createElement(hs,{filterBy:c,open:s,onOpenChange:k=>l(k),onClickItem:k=>u(k),list:ak})),ae.createElement(Gt,{size:"16"}),ae.createElement(nk,null,C&&ae.createElement(Jm,null,ae.createElement(Gt,{size:32}),ae.createElement(tk,{title:r?He.t("No results found"):He.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?He.t("Try using different keywords"):He.t("Your transaction history is stored locally and will appear here after you start a swap")})),!C&&ae.createElement(Ts,{list:f,onSwapClick:t,groupBy:rd,isLoading:p}))),ae.createElement(ne,{open:g,onClose:S,container:B()},ae.createElement(Gt,{size:20}),ae.createElement(ek,{type:"warning",title:He.t("Clear History"),description:ae.createElement(ik,null,ae.createElement(Zr,{variant:"body",size:"medium"},He.t("This would clear all succeeded/failed transactions from widget. Do you wish to proceed?")),ae.createElement(Gt,{size:"24"}),ae.createElement(Zr,{variant:"body",size:"small"},He.t("Hint: This does not clear your transaction history on blockchain. Only hides them in this page.")))}),ae.createElement(Gt,{size:40}),ae.createElement(Gt,{size:10}),ae.createElement(ks,{variant:"contained",type:"primary",size:"large",onClick:y},He.t("Yes, Clear history")),ae.createElement(Gt,{size:10}),ae.createElement(ks,{variant:"outlined",type:"primary",size:"large",onClick:S},ae.createElement(Zr,{variant:"title",size:"medium",color:"primary"},He.t("No, Cancel")))))}i(ad,"HistoryPage");import{i18n as Ek}from"@lingui/core";import{Button as Ik,Divider as bd,styled as Ak,WarningIcon as Nk}from"@rango-dev/ui";import Wk from"bignumber.js";import je,{useEffect as Ed,useState as Id}from"react";import{useNavigate as Mk}from"react-router-dom";import{i18n as dk}from"@lingui/core";import{Header as fk}from"@rango-dev/ui";import Vt,{useEffect as gk,useState as hk}from"react";import{i18n as pk}from"@lingui/core";import{Divider as ws,FullExpandedQuote as ck,Typography as uk}from"@rango-dev/ui";import ve from"react";import{styled as xs}from"@rango-dev/ui";var sd=xs("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),ld=xs("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),pd=xs("div",{width:"146px"});import{i18n as hn}from"@lingui/core";import{Select as lk}from"@rango-dev/ui";import cd from"react";function Rr(t){let{updateQuotePartialState:e,sortStrategy:o}=H(),n=[{value:"SMART",label:hn.t("Smart Routing")},{value:"FEE",label:hn.t("Lowest Fee")},{value:"SPEED",label:hn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:hn.t("Maximum Return")},{value:"PRICE",label:hn.t("Maximum Output")}];return cd.createElement(pd,null,cd.createElement(lk,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Rr,"SelectStrategy");var ud=3;function yn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:c,updateQuotePartialState:u,fromToken:g,toToken:d,sortStrategy:m,error:f}=H(),{slippage:C,customSlippage:S}=h(),{findToken:y}=h(),T=l||B(),k=!!c&&c.results.length,v=S??C,b=i(x=>{if(!g||!d||!c)return null;let E={requestAmount:c.requestAmount,...x};return Eo(E,{fromToken:g,toToken:d,userSlippage:v,findToken:y})},"getQuoteWarning"),W=f?.type===0||f?.type===1,w=c?.results?ir(m,c?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(ld,null,ve.createElement(uk,{size:"xmedium",variant:"title"},pk.t("Sort by")),ve.createElement(Rr,{container:T})),ve.createElement(ws,{size:"10"})),e&&Array.from({length:ud},(x,E)=>ve.createElement(ve.Fragment,{key:E},s?ve.createElement(ck,{loading:!0}):ve.createElement(cn,{tagHidden:!1,type:"list-item",expanded:!1}),E!==ud-1&&ve.createElement(ws,{size:16}))),!e&&ve.createElement(ve.Fragment,null,k?w.map((x,E)=>{let A=b(x),L=cs(x.swaps),q=w.length-1===E;return ve.createElement(ve.Fragment,{key:x.requestId},ve.createElement(go,{showModalFee:r,container:T,selected:p?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:c.requestAmount},loading:e,error:L?.options||null,warning:A,fullExpandedMode:s,onClick:I=>{L||u("warning",A),u("error",L?.options||null),o(I)},type:"list-item"}),!q&&ve.createElement(ws,{size:16}))}):W&&ve.createElement(sd,null,ve.createElement(en,{size:s?"large":"small",error:f,fetch:n}))))}i(yn,"Quotes");import{darkTheme as mk,styled as md}from"@rango-dev/ui";var dd=md("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${mk} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),fd=md("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var yk=100;function bs(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=hk(!1),p=s?"":"is-hidden",{config:c}=h(),u=c?.variant==="full-expanded",g=Ho();return gk(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},yk):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Vt.createElement(dd,{expandMode:c?.variant==="full-expanded"?"full":"default",className:`${p} ${kr()}`,id:Ce.EXPANDED_BOX_ID},Vt.createElement(fk,{title:dk.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Rr,{container:g}),Vt.createElement(io,{container:g,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(fd,null,Vt.createElement(yn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Ho(),onClickOnQuote:n,fullExpandedMode:u})))}i(bs,"ExpandedQuotes");import{i18n as kd}from"@lingui/core";import{SwapInput as vd}from"@rango-dev/ui";import Sn from"react";import{ReverseIcon as Tk}from"@rango-dev/ui";import Is from"react";import{keyframes as Sk,styled as gd}from"@rango-dev/ui";var Es=450,Ck=Sk({"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)"}}),hd=gd("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),yd=gd("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${Ck} ${Es}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 As(){let t=H.use.switchFromAndTo();return Is.createElement(hd,null,Is.createElement(yd,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Es),t()}},Is.createElement(Tk,{size:12})))}i(As,"SwitchFromAndToButton");import{styled as Sd}from"@rango-dev/ui";var Cd=Sd("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Td=Sd("div",{position:"relative"});function Ns(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:c,inputAmount:u,inputUsdValue:g,outputAmount:d,outputUsdValue:m,selectedQuote:f}=H(),{connectedWallets:C,getBalanceFor:S}=oe(),y=a?S(a):null,T=Qn(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",v=!!s&&Zl(C,s.name),b=!Ji(f,u,g),W=!Ji(f,u,m),w=!g||!m||!m.gt(0)?null:nt(g.toString(),m.toString());return Sn.createElement(Cd,null,Sn.createElement(Td,null,Sn.createElement(vd,{label:kd.t("From"),mode:"From",onInputChange:c,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:u,usdValue:b?void 0:M(g,4,4),realUsdValue:b?void 0:g?.toString(),error:b?re().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:B(),onSelectMaxBalance:()=>{c(k.split(",").join(""))},anyWalletConnected:C.length>0}),Sn.createElement(As,null)),Sn.createElement(vd,{sharpBottomStyle:!r&&(!!f||e),label:kd.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(nt(g,m),2,2),warningLevel:It(w??0),price:{value:M(d,6,6),usdValue:W?void 0:M(m,4,4),realValue:d?.toString(),realUsdValue:W?void 0:m?.toString(),error:W?re().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(Ns,"Inputs");import{useCallback as kk,useEffect as vk,useRef as xk,useState as wk}from"react";function xd(){let{fetch:t,loading:e,cancelFetch:o}=Gr({request:async(n,r)=>await $t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(xd,"useFetchAllQuotes");var bk=600;function ei({refetchQuote:t}){let{fetch:e,cancelFetch:o}=xd(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=oe.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:c,inputUsdValue:u,selectedQuote:g,sortStrategy:d,resetQuote:m,error:f,warning:C,setSelectedQuote:S,updateQuotePartialState:y}=H(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:b,affiliateWallets:W,fetchStatus:w}=h(),x=h().getLiquiditySources(),E=h().getDisabledLiquiditySources(),A=h().excludeLiquiditySources(),{findToken:L}=h(),[q,I]=wk(!0),Q=xk(c),te=k??T,_=!l||!p||Jt(l,p)||!Ko(c),X=i(ie=>{I(ie)},"resetState"),Se=i(ie=>{let{fromToken:he,toToken:Te,inputAmount:$,liquiditySources:N,excludeLiquiditySources:ce,disabledLiquiditySources:ue,slippage:$e,affiliateRef:D,affiliatePercent:z,affiliateWallets:K}=ie;if(q||X(!0),!_&&he&&Te){m();let se=Fp({fromToken:he,toToken:Te,inputAmount:$,liquiditySources:N,excludeLiquiditySources:ce,disabledLiquiditySources:ue,wallets:s,slippage:$e,affiliateRef:D,affiliatePercent:z,affiliateWallets:K,enableCentralizedSwappers:a});cp("experimentalRoute",r)&&(se.experimental=!0),e(se).then(ee=>{let le=ir(d,ee.results),Ee=Jp(g,le,ee.requestAmount);I(!1),y("quotes",ee),S(Ee),Vr({diagnosisMessages:ee.diagnosisMessages,requestId:Ee?.requestId||"",swaps:Ee?.swaps});let Nn=Ee&&Eo(Ee,{fromToken:he,toToken:Te,userSlippage:te,findToken:L});y("warning",Nn)}).catch(ee=>{let{error:le}=Kr(ee);(le?.type===0||le?.type===1)&&m(),le?.type!==2&&(y("error",le),I(!1))})}},"fetch"),Y=kk($l(ie=>{Se(ie)},bk),[_]);return vk(()=>{if(!t){I(!1);return}if(w!=="success")return;if(_){I(!1),(g||f||C)&&m();return}if(!Ko(c)||u?.eq(0)){X(!1),o();return}m(),X(!0);let ie=Se;return Q.current&&Q.current!=c&&(ie=Y),Q.current=c,ie({inputAmount:c,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:v,affiliateWallets:W}),o},[w,c,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,_,x?.length,n,E.length,te,b,v,JSON.stringify(W)]),{fetch:()=>Se({inputAmount:c,fromToken:l,toToken:p,liquiditySources:x,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:v,affiliateWallets:W}),loading:q}}i(ei,"useSwapInput");function wd(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ke.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(wd,"emitPreventableEvent");var Bk=Ak("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Lk=300;function Ad(){let t=Mk(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:c,resetQuoteWallets:u,setQuoteWarningsConfirmed:g,updateQuotePartialState:d}=H(),[m,f]=Id(!1),{isLargeScreen:C,isExtraLargeScreen:S}=$r(),{fetch:y,loading:T}=ei({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:b}=oe(),{isActiveTab:W}=pe(),[w,x]=Id(!1),A=Bp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),L=rp(C,S,k?.variant),q=!!n&&!!e&&!!o&&new Wk(n).gt(0)&&!Kp(e,o),I=q&&v==="success"&&T,P=(!L||L&&p?.results.length)&&(l||s);Ed(()=>{u(),d("refetchQuote",!0)},[]),Ed(()=>{f(q)},[q]);let _=(r||s)&&!w?y:void 0,X=i(Y=>{L&&m?(f(!1),setTimeout(()=>{t(Y)},Lk)):t(Y)},"onHandleNavigation"),Se=i(Y=>{r?.requestId!==Y.requestId&&(x(!1),c(Y))},"onClickOnQuote");return je.createElement(Bk,null,je.createElement(me,{height:"auto",footer:je.createElement(Ik,{type:"primary",size:"large",disabled:A.disabled||!W,prefix:A.action==="confirm-warning"&&je.createElement(Nk,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?wd({type:"clickConnectWallet"},()=>X(G.wallets)):A.action==="confirm-warning"?x(!0):X(G.confirmSwap)}},A.title),header:{onWallet:()=>{X(G.wallets)},hasBackButton:!1,title:k.title||Ek.t("Swap"),suffix:je.createElement(io,{hidden:L?["refresh"]:void 0,onClickRefresh:_,onClickHistory:()=>X(G.swaps),onClickSettings:()=>{X(G.settings)}})}},je.createElement(ye,null,je.createElement(Ns,{fetchingQuote:I,fetchMetaStatus:v,isExpandable:L,onClickToken:Y=>{X(Y==="from"?G.fromSwap:G.toSwap)}}),je.createElement(bd,{size:"2"}),L?null:je.createElement(go,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),X(G.routes)}:void 0}),P?je.createElement(je.Fragment,null,je.createElement(bd,{size:"10"}),je.createElement(on,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:w,confirmationDisabled:!W,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),g(!0),X(G.confirmSwap)},onChangeSettings:()=>X(G.settings)})):null)),L?je.createElement(bs,{loading:I,onClickOnQuote:Se,fetch:y,onClickRefresh:_,isVisible:m}):null)}i(Ad,"Home");import{i18n as Nd}from"@lingui/core";import{Alert as Pk,Divider as Dk,List as _k,ListItemButton as $k,Radio as Fk,RadioRoot as Ok,Typography as Uk}from"@rango-dev/ui";import xt from"react";function Kt(){let{setLanguage:t,language:e,config:o}=h(),n=mp,r=o?.language||wo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||wo),resetLanguage:()=>t(null)}}i(Kt,"useLanguage");function Wd(){let{activeLanguage:t,changeLanguage:e,languages:o}=Kt(),n=rt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:xt.createElement(Uk,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:xt.createElement(Fk,{value:s}),start:xt.createElement(p,null)}});return xt.createElement(me,{header:{title:Nd.t("Language")}},xt.createElement(ye,null,xt.createElement(Pk,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),xt.createElement(Dk,{size:"8"}),xt.createElement(Ok,{value:t},xt.createElement(_k,{type:xt.createElement($k,{title:Nd.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Wd,"LanguagePage");import{i18n as Lt}from"@lingui/core";import{Button as Gk,Checkbox as Vk,Image as Kk,ListItemButton as jk,NotFound as Xk,Typography as Yk}from"@rango-dev/ui";import Ge,{useState as Zk}from"react";import{Checkbox as qk,Skeleton as Bd}from"@rango-dev/ui";import Tn from"react";import{styled as Ws}from"@rango-dev/ui";var Cn=Ws("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ms=Ws("div",{width:80,display:"flex",justifyContent:"flex-end"}),Bs=Ws("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as Qk,styled as zk}from"@rango-dev/ui";var Md=zk(Qk,{height:61});var Hk=30;function Ls(){return Tn.createElement(Cn,null,Array.from(Array(Hk),(t,e)=>Tn.createElement(Md,{hasDivider:!0,key:e,start:Tn.createElement(Bd,{variant:"circular",width:35,height:35}),title:Tn.createElement(Bd,{variant:"text",size:"large",width:90}),end:Tn.createElement(qk,{checked:!1})})))}i(Ls,"LoadingLiquiditySourceList");function Ps({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=Zk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Vn(o,n),c={Exchanges:Lt.t("Exchanges"),Bridges:Lt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let g=p.filter(y=>u.includes(y.type)),d=g.length===g.filter(y=>y.selected).length,m=i(()=>{g.forEach(y=>{d?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),f=g.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:Ge.createElement(Kk,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Ge.createElement(Vk,{checked:T,disabled:l}),title:Ge.createElement(Yk,{variant:"title",size:"xmedium"},Lt.t(k)),...y}}),C=i(y=>{let T=y.target.value;a(T)},"searchHandler"),S=f;return r&&(S=f.filter(y=>St(y.groupTitle,r))),Ge.createElement(me,{header:{title:Lt.t(t),suffix:Ge.createElement(Ms,null,Ge.createElement(Gk,{variant:"ghost",size:"xsmall",onClick:m},d?Lt.t("Deselect all"):Lt.t("Select all")))}},Ge.createElement(ye,{view:!0},Ge.createElement(Bt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Lt.t("Search {sourceType}",{sourceType:c[t]}),onChange:C}),e==="loading"&&Ge.createElement(Ls,null),!S.length&&r?Ge.createElement(Bs,null,Ge.createElement(Xk,{title:Lt.t("No results found"),description:Lt.t("Try using different keywords")})):e==="success"&&Ge.createElement(Cn,{disabled:l},S.map(y=>{let{groupTitle:T,...k}=y;return Ge.createElement(Ge.Fragment,{key:y.id},Ge.createElement(jk,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Ps,"LiquiditySourcePage");import{i18n as Jk}from"@lingui/core";import ti from"react";import{useNavigate as Rk}from"react-router-dom";function Ld(){let t=Rk(),e=rt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=H(),{fetch:l,loading:p}=ei({refetchQuote:n}),c=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${G.settings}`,g=`../${G.wallets}`;return ti.createElement(me,{header:{onWallet:()=>{t(g),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Jk.t("Routes"),suffix:ti.createElement(io,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},ti.createElement(ye,null,ti.createElement(yn,{fetch:l,loading:p,onClickOnQuote:c})))}i(Ld,"RoutesPage");import{i18n as Qd}from"@lingui/core";import{Divider as zd,getCategoriesCount as lv,SelectableCategoryList as pv}from"@rango-dev/ui";import Pt,{useState as qd}from"react";import{i18n as Ds}from"@lingui/core";import{Divider as Od,Image as nv,ListItemButton as rv,NotFound as iv,Typography as Ud}from"@rango-dev/ui";import st,{useEffect as av,useState as sv}from"react";var Pd=i((t,e,o)=>t.filter(n=>Bn(n.type,o)).filter(n=>bt(n.name,e)||bt(n.displayName,e)),"filterBlockchains");import{ImageContainer as ev,styled as Dd}from"@rango-dev/ui";var _d=Dd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),oi=Dd(Zo,{padding:0,margin:0,listStyle:"none",[`& ${ev}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as tv,Skeleton as $d}from"@rango-dev/ui";import ni from"react";var ov=20;function Fd(){return ni.createElement(oi,null,Array.from(Array(ov),t=>ni.createElement(tv,{key:t,hasDivider:!0,start:ni.createElement($d,{variant:"circular",width:35,height:35}),title:ni.createElement($d,{variant:"text",size:"large",width:90})})))}i(Fd,"LoadingBlockchainList");function _s(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=sv(e),{fetchStatus:l}=h();av(()=>{s([...Pd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?st.createElement(st.Fragment,null,st.createElement(Od,{size:32}),st.createElement(iv,{title:Ds.t("No results found"),description:Ds.t("Try using different keywords")})):st.createElement(oi,{as:"ul",key:`${r}-${o}`},a.map(c=>st.createElement(rv,{key:`${c.name}-${c.chainId}`,hasDivider:!0,onClick:()=>n(c),start:st.createElement(nv,{src:c.logo,size:30}),title:st.createElement(Ud,{variant:"title",size:"medium"},c.displayName),id:c.chainId}))),"renderList");return st.createElement(_d,null,st.createElement(Ud,{variant:"label",size:"large"},Ds.t("Select Blockchain")),st.createElement(Od,{size:4}),l==="loading"&&st.createElement(Fd,null),l==="success"&&p())}i(_s,"BlockchainList");function $s(t){let{type:e}=t,o=rt(),[n,r]=qd(""),[a,s]=qd("ALL"),l=H.use.setToBlockchain(),p=H.use.setFromBlockchain(),c=h().fetchStatus,u=h().blockchains({type:e}),d=lv(u)!==1;return Pt.createElement(me,{header:{title:Qd.t("Select Blockchain")}},Pt.createElement(ye,{view:!0},d&&Pt.createElement(Pt.Fragment,null,Pt.createElement(pv,{setCategory:s,category:a,blockchains:u,isLoading:c==="loading"}),Pt.createElement(zd,{size:24})),Pt.createElement(Bt,{value:n,autoFocus:!0,placeholder:Qd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Pt.createElement(zd,{size:16}),Pt.createElement(_s,{list:u,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i($s,"SelectBlockchainPage");import{i18n as li}from"@lingui/core";import{Divider as uf}from"@rango-dev/ui";import yo,{useState as Ev}from"react";import{useNavigate as Iv}from"react-router-dom";import{i18n as Us}from"@lingui/core";import{BlockchainsChip as ri,Divider as Kd,Image as jd,Skeleton as fv,Tooltip as gv,Typography as Qs}from"@rango-dev/ui";import _e from"react";import{useEffect as mv}from"react";var Hd=["ETH","COSMOS","OSMOSIS"];function Fs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(cv),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 c=n[p];s=s.filter(u=>c.name!==u)}}n.sort(uv(s)),r=n.splice(a)}return{list:n,more:r}}i(Fs,"prepare");function cv(t,e){let o=Hd,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(cv,"sortByMostUsedBlockchains");function uv(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(uv,"generateSortByPreferredBlockchainsFor");function Gd(t,e){return!!e.list.find(o=>o.name===t)}i(Gd,"isInVisibleList");function Os(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();mv(()=>{if(e?.selected){let a=Fs(t,o,e);Gd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Fs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Os,"usePrepareBlockchainList");import{styled as dv}from"@rango-dev/ui";var Vd=dv("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var hv=12;function zs(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Os(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=H.use.resetToBlockchain(),c=H.use.resetFromBlockchain(),u=s.more.length>0,g=s.more.length===1,d=!g&&u;return _e.createElement(_e.Fragment,null,_e.createElement(Kd,{size:12}),_e.createElement(Qs,{variant:"label",size:"large"},Us.t("Select Blockchain")),_e.createElement(Kd,{size:12}),_e.createElement(Vd,null,l==="loading"&&Array.from(Array(hv),m=>_e.createElement(fv,{key:m,variant:"rounded",height:50})),l==="success"&&_e.createElement(_e.Fragment,null,_e.createElement(ri,{selected:!n,onClick:()=>{o==="from"?c():p()}},_e.createElement(Qs,{variant:"body",size:"xsmall",color:"secondary500"},Us.t("All"))),s.list.map(m=>_e.createElement(gv,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:B()},_e.createElement(ri,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},_e.createElement(jd,{src:m.logo,size:30})))),g?_e.createElement(ri,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},_e.createElement(jd,{src:s.more[0].logo,size:30})):null,d?_e.createElement(ri,{onClick:a,key:"more-blockchains"},_e.createElement(Qs,{variant:"body",size:"xsmall",color:"secondary500"},Us._("More +{count}",{count:s.more.length}))):null)))}i(zs,"BlockchainsSection");import{i18n as Js}from"@lingui/core";import{darkTheme as af,Divider as Uo,ExternalLinkIcon as Cv,Image as Tv,ListItemButton as kv,NotFound as vv,PinIcon as xv,Skeleton as sf,Typography as si,VirtualizedList as wv}from"@rango-dev/ui";import j,{useEffect as lf,useState as pf}from"react";import{Divider as nf,ListItem as Sv,Skeleton as kn}from"@rango-dev/ui";import gt from"react";import{css as Oo,darkTheme as Xd,ImageContainer as yv,styled as lt,Typography as Yd}from"@rango-dev/ui";var qs=Oo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Hs=Oo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Gs=Oo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Vs=Oo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Xd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ks=Oo({}),js=Oo(),Zd=lt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Xs=lt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ii=lt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Hs}`]:{[`& .${Vs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ks}`]:{bottom:"-15px"},[`& .${qs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Gs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ys=lt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Zs=lt(Yd,{}),Jd=lt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${js}`]:{$$color:"$colors$neutral600",[`.${Xd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ai=lt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),lz=lt("div",{display:"flex",alignItems:"center"}),Rd=lt("div",{position:"relative",[`& ${yv}`]:{borderRadius:"$xm",overflow:"hidden"}}),ef=lt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),tf=lt(Yd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),of=lt("a",{"& svg:hover":{color:"$colors$info"}});function rf(t){return gt.createElement(ii,null,Array.from(Array(t.size),e=>gt.createElement(Sv,{key:e,hasDivider:!0,start:gt.createElement(kn,{variant:"circular",width:35,height:35}),end:gt.createElement(ai,null,gt.createElement(kn,{variant:"text",size:"large",width:70}),gt.createElement(nf,{size:4}),gt.createElement(kn,{variant:"text",size:"medium",width:50})),title:gt.createElement("div",null,gt.createElement(kn,{variant:"text",size:"large",width:90}),gt.createElement(nf,{size:4}),gt.createElement(kn,{variant:"text",size:"medium",width:90}))})))}i(rf,"LoadingTokenList");var Rs=20,bv=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return j.createElement("div",{className:Hs()},o?j.createElement("div",{className:qs()},o):j.createElement(Xs,{className:Gs()},j.createElement(si,{variant:"title",size:"xmedium"},r.symbol),j.createElement(Uo,{direction:"horizontal",size:4}),j.createElement(Ys,{css:a},j.createElement(Zs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&j.createElement("div",{className:`${Vs()} ${!o&&Ks()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",j.createElement(Uo,{size:4,direction:"horizontal"}),j.createElement(of,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},j.createElement(Cv,{size:12}))))},"renderDesc");function cf(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=pf(e),l=h().fetchStatus,p=h().blockchains(),[c,u]=pf(!0),{getBalanceFor:g,loading:d}=oe(),{isTokenPinned:m}=h(),f=i(()=>{s(e.slice(0,a.length+Rs))},"loadNextPage");lf(()=>{u(e.length>a.length)},[a.length]),lf(()=>{s(e.slice(0,Rs))},[e.length,r]);let C=i(()=>!a.length&&o?j.createElement(j.Fragment,null,j.createElement(Uo,{size:32}),j.createElement(vv,{title:Js.t("No results found"),description:Js.t("Try using different keywords")})):j.createElement(wv,{endReached:c?f:void 0,itemContent:S=>{let y=a[S],T=Qn(g(y)),k=y.address||"",v=p.find(x=>x.name===y.blockchain),b=ha(v.color,"main"),W={$$color:b.main150,[`.${af} &`]:{$$color:b.main750},backgroundColor:"$$color"},w={$$color:b.main750,[`.${af} &`]:{$$color:b.main150},color:"$$color"};return j.createElement("div",{style:{paddingRight:5}},j.createElement(kv,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":S,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[S]),start:j.createElement(Rd,null,j.createElement(Tv,{src:y.image,size:30}),m(y,t.type)&&j.createElement(ef,null,j.createElement(xv,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?j.createElement(Xs,null,j.createElement(si,{variant:"title",size:"xmedium"},y.symbol),j.createElement(Uo,{direction:"horizontal",size:4}),j.createElement(Ys,{css:W},j.createElement(Zs,{variant:"body",size:"xsmall",css:w},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?bv({address:k,token:a[S],customCssForTag:W,customCssForTagTitle:w,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:d?j.createElement(ai,null,j.createElement(sf,{variant:"text",size:"large",width:70}),j.createElement(Uo,{size:4}),j.createElement(sf,{variant:"text",size:"medium",width:50})):T&&j.createElement(Jd,null,j.createElement(tf,{variant:"title",size:"small"},T.amount),j.createElement("div",null),T.usdValue&&j.createElement(si,{variant:"body",className:js(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return j.createElement(Zd,null,j.createElement(si,{variant:"label",size:"large"},Js.t("Select Token")),j.createElement(Uo,{size:4}),l==="loading"&&j.createElement(rf,{size:Rs}),l==="success"&&j.createElement(ii,{as:"ul"},C()))}i(cf,"TokenList");function el(t){let{type:e}=t,o=Iv(),n=rt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:c}=H(),u=oe.use.getBalanceFor(),[g,d]=Ev(""),f=(e==="source"?r:a)?.name??"",C=h().blockchains({type:e}),S=h().tokens({type:e,blockchain:f,searchFor:g,getBalanceFor:u}),y=i(v=>{e==="source"?p(v):c(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:C,tokens:S}}):l({token:v,meta:{blockchains:C,tokens:S}})},"updateToken"),k={source:li.t("Source"),destination:li.t("Destination")};return yo.createElement(me,{header:{title:li.t("Swap {type}",{type:k[e]})}},yo.createElement(ye,null,yo.createElement(zs,{blockchains:C,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(G.blockchains),onChange:v=>{y(v)}}),yo.createElement(uf,{size:24}),yo.createElement(Bt,{value:g,autoFocus:!0,placeholder:li.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:v=>d(v.target.value)}),yo.createElement(uf,{size:16}),yo.createElement(cf,{list:S,selectedBlockchain:f,searchedFor:g,type:e,onChange:v=>{T(v);let b=C.find(W=>v.blockchain===W.name);b&&y(b),n()}})))}i(el,"SelectSwapItemsPage");import{i18n as rl}from"@lingui/core";import{Alert as Jv,Button as Rv,styled as ex}from"@rango-dev/ui";import So from"react";import{useInRouterContext as tx,useSearchParams as ox}from"react-router-dom";import{i18n as yf}from"@lingui/core";import{Divider as Mv,InfoIcon as Bv,TextField as Lv,Tooltip as Pv,Typography as Sf}from"@rango-dev/ui";import ht from"react";import{Chip as Av,styled as vn,TextField as Nv}from"@rango-dev/ui";var mf=vn("div",{paddingTop:"$5",padding:"$10 $5"}),df=vn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Nv}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),ff=vn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),pi=vn("div",{maxWidth:"280px",padding:"$10"}),gf=vn(Av,{width:"61px",flexShrink:0});import{i18n as tl}from"@lingui/core";import{Typography as Wv}from"@rango-dev/ui";import xn from"react";function hf(){return xn.createElement(pi,null,xn.createElement(Wv,{variant:"label",size:"medium",color:"neutral700"},tl.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),xn.createElement("br",null),xn.createElement("br",null),xn.createElement("b",null,tl.t("Warning")),":",tl.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(hf,"SlippageTooltipContent");function ol(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ht.createElement(mf,null,ht.createElement(ff,null,ht.createElement(Sf,{variant:"title",size:"xmedium"},yf.t("Slippage tolerance per swap")),ht.createElement(Mv,{direction:"horizontal",size:4}),ht.createElement(Pv,{container:B(),side:"top",sideOffset:4,content:ht.createElement(hf,null)},ht.createElement(Bv,{color:"gray"}))),ht.createElement(df,null,dp.map((r,a)=>{let s=`slippage-${a}`;return ht.createElement(gf,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ht.createElement(Lv,{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>=yp&&s<=hp?n(s):n(null)},suffix:o&&ht.createElement(Sf,{variant:"body",size:"small"},"%"),placeholder:yf.t("Custom")})))}i(ol,"Slippage");import{i18n as wt}from"@lingui/core";import{AutoThemeIcon as Cf,BridgesIcon as Dv,ChevronRightIcon as nl,DarkModeIcon as Tf,Divider as ci,ExchangeIcon as _v,InfinityIcon as $v,InfoIcon as Fv,LanguageIcon as Ov,LightModeIcon as kf,List as Uv,ListItem as Qv,ListItemButton as zv,Skeleton as qv,styled as Hv,Switch as Gv,Tabs as Vv,Tooltip as Kv,Typography as pt}from"@rango-dev/ui";import U from"react";import{useNavigate as jv}from"react-router-dom";var Xv=Hv("div",{width:"202px",height:"$40"}),Yv=[{id:"light",icon:U.createElement(kf,{color:"black",size:24}),tooltip:U.createElement(pt,{size:"xsmall",variant:"body"},wt.t("Light"))},{id:"dark",icon:U.createElement(Tf,{color:"black",size:24}),tooltip:U.createElement(pt,{size:"xsmall",variant:"body"},wt.t("Dark"))},{id:"auto",icon:U.createElement(Cf,{color:"black",size:24}),tooltip:U.createElement(pt,{size:"xsmall",variant:"body"},wt.t("Auto"))}],Zv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Cf,{...e});case"dark":return U.createElement(Tf,{...e});default:return U.createElement(kf,{...e})}},"getThemeIcon");function vf(){let t=jv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Kt(),s=a.find(Q=>Q.local===r)?.label,l=h().fetchStatus,p=h().swappers(),c=h().getDisabledLiquiditySources(),{config:{features:u}}=h(),g=ot("theme",u),d=ot("liquiditySource",u),m=ot("language",u),f=h().infiniteApprove,C=h().toggleInfiniteApprove,S=Vn(p,c),y=S.filter(Q=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(Q.type)),T=y.length,k=y.filter(Q=>Q.selected).length,v=S.filter(Q=>Q.type==="DEX"),b=v.length,W=v.filter(Q=>Q.selected).length,w=i((Q,te)=>{switch(l){case"loading":return U.createElement(qv,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(pt,{variant:"body",size:"medium",color:"$error500"},wt.t("Loading failed"));default:return U.createElement(pt,{variant:"body",size:"medium"},`${Q} / ${te}`)}},"handleSwapperEndItem"),x={id:"bridge-item",title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Bridges")),end:U.createElement(U.Fragment,null,w(k,T),U.createElement(ci,{direction:"horizontal",size:8}),U.createElement(nl,{color:"black"})),onClick:()=>t(G.bridges),start:U.createElement(Dv,{color:"gray",size:16})},E={id:"exchange-item",title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Exchanges")),end:U.createElement(U.Fragment,null,w(W,b),U.createElement(ci,{direction:"horizontal",size:8}),U.createElement(nl,{color:"black"})),start:U.createElement(_v,{color:"gray",size:16}),onClick:()=>t(G.exchanges)},A={id:"language-item",title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Language")),start:U.createElement(Ov,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(pt,{variant:"body",size:"medium"},s),U.createElement(ci,{direction:"horizontal",size:8}),U.createElement(nl,{color:"black"})),onClick:()=>t(G.languages)},L={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Infinite approval")),U.createElement(ci,{direction:"horizontal",size:4}),U.createElement(Kv,{side:"top",sideOffset:4,container:B(),content:U.createElement(pi,null,U.createElement(pt,{variant:"label",size:"medium",color:"neutral700"},wt.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.")))},U.createElement(Fv,{color:"gray"}))),start:U.createElement($v,{color:"gray",size:16}),end:U.createElement(Gv,{checked:f}),onClick:C},q={id:"theme-item",type:U.createElement(Qv,null),title:U.createElement(pt,{variant:"title",size:"xmedium"},wt.t("Theme")),end:U.createElement(Xv,null,U.createElement(Vv,{container:B(),items:Yv,value:n,onChange:Q=>o(Q.id),type:"primary",borderRadius:"small"})),start:Zv(n)},I=d?[]:[x,E];return m||I.push(A),I.push(L),!e?.singleTheme&&!g&&I.push(q),U.createElement(Uv,{type:U.createElement(zv,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(vf,"SettingsLists");var nx=ex("div",{paddingLeft:"$8"});function xf(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=ox(),r=tx(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return So.createElement(me,{header:{title:rl.t("Settings")}},So.createElement(ye,null,o&&So.createElement(Jv,{type:"info",variant:"alarm",title:rl.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:So.createElement(nx,null,So.createElement(Rv,{type:"secondary",size:"small",onClick:a},rl.t("Reset")))}),So.createElement(ol,null),So.createElement(vf,null)))}i(xf,"SettingsPage");import{i18n as zx}from"@lingui/core";import{cancelSwap as qx}from"@rango-dev/queue-manager-rango-preset";import{useManager as Hx}from"@rango-dev/queue-manager-react";import{Alert as Gx}from"@rango-dev/ui";import kl from"react";import{useParams as Vx}from"react-router-dom";import{i18n as et}from"@lingui/core";import{getCurrentBlockchainOfOrNull as xx,getCurrentStep as wx,getRelatedWalletOrNull as bx}from"@rango-dev/queue-manager-rango-preset";import{Button as tg,CopyIcon as Ex,Divider as Ix,DoneIcon as Ax,IconButton as Nx,QuoteCost as Wx,RangoExplorerIcon as Mx,StepDetails as Bx,Tooltip as og,Typography as To,useCopyToClipboard as Lx}from"@rango-dev/ui";import{useWallets as Px}from"@rango-dev/wallets-react";import ng from"bignumber.js";import{PendingSwapNetworkStatus as Ti}from"rango-types";import Z,{useEffect as rg,useRef as Dx,useState as ig}from"react";import{useNavigate as _x}from"react-router-dom";import{i18n as jt}from"@lingui/core";var rx=[jt.t("Sunday"),jt.t("Monday"),jt.t("Tuesday"),jt.t("Wednesday"),jt.t("Thursday"),jt.t("Friday"),jt.t("Saturday")];function wf(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?jt.t("Today"):`${rx[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(wf,"timeSince");function bf(t){return t.finishTime?wf(parseInt(t.finishTime)):wf(parseInt(t.creationTime))}i(bf,"getSwapDate");import{PendingSwapNetworkStatus as fi}from"rango-types";import gi from"react";import{i18n as ui}from"@lingui/core";import{Button as Ef,Divider as il,MessageBox as ix}from"@rango-dev/ui";import Xt from"react";var If=i(({onCancel:t,onClose:e})=>Xt.createElement(Xt.Fragment,null,Xt.createElement(il,{size:20}),Xt.createElement(ix,{type:"error",title:ui.t("Cancel Swap"),description:ui.t("Are you sure you want to cancel this swap?")}),Xt.createElement(il,{size:32}),Xt.createElement(Ef,{variant:"contained",type:"primary",size:"large",onClick:t},ui.t("Yes, Cancel it")),Xt.createElement(il,{size:12}),Xt.createElement(Ef,{variant:"outlined",type:"primary",size:"large",onClick:e},ui.t("No, Continue"))),"CancelContent");import{i18n as mi}from"@lingui/core";import{Button as Af,Divider as al,MessageBox as ax,Typography as sx}from"@rango-dev/ui";import Dt from"react";var Nf=i(({onDelete:t,onClose:e})=>Dt.createElement(Dt.Fragment,null,Dt.createElement(al,{size:20}),Dt.createElement(ax,{type:"error",title:mi.t("Delete Transaction"),description:mi.t("Are you sure you want to delete this swap?")}),Dt.createElement(al,{size:32}),Dt.createElement(Af,{variant:"contained",type:"primary",size:"large",onClick:t},mi.t("Yes, Delete it")),Dt.createElement(al,{size:12}),Dt.createElement(Af,{variant:"outlined",type:"primary",size:"large",onClick:e},Dt.createElement(sx,{variant:"title",size:"medium",color:"primary"},mi.t("No, Cancel")))),"DeleteContent");import{i18n as sl}from"@lingui/core";import{PendingSwapNetworkStatus as ll}from"rango-types";var pl={[ll.WaitingForNetworkChange]:{type:"loading",title:sl.t("Change Network")},[ll.WaitingForConnectingWallet]:{type:"warning",title:sl.t("Connect Wallet")},[ll.NetworkChanged]:{type:"success",title:sl.t("Network Changed")}};import{debug as di}from"@rango-dev/logging-core";import{MessageBox as lx,Wallet as px}from"@rango-dev/ui";import{useWallets as cx}from"@rango-dev/wallets-react";import Co,{useState as Bf}from"react";import{styled as Wf}from"@rango-dev/ui";var Mf=Wf("div",{display:"flex",justifyContent:"center"}),Yq=Wf("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Lf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:c}=cx(),[u,g]=Bf(null),[d,m]=Bf(null),f=n?.walletType,C=f?$i(c(f)):null,S=f?p(f):null,y=a&&!!f&&!!C&&!!S,T=i(()=>{u&&g({...u,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{d&&m({...d,open:!1})},"handleCloseDerivationPathModal"),v=i(()=>{f&&S&&(S.namespaces?.length?S.namespaces.length>1?g({open:!0,providerType:f,providerImage:S.img,availableNamespaces:S.namespaces,singleNamespace:S.singleNamespace}):S.needsDerivationPath?m({open:!0,providerType:f,providerImage:S.img,namespace:S.namespaces[0]}):l(f).catch(w=>di(w)):l(f).catch(w=>di(w)))},"handleWalletItemClick"),b=i(w=>{S?.needsDerivationPath&&S?.singleNamespace&&w[0]&&f?m({open:!0,providerType:f,providerImage:S.img,namespace:w[0]}):l(u?.providerType,void 0,w.map(x=>({namespace:x}))).catch(x=>di(x)),T()},"handleConfirmNamespaces"),W=i(w=>{w&&d?.namespace&&l(d?.providerType,void 0,[{namespace:d.namespace,derivationPath:w}]).catch(x=>di(x)),k()},"handleDerivationPathConfirm");return Co.createElement(Co.Fragment,null,Co.createElement(lx,{type:e,title:o,description:r}),y&&Co.createElement(Mf,null,Co.createElement(px,{container:B(),title:S.name,image:S.img,type:f,state:C,link:S.installLink,disabled:s,onClick:v})),Co.createElement(lo,{open:!!u?.open,onClose:T,onConfirm:b,image:u?.providerImage,availableNamespaces:u?.availableNamespaces,singleNamespace:u?.singleNamespace}),Co.createElement(ao,{open:!!d?.open,selectedNamespace:d?.namespace,type:d?.providerType,image:d?.providerImage,onClose:k,onConfirm:W}))},"WalletStateContent");function cl(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===fi.WaitingForNetworkChange||e===fi.WaitingForConnectingWallet||e===fi.NetworkChanged;return gi.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},p&&gi.createElement(Lf,{type:pl[e].type,title:pl[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==fi.WaitingForNetworkChange}),e==="delete"&&gi.createElement(Nf,{onClose:o,onDelete:n}),e==="cancel"&&gi.createElement(If,{onClose:o,onCancel:r}))}i(cl,"SwapDetailsModal");import{i18n as wn}from"@lingui/core";import{Button as ul,Divider as hi,MessageBox as Pf,TokenAmount as ux,Typography as ml}from"@rango-dev/ui";import Oe from"react";import{useNavigate as mx}from"react-router-dom";function dl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:c,percentageChange:u,description:g,diagnosisUrl:d}=t,m=mx();return Oe.createElement(ne,{open:e,onClose:o,container:document.getElementById(Ce.SWAP_BOX_ID)||document.body},n==="success"?Oe.createElement(Pf,{type:"success",title:wn.t("Swap Successful")},Oe.createElement(ux,{direction:"vertical",tooltipContainer:B(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:c,percentageChange:u}),Oe.createElement(hi,{size:12}),Oe.createElement(ml,{variant:"body",size:"medium",color:"neutral700",align:"center"},g)):Oe.createElement(Pf,{type:"error",title:wn.t("Transaction Failed"),description:g}),Oe.createElement(hi,{size:32}),n==="success"&&Oe.createElement(ul,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Oe.createElement(ml,{variant:"title",size:"medium",color:"neutral100"},wn.t("Done"))),Oe.createElement(hi,{size:12}),d&&Oe.createElement(Oe.Fragment,null,Oe.createElement(ul,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},wn.t("Diagnosis")),Oe.createElement(hi,{size:12})),Oe.createElement(ul,{variant:"outlined",type:"primary",size:"large",onClick:o},Oe.createElement(ml,{variant:"title",size:"medium",color:"primary"},wn.t("See Details"))))}i(dl,"SwapDetailsCompleteModal");import vx from"react";import{i18n as Sx}from"@lingui/core";import{Alert as Zf,IconButton as Cx,LinkIcon as Tx}from"@rango-dev/ui";import Yt,{Fragment as kx}from"react";import{Alert as fx,ChevronDownIcon as gx,IconButton as hx}from"@rango-dev/ui";import zo,{useState as yx}from"react";import{css as bn,darkTheme as Df,styled as _t,Typography as dx}from"@rango-dev/ui";var _f=_t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),yi=_t("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Df} &`]:{color:"$secondary500"}}}}}),$f=_t(Zo,{padding:"$0 $20 $20 $20"}),LH=_t("div",{display:"flex",flexDirection:"column",gap:"$10"}),Ff=_t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),PH=_t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Qo=bn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Df} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Of=bn({padding:"$5 0"}),Si=bn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Uf=bn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Qf=bn({width:"100%",padding:"0 $20 $10"}),zf=_t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),qf=_t("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ci=_t(dx,{wordBreak:"break-word"});import{styled as fl}from"@rango-dev/ui";var Hf=fl("div",{display:"flex",flexDirection:"column",gap:"$10"}),Gf=fl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Vf=fl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Kf(t){let{message:e}=t,[o,n]=yx(!1);return zo.createElement(fx,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&zo.createElement(hx,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},zo.createElement(Gf,{rotated:o},zo.createElement(gx,{size:12,color:"gray"}))),footer:zo.createElement(Vf,{open:o},zo.createElement(Ci,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Kf,"FailedAlert");import{i18n as jf}from"@lingui/core";import{Alert as gl,Button as Xf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as hl}from"rango-types";import En from"react";function Yf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?En.createElement(gl,{type:"warning",title:n.shortMessage,action:En.createElement(Xf,{size:"xxsmall",type:"warning",onClick:()=>{o(hl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},jf.t("Change"))}):r===hl.WaitingForConnectingWallet?En.createElement(gl,{type:"warning",title:n.shortMessage,action:En.createElement(Xf,{size:"xxsmall",type:"warning",onClick:()=>{o(hl.WaitingForConnectingWallet)}},jf.t("Connect"))}):En.createElement(gl,{type:"warning",title:n.shortMessage})}i(Yf,"WarningAlert");function yl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Yo(a),p=a.status==="waitingForApproval"&&!l,c=a.status==="running"&&!l,u=c&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(Hf,null,a.explorerUrl?.map((g,d,m)=>{let f=d+g.url,C=d===m.length-1,S=(C&&c||p)&&!u,y=C&&a.status==="failed";return Yt.createElement(kx,{key:f},Yt.createElement(Zf,{type:C&&(S&&"loading"||y&&"error")||"success",title:g.description?`${g.description} Tx`:Sx.t("View transaction"),action:g.url&&Yt.createElement(Cx,{variant:"ghost",size:"xsmall",onClick:()=>window.open(g.url,"_blank")},Yt.createElement(Tx,{size:12}))}))}),u&&Yt.createElement(Zf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(Yf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(Kf,{message:r}))}i(yl,"SwapDetailsAlerts");var Jf=2e3;var Rf=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:tt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:tt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Go(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:tt(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:tt(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Go(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:vx.createElement(yl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function eg(t){if(Yo(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(eg,"getStepState");function Sl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Px(),p=h().blockchains(),c=h().swappers(),{findToken:u}=h(),g=H.use.retry(),d=pe.use.isActiveTab(),m=_x(),[f,C]=Lx(Jf),S=Dx(null),[y,T]=ig(null),[k,v]=ig(null),b=i(()=>{r(),T(null)},"onCancel"),W=Ie.use.getNotifications(),w=Ie.use.removeNotification(),x=W(),E=wx(e),A=E?.networkStatus;rg(()=>{x.find(Ee=>Ee.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),w(e.requestId)):k&&v(null))},[e.status,e.requestId]),rg(()=>{_?T(Ti.WaitingForNetworkChange):A===Ti.WaitingForConnectingWallet||A===Ti.NetworkChanged?T(A):T(null)},[A]);let L=Hp(e),q=E?xx(e,E):null,I=E?bx(e,E):null,Q=bf(e),te=Gp(e),P=i(le=>!!l(le)?.mobileWallet,"isMobileWallet"),_=A===Ti.WaitingForNetworkChange&&!!q&&!!I?.walletType&&(P(I.walletType)||a(I.walletType,q)),X=_?s.bind(null,I.walletType,q):void 0,Se=qp(e,E),Y=Rf({swap:e,switchNetwork:X,showNetworkModal:A,setNetworkModal:T,message:Se,blockchains:p,swappers:c}),ie=Y.length,[he,Te]=[e.steps[0],e.steps[ie-1]],$=Te.outputAmount||Te.expectedOutputAmountHumanReadable,N=e.steps.reduce((le,Ee)=>le+parseFloat(Ee.feeInUsd||""),0),ce=e.steps.find(le=>le.diagnosisUrl)?.diagnosisUrl,ue=M(parseFloat($||"0")*(Te.toUsdPrice||0),4,4),$e=M(parseFloat(e.inputAmount)*(he.fromUsdPrice||0),4,4),D=$?new ng($).multipliedBy(Te.toUsdPrice||0).toString():"",z=new ng(e.inputAmount).multipliedBy(he.fromUsdPrice||0).toString(),K=nt($e,ue),se=Se.detailedMessage.content||Se.shortMessage,ee=e.status==="success"?et.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M($,6,6),token:Y[ie-1].to.token.displayName,conciseAddress:zn(e.wallets[Y[ie-1].to.chain.displayName]?.address||""),chain:Y[ie-1].to.chain.displayName}}):Z.createElement(qf,null,Z.createElement(To,{variant:"body",size:"medium",color:"neutral700",align:"center"},se?"":et.t("Transaction was not sent."),L?`${et.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}})}`:""),se&&Z.createElement(Ci,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",se));return Z.createElement(me,{header:{title:et.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(Ut,null,Z.createElement(tg,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},Z.createElement(To,{size:"medium",variant:"label",color:"error"},et.t("Delete"))))},footer:te&&!k&&Z.createElement(tg,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let le=rr(e,p,u);g(le),setTimeout(()=>{m("../../")},0)}},et.t("Try again"))},Z.createElement(ye,{compact:!0,view:!0},Z.createElement(yi,null,Z.createElement("div",{className:Qo()},Z.createElement(To,{variant:"label",size:"large",color:"neutral700"},`${et.t("Request ID")}:`),Z.createElement("div",{className:Si()},Z.createElement(To,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(og,{container:B(),content:f?et.t("Copied To Clipboard"):et.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(Nx,{variant:"ghost",onClick:C.bind(null,o||"")},f?Z.createElement(Ax,{size:16,color:"secondary"}):Z.createElement(Ex,{size:16,color:"gray"}))),Z.createElement(zf,{target:"_blank",href:`${Nl}/swap/${o}`},Z.createElement(og,{container:B(),content:et.t("View on Rango Explorer"),side:"bottom"},Z.createElement(Mx,{size:20}))))),Z.createElement("div",{className:Qo()},Z.createElement(To,{variant:"label",size:"large",color:"neutral700"},e.finishTime?et.t("Finished at"):et.t("Created at")),Z.createElement(To,{variant:"label",size:"small",color:"neutral700"},Q))),Z.createElement("div",{className:Uf()},Z.createElement(Wx,{fee:M(String(N),2,2),time:Vo(Dn(e.steps)),steps:ie}),Z.createElement(rn,{from:{price:{value:M(e.inputAmount,6,6),usdValue:$e,realUsdValue:z,realValue:e.inputAmount},token:{displayName:Y[0].from.token.displayName,image:Y[0].from.token.image},chain:{image:Y[0].from.chain.image,displayName:Y[0].from.chain.displayName}},to:{price:{value:M($,6,6),usdValue:ue,realUsdValue:D,realValue:$||""},token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image,displayName:Y[ie-1].to.chain.displayName}},percentageChange:M(K,2,2),warningLevel:It(K??0)})),Z.createElement("div",{className:Qf()},Z.createElement(To,{variant:"title",size:"small"},et.t("Swaps steps"))),Z.createElement(Ix,{size:8}),Z.createElement($f,{ref:S},Y.map((le,Ee)=>{let Nn=Ee,qo=eg(e.steps[Ee]),Ng=qo==="error"||qo==="in-progress"||qo==="warning"||qo==="completed"&&Ee===Y.length-1;return Z.createElement(Bx,{key:Nn,step:le,type:"swap-progress",ref:S,state:qo,hasSeparator:Ee!==0,tabIndex:Nn,isFocused:Ng,tooltipContainer:B()})}))),Z.createElement(cl,{state:y,onClose:()=>T(null),onCancel:b,onDelete:n,message:Se.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!d}),Z.createElement(dl,{open:!!k,diagnosisUrl:ce,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M($,6,6),usdValue:ue,realUsdValue:D,realValue:$||"",percentageChange:M(K,2,2),token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image},description:ee}))}i(Sl,"SwapDetails");import{i18n as vi}from"@lingui/core";import{Divider as lg,NotFound as Qx,Skeleton as An,Typography as xi}from"@rango-dev/ui";import xe from"react";import{i18n as $x}from"@lingui/core";import{Divider as Fx,Skeleton as Ox,Typography as Ux}from"@rango-dev/ui";import be from"react";import{css as yt,styled as Cl}from"@rango-dev/ui";var ag=Cl("div",{width:"100%",height:"100%",padding:"$10 $20"}),In=Cl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ki=Cl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),VG=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),KG=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),jG=yt({paddingTop:"$15",display:"flex"}),XG=yt({padding:"$15 $0"}),YG=yt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),ZG=yt({paddingBottom:"$10"}),JG=yt({display:"flex",justifyContent:"start",alignItems:"center"}),RG=yt({paddingTop:"$5",display:"flex",alignItems:"center"}),eV=yt({display:"flex",alignItems:"center"}),tV=yt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),sg=yt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Tl(){return be.createElement(ag,null,be.createElement(ln,{type:"swap-preview"}),be.createElement("div",{className:"swaps-steps"},be.createElement(Ux,{variant:"title",size:"small"},$x.t("Swaps steps"))),be.createElement(be.Fragment,null,be.createElement(In,null,be.createElement(vt,{separator:!1}),be.createElement("div",{className:sg()},be.createElement(Fx,{direction:"horizontal",size:20}),be.createElement(Ox,{height:22,variant:"rectangular"}))),be.createElement(ki,null),be.createElement(In,null,be.createElement(vt,{separator:!1})),be.createElement(ki,null),be.createElement(In,null,be.createElement(vt,{separator:!1})),be.createElement(ki,null),be.createElement(In,null,be.createElement(vt,{separator:!1}))))}i(Tl,"LoadingSwapDetails");function pg(t){let{requestId:e,showSkeleton:o}=t;return xe.createElement(me,{header:{title:vi.t("Swap Details"),suffix:xe.createElement(Ut,null)}},o&&xe.createElement(_f,null,xe.createElement(yi,null,xe.createElement("div",{className:Qo()},xe.createElement(xi,{variant:"label",size:"large",color:"neutral700"},`${vi.t("Request ID")}:`),xe.createElement("div",{className:Si()},xe.createElement(xi,{variant:"label",size:"small",color:"neutral700"},xe.createElement(An,{width:60,height:10,variant:"rounded"})),xe.createElement(lg,{direction:"horizontal",size:4}),xe.createElement(An,{width:16,height:16,variant:"rectangular"}),xe.createElement(lg,{direction:"horizontal",size:4}),xe.createElement(An,{width:16,height:16,variant:"rectangular"}))),xe.createElement("div",{className:Qo()},xe.createElement(xi,{className:Of(),variant:"label",size:"large",color:"neutral700"},xe.createElement(An,{width:60,height:10,variant:"rounded"})),xe.createElement(xi,{variant:"label",size:"small",color:"neutral700"},xe.createElement(An,{width:60,height:10,variant:"rounded"})))),xe.createElement(Tl,null)),!o&&xe.createElement(Ff,null,xe.createElement(Qx,{title:vi.t("Not found"),description:vi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(pg,"SwapDetailsPlaceholder");function cg(){let{manager:t,state:e}=Hx(),o=!e.loadedFromPersistor,n=it(t),{requestId:r}=Vx(),a=rt(),{fetchStatus:s}=h();if(!r)return kl.createElement(Gx,{containerStyles:{margin:"20px"},type:"error",title:zx.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:d})=>d.requestId===r):void 0,c=i(()=>{if(p?.id){let d=t?.get(p.id);d&&qx(d)}},"onCancel"),u=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),g=p?.swap;return!g||l?kl.createElement(pg,{requestId:r,showSkeleton:l}):kl.createElement(Sl,{swap:g,requestId:r,onCancel:c,onDelete:u})}i(cg,"SwapDetailsPage");function ug(){return tc(),sa(),Kx([{path:G.home,element:Xe.createElement(Ad,null)},{path:G.routes,element:Xe.createElement(Ld,null)},{path:G.fromSwap,children:[{index:!0,element:Xe.createElement(el,{type:"source"})},{path:G.blockchains,element:Xe.createElement($s,{type:"source"})}]},{path:G.toSwap,children:[{index:!0,element:Xe.createElement(el,{type:"destination"})},{path:G.blockchains,element:Xe.createElement($s,{type:"destination"})}]},{path:G.settings,children:[{index:!0,element:Xe.createElement(xf,null)},{path:G.languages,element:Xe.createElement(Wd,null)},{path:G.exchanges,element:Xe.createElement(Ps,{sourceType:"Exchanges"})},{path:G.bridges,element:Xe.createElement(Ps,{sourceType:"Bridges"})}]},{path:G.swaps,children:[{index:!0,element:Xe.createElement(ad,null)},{path:G.swapDetails,element:Xe.createElement(cg,null)}]},{path:G.wallets,element:Xe.createElement(lu,null)},{path:G.confirmSwap,element:Xe.createElement(Om,null)}])}i(ug,"AppRoutes");import{useQueueManager as ow}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as nw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as rw}from"rango-sdk";import{useContext as iw,useEffect as Sg,useState as Cg}from"react";import{globalCss as jx}from"@rango-dev/ui";var mg=i(()=>jx({"@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 dg(){let{setWatermark:t}=pe();return{fetchApiConfig:i(async()=>{let o=await fetch(`${Et("BASE_URL")}/meta/dapp/config?apiKey=${Et("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(dg,"useFetchApiConfig");import{useWallets as Xx}from"@rango-dev/wallets-react";import{useEffect as Yx,useRef as Zx}from"react";function fg(){let{connect:t,state:e}=Xx(),o=Zx({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Yx(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(fg,"useForceAutoConnect");import{isApprovalTX as Jx,RouteEventType as gg,StepEventType as hg,StepExecutionEventStatus as Rx,WidgetEvents as wi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as yg}from"react";function vl(){let t=oe.use.connectedWallets(),e=oe.use.getWalletsDetails(),o=Ie.use.setNotification(),{findToken:n}=h();yg(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===hg.TX_EXECUTION&&s.status===Rx.TX_SENT&&!Jx(l)||s.type===hg.SUCCEEDED){let u=t.find(d=>d.chain===l?.fromBlockchain),g=l?.fromBlockchain!==l?.toBlockchain&&t.find(d=>d.chain===l?.toBlockchain);u&&e([u],n),g&&e([g],n)}o(s,p)},"handleStepEvent");return ke.on(wi.StepEvent,r),()=>ke.off(wi.StepEvent,r)},[ke,t]),yg(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===gg.FAILED||s.type===gg.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return ke.on(wi.RouteEvent,r),()=>ke.off(wi.RouteEvent,r)},[ke])}i(vl,"useSubscribeToWidgetEvents");import{useManager as ew}from"@rango-dev/queue-manager-react";import{useEffect as tw}from"react";function xl(){let{isSynced:t,syncNotifications:e}=Ie(),{manager:o,state:n}=ew();tw(()=>{Ie.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(it(o))},[Ie.persist.hasHydrated(),n.loadedFromPersistor,t])}i(xl,"useSyncNotifications");function wl(){fg(),mg(),vl(),xl();let t=h().blockchains(),{canSwitchNetworkTo:e}=Er(),[o,n]=Cg(""),[r,a]=Cg(),s=iw(jn),l=t.filter(rw),{fetchApiConfig:p}=dg();Sg(()=>()=>ec(),[]),ow({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Sg(()=>(Rt.init(),Ie.persist.hasHydrated()||Ie.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(c=>{a(c),c===nw(o)?.[0]&&n("")}),p().catch(console.log),Rt.destroy),[])}i(wl,"useBootstrap");import{styled as aw}from"@rango-dev/ui";var Tg=aw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function bi(){wl();let{config:t}=h(),{activeTheme:e}=gr(t?.theme||{}),{activeLanguage:o}=Kt();return bl.createElement(sw,{language:o},bl.createElement(Tg,{id:"swap-container",className:e()},bl.createElement(ug,null)))}i(bi,"Main");import{setSolanaSignerConfig as Iw}from"@rango-dev/signer-solana";import Il,{useEffect as Eg,useMemo as Aw}from"react";import{useState as lw}from"react";var pw=i(()=>{let[t,e]=lw(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=Ol(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),kg=pw;import{checkWaitingForNetworkChange as cw,makeQueueDefinition as uw}from"@rango-dev/queue-manager-rango-preset";import{Provider as mw}from"@rango-dev/queue-manager-react";import{useWallets as dw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as fw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as gw}from"rango-types";import hw,{useMemo as yw}from"react";function Sw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=dw(),l=yw(()=>uw({API_KEY:t.apiKey||Et("API_KEY"),BASE_URL:Et("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),p=h().blockchains(),u={blockchains:oe.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},g=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),m=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),f=p.filter(gw),C=i(k=>{let{supportedChains:v}=s(k);return Fn(v)},"getSupportedChainNames"),S=e(),y={meta:{blockchains:m,evmBasedChains:f,evmNetworkChainInfo:fw(f),getSupportedChainNames:C},getSigners:o,wallets:u,providers:S,switchNetwork:g,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},T=pe.use.isActiveTab();return hw.createElement(mw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{cw(k)},isPaused:!T},t.children)}i(Sw,"QueueManager");var vg=Sw;import{useManager as xw}from"@rango-dev/queue-manager-react";import ww,{createContext as bw,useContext as Ew}from"react";function xg(){let{findToken:t}=h(),e=h().blockchains(),o=h().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=H();return i(c=>{let{fromBlockchain:u,fromToken:g,toBlockchain:d,toToken:m,requestAmount:f}=c,C={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(g!==void 0){let S=g?t(g)??null:null;r({meta:C,token:S})}if(d!==void 0){let S=e.find(y=>y.name===d)??null;a(S)}if(m!==void 0){let S=m?t(m)??null:null;s({meta:C,token:S})}f!==void 0&&l(f)},"updateQuoteInputs")}i(xg,"useUpdateQuoteInputs");import{cancelSwap as Cw,getCurrentBlockchainOfOrNull as Tw,getCurrentStep as kw,getRelatedWalletOrNull as vw}from"@rango-dev/queue-manager-rango-preset";var Ei=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return it(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=rr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Cw(o)}getCurrentStepInfo(e){let o=kw(e);return{step:o,wallet:o?vw(e,o):null,network:o?Tw(e,o):null}}};var wg=bw(void 0);function El(t){let{manager:e}=xw(),o=pe.use.isActiveTab(),n=H.use.retry(),{findToken:r}=h(),a=new Ei(e,{retrySwap:n,findToken:r}),s=oe.use.connectedWallets(),l=oe.use.loading(),p=Kl(s),c=oe.use.getWalletsDetails(),u=h().blockchains(),g=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=Kt().resetLanguage,C=Ie().getNotifications(),S=Ie().clearNotifications,y=xg(),{fromBlockchain:T,toBlockchain:k,fromToken:v,toToken:b,inputAmount:W}=H(),w={isActiveTab:o,setCurrentTabAsActive:Rt.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:x=>c(x,r)},meta:{blockchains:u,tokens:g,swappers:d,loadingStatus:m,findToken:r},resetLanguage:f,notifications:{list:C,clearAll:S},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:k?.name??null,toToken:b?{symbol:b.symbol,blockchain:b.blockchain,address:b.address}:null,requestAmount:W},updateQuoteInputs:y}};return ww.createElement(wg.Provider,{value:w},t.children)}i(El,"WidgetInfo");function bg(){let t=Ew(wg);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(bg,"useWidget");function Ii(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=kg();return Eg(()=>{n&&r(n)},[n]),Aw(()=>{tp({API_KEY:o?.apiKey||Wn,BASE_URL:o?.apiUrl||Al})},[o.apiKey,o.apiUrl]),Eg(()=>{t.config?.signers?.customSolanaRPC&&Iw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Il.createElement(Xn,{config:o,onUpdateState:e},Il.createElement(vg,{apiKey:o.apiKey},Il.createElement(El,null,t.children)))}i(Ii,"WidgetProvider");function Ig(t){let e=t.config?.externalWallets;return Ai.createElement(Ep,null,e?Ai.createElement(bi,null):Ai.createElement(Ii,{config:t.config??Ki},Ai.createElement(bi,null)))}i(Ig,"Widget");function Ag(){let{on:t,off:e}=ke;return{on:t,off:e}}i(Ag,"useWidgetEvents");export{x4 as EventSeverity,vo as MainEvents,B4 as Networks,D4 as PendingSwapNetworkStatus,zi as QuoteEventTypes,w4 as RouteEventType,Ni as SUPPORTED_FONTS,b4 as StepEventType,E4 as StepExecutionBlockedEventStatus,I4 as StepExecutionEventStatus,Ce as UI_ID,Hi as UiEventTypes,qi as WalletEventTypes,W4 as WalletEvents,L4 as WalletTypes,Ig as Widget,vo as WidgetEvents,Ii as WidgetProvider,Xn as WidgetWallets,Ta as customizedThemeTokens,N4 as readAccountAddress,oo as useWalletList,Er as useWallets,bg as useWidget,Ag as useWidgetEvents,Lg as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map