@rango-dev/widget-embedded 0.29.1-next.20 → 0.29.1-next.21

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.
Files changed (50) hide show
  1. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +6 -0
  2. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
  3. package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
  4. package/dist/components/SearchInput/SearchInput.types.d.ts +2 -0
  5. package/dist/components/SearchInput/SearchInput.types.d.ts.map +1 -1
  6. package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
  7. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.d.ts +4 -0
  8. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.d.ts.map +1 -0
  9. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.styles.d.ts +325 -0
  10. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.styles.d.ts.map +1 -0
  11. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.types.d.ts +10 -0
  12. package/dist/components/WalletDerivationPathModal/WalletDerivationPathModal.types.d.ts.map +1 -0
  13. package/dist/components/WalletDerivationPathModal/index.d.ts +2 -0
  14. package/dist/components/WalletDerivationPathModal/index.d.ts.map +1 -0
  15. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.d.ts.map +1 -1
  16. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.types.d.ts +1 -1
  17. package/dist/components/WalletNamespacesModal/WalletNamespacesModal.types.d.ts.map +1 -1
  18. package/dist/constants/namespaces.d.ts +8 -0
  19. package/dist/constants/namespaces.d.ts.map +1 -0
  20. package/dist/hooks/useWalletList.d.ts +3 -3
  21. package/dist/hooks/useWalletList.d.ts.map +1 -1
  22. package/dist/index.d.ts +2 -2
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -2
  25. package/dist/index.js.map +4 -4
  26. package/dist/pages/WalletsPage.d.ts.map +1 -1
  27. package/dist/types/wallets.d.ts +2 -1
  28. package/dist/types/wallets.d.ts.map +1 -1
  29. package/dist/utils/common.d.ts +2 -2
  30. package/dist/utils/common.d.ts.map +1 -1
  31. package/dist/utils/wallets.d.ts +4 -4
  32. package/dist/utils/wallets.d.ts.map +1 -1
  33. package/dist/widget-embedded.build.json +1 -1
  34. package/package.json +6 -6
  35. package/src/components/ConfirmWalletsModal/WalletList.tsx +81 -14
  36. package/src/components/SearchInput/SearchInput.types.ts +2 -0
  37. package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +77 -11
  38. package/src/components/WalletDerivationPathModal/WalletDerivationPathModal.styles.ts +17 -0
  39. package/src/components/WalletDerivationPathModal/WalletDerivationPathModal.tsx +154 -0
  40. package/src/components/WalletDerivationPathModal/WalletDerivationPathModal.types.tsx +10 -0
  41. package/src/components/WalletDerivationPathModal/index.ts +1 -0
  42. package/src/components/WalletNamespacesModal/WalletNamespacesModal.tsx +9 -6
  43. package/src/components/WalletNamespacesModal/WalletNamespacesModal.types.tsx +1 -1
  44. package/src/constants/namespaces.ts +62 -0
  45. package/src/hooks/useWalletList.ts +5 -2
  46. package/src/index.ts +2 -2
  47. package/src/pages/WalletsPage.tsx +85 -19
  48. package/src/types/wallets.ts +2 -1
  49. package/src/utils/common.ts +2 -2
  50. package/src/utils/wallets.ts +7 -5
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var Uf=Object.defineProperty;var i=(t,e)=>Uf(t,"name",{value:e,configurable:!0});import{EventSeverity as KV,RouteEventType as jV,StepEventType as YV,StepExecutionBlockedEventStatus as ZV,StepExecutionEventStatus as JV}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as e2,useWallets as Cr,Events as t2}from"@rango-dev/wallets-react";import{Networks as n2,WalletTypes as r2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as a2}from"rango-types";import{UI_ID as Qf}from"@rango-dev/ui";var kn="c6381a79-2817-4602-83bf-6a641a409e32",al="https://api.rango.exchange",sl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Qf};var ll="Roboto",Ci=[{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 $i,Provider as _g}from"@rango-dev/wallets-react";import{isEvmBlockchain as $g}from"rango-sdk";import Fn,{createContext as Dg,useEffect as op,useMemo as Fg,useRef as np}from"react";import{useEffect as lg}from"react";import{create as ig}from"zustand";import{subscribeWithSelector as ag}from"zustand/middleware";import zf from"mitt";var Te=zf(),qf={on:Te.on,off:Te.off};import{RangoClient as ng}from"rango-sdk";import{BlockchainCategories as Yf,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as Zf}from"@rango-dev/wallets-react";import{detectInstallLink as Jf,getCosmosExperimentalChainInfo as Rf,isEvmAddress as eg,KEPLR_COMPATIBLE_WALLETS as Gw,Networks as Tl}from"@rango-dev/wallets-shared";import Ei from"bignumber.js";import{isCosmosBlockchain as tg}from"rango-types";import Hf from"bignumber.js";var Le=new Hf(0);import{WalletTypes as Gf}from"@rango-dev/wallets-shared";var pl=[Gf.LEAP];import{BlockchainCategories as Ti,WalletState as jf}from"@rango-dev/ui";import{TransactionType as vn}from"rango-sdk";function ho(t){return Array.from(new Set(t))}i(ho,"removeDuplicateFrom");function wi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(wi,"areEqual");function gl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(gl,"debounce");function xt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(xt,"containsText");function ml(t,e){return t.toLowerCase()===e.toLowerCase()}i(ml,"exactText");function dl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(dl,"startWithText");var P=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),$o=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function fl(t,e,o){let n=!!e&&ml(e,t),r=!!o&&ml(o,t);return n!==r?n?-1:1:0}i(fl,"compareExactMatchText");function ki(t,e,o){let n=!!e&&xt(e,t),r=!!o&&xt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ki,"compareContainsText");function vi(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(vi,"compareStartWithText");function hl(t,e,o){if(!o)return 0;let n=fl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=fl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=vi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ki(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=vi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ki(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=vi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ki(o,t.address,e.address);if(r!==0)return r}return 0}i(hl,"compareWithSearchFor");var wn=i((t,e)=>{switch(e){case Ti.ALL:return!0;case Ti.UTXO:return t===vn.TRANSFER;case Ti.OTHER:return t!==vn.TRANSFER&&t!==vn.COSMOS&&t!==vn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),yl=i(t=>Ci.find(o=>o.value===t)?.url,"getFontUrlByName");function xn(t,e){let o=!!t.find(n=>n.state===jf.CONNECTED);return e===!1&&o}i(xn,"isSingleWalletActive");function bn(t,e){return e.find(o=>o.name===t)?.displayName}i(bn,"getBlockchainDisplayNameFor");function Ve(t,e){return e.find(o=>o.name===t)?.shortName}i(Ve,"getBlockchainShortNameFor");function Sl(t,e){return e.find(o=>o.name===t)?.logo}i(Sl,"getBlockchainImage");function Do(t,e){return e.find(o=>o.id===t)?.title}i(Do,"getSwapperDisplayName");function xi(t,e){return e.find(o=>o.name===t)??null}i(xi,"findBlockchain");function bi(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(bi,"isTokenNative");function Dt(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Dt,"createTokenHash");import{BigNumber as Cl}from"bignumber.js";var Fo=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 Cl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Cl(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 En=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var gt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Oo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Ii(t){switch(!0){case t.connected:return ht.CONNECTED;case t.connecting:return ht.CONNECTING;case!t.installed:return ht.NOT_INSTALLED;default:return ht.DISCONNECTED}}i(Ii,"mapStatusToWalletState");function kl(t,e,o,n){return o.filter(r=>!pl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m}=e(r),f=ho(m.map(g=>g.type)),d=Ii(t(r));return{title:a,image:s,link:Jf(l),state:d,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:f}})}i(kl,"mapWalletTypesToWalletInfo");function Nn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Nn,"walletAndSupportedChainsNames");function vl(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=Zf(p),m=l.length>0,f=l.includes(c),d=c===Tl.Unknown;if(m&&!f&&!d)return;let T=c===Tl.Unknown&&eg(u);if(d&&!T)return;o.includes(c)||T?r?s(c,u.toLowerCase()):l.filter(S=>o.includes(S)).forEach(S=>{s(S,u.toLowerCase())}):s(c,u)}),a}i(vl,"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((u,c)=>{let m=u.from.blockchain,f=u.to.blockchain,d=a===o.swaps.length-1,g=c===p.length-1;(!d&&!g||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(l)}),Array.from(n)}i(Zt,"getQuoteWallets");function Wn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Wn,"isAccountAndWalletMatched");function wl(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 Ei(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(wl,"makeBalanceFor");function xl(t){return{...t,loading:!1,error:!0}}i(xl,"resetConnectedWalletState");var bl=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 Ei(a?.amount||Le).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Le)||Le).toString();return og(r)},"calculateWalletUsdValue");function og(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(og,"numberWithThousandSeparator");var Mn=i((t,e)=>{let o=Rf(Object.entries(t).map(([,n])=>n).filter(tg));return o&&o[e]?.experimental},"isExperimentalChain");function Ln(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(Ln,"formatBalance");function El(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(El,"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 Il(t){return t.sort((e,o)=>+(o.state===ht.CONNECTED)-+(e.state===ht.CONNECTED)||+(o.state===ht.DISCONNECTED||o.state===ht.CONNECTING)-+(e.state===ht.DISCONNECTED||e.state===ht.CONNECTING))}i(Il,"sortWalletsBasedOnConnectionState");function Bn(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(Bn,"getConciseAddress");function Al({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Al,"getAddress");function Pn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ei(o?.usdPrice??Le).multipliedBy(o?.amount).toString():""},r=o?Dt({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i(Pn,"makeTokensBalance");var Nl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Wl(t){return t.map(e=>e.state).join("-")}i(Wl,"hashWalletsState");function Ml(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(Ml,"filterBlockchainsByWalletTypes");function Ll(t,e){return e===Yf.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(wn(n,e))return!0;return!1})}i(Ll,"filterWalletsByCategory");var Ai={API_KEY:kn};function bt(t){return Ai[t]||""}i(bt,"getConfig");function Bl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ai=e,Ai}i(Bl,"initConfig");var Pl=20,_l=25,Ni="theme-widget",Uo=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"),Wi=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),$l=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var _n,Ft=i(()=>_n||(_n=new ng(bt("API_KEY"),bt("BASE_URL")),_n),"httpService");import{WidgetEvents as Dl}from"@rango-dev/queue-manager-rango-preset";var Mi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Mi||{}),Li=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Li||{}),Qo=(r=>(r[r.RouteEvent=Dl.RouteEvent]="RouteEvent",r[r.StepEvent=Dl.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(Qo||{});var rg=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Ot=rg;var te=Ot(ig()(ag((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{Te.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)&&Te.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:Pn(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=>Wn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ft().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(T=>Wn(T,f)),g=p.find(T=>T.address===f.address&&T.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:wl(g,n),loading:!1}:f});return{loading:!1,balances:Pn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Wn(m,c))?xl(c):c);return{loading:!1,balances:Pn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Dt(o);return n[r]??null}}))));import{allProviders as sg}from"@rango-dev/provider-all";function $n(t,e){let o=sg({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($n,"matchAndGenerateProviders");function Fl(t,e){return $n(t,e).map(r=>r.config.type)}i(Fl,"configWalletsToWalletName");function Ol(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Ol,"hashProviders");function Bi(t,e){let o=te.use.clearConnectedWallet(),n=$n(t,e);return lg(()=>{o(),n=$n(t,e)},[Ol(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Bi,"useWalletProviders");import Ag,{createContext as Ng,useContext as Wg,useEffect as Mg,useRef as Lg}from"react";import{create as Eg}from"zustand";import{persist as Ig}from"zustand/middleware";var Pi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},pg={clientUrl:void 0},cg={liquiditySources:void 0},Ul=i((t,e,o)=>({config:{...Pi,...t},iframe:pg,campaignMode:cg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Dn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return ho(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(Dn,"getUniqueSwappersGroups");function Ql(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ql,"sortLiquiditySourcesByGroupTitle");function Xe(t,e){return e?.[t]==="hidden"}i(Xe,"isFeatureHidden");function zl(t,e){return e?.[t]==="enabled"}i(zl,"isFeatureEnabled");var ql=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&Uo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(xt(c.symbol,o.searchFor)||xt(c.address||"",o.searchFor)||xt(c.name||"",o.searchFor)):!0).sort((c,m)=>{let f=e().isTokenPinned(c,o.type),d=e().isTokenPinned(m,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let S=o.getBalanceFor(c),k=o.getBalanceFor(m),w=El(S,k);if(w!==0)return w}let g=a.get(c.blockchain),T=a.get(m.blockchain),C=bi(c,g),y=bi(m,T);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let S=hl(c,m,o.searchFor);if(S)return S}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&T?g.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Dt(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>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(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Ql)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ft().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,f)=>m.sort-f.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let f=Dt(m);a.set(f,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as ug,English as mg,Finland as dg,French as fg,German as gg,Greece as hg,Italian as yg,Japanese as Sg,Netherlands as Cg,Poland as Tg,Portuguese as kg,Russian as vg,Spanish as wg,Swedish as xg,Ukrainian as bg}from"@rango-dev/ui";var Hl=[{title:"English",label:"English",local:"en",SVGFlag:mg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:wg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:fg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Sg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:kg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:ug},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:vg},{title:"German",label:"Deutsch",local:"de",SVGFlag:gg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:bg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:xg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:dg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Cg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:hg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:yg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Tg}],yo="en";var Gl=[.5,1,3],Vl=1,Xl=5,Kl=100,jl=0;var Yl=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Vl,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=ho(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=Xe("theme",n),s=Xe("language",n),l=Xe("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||yo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||yo}})}}),"createSettingsSlice");function Zl(t){return Eg()(Ig((...e)=>({...ql(...e),...Yl(...e),...Ul(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(Zl,"createAppStore");var Jl=Ng(null);function h(){let t=Wg(Jl);if(Mg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function Rl(t){let e=Lg();return e.current||(e.current=Zl(t.config)),Ag.createElement(Jl.Provider,{value:e.current},t.children)}i(Rl,"AppStoreProvider");import{create as Pg}from"zustand";var ep="rango-widget";var zo=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(ep),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ie=Ot(Pg()((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 zo({onInit:()=>ie.setState({tabManagerInitiated:!0}),onClaim:()=>ie.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ie.setState({isActiveTab:!1})});var On=Dg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Og(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Bi(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=np(),f=np();op(()=>{n().catch(console.log)},[]),op(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter($g).map(y=>y.name),g=i((y,S,k,w,A)=>{if(S===$i.ACCOUNTS)if(k){let L=Nn(A.supportedBlockchains),E=vl(y,k,d,L,A.isContractWallet);E.length&&u(E,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(S===$i.ACCOUNTS&&w.connected){let L=`${y}-${w.network}-${k}`;w.connected&&(m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(S===$i.NETWORK&&w.network){let L=`${y}-${w.network}`;m.current?m.current(L):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,S,k,w,A)},"onUpdateState"),T=ie.use.isActiveTab(),C=Fg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Fn.createElement(On.Provider,{value:C},Fn.createElement(_g,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!T},t.children))}i(Og,"Main");function Un(t){let{config:e,...o}=t;return Fn.createElement(Rl,{config:e},Fn.createElement(Og,{...o,config:e}))}i(Un,"WidgetWallets");import Si from"react";import Ug,{Fragment as Qg}from"react";import{MemoryRouter as zg,useInRouterContext as qg}from"react-router";function rp({children:t}){let o=qg()?Qg:zg;return Ug.createElement(o,null,t)}i(rp,"AppRouter");import{I18nManager as Yv}from"@rango-dev/ui";import nl from"react";import Ue from"react";import{useRoutes as $v}from"react-router-dom";var z={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 To,useRef as Zn}from"react";import It from"bignumber.js";import{create as Vg}from"zustand";import{subscribeWithSelector as Xg}from"zustand/middleware";import{getLastSuccessfulStep as Gg}from"@rango-dev/queue-manager-rango-preset";import EE from"bignumber.js";function Di(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(Di,"getFeeLabel");var Fi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],ip=30;import{i18n as rt}from"@lingui/core";import{RouteEventType as cE}from"@rango-dev/queue-manager-rango-preset";import Be from"bignumber.js";import{PendingSwapNetworkStatus as qn}from"rango-types";function Qn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Qn,"isValidAddress");import{i18n as We}from"@lingui/core";var oe=i(()=>({genericServerError:We.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:We.t("Please reset your liquidity sources."),description:We.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:We.t("No Routes Found."),description:We.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:We.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:We.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:We.t("High Price Impact"),title:We.t("Price impact is too high!"),description:We.t("The price impact is significantly higher than the allowed amount."),confirmMessage:We.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:We.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:We.t("USD Price Unknown"),title:We.t("USD Price Unknown, Cannot calculate Price Impact."),description:We.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:We.t("Confirm USD Price Unknown")}}),"errorMessages");function ap(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().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 sp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Be(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Be(1e3)))??!1}i(sp,"hasHighValueLoss");function lp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Be(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Be(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(lp,"hasLimitError");function pp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Be(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Be(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Be(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Be(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=rt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=rt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=rt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=rt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(pp,"getLimitErrorMessage");function cp(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(cp,"getSwapButtonState");function Oi(t,e,o){return!((!o||o.lte(Le))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Oi,"canComputePriceImpact");function Ui(t,e){let o=Le;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 Be(r.amount).multipliedBy(a||0))}return o}i(Ui,"getUsdFeeOfStep");function Hn(t,e){return t.reduce((o,n)=>o.plus(Ui(n,e)),Le)}i(Hn,"getTotalFeeInUsd");function Qi(t){let e=Le;return e=e.plus(new Be(t.amount).multipliedBy(t.price||0)),e}i(Qi,"getUsdFee");function up(t){return t.reduce((e,o)=>e.plus(Qi(o)),Le)}i(up,"getTotalFeesInUsd");function mp(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(mp,"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 fp(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(fp,"checkSlippageWarnings");function Gn(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(Gn,"getMinRequiredSlippage");function gp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(gp,"hasProperSlippage");function hp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:f,destination:d,enableCentralizedSwappers:g}=t,T=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),C=[];return r?.forEach(S=>{C.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:T??{},slippage:u.toString(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(hp,"createQuoteRequestBody");function yp(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(yp,"getWalletsForNewSwap");function So(t){return t?.outputAmount||null}i(So,"getQuoteOutputAmount");function Sp(t,e){return new Be(e).div(new Be(t)).minus(1).multipliedBy(100).toNumber()}i(Sp,"getPercentageChange");function Cp(t,e){let o=So(t),n=So(e);if(!o||!n)return!1;let r=Ke(o,n);return r?r<=-1:!0}i(Cp,"isOutputAmountChangedALot");function Tp(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=>Ep(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Be(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Be(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=rt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=rt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=rt.t(" for input and network fee")),rt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Ve(s.asset.blockchain,o)}})})}i(Tp,"generateBalanceWarnings");function Vn(t,e){return(t?new Be(t):Le).multipliedBy(e||0)}i(Vn,"calcOutputUsdValue");function qo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==qn.NetworkChanged}i(qo,"isNetworkStatusInWarningState");function kp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),qo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case qn.WaitingForConnectingWallet:n=n||rt.t("Waiting for connecting wallet");break;case qn.WaitingForQueue:n=n||rt.t("Waiting for other running tasks to be finished");break;case qn.WaitingForNetworkChange:n=n||rt.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(kp,"getSwapMessages");function vp(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(vp,"getLastConvertedTokenInFailedSwap");function wp(t){return t.status==="failed"}i(wp,"shouldRetrySwap");function xp(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(m=>r.some(f=>f.chain===m)),u=l.every(m=>r.some(f=>f.chain===m)),c=o&&a?Qn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(xp,"isConfirmSwapDisabled");function bp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(bp,"isTokensIdentical");function Kn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Kn,"getQuoteToTokenUsdPrice");function zi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(zi,"isNumberOfSwapsChanged");function qi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!wi(o,n)}i(qi,"isQuoteSwappersUpdated");function Hi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!wi(o,n)}i(Hi,"isQuoteInternalCoinsUpdated");function Ap(t,e){return zi(t,e)||qi(t,e)||Hi(t,e)}i(Ap,"isQuoteChanged");function Ep(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(Ep,"getRequiredBalanceOfWallet");function Et(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Et,"getPriceImpactLevel");function jn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Gg(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=xi(a?a.toBlockchain:n.fromBlockchain,e),p=xi(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(jn,"createRetryQuote");function Co(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 c=Ke(s.toString(),l.toString());if(!!c&&sp(s,c)){let f=Hn(t?.swaps,r),d=Et(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Gn(t.swaps),u=a>Xl;if(gp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:fp(t,a),minRequiredSlippage:p};return null}i(Co,"generateQuoteWarnings");function Ke(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Sp(t.toString(),e.toString());return n&&n<0?n:null}i(Ke,"getPriceImpact");var Np=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"),Yn=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Wp=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"),Mp=i(t=>{let e=i((o,n)=>{let r=Fi.indexOf(o.value),a=Fi.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 It(e||Le).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),j=Ot(Vg()(Xg(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new It(0),outputUsdValue:new It(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=Le;return Oo(o.inputAmount)?(e&&(n=e?.outputAmount?new It(e?.outputAmount):null,r=Vn(e?.outputAmount,Kn(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new It(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue: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:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new It(0),outputUsdValue:new It(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue: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 It(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?to(e.toToken,e.outputAmount?.toString()||""):new It(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Lp=j.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Te.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&&Te.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 Bp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=j(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:T,setAffiliatePercent:C,setAffiliateWallets:y}=h(),S=c?.from?.tokens,k=c?.from?.blockchains,w=c?.to?.tokens,A=c?.to?.blockchains,L=Zn(void 0),E=Zn(void 0),v=Zn(void 0),b=Zn(void 0);To(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),To(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.from?.blockchain),B=c?.from?.token,U=B&&g(B);(x||!x&&v.current)&&n(x??null),U?a({token:U,meta:{blockchains:f,tokens:d}}):!U&&L.current&&a({token:null}),v.current=c?.from?.blockchain,L.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),To(()=>{Uo(s,S)&&a({token:null}),Wi(p,k)&&n(null)},[S,k]),To(()=>{Uo(l,w)&&a({token:null}),Wi(u,A)&&o(null)},[w,A]),To(()=>{if(m==="success"){r();let x=f.find(I=>I.name===c?.to?.blockchain),B=c?.to?.token,U=B&&g(B);(x||!x&&b.current)&&o(x??null),U?e({token:U,meta:{blockchains:f,tokens:d}}):!U&&E.current&&e({token:null}),b.current=c?.to?.blockchain,E.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),To(()=>{T(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Bp,"useSyncStoresWithConfig");import{useEffect as Xi,useRef as Kg}from"react";import{useInRouterContext as jg,useLocation as Yg,useSearchParams as Zg}from"react-router-dom";function Gi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Gi,"convertTokenSearchParamToAsset");function Vi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Vi,"tokenToSearchParam");function Ki(){let t=Yg(),[e,o]=Zg(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=j(),d=h().fetchStatus,g=h().blockchains(),T=h().tokens(),C=jg(),{updateIframe:y,updateCampaignMode:S}=h(),k=h().isInCampaignMode(),w=Kg(),{findToken:A}=h(),L=i(()=>{let v={};for(let[G,ee]of e.entries())G.startsWith("utm_")&&(v[G]=ee);let b=e.get("fromAmount"),x=e.get("fromBlockchain"),B=e.get("fromToken"),U=e.get("toBlockchain"),I=e.get("toToken"),H=e.get("autoConnect"),Y=e.get("clientUrl"),pe=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:x,fromToken:B,toBlockchain:U,toToken:I,autoConnect:H,clientUrl:Y,liquiditySources:pe,utmQueryParams:v}},"getUrlSearchParams"),E=i(v=>{for(let b in v)v[b]||delete v[b];o(v,{replace:!0})},"updateUrlSearchParams");Xi(()=>{let{autoConnect:v,clientUrl:b,utmQueryParams:x}=L();C&&d==="success"&&E({fromBlockchain:n?.name,fromToken:Vi(a),toBlockchain:r?.name,toToken:Vi(s),fromAmount:l,autoConnect:v??void 0,clientUrl:b??void 0,liquiditySources:k?w.current:void 0,...x})},[t.pathname,l,n,a,r,s,k]),Xi(()=>{if(!C)return;let v=L();if(!w.current&&v.liquiditySources&&(w.current=v.liquiditySources),v.fromAmount&&f(v.fromAmount),d==="success"){let b=g.find(I=>I.name===v.fromBlockchain),x=v.fromToken&&b?A(Gi(v.fromToken,b)):void 0,B=g.find(I=>I.name===v.toBlockchain),U=v.toToken&&B?A(Gi(v.toToken,B)):void 0;b&&(p(b),x&&c({token:x,meta:{blockchains:g,tokens:T}})),B&&(u(B),U&&m({token:U,meta:{blockchains:g,tokens:T}}))}},[d]),Xi(()=>{let{clientUrl:v,liquiditySources:b}=L();y("clientUrl",v||void 0),S("liquiditySources",b?.split(",")??void 0)},[])}i(Ki,"useSyncUrlAndStore");import{i18n as Ka}from"@lingui/core";import{useManager as gC}from"@rango-dev/queue-manager-react";import{Alert as am,Button as hC,css as Ya,Divider as ja,IconButton as sm,styled as yC,Typography as SC,WalletIcon as CC}from"@rango-dev/ui";import xe,{useEffect as Qr,useLayoutEffect as TC,useRef as kC,useState as rn}from"react";import{useNavigate as vC}from"react-router-dom";import{i18n as St}from"@lingui/core";import{Alert as Ia,BalanceErrors as Ry,Button as Fc,ChevronDownIcon as eS,ChevronLeftIcon as tS,CloseIcon as oS,Divider as Xo,IconButton as Oc,MessageBox as nS,PasteIcon as rS,Typography as Tr,WalletIcon as iS}from"@rango-dev/ui";import $,{useCallback as aS,useEffect as Uc,useMemo as sS,useRef as lS,useState as lo}from"react";import{useNavigate as pS}from"react-router-dom";import{i18n as Jn}from"@lingui/core";function Rn(t){switch(t.type){case 0:return Jn.t("Route has been updated.");case 3:return Jn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Jn.t("Route swappers has been updated.");case 2:return Jn.t("Route internal coins has been updated.");default:return""}}i(Rn,"getQuoteUpdateWarningMessage");import{Modal as Rg}from"@rango-dev/ui";import eh from"react";function ne(t){let{watermark:e}=ie();return eh.createElement(Rg,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import nr,{useRef as nh}from"react";import*as ko from"@radix-ui/react-collapsible";import{keyframes as _p,styled as er}from"@rango-dev/ui";var ji=300,th=_p({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),oh=_p({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),$p=er(ko.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Yi=er(ko.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),tr=er(ko.Content,{overflow:"hidden",variants:{open:{true:{animation:`${th} ${ji}ms ease-out`},false:{animation:`${oh} ${ji}ms ease-out`}}}}),or=er("div",{transition:`all ${ji}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function rr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=nh(null);return nr.createElement($p,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&nr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s),nr.createElement(tr,{className:"collapsible_content",open:e},r),l==="bottom"&&nr.createElement(Yi,{className:"collapsible_trigger",onClick:a},s))}i(rr,"CustomCollapsible");import{css as Dp,darkTheme as Ho,IconButton as rh,styled as je,TextField as ih}from"@rango-dev/ui";var Fp=je("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Op=je("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ah=je("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Ho} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Ho} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Ho} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Up=je(ah,{alignSelf:"stretch",minHeight:"93px"}),Qp=je("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),zp=je(rh,{position:"absolute",left:"$20"}),qp=je("div",{paddingTop:"$20"}),Hp=Dp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Gp=je("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Vp=Dp({paddingTop:"$5"}),Xp=je("div",{display:"flex"}),Kp=je(ih,{backgroundColor:"$neutral100",padding:"$15"}),jp=je("div",{overflow:"visible",width:"100%"}),Yp=je("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Ho} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Ho} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as at}from"@lingui/core";import{Button as jy,Divider as ba,Image as Yy,MessageBox as Sr,SelectableWallet as Zy,Typography as _c,WalletState as $c}from"@rango-dev/ui";import ce,{useEffect as Dc,useState as Eo}from"react";import{WalletState as Zi}from"@rango-dev/ui";import{useWallets as sh}from"@rango-dev/wallets-react";import{detectMobileScreens as lh,KEPLR_COMPATIBLE_WALLETS as ph,WalletTypes as vo}from"@rango-dev/wallets-shared";import{useCallback as ch,useEffect as uh,useState as mh}from"react";var dh=Object.values(vo);function oo(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=sh(),{connectedWallets:c}=te(),m=h().blockchains(),f=Fl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||dh,d=kl(s,p,f,e);d=lh()?d.filter(E=>E.showOnMobile!==!1&&s(E.type).installed):d;let g=Il(d),[T,C]=mh(""),y=i(E=>!c.find(v=>v.walletType===E&&v.chain===e),"isExperimentalChainNotAdded"),S=i(async(E,v)=>{let b=s(E);try{if(T&&C(""),b.connected)await l(E);else{if(xn(d,a.multiWallets))return;o?.(E),await u(E,void 0,v),n?.(E)}}catch(x){r?.(x?.message),C("Error: "+x?.message)}},"handleClick"),k=ch(()=>{let E=d?.filter(v=>v.state===Zi.CONNECTING)||[];for(let v of E)l(v.type)},[Wl(d)]),w=i(async E=>{s(E).connected&&await l(E)},"disconnectWallet");uh(()=>()=>{k()},[]);let A=i(E=>{let v=E.find(x=>x.type===vo.DEFAULT);return!v||v.state===Zi.NOT_INSTALLED?!1:E.filter(x=>x.state!=Zi.NOT_INSTALLED&&![vo.DEFAULT,vo.WALLET_CONNECT_2,vo.LEDGER].includes(x.type)&&p(x.type).supportedChains.filter(B=>B.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),L=i((E,v,b)=>Mn(b,v)&&y(E)&&!ph.includes(E)||E==vo.DEFAULT&&!A(d),"shouldExcludeWallet");return{list:g.filter(E=>!L(E.type,e??"",m)),error:T,handleClick:S,disconnectConnectingWallets:k,disconnectWallet:w}}i(oo,"useWalletList");import{i18n as Ac}from"@lingui/core";import{Divider as Uy,getCategoriesCount as Qy,SelectableCategoryList as zy,styled as Wc,Typography as qy,Wallet as Hy,WalletState as Nc}from"@rango-dev/ui";import it,{useState as hr}from"react";import{useManager as Sy}from"@rango-dev/queue-manager-react";import{BottomLogo as Cy,Divider as kc,Header as Ty}from"@rango-dev/ui";import ye,{useEffect as Ca,useRef as vc,useState as ky}from"react";import{useRef as fh}from"react";function ir(){return window.self!==window.top}i(ir,"isAppLoadedIntoIframe");function Ji(){let t=fh(null),{iframe:e}=h(),o=ir()&&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(Ji,"useIframe");import{useNavigate as gh}from"react-router-dom";function Ye(){let t=gh();return()=>t(-1)}i(Ye,"useNavigateBack");import{createTheme as ia,darkTheme as Nh,lightTheme as Wh}from"@rango-dev/ui";import{useEffect as Mh,useState as Lh}from"react";import{theme as Ih,darkColors as Ah}from"@rango-dev/ui";import na from"react";function hh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(hh,"expandShortHexColor");function yh(t){return/[0-9]+$/.test(t)}i(yh,"isOverridingColor");function Sh(t,e){return t.padStart(e,"0")}i(Sh,"pad");function Ri(t){let e=Math.min(Math.max(Math.round(t),0),255);return Sh(e.toString(16),2)}i(Ri,"intToHex");function Ch(t){return`#${Ri(t.red)}${Ri(t.green)}${Ri(t.blue)}`}i(Ch,"rgbToHex");function Th(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(Th,"hexToRGB");function kh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(kh,"generateShade");function vh(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(vh,"generateTint");function wh(t){return Zp(t,kh)}i(wh,"calculateShades");function xh(t){return Zp(t,vh)}i(xh,"calculateTints");function Zp(t,e){let o=Th(t),n=[];for(let r=1;r<9;r++)n.push(Ch(e(o,r)));return n}i(Zp,"calculateColors");function ea(t,e,o){let a=xh(t).reverse().concat(t),s=wh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(ea,"createTintsAndShades");function ta(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)&&!yh(r)){let p=hh(a);Object.assign(n,ea(p,r,s))}}return{...n,...e}}i(ta,"expandToGenerateThemeColors");var Jp=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),bh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Jp(o%52)+e;return Jp(o%52)+e},"toAlphabeticName"),Eh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),oa=i(t=>bh(Eh(5381,JSON.stringify(t))>>>0),"toHash");function ra(t){let e=Ih.colors,o={...e,...Ah},n,r;if(t?.light){let s={colors:ta(e,t.light)};n={id:`${Ni}-light-${oa(s)}`,tokens:s}}if(t?.dark){let s={colors:ta(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Ni}-dark-${oa(s)}`,tokens:s}}return{light:n,dark:r}}i(ra,"customizedThemeTokens");function Rp(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>na.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(na.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(na.cloneElement(e,{key:l}))}}),o}i(Rp,"joinList");function ar(t){let{colors:e,fontFamily:o=ll,borderRadius:n=Pl,secondaryBorderRadius:r=_l}=t,[a,s]=Lh("light"),{theme:l}=h(),{dark:p,light:u}=ra(e),c=ia({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Wh.className],f=[c.className,Nh.className];if(u){let g=ia(u.id,u.tokens);m.push(g.className)}if(p){let g=ia(p.id,p.tokens);f.push(g.className)}return Mh(()=>{let g=i(T=>{T.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),T=f.join(" ");return l==="auto"?a==="dark"?T:g:l==="dark"?T:g},"getActiveTheme")}}i(ar,"useTheme");var Ze=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 ec}from"@lingui/core";import{Alert as Bh,Button as Ph}from"@rango-dev/ui";import tc from"react";function aa(t){return tc.createElement(Bh,{action:tc.createElement(Ph,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},ec.t("Activate this tab")),type:"warning",variant:"alarm",title:ec.t("Another tab is open and handles transactions.")})}i(aa,"ActivateTabAlert");import{i18n as sa}from"@lingui/core";import{Button as _h,Divider as $h,MessageBox as Dh}from"@rango-dev/ui";import sr from"react";function la(t){let{open:e,onClose:o,onConfirm:n}=t;return sr.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},sr.createElement(Dh,{title:sa.t("Activate current tab"),type:"warning",description:sa.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.")},sr.createElement($h,{size:20}),sr.createElement(_h,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},sa.t("Confirm"))))}i(la,"ActivateTabModal");import{ChevronLeftIcon as Uh}from"@rango-dev/ui";import lc from"react";import{css as Fh,darkTheme as oc,IconButton as Oh,styled as no}from"@rango-dev/ui";var yt=no(Oh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${oc} &`]:{backgroundColor:"$neutral"}}}),nc=no("div",{position:"absolute",background:"$secondary500",[`.${oc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),wo=no("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),rc=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"}}}}),ic=no("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),ac=no("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),sc=Fh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),lr=no("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function pa(t){return lc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},lc.createElement(Uh,{color:"black",size:16}))}i(pa,"BackButton");import{i18n as Qh}from"@lingui/core";import{Button as zh,Typography as qh}from"@rango-dev/ui";import ca from"react";function ua(t){return ca.createElement(wo,null,ca.createElement(zh,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ca.createElement(qh,{variant:"label",size:"medium",color:"error500"},Qh.t("Cancel"))))}i(ua,"CancelButton");import{i18n as Hh}from"@lingui/core";import{Image as Gh,Tooltip as Vh,WalletIcon as Xh}from"@rango-dev/ui";import ro from"react";function ma(t){let{list:e}=oo({}),o=e.filter(r=>r.state==="connected"),n=o.length?ro.createElement("div",{className:sc()},o.map(r=>ro.createElement(lr,{key:r.title},ro.createElement(Gh,{src:r.image,size:14})))):Hh.t("Connect Wallet");return ro.createElement(Vh,{container:t.container,side:"bottom",content:n},ro.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&ro.createElement(nc,null),ro.createElement(Xh,{size:18,color:"black"})))}i(ma,"WalletButton");import{i18n as cr}from"@lingui/core";import{NotificationsIcon as py,Popover as cy,SettingsIcon as uy,Tooltip as ur,TransactionIcon as my}from"@rango-dev/ui";import Ie from"react";import{Notifications as Zh}from"@rango-dev/ui";import Jh from"react";import{useNavigate as Rh}from"react-router-dom";import{create as Kh}from"zustand";import{persist as jh,subscribeWithSelector as Yh}from"zustand/middleware";var ke=Ot(Kh()(jh(Yh((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>a.creationTime-r.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function da(){let t=Rh(),{getNotifications:e,clearNotifications:o}=ke(),n=e(),r=h().blockchains(),{findToken:a}=h();return Jh.createElement(Zh,{list:n,getBlockchainImage:l=>Sl(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${z.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(da,"NotificationContent");import{useManager as ey}from"@rango-dev/queue-manager-react";import{InProgressIcon as ty}from"@rango-dev/ui";import pc from"react";var oy=i(()=>{let{manager:t}=ey();return Ze(t).map(({swap:o})=>o).find(o=>o.status==="running")?pc.createElement(ac,null,pc.createElement(ty,{color:"info",size:6})):null},"InProgressTransactionBadge"),cc=oy;import{EventSeverity as ny}from"@rango-dev/queue-manager-rango-preset";import{Typography as ry}from"@rango-dev/ui";import uc from"react";function mc(){let{getNotifications:t}=ke(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===ny.WARNING);return o?uc.createElement(rc,{isSever:n},uc.createElement(ry,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(mc,"NotificationsBadge");import{RefreshProgressButton as iy}from"@rango-dev/ui";import fa,{useEffect as ay,useState as dc}from"react";var sy=1e3,fc=60,ly=100;function pr({onClick:t}){let[e,o]=dc(0),[n,r]=dc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");ay(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===fc&&l()},sy):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 fa.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},fa.createElement(ic,{onTransitionEnd:()=>r(!1),isRefetched:n},fa.createElement(iy,{size:22,color:t?"black":"gray",progress:e/fc*ly})))}i(pr,"RefreshButton");function io(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Xe("notification",s)||r.includes("notifications");return Ie.createElement(Ie.Fragment,null,!r.includes("refresh")&&Ie.createElement(ur,{container:a||P(),side:"top",content:cr.t("Refresh")},Ie.createElement(pr,{onClick:e})),!l&&Ie.createElement(cy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Ie.createElement(da,null)},Ie.createElement("div",null,Ie.createElement(ur,{container:P(),side:"top",content:cr.t("Notifications")},Ie.createElement(yt,{size:"small",variant:"ghost"},Ie.createElement(py,{size:18,color:"black"}),Ie.createElement(mc,null))))),!r.includes("settings")&&Ie.createElement(ur,{container:P(),side:"top",content:cr.t("Settings")},Ie.createElement(yt,{size:"small",variant:"ghost",onClick:n},Ie.createElement(uy,{size:18,color:"black"}))),!r.includes("history")&&Ie.createElement(ur,{container:P(),side:"top",content:cr.t("Transactions History")},Ie.createElement(yt,{size:"small",variant:"ghost",onClick:o},Ie.createElement(my,{size:18,color:"black"}),Ie.createElement(cc,null))))}i(io,"HeaderButtons");import{i18n as ga}from"@lingui/core";import{Divider as hc,MessageBox as gy,RefreshIcon as hy}from"@rango-dev/ui";import xo from"react";import{Button as dy,styled as fy}from"@rango-dev/ui";var gc=fy(dy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function ha(t){let{open:e,onClose:o}=t;return xo.createElement(ne,{open:e,dismissible:!0,onClose:o,container:P()},xo.createElement(gy,{title:ga.t("Something went wrong"),type:"error",description:ga.t("Something went wrong. Please refresh the app.")},xo.createElement(hc,{size:30}),xo.createElement(gc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},xo.createElement(hy,{size:20,color:"primary"}),xo.createElement(hc,{size:4,direction:"horizontal"}),ga.t("Refresh"))))}i(ha,"RefreshModal");function ya(t){let e=t.target;if(e){let o=e.scrollTop,n=P();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(ya,"onScrollContentAttachStatusToContainer");import{css as yy,styled as Sa}from"@rango-dev/ui";var yc="700px",mr=yy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Sc=Sa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:yc},fixed:{height:yc}}}}),Cc=Sa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Tc=Sa("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}});function le(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ji(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=ky(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ie(),g=d==="FULL",{activeTheme:T}=ar(f||{}),C=Xe("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:S,showActivateTabModal:k,setShowActivateTabModal:w,activateCurrentTab:A}=ie(),L=Ye(),{manager:E}=Sy(),b=Ze(E).map(({swap:Y})=>Y).some(Y=>Y.status==="running"),x=i(()=>A(Rt.forceClaim,b),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),U=typeof r.hasBackButton>"u"||r.hasBackButton,I=vc(null),H=vc(null);return Ca(()=>(ir()&&H.current&&e(H.current),()=>{o()}),[]),Ca(()=>(I.current?.addEventListener("scroll",ya),()=>{I.current?.removeEventListener("scroll",ya)}),[]),Ca(()=>{u(l==="failed")},[l]),ye.createElement(Sc,{height:s,id:he.SWAP_BOX_ID,className:`${T()} ${mr()}`,ref:H},ye.createElement(Ty,{prefix:ye.createElement(ye.Fragment,null,U&&ye.createElement(pa,{onClick:()=>{L(),r.onBack&&r.onBack()}})),title:r.title,suffix:ye.createElement(ye.Fragment,null,r.suffix,r.onWallet&&!C&&ye.createElement(ma,{container:P(),onClick:B,isConnected:!!c?.length}),r.onCancel&&ye.createElement(ua,{onClick:r.onCancel}))}),ye.createElement(Cc,{ref:I},n),ye.createElement(la,{open:k,onClose:()=>w(!1),onConfirm:x}),ye.createElement(Tc,null,ye.createElement("div",{className:"footer__content"},S&&!y&&ye.createElement("div",{className:"footer__alert"},ye.createElement(aa,{onActivateTab:x}),ye.createElement(kc,{size:10})),a),ye.createElement(kc,{size:12}),ye.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},ye.createElement(Cy,null))),ye.createElement(ha,{open:p,onClose:()=>u(!1)}))}i(le,"Layout");import{styled as vy}from"@rango-dev/ui";var wc="$20 $20 $10 $20",Go=vy("div",{padding:wc,overflowY:"auto",flexGrow:1});import{styled as wy}from"@rango-dev/ui";var ue=wy("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{Divider as Ay}from"@rango-dev/ui";import ka from"react";import{i18n as bo}from"@lingui/core";import{Image as Ey,MessageBox as Ta,WalletState as Iy}from"@rango-dev/ui";import ao from"react";import{keyframes as xy,styled as dr}from"@rango-dev/ui";var ZN=dr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),fr=dr("div",{position:"relative"}),by=xy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),gr=dr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${by} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),xc=dr("div",{"& img":{borderRadius:"50%"}});function bc(t){let{state:e,image:o,error:n}=t;return e===Iy.CONNECTED?ao.createElement(Ta,{type:"success",title:bo.t("Wallet Connected"),description:bo.t("Your wallet is connected, you can use it to swap.")}):n?ao.createElement(Ta,{type:"error",title:bo.t("Failed to Connect"),description:n||bo.t("Your wallet is not connected. Please try again.")}):ao.createElement(Ta,{type:"loading",title:bo.t("Connecting to your wallet"),description:bo.t("Click connect in your wallet popup."),icon:ao.createElement(fr,null,ao.createElement(xc,null,ao.createElement(Ey,{src:o,size:45})),ao.createElement(gr,null))})}i(bc,"ModalContent");function Vo(t){let{open:e,onClose:o,...n}=t;return ka.createElement(ne,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},ka.createElement(bc,{...n}),ka.createElement(Ay,{direction:"vertical",size:32}))}i(Vo,"WalletModal");import{i18n as va}from"@lingui/core";import{Button as Wy,Checkbox as My,Image as Ic,ListItemButton as Ly,MessageBox as By,Radio as Py,RadioRoot as _y}from"@rango-dev/ui";import{namespaceMainBlockchain as $y}from"@rango-dev/wallets-shared";import Ne,{useMemo as Dy,useState as Fy}from"react";import{styled as Ny}from"@rango-dev/ui";var Ec=Ny("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var Oy=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function so(t){let{singleNamespace:e,namespaces:o}=t,[n,r]=Fy([]),a=h().blockchains(),s=Dy(()=>o?.map(u=>({name:u,logo:Oy(a,$y[u])})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?Ne.createElement(_y,{value:n?.[0]},u):Ne.createElement(Ne.Fragment,null,u),"wrapRadioRoot");return Ne.createElement(ne,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Ne.createElement(By,{type:"info",title:va.t("Select chain types"),description:va.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Ne.createElement(fr,null,Ne.createElement(lr,null,Ne.createElement(Ic,{src:t.image,size:45})),Ne.createElement(gr,null))}),Ne.createElement(Ec,null,p(Ne.createElement(Ne.Fragment,null,s?.map(u=>Ne.createElement(Ly,{key:u.name,id:u.name,title:u.name,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Ne.createElement(Ic,{src:u.logo,size:22}),end:e?Ne.createElement(Py,{value:u.name}):Ne.createElement(My,{checked:n.includes(u.name)})}))))),Ne.createElement(Wy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},va.t("Confirm")))}i(so,"WalletNamespacesModal");var Gy=Wc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),Vy=Wc(ue,{textAlign:"center"}),yr=3e3,wa=300;function Mc(){let{fetchStatus:t}=h(),[e,o]=hr("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=hr(!1),[l,p]=hr(null),[u,c]=hr(""),m=null,f=ie.use.isActiveTab(),{list:d,handleClick:g,error:T,disconnectConnectingWallets:C}=oo({onBeforeConnect:x=>{m=setTimeout(()=>{s(!0),c(x)},wa)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},yr)}}),y=i(()=>{C(),s(!1)},"handleCloseWalletModal"),S=d.find(x=>x.type===u),k=S?.image||"",w=S?.state||Nc.NOT_INSTALLED,A=Ml(d,n),E=Qy(A)!==1,v=Ll(d,e),b=i((x,B)=>{if(B.namespaces&&B.state===Nc.DISCONNECTED){if(xn(d,r.multiWallets))return;p({providerType:x,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace})}else g(x)},"handleWalletClick");return it.createElement(le,{header:{title:Ac.t("Connect Wallets")}},it.createElement(Vy,null,E&&it.createElement(it.Fragment,null,it.createElement(zy,{setCategory:o,category:e,blockchains:A,isLoading:t==="loading"}),it.createElement(Uy,{size:24})),it.createElement(qy,{variant:"title",size:"xmedium",align:"center"},Ac.t("Choose a wallet to connect.")),it.createElement(Gy,null,v.map((x,B)=>{let U=`wallet-${B}-${x.type}`;return it.createElement(Hy,{key:U,...x,container:P(),onClick:I=>b(I,x),isLoading:t==="loading",disabled:!f})}),it.createElement(Vo,{open:!!a,onClose:y,image:k,state:w,error:T}),it.createElement(so,{open:!!l,onClose:()=>p(null),onConfirm:x=>{g(l?.providerType,x),p(null)},image:l?.providerImage,namespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}))))}i(Mc,"WalletsPage");import{keyframes as Xy,styled as xa}from"@rango-dev/ui";var Lc=xa("div",{position:"relative"}),Ky=Xy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Bc=xa("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ky} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Pc=xa("div",{"& img":{borderRadius:"50%"}});var Jy=7;function Ea(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ie.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=Eo(""),[f,d]=Eo(null),[g,T]=Eo(!1),[C,y]=Eo(null),[S,k]=Eo(null),{suggestAndConnect:w}=Cr(),A=null,{list:L,error:E,handleClick:v,disconnectWallet:b,disconnectConnectingWallets:x}=oo({chain:e,onBeforeConnect:N=>{A=setTimeout(()=>{m(N)},wa)},onConnect:N=>{s?.(N),A&&clearTimeout(A),setTimeout(()=>{m("")},yr)}}),[B,U]=Eo(L),I=L.length,H=r&&I-r>0,Y=i(async N=>{T(!1),y("in-progress");try{await w(N.walletType,N.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),pe=i(N=>{k({providerType:N.type,providerImage:N.image,availableNamespaces:N.namespaces,singleNamespace:N.singleNamespace})},"handleOpenNamespacesModal");Dc(()=>{U(N=>{let Q=L.findIndex(Z=>o(Z.type,e));return H&&Q>1?[L[Q]].concat(L.filter((Z,re)=>re!==Q)):N.map(Z=>L.find(re=>re.type===Z.type)??Z)})},[JSON.stringify(L)]);let G=document.getElementById(he.SWAP_BOX_ID);Dc(()=>{let N=null;return(C==="completed"||C==="rejected")&&(N=setTimeout(()=>y(null),yr)),()=>{N&&clearTimeout(N)}},[C]);let ee=i(()=>{x(),m("")},"handleCloseWalletModal");return ce.createElement(ce.Fragment,null,B.slice(0,r).map(N=>{let Q=Al({connectedWallets:p,walletType:N.type,chain:e}),Z=Q?Bn(Q,Jy):"",re=Mn(u(),e),Ce=!p.find(Fe=>Fe.walletType===N.type&&Fe.chain===e),_=re&&Ce&&N.state===$c.CONNECTED,De=_?at.t({id:"Add {chain} chain",values:{chain:e}}):Z,tt=i(async()=>{N.state===$c.DISCONNECTED?N.namespaces?pe(N):v(N.type):N.namespaces&&!Z?(await b(N.type),pe(N)):_?(d({walletType:N.type,chain:e,address:Q??""}),T(!0)):n({walletType:N.type,chain:e,address:Q??""})},"onClick"),me=f?.chain?bn(f.chain,u()):void 0;return ce.createElement(ce.Fragment,{key:`${N.title}_${me}`},ce.createElement(Vo,{open:c===N.type,onClose:ee,image:N.image,state:N.state,error:E}),ce.createElement(so,{open:!!S,onClose:()=>k(null),onConfirm:Fe=>{v(S?.providerType,Fe),k(null)},image:S?.providerImage,namespaces:S?.availableNamespaces,singleNamespace:S?.singleNamespace}),!!f&&ce.createElement(ne,{open:!!f&&g,container:G,onClose:()=>{d(null)}},ce.createElement(Sr,{title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:me}}),type:"warning",description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:me}})},ce.createElement(ba,{size:18}),ce.createElement(ba,{size:32}),ce.createElement(jy,{onClick:Y.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},at.t("Confirm")))),C&&ce.createElement(ne,{open:!!C,onClose:y.bind(null,null),container:G},C==="in-progress"&&ce.createElement(Sr,{type:"loading",title:at.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:me}}),description:at.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:me}}),icon:ce.createElement(Lc,null,ce.createElement(Pc,null,ce.createElement(Yy,{src:N.image,size:45})),ce.createElement(Bc,null))}),C==="completed"&&ce.createElement(Sr,{type:"success",title:at.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:me}}),description:at.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:me}})}),C==="rejected"&&ce.createElement(Sr,{type:"error",title:at.t("Request Rejected"),description:at.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:me}})}),ce.createElement(ba,{direction:"vertical",size:32})),ce.createElement(Zy,{key:N.type,description:De,onClick:tt,selected:o(N.type,e),disabled:!l,...N}))}),H&&ce.createElement(Up,{selected:!1,onClick:a},ce.createElement(_c,{variant:"label",size:"medium"},at.t("Show more wallets"),ce.createElement(_c,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(Ea,"WalletList");var cS=2;function Qc(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=pS(),l=h().config,p=lS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:T}=j(),{connectedWallets:C,selectWallets:y}=te(),[S,k]=lo(""),[w,A]=lo([]),[L,E]=lo(""),[v,b]=lo(null),[x,B]=lo(!!g),U=navigator?.userAgent.includes("Firefox"),I=sS(()=>Zt({filter:"all",quote:c}),[c]),H=Zt({filter:"required",quote:c}),Y=u.find(W=>W.name===c?.swaps[c?.swaps.length-1].to.blockchain),pe=i(W=>H.includes(W),"isWalletRequiredFor"),G=aS(()=>C.filter(W=>W.selected&&I.includes(W.chain)),[C,I]),[ee,N]=lo(G()),[Q,Z]=lo([]),re=i((W,V)=>Z(X=>X.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),Ce=w.length>0,_=i((W,V)=>!!ee.find(X=>X.walletType===W&&X.chain===V&&X.selected&&(pe(V)||!pe(V)&&!g)),"isSelected"),De=!!g&&x&&Y&&!Qn(Y,g),tt=i(()=>{B(!1),T(null),N(W=>{let V=!1;return W.map(X=>!V&&X.chain===Y?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),me=i(()=>T(""),"handleClearCustomDestination"),Fe=i(async W=>{if(W.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();T(V),p?.current?.focus()}},"handlePasteCustomDestination"),wt=i(W=>{W?pe(Y?.name??"")||N(V=>V.map(X=>X.chain===Y?.name?{...X,selected:!1}:X)):tt()},"handleCustomDestinationCollapsibleOpenChange"),Ge=i(W=>{if(S&&k(""),_(W.walletType,W.chain))return;let X=C.find(Qe=>Qe.walletType===W.walletType&&Qe.chain===W.chain);X&&(n(),W.chain===Y?.name&&x&&!pe(Y.name)&&(B(!1),T(null)),N(Qe=>Qe.filter(ft=>ft.chain!==W.chain).concat({...X,selected:!0})))},"onChange"),ot=i(()=>{let W=ee.filter(V=>V.selected);y(W),m(W),d(!0),o()},"onConfirmBalance"),nt=i(async()=>{A([]),E(""),b(null);let W=await r?.({selectedWallets:ee.filter(X=>X.selected),customDestination:g}),V=W.warnings;V?.balance?.messages&&A(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),W.error&&E(ap(W.error)),!W.error&&!V?.balance?.messages.length?ot():A(V?.balance?.messages??[])},"onConfirmWallets"),dt=i(()=>g?$.createElement(Oc,{onClick:me,variant:"ghost"},$.createElement(oS,{size:12,color:"gray"})):U?null:$.createElement(Oc,{onClick:Fe,variant:"ghost"},$.createElement(rS,{size:16})),"renderCustomDestinationSuffix");Uc(()=>{N(W=>{let V=[];return W.forEach(X=>{!C.some(ft=>ft.chain===X.chain&&ft.walletType===X.walletType&&ft.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ft=>ft.chain===X.chain)&&X.selected&&I.includes(X.chain))),V})},[C,I]),Uc(()=>{let W=[];Q.length>0&&(Q.forEach(V=>{let X=C.find(Qe=>Qe.chain===V.blockchain&&Qe.walletType===V.walletType);X?Ge(X):W.push(V)}),Z(W))},[C,Q]);let ge=document.getElementById(he.SWAP_BOX_ID);return $.createElement(ne,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!S,container:ge,...!S&&{footer:$.createElement(Xp,null,$.createElement(Fc,{loading:a,disabled:xp(a,x,g,c,ee,Y),onClick:nt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},St.t("Confirm")))},...S&&{styles:{container:{padding:"$0"}},header:$.createElement(Qp,null,$.createElement(zp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(tS,{size:16})),$.createElement(Tr,{variant:"headline",size:"small"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ve(S,u)}})))},anchor:"center"},$.createElement(ne,{open:Ce,onClose:A.bind(null,[]),container:ge},$.createElement(nS,{title:St.t("Insufficient account balance"),type:"error",description:$.createElement(Ry,{messages:w??[]})},$.createElement(Fc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ot},St.t("Proceed anyway")))),S&&$.createElement(qp,null,$.createElement("div",{className:Hp()},$.createElement(Ea,{chain:S,isSelected:_,selectWallet:Ge,onShowMore:()=>k(S),onConnect:W=>{re(S,W)}}))),!S&&$.createElement($.Fragment,null,L&&$.createElement($.Fragment,null,$.createElement(Ia,{variant:"alarm",type:"error",title:St.t(L)}),$.createElement(Xo,{size:12})),v&&$.createElement($.Fragment,null,$.createElement(Ia,{variant:"alarm",type:"warning",title:Rn(v)}),$.createElement(Xo,{size:12})),$.createElement(jp,null,I.map((W,V)=>{let X=u.find(Yt=>Yt.name===W),Qe=`wallet-${V}`,ft=V===I.length-1;return $.createElement("div",{key:Qe},$.createElement(Fp,null,$.createElement(Tr,{variant:"title",size:"xmedium"},St.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(Tr,{variant:"label",color:"$neutral700",size:"medium"},St.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(Xo,{size:24}),$.createElement(Op,null,$.createElement(Ea,{chain:W,isSelected:_,selectWallet:Ge,limit:cS,onShowMore:()=>k(X?.name??""),onConnect:Yt=>{re(W,Yt)}})),!ft&&$.createElement(Xo,{size:32}),ft&&l?.customDestination!==!1&&$.createElement(Gp,null,$.createElement(rr,{onOpenChange:wt,hasSelected:!0,open:x,triggerAnchor:"top",trigger:$.createElement(Yp,null,$.createElement("div",{className:"button__content"},$.createElement(iS,{size:18,color:"info"}),$.createElement(Xo,{size:4,direction:"horizontal"}),$.createElement(Tr,{variant:"label",size:"medium",color:x?"$neutral600":void 0},St.t("Send to a different address"))),$.createElement(or,{orientation:x?"up":"down"},$.createElement(eS,{size:10,color:"secondary"}))),onClickTrigger:()=>B(Yt=>!Yt)},$.createElement(Kp,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:St.t("Enter {blockchainName} address",{blockchainName:bn(W,u)}),value:g||"",suffix:dt(),onChange:Yt=>{let Of=Yt.target.value;T(Of)},...!g&&{autoFocus:!0}})),De&&$.createElement("div",{className:Vp()},$.createElement(Ia,{variant:"alarm",type:"error",title:St.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Qc,"ConfirmWalletsModal");import{i18n as NS}from"@lingui/core";import{Alert as WS,Button as MS,InfoIcon as LS}from"@rango-dev/ui";import qe from"react";import{Alert as dS,Button as fS,Divider as Wa,NoRouteIcon as gS,RefreshIcon as hS,Typography as Kc}from"@rango-dev/ui";import ze from"react";import{i18n as zc}from"@lingui/core";var uS=24,mS=60;function qc(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:zc.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:zc.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(qc,"makeInfo");var Aa=(o=>(o[o.small=uS]="small",o[o.large=mS]="large",o))(Aa||{}),Na=(o=>(o.small="small",o.large="medium",o))(Na||{});import{styled as kr}from"@rango-dev/ui";var Hc=kr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Gc=kr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Vc=kr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Xc=kr("div",{padding:"$6 $0"});function Ko(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=qc(o,r,()=>a(s,!0),e);return ze.createElement(Hc,null,ze.createElement(gS,{size:Aa[n],color:"gray"}),ze.createElement(Wa,{size:4}),ze.createElement(Kc,{variant:"title",size:Na[n]},oe().noResultError.title),n==="large"&&ze.createElement(Wa,{size:4}),!!l.description&&ze.createElement(Gc,{size:n},ze.createElement(Kc,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ze.createElement(Wa,{size:n==="large"?"24":"4"}),!!l.alert&&ze.createElement(Vc,{size:n},ze.createElement(dS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ze.createElement(fS,{size:"xsmall",type:l.alert.type,prefix:ze.createElement(Xc,null,ze.createElement(hS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Ko,"NoResult");import{i18n as jo}from"@lingui/core";import{Button as SS,Divider as CS,MessageBox as TS,Typography as kS,WarningIcon as vS}from"@rango-dev/ui";import At from"react";import{Typography as Jc}from"@rango-dev/ui";import La from"react";import{darkTheme as yS,styled as vr}from"@rango-dev/ui";var jc=vr("div",{width:"100%"}),Ma=vr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Yc=vr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${yS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zc=vr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Rc(t){let{title:e,value:o,valueColor:n}=t;return La.createElement(Yc,null,La.createElement(Jc,{size:"medium",variant:"label",className:"_title"},e),La.createElement(Jc,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Rc,"QuoteErrorsModalItem");function eu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:jo.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:jo.t("Gas cost"),value:M(r.totalFee,2,2)},{title:jo.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:jo.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return At.createElement(ne,{footer:At.createElement(SS,{type:"primary",size:"large",prefix:At.createElement(vS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},At.createElement(TS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),At.createElement(Ma,null,At.createElement(CS,{size:"4"}),At.createElement(kS,{size:"small",variant:"title"},jo.t("Details")),At.createElement(Ma,null,l.map((p,u)=>At.createElement(Rc,{key:u,...p})))))}i(eu,"HighValueLossWarningModal");import{i18n as Ba}from"@lingui/core";function tu(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=Ba.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Et(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=Ba.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=Ba.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(tu,"makeAlerts");import{i18n as Io}from"@lingui/core";import{Button as ou,Divider as nu,MessageBox as wS,Typography as xS}from"@rango-dev/ui";import po from"react";import{useNavigate as bS}from"react-router-dom";function ru(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=bS(),u=e??o;return po.createElement(ne,{anchor:"bottom",open:n,prefix:po.createElement(ou,{size:"small",variant:"ghost",onClick:()=>p("../"+z.settings)},po.createElement(xS,{variant:"label",size:"medium",color:"$neutral900"},Io.t("Change settings"))),container:P(),onClose:r},po.createElement(wS,{type:"warning",title:s.type===3?Io.t("High slippage"):Io.t("Low slippage"),description:s.type===3?Io.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Io.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},po.createElement(nu,{size:18}),po.createElement(nu,{size:32}),po.createElement(ou,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Io.t("Confirm anyway"))))}i(ru,"SlippageWarningModal");import{Button as ES,MessageBox as IS,WarningIcon as AS}from"@rango-dev/ui";import wr from"react";function iu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return wr.createElement(ne,{footer:wr.createElement(ES,{type:"primary",size:"large",prefix:wr.createElement(AS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},wr.createElement(IS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(iu,"UnknownPriceWarningModal");function Yo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=tu(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),qe.createElement(qe.Fragment,null,f&&qe.createElement(Ko,{error:o,fetch:s}),!!d&&qe.createElement(jc,null,qe.createElement(WS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:qe.createElement(Zc,{onClick:l},qe.createElement(LS,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:qe.createElement(MS,{size:"xxsmall",type:d.alertType,onClick:c},NS.t("Change"))}})),e&&qe.createElement(qe.Fragment,null,e.type===0&&qe.createElement(eu,{...m,warning:e}),(e.type===3||e.type===2)&&qe.createElement(ru,{...m,warning:e}),e.type===1&&qe.createElement(iu,{...m,warning:e})))}i(Yo,"QuoteWarningsAndErrors");import pC from"bignumber.js";import Dr from"react";import{i18n as co}from"@lingui/core";import{Alert as YS,Divider as No,FullExpandedQuote as ZS,InfoIcon as JS,NumericTooltip as Fu,QuoteTag as RS,StepDetails as eC,TokenAmount as tC,Typography as Wo}from"@rango-dev/ui";import Qa from"bignumber.js";import D,{useRef as oC,useState as nC}from"react";import{styled as Pa}from"@rango-dev/ui";var _a=Pa("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),au=Pa("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),su=Pa("div",{width:"100%",display:"flex"});import*as xr from"@radix-ui/react-collapsible";import{Button as BS,css as Zo,darkTheme as ve,Image as lu,styled as Pe,Typography as PS}from"@rango-dev/ui";var _S=300,pu=Pe(xr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${ve} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),cu=Zo({padding:"$10 $15"}),uu=Pe(BS,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${ve} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${ve} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${ve} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),mu=Pe("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",[`.${ve} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${ve} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${ve} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${ve} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${ve} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${ve} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${ve} &`]:{backgroundColor:"$neutral400"}}}}]}),du=Zo({width:"100%",padding:"$15 $15 $10 $15"}),fu=Zo({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Ao=Zo({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),gu=Zo({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${ve} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),hu=Pe(xr.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:{[`& ${lu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${lu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${ve} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${ve} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),yu=Pe("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"}}}}),Su=Pe(tr,{width:"100%",background:"inherit"}),$a=Pe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${_S}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),tB=Pe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Cu=Pe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${ve} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Tu=Pe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Da=Pe(PS,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),ku=Pe("div",{display:"flex",flexWrap:"wrap"}),Fa=Pe("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"}}}}),vu=Pe("div",{display:"flex"}),br=Pe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${ve} &`]:{borderTopColor:"$neutral800"}});import{i18n as Ct}from"@lingui/core";import{ChevronDownIcon as DS,CloseIcon as FS,Divider as Ar,IconButton as OS,NumericTooltip as US,QuoteCost as QS,Typography as st}from"@rango-dev/ui";import J,{useState as Eu}from"react";import{css as $S,styled as Er}from"@rango-dev/ui";var Ir=Er("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Oa=Er("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),wu=Er("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),xu=Er("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),bu=$S({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var zS=i(t=>t.fee.isZero()?null:J.createElement(Ir,null,J.createElement(st,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(st,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Iu(t){let[e,o]=Eu(!1),[n,r]=Eu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=P(),d=mp(m);return J.createElement(J.Fragment,null,J.createElement(QS,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?Ct.t("View more info"):void 0,tooltipContainer:f}),J.createElement(ne,{container:f,open:e,header:J.createElement(xu,null,J.createElement(st,{variant:"title",size:"medium"},Ct.t("Gas & Fee Explanation")),J.createElement(OS,{onClick:()=>o(!1),variant:"ghost"},J.createElement(FS,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(wu,null,J.createElement(st,{variant:"title",size:"small"},Ct.t("Details")),J.createElement(Ar,{size:10}),Object.entries(d.payable).flatMap(([g,T])=>T.map((C,y)=>{let S=`payable-fee-${y}`,k=Qi(C);return J.createElement(Ir,{key:S},J.createElement(st,{variant:"label",size:"medium",color:"neutral600"},Di(g,Ct.t)),J.createElement(US,{content:C.amount,container:f},J.createElement(st,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(k,4,4),")")))})),J.createElement(Ir,{className:"total_payable_fee"},J.createElement(st,{variant:"label",size:"medium"},Ct.t("Total Payable Fee")),J.createElement(st,{variant:"label",size:"medium"},"$",M(l,4,4))),J.createElement(Oa,null),Object.keys(d.nonePayable).length&&J.createElement(rr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:J.createElement("div",{className:bu()},J.createElement(st,{size:"small",variant:"body",color:"neutral700"},n?Ct.t("Hide non-payable fees"):Ct.t("Show non-payable fees")),J.createElement(Ar,{size:4,direction:"horizontal"}),J.createElement(or,{orientation:n?"up":"down"},J.createElement(DS,{size:12,color:"gray"}))),open:n},J.createElement(st,{size:"small",variant:"title"},Ct.t("Description")),J.createElement(Ar,{size:4}),J.createElement(st,{size:"small",variant:"body",color:"neutral700"},Ct.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),J.createElement(Ar,{size:10}),Object.entries(d.nonePayable).map(([g,T],C)=>{let y=up(T),S=Di(g,Ct.t),k=`non-payable-fee-${C}`;return J.createElement(zS,{key:k,fee:y,label:S})}),J.createElement(Oa,null)))))}i(Iu,"QuoteCostDetails");import{i18n as Wu}from"@lingui/core";import{TokenAmount as Mu}from"@rango-dev/ui";import Nr from"react";import{css as qS,styled as HS}from"@rango-dev/ui";var Au=HS("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Nu=qS({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Jo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Nr.createElement(Au,null,Nr.createElement(Mu,{direction:"horizontal",label:Wu.t("Swap input"),type:"input",tooltipContainer:P(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Nr.createElement("div",{className:Nu()}),Nr.createElement(Mu,{direction:"horizontal",tooltipContainer:P(),label:Wu.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(Jo,"QuoteSummary");import{i18n as $u}from"@lingui/core";import{ChevronDownIcon as XS,ChevronRightIcon as KS,Divider as Ua,Image as jS,Tooltip as Pr,Typography as Mr}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as GS,useState as Ro}from"react";var Lu=480,Bu=768,Pu=1024,_u=1200,VS=i(()=>{let[t,e]=Ro(!1),[o,n]=Ro(!1),[r,a]=Ro(!1),[s,l]=Ro(!1),[p,u]=Ro(!1),c=i(()=>{e(window.innerWidth<=Lu),n(window.innerWidth>Lu&&window.innerWidth<=Bu),a(window.innerWidth>Bu&&window.innerWidth<=Pu),l(window.innerWidth>Pu&&window.innerWidth<=_u),u(window.innerWidth>_u)},"handleResize");return GS(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Wr=VS;var Lr=4,Br=6,en=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return F.createElement(Pr,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(yu,{className:n,state:a},F.createElement(jS,{src:o,size:16})))},"ImageComponent");function Du(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Np(r),{isTablet:m,isMobile:f}=Wr();return F.createElement(hu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},F.createElement("div",{className:Ao()},F.createElement(Mr,{variant:"body",size:"xsmall"},$u.t("Via:")),F.createElement(Ua,{direction:"horizontal",size:4}),r.map((d,g)=>{let T=`item-${g}`,C=F.createElement($a,null,F.createElement(KS,{size:12,color:"black"}));return f||m?F.createElement(F.Fragment,{key:T},F.createElement(en,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):F.createElement(F.Fragment,{key:T},u<=Lr||u>Lr&&g<Lr-1?F.createElement(F.Fragment,null,F.createElement(en,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&F.createElement(F.Fragment,null,C)):g===Lr-1&&F.createElement(Pr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Ao()},C,r.map((y,S)=>{let k=`image-${S}`;return S>=g&&F.createElement(F.Fragment,{key:k},F.createElement(en,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),S!==u-1&&F.createElement(F.Fragment,null,C))}))},F.createElement(Fa,{state:r.find((y,S)=>S>=g&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(Mr,{size:"xsmall",variant:"body"},"+",u-g))))})),F.createElement("div",{className:Ao()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:Ao()},F.createElement(Mr,{variant:"body",size:"xsmall"},$u.t("Chains:")),F.createElement(Ua,{direction:"horizontal",size:4}),c.map((d,g)=>F.createElement(F.Fragment,{key:d.displayName},c.length<=Br||c.length>Br&&g<Br-1?F.createElement(Pr,{container:p,side:"bottom",content:d.displayName,sideOffset:4},F.createElement(en,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===Br-1&&F.createElement(Pr,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Ao()},c.map((T,C)=>C>=g&&F.createElement(en,{key:T.displayName,content:"",src:T.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},F.createElement(Fa,{className:"blockchainImage"},F.createElement(Mr,{size:"xsmall",variant:"body"},"+",c.length-g))))),F.createElement(Ua,{direction:"horizontal",size:32}))),F.createElement($a,{orientation:a?"up":"down"},F.createElement(XS,{size:12,color:"black"}))))}i(Du,"QuoteTrigger");function za(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:m=!1,container:f}=t,d=h().blockchains(),{findToken:g}=h(),T=h().swappers(),{customSlippage:C,slippage:y}=h(),S=C||y,[k,w]=nC(t.expanded),A=oC(null),L=M(o.value,6,6),E=M(n.value,6,6),v=n.usdValue?M(n.usdValue,4,4):"",b=Ke(o.usdValue,n.usdValue??null),x=M(b,2,2),B=Et(b??0),U=i((re,Ce)=>re.map((_,De)=>{let tt,me=r?.type===3&&r.swap.swapperId===_.swapperId,Fe=r?.type===4&&r.recommendedSlippages?.has(De),wt=a?.type===2&&a.recommendedSlippages?.has(De),Ge=me||Fe,ot=wt;Ge?tt="error":ot&&(tt="warning");let nt=Ge?co.t("Slippage Error"):co.t("Slippage Warning");return me&&(nt=co.t("Bridge Limit Error")),{swapper:{displayName:Do(_.swapperId,T),image:_.swapperLogo},from:{token:{displayName:_.from.symbol,image:_.from.logo},chain:{displayName:Ve(_.from.blockchain,d),image:_.from.blockchainLogo},price:{value:De===0&&!Ce?M(o.value,6,6):M(_.fromAmount,6,6),usdValue:M((_.from.usdPrice??0)*parseFloat(_.fromAmount),4,4),realValue:De===0?o.value:_.fromAmount,realUsdValue:new Qa(_.from.usdPrice??0).multipliedBy(_.fromAmount).toString()}},to:{token:{displayName:_.to.symbol,image:_.to.logo},chain:{displayName:Ve(_.to.blockchain,d),image:_.to.blockchainLogo},price:{value:M(_.toAmount,6,6),usdValue:M((_.to.usdPrice??0)*parseFloat(_.toAmount),4,4),realValue:_.toAmount,realUsdValue:new Qa(_.to.usdPrice??0).multipliedBy(_.toAmount).toString()}},state:tt,alerts:Ge||ot?D.createElement(au,{dense:m},D.createElement(YS,{variant:"alarm",type:Ge?"error":"warning",title:nt,footer:D.createElement(su,null,me&&D.createElement("div",null,D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),D.createElement(No,{direction:"vertical",size:2}),D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {amount} {symbol}",values:{amount:M(_.fromAmount,6,6),symbol:_?.from.symbol}}))),(Fe||wt)&&!me&&D.createElement("div",null,D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(De)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(De)}}})),D.createElement(No,{direction:"vertical",size:2}),D.createElement(Wo,{size:"xsmall",variant:"body",color:"neutral900"},co.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Fo(_.estimatedTimeInSeconds),fee:M(Ui(_,g),2,2),internalSwaps:_.internalSwaps?U(_.internalSwaps):void 0}}),"getQuoteSteps"),I=U(e?.swaps??[]),H=I.length,Y=f||P(),pe=Mp(t.quote.tags||[]),G=!!c,ee=Fo(En(e?.swaps)),N=Hn(e?.swaps??[],g),Q=M(N,2,2),Z=N.gte(new Qa(ip));return m?D.createElement(ZS,{selected:l,fee:Q,time:ee,tooltipContainer:$o(),steps:I,tags:pe,feeWarning:Z,percentageChange:x,warningLevel:B,outputPrice:{value:E,usdValue:v,realValue:n.value,realUsdValue:n.usdValue}}):D.createElement(mu,{selected:l,listItem:s==="list-item",basic:s==="basic"},D.createElement("div",{className:du()},!p&&pe.length?D.createElement(D.Fragment,null,D.createElement(vu,null,pe.map((re,Ce)=>{let _=`${re.value}_${Ce}`;return D.createElement(D.Fragment,{key:_},D.createElement(RS,{label:re.label,value:re.value}),D.createElement(No,{size:4,direction:"horizontal"}))})),D.createElement(br,null),!G&&D.createElement(No,{size:4})):null,D.createElement("div",{id:"portal-root",className:fu()},D.createElement(Iu,{quote:e,time:ee,fee:Q,feeWarning:Z,showModalFee:u,steps:H}),G&&D.createElement(uu,{onClick:re=>{re.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},D.createElement(Wo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},co.t("See All Routes")))),s==="basic"&&D.createElement("div",{className:gu()},D.createElement(Tu,null,D.createElement(JS,{size:12,color:"gray"})),D.createElement(ku,null,D.createElement(Da,{size:"small",variant:"body"},`${L} ${I[0].from.token.displayName} = `),D.createElement(Fu,{content:n.value,container:Y,open:n.value?void 0:!1},D.createElement(Da,{size:"small",variant:"body"},"\xA0",`${E} ${I[I.length-1].to.token.displayName}`))),D.createElement(Fu,{content:n.usdValue,container:Y},D.createElement(No,{size:2,direction:"horizontal"}),D.createElement(Wo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&D.createElement(tC,{tooltipContainer:Y,type:"output",direction:"vertical",price:{value:E,usdValue:v,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:I[H-1].to.token.displayName,image:I[H-1].to.token.image},chain:{image:I[H-1].to.chain.image},percentageChange:x,warningLevel:B}),s==="swap-preview"&&D.createElement(D.Fragment,null,D.createElement(Jo,{from:I[0].from,to:I[H-1].to,percentageChange:x,warningLevel:B}),D.createElement(No,{size:4}))),D.createElement(pu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},D.createElement(Du,{type:s,quoteRef:A,selected:l,setExpanded:w,container:Y,expanded:k,steps:I}),D.createElement(Su,{open:k},D.createElement(Cu,null),D.createElement("div",{className:cu()},I.map((re,Ce)=>{let _=`item-${Ce}`;return D.createElement(eC,{type:"quote-details",key:_,tooltipContainer:Y,step:re,hasSeparator:Ce!==I.length-1,state:re.state})})))))}i(za,"Quote");import{Divider as sC,Skeleton as lC}from"@rango-dev/ui";import Wt from"react";import{darkTheme as rC,styled as _r}from"@rango-dev/ui";var Ou=_r("div",{$$color:"$colors$neutral100",[`.${rC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Uu=_r("div",{paddingTop:"$2"}),Qu=_r("div",{paddingLeft:"$8"}),zu=_r("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ju,Divider as lt,Skeleton as He}from"@rango-dev/ui";import q from"react";import{css as iC,styled as Nt}from"@rango-dev/ui";var qa=Nt("div",{display:"flex"}),qu=Nt("div",{padding:"$10 $0 $20"}),Hu=Nt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Gu=Nt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Vu=Nt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Xu=Nt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Ku=Nt("div",{width:"65%",display:"flex",justifyContent:"start"}),ju=Nt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Yu=Nt("div",{padding:"$15 $0 $15 $0"}),Zu=iC({display:"flex",justifyContent:"space-between",alignItems:"center"});function tn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(Vu,null,q.createElement(Ku,null,q.createElement(Ju,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(lt,{size:8,direction:"horizontal"}),q.createElement(ju,null,q.createElement(He,{height:10,width:60,variant:"rounded"}),q.createElement(lt,{size:4}),q.createElement(He,{height:15,variant:"rounded"}))),q.createElement(He,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return q.createElement("div",null,!o&&q.createElement(q.Fragment,null,q.createElement(qa,null,q.createElement(He,{width:65,height:20,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:65,height:20,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:65,height:20,variant:"rounded"})),q.createElement(br,null),!r&&q.createElement(lt,{size:4})),q.createElement("div",{className:Zu()},q.createElement(qa,null,q.createElement(He,{width:60,height:10,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:60,height:10,variant:"rounded"}),q.createElement(lt,{size:4,direction:"horizontal"}),q.createElement(He,{width:60,height:10,variant:"rounded"})),r&&q.createElement(He,{width:85,height:24,variant:"rounded"})),e==="basic"&&q.createElement(qu,null,q.createElement(He,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(Hu,null,q.createElement(Gu,null,q.createElement(Ju,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(lt,{direction:"horizontal",size:4}),q.createElement(He,{height:15,width:150,variant:"rounded"})),q.createElement(lt,{size:10}),q.createElement(He,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(lt,{size:4}),q.createElement(Yu,null,n,q.createElement(Xu,null),n),q.createElement(lt,{size:12})))}i(tn,"QuoteSummarySkeleton");import{ChainToken as nm,Divider as Ga,NextIcon as aC,Skeleton as $r}from"@rango-dev/ui";import we from"react";import{styled as on}from"@rango-dev/ui";var Ru=on("div",{display:"flex",alignItems:"start"}),em=on("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ha=on("div",{display:"flex",alignItems:"center",flexGrow:1}),tm=on("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),om=on("div",{display:"flex",alignItems:"center"});function Tt(t){let{separator:e=!0}=t;return we.createElement(we.Fragment,null,we.createElement(om,null,we.createElement($r,{height:22,width:22,variant:"circular"}),we.createElement(Ga,{direction:"horizontal",size:8}),we.createElement($r,{height:15,width:148,variant:"rounded"})),we.createElement(Ru,null,we.createElement(zu,{hideSeparator:!e}),we.createElement(em,{extraSpace:e},we.createElement(Ha,null,we.createElement(nm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),we.createElement(Ga,{direction:"horizontal",size:8}),we.createElement($r,{height:12,variant:"rounded"})),we.createElement(tm,null,we.createElement(aC,{color:"gray",size:16})),we.createElement(Ha,null,we.createElement(nm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),we.createElement(Ga,{direction:"horizontal",size:8}),we.createElement($r,{height:12,variant:"rounded"})))))}i(Tt,"StepSkeleton");function nn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Wt.createElement(Ou,{expanded:o,rounded:e!=="basic"},Wt.createElement(tn,{type:e,tagHidden:n}),Wt.createElement(Uu,null,Wt.createElement(lC,{height:15,variant:"rounded"})),o&&Wt.createElement(Qu,null,Wt.createElement(sC,{size:24}),Wt.createElement(Tt,null),Wt.createElement(Tt,null),Wt.createElement(Tt,{separator:!1})))}i(nn,"QuoteSkeleton");function uo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:f=!1,container:d}=t,{inputAmount:g,inputUsdValue:T,toToken:C}=j(),y=e?.outputAmount?new pC(e?.outputAmount):null,S=e?.outputAmount?Vn(e?.outputAmount,Kn(e)||C?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Dr.createElement(_a,null,Dr.createElement(nn,{tagHidden:l,type:o,expanded:s})):w?Dr.createElement(_a,{onClick:()=>p?.(e)},Dr.createElement(za,{quote:e,error:r,container:d,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:f,input:{value:g,usdValue:T?.toString()??""},output:{value:y?.toString()??"",usdValue:S?.toString()??""}})):null}i(uo,"QuoteInfo");import{calculatePendingSwap as dC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as fC}from"react";import{useRef as cC,useState as uC}from"react";var mC=2e3;function Fr({request:t}){let[e,o]=uC(!1),n=cC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,mC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Fr,"useFetch");function rm(){let{fetch:t,loading:e,cancelFetch:o}=Fr({request:async(n,r)=>await Ft().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(rm,"useFetchConfirmQuote");function Or(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Va(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Or,"throwErrorIfResponseIsNotValid");function Va(t){if(lp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=pp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=dp(t);if(o){let n=Gn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Va,"getQuoteError");function im(t,e,o){let n=!1;t&&(n=Ap(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Co(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Cp(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(So(e)),percentageChange:M(Ke(So(t)??"",So(e)??""),null,2)}:zi(t,e)?r.quoteUpdate={type:0}:qi(t,e)?r.quoteUpdate={type:1}:Hi(t,e)&&(r.quoteUpdate={type:2}));let s=Tp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(im,"generateWarnings");function Ur(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(Ur,"handleQuoteErrors");function Xa(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=j(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:T,cancelFetch:C,loading:y}=rm();return fC(()=>C,[]),{loading:y,fetch:i(async k=>{let w=k.selectedWallets,A=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let L=w.reduce((v,b)=>(v[b.chain]=b.address,v),{}),E={requestId:r?.requestId||"",selectedWallets:L,destination:A||void 0};try{return await T(E,!0).then(v=>{let{result:b}=v;Or({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let x={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(x);let B={slippage:g.toString(),disabledSwappersGroups:c},U=im(r??void 0,x,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:w,userSlippage:g});U.quoteUpdate&&s(!1),l();let I=!!U.balance,H=dC(o.toString(),b,yp(w),B,!I,{blockchains:m,tokens:f});return{quote:x,swap:H,error:null,warnings:U}})}catch(v){return Ur(v)}},"fetch"),cancelFetch:C}}i(Xa,"useConfirmSwap");var wC=yC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${sm}`]:{width:"$48",height:"$48"}}),xC=Ya({flexGrow:1,paddingRight:"$10"}),bC=Ya({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),EC=Ya({display:"flex",justifyContent:"space-between",alignItems:"center"});function lm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=j(),s=vC(),[l,p]=rn(""),u=!n,[c,m]=rn(!1),[f,d]=rn(!1),{isActiveTab:g}=ie(),T=h().getDisabledLiquiditySources(),C=kC(T),{manager:y}=gC(),{fetch:S,loading:k,cancelFetch:w}=Xa(),[A,L]=rn({swap:null,error:null,warnings:null}),[E,v]=rn(!1),b=i(async({selectedWallets:G,customDestination:ee})=>{let N=await S?.({selectedWallets:G,customDestination:ee});return L(N),N},"onConfirmSwap"),x=i(async()=>{if(A.swap&&n)try{await y?.create("swap",{swapDetails:A.swap},{id:A.swap.requestId});let G=`../${z.swaps}/${A.swap.requestId}`;s(G,{replace:!0}),setTimeout(()=>{e("")},0)}catch(G){p("Error: "+G?.message)}},"addNewSwap"),B=i(async()=>{d(!0),await x(),d(!1)},"onConfirm"),U=i(async()=>{A?.warnings?.quote&&!a?v(!0):await B()},"onStartConfirmSwap"),I=i(async()=>{L({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(G=>{L(G)}).catch(G=>console.error(G))},"onRefresh");Qr(()=>{!!C.current.length&&!T.length&&I(),C.current=T},[T.length]),Qr(()=>{u&&w()},[u]),Qr(()=>{u&&m(u)},[u]),Qr(()=>{u||S({selectedWallets:o,customDestination:r}).then(G=>L(G)).catch(G=>console.error(G))},[]),TC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=A.warnings?.quote??null,Y=A.error,pe=[];if(l&&pe.push(xe.createElement(am,{type:"error",variant:"alarm",title:l})),A.warnings?.quoteUpdate&&pe.push(xe.createElement(am,{variant:"alarm",type:"warning",title:A.warnings.quoteUpdate&&Rn(A.warnings.quoteUpdate)})),H||Y){let G=`../${z.settings}`;pe.push(xe.createElement(Yo,{warning:H,error:Y,couldChangeSettings:!1,refetchQuote:I,showWarningModal:E,confirmationDisabled:!g,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await x()},onChangeSettings:()=>s(G)}))}return xe.createElement(le,{header:{title:Ka.t("Confirm Swap"),onWallet:()=>{let G=`../${z.wallets}`;s(G)}},footer:xe.createElement(wC,null,xe.createElement("div",{className:xC()},xe.createElement(hC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!A.error||!g,onClick:U},Ka.t("Start Swap"))),xe.createElement(sm,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},xe.createElement(CC,{size:24})))},c&&xe.createElement(Qc,{open:c,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:b}),xe.createElement(ue,null,xe.createElement("div",{className:EC()},xe.createElement(SC,{variant:"title",size:"small"},Ka.t("You get")),xe.createElement("div",{className:bC()},xe.createElement(pr,{onClick:!k&&!c&&!E?I:void 0}))),xe.createElement(ja,{size:"12"}),Rp(pe.map((G,ee)=>({element:G,key:`alert-${ee}`})),xe.createElement(ja,{size:10})),pe.length>0?xe.createElement(ja,{size:10}):null,xe.createElement(uo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:A.error,loading:k,warning:A.warnings?.quote??null})))}i(lm,"ConfirmSwapPage");import{i18n as qr}from"@lingui/core";import{useManager as zC}from"@rango-dev/queue-manager-react";import{Divider as Cm,NotFound as qC,styled as HC}from"@rango-dev/ui";import Lt,{useState as GC}from"react";import{useNavigate as VC}from"react-router-dom";import{i18n as NC}from"@lingui/core";import{Divider as dm,GroupedVirtualizedList as WC,Skeleton as MC,SwapListItem as fm,Typography as LC}from"@rango-dev/ui";import _e,{useCallback as gm,useEffect as BC,useRef as PC,useState as _C}from"react";function pm(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(pm,"calculateGroupsSoFar");import{css as IC,darkTheme as AC,styled as an}from"@rango-dev/ui";var Za=IC(),cm=an("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Ja=an("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Za}`]:{$$color:"$colors$neutral600",[`.${AC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ra=an("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),um=an("div",{gap:"$10",display:"flex",flexDirection:"column"}),mm=an("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var $C=10;function es(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=_C([]),l=PC(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=gm(pm,[]),f=gm(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,$C),s(m(u,l.current)))},[e.length]);if(BC(()=>{r||f()},[r,f]),r){let d=[1,2];return _e.createElement(_e.Fragment,null,[d,d].map((T,C)=>_e.createElement(Ja,{key:C},_e.createElement(Ra,null,_e.createElement(MC,{variant:"text",width:60,size:"small"}),_e.createElement(dm,{size:16})),_e.createElement(dm,{size:4}),_e.createElement(um,null,T.map((S,k)=>_e.createElement(fm,{isLoading:!0,key:k}))))))}return _e.createElement(WC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>_e.createElement(Ja,null,_e.createElement(Ra,null,_e.createElement(LC,{variant:"label",size:"medium",className:Za()},c[d]))),itemContent:(d,g)=>{let T=p[d];if(!T)return null;let C=T.steps[0],y=T.steps[T.steps.length-1];return _e.createElement(cm,{key:T.requestId},_e.createElement(fm,{requestId:T.requestId,creationTime:T.creationTime,status:T.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[g]===NC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(T.inputAmount,6,6),realAmount:T.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(es,"HistoryGroupedList");import{CloseIcon as FC,IconButton as OC,SearchIcon as UC,TextField as QC}from"@rango-dev/ui";import sn from"react";import{styled as DC}from"@rango-dev/ui";var hm=DC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Mt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return sn.createElement(QC,{prefix:sn.createElement(hm,null,sn.createElement(UC,{color:"black"})),suffix:!!s.length&&sn.createElement(OC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},sn.createElement(FC,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Mt,"SearchInput");import{i18n as zr}from"@lingui/core";import ym from"dayjs";var Sm=i(t=>{let e=new Map([["today",{title:zr.t("Today"),swaps:[]}],["week",{title:zr.t("This week"),swaps:[]}],["month",{title:zr.t("This month"),swaps:[]}],["year",{title:zr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=ym();t.forEach(p=>{let u=Number(p.creationTime),c=ym(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let m=new Date(u).getFullYear().toString();o(m,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var XC=HC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),KC=i((t,e)=>t?.length?t.filter(o=>gt(o.fromBlockchain,e)||gt(o.toBlockchain,e)||gt(o.toSymbol,e)||gt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Tm(){let t=VC(),{manager:e,state:o}=zC(),n=Ze(e).map(({swap:c})=>c),[r,a]=GC(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||KC(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Lt.createElement(le,{header:{title:qr.t("History")}},Lt.createElement(ue,null,Lt.createElement(Mt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Lt.createElement(Cm,{size:"16"}),Lt.createElement(XC,null,u&&Lt.createElement(mm,null,Lt.createElement(Cm,{size:32}),Lt.createElement(qC,{title:qr.t("No results found"),description:r?qr.t("Try using different keywords"):""})),!u&&Lt.createElement(es,{list:p,onSwapClick:t,groupBy:Sm,isLoading:s}))))}i(Tm,"HistoryPage");import{i18n as dT}from"@lingui/core";import{Button as fT,Divider as Fm,styled as gT,WarningIcon as hT}from"@rango-dev/ui";import yT from"bignumber.js";import Oe,{useEffect as Om,useState as Um}from"react";import{useNavigate as ST}from"react-router-dom";import{i18n as eT}from"@lingui/core";import{Header as tT}from"@rango-dev/ui";import Gt,{useEffect as oT,useState as nT}from"react";import{i18n as YC}from"@lingui/core";import{Divider as os,FullExpandedQuote as ZC,Typography as JC}from"@rango-dev/ui";import de from"react";import{styled as ts}from"@rango-dev/ui";var km=ts("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),vm=ts("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),wm=ts("div",{width:"146px"});import{i18n as ln}from"@lingui/core";import{Select as jC}from"@rango-dev/ui";import xm from"react";function Hr(t){let{updateQuotePartialState:e,sortStrategy:o}=j(),n=[{value:"SMART",label:ln.t("Smart Routing")},{value:"FEE",label:ln.t("Lowest Fee")},{value:"SPEED",label:ln.t("Fastest Transfer")},{value:"NET_OUTPUT",label:ln.t("Maximum Return")},{value:"PRICE",label:ln.t("Maximum Output")}];return xm.createElement(wm,null,xm.createElement(jC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Hr,"SelectStrategy");var bm=3;function pn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:f,sortStrategy:d,error:g}=j(),{slippage:T,customSlippage:C}=h(),{findToken:y}=h(),S=l||P(),k=!!u&&u.results.length,w=C??T,A=i(v=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...v};return Co(b,{fromToken:m,toToken:f,userSlippage:w,findToken:y})},"getQuoteWarning"),L=g?.type===0||g?.type===1,E=u?.results?Yn(d,u?.results):[];return de.createElement(de.Fragment,null,a&&de.createElement(de.Fragment,null,de.createElement(vm,null,de.createElement(JC,{size:"xmedium",variant:"title"},YC.t("Sort by")),de.createElement(Hr,{container:S})),de.createElement(os,{size:"10"})),e&&Array.from({length:bm},(v,b)=>de.createElement(de.Fragment,{key:b},s?de.createElement(ZC,{loading:!0}):de.createElement(nn,{tagHidden:!1,type:"list-item",expanded:!1}),b!==bm-1&&de.createElement(os,{size:16}))),!e&&de.createElement(de.Fragment,null,k?E.map((v,b)=>{let x=A(v),B=Va(v.swaps),U=E.length-1===b;return de.createElement(de.Fragment,{key:v.requestId},de.createElement(uo,{showModalFee:r,container:S,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:x,fullExpandedMode:s,onClick:I=>{B||c("warning",x),c("error",B?.options||null),o(I)},type:"list-item"}),!U&&de.createElement(os,{size:16}))}):L&&de.createElement(km,null,de.createElement(Ko,{size:s?"large":"small",error:g,fetch:n}))))}i(pn,"Quotes");import{darkTheme as RC,styled as Em}from"@rango-dev/ui";var Im=Em("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${RC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Am=Em("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var rT=100;function ns(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=nT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=$o();return oT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},rT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Gt.createElement(Im,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${mr()}`,id:he.EXPANDED_BOX_ID},Gt.createElement(tT,{title:eT.t("Routes"),suffix:Gt.createElement(Gt.Fragment,null,Gt.createElement(Hr,{container:m}),Gt.createElement(io,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Gt.createElement(Am,null,Gt.createElement(pn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:$o(),onClickOnQuote:n,fullExpandedMode:c})))}i(ns,"ExpandedQuotes");import{i18n as _m}from"@lingui/core";import{SwapInput as $m}from"@rango-dev/ui";import cn from"react";import{ReverseIcon as sT}from"@rango-dev/ui";import is from"react";import{keyframes as iT,styled as Nm}from"@rango-dev/ui";var rs=450,aT=iT({"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)"}}),Wm=Nm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Mm=Nm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${aT} ${rs}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=j.use.switchFromAndTo();return is.createElement(Wm,null,is.createElement(Mm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},rs),t()}},is.createElement(sT,{size:12})))}i(as,"SwitchFromAndToButton");import{styled as Lm}from"@rango-dev/ui";var Bm=Lm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Pm=Lm("div",{position:"relative"});function ss(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=j(),{connectedWallets:T,getBalanceFor:C}=te(),y=a?C(a):null,S=Ln(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",w=!!s&&Nl(T,s.name),A=!Oi(g,c,m),L=!Oi(g,c,d),E=!m||!d||!d.gt(0)?null:Ke(m.toString(),d.toString());return cn.createElement(Bm,null,cn.createElement(Pm,null,cn.createElement($m,{label:_m.t("From"),mode:"From",onInputChange:u,balance:S,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:A?void 0:M(m,4,4),realUsdValue:A?void 0:m?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),cn.createElement(as,null)),cn.createElement($m,{sharpBottomStyle:!r&&(!!g||e),label:_m.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(Ke(m,d),2,2),warningLevel:Et(E??0),price:{value:M(f,6,6),usdValue:L?void 0:M(d,4,4),realValue:f?.toString(),realUsdValue:L?void 0:d?.toString(),error:L?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(ss,"Inputs");import{useCallback as lT,useEffect as pT,useRef as cT,useState as uT}from"react";function Dm(){let{fetch:t,loading:e,cancelFetch:o}=Fr({request:async(n,r)=>await Ft().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Dm,"useFetchAllQuotes");var mT=600;function Gr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Dm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:f,resetQuote:d,error:g,warning:T,setSelectedQuote:C,updateQuotePartialState:y}=j(),{slippage:S,customSlippage:k,affiliatePercent:w,affiliateRef:A,affiliateWallets:L,fetchStatus:E}=h(),v=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),x=h().excludeLiquiditySources(),{findToken:B}=h(),[U,I]=uT(!0),H=cT(u),Y=k??S,G=!l||!p||Jt(l,p)||!Oo(u),ee=i(Z=>{I(Z)},"resetState"),N=i(Z=>{let{fromToken:re,toToken:Ce,inputAmount:_,liquiditySources:De,excludeLiquiditySources:tt,disabledLiquiditySources:me,slippage:Fe,affiliateRef:wt,affiliatePercent:Ge,affiliateWallets:ot}=Z;if(U||ee(!0),!G&&re&&Ce){d();let nt=hp({fromToken:re,toToken:Ce,inputAmount:_,liquiditySources:De,excludeLiquiditySources:tt,disabledLiquiditySources:me,wallets:s,slippage:Fe,affiliateRef:wt,affiliatePercent:Ge,affiliateWallets:ot,enableCentralizedSwappers:a});zl("experimentalRoute",r)&&(nt.experimental=!0),e(nt).then(dt=>{let ge=Yn(f,dt.results),W=Wp(m,ge,dt.requestAmount);I(!1),y("quotes",dt),C(W),Or({diagnosisMessages:dt.diagnosisMessages,requestId:W?.requestId||"",swaps:W?.swaps});let V=W&&Co(W,{fromToken:re,toToken:Ce,userSlippage:Y,findToken:B});y("warning",V)}).catch(dt=>{let{error:ge}=Ur(dt);(ge?.type===0||ge?.type===1)&&d(),ge?.type!==2&&(y("error",ge),I(!1))})}},"fetch"),Q=lT(gl(Z=>{N(Z)},mT),[G]);return pT(()=>{if(!t){I(!1);return}if(E!=="success")return;if(G){I(!1),(m||g||T)&&d();return}if(!Oo(u)||c?.eq(0)){ee(!1),o();return}d(),ee(!0);let Z=N;return H.current&&H.current!=u&&(Z=Q),H.current=u,Z({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,G,v?.length,n,b.length,Y,A,w,JSON.stringify(L)]),{fetch:()=>N({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:x,disabledLiquiditySources:b,slippage:Y,affiliateRef:A,affiliatePercent:w,affiliateWallets:L}),loading:U}}i(Gr,"useSwapInput");var CT=gT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),TT=300;function Qm(){let t=ST(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=j(),[d,g]=Um(!1),{isLargeScreen:T,isExtraLargeScreen:C}=Wr(),{fetch:y,loading:S}=Gr({refetchQuote:a}),{config:k,fetchStatus:w}=h(),{connectedWallets:A}=te(),{isActiveTab:L}=ie(),[E,v]=Um(!1),x=cp({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:A.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=$l(T,C,k?.variant),U=!!n&&!!e&&!!o&&new yT(n).gt(0)&&!bp(e,o),I=U&&w==="success"&&S,pe=(!B||B&&p?.results.length)&&(l||s);Om(()=>{c(),f("refetchQuote",!0)},[]),Om(()=>{g(U)},[U]);let G=(r||s)&&!E?y:void 0,ee=i(Q=>{B&&d?(g(!1),setTimeout(()=>{t(Q)},TT)):t(Q)},"onHandleNavigation"),N=i(Q=>{r?.requestId!==Q.requestId&&(v(!1),u(Q))},"onClickOnQuote");return Oe.createElement(CT,null,Oe.createElement(le,{height:"auto",footer:Oe.createElement(fT,{type:"primary",size:"large",disabled:x.disabled||!L,prefix:x.action==="confirm-warning"&&Oe.createElement(hT,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?ee(z.wallets):x.action==="confirm-warning"?v(!0):ee(z.confirmSwap)}},x.title),header:{onWallet:()=>{ee(z.wallets)},hasBackButton:!1,title:k.title||dT.t("Swap"),suffix:Oe.createElement(io,{hidden:B?["refresh"]:void 0,onClickRefresh:G,onClickHistory:()=>ee(z.swaps),onClickSettings:()=>{ee(z.settings)}})}},Oe.createElement(ue,null,Oe.createElement(ss,{fetchingQuote:I,fetchMetaStatus:w,isExpandable:B,onClickToken:Q=>{ee(Q==="from"?z.fromSwap:z.toSwap)}}),Oe.createElement(Fm,{size:"2"}),B?null:Oe.createElement(uo,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),ee(z.routes)}:void 0}),pe?Oe.createElement(Oe.Fragment,null,Oe.createElement(Fm,{size:"10"}),Oe.createElement(Yo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:E,confirmationDisabled:!L,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),m(!0),ee(z.confirmSwap)},onChangeSettings:()=>ee(z.settings)})):null)),B?Oe.createElement(ns,{loading:I,onClickOnQuote:N,fetch:y,onClickRefresh:G,isVisible:d}):null)}i(Qm,"Home");import{i18n as zm}from"@lingui/core";import{Alert as kT,Divider as vT,List as wT,ListItemButton as xT,Radio as bT,RadioRoot as ET,Typography as IT}from"@rango-dev/ui";import kt from"react";function Vt(){let{setLanguage:t,language:e,config:o}=h(),n=Hl,r=o?.language||yo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||yo),resetLanguage:()=>t(null)}}i(Vt,"useLanguage");function qm(){let{activeLanguage:t,changeLanguage:e,languages:o}=Vt(),n=Ye(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:kt.createElement(IT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:kt.createElement(bT,{value:s}),start:kt.createElement(p,null)}});return kt.createElement(le,{header:{title:zm.t("Language")}},kt.createElement(ue,null,kt.createElement(kT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),kt.createElement(vT,{size:"8"}),kt.createElement(ET,{value:t},kt.createElement(wT,{type:kt.createElement(xT,{title:zm.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(qm,"LanguagePage");import{i18n as Bt}from"@lingui/core";import{Button as LT,Checkbox as BT,Image as PT,ListItemButton as _T,NotFound as $T,Typography as DT}from"@rango-dev/ui";import $e,{useState as FT}from"react";import{Checkbox as WT,Skeleton as Gm}from"@rango-dev/ui";import mn from"react";import{styled as ls}from"@rango-dev/ui";var un=ls("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ps=ls("div",{width:80,display:"flex",justifyContent:"flex-end"}),cs=ls("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as AT,styled as NT}from"@rango-dev/ui";var Hm=NT(AT,{height:61});var MT=30;function us(){return mn.createElement(un,null,Array.from(Array(MT),(t,e)=>mn.createElement(Hm,{hasDivider:!0,key:e,start:mn.createElement(Gm,{variant:"circular",width:35,height:35}),title:mn.createElement(Gm,{variant:"text",size:"large",width:90}),end:mn.createElement(WT,{checked:!1})})))}i(us,"LoadingLiquiditySourceList");function ms({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=FT(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Dn(o,n),u={Exchanges:Bt.t("Exchanges"),Bridges:Bt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,d=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:S,groupTitle:k,logo:w}=y;return{start:$e.createElement(PT,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:$e.createElement(BT,{checked:S,disabled:l}),title:$e.createElement(DT,{variant:"title",size:"xmedium"},Bt.t(k)),...y}}),T=i(y=>{let S=y.target.value;a(S)},"searchHandler"),C=g;return r&&(C=g.filter(y=>gt(y.groupTitle,r))),$e.createElement(le,{header:{title:Bt.t(t),suffix:$e.createElement(ps,null,$e.createElement(LT,{variant:"ghost",size:"xsmall",onClick:d},f?Bt.t("Deselect all"):Bt.t("Select all")))}},$e.createElement(ue,{view:!0},$e.createElement(Mt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Bt.t("Search {sourceType}",{sourceType:u[t]}),onChange:T}),e==="loading"&&$e.createElement(us,null),!C.length&&r?$e.createElement(cs,null,$e.createElement($T,{title:Bt.t("No results found"),description:Bt.t("Try using different keywords")})):e==="success"&&$e.createElement(un,{disabled:l},C.map(y=>{let{groupTitle:S,...k}=y;return $e.createElement($e.Fragment,{key:y.id},$e.createElement(_T,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ms,"LiquiditySourcePage");import{i18n as OT}from"@lingui/core";import Vr from"react";import{useNavigate as UT}from"react-router-dom";function Vm(){let t=UT(),e=Ye(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=j(),{fetch:l,loading:p}=Gr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${z.settings}`,m=`../${z.wallets}`;return Vr.createElement(le,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:OT.t("Routes"),suffix:Vr.createElement(io,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Vr.createElement(ue,null,Vr.createElement(pn,{fetch:l,loading:p,onClickOnQuote:u})))}i(Vm,"RoutesPage");import{i18n as ed}from"@lingui/core";import{Divider as td,getCategoriesCount as jT,SelectableCategoryList as YT}from"@rango-dev/ui";import Pt,{useState as od}from"react";import{i18n as ds}from"@lingui/core";import{Divider as Jm,Image as HT,ListItemButton as GT,NotFound as VT,Typography as Rm}from"@rango-dev/ui";import Je,{useEffect as XT,useState as KT}from"react";var Xm=i((t,e,o)=>t.filter(n=>wn(n.type,o)).filter(n=>xt(n.name,e)||xt(n.displayName,e)),"filterBlockchains");import{ImageContainer as QT,styled as Km}from"@rango-dev/ui";var jm=Km("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Xr=Km(Go,{padding:0,margin:0,listStyle:"none",[`& ${QT}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as zT,Skeleton as Ym}from"@rango-dev/ui";import Kr from"react";var qT=20;function Zm(){return Kr.createElement(Xr,null,Array.from(Array(qT),t=>Kr.createElement(zT,{key:t,hasDivider:!0,start:Kr.createElement(Ym,{variant:"circular",width:35,height:35}),title:Kr.createElement(Ym,{variant:"text",size:"large",width:90})})))}i(Zm,"LoadingBlockchainList");function fs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=KT(e),{fetchStatus:l}=h();XT(()=>{s([...Xm(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?Je.createElement(Je.Fragment,null,Je.createElement(Jm,{size:32}),Je.createElement(VT,{title:ds.t("No results found"),description:ds.t("Try using different keywords")})):Je.createElement(Xr,{as:"ul",key:`${r}-${o}`},a.map(u=>Je.createElement(GT,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Je.createElement(HT,{src:u.logo,size:30}),title:Je.createElement(Rm,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Je.createElement(jm,null,Je.createElement(Rm,{variant:"label",size:"large"},ds.t("Select Blockchain")),Je.createElement(Jm,{size:4}),l==="loading"&&Je.createElement(Zm,null),l==="success"&&p())}i(fs,"BlockchainList");function gs(t){let{type:e}=t,o=Ye(),[n,r]=od(""),[a,s]=od("ALL"),l=j.use.setToBlockchain(),p=j.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=jT(c)!==1;return Pt.createElement(le,{header:{title:ed.t("Select Blockchain")}},Pt.createElement(ue,{view:!0},f&&Pt.createElement(Pt.Fragment,null,Pt.createElement(YT,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Pt.createElement(td,{size:24})),Pt.createElement(Mt,{value:n,autoFocus:!0,placeholder:ed.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),Pt.createElement(td,{size:16}),Pt.createElement(fs,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(gs,"SelectBlockchainPage");import{i18n as Rr}from"@lingui/core";import{Divider as wd}from"@rango-dev/ui";import mo,{useState as dk}from"react";import{useNavigate as fk}from"react-router-dom";import{i18n as Ss}from"@lingui/core";import{BlockchainsChip as jr,Divider as ad,Image as sd,Skeleton as tk,Tooltip as ok,Typography as Cs}from"@rango-dev/ui";import Ae from"react";import{useEffect as RT}from"react";var nd=["ETH","COSMOS","OSMOSIS"];function hs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ZT),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(JT(s)),r=n.splice(a)}return{list:n,more:r}}i(hs,"prepare");function ZT(t,e){let o=nd,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(ZT,"sortByMostUsedBlockchains");function JT(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(JT,"generateSortByPreferredBlockchainsFor");function rd(t,e){return!!e.list.find(o=>o.name===t)}i(rd,"isInVisibleList");function ys(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();RT(()=>{if(e?.selected){let a=hs(t,o,e);rd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=hs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(ys,"usePrepareBlockchainList");import{styled as ek}from"@rango-dev/ui";var id=ek("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var nk=12;function Ts(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=ys(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=j.use.resetToBlockchain(),u=j.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Ae.createElement(Ae.Fragment,null,Ae.createElement(ad,{size:12}),Ae.createElement(Cs,{variant:"label",size:"large"},Ss.t("Select Blockchain")),Ae.createElement(ad,{size:12}),Ae.createElement(id,null,l==="loading"&&Array.from(Array(nk),d=>Ae.createElement(tk,{key:d,variant:"rounded",height:50})),l==="success"&&Ae.createElement(Ae.Fragment,null,Ae.createElement(jr,{selected:!n,onClick:()=>{o==="from"?u():p()}},Ae.createElement(Cs,{variant:"body",size:"xsmall",color:"secondary500"},Ss.t("All"))),s.list.map(d=>Ae.createElement(ok,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:P()},Ae.createElement(jr,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Ae.createElement(sd,{src:d.logo,size:30})))),m?Ae.createElement(jr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Ae.createElement(sd,{src:s.more[0].logo,size:30})):null,f?Ae.createElement(jr,{onClick:a,key:"more-blockchains"},Ae.createElement(Cs,{variant:"body",size:"xsmall",color:"secondary500"},Ss._("More +{count}",{count:s.more.length}))):null)))}i(Ts,"BlockchainsSection");import{i18n as Ws}from"@lingui/core";import{darkTheme as Sd,Divider as Lo,ExternalLinkIcon as ak,Image as sk,ListItemButton as lk,NotFound as pk,PinIcon as ck,Skeleton as Cd,Typography as Jr,VirtualizedList as uk}from"@rango-dev/ui";import K,{useEffect as Td,useState as kd}from"react";import{Divider as hd,ListItem as ik,Skeleton as dn}from"@rango-dev/ui";import pt from"react";import{css as Mo,darkTheme as ld,ImageContainer as rk,styled as Re,Typography as pd}from"@rango-dev/ui";var ks=Mo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),vs=Mo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ws=Mo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),xs=Mo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ld} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),bs=Mo({}),Es=Mo(),cd=Re("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Is=Re("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Yr=Re("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${vs}`]:{[`& .${xs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${bs}`]:{bottom:"-15px"},[`& .${ks}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ws}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),As=Re("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ns=Re(pd,{}),ud=Re("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Es}`]:{$$color:"$colors$neutral600",[`.${ld} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zr=Re("div",{display:"flex",alignItems:"end",flexDirection:"column"}),OO=Re("div",{display:"flex",alignItems:"center"}),md=Re("div",{position:"relative",[`& ${rk}`]:{borderRadius:"$xm",overflow:"hidden"}}),dd=Re("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),fd=Re(pd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),gd=Re("a",{"& svg:hover":{color:"$colors$info"}});function yd(t){return pt.createElement(Yr,null,Array.from(Array(t.size),e=>pt.createElement(ik,{key:e,hasDivider:!0,start:pt.createElement(dn,{variant:"circular",width:35,height:35}),end:pt.createElement(Zr,null,pt.createElement(dn,{variant:"text",size:"large",width:70}),pt.createElement(hd,{size:4}),pt.createElement(dn,{variant:"text",size:"medium",width:50})),title:pt.createElement("div",null,pt.createElement(dn,{variant:"text",size:"large",width:90}),pt.createElement(hd,{size:4}),pt.createElement(dn,{variant:"text",size:"medium",width:90}))})))}i(yd,"LoadingTokenList");var Ms=20,mk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:vs()},o?K.createElement("div",{className:ks()},o):K.createElement(Is,{className:ws()},K.createElement(Jr,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Lo,{direction:"horizontal",size:4}),K.createElement(As,{css:a},K.createElement(Ns,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${xs()} ${!o&&bs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Lo,{size:4,direction:"horizontal"}),K.createElement(gd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(ak,{size:12}))))},"renderDesc");function vd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=kd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=kd(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+Ms))},"loadNextPage");Td(()=>{c(e.length>a.length)},[a.length]),Td(()=>{s(e.slice(0,Ms))},[e.length,r]);let T=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Lo,{size:32}),K.createElement(pk,{title:Ws.t("No results found"),description:Ws.t("Try using different keywords")})):K.createElement(uk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],S=Ln(m(y)),k=y.address||"",w=p.find(v=>v.name===y.blockchain),A=ea(w.color,"main"),L={$$color:A.main150,[`.${Sd} &`]:{$$color:A.main750},backgroundColor:"$$color"},E={$$color:A.main750,[`.${Sd} &`]:{$$color:A.main150},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(lk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:K.createElement(md,null,K.createElement(sk,{src:y.image,size:30}),d(y,t.type)&&K.createElement(dd,null,K.createElement(ck,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(Is,null,K.createElement(Jr,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Lo,{direction:"horizontal",size:4}),K.createElement(As,{css:L},K.createElement(Ns,{variant:"body",size:"xsmall",css:E},y.blockchain))):void 0,description:w?.info&&k&&w.type!=="COSMOS"?mk({address:k,token:a[C],customCssForTag:L,customCssForTagTitle:E,name:y.name,url:w.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(Zr,null,K.createElement(Cd,{variant:"text",size:"large",width:70}),K.createElement(Lo,{size:4}),K.createElement(Cd,{variant:"text",size:"medium",width:50})):S&&K.createElement(ud,null,K.createElement(fd,{variant:"title",size:"small"},S.amount),K.createElement("div",null),S.usdValue&&K.createElement(Jr,{variant:"body",className:Es(),size:"xsmall"},`$${S.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(cd,null,K.createElement(Jr,{variant:"label",size:"large"},Ws.t("Select Token")),K.createElement(Lo,{size:4}),l==="loading"&&K.createElement(yd,{size:Ms}),l==="success"&&K.createElement(Yr,{as:"ul"},T()))}i(vd,"TokenList");function Ls(t){let{type:e}=t,o=fk(),n=Ye(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=j(),c=te.use.getBalanceFor(),[m,f]=dk(""),g=(e==="source"?r:a)?.name??"",T=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(w=>{e==="source"?p(w):u(w)},"updateBlockchain"),S=i(w=>{e==="source"?s({token:w,meta:{blockchains:T,tokens:C}}):l({token:w,meta:{blockchains:T,tokens:C}})},"updateToken"),k={source:Rr.t("Source"),destination:Rr.t("Destination")};return mo.createElement(le,{header:{title:Rr.t("Swap {type}",{type:k[e]})}},mo.createElement(ue,null,mo.createElement(Ts,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(z.blockchains),onChange:w=>{y(w)}}),mo.createElement(wd,{size:24}),mo.createElement(Mt,{value:m,autoFocus:!0,placeholder:Rr.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:w=>f(w.target.value)}),mo.createElement(wd,{size:16}),mo.createElement(vd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:w=>{S(w);let A=T.find(L=>w.blockchain===L.name);A&&y(A),n()}})))}i(Ls,"SelectSwapItemsPage");import{i18n as $s}from"@lingui/core";import{Alert as Ok,Button as Uk,styled as Qk}from"@rango-dev/ui";import fo from"react";import{useInRouterContext as zk,useSearchParams as qk}from"react-router-dom";import{i18n as Nd}from"@lingui/core";import{Divider as Sk,InfoIcon as Ck,TextField as Tk,Tooltip as kk,Typography as Wd}from"@rango-dev/ui";import ct from"react";import{Chip as gk,styled as fn,TextField as hk}from"@rango-dev/ui";var xd=fn("div",{paddingTop:"$5",padding:"$10 $5"}),bd=fn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${hk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ed=fn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ei=fn("div",{maxWidth:"280px",padding:"$10"}),Id=fn(gk,{width:"61px",flexShrink:0});import{i18n as Bs}from"@lingui/core";import{Typography as yk}from"@rango-dev/ui";import gn from"react";function Ad(){return gn.createElement(ei,null,gn.createElement(yk,{variant:"label",size:"medium",color:"neutral700"},Bs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),gn.createElement("br",null),gn.createElement("br",null),gn.createElement("b",null,Bs.t("Warning")),":",Bs.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(Ad,"SlippageTooltipContent");function Ps(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ct.createElement(xd,null,ct.createElement(Ed,null,ct.createElement(Wd,{variant:"title",size:"xmedium"},Nd.t("Slippage tolerance per swap")),ct.createElement(Sk,{direction:"horizontal",size:4}),ct.createElement(kk,{container:P(),side:"top",sideOffset:4,content:ct.createElement(Ad,null)},ct.createElement(Ck,{color:"gray"}))),ct.createElement(bd,null,Gl.map((r,a)=>{let s=`slippage-${a}`;return ct.createElement(Id,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ct.createElement(Tk,{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>=jl&&s<=Kl?n(s):n(null)},suffix:o&&ct.createElement(Wd,{variant:"body",size:"small"},"%"),placeholder:Nd.t("Custom")})))}i(Ps,"Slippage");import{i18n as vt}from"@lingui/core";import{AutoThemeIcon as Md,BridgesIcon as vk,ChevronRightIcon as _s,DarkModeIcon as Ld,Divider as ti,ExchangeIcon as wk,InfinityIcon as xk,InfoIcon as bk,LanguageIcon as Ek,LightModeIcon as Bd,List as Ik,ListItem as Ak,ListItemButton as Nk,Skeleton as Wk,styled as Mk,Switch as Lk,Tabs as Bk,Tooltip as Pk,Typography as et}from"@rango-dev/ui";import O from"react";import{useNavigate as _k}from"react-router-dom";var $k=Mk("div",{width:"202px",height:"$40"}),Dk=[{id:"light",icon:O.createElement(Bd,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},vt.t("Light"))},{id:"dark",icon:O.createElement(Ld,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},vt.t("Dark"))},{id:"auto",icon:O.createElement(Md,{color:"black",size:24}),tooltip:O.createElement(et,{size:"xsmall",variant:"body"},vt.t("Auto"))}],Fk=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Md,{...e});case"dark":return O.createElement(Ld,{...e});default:return O.createElement(Bd,{...e})}},"getThemeIcon");function Pd(){let t=_k(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Vt(),s=a.find(H=>H.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=Xe("theme",c),f=Xe("liquiditySource",c),d=Xe("language",c),g=h().infiniteApprove,T=h().toggleInfiniteApprove,C=Dn(p,u),y=C.filter(H=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(H.type)),S=y.length,k=y.filter(H=>H.selected).length,w=C.filter(H=>H.type==="DEX"),A=w.length,L=w.filter(H=>H.selected).length,E=i((H,Y)=>{switch(l){case"loading":return O.createElement(Wk,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(et,{variant:"body",size:"medium",color:"$error500"},vt.t("Loading failed"));default:return O.createElement(et,{variant:"body",size:"medium"},`${H} / ${Y}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Bridges")),end:O.createElement(O.Fragment,null,E(k,S),O.createElement(ti,{direction:"horizontal",size:8}),O.createElement(_s,{color:"black"})),onClick:()=>t(z.bridges),start:O.createElement(vk,{color:"gray",size:16})},b={id:"exchange-item",title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Exchanges")),end:O.createElement(O.Fragment,null,E(L,A),O.createElement(ti,{direction:"horizontal",size:8}),O.createElement(_s,{color:"black"})),start:O.createElement(wk,{color:"gray",size:16}),onClick:()=>t(z.exchanges)},x={id:"language-item",title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Language")),start:O.createElement(Ek,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(et,{variant:"body",size:"medium"},s),O.createElement(ti,{direction:"horizontal",size:8}),O.createElement(_s,{color:"black"})),onClick:()=>t(z.languages)},B={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Infinite approval")),O.createElement(ti,{direction:"horizontal",size:4}),O.createElement(Pk,{side:"top",sideOffset:4,container:P(),content:O.createElement(ei,null,O.createElement(et,{variant:"label",size:"medium",color:"neutral700"},vt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},O.createElement(bk,{color:"gray"}))),start:O.createElement(xk,{color:"gray",size:16}),end:O.createElement(Lk,{checked:g}),onClick:T},U={id:"theme-item",type:O.createElement(Ak,null),title:O.createElement(et,{variant:"title",size:"xmedium"},vt.t("Theme")),end:O.createElement($k,null,O.createElement(Bk,{container:P(),items:Dk,value:n,onChange:H=>o(H.id),type:"primary",borderRadius:"small"})),start:Fk(n)},I=f?[]:[v,b];return d||I.push(x),I.push(B),!e?.singleTheme&&!m&&I.push(U),O.createElement(Ik,{type:O.createElement(Nk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(Pd,"SettingsLists");var Hk=Qk("div",{paddingLeft:"$8"});function _d(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=qk(),r=zk(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return fo.createElement(le,{header:{title:$s.t("Settings")}},fo.createElement(ue,null,o&&fo.createElement(Ok,{type:"info",variant:"alarm",title:$s.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:fo.createElement(Hk,null,fo.createElement(Uk,{type:"secondary",size:"small",onClick:a},$s.t("Reset")))}),fo.createElement(Ps,null),fo.createElement(Pd,null)))}i(_d,"SettingsPage");import{i18n as Mv}from"@lingui/core";import{cancelSwap as Lv}from"@rango-dev/queue-manager-rango-preset";import{useManager as Bv}from"@rango-dev/queue-manager-react";import{Alert as Pv}from"@rango-dev/ui";import Rs from"react";import{useParams as _v}from"react-router-dom";import{i18n as ut}from"@lingui/core";import{getCurrentBlockchainOfOrNull as mv,getCurrentStep as dv,getRelatedWalletOrNull as fv}from"@rango-dev/queue-manager-rango-preset";import{Button as df,CopyIcon as gv,Divider as hv,IconButton as yv,QuoteCost as Sv,RangoExplorerIcon as Cv,StepDetails as Tv,Tooltip as kv,Typography as go,useCopyToClipboard as vv}from"@rango-dev/ui";import{useWallets as wv}from"@rango-dev/wallets-react";import ff from"bignumber.js";import{PendingSwapNetworkStatus as ci}from"rango-types";import R,{useEffect as gf,useRef as xv,useState as hf}from"react";import{useNavigate as bv}from"react-router-dom";import{i18n as Xt}from"@lingui/core";var Gk=[Xt.t("Sunday"),Xt.t("Monday"),Xt.t("Tuesday"),Xt.t("Wednesday"),Xt.t("Thursday"),Xt.t("Friday"),Xt.t("Saturday")];function $d(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Xt.t("Today"):`${Gk[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i($d,"timeSince");function Dd(t){return t.finishTime?$d(parseInt(t.finishTime)):$d(parseInt(t.creationTime))}i(Dd,"getSwapDate");import{PendingSwapNetworkStatus as ri}from"rango-types";import ii from"react";import{i18n as oi}from"@lingui/core";import{Button as Fd,Divider as Ds,MessageBox as Vk}from"@rango-dev/ui";import Kt from"react";var Od=i(({onCancel:t,onClose:e})=>Kt.createElement(Kt.Fragment,null,Kt.createElement(Ds,{size:20}),Kt.createElement(Vk,{type:"error",title:oi.t("Cancel Swap"),description:oi.t("Are you sure you want to cancel this swap?")}),Kt.createElement(Ds,{size:32}),Kt.createElement(Fd,{variant:"contained",type:"primary",size:"large",onClick:t},oi.t("Yes, Cancel it")),Kt.createElement(Ds,{size:12}),Kt.createElement(Fd,{variant:"outlined",type:"primary",size:"large",onClick:e},oi.t("No, Continue"))),"CancelContent");import{i18n as ni}from"@lingui/core";import{Button as Ud,Divider as Fs,MessageBox as Xk,Typography as Kk}from"@rango-dev/ui";import _t from"react";var Qd=i(({onDelete:t,onClose:e})=>_t.createElement(_t.Fragment,null,_t.createElement(Fs,{size:20}),_t.createElement(Xk,{type:"error",title:ni.t("Delete Transaction"),description:ni.t("Are you sure you want to delete this swap?")}),_t.createElement(Fs,{size:32}),_t.createElement(Ud,{variant:"contained",type:"primary",size:"large",onClick:t},ni.t("Yes, Delete it")),_t.createElement(Fs,{size:12}),_t.createElement(Ud,{variant:"outlined",type:"primary",size:"large",onClick:e},_t.createElement(Kk,{variant:"title",size:"medium",color:"primary"},ni.t("No, Cancel")))),"DeleteContent");import{i18n as Os}from"@lingui/core";import{PendingSwapNetworkStatus as Us}from"rango-types";var Qs={[Us.WaitingForNetworkChange]:{type:"loading",title:Os.t("Change Network")},[Us.WaitingForConnectingWallet]:{type:"warning",title:Os.t("Connect Wallet")},[Us.NetworkChanged]:{type:"success",title:Os.t("Network Changed")}};import{debug as Hd}from"@rango-dev/logging-core";import{MessageBox as jk,Wallet as Yk}from"@rango-dev/ui";import{useWallets as Zk}from"@rango-dev/wallets-react";import Bo,{useState as Jk}from"react";import{styled as zd}from"@rango-dev/ui";var qd=zd("div",{display:"flex",justifyContent:"center"}),IQ=zd("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Gd=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Zk(),[c,m]=Jk(null),f=n?.walletType,d=f?Ii(u(f)):null,g=f?p(f):null;return Bo.createElement(Bo.Fragment,null,Bo.createElement(jk,{type:e,title:o,description:r}),a&&!!f&&!!d&&!!g&&Bo.createElement(qd,null,Bo.createElement(Yk,{container:P(),title:g.name,image:g.img,type:f,state:d,link:g.installLink,disabled:s,onClick:async()=>{g.namespaces?m({providerType:f,providerImage:g.img,availableNamespaces:g.namespaces,singleNamespace:g.singleNamespace}):l(f).catch(C=>Hd(C))}})),Bo.createElement(so,{open:!!c,onClose:()=>m(null),onConfirm:C=>{l(c?.providerType,void 0,C).catch(y=>Hd(y)),m(null)},image:c?.providerImage,namespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}))},"WalletStateContent");function zs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ri.WaitingForNetworkChange||e===ri.WaitingForConnectingWallet||e===ri.NetworkChanged;return ii.createElement(ne,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&ii.createElement(Gd,{type:Qs[e].type,title:Qs[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ri.WaitingForNetworkChange}),e==="delete"&&ii.createElement(Qd,{onClose:o,onDelete:n}),e==="cancel"&&ii.createElement(Od,{onClose:o,onCancel:r}))}i(zs,"SwapDetailsModal");import{i18n as hn}from"@lingui/core";import{Button as qs,Divider as ai,MessageBox as Vd,TokenAmount as Rk,Typography as Hs}from"@rango-dev/ui";import Me from"react";import{useNavigate as ev}from"react-router-dom";function Gs(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=ev();return Me.createElement(ne,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Me.createElement(Vd,{type:"success",title:hn.t("Swap Successful")},Me.createElement(Rk,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Me.createElement(ai,{size:12}),Me.createElement(Hs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Me.createElement(Vd,{type:"error",title:hn.t("Transaction Failed"),description:m}),Me.createElement(ai,{size:32}),n==="success"&&Me.createElement(qs,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Me.createElement(Hs,{variant:"title",size:"medium",color:"neutral100"},hn.t("Done"))),Me.createElement(ai,{size:12}),f&&Me.createElement(Me.Fragment,null,Me.createElement(qs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},hn.t("Diagnosis")),Me.createElement(ai,{size:12})),Me.createElement(qs,{variant:"outlined",type:"primary",size:"large",onClick:o},Me.createElement(Hs,{variant:"title",size:"medium",color:"primary"},hn.t("See Details"))))}i(Gs,"SwapDetailsCompleteModal");import uv from"react";import{i18n as sv}from"@lingui/core";import{Alert as pf,IconButton as lv,LinkIcon as pv}from"@rango-dev/ui";import jt,{Fragment as cv}from"react";import{Alert as nv,ChevronDownIcon as rv,IconButton as iv}from"@rango-dev/ui";import _o,{useState as av}from"react";import{css as yn,darkTheme as tv,styled as $t,Typography as ov}from"@rango-dev/ui";var Xd=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),si=$t("div",{width:"100%"}),Kd=$t(Go,{padding:"$0 $20 $20 $20"}),pz=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),jd=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),cz=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Po=yn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${tv} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Yd=yn({padding:"$5 0"}),li=yn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Zd=yn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Jd=yn({width:"100%",padding:"0 $20 $10"}),Rd=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),ef=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),pi=$t(ov,{wordBreak:"break-word"});import{styled as Vs}from"@rango-dev/ui";var tf=Vs("div",{display:"flex",flexDirection:"column",gap:"$10"}),of=Vs("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),nf=Vs("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function rf(t){let{message:e}=t,[o,n]=av(!1);return _o.createElement(nv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&_o.createElement(iv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},_o.createElement(of,{rotated:o},_o.createElement(rv,{size:12,color:"gray"}))),footer:_o.createElement(nf,{open:o},_o.createElement(pi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(rf,"FailedAlert");import{i18n as af}from"@lingui/core";import{Alert as Xs,Button as sf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ks}from"rango-types";import Sn from"react";function lf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Sn.createElement(Xs,{type:"warning",title:n.shortMessage,action:Sn.createElement(sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ks.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},af.t("Change"))}):r===Ks.WaitingForConnectingWallet?Sn.createElement(Xs,{type:"warning",title:n.shortMessage,action:Sn.createElement(sf,{size:"xxsmall",type:"warning",onClick:()=>{o(Ks.WaitingForConnectingWallet)}},af.t("Connect"))}):Sn.createElement(Xs,{type:"warning",title:n.shortMessage})}i(lf,"WarningAlert");function js(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=qo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return jt.createElement(tf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,T=f===d.length-1,C=(T&&u||p)&&!c,y=T&&a.status==="failed";return jt.createElement(cv,{key:g},jt.createElement(pf,{type:T&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:sv.t("View transaction"),action:m.url&&jt.createElement(lv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},jt.createElement(pv,{size:12}))}))}),c&&jt.createElement(pf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&jt.createElement(lf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&jt.createElement(rf,{message:r}))}i(js,"SwapDetailsAlerts");var cf=2e3;var uf=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:Ve(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Ve(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:Do(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Ve(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ve(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Do(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:uv.createElement(js,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function mf(t){if(qo(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(mf,"getStepState");function Ys(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=wv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=j.use.retry(),f=ie.use.isActiveTab(),d=bv(),[g,T]=vv(cf),C=xv(null),[y,S]=hf(null),[k,w]=hf(null),A=i(()=>{r(),S(null)},"onCancel"),L=ke.use.getNotifications(),E=ke.use.removeNotification(),v=L(),b=dv(e),x=b?.networkStatus;gf(()=>{v.find(W=>W.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId)):k&&w(null))},[e.status,e.requestId]),gf(()=>{G?S(ci.WaitingForNetworkChange):x===ci.WaitingForConnectingWallet||x===ci.NetworkChanged?S(x):S(null)},[x]);let B=vp(e),U=b?mv(e,b):null,I=b?fv(e,b):null,H=Dd(e),Y=wp(e),pe=i(ge=>!!l(ge)?.mobileWallet,"isMobileWallet"),G=x===ci.WaitingForNetworkChange&&!!U&&!!I?.walletType&&(pe(I.walletType)||a(I.walletType,U)),ee=G?s.bind(null,I.walletType,U):void 0,N=kp(e,b),Q=uf({swap:e,switchNetwork:ee,showNetworkModal:x,setNetworkModal:S,message:N,blockchains:p,swappers:u}),Z=Q.length,[re,Ce]=[e.steps[0],e.steps[Z-1]],_=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,De=e.steps.reduce((ge,W)=>ge+parseFloat(W.feeInUsd||""),0),tt=e.steps.find(ge=>ge.diagnosisUrl)?.diagnosisUrl,me=M(parseFloat(M(_,6,6))*(Ce.toUsdPrice||0),4,4),Fe=M(parseFloat(e.inputAmount)*(re.fromUsdPrice||0),4,4),wt=_?new ff(_).multipliedBy(Ce.toUsdPrice||0).toString():"",Ge=new ff(e.inputAmount).multipliedBy(re.fromUsdPrice||0).toString(),ot=Ke(Fe,me),nt=N.detailedMessage.content||N.shortMessage,dt=e.status==="success"?ut.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(_,6,6),token:Q[Z-1].to.token.displayName,conciseAddress:Bn(e.wallets[Q[Z-1].to.chain.displayName]?.address||""),chain:Q[Z-1].to.chain.displayName}}):R.createElement(ef,null,R.createElement(go,{variant:"body",size:"medium",color:"neutral700",align:"center"},nt?"":ut.t("Transaction was not sent."),B?`${ut.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),nt&&R.createElement(pi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",nt));return R.createElement(le,{header:{title:ut.t("Swap Details"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(wo,null,R.createElement(df,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},R.createElement(go,{size:"medium",variant:"label",color:"error"},ut.t("Delete"))))},footer:Y&&!k&&R.createElement(df,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let ge=jn(e,p,c);m(ge),setTimeout(()=>{d("../../")},0)}},ut.t("Try again"))},R.createElement(ue,{compact:!0,view:!0},R.createElement(si,null,R.createElement("div",{className:Po()},R.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${ut.t("Request ID")}:`),R.createElement("div",{className:li()},R.createElement(go,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(yv,{variant:"ghost",onClick:T.bind(null,o||"")},R.createElement(gv,{size:16,color:"gray"})),R.createElement(Rd,{target:"_blank",href:`${sl}/swap/${o}`},R.createElement(kv,{container:P(),content:ut.t("View on Rango Explorer"),side:"bottom"},R.createElement(Cv,{size:20}))))),R.createElement("div",{className:Po()},R.createElement(go,{variant:"label",size:"large",color:"neutral700"},e.finishTime?ut.t("Finished at"):ut.t("Created at")),R.createElement(go,{variant:"label",size:"small",color:"neutral700"},H))),R.createElement("div",{className:Zd()},R.createElement(Sv,{fee:M(String(De),2,2),time:Fo(En(e.steps)),steps:Z}),R.createElement(Jo,{from:{price:{value:M(e.inputAmount,6,6),usdValue:Fe,realUsdValue:Ge,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:M(_,6,6),usdValue:me,realUsdValue:wt,realValue:_},token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image,displayName:Q[Z-1].to.chain.displayName}},percentageChange:M(ot,2,2),warningLevel:Et(ot??0)})),R.createElement("div",{className:Jd()},R.createElement(go,{variant:"title",size:"small"},ut.t("Swaps steps"))),R.createElement(hv,{size:8}),R.createElement(Kd,{ref:C},Q.map((ge,W)=>{let V=W,X=mf(e.steps[W]),Qe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&W===Q.length-1;return R.createElement(Tv,{key:V,step:ge,type:"swap-progress",ref:C,state:X,hasSeparator:W!==0,tabIndex:V,isFocused:Qe,tooltipContainer:P()})}))),R.createElement(zs,{state:y,onClose:()=>S(null),onCancel:A,onDelete:n,message:N.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!f}),R.createElement(Gs,{open:!!k,diagnosisUrl:tt,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(_,6,6),usdValue:me,realUsdValue:wt,realValue:_||"",percentageChange:M(ot,2,2),token:{displayName:Q[Z-1].to.token.displayName,image:Q[Z-1].to.token.image},chain:{image:Q[Z-1].to.chain.image},description:dt}))}i(Ys,"SwapDetails");import{i18n as mi}from"@lingui/core";import{Divider as Cf,NotFound as Wv,Skeleton as Tn,Typography as di}from"@rango-dev/ui";import fe from"react";import{i18n as Ev}from"@lingui/core";import{Divider as Iv,Skeleton as Av,Typography as Nv}from"@rango-dev/ui";import Se from"react";import{css as mt,styled as Zs}from"@rango-dev/ui";var yf=Zs("div",{width:"100%",height:"100%",padding:"$10 $20"}),Cn=Zs("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ui=Zs("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),vq=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),wq=mt({display:"flex",justifyContent:"space-between",alignItems:"center"}),xq=mt({paddingTop:"$15",display:"flex"}),bq=mt({padding:"$15 $0"}),Eq=mt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),Iq=mt({paddingBottom:"$10"}),Aq=mt({display:"flex",justifyContent:"start",alignItems:"center"}),Nq=mt({paddingTop:"$5",display:"flex",alignItems:"center"}),Wq=mt({display:"flex",alignItems:"center"}),Mq=mt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Sf=mt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Js(){return Se.createElement(yf,null,Se.createElement(tn,{type:"swap-preview"}),Se.createElement("div",{className:"swaps-steps"},Se.createElement(Nv,{variant:"title",size:"small"},Ev.t("Swaps steps"))),Se.createElement(Se.Fragment,null,Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1}),Se.createElement("div",{className:Sf()},Se.createElement(Iv,{direction:"horizontal",size:20}),Se.createElement(Av,{height:22,variant:"rectangular"}))),Se.createElement(ui,null),Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1})),Se.createElement(ui,null),Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1})),Se.createElement(ui,null),Se.createElement(Cn,null,Se.createElement(Tt,{separator:!1}))))}i(Js,"LoadingSwapDetails");function Tf(t){let{requestId:e,showSkeleton:o}=t;return fe.createElement(le,{header:{title:mi.t("Swap Details"),suffix:fe.createElement(wo,null)}},o&&fe.createElement(Xd,null,fe.createElement(si,null,fe.createElement("div",{className:Po()},fe.createElement(di,{variant:"label",size:"large",color:"neutral700"},`${mi.t("Request ID")}:`),fe.createElement("div",{className:li()},fe.createElement(di,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Tn,{width:60,height:10,variant:"rounded"})),fe.createElement(Cf,{direction:"horizontal",size:4}),fe.createElement(Tn,{width:16,height:16,variant:"rectangular"}),fe.createElement(Cf,{direction:"horizontal",size:4}),fe.createElement(Tn,{width:16,height:16,variant:"rectangular"}))),fe.createElement("div",{className:Po()},fe.createElement(di,{className:Yd(),variant:"label",size:"large",color:"neutral700"},fe.createElement(Tn,{width:60,height:10,variant:"rounded"})),fe.createElement(di,{variant:"label",size:"small",color:"neutral700"},fe.createElement(Tn,{width:60,height:10,variant:"rounded"})))),fe.createElement(Js,null)),!o&&fe.createElement(jd,null,fe.createElement(Wv,{title:mi.t("Not found"),description:mi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Tf,"SwapDetailsPlaceholder");function kf(){let{manager:t,state:e}=Bv(),o=!e.loadedFromPersistor,n=Ze(t),{requestId:r}=_v(),a=Ye(),{fetchStatus:s}=h();if(!r)return Rs.createElement(Pv,{containerStyles:{margin:"20px"},type:"error",title:Mv.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:f})=>f.requestId===r):void 0,u=i(()=>{if(p?.id){let f=t?.get(p.id);f&&Lv(f)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(f){console.log(f)}},"onDelete"),m=p?.swap;return!m||l?Rs.createElement(Tf,{requestId:r,showSkeleton:l}):Rs.createElement(Ys,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(kf,"SwapDetailsPage");function vf(){return Bp(),Ki(),$v([{path:z.home,element:Ue.createElement(Qm,null)},{path:z.routes,element:Ue.createElement(Vm,null)},{path:z.fromSwap,children:[{index:!0,element:Ue.createElement(Ls,{type:"source"})},{path:z.blockchains,element:Ue.createElement(gs,{type:"source"})}]},{path:z.toSwap,children:[{index:!0,element:Ue.createElement(Ls,{type:"destination"})},{path:z.blockchains,element:Ue.createElement(gs,{type:"destination"})}]},{path:z.settings,children:[{index:!0,element:Ue.createElement(_d,null)},{path:z.languages,element:Ue.createElement(qm,null)},{path:z.exchanges,element:Ue.createElement(ms,{sourceType:"Exchanges"})},{path:z.bridges,element:Ue.createElement(ms,{sourceType:"Bridges"})}]},{path:z.swaps,children:[{index:!0,element:Ue.createElement(Tm,null)},{path:z.swapDetails,element:Ue.createElement(kf,null)}]},{path:z.wallets,element:Ue.createElement(Mc,null)},{path:z.confirmSwap,element:Ue.createElement(lm,null)}])}i(vf,"AppRoutes");import{useQueueManager as Gv}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as Vv}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Xv}from"rango-sdk";import{useContext as Kv,useEffect as Nf,useState as Wf}from"react";import{globalCss as Dv}from"@rango-dev/ui";var wf=i(()=>Dv({"@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 xf(){let{setWatermark:t}=ie();return{fetchApiConfig:i(async()=>{let o=await fetch(`${bt("BASE_URL")}/meta/dapp/config?apiKey=${bt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(xf,"useFetchApiConfig");import{useWallets as Fv}from"@rango-dev/wallets-react";import{useEffect as Ov,useRef as Uv}from"react";function bf(){let{connect:t,state:e}=Fv(),o=Uv({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);Ov(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(bf,"useForceAutoConnect");import{isApprovalTX as Qv,RouteEventType as Ef,StepEventType as If,StepExecutionEventStatus as zv,WidgetEvents as fi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Af}from"react";function el(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=ke.use.setNotification(),{findToken:n}=h();Af(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===If.TX_EXECUTION&&s.status===zv.TX_SENT&&!Qv(l)||s.type===If.SUCCEEDED){let c=t.find(f=>f.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(f=>f.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return Te.on(fi.StepEvent,r),()=>Te.off(fi.StepEvent,r)},[Te,t]),Af(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Ef.FAILED||s.type===Ef.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return Te.on(fi.RouteEvent,r),()=>Te.off(fi.RouteEvent,r)},[Te])}i(el,"useSubscribeToWidgetEvents");import{useManager as qv}from"@rango-dev/queue-manager-react";import{useEffect as Hv}from"react";function tl(){let{isSynced:t,syncNotifications:e}=ke(),{manager:o,state:n}=qv();Hv(()=>{ke.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ze(o))},[ke.persist.hasHydrated(),n.loadedFromPersistor,t])}i(tl,"useSyncNotifications");function ol(){bf(),wf(),el(),tl();let t=h().blockchains(),{canSwitchNetworkTo:e}=Cr(),[o,n]=Wf(""),[r,a]=Wf(),s=Kv(On),l=t.filter(Xv),{fetchApiConfig:p}=xf();Nf(()=>()=>Lp(),[]),Gv({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Nf(()=>(Rt.init(),ke.persist.hasHydrated()||ke.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===Vv(o)?.[0]&&n("")}),p().catch(console.log),Rt.destroy),[])}i(ol,"useBootstrap");import{styled as jv}from"@rango-dev/ui";var Mf=jv("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function gi(){ol();let{config:t}=h(),{activeTheme:e}=ar(t?.theme||{}),{activeLanguage:o}=Vt();return nl.createElement(Yv,{language:o},nl.createElement(Mf,{id:"swap-container",className:e()},nl.createElement(vf,null)))}i(gi,"Main");import{setSolanaSignerConfig as hw}from"@rango-dev/signer-solana";import il,{useEffect as $f,useMemo as yw}from"react";import{useState as Zv}from"react";var Jv=i(()=>{let[t,e]=Zv(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=yl(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Lf=Jv;import{checkWaitingForNetworkChange as Rv,makeQueueDefinition as ew}from"@rango-dev/queue-manager-rango-preset";import{Provider as tw}from"@rango-dev/queue-manager-react";import{useWallets as ow}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as nw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as rw}from"rango-types";import iw,{useMemo as aw}from"react";function sw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=ow(),l=aw(()=>ew({API_KEY:t.apiKey||bt("API_KEY"),BASE_URL:bt("BASE_URL"),emitter:{emit:Te.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,w)=>{if(a(k,w))return r(k,w)},"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),g=p.filter(rw),T=i(k=>{let{supportedChains:w}=s(k);return Nn(w)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:nw(g),getSupportedChainNames:T},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},S=ie.use.isActiveTab();return iw.createElement(tw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{Rv(k)},isPaused:!S},t.children)}i(sw,"QueueManager");var Bf=sw;import{useManager as mw}from"@rango-dev/queue-manager-react";import dw,{createContext as fw,useContext as gw}from"react";import{cancelSwap as lw,getCurrentBlockchainOfOrNull as pw,getCurrentStep as cw,getRelatedWalletOrNull as uw}from"@rango-dev/queue-manager-rango-preset";var hi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ze(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=jn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&lw(o)}getCurrentStepInfo(e){let o=cw(e);return{step:o,wallet:o?uw(e,o):null,network:o?pw(e,o):null}}};var Pf=fw(void 0);function rl(t){let{manager:e}=mw(),o=ie.use.isActiveTab(),n=j.use.retry(),{findToken:r}=h(),a=new hi(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=bl(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Vt().resetLanguage,T=ke().getNotifications(),C=ke().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:Rt.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:S=>u(S,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:T,clearAll:C}};return dw.createElement(Pf.Provider,{value:y},t.children)}i(rl,"WidgetInfo");function _f(){let t=gw(Pf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(_f,"useWidget");function yi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Lf();return $f(()=>{n&&r(n)},[n]),yw(()=>{Bl({API_KEY:o?.apiKey||kn,BASE_URL:o?.apiUrl||al})},[o.apiKey,o.apiUrl]),$f(()=>{t.config?.signers?.customSolanaRPC&&hw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),il.createElement(Un,{config:o,onUpdateState:e},il.createElement(Bf,{apiKey:o.apiKey},il.createElement(rl,null,t.children)))}i(yi,"WidgetProvider");function Df(t){let e=t.config?.externalWallets;return Si.createElement(rp,null,e?Si.createElement(gi,null):Si.createElement(yi,{config:t.config??Pi},Si.createElement(gi,null)))}i(Df,"Widget");function Ff(){let{on:t,off:e}=Te;return{on:t,off:e}}i(Ff,"useWidgetEvents");export{KV as EventSeverity,Qo as MainEvents,n2 as Networks,a2 as PendingSwapNetworkStatus,Mi as QuoteEventTypes,jV as RouteEventType,Ci as SUPPORTED_FONTS,YV as StepEventType,ZV as StepExecutionBlockedEventStatus,JV as StepExecutionEventStatus,he as UI_ID,Li as WalletEventTypes,t2 as WalletEvents,r2 as WalletTypes,Df as Widget,Qo as WidgetEvents,yi as WidgetProvider,Un as WidgetWallets,ra as customizedThemeTokens,e2 as readAccountAddress,oo as useWalletList,Cr as useWallets,_f as useWidget,Ff as useWidgetEvents,qf as widgetEventEmitter};
1
+ var eg=Object.defineProperty;var i=(t,e)=>eg(t,"name",{value:e,configurable:!0});import{EventSeverity as B2,RouteEventType as P2,StepEventType as _2,StepExecutionBlockedEventStatus as D2,StepExecutionEventStatus as $2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as O2,useWallets as br,Events as U2}from"@rango-dev/wallets-react";import{Networks as z2,WalletTypes as q2}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as G2}from"rango-types";import{UI_ID as tg}from"@rango-dev/ui";var Nn="c6381a79-2817-4602-83bf-6a641a409e32",gl="https://api.rango.exchange",hl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...tg};var yl="Roboto",bi=[{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 zi,Provider as jg}from"@rango-dev/wallets-react";import{isEvmBlockchain as Yg}from"rango-sdk";import Vn,{createContext as Zg,useEffect as up,useMemo as Jg,useRef as mp}from"react";import{useEffect as vg}from"react";import{create as Cg}from"zustand";import{subscribeWithSelector as Tg}from"zustand/middleware";import og from"mitt";var we=og(),ng={on:we.on,off:we.off};import{RangoClient as yg}from"rango-sdk";import{BlockchainCategories as cg,WalletState as St}from"@rango-dev/ui";import{readAccountAddress as ug}from"@rango-dev/wallets-react";import{detectInstallLink as mg,getCosmosExperimentalChainInfo as dg,isEvmAddress as fg,KEPLR_COMPATIBLE_WALLETS as ux,Networks as Nl}from"@rango-dev/wallets-shared";import Li from"bignumber.js";import{isCosmosBlockchain as gg}from"rango-types";import rg from"bignumber.js";var $e=new rg(0);import{WalletTypes as ig}from"@rango-dev/wallets-shared";var Sl=[ig.LEAP];import{BlockchainCategories as Ei,WalletState as pg}from"@rango-dev/ui";import{TransactionType as Wn}from"rango-sdk";function To(t){return Array.from(new Set(t))}i(To,"removeDuplicateFrom");function Ni(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ni,"areEqual");function xl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(xl,"debounce");function bt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(bt,"containsText");function kl(t,e){return t.toLowerCase()===e.toLowerCase()}i(kl,"exactText");function vl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(vl,"startWithText");var _=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),zo=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function wl(t,e,o){let n=!!e&&kl(e,t),r=!!o&&kl(o,t);return n!==r?n?-1:1:0}i(wl,"compareExactMatchText");function Ii(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(Ii,"compareContainsText");function Ai(t,e,o){let n=!!e&&vl(e,t),r=!!o&&vl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ai,"compareStartWithText");function bl(t,e,o){if(!o)return 0;let n=wl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=wl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Ai(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ii(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ai(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ii(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ai(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ii(o,t.address,e.address);if(r!==0)return r}return 0}i(bl,"compareWithSearchFor");var Mn=i((t,e)=>{switch(e){case Ei.ALL:return!0;case Ei.UTXO:return t===Wn.TRANSFER;case Ei.OTHER:return t!==Wn.TRANSFER&&t!==Wn.COSMOS&&t!==Wn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),El=i(t=>bi.find(o=>o.value===t)?.url,"getFontUrlByName");function Ln(t,e){let o=!!t.find(n=>n.state===pg.CONNECTED);return e===!1&&o}i(Ln,"isSingleWalletActive");function Bn(t,e){return e.find(o=>o.name===t)?.displayName}i(Bn,"getBlockchainDisplayNameFor");function Ze(t,e){return e.find(o=>o.name===t)?.shortName}i(Ze,"getBlockchainShortNameFor");function Il(t,e){return e.find(o=>o.name===t)?.logo}i(Il,"getBlockchainImage");function qo(t,e){return e.find(o=>o.id===t)?.title}i(qo,"getSwapperDisplayName");function Wi(t,e){return e.find(o=>o.name===t)??null}i(Wi,"findBlockchain");function Mi(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(Mi,"isTokenNative");function Ft(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(Ft,"createTokenHash");import{BigNumber as Al}from"bignumber.js";var Ho=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 Al(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Al(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 Pn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var yt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Go=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Bi(t){switch(!0){case t.connected:return St.CONNECTED;case t.connecting:return St.CONNECTING;case!t.installed:return St.NOT_INSTALLED;default:return St.DISCONNECTED}}i(Bi,"mapStatusToWalletState");function Wl(t,e,o,n){return o.filter(r=>!Sl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m,needsDerivationPath:f}=e(r),d=To(m.map(S=>S.type)),g=Bi(t(r));return{title:a,image:s,link:mg(l),state:g,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:d,needsDerivationPath:f}})}i(Wl,"mapWalletTypesToWalletInfo");function $n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i($n,"walletAndSupportedChainsNames");function Ml(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=ug(p),m=l.length>0,f=l.includes(c),d=c===Nl.Unknown;if(m&&!f&&!d)return;let S=c===Nl.Unknown&&fg(u);if(d&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(Ml,"prepareAccountsForWalletStore");function Jt(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:p}=r;p.forEach((u,c)=>{let m=u.from.blockchain,f=u.to.blockchain,d=a===o.swaps.length-1,g=c===p.length-1;(!d&&!g||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(l)}),Array.from(n)}i(Jt,"getQuoteWallets");function Fn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Fn,"isAccountAndWalletMatched");function Ll(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 Li(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Ll,"makeBalanceFor");function Bl(t){return{...t,loading:!1,error:!0}}i(Bl,"resetConnectedWalletState");var Pl=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 Li(a?.amount||$e).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),$e)||$e).toString();return hg(r)},"calculateWalletUsdValue");function hg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(hg,"numberWithThousandSeparator");var On=i((t,e)=>{let o=dg(Object.entries(t).map(([,n])=>n).filter(gg));return o&&o[e]?.experimental},"isExperimentalChain");function Un(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(Un,"formatBalance");function _l(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(_l,"compareTokenBalance");function Rt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Rt,"areTokensEqual");function Dl(t){return t.sort((e,o)=>+(o.state===St.CONNECTED)-+(e.state===St.CONNECTED)||+(o.state===St.DISCONNECTED||o.state===St.CONNECTING)-+(e.state===St.DISCONNECTED||e.state===St.CONNECTING))}i(Dl,"sortWalletsBasedOnConnectionState");function Qn(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(Qn,"getConciseAddress");function $l({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i($l,"getAddress");function zn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Li(o?.usdPrice??$e).multipliedBy(o?.amount).toString():""},r=o?Ft({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(zn,"makeTokensBalance");var Fl=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ol(t){return t.map(e=>e.state).join("-")}i(Ol,"hashWalletsState");function Ul(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(Ul,"filterBlockchainsByWalletTypes");function Ql(t,e){return e===cg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Mn(n,e))return!0;return!1})}i(Ql,"filterWalletsByCategory");var Pi={API_KEY:Nn};function Et(t){return Pi[t]||""}i(Et,"getConfig");function zl(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Pi=e,Pi}i(zl,"initConfig");var ql=20,Hl=25,_i="theme-widget",Vo=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Rt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Rt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Di=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Gl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var qn,Ot=i(()=>qn||(qn=new yg(Et("API_KEY"),Et("BASE_URL")),qn),"httpService");import{WidgetEvents as Vl}from"@rango-dev/queue-manager-rango-preset";var $i=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))($i||{}),Fi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Fi||{}),Xo=(r=>(r[r.RouteEvent=Vl.RouteEvent]="RouteEvent",r[r.StepEvent=Vl.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(Xo||{});var Sg=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"),Ut=Sg;var te=Ut(Cg()(Tg((t,e)=>({connectedWallets:[],balances:{},loading:!1,connectWallet:(o,n)=>{we.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)&&we.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:zn(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=>Fn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Ot().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(f=>{let d=o.find(S=>Fn(S,f)),g=p.find(S=>S.address===f.address&&S.blockChain===f.chain);return g?.failed&&d&&r&&a([d],n,!1),d&&g?{...f,explorerUrl:g.explorerUrl,balances:Ll(g,n),loading:!1}:f});return{loading:!1,balances:zn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(m=>Fn(m,c))?Bl(c):c);return{loading:!1,balances:zn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=Ft(o);return n[r]??null}}))));import{allProviders as kg}from"@rango-dev/provider-all";function Hn(t,e){let o=kg({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(Hn,"matchAndGenerateProviders");function Xl(t,e){return Hn(t,e).map(r=>r.config.type)}i(Xl,"configWalletsToWalletName");function Kl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Kl,"hashProviders");function Oi(t,e){let o=te.use.clearConnectedWallet(),n=Hn(t,e);return vg(()=>{o(),n=Hn(t,e)},[Kl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Oi,"useWalletProviders");import zg,{createContext as qg,useContext as Hg,useEffect as Gg,useRef as Vg}from"react";import{create as Ug}from"zustand";import{persist as Qg}from"zustand/middleware";var Ui={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},wg={clientUrl:void 0},xg={liquiditySources:void 0},jl=i((t,e,o)=>({config:{...Ui,...t},iframe:wg,campaignMode:xg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Gn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return To(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(Gn,"getUniqueSwappersGroups");function Yl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Yl,"sortLiquiditySourcesByGroupTitle");function Je(t,e){return e?.[t]==="hidden"}i(Je,"isFeatureHidden");function Zl(t,e){return e?.[t]==="enabled"}i(Zl,"isFeatureEnabled");var Jl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let n=e()._tokensMapByTokenHash,r=Array.from(n?.values()||[]),a=e()._blockchainsMapByName;if(!o||!o?.type)return r;let s=e().config,l=(o.type==="source"?s.from?.tokens:s.to?.tokens)??{},p=e().blockchains({type:o.type});return r.filter(c=>l&&Vo(c,l)||o.blockchain&&c.blockchain!==o.blockchain||!p.some(m=>m.name===c.blockchain)?!1:o.searchFor?!!(bt(c.symbol,o.searchFor)||bt(c.address||"",o.searchFor)||bt(c.name||"",o.searchFor)):!0).sort((c,m)=>{let f=e().isTokenPinned(c,o.type),d=e().isTokenPinned(m,o.type);if(f!==d)return f?-1:1;if(o.getBalanceFor){let T=o.getBalanceFor(c),k=o.getBalanceFor(m),v=_l(T,k);if(v!==0)return v}let g=a.get(c.blockchain),S=a.get(m.blockchain),C=Mi(c,g),y=Mi(m,S);if(C!==y)return C?-1:1;if(c.isPopular!==m.isPopular)return c.isPopular?-1:1;if(o.searchFor){let T=bl(c,m,o.searchFor);if(T)return T}return c.isSecondaryCoin!==m.isSecondaryCoin?c.isSecondaryCoin?1:-1:g&&S?g.sort-S.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=Ft(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Rt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Yl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ot().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s=[],l=n.popularTokens,p=n.swappers,u=new Set;n.tokens.forEach(m=>{u.add(m.blockchain),s.push(m)}),n.blockchains.sort((m,f)=>m.sort-f.sort).forEach(m=>{m.enabled&&u.has(m.name)&&r.set(m.name,m)}),s.forEach(m=>{let f=Ft(m);a.set(f,m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as bg,English as Eg,Finland as Ig,French as Ag,German as Ng,Greece as Wg,Italian as Mg,Japanese as Lg,Netherlands as Bg,Poland as Pg,Portuguese as _g,Russian as Dg,Spanish as $g,Swedish as Fg,Ukrainian as Og}from"@rango-dev/ui";var Rl=[{title:"English",label:"English",local:"en",SVGFlag:Eg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:$g},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Ag},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Lg},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:_g},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:bg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Dg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Ng},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Og},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Fg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Ig},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Bg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Wg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Mg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Pg}],ko="en";var ep=[.5,1,3],tp=1,op=5,np=100,rp=0;var ip=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:tp,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=To(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=Je("theme",n),s=Je("language",n),l=Je("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||ko},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||ko}})}}),"createSettingsSlice");function ap(t){return Ug()(Qg((...e)=>({...Jl(...e),...ip(...e),...jl(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(ap,"createAppStore");var sp=qg(null);function h(){let t=Hg(sp);if(Gg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function lp(t){let e=Vg();return e.current||(e.current=ap(t.config)),zg.createElement(sp.Provider,{value:e.current},t.children)}i(lp,"AppStoreProvider");import{create as Kg}from"zustand";var pp="rango-widget";var Ko=class{static{i(this,"TabManager")}tabId;state="not-initiated";lastTryClaim;events={};channel;constructor(e){this.channel=new BroadcastChannel(pp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}init=()=>{this.initEvents(),this.tryClaim()};forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};isClaimed=()=>this.state==="claimed";destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ae=Ut(Kg()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})}}))),eo=new Ko({onInit:()=>ae.setState({tabManagerInitiated:!0}),onClaim:()=>ae.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ae.setState({isActiveTab:!1})});var Xn=Zg({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function Rg(t){let{updateConfig:e,updateSettings:o,fetch:n}=h(),r=h().blockchains(),{findToken:a}=h(),s=h().config,l={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:p}=Oi(s.wallets,l),{connectWallet:u,disconnectWallet:c}=te(),m=mp(),f=mp();up(()=>{n().catch(console.log)},[]),up(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config]);let d=r.filter(Yg).map(y=>y.name),g=i((y,T,k,v,I)=>{if(T===zi.ACCOUNTS)if(k){let N=$n(I.supportedBlockchains),x=Ml(y,k,d,N,I.isContractWallet);x.length&&u(x,a)}else c(y),f.current?f.current(y):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===zi.ACCOUNTS&&v.connected){let N=`${y}-${v.network}-${k}`;v.connected&&(m.current?m.current(N):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(T===zi.NETWORK&&v.network){let N=`${y}-${v.network}`;m.current?m.current(N):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(y,T,k,v,I)},"onUpdateState"),S=ae.use.isActiveTab(),C=Jg(()=>({onConnectWallet:y=>{m.current=y},onDisconnectWallet:y=>{f.current=y}}),[]);return Vn.createElement(Xn.Provider,{value:C},Vn.createElement(jg,{allBlockChains:r,providers:p,onUpdateState:g,autoConnect:!!S},t.children))}i(Rg,"Main");function Kn(t){let{config:e,...o}=t;return Vn.createElement(lp,{config:e},Vn.createElement(Rg,{...o,config:e}))}i(Kn,"WidgetWallets");import xi from"react";import eh,{Fragment as th}from"react";import{MemoryRouter as oh,useInRouterContext as nh}from"react-router";function dp({children:t}){let o=nh()?th:oh;return eh.createElement(o,null,t)}i(dp,"AppRouter");import{I18nManager as hw}from"@rango-dev/ui";import ml from"react";import He from"react";import{useRoutes as ow}from"react-router-dom";var q={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as xo,useRef as ir}from"react";import At from"bignumber.js";import{create as ah}from"zustand";import{subscribeWithSelector as sh}from"zustand/middleware";import{getLastSuccessfulStep as ih}from"@rango-dev/queue-manager-rango-preset";import VE from"bignumber.js";function qi(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(qi,"getFeeLabel");var Hi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],fp=30;import{i18n as lt}from"@lingui/core";import{RouteEventType as WE}from"@rango-dev/queue-manager-rango-preset";import Fe from"bignumber.js";import{PendingSwapNetworkStatus as Zn}from"rango-types";function jn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jn,"isValidAddress");import{i18n as Be}from"@lingui/core";var oe=i(()=>({genericServerError:Be.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Be.t("Please reset your liquidity sources."),description:Be.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Be.t("No Routes Found."),description:Be.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:Be.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Be.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Be.t("High Price Impact"),title:Be.t("Price impact is too high!"),description:Be.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Be.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Be.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Be.t("USD Price Unknown"),title:Be.t("USD Price Unknown, Cannot calculate Price Impact."),description:Be.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Be.t("Confirm USD Price Unknown")}}),"errorMessages");function gp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(gp,"getQuoteErrorMessage");import{i18n as Yn}from"@lingui/core";var to=i(()=>({connectWallet:Yn.t("Connect Wallet"),swap:Yn.t("Swap"),swapAnyway:Yn.t("Swap anyway"),ethWarning:Yn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function hp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Fe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Fe(1e3)))??!1}i(hp,"hasHighValueLoss");function yp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(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(yp,"hasLimitError");function Sp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Fe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Fe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Fe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Fe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=lt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=lt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=lt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=lt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Sp,"getLimitErrorMessage");function Cp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:to().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:to().swap,action:"confirm-swap",disabled:!0}:s?{title:to().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:to().ethWarning,action:"confirm-warning",disabled:!1}:{title:to().swap,action:"confirm-swap",disabled:!1}:{title:to().connectWallet,action:"connect-wallet",disabled:!1}}i(Cp,"getSwapButtonState");function Gi(t,e,o){return!((!o||o.lte($e))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Gi,"canComputePriceImpact");function Vi(t,e){let o=$e;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 Fe(r.amount).multipliedBy(a||0))}return o}i(Vi,"getUsdFeeOfStep");function Jn(t,e){return t.reduce((o,n)=>o.plus(Vi(n,e)),$e)}i(Jn,"getTotalFeeInUsd");function Xi(t){let e=$e;return e=e.plus(new Fe(t.amount).multipliedBy(t.price||0)),e}i(Xi,"getUsdFee");function Tp(t){return t.reduce((e,o)=>e.plus(Xi(o)),$e)}i(Tp,"getTotalFeesInUsd");function kp(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(kp,"getFeesGroup");function vp(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(vp,"checkSlippageErrors");function wp(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(wp,"checkSlippageWarnings");function Rn(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(Rn,"getMinRequiredSlippage");function xp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(xp,"hasProperSlippage");function bp(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:f,destination:d,enableCentralizedSwappers:g}=t,S=a?.reduce((T,k)=>(T[k.chain]=k.address,T),{}),C=[];return r?.forEach(T=>{C.push({blockchain:T.chain,addresses:[T.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:C,selectedWallets:S??{},slippage:u.toString(),...d&&{destination:d},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(T=>!s.includes(T)),swappersGroupsExclude:!1},enableCentralizedSwappers:g}}i(bp,"createQuoteRequestBody");function Ep(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Ep,"getWalletsForNewSwap");function vo(t){return t?.outputAmount||null}i(vo,"getQuoteOutputAmount");function Ip(t,e){return new Fe(e).div(new Fe(t)).minus(1).multipliedBy(100).toNumber()}i(Ip,"getPercentageChange");function Ap(t,e){let o=vo(t),n=vo(e);if(!o||!n)return!1;let r=Re(o,n);return r?r<=-1:!0}i(Ap,"isOutputAmountChangedALot");function Np(t,e,o){let n=t.validationStatus,r=Jt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>_p(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Fe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Fe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=lt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=lt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=lt.t(" for input and network fee")),lt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Ze(s.asset.blockchain,o)}})})}i(Np,"generateBalanceWarnings");function er(t,e){return(t?new Fe(t):$e).multipliedBy(e||0)}i(er,"calcOutputUsdValue");function jo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Zn.NetworkChanged}i(jo,"isNetworkStatusInWarningState");function Wp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),jo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Zn.WaitingForConnectingWallet:n=n||lt.t("Waiting for connecting wallet");break;case Zn.WaitingForQueue:n=n||lt.t("Waiting for other running tasks to be finished");break;case Zn.WaitingForNetworkChange:n=n||lt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(Wp,"getSwapMessages");function Mp(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(Mp,"getLastConvertedTokenInFailedSwap");function Lp(t){return t.status==="failed"}i(Lp,"shouldRetrySwap");function Bp(t,e,o,n,r,a){if(!n||t)return!0;let s=Jt({filter:"all",quote:n}),l=Jt({filter:"required",quote:n}),p=s.every(m=>r.some(f=>f.chain===m)),u=l.every(m=>r.some(f=>f.chain===m)),c=o&&a?jn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Bp,"isConfirmSwapDisabled");function Pp(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Pp,"isTokensIdentical");function or(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(or,"getQuoteToTokenUsdPrice");function Ki(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Ki,"isNumberOfSwapsChanged");function ji(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ni(o,n)}i(ji,"isQuoteSwappersUpdated");function Yi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ni(o,n)}i(Yi,"isQuoteInternalCoinsUpdated");function $p(t,e){return Ki(t,e)||ji(t,e)||Yi(t,e)}i($p,"isQuoteChanged");function _p(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(_p,"getRequiredBalanceOfWallet");function It(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(It,"getPriceImpactLevel");function nr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=ih(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Wi(a?a.toBlockchain:n.fromBlockchain,e),p=Wi(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(nr,"createRetryQuote");function wo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=oo(o,t.requestAmount),l=oo(n,t?.outputAmount??"");if(t&&s&&l){let c=Re(s.toString(),l.toString());if(!!c&&hp(s,c)){let f=Jn(t?.swaps,r),d=It(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:f,warningLevel:d}}}else if(t&&(!s||!l))return{type:1};let p=Rn(t.swaps),u=a>op;if(xp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:wp(t,a),minRequiredSlippage:p};return null}i(wo,"generateQuoteWarnings");function Re(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ip(t.toString(),e.toString());return n&&n<0?n:null}i(Re,"getPriceImpact");var Fp=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"),rr=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),Op=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"),Up=i(t=>{let e=i((o,n)=>{let r=Hi.indexOf(o.value),a=Hi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var oo=i((t,e)=>t?.usdPrice?new At(e||$e).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Y=Ut(ah()(sh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new At(0),outputUsdValue:new At(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=$e;return Go(o.inputAmount)?(e&&(n=e?.outputAmount?new At(e?.outputAmount):null,r=er(e?.outputAmount,or(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 At(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:oo(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new At(0),outputUsdValue:new At(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:oo(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:oo(n??null,s),outputUsdValue:new At(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?oo(e.toToken,e.outputAmount?.toString()||""):new At(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),Qp=Y.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&we.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&&we.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 zp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=Y(),c=h().config,m=h().fetchStatus,f=h().blockchains(),d=h().tokens(),{findToken:g}=h(),{setAffiliateRef:S,setAffiliatePercent:C,setAffiliateWallets:y}=h(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,I=c?.to?.blockchains,N=ir(void 0),x=ir(void 0),w=ir(void 0),b=ir(void 0);xo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),xo(()=>{if(m==="success"){r();let E=f.find(A=>A.name===c?.from?.blockchain),P=c?.from?.token,Q=P&&g(P);(E||!E&&w.current)&&n(E??null),Q?a({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&N.current&&a({token:null}),w.current=c?.from?.blockchain,N.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),xo(()=>{Vo(s,T)&&a({token:null}),Di(p,k)&&n(null)},[T,k]),xo(()=>{Vo(l,v)&&a({token:null}),Di(u,I)&&o(null)},[v,I]),xo(()=>{if(m==="success"){r();let E=f.find(A=>A.name===c?.to?.blockchain),P=c?.to?.token,Q=P&&g(P);(E||!E&&b.current)&&o(E??null),Q?e({token:Q,meta:{blockchains:f,tokens:d}}):!Q&&x.current&&e({token:null}),b.current=c?.to?.blockchain,x.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),xo(()=>{S(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(zp,"useSyncStoresWithConfig");import{useEffect as Ri,useRef as lh}from"react";import{useInRouterContext as ph,useLocation as ch,useSearchParams as uh}from"react-router-dom";function Zi(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Zi,"convertTokenSearchParamToAsset");function Ji(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ji,"tokenToSearchParam");function ea(){let t=ch(),[e,o]=uh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:f}=Y(),d=h().fetchStatus,g=h().blockchains(),S=h().tokens(),C=ph(),{updateIframe:y,updateCampaignMode:T}=h(),k=h().isInCampaignMode(),v=lh(),{findToken:I}=h(),N=i(()=>{let w={};for(let[B,Z]of e.entries())B.startsWith("utm_")&&(w[B]=Z);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),P=e.get("fromToken"),Q=e.get("toBlockchain"),A=e.get("toToken"),z=e.get("autoConnect"),j=e.get("clientUrl"),G=e.get("liquiditySources");return{fromAmount:b,fromBlockchain:E,fromToken:P,toBlockchain:Q,toToken:A,autoConnect:z,clientUrl:j,liquiditySources:G,utmQueryParams:w}},"getUrlSearchParams"),x=i(w=>{for(let b in w)w[b]||delete w[b];o(w,{replace:!0})},"updateUrlSearchParams");Ri(()=>{let{autoConnect:w,clientUrl:b,utmQueryParams:E}=N();C&&d==="success"&&x({fromBlockchain:n?.name,fromToken:Ji(a),toBlockchain:r?.name,toToken:Ji(s),fromAmount:l,autoConnect:w??void 0,clientUrl:b??void 0,liquiditySources:k?v.current:void 0,...E})},[t.pathname,l,n,a,r,s,k]),Ri(()=>{if(!C)return;let w=N();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&f(w.fromAmount),d==="success"){let b=g.find(A=>A.name===w.fromBlockchain),E=w.fromToken&&b?I(Zi(w.fromToken,b)):void 0,P=g.find(A=>A.name===w.toBlockchain),Q=w.toToken&&P?I(Zi(w.toToken,P)):void 0;b&&(p(b),E&&c({token:E,meta:{blockchains:g,tokens:S}})),P&&(u(P),Q&&m({token:Q,meta:{blockchains:g,tokens:S}}))}},[d]),Ri(()=>{let{clientUrl:w,liquiditySources:b}=N();y("clientUrl",w||void 0),T("liquiditySources",b?.split(",")??void 0)},[])}i(ea,"useSyncUrlAndStore");import{i18n as os}from"@lingui/core";import{useManager as DC}from"@rango-dev/queue-manager-react";import{Alert as Tm,Button as $C,css as rs,Divider as ns,IconButton as km,styled as FC,Typography as OC,WalletIcon as UC}from"@rango-dev/ui";import Ie,{useEffect as Xr,useLayoutEffect as QC,useRef as zC,useState as dn}from"react";import{useNavigate as qC}from"react-router-dom";import{i18n as Tt}from"@lingui/core";import{Alert as _a,BalanceErrors as TS,Button as Jc,ChevronDownIcon as kS,ChevronLeftIcon as vS,CloseIcon as wS,Divider as tn,IconButton as Rc,MessageBox as xS,PasteIcon as bS,Typography as Er,WalletIcon as ES}from"@rango-dev/ui";import $,{useCallback as IS,useEffect as eu,useMemo as AS,useRef as NS,useState as uo}from"react";import{useNavigate as WS}from"react-router-dom";import{i18n as ar}from"@lingui/core";function sr(t){switch(t.type){case 0:return ar.t("Route has been updated.");case 3:return ar.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return ar.t("Route swappers has been updated.");case 2:return ar.t("Route internal coins has been updated.");default:return""}}i(sr,"getQuoteUpdateWarningMessage");import{Modal as dh}from"@rango-dev/ui";import fh from"react";function re(t){let{watermark:e}=ae();return fh.createElement(dh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import ur,{useRef as yh}from"react";import*as bo from"@radix-ui/react-collapsible";import{keyframes as Hp,styled as lr}from"@rango-dev/ui";var ta=300,gh=Hp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),hh=Hp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Gp=lr(bo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),oa=lr(bo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),pr=lr(bo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${gh} ${ta}ms ease-out`},false:{animation:`${hh} ${ta}ms ease-out`}}}}),cr=lr("div",{transition:`all ${ta}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function mr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=yh(null);return ur.createElement(Gp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ur.createElement(oa,{className:"collapsible_trigger",onClick:a},s),ur.createElement(pr,{className:"collapsible_content",open:e},r),l==="bottom"&&ur.createElement(oa,{className:"collapsible_trigger",onClick:a},s))}i(mr,"CustomCollapsible");import{css as Vp,darkTheme as Yo,IconButton as Sh,styled as et,TextField as Ch}from"@rango-dev/ui";var Xp=et("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Kp=et("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Th=et("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Yo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${Yo} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${Yo} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),jp=et(Th,{alignSelf:"stretch",minHeight:"93px"}),Yp=et("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Zp=et(Sh,{position:"absolute",left:"$20"}),Jp=et("div",{paddingTop:"$20"}),Rp=Vp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ec=et("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),tc=Vp({paddingTop:"$5"}),oc=et("div",{display:"flex"}),nc=et(Ch,{backgroundColor:"$neutral100",padding:"$15"}),rc=et("div",{overflow:"visible",width:"100%"}),ic=et("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Yo} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Yo} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});import{i18n as pt}from"@lingui/core";import{Button as hS,Divider as Ba,Image as yS,MessageBox as xr,SelectableWallet as SS,Typography as jc,WalletState as Yc}from"@rango-dev/ui";import ue,{useEffect as Zc,useState as co}from"react";import{WalletState as na}from"@rango-dev/ui";import{useWallets as kh}from"@rango-dev/wallets-react";import{detectMobileScreens as vh,KEPLR_COMPATIBLE_WALLETS as wh,WalletTypes as Eo}from"@rango-dev/wallets-shared";import{useCallback as xh,useEffect as bh,useState as Eh}from"react";var Ih=Object.values(Eo);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=kh(),{connectedWallets:c}=te(),m=h().blockchains(),f=Xl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Ih,d=Wl(s,p,f,e);d=vh()?d.filter(x=>x.showOnMobile!==!1&&s(x.type).installed):d;let g=Dl(d),[S,C]=Eh(""),y=i(x=>!c.find(w=>w.walletType===x&&w.chain===e),"isExperimentalChainNotAdded"),T=i(async(x,w)=>{let b=s(x);try{if(S&&C(""),b.connected)await l(x);else{if(Ln(d,a.multiWallets))return;o?.(x),await u(x,void 0,w),n?.(x)}}catch(E){r?.(E?.message),C("Error: "+E?.message)}},"handleClick"),k=xh(()=>{let x=d?.filter(w=>w.state===na.CONNECTING)||[];for(let w of x)l(w.type)},[Ol(d)]),v=i(async x=>{s(x).connected&&await l(x)},"disconnectWallet");bh(()=>()=>{k()},[]);let I=i(x=>{let w=x.find(E=>E.type===Eo.DEFAULT);return!w||w.state===na.NOT_INSTALLED?!1:x.filter(E=>E.state!=na.NOT_INSTALLED&&![Eo.DEFAULT,Eo.WALLET_CONNECT_2,Eo.LEDGER].includes(E.type)&&p(E.type).supportedChains.filter(P=>P.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),N=i((x,w,b)=>On(b,w)&&y(x)&&!wh.includes(x)||x==Eo.DEFAULT&&!I(d),"shouldExcludeWallet");return{list:g.filter(x=>!N(x.type,e??"",m)),error:S,handleClick:T,disconnectConnectingWallets:k,disconnectWallet:v}}i(no,"useWalletList");import{i18n as zc}from"@lingui/core";import{Divider as sS,getCategoriesCount as lS,SelectableCategoryList as pS,styled as Hc,Typography as cS,Wallet as uS,WalletState as qc}from"@rango-dev/ui";import nt,{useState as en}from"react";import{useManager as Ly}from"@rango-dev/queue-manager-react";import{BottomLogo as By,Divider as Wc,Header as Py}from"@rango-dev/ui";import Te,{useEffect as ba,useRef as Mc,useState as _y}from"react";import{useRef as Ah}from"react";function dr(){return window.self!==window.top}i(dr,"isAppLoadedIntoIframe");function ra(){let t=Ah(null),{iframe:e}=h(),o=dr()&&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(ra,"useIframe");import{useNavigate as Nh}from"react-router-dom";function tt(){let t=Nh();return()=>t(-1)}i(tt,"useNavigateBack");import{createTheme as ua,darkTheme as qh,lightTheme as Hh}from"@rango-dev/ui";import{useEffect as Gh,useState as Vh}from"react";import{theme as Qh,darkColors as zh}from"@rango-dev/ui";import pa from"react";function Wh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Wh,"expandShortHexColor");function Mh(t){return/[0-9]+$/.test(t)}i(Mh,"isOverridingColor");function Lh(t,e){return t.padStart(e,"0")}i(Lh,"pad");function ia(t){let e=Math.min(Math.max(Math.round(t),0),255);return Lh(e.toString(16),2)}i(ia,"intToHex");function Bh(t){return`#${ia(t.red)}${ia(t.green)}${ia(t.blue)}`}i(Bh,"rgbToHex");function Ph(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(Ph,"hexToRGB");function _h(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(_h,"generateShade");function Dh(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(Dh,"generateTint");function $h(t){return ac(t,_h)}i($h,"calculateShades");function Fh(t){return ac(t,Dh)}i(Fh,"calculateTints");function ac(t,e){let o=Ph(t),n=[];for(let r=1;r<9;r++)n.push(Bh(e(o,r)));return n}i(ac,"calculateColors");function aa(t,e,o){let a=Fh(t).reverse().concat(t),s=$h(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(aa,"createTintsAndShades");function sa(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)&&!Mh(r)){let p=Wh(a);Object.assign(n,aa(p,r,s))}}return{...n,...e}}i(sa,"expandToGenerateThemeColors");var sc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Oh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=sc(o%52)+e;return sc(o%52)+e},"toAlphabeticName"),Uh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),la=i(t=>Oh(Uh(5381,JSON.stringify(t))>>>0),"toHash");function ca(t){let e=Qh.colors,o={...e,...zh},n,r;if(t?.light){let s={colors:sa(e,t.light)};n={id:`${_i}-light-${la(s)}`,tokens:s}}if(t?.dark){let s={colors:sa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${_i}-dark-${la(s)}`,tokens:s}}return{light:n,dark:r}}i(ca,"customizedThemeTokens");function lc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>pa.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(pa.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(pa.cloneElement(e,{key:l}))}}),o}i(lc,"joinList");function fr(t){let{colors:e,fontFamily:o=yl,borderRadius:n=ql,secondaryBorderRadius:r=Hl}=t,[a,s]=Vh("light"),{theme:l}=h(),{dark:p,light:u}=ca(e),c=ua({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,Hh.className],f=[c.className,qh.className];if(u){let g=ua(u.id,u.tokens);m.push(g.className)}if(p){let g=ua(p.id,p.tokens);f.push(g.className)}return Gh(()=>{let g=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),S=f.join(" ");return l==="auto"?a==="dark"?S:g:l==="dark"?S:g},"getActiveTheme")}}i(fr,"useTheme");var ot=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 pc}from"@lingui/core";import{Alert as Xh,Button as Kh}from"@rango-dev/ui";import cc from"react";function ma(t){return cc.createElement(Xh,{action:cc.createElement(Kh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},pc.t("Activate this tab")),type:"warning",variant:"alarm",title:pc.t("Another tab is open and handles transactions.")})}i(ma,"ActivateTabAlert");import{i18n as da}from"@lingui/core";import{Button as jh,Divider as Yh,MessageBox as Zh}from"@rango-dev/ui";import gr from"react";function fa(t){let{open:e,onClose:o,onConfirm:n}=t;return gr.createElement(re,{open:e,dismissible:!0,onClose:o,container:_()},gr.createElement(Zh,{title:da.t("Activate current tab"),type:"warning",description:da.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.")},gr.createElement(Yh,{size:20}),gr.createElement(jh,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},da.t("Confirm"))))}i(fa,"ActivateTabModal");import{ChevronLeftIcon as ey}from"@rango-dev/ui";import yc from"react";import{css as Jh,darkTheme as uc,IconButton as Rh,styled as ro}from"@rango-dev/ui";var Ct=ro(Rh,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${uc} &`]:{backgroundColor:"$neutral"}}}),mc=ro("div",{position:"absolute",background:"$secondary500",[`.${uc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Io=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),dc=ro("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),fc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),gc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),hc=Jh({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),hr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ga(t){return yc.createElement(Ct,{variant:"ghost",size:"small",onClick:t.onClick},yc.createElement(ey,{color:"black",size:16}))}i(ga,"BackButton");import{i18n as ty}from"@lingui/core";import{Button as oy,Typography as ny}from"@rango-dev/ui";import ha from"react";function ya(t){return ha.createElement(Io,null,ha.createElement(oy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ha.createElement(ny,{variant:"label",size:"medium",color:"error500"},ty.t("Cancel"))))}i(ya,"CancelButton");import{i18n as ry}from"@lingui/core";import{Image as iy,Tooltip as ay,WalletIcon as sy}from"@rango-dev/ui";import io from"react";function Sa(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:hc()},o.map(r=>io.createElement(hr,{key:r.title},io.createElement(iy,{src:r.image,size:14})))):ry.t("Connect Wallet");return io.createElement(ay,{container:t.container,side:"bottom",content:n},io.createElement(Ct,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(mc,null),io.createElement(sy,{size:18,color:"black"})))}i(Sa,"WalletButton");import{i18n as Sr}from"@lingui/core";import{NotificationsIcon as wy,Popover as xy,SettingsIcon as by,Tooltip as Cr,TransactionIcon as Ey}from"@rango-dev/ui";import We from"react";import{Notifications as uy}from"@rango-dev/ui";import my from"react";import{useNavigate as dy}from"react-router-dom";import{create as ly}from"zustand";import{persist as py,subscribeWithSelector as cy}from"zustand/middleware";var xe=Ut(ly()(py(cy((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>a.creationTime-r.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function Ca(){let t=dy(),{getNotifications:e,clearNotifications:o}=xe(),n=e(),r=h().blockchains(),{findToken:a}=h();return my.createElement(uy,{list:n,getBlockchainImage:l=>Il(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Ca,"NotificationContent");import{useManager as fy}from"@rango-dev/queue-manager-react";import{InProgressIcon as gy}from"@rango-dev/ui";import Sc from"react";var hy=i(()=>{let{manager:t}=fy();return ot(t).map(({swap:o})=>o).find(o=>o.status==="running")?Sc.createElement(gc,null,Sc.createElement(gy,{color:"info",size:6})):null},"InProgressTransactionBadge"),Cc=hy;import{EventSeverity as yy}from"@rango-dev/queue-manager-rango-preset";import{Typography as Sy}from"@rango-dev/ui";import Tc from"react";function kc(){let{getNotifications:t}=xe(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===yy.WARNING);return o?Tc.createElement(dc,{isSever:n},Tc.createElement(Sy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(kc,"NotificationsBadge");import{RefreshProgressButton as Cy}from"@rango-dev/ui";import Ta,{useEffect as Ty,useState as vc}from"react";var ky=1e3,wc=60,vy=100;function yr({onClick:t}){let[e,o]=vc(0),[n,r]=vc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");Ty(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===wc&&l()},ky):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 Ta.createElement(Ct,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Ta.createElement(fc,{onTransitionEnd:()=>r(!1),isRefetched:n},Ta.createElement(Cy,{size:22,color:t?"black":"gray",progress:e/wc*vy})))}i(yr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Je("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Cr,{container:a||_(),side:"top",content:Sr.t("Refresh")},We.createElement(yr,{onClick:e})),!l&&We.createElement(xy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:_(),content:We.createElement(Ca,null)},We.createElement("div",null,We.createElement(Cr,{container:_(),side:"top",content:Sr.t("Notifications")},We.createElement(Ct,{size:"small",variant:"ghost"},We.createElement(wy,{size:18,color:"black"}),We.createElement(kc,null))))),!r.includes("settings")&&We.createElement(Cr,{container:_(),side:"top",content:Sr.t("Settings")},We.createElement(Ct,{size:"small",variant:"ghost",onClick:n},We.createElement(by,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Cr,{container:_(),side:"top",content:Sr.t("Transactions History")},We.createElement(Ct,{size:"small",variant:"ghost",onClick:o},We.createElement(Ey,{size:18,color:"black"}),We.createElement(Cc,null))))}i(ao,"HeaderButtons");import{i18n as ka}from"@lingui/core";import{Divider as bc,MessageBox as Ny,RefreshIcon as Wy}from"@rango-dev/ui";import Ao from"react";import{Button as Iy,styled as Ay}from"@rango-dev/ui";var xc=Ay(Iy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function va(t){let{open:e,onClose:o}=t;return Ao.createElement(re,{open:e,dismissible:!0,onClose:o,container:_()},Ao.createElement(Ny,{title:ka.t("Something went wrong"),type:"error",description:ka.t("Something went wrong. Please refresh the app.")},Ao.createElement(bc,{size:30}),Ao.createElement(xc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Ao.createElement(Wy,{size:20,color:"primary"}),Ao.createElement(bc,{size:4,direction:"horizontal"}),ka.t("Refresh"))))}i(va,"RefreshModal");function wa(t){let e=t.target;if(e){let o=e.scrollTop,n=_();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(wa,"onScrollContentAttachStatusToContainer");import{css as My,styled as xa}from"@rango-dev/ui";var Ec="700px",Tr=My({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ic=xa("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Ec},fixed:{height:Ec}}}}),Ac=xa("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Nc=xa("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 ce(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ra(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=_y(!1),c=te.use.connectedWallets(),{config:{features:m,theme:f}}=h(),{watermark:d}=ae(),g=d==="FULL",{activeTheme:S}=fr(f||{}),C=Je("connectWalletButton",m),{isActiveTab:y,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:I}=ae(),N=tt(),{manager:x}=Ly(),b=ot(x).map(({swap:j})=>j).some(j=>j.status==="running"),E=i(()=>I(eo.forceClaim,b),"onActivateTab"),P=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,A=Mc(null),z=Mc(null);return ba(()=>(dr()&&z.current&&e(z.current),()=>{o()}),[]),ba(()=>(A.current?.addEventListener("scroll",wa),()=>{A.current?.removeEventListener("scroll",wa)}),[]),ba(()=>{u(l==="failed")},[l]),Te.createElement(Ic,{height:s,id:he.SWAP_BOX_ID,className:`${S()} ${Tr()}`,ref:z},Te.createElement(Py,{prefix:Te.createElement(Te.Fragment,null,Q&&Te.createElement(ga,{onClick:()=>{N(),r.onBack&&r.onBack()}})),title:r.title,suffix:Te.createElement(Te.Fragment,null,r.suffix,r.onWallet&&!C&&Te.createElement(Sa,{container:_(),onClick:P,isConnected:!!c?.length}),r.onCancel&&Te.createElement(ya,{onClick:r.onCancel}))}),Te.createElement(Ac,{ref:A},n),Te.createElement(fa,{open:k,onClose:()=>v(!1),onConfirm:E}),Te.createElement(Nc,null,Te.createElement("div",{className:"footer__content"},T&&!y&&Te.createElement("div",{className:"footer__alert"},Te.createElement(ma,{onActivateTab:E}),Te.createElement(Wc,{size:10})),a),Te.createElement(Wc,{size:12}),Te.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},Te.createElement(By,null))),Te.createElement(va,{open:p,onClose:()=>u(!1)}))}i(ce,"Layout");import{styled as Dy}from"@rango-dev/ui";var Lc="$20 $20 $10 $20",Zo=Dy("div",{padding:Lc,overflowY:"auto",flexGrow:1});import{styled as $y}from"@rango-dev/ui";var fe=$y("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 Qy,Divider as _c,Image as zy,MessageBox as qy,Select as Hy,TextField as Gy}from"@rango-dev/ui";import ze,{useEffect as Vy,useState as Dc}from"react";import{Namespace as No}from"@rango-dev/wallets-shared";var Jo={[No.Evm]:{mainBlockchain:"ETH",title:"Ethereum",derivationPaths:[{id:"metamask",label:"Metamask (m/44'/60'/0'/0/index)",generateDerivationPath:t=>`44'/60'/0'/0/${t}`},{id:"ledgerLive",label:"LedgerLive (m/44'/60'/index'/0/0)",generateDerivationPath:t=>`44'/60'/${t}'/0/0`},{id:"legacy",label:"Legacy (m/44'/60'/0'/index)",generateDerivationPath:t=>`44'/60'/0'/${t}`}]},[No.Solana]:{mainBlockchain:"SOLANA",title:"Solana",derivationPaths:[{id:"(m/44'/501'/index')",label:"(m/44'/501'/index')",generateDerivationPath:t=>`44'/501'/${t}'`},{id:"(m/44'/501'/0'/index)",label:"(m/44'/501'/0'/index)",generateDerivationPath:t=>`44'/501'/0'/${t}`}]},[No.Cosmos]:{mainBlockchain:"COSMOS",title:"Cosmos"},[No.Utxo]:{mainBlockchain:"BTC",title:"Utxo"},[No.Starknet]:{title:"Starknet",mainBlockchain:"STARKNET"},[No.Tron]:{title:"Tron",mainBlockchain:"TRON"}};import{keyframes as Fy,styled as kr}from"@rango-dev/ui";var CW=kr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Wo=kr("div",{position:"relative"}),Oy=Fy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Mo=kr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Oy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),vr=kr("div",{"& img":{borderRadius:"50%"}});import{styled as Bc,Typography as Uy}from"@rango-dev/ui";var Pc=Bc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ea=Bc(Uy,{paddingLeft:"$10"}),Ia={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Fc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function $c(t){let e=t?Jo[t].derivationPaths:null;return e?[...e,Fc]:[]}i($c,"getDerivationPaths");function so(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Dc(null),[u,c]=Dc("0"),m=l===Fc.id,f=$c(n),d=i(({value:S})=>{let C=f?.find(y=>y.id===S);C&&p(C.id)},"handleDerivationPathItemClick"),g=i(()=>{let S=f.find(C=>C.id===l);if(S)o(S.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return Vy(()=>{p($c(n)[0]?.id||null)},[n]),ze.createElement(re,{open:s,onClose:e,container:document.getElementById(he.SWAP_BOX_ID)||document.body},ze.createElement(_c,{size:20}),ze.createElement(qy,{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:ze.createElement(Wo,null,ze.createElement(vr,null,ze.createElement(zy,{src:r,size:45})),ze.createElement(Mo,null))}),ze.createElement(Pc,null,ze.createElement(Ea,{variant:"body",size:"xsmall",color:"$neutral600"},Lo.t("Choose Derivation Path Template")),ze.createElement(Hy,{value:l||"",options:f.map(S=>({value:S.id,label:S.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ia}}),ze.createElement(_c,{size:20}),ze.createElement(Ea,{variant:"body",size:"xsmall",color:"$neutral600"},m?Lo.t("Enter Path"):Lo.t("Enter Index")),ze.createElement(Gy,{type:m?"text":"number",variant:"contained",value:u,onChange:S=>c(S.target.value),style:Ia})),ze.createElement(Qy,{type:"primary",onClick:g,disabled:!f||!l||!u},Lo.t("Confirm")))}i(so,"WalletDerivationPathModal");import{Divider as jy}from"@rango-dev/ui";import Na from"react";import{i18n as Bo}from"@lingui/core";import{Image as Xy,MessageBox as Aa,WalletState as Ky}from"@rango-dev/ui";import lo from"react";function Oc(t){let{state:e,image:o,error:n}=t;return e===Ky.CONNECTED?lo.createElement(Aa,{type:"success",title:Bo.t("Wallet Connected"),description:Bo.t("Your wallet is connected, you can use it to swap.")}):n?lo.createElement(Aa,{type:"error",title:Bo.t("Failed to Connect"),description:n||Bo.t("Your wallet is not connected. Please try again.")}):lo.createElement(Aa,{type:"loading",title:Bo.t("Connecting to your wallet"),description:Bo.t("Click connect in your wallet popup."),icon:lo.createElement(Wo,null,lo.createElement(vr,null,lo.createElement(Xy,{src:o,size:45})),lo.createElement(Mo,null))})}i(Oc,"ModalContent");function Ro(t){let{open:e,onClose:o,...n}=t;return Na.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Na.createElement(Oc,{...n}),Na.createElement(jy,{direction:"vertical",size:32}))}i(Ro,"WalletModal");import{i18n as Wa}from"@lingui/core";import{Button as Zy,Checkbox as Jy,Divider as Ry,Image as Qc,ListItemButton as eS,MessageBox as tS,Radio as oS,RadioRoot as nS}from"@rango-dev/ui";import Me,{useMemo as rS,useState as iS}from"react";import{styled as Yy}from"@rango-dev/ui";var Uc=Yy("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var aS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function po(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=iS([]),a=h().blockchains(),s=rS(()=>o?.map(u=>({name:u,logo:aS(a,Jo[u].mainBlockchain),title:Jo[u].title})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(m=>m!==u):c.concat(u))},"onSelect"),p=i(u=>e?Me.createElement(nS,{value:n?.[0]},u):Me.createElement(Me.Fragment,null,u),"wrapRadioRoot");return Me.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Me.createElement(Ry,{size:20}),Me.createElement(tS,{type:"info",title:Wa.t("Select chain types"),description:Wa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Me.createElement(Wo,null,Me.createElement(hr,null,Me.createElement(Qc,{src:t.image,size:45})),Me.createElement(Mo,null))}),Me.createElement(Uc,null,p(Me.createElement(Me.Fragment,null,s?.map(u=>Me.createElement(eS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Me.createElement(Qc,{src:u.logo,size:22}),end:e?Me.createElement(oS,{value:u.name}):Me.createElement(Jy,{checked:n.includes(u.name)})}))))),Me.createElement(Zy,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Wa.t("Confirm")))}i(po,"WalletNamespacesModal");var mS=Hc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),dS=Hc(fe,{textAlign:"center"}),wr=3e3,Ma=300;function Gc(){let{fetchStatus:t}=h(),[e,o]=en("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=en(!1),[l,p]=en(null),[u,c]=en(null),[m,f]=en(""),d=null,g=ae.use.isActiveTab(),{list:S,handleClick:C,error:y,disconnectConnectingWallets:T}=no({onBeforeConnect:G=>{d=setTimeout(()=>{s(!0),f(G)},Ma)},onConnect:()=>{d&&clearTimeout(d),setTimeout(()=>{s(!1)},wr)}}),k=i(()=>{T(),s(!1)},"handleCloseWalletModal"),v=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),I=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),N=S.find(G=>G.type===m),x=N?.image||"",w=N?.state||qc.NOT_INSTALLED,b=Ul(S,n),P=lS(b)!==1,Q=Ql(S,e),A=i((G,B)=>{Ln(S,r.multiWallets)||(B.namespaces&&B.state===qc.DISCONNECTED?p({open:!0,providerType:G,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace}):C(G))},"handleWalletItemClick"),z=i(G=>{let B=Q.find(Z=>Z.type===l?.providerType);B?.singleNamespace&&B?.needsDerivationPath&&G[0]?c({open:!0,providerType:B.type,providerImage:B.image,namespace:G[0]}):C(l?.providerType,G.map(Z=>({namespace:Z}))),v()},"handleConfirmNamespaces"),j=i(G=>{G&&u?.namespace&&C(u.providerType,[{namespace:u.namespace,derivationPath:G}]),I()},"handleDerivationPathConfirm");return nt.createElement(ce,{header:{title:zc.t("Connect Wallets")}},nt.createElement(dS,null,P&&nt.createElement(nt.Fragment,null,nt.createElement(pS,{setCategory:o,category:e,blockchains:b,isLoading:t==="loading"}),nt.createElement(sS,{size:24})),nt.createElement(cS,{variant:"title",size:"xmedium",align:"center"},zc.t("Choose a wallet to connect.")),nt.createElement(mS,null,Q.map((G,B)=>{let Z=`wallet-${B}-${G.type}`;return nt.createElement(uS,{key:Z,...G,container:_(),onClick:ie=>A(ie,G),isLoading:t==="loading",disabled:!g})}),nt.createElement(Ro,{open:!!a,onClose:k,image:x,state:w,error:y}),nt.createElement(po,{open:!!l?.open,onClose:v,onConfirm:z,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),nt.createElement(so,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:I,onConfirm:j}))))}i(Gc,"WalletsPage");import{keyframes as fS,styled as La}from"@rango-dev/ui";var Vc=La("div",{position:"relative"}),gS=fS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Xc=La("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${gS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Kc=La("div",{"& img":{borderRadius:"50%"}});var CS=7;function Pa(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=ae.use.isActiveTab(),p=te.use.connectedWallets(),{blockchains:u}=h(),[c,m]=co(""),[f,d]=co(null),[g,S]=co(!1),[C,y]=co(null),[T,k]=co(null),[v,I]=co(null),{suggestAndConnect:N}=br(),x=null,{list:w,error:b,handleClick:E,disconnectWallet:P,disconnectConnectingWallets:Q}=no({chain:e,onBeforeConnect:L=>{x=setTimeout(()=>{m(L)},Ma)},onConnect:L=>{s?.(L),x&&clearTimeout(x),setTimeout(()=>{m("")},wr)}}),[A,z]=co(w),j=w.length,G=r&&j-r>0,B=i(async L=>{S(!1),y("in-progress");try{await N(L.walletType,L.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),Z=i(()=>{T&&k({...T,open:!1})},"handleCloseNamespaceModal"),ie=i(()=>{v&&I({...v,open:!1})},"handleCloseDerivationPathModal"),J=i(L=>{k({open:!0,providerType:L.type,providerImage:L.image,availableNamespaces:L.namespaces,singleNamespace:L.singleNamespace})},"handleOpenNamespacesModal"),ne=i(L=>{let me=A.find(se=>se.type===T?.providerType);me?.singleNamespace&&me?.needsDerivationPath&&L[0]?I({open:!0,providerType:me.type,providerImage:me.image,namespace:L[0]}):E(T?.providerType,L.map(se=>({namespace:se}))),Z()},"handleConfirmNamespaces"),ge=i(L=>{L&&v?.namespace&&E(v.providerType,[{namespace:v.namespace,derivationPath:L}]),ie()},"handleDerivationPathConfirm");Zc(()=>{z(L=>{let me=w.findIndex(se=>o(se.type,e));return G&&me>1?[w[me]].concat(w.filter((se,_e)=>_e!==me)):L.map(se=>w.find(_e=>_e.type===se.type)??se)})},[JSON.stringify(w)]);let Ce=document.getElementById(he.SWAP_BOX_ID);Zc(()=>{let L=null;return(C==="completed"||C==="rejected")&&(L=setTimeout(()=>y(null),wr)),()=>{L&&clearTimeout(L)}},[C]);let D=i(()=>{Q(),m("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,A.slice(0,r).map(L=>{let me=$l({connectedWallets:p,walletType:L.type,chain:e}),se=me?Qn(me,CS):"",_e=On(u(),e),st=!p.find(de=>de.walletType===L.type&&de.chain===e),De=_e&&st&&L.state===Yc.CONNECTED,Ge=De?pt.t({id:"Add {chain} chain",values:{chain:e}}):se,Ve=i(async()=>{L.state===Yc.DISCONNECTED?L.namespaces?J(L):E(L.type):L.namespaces&&!se?(await P(L.type),J(L)):De?(d({walletType:L.type,chain:e,address:me??""}),S(!0)):n({walletType:L.type,chain:e,address:me??""})},"onClick"),ve=f?.chain?Bn(f.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${L.title}_${ve}`},ue.createElement(Ro,{open:c===L.type,onClose:D,image:L.image,state:L.state,error:b}),ue.createElement(po,{open:!!T?.open,onClose:Z,onConfirm:ne,image:T?.providerImage,availableNamespaces:T?.availableNamespaces,singleNamespace:T?.singleNamespace}),ue.createElement(so,{open:!!v?.open,selectedNamespace:v?.namespace,type:v?.providerType,image:v?.providerImage,onClose:ie,onConfirm:ge}),!!f&&ue.createElement(re,{open:!!f&&g,container:Ce,onClose:()=>{d(null)}},ue.createElement(xr,{title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),type:"warning",description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}})},ue.createElement(Ba,{size:18}),ue.createElement(Ba,{size:32}),ue.createElement(hS,{onClick:B.bind(null,f),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},pt.t("Confirm")))),C&&ue.createElement(re,{open:!!C,onClose:y.bind(null,null),container:Ce},C==="in-progress"&&ue.createElement(xr,{type:"loading",title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}}),icon:ue.createElement(Vc,null,ue.createElement(Kc,null,ue.createElement(yS,{src:L.image,size:45})),ue.createElement(Xc,null))}),C==="completed"&&ue.createElement(xr,{type:"success",title:pt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ve}}),description:pt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ve}})}),C==="rejected"&&ue.createElement(xr,{type:"error",title:pt.t("Request Rejected"),description:pt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ve}})}),ue.createElement(Ba,{direction:"vertical",size:32})),ue.createElement(SS,{key:L.type,description:Ge,onClick:Ve,selected:o(L.type,e),disabled:!l,...L}))}),G&&ue.createElement(jp,{selected:!1,onClick:a},ue.createElement(jc,{variant:"label",size:"medium"},pt.t("Show more wallets"),ue.createElement(jc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(r??0)))))}i(Pa,"WalletList");var MS=2;function tu(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=WS(),l=h().config,p=NS(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:m,quoteWalletsConfirmed:f,setQuoteWalletConfirmed:d,customDestination:g,setCustomDestination:S}=Y(),{connectedWallets:C,selectWallets:y}=te(),[T,k]=uo(""),[v,I]=uo([]),[N,x]=uo(""),[w,b]=uo(null),[E,P]=uo(!!g),Q=navigator?.userAgent.includes("Firefox"),A=AS(()=>Jt({filter:"all",quote:c}),[c]),z=Jt({filter:"required",quote:c}),j=u.find(W=>W.name===c?.swaps[c?.swaps.length-1].to.blockchain),G=i(W=>z.includes(W),"isWalletRequiredFor"),B=IS(()=>C.filter(W=>W.selected&&A.includes(W.chain)),[C,A]),[Z,ie]=uo(B()),[J,ne]=uo([]),ge=i((W,V)=>ne(X=>X.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),Ce=v.length>0,D=i((W,V)=>!!Z.find(X=>X.walletType===W&&X.chain===V&&X.selected&&(G(V)||!G(V)&&!g)),"isSelected"),L=!!g&&E&&j&&!jn(j,g),me=i(()=>{P(!1),S(null),ie(W=>{let V=!1;return W.map(X=>!V&&X.chain===j?.name?(V=!0,{...X,selected:!0}):X)})},"resetCustomDestination"),se=i(()=>S(""),"handleClearCustomDestination"),_e=i(async W=>{if(W.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();S(V),p?.current?.focus()}},"handlePasteCustomDestination"),st=i(W=>{W?G(j?.name??"")||ie(V=>V.map(X=>X.chain===j?.name?{...X,selected:!1}:X)):me()},"handleCustomDestinationCollapsibleOpenChange"),De=i(W=>{if(T&&k(""),D(W.walletType,W.chain))return;let X=C.find(Xe=>Xe.walletType===W.walletType&&Xe.chain===W.chain);X&&(n(),W.chain===j?.name&&E&&!G(j.name)&&(P(!1),S(null)),ie(Xe=>Xe.filter(ht=>ht.chain!==W.chain).concat({...X,selected:!0})))},"onChange"),Ge=i(()=>{let W=Z.filter(V=>V.selected);y(W),m(W),d(!0),o()},"onConfirmBalance"),Ve=i(async()=>{I([]),x(""),b(null);let W=await r?.({selectedWallets:Z.filter(X=>X.selected),customDestination:g}),V=W.warnings;V?.balance?.messages&&I(V.balance.messages),V?.quoteUpdate&&b(V.quoteUpdate),W.error&&x(gp(W.error)),!W.error&&!V?.balance?.messages.length?Ge():I(V?.balance?.messages??[])},"onConfirmWallets"),ve=i(()=>g?$.createElement(Rc,{onClick:se,variant:"ghost"},$.createElement(wS,{size:12,color:"gray"})):Q?null:$.createElement(Rc,{onClick:_e,variant:"ghost"},$.createElement(bS,{size:16})),"renderCustomDestinationSuffix");eu(()=>{ie(W=>{let V=[];return W.forEach(X=>{!C.some(ht=>ht.chain===X.chain&&ht.walletType===X.walletType&&ht.address===X.address)||V.push(X)}),V=V.concat(C.filter(X=>!!!V.find(ht=>ht.chain===X.chain)&&X.selected&&A.includes(X.chain))),V})},[C,A]),eu(()=>{let W=[];J.length>0&&(J.forEach(V=>{let X=C.find(Xe=>Xe.chain===V.blockchain&&Xe.walletType===V.walletType);X?De(X):W.push(V)}),ne(W))},[C,J]);let de=document.getElementById(he.SWAP_BOX_ID);return $.createElement(re,{open:e,onClose:()=>{f||s("../",{replace:!0}),o()},dismissible:!T,container:de,...!T&&{footer:$.createElement(oc,null,$.createElement(Jc,{loading:a,disabled:Bp(a,E,g,c,Z,j),onClick:Ve,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Tt.t("Confirm")))},...T&&{styles:{container:{padding:"$0"}},header:$.createElement(Yp,null,$.createElement(Zp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(vS,{size:16})),$.createElement(Er,{variant:"headline",size:"small"},Tt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ze(T,u)}})))},anchor:"center"},$.createElement(re,{open:Ce,onClose:I.bind(null,[]),container:de},$.createElement(xS,{title:Tt.t("Insufficient account balance"),type:"error",description:$.createElement(TS,{messages:v??[]})},$.createElement(Jc,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Ge},Tt.t("Proceed anyway")))),T&&$.createElement(Jp,null,$.createElement("div",{className:Rp()},$.createElement(Pa,{chain:T,isSelected:D,selectWallet:De,onShowMore:()=>k(T),onConnect:W=>{ge(T,W)}}))),!T&&$.createElement($.Fragment,null,N&&$.createElement($.Fragment,null,$.createElement(_a,{variant:"alarm",type:"error",title:Tt.t(N)}),$.createElement(tn,{size:12})),w&&$.createElement($.Fragment,null,$.createElement(_a,{variant:"alarm",type:"warning",title:sr(w)}),$.createElement(tn,{size:12})),$.createElement(rc,null,A.map((W,V)=>{let X=u.find(Zt=>Zt.name===W),Xe=`wallet-${V}`,ht=V===A.length-1;return $.createElement("div",{key:Xe},$.createElement(Xp,null,$.createElement(Er,{variant:"title",size:"xmedium"},Tt.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),$.createElement(Er,{variant:"label",color:"$neutral700",size:"medium"},Tt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),$.createElement(tn,{size:24}),$.createElement(Kp,null,$.createElement(Pa,{chain:W,isSelected:D,selectWallet:De,limit:MS,onShowMore:()=>k(X?.name??""),onConnect:Zt=>{ge(W,Zt)}})),!ht&&$.createElement(tn,{size:32}),ht&&l?.customDestination!==!1&&$.createElement(ec,null,$.createElement(mr,{onOpenChange:st,hasSelected:!0,open:E,triggerAnchor:"top",trigger:$.createElement(ic,null,$.createElement("div",{className:"button__content"},$.createElement(ES,{size:18,color:"info"}),$.createElement(tn,{size:4,direction:"horizontal"}),$.createElement(Er,{variant:"label",size:"medium",color:E?"$neutral600":void 0},Tt.t("Send to a different address"))),$.createElement(cr,{orientation:E?"up":"down"},$.createElement(kS,{size:10,color:"secondary"}))),onClickTrigger:()=>P(Zt=>!Zt)},$.createElement(nc,{ref:p,style:{padding:0,paddingRight:g?"8px":"5px"},autoFocus:!0,placeholder:Tt.t("Enter {blockchainName} address",{blockchainName:Bn(W,u)}),value:g||"",suffix:ve(),onChange:Zt=>{let Rf=Zt.target.value;S(Rf)},...!g&&{autoFocus:!0}})),L&&$.createElement("div",{className:tc()},$.createElement(_a,{variant:"alarm",type:"error",title:Tt.t({values:{destination:g},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(tu,"ConfirmWalletsModal");import{i18n as YS}from"@lingui/core";import{Alert as ZS,Button as JS,InfoIcon as RS}from"@rango-dev/ui";import je from"react";import{Alert as PS,Button as _S,Divider as Fa,NoRouteIcon as DS,RefreshIcon as $S,Typography as lu}from"@rango-dev/ui";import Ke from"react";import{i18n as ou}from"@lingui/core";var LS=24,BS=60;function nu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:ou.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:ou.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(nu,"makeInfo");var Da=(o=>(o[o.small=LS]="small",o[o.large=BS]="large",o))(Da||{}),$a=(o=>(o.small="small",o.large="medium",o))($a||{});import{styled as Ir}from"@rango-dev/ui";var ru=Ir("div",{display:"flex",flexDirection:"column",alignItems:"center"}),iu=Ir("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),au=Ir("div",{variants:{size:{small:{width:"100%"},large:{}}}}),su=Ir("div",{padding:"$6 $0"});function on(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=nu(o,r,()=>a(s,!0),e);return Ke.createElement(ru,null,Ke.createElement(DS,{size:Da[n],color:"gray"}),Ke.createElement(Fa,{size:4}),Ke.createElement(lu,{variant:"title",size:$a[n]},oe().noResultError.title),n==="large"&&Ke.createElement(Fa,{size:4}),!!l.description&&Ke.createElement(iu,{size:n},Ke.createElement(lu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Ke.createElement(Fa,{size:n==="large"?"24":"4"}),!!l.alert&&Ke.createElement(au,{size:n},Ke.createElement(PS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Ke.createElement(_S,{size:"xsmall",type:l.alert.type,prefix:Ke.createElement(su,null,Ke.createElement($S,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(on,"NoResult");import{i18n as nn}from"@lingui/core";import{Button as OS,Divider as US,MessageBox as QS,Typography as zS,WarningIcon as qS}from"@rango-dev/ui";import Nt from"react";import{Typography as mu}from"@rango-dev/ui";import Ua from"react";import{darkTheme as FS,styled as Ar}from"@rango-dev/ui";var pu=Ar("div",{width:"100%"}),Oa=Ar("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),cu=Ar("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${FS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uu=Ar("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function du(t){let{title:e,value:o,valueColor:n}=t;return Ua.createElement(cu,null,Ua.createElement(mu,{size:"medium",variant:"label",className:"_title"},e),Ua.createElement(mu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(du,"QuoteErrorsModalItem");function fu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:nn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:nn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:nn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:nn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Nt.createElement(re,{footer:Nt.createElement(OS,{type:"primary",size:"large",prefix:Nt.createElement(qS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:_()},Nt.createElement(QS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),Nt.createElement(Oa,null,Nt.createElement(US,{size:"4"}),Nt.createElement(zS,{size:"small",variant:"title"},nn.t("Details")),Nt.createElement(Oa,null,l.map((p,u)=>Nt.createElement(du,{key:u,...p})))))}i(fu,"HighValueLossWarningModal");import{i18n as Qa}from"@lingui/core";function gu(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=Qa.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=oe().highValueLossError.title),t.type===1&&(o.title=oe().unknownPriceError.title),t.type===2&&(o.title=Qa.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=Qa.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(gu,"makeAlerts");import{i18n as Po}from"@lingui/core";import{Button as hu,Divider as yu,MessageBox as HS,Typography as GS}from"@rango-dev/ui";import mo from"react";import{useNavigate as VS}from"react-router-dom";function Su(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=VS(),u=e??o;return mo.createElement(re,{anchor:"bottom",open:n,prefix:mo.createElement(hu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},mo.createElement(GS,{variant:"label",size:"medium",color:"$neutral900"},Po.t("Change settings"))),container:_(),onClose:r},mo.createElement(HS,{type:"warning",title:s.type===3?Po.t("High slippage"):Po.t("Low slippage"),description:s.type===3?Po.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Po.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},mo.createElement(yu,{size:18}),mo.createElement(yu,{size:32}),mo.createElement(hu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Po.t("Confirm anyway"))))}i(Su,"SlippageWarningModal");import{Button as XS,MessageBox as KS,WarningIcon as jS}from"@rango-dev/ui";import Nr from"react";function Cu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Nr.createElement(re,{footer:Nr.createElement(XS,{type:"primary",size:"large",prefix:Nr.createElement(jS,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:_()},Nr.createElement(KS,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Cu,"UnknownPriceWarningModal");function rn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},f=o?.type===0||o?.type===1,d=gu(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),je.createElement(je.Fragment,null,f&&je.createElement(on,{error:o,fetch:s}),!!d&&je.createElement(pu,null,je.createElement(ZS,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:je.createElement(uu,{onClick:l},je.createElement(RS,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:je.createElement(JS,{size:"xxsmall",type:d.alertType,onClick:c},YS.t("Change"))}})),e&&je.createElement(je.Fragment,null,e.type===0&&je.createElement(fu,{...m,warning:e}),(e.type===3||e.type===2)&&je.createElement(Su,{...m,warning:e}),e.type===1&&je.createElement(Cu,{...m,warning:e})))}i(rn,"QuoteWarningsAndErrors");import WC from"bignumber.js";import qr from"react";import{i18n as fo}from"@lingui/core";import{Alert as yC,Divider as Do,FullExpandedQuote as SC,InfoIcon as CC,NumericTooltip as Ju,QuoteTag as TC,StepDetails as kC,TokenAmount as vC,Typography as $o}from"@rango-dev/ui";import ja from"bignumber.js";import F,{useRef as wC,useState as xC}from"react";import{styled as za}from"@rango-dev/ui";var qa=za("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Tu=za("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),ku=za("div",{width:"100%",display:"flex"});import*as Wr from"@radix-ui/react-collapsible";import{Button as eC,css as an,darkTheme as be,Image as vu,styled as Oe,Typography as tC}from"@rango-dev/ui";var oC=300,wu=Oe(Wr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),xu=an({padding:"$10 $15"}),bu=Oe(eC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Eu=Oe("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",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${be} &`]:{backgroundColor:"$neutral400"}}}}]}),Iu=an({width:"100%",padding:"$15 $15 $10 $15"}),Au=an({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),_o=an({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Nu=an({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wu=Oe(Wr.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:{[`& ${vu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${vu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Mu=Oe("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"}}}}),Lu=Oe(pr,{width:"100%",background:"inherit"}),Ha=Oe("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${oC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),OB=Oe("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Bu=Oe("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Pu=Oe("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ga=Oe(tC,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),_u=Oe("div",{display:"flex",flexWrap:"wrap"}),Va=Oe("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"}}}}),Du=Oe("div",{display:"flex"}),Mr=Oe("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${be} &`]:{borderTopColor:"$neutral800"}});import{i18n as kt}from"@lingui/core";import{ChevronDownIcon as rC,CloseIcon as iC,Divider as Pr,IconButton as aC,NumericTooltip as sC,QuoteCost as lC,Typography as ct}from"@rango-dev/ui";import R,{useState as Uu}from"react";import{css as nC,styled as Lr}from"@rango-dev/ui";var Br=Lr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Xa=Lr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),$u=Lr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Fu=Lr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Ou=nC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var pC=i(t=>t.fee.isZero()?null:R.createElement(Br,null,R.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},t.label),R.createElement(ct,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Qu(t){let[e,o]=Uu(!1),[n,r]=Uu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],f=_(),d=kp(m);return R.createElement(R.Fragment,null,R.createElement(lC,{onClickFee:c?g=>{g.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?kt.t("View more info"):void 0,tooltipContainer:f}),R.createElement(re,{container:f,open:e,header:R.createElement(Fu,null,R.createElement(ct,{variant:"title",size:"medium"},kt.t("Gas & Fee Explanation")),R.createElement(aC,{onClick:()=>o(!1),variant:"ghost"},R.createElement(iC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement($u,null,R.createElement(ct,{variant:"title",size:"small"},kt.t("Details")),R.createElement(Pr,{size:10}),Object.entries(d.payable).flatMap(([g,S])=>S.map((C,y)=>{let T=`payable-fee-${y}`,k=Xi(C);return R.createElement(Br,{key:T},R.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},qi(g,kt.t)),R.createElement(sC,{content:C.amount,container:f},R.createElement(ct,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(k,4,4),")")))})),R.createElement(Br,{className:"total_payable_fee"},R.createElement(ct,{variant:"label",size:"medium"},kt.t("Total Payable Fee")),R.createElement(ct,{variant:"label",size:"medium"},"$",M(l,4,4))),R.createElement(Xa,null),Object.keys(d.nonePayable).length&&R.createElement(mr,{triggerAnchor:"bottom",onClickTrigger:()=>r(g=>!g),trigger:R.createElement("div",{className:Ou()},R.createElement(ct,{size:"small",variant:"body",color:"neutral700"},n?kt.t("Hide non-payable fees"):kt.t("Show non-payable fees")),R.createElement(Pr,{size:4,direction:"horizontal"}),R.createElement(cr,{orientation:n?"up":"down"},R.createElement(rC,{size:12,color:"gray"}))),open:n},R.createElement(ct,{size:"small",variant:"title"},kt.t("Description")),R.createElement(Pr,{size:4}),R.createElement(ct,{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(Pr,{size:10}),Object.entries(d.nonePayable).map(([g,S],C)=>{let y=Tp(S),T=qi(g,kt.t),k=`non-payable-fee-${C}`;return R.createElement(pC,{key:k,fee:y,label:T})}),R.createElement(Xa,null)))))}i(Qu,"QuoteCostDetails");import{i18n as Hu}from"@lingui/core";import{TokenAmount as Gu}from"@rango-dev/ui";import _r from"react";import{css as cC,styled as uC}from"@rango-dev/ui";var zu=uC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qu=cC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function sn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return _r.createElement(zu,null,_r.createElement(Gu,{direction:"horizontal",label:Hu.t("Swap input"),type:"input",tooltipContainer:_(),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:qu()}),_r.createElement(Gu,{direction:"horizontal",tooltipContainer:_(),label:Hu.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(sn,"QuoteSummary");import{i18n as Yu}from"@lingui/core";import{ChevronDownIcon as fC,ChevronRightIcon as gC,Divider as Ka,Image as hC,Tooltip as Ur,Typography as $r}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as mC,useState as ln}from"react";var Vu=480,Xu=768,Ku=1024,ju=1200,dC=i(()=>{let[t,e]=ln(!1),[o,n]=ln(!1),[r,a]=ln(!1),[s,l]=ln(!1),[p,u]=ln(!1),c=i(()=>{e(window.innerWidth<=Vu),n(window.innerWidth>Vu&&window.innerWidth<=Xu),a(window.innerWidth>Xu&&window.innerWidth<=Ku),l(window.innerWidth>Ku&&window.innerWidth<=ju),u(window.innerWidth>ju)},"handleResize");return mC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Dr=dC;var Fr=4,Or=6,pn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||_();return O.createElement(Ur,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Mu,{className:n,state:a},O.createElement(hC,{src:o,size:16})))},"ImageComponent");function Zu(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||_(),u=r.length,c=Fp(r),{isTablet:m,isMobile:f}=Dr();return O.createElement(Wu,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(g=>!g)}},O.createElement("div",{className:_o()},O.createElement($r,{variant:"body",size:"xsmall"},Yu.t("Via:")),O.createElement(Ka,{direction:"horizontal",size:4}),r.map((d,g)=>{let S=`item-${g}`,C=O.createElement(Ha,null,O.createElement(gC,{size:12,color:"black"}));return f||m?O.createElement(O.Fragment,{key:S},O.createElement(pn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):O.createElement(O.Fragment,{key:S},u<=Fr||u>Fr&&g<Fr-1?O.createElement(O.Fragment,null,O.createElement(pn,{content:d.swapper.displayName,src:d.swapper.image,state:d.state,container:l}),g!==u-1&&O.createElement(O.Fragment,null,C)):g===Fr-1&&O.createElement(Ur,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},C,r.map((y,T)=>{let k=`image-${T}`;return T>=g&&O.createElement(O.Fragment,{key:k},O.createElement(pn,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),T!==u-1&&O.createElement(O.Fragment,null,C))}))},O.createElement(Va,{state:r.find((y,T)=>T>=g&&(y.state==="error"||y.state==="warning"))?.state},O.createElement($r,{size:"xsmall",variant:"body"},"+",u-g))))})),O.createElement("div",{className:_o()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:_o()},O.createElement($r,{variant:"body",size:"xsmall"},Yu.t("Chains:")),O.createElement(Ka,{direction:"horizontal",size:4}),c.map((d,g)=>O.createElement(O.Fragment,{key:d.displayName},c.length<=Or||c.length>Or&&g<Or-1?O.createElement(Ur,{container:p,side:"bottom",content:d.displayName,sideOffset:4},O.createElement(pn,{content:"",src:d.image,open:!1,className:g!==0?"blockchainImage":""})):g===Or-1&&O.createElement(Ur,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},c.map((S,C)=>C>=g&&O.createElement(pn,{key:S.displayName,content:"",src:S.image,open:!1,className:C>g?"blockchainImage":"",container:l})))},O.createElement(Va,{className:"blockchainImage"},O.createElement($r,{size:"xsmall",variant:"body"},"+",c.length-g))))),O.createElement(Ka,{direction:"horizontal",size:32}))),O.createElement(Ha,{orientation:a?"up":"down"},O.createElement(fC,{size:12,color:"black"}))))}i(Zu,"QuoteTrigger");function Ya(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:m=!1,container:f}=t,d=h().blockchains(),{findToken:g}=h(),S=h().swappers(),{customSlippage:C,slippage:y}=h(),T=C||y,[k,v]=xC(t.expanded),I=wC(null),N=M(o.value,6,6),x=M(n.value,6,6),w=n.usdValue?M(n.usdValue,4,4):"",b=Re(o.usdValue,n.usdValue??null),E=M(b,2,2),P=It(b??0),Q=i((ge,Ce)=>ge.map((D,L)=>{let me,se=r?.type===3&&r.swap.swapperId===D.swapperId,_e=r?.type===4&&r.recommendedSlippages?.has(L),st=a?.type===2&&a.recommendedSlippages?.has(L),De=se||_e,Ge=st;De?me="error":Ge&&(me="warning");let Ve=De?fo.t("Slippage Error"):fo.t("Slippage Warning");return se&&(Ve=fo.t("Bridge Limit Error")),{swapper:{displayName:qo(D.swapperId,S),image:D.swapperLogo},from:{token:{displayName:D.from.symbol,image:D.from.logo},chain:{displayName:Ze(D.from.blockchain,d),image:D.from.blockchainLogo},price:{value:L===0&&!Ce?M(o.value,6,6):M(D.fromAmount,6,6),usdValue:M((D.from.usdPrice??0)*parseFloat(D.fromAmount),4,4),realValue:L===0?o.value:D.fromAmount,realUsdValue:new ja(D.from.usdPrice??0).multipliedBy(D.fromAmount).toString()}},to:{token:{displayName:D.to.symbol,image:D.to.logo},chain:{displayName:Ze(D.to.blockchain,d),image:D.to.blockchainLogo},price:{value:M(D.toAmount,6,6),usdValue:M((D.to.usdPrice??0)*parseFloat(D.toAmount),4,4),realValue:D.toAmount,realUsdValue:new ja(D.to.usdPrice??0).multipliedBy(D.toAmount).toString()}},state:me,alerts:De||Ge?F.createElement(Tu,{dense:m},F.createElement(yC,{variant:"alarm",type:De?"error":"warning",title:Ve,footer:F.createElement(ku,null,se&&F.createElement("div",null,F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Do,{direction:"vertical",size:2}),F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {amount} {symbol}",values:{amount:M(D.fromAmount,6,6),symbol:D?.from.symbol}}))),(_e||st)&&!se&&F.createElement("div",null,F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(L)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(L)}}})),F.createElement(Do,{direction:"vertical",size:2}),F.createElement($o,{size:"xsmall",variant:"body",color:"neutral900"},fo.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:Ho(D.estimatedTimeInSeconds),fee:M(Vi(D,g),2,2),internalSwaps:D.internalSwaps?Q(D.internalSwaps):void 0}}),"getQuoteSteps"),A=Q(e?.swaps??[]),z=A.length,j=f||_(),G=Up(t.quote.tags||[]),B=!!c,Z=Ho(Pn(e?.swaps)),ie=Jn(e?.swaps??[],g),J=M(ie,2,2),ne=ie.gte(new ja(fp));return m?F.createElement(SC,{selected:l,fee:J,time:Z,tooltipContainer:zo(),steps:A,tags:G,feeWarning:ne,percentageChange:E,warningLevel:P,outputPrice:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Eu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Iu()},!p&&G.length?F.createElement(F.Fragment,null,F.createElement(Du,null,G.map((ge,Ce)=>{let D=`${ge.value}_${Ce}`;return F.createElement(F.Fragment,{key:D},F.createElement(TC,{label:ge.label,value:ge.value}),F.createElement(Do,{size:4,direction:"horizontal"}))})),F.createElement(Mr,null),!B&&F.createElement(Do,{size:4})):null,F.createElement("div",{id:"portal-root",className:Au()},F.createElement(Qu,{quote:e,time:Z,fee:J,feeWarning:ne,showModalFee:u,steps:z}),B&&F.createElement(bu,{onClick:ge=>{ge.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement($o,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},fo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Nu()},F.createElement(Pu,null,F.createElement(CC,{size:12,color:"gray"})),F.createElement(_u,null,F.createElement(Ga,{size:"small",variant:"body"},`${N} ${A[0].from.token.displayName} = `),F.createElement(Ju,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(Ga,{size:"small",variant:"body"},"\xA0",`${x} ${A[A.length-1].to.token.displayName}`))),F.createElement(Ju,{content:n.usdValue,container:j},F.createElement(Do,{size:2,direction:"horizontal"}),F.createElement($o,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&F.createElement(vC,{tooltipContainer:j,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:A[z-1].to.token.displayName,image:A[z-1].to.token.image},chain:{image:A[z-1].to.chain.image},percentageChange:E,warningLevel:P}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(sn,{from:A[0].from,to:A[z-1].to,percentageChange:E,warningLevel:P}),F.createElement(Do,{size:4}))),F.createElement(wu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},F.createElement(Zu,{type:s,quoteRef:I,selected:l,setExpanded:v,container:j,expanded:k,steps:A}),F.createElement(Lu,{open:k},F.createElement(Bu,null),F.createElement("div",{className:xu()},A.map((ge,Ce)=>{let D=`item-${Ce}`;return F.createElement(kC,{type:"quote-details",key:D,tooltipContainer:j,step:ge,hasSeparator:Ce!==A.length-1,state:ge.state})})))))}i(Ya,"Quote");import{Divider as AC,Skeleton as NC}from"@rango-dev/ui";import Mt from"react";import{darkTheme as bC,styled as Qr}from"@rango-dev/ui";var Ru=Qr("div",{$$color:"$colors$neutral100",[`.${bC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),em=Qr("div",{paddingTop:"$2"}),tm=Qr("div",{paddingLeft:"$8"}),om=Qr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as mm,Divider as ut,Skeleton as Ye}from"@rango-dev/ui";import H from"react";import{css as EC,styled as Wt}from"@rango-dev/ui";var Za=Wt("div",{display:"flex"}),nm=Wt("div",{padding:"$10 $0 $20"}),rm=Wt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),im=Wt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),am=Wt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),sm=Wt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),lm=Wt("div",{width:"65%",display:"flex",justifyContent:"start"}),pm=Wt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),cm=Wt("div",{padding:"$15 $0 $15 $0"}),um=EC({display:"flex",justifyContent:"space-between",alignItems:"center"});function cn(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(am,null,H.createElement(lm,null,H.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ut,{size:8,direction:"horizontal"}),H.createElement(pm,null,H.createElement(Ye,{height:10,width:60,variant:"rounded"}),H.createElement(ut,{size:4}),H.createElement(Ye,{height:15,variant:"rounded"}))),H.createElement(Ye,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(Za,null,H.createElement(Ye,{width:65,height:20,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Ye,{width:65,height:20,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Ye,{width:65,height:20,variant:"rounded"})),H.createElement(Mr,null),!r&&H.createElement(ut,{size:4})),H.createElement("div",{className:um()},H.createElement(Za,null,H.createElement(Ye,{width:60,height:10,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Ye,{width:60,height:10,variant:"rounded"}),H.createElement(ut,{size:4,direction:"horizontal"}),H.createElement(Ye,{width:60,height:10,variant:"rounded"})),r&&H.createElement(Ye,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(nm,null,H.createElement(Ye,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(rm,null,H.createElement(im,null,H.createElement(mm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ut,{direction:"horizontal",size:4}),H.createElement(Ye,{height:15,width:150,variant:"rounded"})),H.createElement(ut,{size:10}),H.createElement(Ye,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(ut,{size:4}),H.createElement(cm,null,n,H.createElement(sm,null),n),H.createElement(ut,{size:12})))}i(cn,"QuoteSummarySkeleton");import{ChainToken as ym,Divider as Ra,NextIcon as IC,Skeleton as zr}from"@rango-dev/ui";import Ee from"react";import{styled as un}from"@rango-dev/ui";var dm=un("div",{display:"flex",alignItems:"start"}),fm=un("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ja=un("div",{display:"flex",alignItems:"center",flexGrow:1}),gm=un("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),hm=un("div",{display:"flex",alignItems:"center"});function vt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(hm,null,Ee.createElement(zr,{height:22,width:22,variant:"circular"}),Ee.createElement(Ra,{direction:"horizontal",size:8}),Ee.createElement(zr,{height:15,width:148,variant:"rounded"})),Ee.createElement(dm,null,Ee.createElement(om,{hideSeparator:!e}),Ee.createElement(fm,{extraSpace:e},Ee.createElement(Ja,null,Ee.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Ra,{direction:"horizontal",size:8}),Ee.createElement(zr,{height:12,variant:"rounded"})),Ee.createElement(gm,null,Ee.createElement(IC,{color:"gray",size:16})),Ee.createElement(Ja,null,Ee.createElement(ym,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Ra,{direction:"horizontal",size:8}),Ee.createElement(zr,{height:12,variant:"rounded"})))))}i(vt,"StepSkeleton");function mn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Mt.createElement(Ru,{expanded:o,rounded:e!=="basic"},Mt.createElement(cn,{type:e,tagHidden:n}),Mt.createElement(em,null,Mt.createElement(NC,{height:15,variant:"rounded"})),o&&Mt.createElement(tm,null,Mt.createElement(AC,{size:24}),Mt.createElement(vt,null),Mt.createElement(vt,null),Mt.createElement(vt,{separator:!1})))}i(mn,"QuoteSkeleton");function go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:f=!1,container:d}=t,{inputAmount:g,inputUsdValue:S,toToken:C}=Y(),y=e?.outputAmount?new WC(e?.outputAmount):null,T=e?.outputAmount?er(e?.outputAmount,or(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?qr.createElement(qa,null,qr.createElement(mn,{tagHidden:l,type:o,expanded:s})):v?qr.createElement(qa,{onClick:()=>p?.(e)},qr.createElement(Ya,{quote:e,error:r,container:d,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:f,input:{value:g,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:T?.toString()??""}})):null}i(go,"QuoteInfo");import{calculatePendingSwap as PC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as _C}from"react";import{useRef as MC,useState as LC}from"react";var BC=2e3;function Hr({request:t}){let[e,o]=LC(!1),n=MC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,BC)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Hr,"useFetch");function Sm(){let{fetch:t,loading:e,cancelFetch:o}=Hr({request:async(n,r)=>await Ot().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Sm,"useFetchConfirmQuote");function Gr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=es(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Gr,"throwErrorIfResponseIsNotValid");function es(t){if(yp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Sp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=vp(t);if(o){let n=Rn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(es,"getQuoteError");function Cm(t,e,o){let n=!1;t&&(n=$p(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=wo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Ap(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(vo(e)),percentageChange:M(Re(vo(t)??"",vo(e)??""),null,2)}:Ki(t,e)?r.quoteUpdate={type:0}:ji(t,e)?r.quoteUpdate={type:1}:Yi(t,e)&&(r.quoteUpdate={type:2}));let s=Np(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Cm,"generateWarnings");function Vr(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(Vr,"handleQuoteErrors");function ts(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=Y(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),m=h().blockchains(),f=h().tokens(),{findToken:d}=h(),g=u||p,{fetch:S,cancelFetch:C,loading:y}=Sm();return _C(()=>C,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,I=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=v.reduce((w,b)=>(w[b.chain]=b.address,w),{}),x={requestId:r?.requestId||"",selectedWallets:N,destination:I||void 0};try{return await S(x,!0).then(w=>{let{result:b}=w;Gr({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let E={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};n(E);let P={slippage:g.toString(),disabledSwappersGroups:c},Q=Cm(r??void 0,E,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:d,selectedWallets:v,userSlippage:g});Q.quoteUpdate&&s(!1),l();let A=!!Q.balance,z=PC(o.toString(),b,Ep(v),P,!A,{blockchains:m,tokens:f});return{quote:E,swap:z,error:null,warnings:Q}})}catch(w){return Vr(w)}},"fetch"),cancelFetch:C}}i(ts,"useConfirmSwap");var HC=FC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${km}`]:{width:"$48",height:"$48"}}),GC=rs({flexGrow:1,paddingRight:"$10"}),VC=rs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),XC=rs({display:"flex",justifyContent:"space-between",alignItems:"center"});function vm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=Y(),s=qC(),[l,p]=dn(""),u=!n,[c,m]=dn(!1),[f,d]=dn(!1),{isActiveTab:g}=ae(),S=h().getDisabledLiquiditySources(),C=zC(S),{manager:y}=DC(),{fetch:T,loading:k,cancelFetch:v}=ts(),[I,N]=dn({swap:null,error:null,warnings:null}),[x,w]=dn(!1),b=i(async({selectedWallets:B,customDestination:Z})=>{let ie=await T?.({selectedWallets:B,customDestination:Z});return N(ie),ie},"onConfirmSwap"),E=i(async()=>{if(I.swap&&n)try{await y?.create("swap",{swapDetails:I.swap},{id:I.swap.requestId});let B=`../${q.swaps}/${I.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){p("Error: "+B?.message)}},"addNewSwap"),P=i(async()=>{d(!0),await E(),d(!1)},"onConfirm"),Q=i(async()=>{I?.warnings?.quote&&!a?w(!0):await P()},"onStartConfirmSwap"),A=i(async()=>{N({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(B=>{N(B)}).catch(B=>console.error(B))},"onRefresh");Xr(()=>{!!C.current.length&&!S.length&&A(),C.current=S},[S.length]),Xr(()=>{u&&v()},[u]),Xr(()=>{u&&m(u)},[u]),Xr(()=>{u||T({selectedWallets:o,customDestination:r}).then(B=>N(B)).catch(B=>console.error(B))},[]),QC(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let z=I.warnings?.quote??null,j=I.error,G=[];if(l&&G.push(Ie.createElement(Tm,{type:"error",variant:"alarm",title:l})),I.warnings?.quoteUpdate&&G.push(Ie.createElement(Tm,{variant:"alarm",type:"warning",title:I.warnings.quoteUpdate&&sr(I.warnings.quoteUpdate)})),z||j){let B=`../${q.settings}`;G.push(Ie.createElement(rn,{warning:z,error:j,couldChangeSettings:!1,refetchQuote:A,showWarningModal:x,confirmationDisabled:!g,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await E()},onChangeSettings:()=>s(B)}))}return Ie.createElement(ce,{header:{title:os.t("Confirm Swap"),onWallet:()=>{let B=`../${q.wallets}`;s(B)}},footer:Ie.createElement(HC,null,Ie.createElement("div",{className:GC()},Ie.createElement($C,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!I.error||!g,onClick:Q},os.t("Start Swap"))),Ie.createElement(km,{variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},Ie.createElement(UC,{size:24})))},c&&Ie.createElement(tu,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:b}),Ie.createElement(fe,null,Ie.createElement("div",{className:XC()},Ie.createElement(OC,{variant:"title",size:"small"},os.t("You get")),Ie.createElement("div",{className:VC()},Ie.createElement(yr,{onClick:!k&&!c&&!x?A:void 0}))),Ie.createElement(ns,{size:"12"}),lc(G.map((B,Z)=>({element:B,key:`alert-${Z}`})),Ie.createElement(ns,{size:10})),G.length>0?Ie.createElement(ns,{size:10}):null,Ie.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:I.error,loading:k,warning:I.warnings?.quote??null})))}i(vm,"ConfirmSwapPage");import{i18n as jr}from"@lingui/core";import{useManager as pT}from"@rango-dev/queue-manager-react";import{Divider as Bm,NotFound as cT,styled as uT}from"@rango-dev/ui";import Bt,{useState as mT}from"react";import{useNavigate as dT}from"react-router-dom";import{i18n as YC}from"@lingui/core";import{Divider as Im,GroupedVirtualizedList as ZC,Skeleton as JC,SwapListItem as Am,Typography as RC}from"@rango-dev/ui";import Ue,{useCallback as Nm,useEffect as eT,useRef as tT,useState as oT}from"react";function wm(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(wm,"calculateGroupsSoFar");import{css as KC,darkTheme as jC,styled as fn}from"@rango-dev/ui";var is=KC(),xm=fn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),as=fn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${is}`]:{$$color:"$colors$neutral600",[`.${jC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ss=fn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),bm=fn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Em=fn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var nT=10;function ls(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=oT([]),l=tT(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Nm(wm,[]),f=Nm(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,nT),s(m(u,l.current)))},[e.length]);if(eT(()=>{r||f()},[r,f]),r){let d=[1,2];return Ue.createElement(Ue.Fragment,null,[d,d].map((S,C)=>Ue.createElement(as,{key:C},Ue.createElement(ss,null,Ue.createElement(JC,{variant:"text",width:60,size:"small"}),Ue.createElement(Im,{size:16})),Ue.createElement(Im,{size:4}),Ue.createElement(bm,null,S.map((T,k)=>Ue.createElement(Am,{isLoading:!0,key:k}))))))}return Ue.createElement(ZC,{endReached:()=>{l.current<e.length&&f()},groupCounts:a,groupContent:d=>Ue.createElement(as,null,Ue.createElement(ss,null,Ue.createElement(RC,{variant:"label",size:"medium",className:is()},c[d]))),itemContent:(d,g)=>{let S=p[d];if(!S)return null;let C=S.steps[0],y=S.steps[S.steps.length-1];return Ue.createElement(xm,{key:S.requestId},Ue.createElement(Am,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:_(),onlyShowTime:c[g]===YC.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(S.inputAmount,6,6),realAmount:S.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(ls,"HistoryGroupedList");import{CloseIcon as iT,IconButton as aT,SearchIcon as sT,TextField as lT}from"@rango-dev/ui";import gn from"react";import{styled as rT}from"@rango-dev/ui";var Wm=rT("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,setValue:l,...p}=t;return gn.createElement(lT,{prefix:gn.createElement(Wm,null,gn.createElement(sT,{color:"black"})),suffix:!!s.length&&gn.createElement(aT,{variant:"ghost",onClick:()=>l?.(""),size:"small"},gn.createElement(iT,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:s,onChange:a,...p})}i(Lt,"SearchInput");import{i18n as Kr}from"@lingui/core";import Mm from"dayjs";var Lm=i(t=>{let e=new Map([["today",{title:Kr.t("Today"),swaps:[]}],["week",{title:Kr.t("This week"),swaps:[]}],["month",{title:Kr.t("This month"),swaps:[]}],["year",{title:Kr.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Mm();t.forEach(p=>{let u=Number(p.creationTime),c=Mm(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let m=new Date(u).getFullYear().toString();o(m,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var fT=uT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),gT=i((t,e)=>t?.length?t.filter(o=>yt(o.fromBlockchain,e)||yt(o.toBlockchain,e)||yt(o.toSymbol,e)||yt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Pm(){let t=dT(),{manager:e,state:o}=pT(),n=ot(e).map(({swap:c})=>c),[r,a]=mT(""),s=!o.loadedFromPersistor,l=i(c=>{let m=c.target.value;a(m)},"searchHandler"),p=n;r&&(p=n.filter(c=>yt(c.inputAmount,r)||yt(c.status,r)||gT(c.steps,r)||yt(c.requestId,r)));let u=!p?.length&&!s;return Bt.createElement(ce,{header:{title:jr.t("History")}},Bt.createElement(fe,null,Bt.createElement(Lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:jr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Bt.createElement(Bm,{size:"16"}),Bt.createElement(fT,null,u&&Bt.createElement(Em,null,Bt.createElement(Bm,{size:32}),Bt.createElement(cT,{title:jr.t("No results found"),description:r?jr.t("Try using different keywords"):""})),!u&&Bt.createElement(ls,{list:p,onSwapClick:t,groupBy:Lm,isLoading:s}))))}i(Pm,"HistoryPage");import{i18n as PT}from"@lingui/core";import{Button as _T,Divider as Jm,styled as DT,WarningIcon as $T}from"@rango-dev/ui";import FT from"bignumber.js";import qe,{useEffect as Rm,useState as ed}from"react";import{useNavigate as OT}from"react-router-dom";import{i18n as kT}from"@lingui/core";import{Header as vT}from"@rango-dev/ui";import Vt,{useEffect as wT,useState as xT}from"react";import{i18n as yT}from"@lingui/core";import{Divider as cs,FullExpandedQuote as ST,Typography as CT}from"@rango-dev/ui";import ye from"react";import{styled as ps}from"@rango-dev/ui";var _m=ps("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Dm=ps("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),$m=ps("div",{width:"146px"});import{i18n as hn}from"@lingui/core";import{Select as hT}from"@rango-dev/ui";import Fm from"react";function Yr(t){let{updateQuotePartialState:e,sortStrategy:o}=Y(),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 Fm.createElement($m,null,Fm.createElement(hT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Yr,"SelectStrategy");var Om=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:u,updateQuotePartialState:c,fromToken:m,toToken:f,sortStrategy:d,error:g}=Y(),{slippage:S,customSlippage:C}=h(),{findToken:y}=h(),T=l||_(),k=!!u&&u.results.length,v=C??S,I=i(w=>{if(!m||!f||!u)return null;let b={requestAmount:u.requestAmount,...w};return wo(b,{fromToken:m,toToken:f,userSlippage:v,findToken:y})},"getQuoteWarning"),N=g?.type===0||g?.type===1,x=u?.results?rr(d,u?.results):[];return ye.createElement(ye.Fragment,null,a&&ye.createElement(ye.Fragment,null,ye.createElement(Dm,null,ye.createElement(CT,{size:"xmedium",variant:"title"},yT.t("Sort by")),ye.createElement(Yr,{container:T})),ye.createElement(cs,{size:"10"})),e&&Array.from({length:Om},(w,b)=>ye.createElement(ye.Fragment,{key:b},s?ye.createElement(ST,{loading:!0}):ye.createElement(mn,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Om-1&&ye.createElement(cs,{size:16}))),!e&&ye.createElement(ye.Fragment,null,k?x.map((w,b)=>{let E=I(w),P=es(w.swaps),Q=x.length-1===b;return ye.createElement(ye.Fragment,{key:w.requestId},ye.createElement(go,{showModalFee:r,container:T,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:P?.options||null,warning:E,fullExpandedMode:s,onClick:A=>{P||c("warning",E),c("error",P?.options||null),o(A)},type:"list-item"}),!Q&&ye.createElement(cs,{size:16}))}):N&&ye.createElement(_m,null,ye.createElement(on,{size:s?"large":"small",error:g,fetch:n}))))}i(yn,"Quotes");import{darkTheme as TT,styled as Um}from"@rango-dev/ui";var Qm=Um("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${TT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),zm=Um("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var bT=100;function us(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=xT(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",m=zo();return wT(()=>{let f=null;return a?f=setTimeout(()=>{l(!0)},bT):(l(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),Vt.createElement(Qm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Tr()}`,id:he.EXPANDED_BOX_ID},Vt.createElement(vT,{title:kT.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(Yr,{container:m}),Vt.createElement(ao,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(zm,null,Vt.createElement(yn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:zo(),onClickOnQuote:n,fullExpandedMode:c})))}i(us,"ExpandedQuotes");import{i18n as jm}from"@lingui/core";import{SwapInput as Ym}from"@rango-dev/ui";import Sn from"react";import{ReverseIcon as AT}from"@rango-dev/ui";import ds from"react";import{keyframes as ET,styled as qm}from"@rango-dev/ui";var ms=450,IT=ET({"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)"}}),Hm=qm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Gm=qm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${IT} ${ms}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 fs(){let t=Y.use.switchFromAndTo();return ds.createElement(Hm,null,ds.createElement(Gm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},ms),t()}},ds.createElement(AT,{size:12})))}i(fs,"SwitchFromAndToButton");import{styled as Vm}from"@rango-dev/ui";var Xm=Vm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Km=Vm("div",{position:"relative"});function gs(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:f,outputUsdValue:d,selectedQuote:g}=Y(),{connectedWallets:S,getBalanceFor:C}=te(),y=a?C(a):null,T=Un(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",v=!!s&&Fl(S,s.name),I=!Gi(g,c,m),N=!Gi(g,c,d),x=!m||!d||!d.gt(0)?null:Re(m.toString(),d.toString());return Sn.createElement(Xm,null,Sn.createElement(Km,null,Sn.createElement(Ym,{label:jm.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:I?void 0:M(m,4,4),realUsdValue:I?void 0:m?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:_(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),Sn.createElement(fs,null)),Sn.createElement(Ym,{sharpBottomStyle:!r&&(!!g||e),label:jm.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(Re(m,d),2,2),warningLevel:It(x??0),price:{value:M(f,6,6),usdValue:N?void 0:M(d,4,4),realValue:f?.toString(),realUsdValue:N?void 0:d?.toString(),error:N?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:_()}))}i(gs,"Inputs");import{useCallback as NT,useEffect as WT,useRef as MT,useState as LT}from"react";function Zm(){let{fetch:t,loading:e,cancelFetch:o}=Hr({request:async(n,r)=>await Ot().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Zm,"useFetchAllQuotes");var BT=600;function Zr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Zm(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:m,sortStrategy:f,resetQuote:d,error:g,warning:S,setSelectedQuote:C,updateQuotePartialState:y}=Y(),{slippage:T,customSlippage:k,affiliatePercent:v,affiliateRef:I,affiliateWallets:N,fetchStatus:x}=h(),w=h().getLiquiditySources(),b=h().getDisabledLiquiditySources(),E=h().excludeLiquiditySources(),{findToken:P}=h(),[Q,A]=LT(!0),z=MT(u),j=k??T,B=!l||!p||Rt(l,p)||!Go(u),Z=i(ne=>{A(ne)},"resetState"),ie=i(ne=>{let{fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,slippage:_e,affiliateRef:st,affiliatePercent:De,affiliateWallets:Ge}=ne;if(Q||Z(!0),!B&&ge&&Ce){d();let Ve=bp({fromToken:ge,toToken:Ce,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,wallets:s,slippage:_e,affiliateRef:st,affiliatePercent:De,affiliateWallets:Ge,enableCentralizedSwappers:a});Zl("experimentalRoute",r)&&(Ve.experimental=!0),e(Ve).then(ve=>{let de=rr(f,ve.results),W=Op(m,de,ve.requestAmount);A(!1),y("quotes",ve),C(W),Gr({diagnosisMessages:ve.diagnosisMessages,requestId:W?.requestId||"",swaps:W?.swaps});let V=W&&wo(W,{fromToken:ge,toToken:Ce,userSlippage:j,findToken:P});y("warning",V)}).catch(ve=>{let{error:de}=Vr(ve);(de?.type===0||de?.type===1)&&d(),de?.type!==2&&(y("error",de),A(!1))})}},"fetch"),J=NT(xl(ne=>{ie(ne)},BT),[B]);return WT(()=>{if(!t){A(!1);return}if(x!=="success")return;if(B){A(!1),(m||g||S)&&d();return}if(!Go(u)||c?.eq(0)){Z(!1),o();return}d(),Z(!0);let ne=ie;return z.current&&z.current!=u&&(ne=J),z.current=u,ne({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:N}),o},[x,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,B,w?.length,n,b.length,j,I,v,JSON.stringify(N)]),{fetch:()=>ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:I,affiliatePercent:v,affiliateWallets:N}),loading:Q}}i(Zr,"useSwapInput");var UT=DT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),QT=300;function td(){let t=OT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=Y(),[d,g]=ed(!1),{isLargeScreen:S,isExtraLargeScreen:C}=Dr(),{fetch:y,loading:T}=Zr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:I}=te(),{isActiveTab:N}=ae(),[x,w]=ed(!1),E=Cp({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:I.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),P=Gl(S,C,k?.variant),Q=!!n&&!!e&&!!o&&new FT(n).gt(0)&&!Pp(e,o),A=Q&&v==="success"&&T,G=(!P||P&&p?.results.length)&&(l||s);Rm(()=>{c(),f("refetchQuote",!0)},[]),Rm(()=>{g(Q)},[Q]);let B=(r||s)&&!x?y:void 0,Z=i(J=>{P&&d?(g(!1),setTimeout(()=>{t(J)},QT)):t(J)},"onHandleNavigation"),ie=i(J=>{r?.requestId!==J.requestId&&(w(!1),u(J))},"onClickOnQuote");return qe.createElement(UT,null,qe.createElement(ce,{height:"auto",footer:qe.createElement(_T,{type:"primary",size:"large",disabled:E.disabled||!N,prefix:E.action==="confirm-warning"&&qe.createElement($T,null),fullWidth:!0,onClick:()=>{E.action==="connect-wallet"?Z(q.wallets):E.action==="confirm-warning"?w(!0):Z(q.confirmSwap)}},E.title),header:{onWallet:()=>{Z(q.wallets)},hasBackButton:!1,title:k.title||PT.t("Swap"),suffix:qe.createElement(ao,{hidden:P?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>Z(q.swaps),onClickSettings:()=>{Z(q.settings)}})}},qe.createElement(fe,null,qe.createElement(gs,{fetchingQuote:A,fetchMetaStatus:v,isExpandable:P,onClickToken:J=>{Z(J==="from"?q.fromSwap:q.toSwap)}}),qe.createElement(Jm,{size:"2"}),P?null:qe.createElement(go,{quote:r,loading:A,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{f("refetchQuote",!1),Z(q.routes)}:void 0}),G?qe.createElement(qe.Fragment,null,qe.createElement(Jm,{size:"10"}),qe.createElement(rn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:x,confirmationDisabled:!N,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),m(!0),Z(q.confirmSwap)},onChangeSettings:()=>Z(q.settings)})):null)),P?qe.createElement(us,{loading:A,onClickOnQuote:ie,fetch:y,onClickRefresh:B,isVisible:d}):null)}i(td,"Home");import{i18n as od}from"@lingui/core";import{Alert as zT,Divider as qT,List as HT,ListItemButton as GT,Radio as VT,RadioRoot as XT,Typography as KT}from"@rango-dev/ui";import wt from"react";function Xt(){let{setLanguage:t,language:e,config:o}=h(),n=Rl,r=o?.language||ko;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||ko),resetLanguage:()=>t(null)}}i(Xt,"useLanguage");function nd(){let{activeLanguage:t,changeLanguage:e,languages:o}=Xt(),n=tt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:wt.createElement(KT,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:wt.createElement(VT,{value:s}),start:wt.createElement(p,null)}});return wt.createElement(ce,{header:{title:od.t("Language")}},wt.createElement(fe,null,wt.createElement(zT,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),wt.createElement(qT,{size:"8"}),wt.createElement(XT,{value:t},wt.createElement(HT,{type:wt.createElement(GT,{title:od.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(nd,"LanguagePage");import{i18n as Pt}from"@lingui/core";import{Button as RT,Checkbox as ek,Image as tk,ListItemButton as ok,NotFound as nk,Typography as rk}from"@rango-dev/ui";import Qe,{useState as ik}from"react";import{Checkbox as ZT,Skeleton as id}from"@rango-dev/ui";import Tn from"react";import{styled as hs}from"@rango-dev/ui";var Cn=hs("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),ys=hs("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ss=hs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as jT,styled as YT}from"@rango-dev/ui";var rd=YT(jT,{height:61});var JT=30;function Cs(){return Tn.createElement(Cn,null,Array.from(Array(JT),(t,e)=>Tn.createElement(rd,{hasDivider:!0,key:e,start:Tn.createElement(id,{variant:"circular",width:35,height:35}),title:Tn.createElement(id,{variant:"text",size:"large",width:90}),end:Tn.createElement(ZT,{checked:!1})})))}i(Cs,"LoadingLiquiditySourceList");function Ts({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=ik(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Gn(o,n),u={Exchanges:Pt.t("Exchanges"),Bridges:Pt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(y=>c.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,d=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:T,groupTitle:k,logo:v}=y;return{start:Qe.createElement(tk,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Qe.createElement(ek,{checked:T,disabled:l}),title:Qe.createElement(rk,{variant:"title",size:"xmedium"},Pt.t(k)),...y}}),S=i(y=>{let T=y.target.value;a(T)},"searchHandler"),C=g;return r&&(C=g.filter(y=>yt(y.groupTitle,r))),Qe.createElement(ce,{header:{title:Pt.t(t),suffix:Qe.createElement(ys,null,Qe.createElement(RT,{variant:"ghost",size:"xsmall",onClick:d},f?Pt.t("Deselect all"):Pt.t("Select all")))}},Qe.createElement(fe,{view:!0},Qe.createElement(Lt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Pt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&Qe.createElement(Cs,null),!C.length&&r?Qe.createElement(Ss,null,Qe.createElement(nk,{title:Pt.t("No results found"),description:Pt.t("Try using different keywords")})):e==="success"&&Qe.createElement(Cn,{disabled:l},C.map(y=>{let{groupTitle:T,...k}=y;return Qe.createElement(Qe.Fragment,{key:y.id},Qe.createElement(ok,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Ts,"LiquiditySourcePage");import{i18n as ak}from"@lingui/core";import Jr from"react";import{useNavigate as sk}from"react-router-dom";function ad(){let t=sk(),e=tt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=Y(),{fetch:l,loading:p}=Zr({refetchQuote:n}),u=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,m=`../${q.wallets}`;return Jr.createElement(ce,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:ak.t("Routes"),suffix:Jr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Jr.createElement(fe,null,Jr.createElement(yn,{fetch:l,loading:p,onClickOnQuote:u})))}i(ad,"RoutesPage");import{i18n as fd}from"@lingui/core";import{Divider as gd,getCategoriesCount as hk,SelectableCategoryList as yk}from"@rango-dev/ui";import _t,{useState as hd}from"react";import{i18n as ks}from"@lingui/core";import{Divider as md,Image as uk,ListItemButton as mk,NotFound as dk,Typography as dd}from"@rango-dev/ui";import rt,{useEffect as fk,useState as gk}from"react";var sd=i((t,e,o)=>t.filter(n=>Mn(n.type,o)).filter(n=>bt(n.name,e)||bt(n.displayName,e)),"filterBlockchains");import{ImageContainer as lk,styled as ld}from"@rango-dev/ui";var pd=ld("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Rr=ld(Zo,{padding:0,margin:0,listStyle:"none",[`& ${lk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as pk,Skeleton as cd}from"@rango-dev/ui";import ei from"react";var ck=20;function ud(){return ei.createElement(Rr,null,Array.from(Array(ck),t=>ei.createElement(pk,{key:t,hasDivider:!0,start:ei.createElement(cd,{variant:"circular",width:35,height:35}),title:ei.createElement(cd,{variant:"text",size:"large",width:90})})))}i(ud,"LoadingBlockchainList");function vs(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=gk(e),{fetchStatus:l}=h();fk(()=>{s([...sd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?rt.createElement(rt.Fragment,null,rt.createElement(md,{size:32}),rt.createElement(dk,{title:ks.t("No results found"),description:ks.t("Try using different keywords")})):rt.createElement(Rr,{as:"ul",key:`${r}-${o}`},a.map(u=>rt.createElement(mk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:rt.createElement(uk,{src:u.logo,size:30}),title:rt.createElement(dd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return rt.createElement(pd,null,rt.createElement(dd,{variant:"label",size:"large"},ks.t("Select Blockchain")),rt.createElement(md,{size:4}),l==="loading"&&rt.createElement(ud,null),l==="success"&&p())}i(vs,"BlockchainList");function ws(t){let{type:e}=t,o=tt(),[n,r]=hd(""),[a,s]=hd("ALL"),l=Y.use.setToBlockchain(),p=Y.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),f=hk(c)!==1;return _t.createElement(ce,{header:{title:fd.t("Select Blockchain")}},_t.createElement(fe,{view:!0},f&&_t.createElement(_t.Fragment,null,_t.createElement(yk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),_t.createElement(gd,{size:24})),_t.createElement(Lt,{value:n,autoFocus:!0,placeholder:fd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),_t.createElement(gd,{size:16}),_t.createElement(vs,{list:c,searchedFor:n,blockchainCategory:a,onChange:d=>{e==="source"?p(d):l(d),o()}})))}i(ws,"SelectBlockchainPage");import{i18n as ii}from"@lingui/core";import{Divider as $d}from"@rango-dev/ui";import ho,{useState as Pk}from"react";import{useNavigate as _k}from"react-router-dom";import{i18n as Es}from"@lingui/core";import{BlockchainsChip as ti,Divider as Td,Image as kd,Skeleton as vk,Tooltip as wk,Typography as Is}from"@rango-dev/ui";import Le from"react";import{useEffect as Tk}from"react";var yd=["ETH","COSMOS","OSMOSIS"];function xs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Sk),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(Ck(s)),r=n.splice(a)}return{list:n,more:r}}i(xs,"prepare");function Sk(t,e){let o=yd,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(Sk,"sortByMostUsedBlockchains");function Ck(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(Ck,"generateSortByPreferredBlockchainsFor");function Sd(t,e){return!!e.list.find(o=>o.name===t)}i(Sd,"isInVisibleList");function bs(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Tk(()=>{if(e?.selected){let a=xs(t,o,e);Sd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=xs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(bs,"usePrepareBlockchainList");import{styled as kk}from"@rango-dev/ui";var Cd=kk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var xk=12;function As(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=bs(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=Y.use.resetToBlockchain(),u=Y.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,f=!m&&c;return Le.createElement(Le.Fragment,null,Le.createElement(Td,{size:12}),Le.createElement(Is,{variant:"label",size:"large"},Es.t("Select Blockchain")),Le.createElement(Td,{size:12}),Le.createElement(Cd,null,l==="loading"&&Array.from(Array(xk),d=>Le.createElement(vk,{key:d,variant:"rounded",height:50})),l==="success"&&Le.createElement(Le.Fragment,null,Le.createElement(ti,{selected:!n,onClick:()=>{o==="from"?u():p()}},Le.createElement(Is,{variant:"body",size:"xsmall",color:"secondary500"},Es.t("All"))),s.list.map(d=>Le.createElement(wk,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:_()},Le.createElement(ti,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Le.createElement(kd,{src:d.logo,size:30})))),m?Le.createElement(ti,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Le.createElement(kd,{src:s.more[0].logo,size:30})):null,f?Le.createElement(ti,{onClick:a,key:"more-blockchains"},Le.createElement(Is,{variant:"body",size:"xsmall",color:"secondary500"},Es._("More +{count}",{count:s.more.length}))):null)))}i(As,"BlockchainsSection");import{i18n as Fs}from"@lingui/core";import{darkTheme as Ld,Divider as Oo,ExternalLinkIcon as Ik,Image as Ak,ListItemButton as Nk,NotFound as Wk,PinIcon as Mk,Skeleton as Bd,Typography as ri,VirtualizedList as Lk}from"@rango-dev/ui";import K,{useEffect as Pd,useState as _d}from"react";import{Divider as Wd,ListItem as Ek,Skeleton as kn}from"@rango-dev/ui";import mt from"react";import{css as Fo,darkTheme as vd,ImageContainer as bk,styled as it,Typography as wd}from"@rango-dev/ui";var Ns=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ws=Fo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ms=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Ls=Fo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${vd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Bs=Fo({}),Ps=Fo(),xd=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),_s=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),oi=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ws}`]:{[`& .${Ls}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Bs}`]:{bottom:"-15px"},[`& .${Ns}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ms}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ds=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),$s=it(wd,{}),bd=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Ps}`]:{$$color:"$colors$neutral600",[`.${vd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ni=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),wU=it("div",{display:"flex",alignItems:"center"}),Ed=it("div",{position:"relative",[`& ${bk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Id=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Ad=it(wd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Nd=it("a",{"& svg:hover":{color:"$colors$info"}});function Md(t){return mt.createElement(oi,null,Array.from(Array(t.size),e=>mt.createElement(Ek,{key:e,hasDivider:!0,start:mt.createElement(kn,{variant:"circular",width:35,height:35}),end:mt.createElement(ni,null,mt.createElement(kn,{variant:"text",size:"large",width:70}),mt.createElement(Wd,{size:4}),mt.createElement(kn,{variant:"text",size:"medium",width:50})),title:mt.createElement("div",null,mt.createElement(kn,{variant:"text",size:"large",width:90}),mt.createElement(Wd,{size:4}),mt.createElement(kn,{variant:"text",size:"medium",width:90}))})))}i(Md,"LoadingTokenList");var Os=20,Bk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return K.createElement("div",{className:Ws()},o?K.createElement("div",{className:Ns()},o):K.createElement(_s,{className:Ms()},K.createElement(ri,{variant:"title",size:"xmedium"},r.symbol),K.createElement(Oo,{direction:"horizontal",size:4}),K.createElement(Ds,{css:a},K.createElement($s,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&K.createElement("div",{className:`${Ls()} ${!o&&Bs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",K.createElement(Oo,{size:4,direction:"horizontal"}),K.createElement(Nd,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},K.createElement(Ik,{size:12}))))},"renderDesc");function Dd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=_d(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=_d(!0),{getBalanceFor:m,loading:f}=te(),{isTokenPinned:d}=h(),g=i(()=>{s(e.slice(0,a.length+Os))},"loadNextPage");Pd(()=>{c(e.length>a.length)},[a.length]),Pd(()=>{s(e.slice(0,Os))},[e.length,r]);let S=i(()=>!a.length&&o?K.createElement(K.Fragment,null,K.createElement(Oo,{size:32}),K.createElement(Wk,{title:Fs.t("No results found"),description:Fs.t("Try using different keywords")})):K.createElement(Lk,{endReached:u?g:void 0,itemContent:C=>{let y=a[C],T=Un(m(y)),k=y.address||"",v=p.find(w=>w.name===y.blockchain),I=aa(v.color,"main"),N={$$color:I.main150,[`.${Ld} &`]:{$$color:I.main750},backgroundColor:"$$color"},x={$$color:I.main750,[`.${Ld} &`]:{$$color:I.main150},color:"$$color"};return K.createElement("div",{style:{paddingRight:5}},K.createElement(Nk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":C,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[C]),start:K.createElement(Ed,null,K.createElement(Ak,{src:y.image,size:30}),d(y,t.type)&&K.createElement(Id,null,K.createElement(Mk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?K.createElement(_s,null,K.createElement(ri,{variant:"title",size:"xmedium"},y.symbol),K.createElement(Oo,{direction:"horizontal",size:4}),K.createElement(Ds,{css:N},K.createElement($s,{variant:"body",size:"xsmall",css:x},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?Bk({address:k,token:a[C],customCssForTag:N,customCssForTagTitle:x,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:f?K.createElement(ni,null,K.createElement(Bd,{variant:"text",size:"large",width:70}),K.createElement(Oo,{size:4}),K.createElement(Bd,{variant:"text",size:"medium",width:50})):T&&K.createElement(bd,null,K.createElement(Ad,{variant:"title",size:"small"},T.amount),K.createElement("div",null),T.usdValue&&K.createElement(ri,{variant:"body",className:Ps(),size:"xsmall"},`$${T.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return K.createElement(xd,null,K.createElement(ri,{variant:"label",size:"large"},Fs.t("Select Token")),K.createElement(Oo,{size:4}),l==="loading"&&K.createElement(Md,{size:Os}),l==="success"&&K.createElement(oi,{as:"ul"},S()))}i(Dd,"TokenList");function Us(t){let{type:e}=t,o=_k(),n=tt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=Y(),c=te.use.getBalanceFor(),[m,f]=Pk(""),g=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),C=h().tokens({type:e,blockchain:g,searchFor:m,getBalanceFor:c}),y=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:C}}):l({token:v,meta:{blockchains:S,tokens:C}})},"updateToken"),k={source:ii.t("Source"),destination:ii.t("Destination")};return ho.createElement(ce,{header:{title:ii.t("Swap {type}",{type:k[e]})}},ho.createElement(fe,null,ho.createElement(As,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:v=>{y(v)}}),ho.createElement($d,{size:24}),ho.createElement(Lt,{value:m,autoFocus:!0,placeholder:ii.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>f(""),onChange:v=>f(v.target.value)}),ho.createElement($d,{size:16}),ho.createElement(Dd,{list:C,selectedBlockchain:g,searchedFor:m,type:e,onChange:v=>{T(v);let I=S.find(N=>v.blockchain===N.name);I&&y(I),n()}})))}i(Us,"SelectSwapItemsPage");import{i18n as Hs}from"@lingui/core";import{Alert as av,Button as sv,styled as lv}from"@rango-dev/ui";import yo from"react";import{useInRouterContext as pv,useSearchParams as cv}from"react-router-dom";import{i18n as qd}from"@lingui/core";import{Divider as Ok,InfoIcon as Uk,TextField as Qk,Tooltip as zk,Typography as Hd}from"@rango-dev/ui";import dt from"react";import{Chip as Dk,styled as vn,TextField as $k}from"@rango-dev/ui";var Fd=vn("div",{paddingTop:"$5",padding:"$10 $5"}),Od=vn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${$k}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Ud=vn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ai=vn("div",{maxWidth:"280px",padding:"$10"}),Qd=vn(Dk,{width:"61px",flexShrink:0});import{i18n as Qs}from"@lingui/core";import{Typography as Fk}from"@rango-dev/ui";import wn from"react";function zd(){return wn.createElement(ai,null,wn.createElement(Fk,{variant:"label",size:"medium",color:"neutral700"},Qs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),wn.createElement("br",null),wn.createElement("br",null),wn.createElement("b",null,Qs.t("Warning")),":",Qs.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(zd,"SlippageTooltipContent");function zs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return dt.createElement(Fd,null,dt.createElement(Ud,null,dt.createElement(Hd,{variant:"title",size:"xmedium"},qd.t("Slippage tolerance per swap")),dt.createElement(Ok,{direction:"horizontal",size:4}),dt.createElement(zk,{container:_(),side:"top",sideOffset:4,content:dt.createElement(zd,null)},dt.createElement(Uk,{color:"gray"}))),dt.createElement(Od,null,ep.map((r,a)=>{let s=`slippage-${a}`;return dt.createElement(Qd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),dt.createElement(Qk,{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>=rp&&s<=np?n(s):n(null)},suffix:o&&dt.createElement(Hd,{variant:"body",size:"small"},"%"),placeholder:qd.t("Custom")})))}i(zs,"Slippage");import{i18n as xt}from"@lingui/core";import{AutoThemeIcon as Gd,BridgesIcon as qk,ChevronRightIcon as qs,DarkModeIcon as Vd,Divider as si,ExchangeIcon as Hk,InfinityIcon as Gk,InfoIcon as Vk,LanguageIcon as Xk,LightModeIcon as Xd,List as Kk,ListItem as jk,ListItemButton as Yk,Skeleton as Zk,styled as Jk,Switch as Rk,Tabs as ev,Tooltip as tv,Typography as at}from"@rango-dev/ui";import U from"react";import{useNavigate as ov}from"react-router-dom";var nv=Jk("div",{width:"202px",height:"$40"}),rv=[{id:"light",icon:U.createElement(Xd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},xt.t("Light"))},{id:"dark",icon:U.createElement(Vd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},xt.t("Dark"))},{id:"auto",icon:U.createElement(Gd,{color:"black",size:24}),tooltip:U.createElement(at,{size:"xsmall",variant:"body"},xt.t("Auto"))}],iv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Gd,{...e});case"dark":return U.createElement(Vd,{...e});default:return U.createElement(Xd,{...e})}},"getThemeIcon");function Kd(){let t=ov(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Xt(),s=a.find(z=>z.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),m=Je("theme",c),f=Je("liquiditySource",c),d=Je("language",c),g=h().infiniteApprove,S=h().toggleInfiniteApprove,C=Gn(p,u),y=C.filter(z=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(z.type)),T=y.length,k=y.filter(z=>z.selected).length,v=C.filter(z=>z.type==="DEX"),I=v.length,N=v.filter(z=>z.selected).length,x=i((z,j)=>{switch(l){case"loading":return U.createElement(Zk,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(at,{variant:"body",size:"medium",color:"$error500"},xt.t("Loading failed"));default:return U.createElement(at,{variant:"body",size:"medium"},`${z} / ${j}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:U.createElement(at,{variant:"title",size:"xmedium"},xt.t("Bridges")),end:U.createElement(U.Fragment,null,x(k,T),U.createElement(si,{direction:"horizontal",size:8}),U.createElement(qs,{color:"black"})),onClick:()=>t(q.bridges),start:U.createElement(qk,{color:"gray",size:16})},b={id:"exchange-item",title:U.createElement(at,{variant:"title",size:"xmedium"},xt.t("Exchanges")),end:U.createElement(U.Fragment,null,x(N,I),U.createElement(si,{direction:"horizontal",size:8}),U.createElement(qs,{color:"black"})),start:U.createElement(Hk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},E={id:"language-item",title:U.createElement(at,{variant:"title",size:"xmedium"},xt.t("Language")),start:U.createElement(Xk,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(at,{variant:"body",size:"medium"},s),U.createElement(si,{direction:"horizontal",size:8}),U.createElement(qs,{color:"black"})),onClick:()=>t(q.languages)},P={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(at,{variant:"title",size:"xmedium"},xt.t("Infinite approval")),U.createElement(si,{direction:"horizontal",size:4}),U.createElement(tv,{side:"top",sideOffset:4,container:_(),content:U.createElement(ai,null,U.createElement(at,{variant:"label",size:"medium",color:"neutral700"},xt.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(Vk,{color:"gray"}))),start:U.createElement(Gk,{color:"gray",size:16}),end:U.createElement(Rk,{checked:g}),onClick:S},Q={id:"theme-item",type:U.createElement(jk,null),title:U.createElement(at,{variant:"title",size:"xmedium"},xt.t("Theme")),end:U.createElement(nv,null,U.createElement(ev,{container:_(),items:rv,value:n,onChange:z=>o(z.id),type:"primary",borderRadius:"small"})),start:iv(n)},A=f?[]:[w,b];return d||A.push(E),A.push(P),!e?.singleTheme&&!m&&A.push(Q),U.createElement(Kk,{type:U.createElement(Yk,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:A})}i(Kd,"SettingsLists");var uv=lv("div",{paddingLeft:"$8"});function jd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=cv(),r=pv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return yo.createElement(ce,{header:{title:Hs.t("Settings")}},yo.createElement(fe,null,o&&yo.createElement(av,{type:"info",variant:"alarm",title:Hs.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:yo.createElement(uv,null,yo.createElement(sv,{type:"secondary",size:"small",onClick:a},Hs.t("Reset")))}),yo.createElement(zs,null),yo.createElement(Kd,null)))}i(jd,"SettingsPage");import{i18n as Zv}from"@lingui/core";import{cancelSwap as Jv}from"@rango-dev/queue-manager-rango-preset";import{useManager as Rv}from"@rango-dev/queue-manager-react";import{Alert as ew}from"@rango-dev/ui";import ll from"react";import{useParams as tw}from"react-router-dom";import{i18n as ft}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Lv,getCurrentStep as Bv,getRelatedWalletOrNull as Pv}from"@rango-dev/queue-manager-rango-preset";import{Button as If,CopyIcon as _v,Divider as Dv,IconButton as $v,QuoteCost as Fv,RangoExplorerIcon as Ov,StepDetails as Uv,Tooltip as Qv,Typography as Co,useCopyToClipboard as zv}from"@rango-dev/ui";import{useWallets as qv}from"@rango-dev/wallets-react";import Af from"bignumber.js";import{PendingSwapNetworkStatus as hi}from"rango-types";import ee,{useEffect as Nf,useRef as Hv,useState as Wf}from"react";import{useNavigate as Gv}from"react-router-dom";import{i18n as Kt}from"@lingui/core";var mv=[Kt.t("Sunday"),Kt.t("Monday"),Kt.t("Tuesday"),Kt.t("Wednesday"),Kt.t("Thursday"),Kt.t("Friday"),Kt.t("Saturday")];function Yd(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Kt.t("Today"):`${mv[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Yd,"timeSince");function Zd(t){return t.finishTime?Yd(parseInt(t.finishTime)):Yd(parseInt(t.creationTime))}i(Zd,"getSwapDate");import{PendingSwapNetworkStatus as ci}from"rango-types";import ui from"react";import{i18n as li}from"@lingui/core";import{Button as Jd,Divider as Gs,MessageBox as dv}from"@rango-dev/ui";import jt from"react";var Rd=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Gs,{size:20}),jt.createElement(dv,{type:"error",title:li.t("Cancel Swap"),description:li.t("Are you sure you want to cancel this swap?")}),jt.createElement(Gs,{size:32}),jt.createElement(Jd,{variant:"contained",type:"primary",size:"large",onClick:t},li.t("Yes, Cancel it")),jt.createElement(Gs,{size:12}),jt.createElement(Jd,{variant:"outlined",type:"primary",size:"large",onClick:e},li.t("No, Continue"))),"CancelContent");import{i18n as pi}from"@lingui/core";import{Button as ef,Divider as Vs,MessageBox as fv,Typography as gv}from"@rango-dev/ui";import Dt from"react";var tf=i(({onDelete:t,onClose:e})=>Dt.createElement(Dt.Fragment,null,Dt.createElement(Vs,{size:20}),Dt.createElement(fv,{type:"error",title:pi.t("Delete Transaction"),description:pi.t("Are you sure you want to delete this swap?")}),Dt.createElement(Vs,{size:32}),Dt.createElement(ef,{variant:"contained",type:"primary",size:"large",onClick:t},pi.t("Yes, Delete it")),Dt.createElement(Vs,{size:12}),Dt.createElement(ef,{variant:"outlined",type:"primary",size:"large",onClick:e},Dt.createElement(gv,{variant:"title",size:"medium",color:"primary"},pi.t("No, Cancel")))),"DeleteContent");import{i18n as Xs}from"@lingui/core";import{PendingSwapNetworkStatus as Ks}from"rango-types";var js={[Ks.WaitingForNetworkChange]:{type:"loading",title:Xs.t("Change Network")},[Ks.WaitingForConnectingWallet]:{type:"warning",title:Xs.t("Connect Wallet")},[Ks.NetworkChanged]:{type:"success",title:Xs.t("Network Changed")}};import{debug as Ys}from"@rango-dev/logging-core";import{MessageBox as hv,Wallet as yv}from"@rango-dev/ui";import{useWallets as Sv}from"@rango-dev/wallets-react";import So,{useState as rf}from"react";import{styled as of}from"@rango-dev/ui";var nf=of("div",{display:"flex",justifyContent:"center"}),uz=of("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var af=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Sv(),[c,m]=rf(null),[f,d]=rf(null),g=n?.walletType,S=g?Bi(u(g)):null,C=g?p(g):null,y=a&&!!g&&!!S&&!!C,T=i(()=>{c&&m({...c,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{f&&d({...f,open:!1})},"handleCloseDerivationPathModal"),v=i(N=>{C?.needsDerivationPath&&C?.singleNamespace&&N[0]&&g?d({open:!0,providerType:g,providerImage:C.img,namespace:N[0]}):l(c?.providerType,void 0,N.map(x=>({namespace:x}))).catch(x=>Ys(x)),T()},"handleConfirmNamespaces"),I=i(N=>{N&&f?.namespace&&l(f?.providerType,void 0,[{namespace:f.namespace,derivationPath:N}]).catch(x=>Ys(x)),k()},"handleDerivationPathConfirm");return So.createElement(So.Fragment,null,So.createElement(hv,{type:e,title:o,description:r}),y&&So.createElement(nf,null,So.createElement(yv,{container:_(),title:C.name,image:C.img,type:g,state:S,link:C.installLink,disabled:s,onClick:async()=>{C.namespaces?m({open:!0,providerType:g,providerImage:C.img,availableNamespaces:C.namespaces,singleNamespace:C.singleNamespace}):l(g).catch(N=>Ys(N))}})),So.createElement(po,{open:!!c?.open,onClose:T,onConfirm:v,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),So.createElement(so,{open:!!f?.open,selectedNamespace:f?.namespace,type:f?.providerType,image:f?.providerImage,onClose:k,onConfirm:I}))},"WalletStateContent");function Zs(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ci.WaitingForNetworkChange||e===ci.WaitingForConnectingWallet||e===ci.NetworkChanged;return ui.createElement(re,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&ui.createElement(af,{type:js[e].type,title:js[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ci.WaitingForNetworkChange}),e==="delete"&&ui.createElement(tf,{onClose:o,onDelete:n}),e==="cancel"&&ui.createElement(Rd,{onClose:o,onCancel:r}))}i(Zs,"SwapDetailsModal");import{i18n as xn}from"@lingui/core";import{Button as Js,Divider as mi,MessageBox as sf,TokenAmount as Cv,Typography as Rs}from"@rango-dev/ui";import Pe from"react";import{useNavigate as Tv}from"react-router-dom";function el(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:f}=t,d=Tv();return Pe.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Pe.createElement(sf,{type:"success",title:xn.t("Swap Successful")},Pe.createElement(Cv,{direction:"vertical",tooltipContainer:_(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Pe.createElement(mi,{size:12}),Pe.createElement(Rs,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Pe.createElement(sf,{type:"error",title:xn.t("Transaction Failed"),description:m}),Pe.createElement(mi,{size:32}),n==="success"&&Pe.createElement(Js,{variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},Pe.createElement(Rs,{variant:"title",size:"medium",color:"neutral100"},xn.t("Done"))),Pe.createElement(mi,{size:12}),f&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Js,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},xn.t("Diagnosis")),Pe.createElement(mi,{size:12})),Pe.createElement(Js,{variant:"outlined",type:"primary",size:"large",onClick:o},Pe.createElement(Rs,{variant:"title",size:"medium",color:"primary"},xn.t("See Details"))))}i(el,"SwapDetailsCompleteModal");import Mv from"react";import{i18n as Iv}from"@lingui/core";import{Alert as wf,IconButton as Av,LinkIcon as Nv}from"@rango-dev/ui";import Yt,{Fragment as Wv}from"react";import{Alert as wv,ChevronDownIcon as xv,IconButton as bv}from"@rango-dev/ui";import Qo,{useState as Ev}from"react";import{css as bn,darkTheme as kv,styled as $t,Typography as vv}from"@rango-dev/ui";var lf=$t("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),di=$t("div",{width:"100%"}),pf=$t(Zo,{padding:"$0 $20 $20 $20"}),Kz=$t("div",{display:"flex",flexDirection:"column",gap:"$10"}),cf=$t("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),jz=$t("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Uo=bn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${kv} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),uf=bn({padding:"$5 0"}),fi=bn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),mf=bn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),df=bn({width:"100%",padding:"0 $20 $10"}),ff=$t("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),gf=$t("div",{display:"flex",flexDirection:"column",gap:"$5"}),gi=$t(vv,{wordBreak:"break-word"});import{styled as tl}from"@rango-dev/ui";var hf=tl("div",{display:"flex",flexDirection:"column",gap:"$10"}),yf=tl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Sf=tl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Cf(t){let{message:e}=t,[o,n]=Ev(!1);return Qo.createElement(wv,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Qo.createElement(bv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Qo.createElement(yf,{rotated:o},Qo.createElement(xv,{size:12,color:"gray"}))),footer:Qo.createElement(Sf,{open:o},Qo.createElement(gi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Cf,"FailedAlert");import{i18n as Tf}from"@lingui/core";import{Alert as ol,Button as kf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as nl}from"rango-types";import En from"react";function vf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?En.createElement(ol,{type:"warning",title:n.shortMessage,action:En.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(nl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Tf.t("Change"))}):r===nl.WaitingForConnectingWallet?En.createElement(ol,{type:"warning",title:n.shortMessage,action:En.createElement(kf,{size:"xxsmall",type:"warning",onClick:()=>{o(nl.WaitingForConnectingWallet)}},Tf.t("Connect"))}):En.createElement(ol,{type:"warning",title:n.shortMessage})}i(vf,"WarningAlert");function rl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=jo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Yt.createElement(hf,null,a.explorerUrl?.map((m,f,d)=>{let g=f+m.url,S=f===d.length-1,C=(S&&u||p)&&!c,y=S&&a.status==="failed";return Yt.createElement(Wv,{key:g},Yt.createElement(wf,{type:S&&(C&&"loading"||y&&"error")||"success",title:m.description?`${m.description} Tx`:Iv.t("View transaction"),action:m.url&&Yt.createElement(Av,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},Yt.createElement(Nv,{size:12}))}))}),c&&Yt.createElement(wf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(vf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(Cf,{message:r}))}i(rl,"SwapDetailsAlerts");var xf=2e3;var bf=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:Ze(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Ze(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable}},swapper:{displayName:qo(a.swapperId,o),image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:Ze(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Ze(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:qo(p.swapperId,o),image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Mv.createElement(rl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Ef(t){if(jo(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(Ef,"getStepState");function il(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=qv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),m=Y.use.retry(),f=ae.use.isActiveTab(),d=Gv(),[g,S]=zv(xf),C=Hv(null),[y,T]=Wf(null),[k,v]=Wf(null),I=i(()=>{r(),T(null)},"onCancel"),N=xe.use.getNotifications(),x=xe.use.removeNotification(),w=N(),b=Bv(e),E=b?.networkStatus;Nf(()=>{w.find(W=>W.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),Nf(()=>{B?T(hi.WaitingForNetworkChange):E===hi.WaitingForConnectingWallet||E===hi.NetworkChanged?T(E):T(null)},[E]);let P=Mp(e),Q=b?Lv(e,b):null,A=b?Pv(e,b):null,z=Zd(e),j=Lp(e),G=i(de=>!!l(de)?.mobileWallet,"isMobileWallet"),B=E===hi.WaitingForNetworkChange&&!!Q&&!!A?.walletType&&(G(A.walletType)||a(A.walletType,Q)),Z=B?s.bind(null,A.walletType,Q):void 0,ie=Wp(e,b),J=bf({swap:e,switchNetwork:Z,showNetworkModal:E,setNetworkModal:T,message:ie,blockchains:p,swappers:u}),ne=J.length,[ge,Ce]=[e.steps[0],e.steps[ne-1]],D=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,L=e.steps.reduce((de,W)=>de+parseFloat(W.feeInUsd||""),0),me=e.steps.find(de=>de.diagnosisUrl)?.diagnosisUrl,se=M(parseFloat(M(D,6,6))*(Ce.toUsdPrice||0),4,4),_e=M(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),st=D?new Af(D).multipliedBy(Ce.toUsdPrice||0).toString():"",De=new Af(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),Ge=Re(_e,se),Ve=ie.detailedMessage.content||ie.shortMessage,ve=e.status==="success"?ft.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(D,6,6),token:J[ne-1].to.token.displayName,conciseAddress:Qn(e.wallets[J[ne-1].to.chain.displayName]?.address||""),chain:J[ne-1].to.chain.displayName}}):ee.createElement(gf,null,ee.createElement(Co,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ve?"":ft.t("Transaction was not sent."),P?`${ft.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}})}`:""),Ve&&ee.createElement(gi,{align:"center",variant:"body",size:"medium",color:"neutral700"},ee.createElement("b",null,"Reason:")," ",Ve));return ee.createElement(ce,{header:{title:ft.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&ee.createElement(Io,null,ee.createElement(If,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},ee.createElement(Co,{size:"medium",variant:"label",color:"error"},ft.t("Delete"))))},footer:j&&!k&&ee.createElement(If,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let de=nr(e,p,c);m(de),setTimeout(()=>{d("../../")},0)}},ft.t("Try again"))},ee.createElement(fe,{compact:!0,view:!0},ee.createElement(di,null,ee.createElement("div",{className:Uo()},ee.createElement(Co,{variant:"label",size:"large",color:"neutral700"},`${ft.t("Request ID")}:`),ee.createElement("div",{className:fi()},ee.createElement(Co,{variant:"label",size:"small",color:"neutral700"},o),ee.createElement($v,{variant:"ghost",onClick:S.bind(null,o||"")},ee.createElement(_v,{size:16,color:"gray"})),ee.createElement(ff,{target:"_blank",href:`${hl}/swap/${o}`},ee.createElement(Qv,{container:_(),content:ft.t("View on Rango Explorer"),side:"bottom"},ee.createElement(Ov,{size:20}))))),ee.createElement("div",{className:Uo()},ee.createElement(Co,{variant:"label",size:"large",color:"neutral700"},e.finishTime?ft.t("Finished at"):ft.t("Created at")),ee.createElement(Co,{variant:"label",size:"small",color:"neutral700"},z))),ee.createElement("div",{className:mf()},ee.createElement(Fv,{fee:M(String(L),2,2),time:Ho(Pn(e.steps)),steps:ne}),ee.createElement(sn,{from:{price:{value:M(e.inputAmount,6,6),usdValue:_e,realUsdValue:De,realValue:e.inputAmount},token:{displayName:J[0].from.token.displayName,image:J[0].from.token.image},chain:{image:J[0].from.chain.image,displayName:J[0].from.chain.displayName}},to:{price:{value:M(D,6,6),usdValue:se,realUsdValue:st,realValue:D},token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image,displayName:J[ne-1].to.chain.displayName}},percentageChange:M(Ge,2,2),warningLevel:It(Ge??0)})),ee.createElement("div",{className:df()},ee.createElement(Co,{variant:"title",size:"small"},ft.t("Swaps steps"))),ee.createElement(Dv,{size:8}),ee.createElement(pf,{ref:C},J.map((de,W)=>{let V=W,X=Ef(e.steps[W]),Xe=X==="error"||X==="in-progress"||X==="warning"||X==="completed"&&W===J.length-1;return ee.createElement(Uv,{key:V,step:de,type:"swap-progress",ref:C,state:X,hasSeparator:W!==0,tabIndex:V,isFocused:Xe,tooltipContainer:_()})}))),ee.createElement(Zs,{state:y,onClose:()=>T(null),onCancel:I,onDelete:n,message:ie.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!f}),ee.createElement(el,{open:!!k,diagnosisUrl:me,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(D,6,6),usdValue:se,realUsdValue:st,realValue:D||"",percentageChange:M(Ge,2,2),token:{displayName:J[ne-1].to.token.displayName,image:J[ne-1].to.token.image},chain:{image:J[ne-1].to.chain.image},description:ve}))}i(il,"SwapDetails");import{i18n as Si}from"@lingui/core";import{Divider as Bf,NotFound as Yv,Skeleton as An,Typography as Ci}from"@rango-dev/ui";import Se from"react";import{i18n as Vv}from"@lingui/core";import{Divider as Xv,Skeleton as Kv,Typography as jv}from"@rango-dev/ui";import ke from"react";import{css as gt,styled as al}from"@rango-dev/ui";var Mf=al("div",{width:"100%",height:"100%",padding:"$10 $20"}),In=al("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),yi=al("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),sH=gt({display:"flex",justifyContent:"space-between",alignItems:"center"}),lH=gt({display:"flex",justifyContent:"space-between",alignItems:"center"}),pH=gt({paddingTop:"$15",display:"flex"}),cH=gt({padding:"$15 $0"}),uH=gt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),mH=gt({paddingBottom:"$10"}),dH=gt({display:"flex",justifyContent:"start",alignItems:"center"}),fH=gt({paddingTop:"$5",display:"flex",alignItems:"center"}),gH=gt({display:"flex",alignItems:"center"}),hH=gt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Lf=gt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function sl(){return ke.createElement(Mf,null,ke.createElement(cn,{type:"swap-preview"}),ke.createElement("div",{className:"swaps-steps"},ke.createElement(jv,{variant:"title",size:"small"},Vv.t("Swaps steps"))),ke.createElement(ke.Fragment,null,ke.createElement(In,null,ke.createElement(vt,{separator:!1}),ke.createElement("div",{className:Lf()},ke.createElement(Xv,{direction:"horizontal",size:20}),ke.createElement(Kv,{height:22,variant:"rectangular"}))),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(vt,{separator:!1})),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(vt,{separator:!1})),ke.createElement(yi,null),ke.createElement(In,null,ke.createElement(vt,{separator:!1}))))}i(sl,"LoadingSwapDetails");function Pf(t){let{requestId:e,showSkeleton:o}=t;return Se.createElement(ce,{header:{title:Si.t("Swap Details"),suffix:Se.createElement(Io,null)}},o&&Se.createElement(lf,null,Se.createElement(di,null,Se.createElement("div",{className:Uo()},Se.createElement(Ci,{variant:"label",size:"large",color:"neutral700"},`${Si.t("Request ID")}:`),Se.createElement("div",{className:fi()},Se.createElement(Ci,{variant:"label",size:"small",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})),Se.createElement(Bf,{direction:"horizontal",size:4}),Se.createElement(An,{width:16,height:16,variant:"rectangular"}),Se.createElement(Bf,{direction:"horizontal",size:4}),Se.createElement(An,{width:16,height:16,variant:"rectangular"}))),Se.createElement("div",{className:Uo()},Se.createElement(Ci,{className:uf(),variant:"label",size:"large",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})),Se.createElement(Ci,{variant:"label",size:"small",color:"neutral700"},Se.createElement(An,{width:60,height:10,variant:"rounded"})))),Se.createElement(sl,null)),!o&&Se.createElement(cf,null,Se.createElement(Yv,{title:Si.t("Not found"),description:Si.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Pf,"SwapDetailsPlaceholder");function _f(){let{manager:t,state:e}=Rv(),o=!e.loadedFromPersistor,n=ot(t),{requestId:r}=tw(),a=tt(),{fetchStatus:s}=h();if(!r)return ll.createElement(ew,{containerStyles:{margin:"20px"},type:"error",title:Zv.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:f})=>f.requestId===r):void 0,u=i(()=>{if(p?.id){let f=t?.get(p.id);f&&Jv(f)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(f){console.log(f)}},"onDelete"),m=p?.swap;return!m||l?ll.createElement(Pf,{requestId:r,showSkeleton:l}):ll.createElement(il,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(_f,"SwapDetailsPage");function Df(){return zp(),ea(),ow([{path:q.home,element:He.createElement(td,null)},{path:q.routes,element:He.createElement(ad,null)},{path:q.fromSwap,children:[{index:!0,element:He.createElement(Us,{type:"source"})},{path:q.blockchains,element:He.createElement(ws,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:He.createElement(Us,{type:"destination"})},{path:q.blockchains,element:He.createElement(ws,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:He.createElement(jd,null)},{path:q.languages,element:He.createElement(nd,null)},{path:q.exchanges,element:He.createElement(Ts,{sourceType:"Exchanges"})},{path:q.bridges,element:He.createElement(Ts,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:He.createElement(Pm,null)},{path:q.swapDetails,element:He.createElement(_f,null)}]},{path:q.wallets,element:He.createElement(Gc,null)},{path:q.confirmSwap,element:He.createElement(vm,null)}])}i(Df,"AppRoutes");import{useQueueManager as uw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as mw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as dw}from"rango-sdk";import{useContext as fw,useEffect as qf,useState as Hf}from"react";import{globalCss as nw}from"@rango-dev/ui";var $f=i(()=>nw({"@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 Ff(){let{setWatermark:t}=ae();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(Ff,"useFetchApiConfig");import{useWallets as rw}from"@rango-dev/wallets-react";import{useEffect as iw,useRef as aw}from"react";function Of(){let{connect:t,state:e}=rw(),o=aw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);iw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Of,"useForceAutoConnect");import{isApprovalTX as sw,RouteEventType as Uf,StepEventType as Qf,StepExecutionEventStatus as lw,WidgetEvents as Ti}from"@rango-dev/queue-manager-rango-preset";import{useEffect as zf}from"react";function pl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=xe.use.setNotification(),{findToken:n}=h();zf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===Qf.TX_EXECUTION&&s.status===lw.TX_SENT&&!sw(l)||s.type===Qf.SUCCEEDED){let c=t.find(f=>f.chain===l?.fromBlockchain),m=l?.fromBlockchain!==l?.toBlockchain&&t.find(f=>f.chain===l?.toBlockchain);c&&e([c],n),m&&e([m],n)}o(s,p)},"handleStepEvent");return we.on(Ti.StepEvent,r),()=>we.off(Ti.StepEvent,r)},[we,t]),zf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Uf.FAILED||s.type===Uf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return we.on(Ti.RouteEvent,r),()=>we.off(Ti.RouteEvent,r)},[we])}i(pl,"useSubscribeToWidgetEvents");import{useManager as pw}from"@rango-dev/queue-manager-react";import{useEffect as cw}from"react";function cl(){let{isSynced:t,syncNotifications:e}=xe(),{manager:o,state:n}=pw();cw(()=>{xe.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ot(o))},[xe.persist.hasHydrated(),n.loadedFromPersistor,t])}i(cl,"useSyncNotifications");function ul(){Of(),$f(),pl(),cl();let t=h().blockchains(),{canSwitchNetworkTo:e}=br(),[o,n]=Hf(""),[r,a]=Hf(),s=fw(Xn),l=t.filter(dw),{fetchApiConfig:p}=Ff();qf(()=>()=>Qp(),[]),uw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),qf(()=>(eo.init(),xe.persist.hasHydrated()||xe.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===mw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(ul,"useBootstrap");import{styled as gw}from"@rango-dev/ui";var Gf=gw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function ki(){ul();let{config:t}=h(),{activeTheme:e}=fr(t?.theme||{}),{activeLanguage:o}=Xt();return ml.createElement(hw,{language:o},ml.createElement(Gf,{id:"swap-container",className:e()},ml.createElement(Df,null)))}i(ki,"Main");import{setSolanaSignerConfig as Dw}from"@rango-dev/signer-solana";import fl,{useEffect as Yf,useMemo as $w}from"react";import{useState as yw}from"react";var Sw=i(()=>{let[t,e]=yw(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=El(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Vf=Sw;import{checkWaitingForNetworkChange as Cw,makeQueueDefinition as Tw}from"@rango-dev/queue-manager-rango-preset";import{Provider as kw}from"@rango-dev/queue-manager-react";import{useWallets as vw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as ww}from"@rango-dev/wallets-shared";import{isEvmBlockchain as xw}from"rango-types";import bw,{useMemo as Ew}from"react";function Iw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=vw(),l=Ew(()=>Tw({API_KEY:t.apiKey||Et("API_KEY"),BASE_URL:Et("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),g=p.filter(xw),S=i(k=>{let{supportedChains:v}=s(k);return $n(v)},"getSupportedChainNames"),C=e(),y={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:ww(g),getSupportedChainNames:S},getSigners:o,wallets:c,providers:C,switchNetwork:m,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:f},T=ae.use.isActiveTab();return bw.createElement(kw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{Cw(k)},isPaused:!T},t.children)}i(Iw,"QueueManager");var Xf=Iw;import{useManager as Lw}from"@rango-dev/queue-manager-react";import Bw,{createContext as Pw,useContext as _w}from"react";import{cancelSwap as Aw,getCurrentBlockchainOfOrNull as Nw,getCurrentStep as Ww,getRelatedWalletOrNull as Mw}from"@rango-dev/queue-manager-rango-preset";var vi=class{static{i(this,"WidgetHistory")}manager;actions;constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return ot(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=nr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Aw(o)}getCurrentStepInfo(e){let o=Ww(e);return{step:o,wallet:o?Mw(e,o):null,network:o?Nw(e,o):null}}};var Kf=Pw(void 0);function dl(t){let{manager:e}=Lw(),o=ae.use.isActiveTab(),n=Y.use.retry(),{findToken:r}=h(),a=new vi(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=Pl(s),u=te.use.getWalletsDetails(),c=h().blockchains(),m=h().tokens(),f=h().swappers(),d=h().fetchStatus,g=Xt().resetLanguage,S=xe().getNotifications(),C=xe().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:T=>u(T,r)},meta:{blockchains:c,tokens:m,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:S,clearAll:C}};return Bw.createElement(Kf.Provider,{value:y},t.children)}i(dl,"WidgetInfo");function jf(){let t=_w(Kf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(jf,"useWidget");function wi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Vf();return Yf(()=>{n&&r(n)},[n]),$w(()=>{zl({API_KEY:o?.apiKey||Nn,BASE_URL:o?.apiUrl||gl})},[o.apiKey,o.apiUrl]),Yf(()=>{t.config?.signers?.customSolanaRPC&&Dw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),fl.createElement(Kn,{config:o,onUpdateState:e},fl.createElement(Xf,{apiKey:o.apiKey},fl.createElement(dl,null,t.children)))}i(wi,"WidgetProvider");function Zf(t){let e=t.config?.externalWallets;return xi.createElement(dp,null,e?xi.createElement(ki,null):xi.createElement(wi,{config:t.config??Ui},xi.createElement(ki,null)))}i(Zf,"Widget");function Jf(){let{on:t,off:e}=we;return{on:t,off:e}}i(Jf,"useWidgetEvents");export{B2 as EventSeverity,Xo as MainEvents,z2 as Networks,G2 as PendingSwapNetworkStatus,$i as QuoteEventTypes,P2 as RouteEventType,bi as SUPPORTED_FONTS,_2 as StepEventType,D2 as StepExecutionBlockedEventStatus,$2 as StepExecutionEventStatus,he as UI_ID,Fi as WalletEventTypes,U2 as WalletEvents,q2 as WalletTypes,Zf as Widget,Xo as WidgetEvents,wi as WidgetProvider,Kn as WidgetWallets,ca as customizedThemeTokens,O2 as readAccountAddress,no as useWalletList,br as useWallets,jf as useWidget,Jf as useWidgetEvents,ng as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map