@rango-dev/widget-embedded 0.30.1-next.5 → 0.30.1-next.7

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 (37) hide show
  1. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +1 -653
  2. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
  3. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
  4. package/dist/components/CustomDestination/CustomDestination.d.ts +4 -0
  5. package/dist/components/CustomDestination/CustomDestination.d.ts.map +1 -0
  6. package/dist/components/CustomDestination/CustomDestination.styles.d.ts +495 -0
  7. package/dist/components/CustomDestination/CustomDestination.styles.d.ts.map +1 -0
  8. package/dist/components/CustomDestination/CustomDestination.types.d.ts +7 -0
  9. package/dist/components/CustomDestination/CustomDestination.types.d.ts.map +1 -0
  10. package/dist/components/Quote/Quote.styles.d.ts +2 -2
  11. package/dist/components/RefreshModal/RefreshModal.styles.d.ts +2 -2
  12. package/dist/index.d.ts +4 -4
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +2 -2
  15. package/dist/index.js.map +4 -4
  16. package/dist/pages/Home.d.ts.map +1 -1
  17. package/dist/types/config.d.ts +5 -0
  18. package/dist/types/config.d.ts.map +1 -1
  19. package/dist/types/event.d.ts +21 -15
  20. package/dist/types/event.d.ts.map +1 -1
  21. package/dist/utils/events.d.ts +8 -0
  22. package/dist/utils/events.d.ts.map +1 -0
  23. package/dist/utils/swap.d.ts +1 -1
  24. package/dist/utils/swap.d.ts.map +1 -1
  25. package/dist/widget-embedded.build.json +1 -1
  26. package/package.json +1 -1
  27. package/src/components/ConfirmWalletsModal/ConfirmWallets.styles.ts +1 -49
  28. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +59 -178
  29. package/src/components/CustomDestination/CustomDestination.styles.ts +45 -0
  30. package/src/components/CustomDestination/CustomDestination.tsx +148 -0
  31. package/src/components/CustomDestination/CustomDestination.types.ts +7 -0
  32. package/src/index.ts +4 -0
  33. package/src/pages/Home.tsx +6 -3
  34. package/src/types/config.ts +3 -1
  35. package/src/types/event.ts +32 -16
  36. package/src/utils/events.ts +27 -0
  37. package/src/utils/swap.ts +4 -4
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var ig=Object.defineProperty;var i=(t,e)=>ig(t,"name",{value:e,configurable:!0});import{EventSeverity as V2,RouteEventType as K2,StepEventType as X2,StepExecutionBlockedEventStatus as j2,StepExecutionEventStatus as Y2}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as J2,useWallets as xr,Events as R2}from"@rango-dev/wallets-react";import{Networks as t5,WalletTypes as o5}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as r5}from"rango-types";import{UI_ID as ag}from"@rango-dev/ui";var An="c6381a79-2817-4602-83bf-6a641a409e32",hl="https://api.rango.exchange",yl="https://explorer.rango.exchange",he={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...ag};var Sl="Roboto",xi=[{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 qi,Provider as eh}from"@rango-dev/wallets-react";import{isEvmBlockchain as th}from"rango-sdk";import Gn,{createContext as oh,useEffect as mp,useMemo as nh,useRef as dp}from"react";import{useEffect as Ig}from"react";import{create as xg}from"zustand";import{subscribeWithSelector as bg}from"zustand/middleware";import sg from"mitt";var we=sg(),lg={on:we.on,off:we.off};import{RangoClient as vg}from"rango-sdk";import{BlockchainCategories as gg,WalletState as Ct}from"@rango-dev/ui";import{readAccountAddress as hg}from"@rango-dev/wallets-react";import{detectInstallLink as yg,getCosmosExperimentalChainInfo as Sg,isEvmAddress as Tg,KEPLR_COMPATIBLE_WALLETS as hx,Networks as Wl}from"@rango-dev/wallets-shared";import Mi from"bignumber.js";import{isCosmosBlockchain as Cg}from"rango-types";import pg from"bignumber.js";var $e=new pg(0);import{WalletTypes as cg}from"@rango-dev/wallets-shared";var Tl=[cg.LEAP];import{BlockchainCategories as bi,WalletState as fg}from"@rango-dev/ui";import{TransactionType as Nn}from"rango-sdk";function Co(t){return Array.from(new Set(t))}i(Co,"removeDuplicateFrom");function Ai(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Ai,"areEqual");function bl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(bl,"debounce");function It(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(It,"containsText");function vl(t,e){return t.toLowerCase()===e.toLowerCase()}i(vl,"exactText");function wl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(wl,"startWithText");var P=i(()=>document.getElementById(he.SWAP_BOX_ID),"getContainer"),zo=i(()=>document.getElementById(he.EXPANDED_BOX_ID),"getExpanded");function xl(t,e,o){let n=!!e&&vl(e,t),r=!!o&&vl(o,t);return n!==r?n?-1:1:0}i(xl,"compareExactMatchText");function Ei(t,e,o){let n=!!e&&It(e,t),r=!!o&&It(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ei,"compareContainsText");function Ii(t,e,o){let n=!!e&&wl(e,t),r=!!o&&wl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ii,"compareStartWithText");function El(t,e,o){if(!o)return 0;let n=xl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=xl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Ii(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ei(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ii(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ei(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ii(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ei(o,t.address,e.address);if(r!==0)return r}return 0}i(El,"compareWithSearchFor");var Wn=i((t,e)=>{switch(e){case bi.ALL:return!0;case bi.UTXO:return t===Nn.TRANSFER;case bi.OTHER:return t!==Nn.TRANSFER&&t!==Nn.COSMOS&&t!==Nn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Il=i(t=>xi.find(o=>o.value===t)?.url,"getFontUrlByName");function Mn(t,e){let o=!!t.find(n=>n.state===fg.CONNECTED);return e===!1&&o}i(Mn,"isSingleWalletActive");function Ln(t,e){return e.find(o=>o.name===t)?.displayName}i(Ln,"getBlockchainDisplayNameFor");function Re(t,e){return e.find(o=>o.name===t)?.shortName}i(Re,"getBlockchainShortNameFor");function Al(t,e){return e.find(o=>o.name===t)?.logo}i(Al,"getBlockchainImage");function qo(t,e){return e.find(o=>o.id===t)?.title}i(qo,"getSwapperDisplayName");function Ni(t,e){return e.find(o=>o.name===t)??null}i(Ni,"findBlockchain");function Wi(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(Wi,"isTokenNative");function ct(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(ct,"createTokenHash");import{BigNumber as Nl}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 Nl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Nl(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 Bn=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Tt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Go=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Li(t){switch(!0){case t.connected:return Ct.CONNECTED;case t.connecting:return Ct.CONNECTING;case!t.installed:return Ct.NOT_INSTALLED;default:return Ct.DISCONNECTED}}i(Li,"mapStatusToWalletState");function Ml(t,e,o,n){return o.filter(r=>!Tl.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:g,needsDerivationPath:d}=e(r),m=Co(g.map(y=>y.type)),f=Li(t(r));return{title:a,image:s,link:yg(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m,needsDerivationPath:d}})}i(Ml,"mapWalletTypesToWalletInfo");function Dn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Dn,"walletAndSupportedChainsNames");function Ll(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(g=>g.chain===p)){let g={address:u,chain:p,walletType:t};a.push(g)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=hg(p),g=l.length>0,d=l.includes(c),m=c===Wl.Unknown;if(g&&!d&&!m)return;let y=c===Wl.Unknown&&Tg(u);if(m&&!y)return;o.includes(c)||y?r?s(c,u.toLowerCase()):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(c,u)}),a}i(Ll,"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 g=u.from.blockchain,d=u.to.blockchain,m=a===o.swaps.length-1,f=c===p.length-1;(!m&&!f||m&&l!==g||e==="all")&&n.add(g),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Jt,"getQuoteWallets");function $n(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i($n,"isAccountAndWalletMatched");function Bl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Mi(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Bl,"makeBalanceFor");function Pl(t){return{...t,loading:!1,error:!0}}i(Pl,"resetConnectedWalletState");var _l=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 Mi(a?.amount||$e).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),$e)||$e).toString();return kg(r)},"calculateWalletUsdValue");function kg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(kg,"numberWithThousandSeparator");var Fn=i((t,e)=>{let o=Sg(Object.entries(t).map(([,n])=>n).filter(Cg));return o&&o[e]?.experimental},"isExperimentalChain");function On(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(On,"formatBalance");function Dl(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(Dl,"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 $l(t){return t.sort((e,o)=>+(o.state===Ct.CONNECTED)-+(e.state===Ct.CONNECTED)||+(o.state===Ct.DISCONNECTED||o.state===Ct.CONNECTING)-+(e.state===Ct.DISCONNECTED||e.state===Ct.CONNECTING))}i($l,"sortWalletsBasedOnConnectionState");function Un(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(Un,"getConciseAddress");function Fl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Fl,"getAddress");function Qn(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Mi(o?.usdPrice??$e).multipliedBy(o?.amount).toString():""},r=o?ct({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i(Qn,"makeTokensBalance");var Ol=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ul(t){return t.map(e=>e.state).join("-")}i(Ul,"hashWalletsState");function Ql(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(Ql,"filterBlockchainsByWalletTypes");function zl(t,e){return e===gg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Wn(n,e))return!0;return!1})}i(zl,"filterWalletsByCategory");var Bi={API_KEY:An};function At(t){return Bi[t]||""}i(At,"getConfig");function ql(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Bi=e,Bi}i(ql,"initConfig");var Hl=20,Gl=25,Pi="theme-widget",_i=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"),Vl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var zn,Ot=i(()=>zn||(zn=new vg(At("API_KEY"),At("BASE_URL")),zn),"httpService");import{WidgetEvents as Kl}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||{}),Vo=(r=>(r[r.RouteEvent=Kl.RouteEvent]="RouteEvent",r[r.StepEvent=Kl.StepEvent]="StepEvent",r.QuoteEvent="quoteEvent",r.WalletEvent="walletEvent",r))(Vo||{});var wg=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=wg;var te=Ut(xg()(bg((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:Qn(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>$n(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(d=>{let m=o.find(y=>$n(y,d)),f=p.find(y=>y.address===d.address&&y.blockChain===d.chain);return f?.failed&&m&&r&&a([m],n,!1),m&&f?{...d,explorerUrl:f.explorerUrl,balances:Bl(f,n),loading:!1}:d});return{loading:!1,balances:Qn(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(g=>$n(g,c))?Pl(c):c);return{loading:!1,balances:Qn(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=ct(o);return n[r]??null}}))));import{allProviders as Eg}from"@rango-dev/provider-all";function qn(t,e){let o=Eg({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(qn,"matchAndGenerateProviders");function Xl(t,e){return qn(t,e).map(r=>r.config.type)}i(Xl,"configWalletsToWalletName");function jl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(jl,"hashProviders");function Oi(t,e){let o=te.use.clearConnectedWallet(),n=qn(t,e);return Ig(()=>{o(),n=qn(t,e)},[jl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Oi,"useWalletProviders");import Kg,{createContext as Xg,useContext as jg,useEffect as Yg,useRef as Zg}from"react";import{create as Gg}from"zustand";import{persist as Vg}from"zustand/middleware";var Ui=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},ko=new Ui;function Ko(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=ct(p));let u=o.tokensMapByTokenHash.get(p);u&&(n[p]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(u=>{let c=ct(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(Ko,"matchTokensFromConfigWithMeta");var Qi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},Ag={clientUrl:void 0},Ng={liquiditySources:void 0},Yl=i((t,e,o)=>({config:{...Qi,...t},iframe:Ag,campaignMode:Ng,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config,{_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s}=o(),l=Ko({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=Ko({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});ko.set("supportedSourceTokens",l),ko.set("supportedDestinationTokens",p),e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Hn(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Co(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(Hn,"getUniqueSwappersGroups");function Zl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Zl,"sortLiquiditySourcesByGroupTitle");function et(t,e){return e?.[t]==="hidden"}i(et,"isFeatureHidden");function Jl(t,e){return e?.[t]==="enabled"}i(Jl,"isFeatureEnabled");var Rl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a}=e(),s=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return s;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",c=ko.get(u);c||(c=Ko({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),ko.set(u,c));let g=e().blockchains({type:o.type});return c.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!g.some(f=>f.name===m.blockchain)?!1:o.searchFor?!!(It(m.symbol,o.searchFor)||It(m.address||"",o.searchFor)||It(m.name||"",o.searchFor)):!0).sort((m,f)=>{let y=e().isTokenPinned(m,o.type),S=e().isTokenPinned(f,o.type);if(y!==S)return y?-1:1;if(o.getBalanceFor){let b=o.getBalanceFor(m),N=o.getBalanceFor(f),x=Dl(b,N);if(x!==0)return x}let T=l.get(m.blockchain),C=l.get(f.blockchain),k=Wi(m,T),w=Wi(f,C);if(k!==w)return k?-1:1;if(m.isPopular!==f.isPopular)return m.isPopular?-1:1;if(o.searchFor){let b=El(m,f,o.searchFor);if(b)return b}return m.isSecondaryCoin!==f.isSecondaryCoin?m.isSecondaryCoin?1:-1:T&&C?T.sort-C.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=ct(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Rt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Zl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await Ot().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s={},l=[],p=n.popularTokens,u=n.swappers,c=new Set;n.tokens.forEach(d=>{c.add(d.blockchain),l.push(d)}),n.blockchains.sort((d,m)=>d.sort-m.sort).forEach(d=>{d.enabled&&c.has(d.name)&&r.set(d.name,d)}),l.forEach(d=>{let m=ct(d);s[d.blockchain]||(s[d.blockchain]=[]),a.set(m,d),s[d.blockchain].push(m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Wg,English as Mg,Finland as Lg,French as Bg,German as Pg,Greece as _g,Italian as Dg,Japanese as $g,Netherlands as Fg,Poland as Og,Portuguese as Ug,Russian as Qg,Spanish as zg,Swedish as qg,Ukrainian as Hg}from"@rango-dev/ui";var ep=[{title:"English",label:"English",local:"en",SVGFlag:Mg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:zg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Bg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:$g},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Ug},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Wg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Qg},{title:"German",label:"Deutsch",local:"de",SVGFlag:Pg},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Hg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:qg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Lg},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Fg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:_g},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Dg},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Og}],vo="en";var tp=[.5,1,3],op=1,np=5,rp=100,ip=0;var ap=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:op,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=Co(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=et("theme",n),s=et("language",n),l=et("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||vo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||vo}})}}),"createSettingsSlice");function sp(t){return Gg()(Vg((...e)=>({...Rl(...e),...ap(...e),...Yl(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(sp,"createAppStore");var lp=Xg(null);function h(){let t=jg(lp);if(Yg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function pp(t){let e=Zg();return e.current||(e.current=sp(t.config)),Kg.createElement(lp.Provider,{value:e.current},t.children)}i(pp,"AppStoreProvider");import{create as Rg}from"zustand";var cp="rango-widget";var Xo=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(cp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var ae=Ut(Rg()((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 Xo({onInit:()=>ae.setState({tabManagerInitiated:!0}),onClaim:()=>ae.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ae.setState({isActiveTab:!1})});var Vn=oh({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function rh(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=h(),a=h().blockchains(),{findToken:s}=h(),l=h().config,p={walletConnectProjectId:l?.walletConnectProjectId,trezorManifest:l?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:u}=Oi(l.wallets,p),{connectWallet:c,disconnectWallet:g}=te(),d=dp(),m=dp();mp(()=>{n().catch(console.log)},[]),mp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let f=a.filter(th).map(C=>C.name),y=i((C,k,w,b,N)=>{if(k===qi.ACCOUNTS)if(w){let x=Dn(N.supportedBlockchains),v=Ll(C,w,f,x,N.isContractWallet);v.length&&c(v,s)}else g(C),m.current?m.current(C):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(k===qi.ACCOUNTS&&b.connected){let x=`${C}-${b.network}-${w}`;b.connected&&(d.current?d.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===qi.NETWORK&&b.network){let x=`${C}-${b.network}`;d.current?d.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(C,k,w,b,N)},"onUpdateState"),S=ae.use.isActiveTab(),T=nh(()=>({onConnectWallet:C=>{d.current=C},onDisconnectWallet:C=>{m.current=C}}),[]);return Gn.createElement(Vn.Provider,{value:T},Gn.createElement(eh,{allBlockChains:a,providers:u,onUpdateState:y,autoConnect:!!S},t.children))}i(rh,"Main");function Kn(t){let{config:e,...o}=t;return Gn.createElement(pp,{config:e},Gn.createElement(rh,{...o,config:e}))}i(Kn,"WidgetWallets");import wi from"react";import ih,{Fragment as ah}from"react";import{MemoryRouter as sh,useInRouterContext as lh}from"react-router";function fp({children:t}){let o=lh()?ah:sh;return ih.createElement(o,null,t)}i(fp,"AppRouter");import{I18nManager as kw}from"@rango-dev/ui";import dl from"react";import Ge from"react";import{useRoutes as sw}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 bo,useRef as rr}from"react";import Oe from"bignumber.js";import{create as uh}from"zustand";import{subscribeWithSelector as mh}from"zustand/middleware";import{getLastSuccessfulStep as ch}from"@rango-dev/queue-manager-rango-preset";import sI from"bignumber.js";function Hi(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(Hi,"getFeeLabel");var Gi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],gp=30;import{i18n as ut}from"@lingui/core";import{RouteEventType as GE}from"@rango-dev/queue-manager-rango-preset";import Fe from"bignumber.js";import{PendingSwapNetworkStatus as Yn}from"rango-types";function Xn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Xn,"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 hp(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(hp,"getQuoteErrorMessage");import{i18n as jn}from"@lingui/core";var to=i(()=>({connectWallet:jn.t("Connect Wallet"),swap:jn.t("Swap"),swapAnyway:jn.t("Swap anyway"),ethWarning:jn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function yp(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(yp,"hasHighValueLoss");function Sp(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(Sp,"hasLimitError");function Tp(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=ut.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=ut.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=ut.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=ut.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(Tp,"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 Vi(t,e,o){return!((!o||o.lte($e))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(Vi,"canComputePriceImpact");function Ki(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(Ki,"getUsdFeeOfStep");function Zn(t,e){return t.reduce((o,n)=>o.plus(Ki(n,e)),$e)}i(Zn,"getTotalFeeInUsd");function Xi(t){let e=$e;return e=e.plus(new Fe(t.amount).multipliedBy(t.price||0)),e}i(Xi,"getUsdFee");function kp(t){return t.reduce((e,o)=>e.plus(Xi(o)),$e)}i(kp,"getTotalFeesInUsd");function vp(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(vp,"getFeesGroup");function wp(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(wp,"checkSlippageErrors");function xp(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(xp,"checkSlippageWarnings");function Jn(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(Jn,"getMinRequiredSlippage");function bp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(bp,"hasProperSlippage");function Ep(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:g,affiliateWallets:d,destination:m,enableCentralizedSwappers:f}=t,y=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:g??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:y??{},slippage:u.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1},enableCentralizedSwappers:f}}i(Ep,"createQuoteRequestBody");function Ip(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Ip,"getWalletsForNewSwap");function wo(t){return t?.outputAmount||null}i(wo,"getQuoteOutputAmount");function Ap(t,e){return new Fe(e).div(new Fe(t)).minus(1).multipliedBy(100).toNumber()}i(Ap,"getPercentageChange");function Np(t,e){let o=wo(t),n=wo(e);if(!o||!n)return!1;let r=tt(o,n);return r?r<=-1:!0}i(Np,"isOutputAmountChangedALot");function Wp(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=>Dp(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=ut.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ut.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ut.t(" for input and network fee")),ut.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:Re(s.asset.blockchain,o)}})})}i(Wp,"generateBalanceWarnings");function Rn(t,e){return(t?new Fe(t):$e).multipliedBy(e||0)}i(Rn,"calcOutputUsdValue");function jo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Yn.NetworkChanged}i(jo,"isNetworkStatusInWarningState");function Mp(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 Yn.WaitingForConnectingWallet:n=n||ut.t("Waiting for connecting wallet");break;case Yn.WaitingForQueue:n=n||ut.t("Waiting for other running tasks to be finished");break;case Yn.WaitingForNetworkChange:n=n||ut.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(Mp,"getSwapMessages");function Lp(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(Lp,"getLastConvertedTokenInFailedSwap");function Bp(t){return t.status==="failed"}i(Bp,"shouldRetrySwap");function Pp(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(g=>r.some(d=>d.chain===g)),u=l.every(g=>r.some(d=>d.chain===g)),c=o&&a?Xn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Pp,"isConfirmSwapDisabled");function _p(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(_p,"isTokensIdentical");function tr(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(tr,"getQuoteToTokenUsdPrice");function ji(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(ji,"isNumberOfSwapsChanged");function Yi(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!Ai(o,n)}i(Yi,"isQuoteSwappersUpdated");function Zi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!Ai(o,n)}i(Zi,"isQuoteInternalCoinsUpdated");function Fp(t,e){return ji(t,e)||Yi(t,e)||Zi(t,e)}i(Fp,"isQuoteChanged");function Dp(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(Dp,"getRequiredBalanceOfWallet");function Nt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Nt,"getPriceImpactLevel");function or(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=ch(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=Ni(a?a.toBlockchain:n.fromBlockchain,e),p=Ni(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),g=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:g}}i(or,"createRetryQuote");function xo(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=tt(s.toString(),l.toString());if(!!c&&yp(s,c)){let d=Zn(t?.swaps,r),m=Nt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=Jn(t.swaps),u=a>np;if(bp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:xp(t,a),minRequiredSlippage:p};return null}i(xo,"generateQuoteWarnings");function tt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ap(t.toString(),e.toString());return n&&n<0?n:null}i(tt,"getPriceImpact");var Op=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"),nr=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"),Up=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"),Qp=i(t=>{let e=i((o,n)=>{let r=Gi.indexOf(o.value),a=Gi.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 Oe(e||$e).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Y=Ut(uh()(mh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Oe(0),outputUsdValue:new Oe(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 Oe(e?.outputAmount):null,r=Rn(e?.outputAmount,tr(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 Oe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Oe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Oe(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue: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:new Oe(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Oe(0),outputUsdValue:new Oe(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 Oe(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 Oe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Oe(0),inputUsdValue:new Oe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Oe(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),zp=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 qp(){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,g=h().fetchStatus,d=h().blockchains(),m=h().tokens(),{findToken:f}=h(),{setAffiliateRef:y,setAffiliatePercent:S,setAffiliateWallets:T}=h(),C=c?.from?.tokens,k=c?.from?.blockchains,w=c?.to?.tokens,b=c?.to?.blockchains,N=rr(void 0),x=rr(void 0),v=rr(void 0),E=rr(void 0);bo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),bo(()=>{if(g==="success"){r();let I=d.find(A=>A.name===c?.from?.blockchain),_=c?.from?.token,Q=_&&f(_);(I||!I&&v.current)&&n(I??null),Q?a({token:Q,meta:{blockchains:d,tokens:m}}):!Q&&N.current&&a({token:null}),v.current=c?.from?.blockchain,N.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,g]),bo(()=>{_i(s,C)&&a({token:null}),Di(p,k)&&n(null)},[C,k]),bo(()=>{_i(l,w)&&a({token:null}),Di(u,b)&&o(null)},[w,b]),bo(()=>{if(g==="success"){r();let I=d.find(A=>A.name===c?.to?.blockchain),_=c?.to?.token,Q=_&&f(_);(I||!I&&E.current)&&o(I??null),Q?e({token:Q,meta:{blockchains:d,tokens:m}}):!Q&&x.current&&e({token:null}),E.current=c?.to?.blockchain,x.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,g]),bo(()=>{y(c?.affiliate?.ref??null),S(c?.affiliate?.percent??null),T(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(qp,"useSyncStoresWithConfig");import{useEffect as ea,useRef as dh}from"react";import{useInRouterContext as fh,useLocation as gh,useSearchParams as hh}from"react-router-dom";function Ji(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Ji,"convertTokenSearchParamToAsset");function Ri(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ri,"tokenToSearchParam");function ta(){let t=gh(),[e,o]=hh(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:g,setInputAmount:d}=Y(),m=h().fetchStatus,f=h().blockchains(),y=h().tokens(),S=fh(),{updateIframe:T,updateCampaignMode:C}=h(),k=h().isInCampaignMode(),w=dh(),{findToken:b}=h(),N=i(()=>{let v={};for(let[B,Z]of e.entries())B.startsWith("utm_")&&(v[B]=Z);let E=e.get("fromAmount"),I=e.get("fromBlockchain"),_=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:E,fromBlockchain:I,fromToken:_,toBlockchain:Q,toToken:A,autoConnect:z,clientUrl:j,liquiditySources:G,utmQueryParams:v}},"getUrlSearchParams"),x=i(v=>{for(let E in v)v[E]||delete v[E];o(v,{replace:!0})},"updateUrlSearchParams");ea(()=>{let{autoConnect:v,clientUrl:E,utmQueryParams:I}=N();S&&m==="success"&&x({fromBlockchain:n?.name,fromToken:Ri(a),toBlockchain:r?.name,toToken:Ri(s),fromAmount:l,autoConnect:v??void 0,clientUrl:E??void 0,liquiditySources:k?w.current:void 0,...I})},[t.pathname,l,n,a,r,s,k]),ea(()=>{if(!S)return;let v=N();if(!w.current&&v.liquiditySources&&(w.current=v.liquiditySources),v.fromAmount&&d(v.fromAmount),m==="success"){let E=f.find(A=>A.name===v.fromBlockchain),I=v.fromToken&&E?b(Ji(v.fromToken,E)):void 0,_=f.find(A=>A.name===v.toBlockchain),Q=v.toToken&&_?b(Ji(v.toToken,_)):void 0;E&&(p(E),I&&c({token:I,meta:{blockchains:f,tokens:y}})),_&&(u(_),Q&&g({token:Q,meta:{blockchains:f,tokens:y}}))}},[m]),ea(()=>{let{clientUrl:v,liquiditySources:E}=N();T("clientUrl",v||void 0),C("liquiditySources",E?.split(",")??void 0)},[])}i(ta,"useSyncUrlAndStore");import{i18n as ns}from"@lingui/core";import{useManager as zT}from"@rango-dev/queue-manager-react";import{Alert as wm,Button as qT,css as is,Divider as rs,IconButton as xm,styled as HT,Typography as GT,WalletIcon as VT}from"@rango-dev/ui";import Ie,{useEffect as Vr,useLayoutEffect as KT,useRef as XT,useState as mn}from"react";import{useNavigate as jT}from"react-router-dom";import{i18n as vt}from"@lingui/core";import{Alert as Da,BalanceErrors as ES,Button as tu,ChevronDownIcon as IS,ChevronLeftIcon as AS,CloseIcon as NS,Divider as en,IconButton as ou,MessageBox as WS,PasteIcon as MS,Typography as br,WalletIcon as LS}from"@rango-dev/ui";import $,{useCallback as BS,useEffect as nu,useMemo as PS,useRef as _S,useState as uo}from"react";import{useNavigate as DS}from"react-router-dom";import{i18n as ir}from"@lingui/core";function ar(t){switch(t.type){case 0:return ir.t("Route has been updated.");case 3:return ir.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return ir.t("Route swappers has been updated.");case 2:return ir.t("Route internal coins has been updated.");default:return""}}i(ar,"getQuoteUpdateWarningMessage");import{Modal as Sh}from"@rango-dev/ui";import Th from"react";function re(t){let{watermark:e}=ae();return Th.createElement(Sh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import cr,{useRef as vh}from"react";import*as Eo from"@radix-ui/react-collapsible";import{keyframes as Gp,styled as sr}from"@rango-dev/ui";var oa=300,Ch=Gp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),kh=Gp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Vp=sr(Eo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),na=sr(Eo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),lr=sr(Eo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Ch} ${oa}ms ease-out`},false:{animation:`${kh} ${oa}ms ease-out`}}}}),pr=sr("div",{transition:`all ${oa}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ur(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=vh(null);return cr.createElement(Vp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&cr.createElement(na,{className:"collapsible_trigger",onClick:a},s),cr.createElement(lr,{className:"collapsible_content",open:e},r),l==="bottom"&&cr.createElement(na,{className:"collapsible_trigger",onClick:a},s))}i(ur,"CustomCollapsible");import{css as Kp,darkTheme as Yo,IconButton as wh,styled as ot,TextField as xh}from"@rango-dev/ui";var Xp=ot("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),jp=ot("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),bh=ot("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"}}}}),Yp=ot(bh,{alignSelf:"stretch",minHeight:"93px"}),Zp=ot("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Jp=ot(wh,{position:"absolute",left:"$20"}),Rp=ot("div",{paddingTop:"$20"}),ec=Kp({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),tc=ot("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),oc=Kp({paddingTop:"$5"}),nc=ot("div",{display:"flex"}),rc=ot(xh,{backgroundColor:"$neutral100",padding:"$15"}),ic=ot("div",{overflow:"visible",width:"100%"}),ac=ot("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 mt}from"@lingui/core";import{Button as vS,Divider as Pa,Image as wS,MessageBox as wr,SelectableWallet as xS,Typography as Jc,WalletState as Rc}from"@rango-dev/ui";import ue,{useEffect as eu,useState as co}from"react";import{WalletState as ra}from"@rango-dev/ui";import{useWallets as Eh}from"@rango-dev/wallets-react";import{detectMobileScreens as Ih,KEPLR_COMPATIBLE_WALLETS as Ah,WalletTypes as Io}from"@rango-dev/wallets-shared";import{useCallback as Nh,useEffect as Wh,useState as Mh}from"react";var Lh=Object.values(Io);function no(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=Eh(),{connectedWallets:c}=te(),g=h().blockchains(),d=Xl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Lh,m=Ml(s,p,d,e);m=Ih()?m.filter(x=>x.showOnMobile!==!1&&s(x.type).installed):m;let f=$l(m),[y,S]=Mh(""),T=i(x=>!c.find(v=>v.walletType===x&&v.chain===e),"isExperimentalChainNotAdded"),C=i(async(x,v)=>{let E=s(x);try{if(y&&S(""),E.connected)await l(x);else{if(Mn(m,a.multiWallets))return;o?.(x),await u(x,void 0,v),n?.(x)}}catch(I){r?.(I?.message),S("Error: "+I?.message)}},"handleClick"),k=Nh(()=>{let x=m?.filter(v=>v.state===ra.CONNECTING)||[];for(let v of x)l(v.type)},[Ul(m)]),w=i(async x=>{s(x).connected&&await l(x)},"disconnectWallet");Wh(()=>()=>{k()},[]);let b=i(x=>{let v=x.find(I=>I.type===Io.DEFAULT);return!v||v.state===ra.NOT_INSTALLED?!1:x.filter(I=>I.state!=ra.NOT_INSTALLED&&![Io.DEFAULT,Io.WALLET_CONNECT_2,Io.LEDGER].includes(I.type)&&p(I.type).supportedChains.filter(_=>_.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),N=i((x,v,E)=>Fn(E,v)&&T(x)&&!Ah.includes(x)||x==Io.DEFAULT&&!b(m),"shouldExcludeWallet");return{list:f.filter(x=>!N(x.type,e??"",g)),error:y,handleClick:C,disconnectConnectingWallets:k,disconnectWallet:w}}i(no,"useWalletList");import{i18n as Gc}from"@lingui/core";import{Divider as dS,getCategoriesCount as fS,SelectableCategoryList as gS,styled as Kc,Typography as hS,Wallet as yS,WalletState as Vc}from"@rango-dev/ui";import it,{useState as Ro}from"react";import{useManager as $y}from"@rango-dev/queue-manager-react";import{BottomLogo as Fy,Divider as Lc,Header as Oy}from"@rango-dev/ui";import Ce,{useEffect as Ea,useRef as Bc,useState as Uy}from"react";import{useRef as Bh}from"react";function mr(){return window.self!==window.top}i(mr,"isAppLoadedIntoIframe");function ia(){let t=Bh(null),{iframe:e}=h(),o=mr()&&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(ia,"useIframe");import{useNavigate as Ph}from"react-router-dom";function nt(){let t=Ph();return()=>t(-1)}i(nt,"useNavigateBack");import{createTheme as ma,darkTheme as Xh,lightTheme as jh}from"@rango-dev/ui";import{useEffect as Yh,useState as Zh}from"react";import{theme as Vh,darkColors as Kh}from"@rango-dev/ui";import ca from"react";function _h(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(_h,"expandShortHexColor");function Dh(t){return/[0-9]+$/.test(t)}i(Dh,"isOverridingColor");function $h(t,e){return t.padStart(e,"0")}i($h,"pad");function aa(t){let e=Math.min(Math.max(Math.round(t),0),255);return $h(e.toString(16),2)}i(aa,"intToHex");function Fh(t){return`#${aa(t.red)}${aa(t.green)}${aa(t.blue)}`}i(Fh,"rgbToHex");function Oh(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(Oh,"hexToRGB");function Uh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Uh,"generateShade");function Qh(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(Qh,"generateTint");function zh(t){return sc(t,Uh)}i(zh,"calculateShades");function qh(t){return sc(t,Qh)}i(qh,"calculateTints");function sc(t,e){let o=Oh(t),n=[];for(let r=1;r<9;r++)n.push(Fh(e(o,r)));return n}i(sc,"calculateColors");function sa(t,e,o){let a=qh(t).reverse().concat(t),s=zh(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let g=100+(o?u-1-c:c)*50;p[`${e}${g}`]=l[c]}return p}i(sa,"createTintsAndShades");function la(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)&&!Dh(r)){let p=_h(a);Object.assign(n,sa(p,r,s))}}return{...n,...e}}i(la,"expandToGenerateThemeColors");var lc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Hh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=lc(o%52)+e;return lc(o%52)+e},"toAlphabeticName"),Gh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),pa=i(t=>Hh(Gh(5381,JSON.stringify(t))>>>0),"toHash");function ua(t){let e=Vh.colors,o={...e,...Kh},n,r;if(t?.light){let s={colors:la(e,t.light)};n={id:`${Pi}-light-${pa(s)}`,tokens:s}}if(t?.dark){let s={colors:la(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Pi}-dark-${pa(s)}`,tokens:s}}return{light:n,dark:r}}i(ua,"customizedThemeTokens");function pc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ca.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ca.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ca.cloneElement(e,{key:l}))}}),o}i(pc,"joinList");function cc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(cc,"doesWindowPreferDarkColorScheme");function dr(t){let{colors:e,fontFamily:o=Sl,borderRadius:n=Hl,secondaryBorderRadius:r=Gl}=t,[a,s]=Zh(cc()?"dark":"light"),{theme:l}=h(),{dark:p,light:u}=ua(e),c=ma({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),g=[c.className,jh.className],d=[c.className,Xh.className];if(u){let f=ma(u.id,u.tokens);g.push(f.className)}if(p){let f=ma(p.id,p.tokens);d.push(f.className)}return Yh(()=>{let f=i(y=>{y.matches?s("dark"):s("light")},"switchThemeListener");return cc()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=g.join(" "),y=d.join(" ");return l==="auto"?a==="dark"?y:f:l==="dark"?y:f},"getActiveTheme")}}i(dr,"useTheme");var rt=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 uc}from"@lingui/core";import{Alert as Jh,Button as Rh}from"@rango-dev/ui";import mc from"react";function da(t){return mc.createElement(Jh,{action:mc.createElement(Rh,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},uc.t("Activate this tab")),type:"warning",variant:"alarm",title:uc.t("Another tab is open and handles transactions.")})}i(da,"ActivateTabAlert");import{i18n as fa}from"@lingui/core";import{Button as ey,Divider as ty,MessageBox as oy}from"@rango-dev/ui";import fr from"react";function ga(t){let{open:e,onClose:o,onConfirm:n}=t;return fr.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},fr.createElement(oy,{title:fa.t("Activate current tab"),type:"warning",description:fa.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.")},fr.createElement(ty,{size:20}),fr.createElement(ey,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},fa.t("Confirm"))))}i(ga,"ActivateTabModal");import{ChevronLeftIcon as iy}from"@rango-dev/ui";import Tc from"react";import{css as ny,darkTheme as dc,IconButton as ry,styled as ro}from"@rango-dev/ui";var kt=ro(ry,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${dc} &`]:{backgroundColor:"$neutral"}}}),fc=ro("div",{position:"absolute",background:"$secondary500",[`.${dc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Ao=ro("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),gc=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"}}}}),hc=ro("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),yc=ro("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Sc=ny({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),gr=ro("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ha(t){return Tc.createElement(kt,{variant:"ghost",size:"small",onClick:t.onClick},Tc.createElement(iy,{color:"black",size:16}))}i(ha,"BackButton");import{i18n as ay}from"@lingui/core";import{Button as sy,Typography as ly}from"@rango-dev/ui";import ya from"react";function Sa(t){return ya.createElement(Ao,null,ya.createElement(sy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ya.createElement(ly,{variant:"label",size:"medium",color:"error500"},ay.t("Cancel"))))}i(Sa,"CancelButton");import{i18n as py}from"@lingui/core";import{Image as cy,Tooltip as uy,WalletIcon as my}from"@rango-dev/ui";import io from"react";function Ta(t){let{list:e}=no({}),o=e.filter(r=>r.state==="connected"),n=o.length?io.createElement("div",{className:Sc()},o.map(r=>io.createElement(gr,{key:r.title},io.createElement(cy,{src:r.image,size:14})))):py.t("Connect Wallet");return io.createElement(uy,{container:t.container,side:"bottom",content:n},io.createElement(kt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&io.createElement(fc,null),io.createElement(my,{size:18,color:"black"})))}i(Ta,"WalletButton");import{i18n as yr}from"@lingui/core";import{NotificationsIcon as Ay,Popover as Ny,SettingsIcon as Wy,Tooltip as Sr,TransactionIcon as My}from"@rango-dev/ui";import We from"react";import{Notifications as hy}from"@rango-dev/ui";import yy from"react";import{useNavigate as Sy}from"react-router-dom";import{create as dy}from"zustand";import{persist as fy,subscribeWithSelector as gy}from"zustand/middleware";var xe=Ut(dy()(fy(gy((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function Ca(){let t=Sy(),{getNotifications:e,clearNotifications:o}=xe(),n=e(),r=h().blockchains(),{findToken:a}=h();return yy.createElement(hy,{list:n,getBlockchainImage:l=>Al(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Ca,"NotificationContent");import{useManager as Ty}from"@rango-dev/queue-manager-react";import{InProgressIcon as Cy}from"@rango-dev/ui";import Cc from"react";var ky=i(()=>{let{manager:t}=Ty();return rt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Cc.createElement(yc,null,Cc.createElement(Cy,{color:"info",size:6})):null},"InProgressTransactionBadge"),kc=ky;import{EventSeverity as vy}from"@rango-dev/queue-manager-rango-preset";import{Typography as wy}from"@rango-dev/ui";import vc from"react";function wc(){let{getNotifications:t}=xe(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===vy.WARNING);return o?vc.createElement(gc,{isSever:n},vc.createElement(wy,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(wc,"NotificationsBadge");import{RefreshProgressButton as xy}from"@rango-dev/ui";import ka,{useEffect as by,useState as xc}from"react";var Ey=1e3,bc=60,Iy=100;function hr({onClick:t}){let[e,o]=xc(0),[n,r]=xc(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");by(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===bc&&l()},Ey):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 ka.createElement(kt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ka.createElement(hc,{onTransitionEnd:()=>r(!1),isRefetched:n},ka.createElement(xy,{size:22,color:t?"black":"gray",progress:e/bc*Iy})))}i(hr,"RefreshButton");function ao(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=et("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Sr,{container:a||P(),side:"top",content:yr.t("Refresh")},We.createElement(hr,{onClick:e})),!l&&We.createElement(Ny,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:We.createElement(Ca,null)},We.createElement("div",null,We.createElement(Sr,{container:P(),side:"top",content:yr.t("Notifications")},We.createElement(kt,{size:"small",variant:"ghost"},We.createElement(Ay,{size:18,color:"black"}),We.createElement(wc,null))))),!r.includes("settings")&&We.createElement(Sr,{container:P(),side:"top",content:yr.t("Settings")},We.createElement(kt,{size:"small",variant:"ghost",onClick:n},We.createElement(Wy,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Sr,{container:P(),side:"top",content:yr.t("Transactions History")},We.createElement(kt,{size:"small",variant:"ghost",onClick:o},We.createElement(My,{size:18,color:"black"}),We.createElement(kc,null))))}i(ao,"HeaderButtons");import{i18n as va}from"@lingui/core";import{Divider as Ic,MessageBox as Py,RefreshIcon as _y}from"@rango-dev/ui";import No from"react";import{Button as Ly,styled as By}from"@rango-dev/ui";var Ec=By(Ly,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function wa(t){let{open:e,onClose:o}=t;return No.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},No.createElement(Py,{title:va.t("Something went wrong"),type:"error",description:va.t("Something went wrong. Please refresh the app.")},No.createElement(Ic,{size:30}),No.createElement(Ec,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},No.createElement(_y,{size:20,color:"primary"}),No.createElement(Ic,{size:4,direction:"horizontal"}),va.t("Refresh"))))}i(wa,"RefreshModal");function xa(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(xa,"onScrollContentAttachStatusToContainer");import{css as Dy,styled as ba}from"@rango-dev/ui";var Ac="700px",Tr=Dy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Nc=ba("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Ac},fixed:{height:Ac}}}}),Wc=ba("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Mc=ba("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}=ia(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=Uy(!1),c=te.use.connectedWallets(),{config:{features:g,theme:d}}=h(),{watermark:m}=ae(),f=m==="FULL",{activeTheme:y}=dr(d||{}),S=et("connectWalletButton",g),{isActiveTab:T,tabManagerInitiated:C,showActivateTabModal:k,setShowActivateTabModal:w,activateCurrentTab:b}=ae(),N=nt(),{manager:x}=$y(),E=rt(x).map(({swap:j})=>j).some(j=>j.status==="running"),I=i(()=>b(eo.forceClaim,E),"onActivateTab"),_=i(()=>{r.onWallet?.()},"onConnectWallet"),Q=typeof r.hasBackButton>"u"||r.hasBackButton,A=Bc(null),z=Bc(null);return Ea(()=>(mr()&&z.current&&e(z.current),()=>{o()}),[]),Ea(()=>(A.current?.addEventListener("scroll",xa),()=>{A.current?.removeEventListener("scroll",xa)}),[]),Ea(()=>{u(l==="failed")},[l]),Ce.createElement(Nc,{height:s,id:he.SWAP_BOX_ID,className:`${y()} ${Tr()}`,ref:z},Ce.createElement(Oy,{prefix:Ce.createElement(Ce.Fragment,null,Q&&Ce.createElement(ha,{onClick:()=>{N(),r.onBack&&r.onBack()}})),title:r.title,suffix:Ce.createElement(Ce.Fragment,null,r.suffix,r.onWallet&&!S&&Ce.createElement(Ta,{container:P(),onClick:_,isConnected:!!c?.length}),r.onCancel&&Ce.createElement(Sa,{onClick:r.onCancel}))}),Ce.createElement(Wc,{ref:A},n),Ce.createElement(ga,{open:k,onClose:()=>w(!1),onConfirm:I}),Ce.createElement(Mc,null,Ce.createElement("div",{className:"footer__content"},C&&!T&&Ce.createElement("div",{className:"footer__alert"},Ce.createElement(da,{onActivateTab:I}),Ce.createElement(Lc,{size:10})),a),Ce.createElement(Lc,{size:12}),Ce.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},Ce.createElement(Fy,null))),Ce.createElement(wa,{open:p,onClose:()=>u(!1)}))}i(ce,"Layout");import{styled as Qy}from"@rango-dev/ui";var Pc="$20 $20 $10 $20",Zo=Qy("div",{padding:Pc,overflowY:"auto",flexGrow:1});import{styled as zy}from"@rango-dev/ui";var fe=zy("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 Vy,Divider as $c,Image as Ky,MessageBox as Xy,Select as jy,TextField as Yy}from"@rango-dev/ui";import{namespaces as Zy}from"@rango-dev/wallets-shared";import qe,{useEffect as Jy,useState as Fc}from"react";import{keyframes as qy,styled as Cr}from"@rango-dev/ui";var LW=Cr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Wo=Cr("div",{position:"relative"}),Hy=qy({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Mo=Cr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Hy} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),kr=Cr("div",{"& img":{borderRadius:"50%"}});import{styled as _c,Typography as Gy}from"@rango-dev/ui";var Dc=_c("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ia=_c(Gy,{paddingLeft:"$10"}),Aa={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Uc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Oc(t){let e=t?Zy[t].derivationPaths:null;return e?[...e,Uc]:[]}i(Oc,"getDerivationPaths");function so(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Fc(null),[u,c]=Fc("0"),g=l===Uc.id,d=Oc(n),m=i(({value:y})=>{let S=d?.find(T=>T.id===y);S&&p(S.id)},"handleDerivationPathItemClick"),f=i(()=>{let y=d.find(S=>S.id===l);if(y)o(y.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return Jy(()=>{p(Oc(n)[0]?.id||null)},[n]),qe.createElement(re,{open:s,onClose:e,container:document.getElementById(he.SWAP_BOX_ID)||document.body},qe.createElement($c,{size:20}),qe.createElement(Xy,{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:qe.createElement(Wo,null,qe.createElement(kr,null,qe.createElement(Ky,{src:r,size:45})),qe.createElement(Mo,null))}),qe.createElement(Dc,null,qe.createElement(Ia,{variant:"body",size:"xsmall",color:"$neutral600"},Lo.t("Choose Derivation Path Template")),qe.createElement(jy,{value:l||"",options:d.map(y=>({value:y.id,label:y.label})),variant:"filled",handleItemClick:m,styles:{trigger:Aa}}),qe.createElement($c,{size:20}),qe.createElement(Ia,{variant:"body",size:"xsmall",color:"$neutral600"},g?Lo.t("Enter Path"):Lo.t("Enter Index")),qe.createElement(Yy,{type:g?"text":"number",variant:"contained",value:u,onChange:y=>c(y.target.value),style:Aa})),qe.createElement(Vy,{type:"primary",onClick:f,disabled:!d||!l||!u},Lo.t("Confirm")))}i(so,"WalletDerivationPathModal");import{Divider as tS}from"@rango-dev/ui";import Wa from"react";import{i18n as Bo}from"@lingui/core";import{Image as Ry,MessageBox as Na,WalletState as eS}from"@rango-dev/ui";import lo from"react";function Qc(t){let{state:e,image:o,error:n}=t;return e===eS.CONNECTED?lo.createElement(Na,{type:"success",title:Bo.t("Wallet Connected"),description:Bo.t("Your wallet is connected, you can use it to swap.")}):n?lo.createElement(Na,{type:"error",title:Bo.t("Failed to Connect"),description:n||Bo.t("Your wallet is not connected. Please try again.")}):lo.createElement(Na,{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(kr,null,lo.createElement(Ry,{src:o,size:45})),lo.createElement(Mo,null))})}i(Qc,"ModalContent");function Jo(t){let{open:e,onClose:o,...n}=t;return Wa.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},Wa.createElement(Qc,{...n}),Wa.createElement(tS,{direction:"vertical",size:32}))}i(Jo,"WalletModal");import{i18n as Ma}from"@lingui/core";import{Button as nS,Checkbox as rS,Divider as iS,Image as qc,ListItemButton as aS,MessageBox as sS,Radio as lS,RadioRoot as pS}from"@rango-dev/ui";import{namespaces as Hc}from"@rango-dev/wallets-shared";import Me,{useMemo as cS,useState as uS}from"react";import{styled as oS}from"@rango-dev/ui";var zc=oS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var mS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function po(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=uS([]),a=h().blockchains(),s=cS(()=>o?.map(u=>({name:u,logo:mS(a,Hc[u].mainBlockchain),title:Hc[u].title})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(g=>g!==u):c.concat(u))},"onSelect"),p=i(u=>e?Me.createElement(pS,{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(iS,{size:20}),Me.createElement(sS,{type:"info",title:Ma.t("Select chain types"),description:Ma.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Me.createElement(Wo,null,Me.createElement(gr,null,Me.createElement(qc,{src:t.image,size:45})),Me.createElement(Mo,null))}),Me.createElement(zc,null,p(Me.createElement(Me.Fragment,null,s?.map(u=>Me.createElement(aS,{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(lS,{value:u.name}):Me.createElement(rS,{checked:n.includes(u.name)})}))))),Me.createElement(nS,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Ma.t("Confirm")))}i(po,"WalletNamespacesModal");var SS=Kc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),TS=Kc(fe,{textAlign:"center"}),vr=3e3,La=300;function Xc(){let{fetchStatus:t}=h(),[e,o]=Ro("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=Ro(!1),[l,p]=Ro(null),[u,c]=Ro(null),[g,d]=Ro(""),m=null,f=ae.use.isActiveTab(),{list:y,handleClick:S,error:T,disconnectConnectingWallets:C}=no({onBeforeConnect:G=>{m=setTimeout(()=>{s(!0),d(G)},La)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},vr)}}),k=i(()=>{C(),s(!1)},"handleCloseWalletModal"),w=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),b=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),N=y.find(G=>G.type===g),x=N?.image||"",v=N?.state||Vc.NOT_INSTALLED,E=Ql(y,n),_=fS(E)!==1,Q=zl(y,e),A=i((G,B)=>{Mn(y,r.multiWallets)||(B.namespaces&&B.state===Vc.DISCONNECTED?p({open:!0,providerType:G,providerImage:B.image,availableNamespaces:B.namespaces,singleNamespace:B.singleNamespace}):S(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]}):S(l?.providerType,G.map(Z=>({namespace:Z}))),w()},"handleConfirmNamespaces"),j=i(G=>{G&&u?.namespace&&S(u.providerType,[{namespace:u.namespace,derivationPath:G}]),b()},"handleDerivationPathConfirm");return it.createElement(ce,{header:{title:Gc.t("Connect Wallets")}},it.createElement(TS,null,_&&it.createElement(it.Fragment,null,it.createElement(gS,{setCategory:o,category:e,blockchains:E,isLoading:t==="loading"}),it.createElement(dS,{size:24})),it.createElement(hS,{variant:"title",size:"xmedium",align:"center"},Gc.t("Choose a wallet to connect.")),it.createElement(SS,null,Q.map((G,B)=>{let Z=`wallet-${B}-${G.type}`;return it.createElement(yS,{key:Z,...G,container:P(),onClick:ie=>A(ie,G),isLoading:t==="loading",disabled:!f})}),it.createElement(Jo,{open:!!a,onClose:k,image:x,state:v,error:T}),it.createElement(po,{open:!!l?.open,onClose:w,onConfirm:z,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),it.createElement(so,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:b,onConfirm:j}))))}i(Xc,"WalletsPage");import{keyframes as CS,styled as Ba}from"@rango-dev/ui";var jc=Ba("div",{position:"relative"}),kS=CS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Yc=Ba("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${kS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Zc=Ba("div",{"& img":{borderRadius:"50%"}});var bS=7;function _a(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,g]=co(""),[d,m]=co(null),[f,y]=co(!1),[S,T]=co(null),[C,k]=co(null),[w,b]=co(null),{suggestAndConnect:N}=xr(),x=null,{list:v,error:E,handleClick:I,disconnectWallet:_,disconnectConnectingWallets:Q}=no({chain:e,onBeforeConnect:L=>{x=setTimeout(()=>{g(L)},La)},onConnect:L=>{s?.(L),x&&clearTimeout(x),setTimeout(()=>{g("")},vr)}}),[A,z]=co(v),j=v.length,G=r&&j-r>0,B=i(async L=>{y(!1),T("in-progress");try{await N(L.walletType,L.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain"),Z=i(()=>{C&&k({...C,open:!1})},"handleCloseNamespaceModal"),ie=i(()=>{w&&b({...w,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===C?.providerType);me?.singleNamespace&&me?.needsDerivationPath&&L[0]?b({open:!0,providerType:me.type,providerImage:me.image,namespace:L[0]}):I(C?.providerType,L.map(se=>({namespace:se}))),Z()},"handleConfirmNamespaces"),ge=i(L=>{L&&w?.namespace&&I(w.providerType,[{namespace:w.namespace,derivationPath:L}]),ie()},"handleDerivationPathConfirm");eu(()=>{z(L=>{let me=v.findIndex(se=>o(se.type,e));return G&&me>1?[v[me]].concat(v.filter((se,_e)=>_e!==me)):L.map(se=>v.find(_e=>_e.type===se.type)??se)})},[JSON.stringify(v)]);let Te=document.getElementById(he.SWAP_BOX_ID);eu(()=>{let L=null;return(S==="completed"||S==="rejected")&&(L=setTimeout(()=>T(null),vr)),()=>{L&&clearTimeout(L)}},[S]);let D=i(()=>{Q(),g("")},"handleCloseWalletModal");return ue.createElement(ue.Fragment,null,A.slice(0,r).map(L=>{let me=Fl({connectedWallets:p,walletType:L.type,chain:e}),se=me?Un(me,bS):"",_e=Fn(u(),e),pt=!p.find(de=>de.walletType===L.type&&de.chain===e),De=_e&&pt&&L.state===Rc.CONNECTED,Ve=De?mt.t({id:"Add {chain} chain",values:{chain:e}}):se,Ke=i(async()=>{L.state===Rc.DISCONNECTED?L.namespaces?J(L):I(L.type):L.namespaces&&!se?(await _(L.type),J(L)):De?(m({walletType:L.type,chain:e,address:me??""}),y(!0)):n({walletType:L.type,chain:e,address:me??""})},"onClick"),ve=d?.chain?Ln(d.chain,u()):void 0;return ue.createElement(ue.Fragment,{key:`${L.title}_${ve}`},ue.createElement(Jo,{open:c===L.type,onClose:D,image:L.image,state:L.state,error:E}),ue.createElement(po,{open:!!C?.open,onClose:Z,onConfirm:ne,image:C?.providerImage,availableNamespaces:C?.availableNamespaces,singleNamespace:C?.singleNamespace}),ue.createElement(so,{open:!!w?.open,selectedNamespace:w?.namespace,type:w?.providerType,image:w?.providerImage,onClose:ie,onConfirm:ge}),!!d&&ue.createElement(re,{open:!!d&&f,container:Te,onClose:()=>{m(null)}},ue.createElement(wr,{title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),type:"warning",description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}})},ue.createElement(Pa,{size:18}),ue.createElement(Pa,{size:32}),ue.createElement(vS,{onClick:B.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},mt.t("Confirm")))),S&&ue.createElement(re,{open:!!S,onClose:T.bind(null,null),container:Te},S==="in-progress"&&ue.createElement(wr,{type:"loading",title:mt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ve}}),description:mt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ve}}),icon:ue.createElement(jc,null,ue.createElement(Zc,null,ue.createElement(wS,{src:L.image,size:45})),ue.createElement(Yc,null))}),S==="completed"&&ue.createElement(wr,{type:"success",title:mt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ve}}),description:mt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ve}})}),S==="rejected"&&ue.createElement(wr,{type:"error",title:mt.t("Request Rejected"),description:mt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ve}})}),ue.createElement(Pa,{direction:"vertical",size:32})),ue.createElement(xS,{key:L.type,description:Ve,onClick:Ke,selected:o(L.type,e),disabled:!l,...L}))}),G&&ue.createElement(Yp,{selected:!1,onClick:a},ue.createElement(Jc,{variant:"label",size:"medium"},mt.t("Show more wallets"),ue.createElement(Jc,{variant:"label",size:"medium",color:"$primary"},"\xA0+",j-(r??0)))))}i(_a,"WalletList");var $S=2;function ru(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=DS(),l=h().config,p=_S(null),u=h().blockchains(),{selectedQuote:c,setSelectedWallets:g,quoteWalletsConfirmed:d,setQuoteWalletConfirmed:m,customDestination:f,setCustomDestination:y}=Y(),{connectedWallets:S,selectWallets:T}=te(),[C,k]=uo(""),[w,b]=uo([]),[N,x]=uo(""),[v,E]=uo(null),[I,_]=uo(!!f),Q=navigator?.userAgent.includes("Firefox"),A=PS(()=>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=BS(()=>S.filter(W=>W.selected&&A.includes(W.chain)),[S,A]),[Z,ie]=uo(B()),[J,ne]=uo([]),ge=i((W,V)=>ne(K=>K.concat({blockchain:W,walletType:V})),"addNextSelectedWallets"),Te=w.length>0,D=i((W,V)=>!!Z.find(K=>K.walletType===W&&K.chain===V&&K.selected&&(G(V)||!G(V)&&!f)),"isSelected"),L=!!f&&I&&j&&!Xn(j,f),me=i(()=>{_(!1),y(null),ie(W=>{let V=!1;return W.map(K=>!V&&K.chain===j?.name?(V=!0,{...K,selected:!0}):K)})},"resetCustomDestination"),se=i(()=>y(""),"handleClearCustomDestination"),_e=i(async W=>{if(W.preventDefault(),navigator.clipboard!==void 0){let V=await navigator.clipboard.readText();y(V),p?.current?.focus()}},"handlePasteCustomDestination"),pt=i(W=>{W?G(j?.name??"")||ie(V=>V.map(K=>K.chain===j?.name?{...K,selected:!1}:K)):me()},"handleCustomDestinationCollapsibleOpenChange"),De=i(W=>{if(C&&k(""),D(W.walletType,W.chain))return;let K=S.find(Xe=>Xe.walletType===W.walletType&&Xe.chain===W.chain);K&&(n(),W.chain===j?.name&&I&&!G(j.name)&&(_(!1),y(null)),ie(Xe=>Xe.filter(St=>St.chain!==W.chain).concat({...K,selected:!0})))},"onChange"),Ve=i(()=>{let W=Z.filter(V=>V.selected);T(W),g(W),m(!0),o()},"onConfirmBalance"),Ke=i(async()=>{b([]),x(""),E(null);let W=await r?.({selectedWallets:Z.filter(K=>K.selected),customDestination:f}),V=W.warnings;V?.balance?.messages&&b(V.balance.messages),V?.quoteUpdate&&E(V.quoteUpdate),W.error&&x(hp(W.error)),!W.error&&!V?.balance?.messages.length?Ve():b(V?.balance?.messages??[])},"onConfirmWallets"),ve=i(()=>f?$.createElement(ou,{onClick:se,variant:"ghost"},$.createElement(NS,{size:12,color:"gray"})):Q?null:$.createElement(ou,{onClick:_e,variant:"ghost"},$.createElement(MS,{size:16})),"renderCustomDestinationSuffix");nu(()=>{ie(W=>{let V=[];return W.forEach(K=>{!S.some(St=>St.chain===K.chain&&St.walletType===K.walletType&&St.address===K.address)||V.push(K)}),V=V.concat(S.filter(K=>!!!V.find(St=>St.chain===K.chain)&&K.selected&&A.includes(K.chain))),V})},[S,A]),nu(()=>{let W=[];J.length>0&&(J.forEach(V=>{let K=S.find(Xe=>Xe.chain===V.blockchain&&Xe.walletType===V.walletType);K?De(K):W.push(V)}),ne(W))},[S,J]);let de=document.getElementById(he.SWAP_BOX_ID);return $.createElement(re,{open:e,onClose:()=>{d||s("../",{replace:!0}),o()},dismissible:!C,container:de,...!C&&{footer:$.createElement(nc,null,$.createElement(tu,{loading:a,disabled:Pp(a,I,f,c,Z,j),onClick:Ke,variant:"contained",type:"primary",fullWidth:!0,size:"large"},vt.t("Confirm")))},...C&&{styles:{container:{padding:"$0"}},header:$.createElement(Zp,null,$.createElement(Jp,{variant:"ghost",onClick:k.bind(null,"")},$.createElement(AS,{size:16})),$.createElement(br,{variant:"headline",size:"small"},vt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Re(C,u)}})))},anchor:"center"},$.createElement(re,{open:Te,onClose:b.bind(null,[]),container:de},$.createElement(WS,{title:vt.t("Insufficient account balance"),type:"error",description:$.createElement(ES,{messages:w??[]})},$.createElement(tu,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Ve},vt.t("Proceed anyway")))),C&&$.createElement(Rp,null,$.createElement("div",{className:ec()},$.createElement(_a,{chain:C,isSelected:D,selectWallet:De,onShowMore:()=>k(C),onConnect:W=>{ge(C,W)}}))),!C&&$.createElement($.Fragment,null,N&&$.createElement($.Fragment,null,$.createElement(Da,{variant:"alarm",type:"error",title:vt.t(N)}),$.createElement(en,{size:12})),v&&$.createElement($.Fragment,null,$.createElement(Da,{variant:"alarm",type:"warning",title:ar(v)}),$.createElement(en,{size:12})),$.createElement(ic,null,A.map((W,V)=>{let K=u.find(Zt=>Zt.name===W),Xe=`wallet-${V}`,St=V===A.length-1;return $.createElement("div",{key:Xe},$.createElement(Xp,null,$.createElement(br,{variant:"title",size:"xmedium"},vt.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),$.createElement(br,{variant:"label",color:"$neutral700",size:"medium"},vt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),$.createElement(en,{size:24}),$.createElement(jp,null,$.createElement(_a,{chain:W,isSelected:D,selectWallet:De,limit:$S,onShowMore:()=>k(K?.name??""),onConnect:Zt=>{ge(W,Zt)}})),!St&&$.createElement(en,{size:32}),St&&l?.customDestination!==!1&&$.createElement(tc,null,$.createElement(ur,{onOpenChange:pt,hasSelected:!0,open:I,triggerAnchor:"top",trigger:$.createElement(ac,null,$.createElement("div",{className:"button__content"},$.createElement(LS,{size:18,color:"info"}),$.createElement(en,{size:4,direction:"horizontal"}),$.createElement(br,{variant:"label",size:"medium",color:I?"$neutral600":void 0},vt.t("Send to a different address"))),$.createElement(pr,{orientation:I?"up":"down"},$.createElement(IS,{size:10,color:"secondary"}))),onClickTrigger:()=>_(Zt=>!Zt)},$.createElement(rc,{ref:p,style:{padding:0,paddingRight:f?"8px":"5px"},autoFocus:!0,placeholder:vt.t("Enter {blockchainName} address",{blockchainName:Ln(W,u)}),value:f||"",suffix:ve(),onChange:Zt=>{let rg=Zt.target.value;y(rg)},...!f&&{autoFocus:!0}})),L&&$.createElement("div",{className:oc()},$.createElement(Da,{variant:"alarm",type:"error",title:vt.t({values:{destination:f},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(ru,"ConfirmWalletsModal");import{i18n as oT}from"@lingui/core";import{Alert as nT,Button as rT,InfoIcon as iT}from"@rango-dev/ui";import Ye from"react";import{Alert as US,Button as QS,Divider as Oa,NoRouteIcon as zS,RefreshIcon as qS,Typography as uu}from"@rango-dev/ui";import je from"react";import{i18n as iu}from"@lingui/core";var FS=24,OS=60;function au(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:iu.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:iu.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(au,"makeInfo");var $a=(o=>(o[o.small=FS]="small",o[o.large=OS]="large",o))($a||{}),Fa=(o=>(o.small="small",o.large="medium",o))(Fa||{});import{styled as Er}from"@rango-dev/ui";var su=Er("div",{display:"flex",flexDirection:"column",alignItems:"center"}),lu=Er("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),pu=Er("div",{variants:{size:{small:{width:"100%"},large:{}}}}),cu=Er("div",{padding:"$6 $0"});function tn(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=au(o,r,()=>a(s,!0),e);return je.createElement(su,null,je.createElement(zS,{size:$a[n],color:"gray"}),je.createElement(Oa,{size:4}),je.createElement(uu,{variant:"title",size:Fa[n]},oe().noResultError.title),n==="large"&&je.createElement(Oa,{size:4}),!!l.description&&je.createElement(lu,{size:n},je.createElement(uu,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),je.createElement(Oa,{size:n==="large"?"24":"4"}),!!l.alert&&je.createElement(pu,{size:n},je.createElement(US,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&je.createElement(QS,{size:"xsmall",type:l.alert.type,prefix:je.createElement(cu,null,je.createElement(qS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(tn,"NoResult");import{i18n as on}from"@lingui/core";import{Button as GS,Divider as VS,MessageBox as KS,Typography as XS,WarningIcon as jS}from"@rango-dev/ui";import Wt from"react";import{Typography as gu}from"@rango-dev/ui";import Qa from"react";import{darkTheme as HS,styled as Ir}from"@rango-dev/ui";var mu=Ir("div",{width:"100%"}),Ua=Ir("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),du=Ir("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${HS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),fu=Ir("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function hu(t){let{title:e,value:o,valueColor:n}=t;return Qa.createElement(du,null,Qa.createElement(gu,{size:"medium",variant:"label",className:"_title"},e),Qa.createElement(gu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(hu,"QuoteErrorsModalItem");function yu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:on.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:on.t("Gas cost"),value:M(r.totalFee,2,2)},{title:on.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:on.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Wt.createElement(re,{footer:Wt.createElement(GS,{type:"primary",size:"large",prefix:Wt.createElement(jS,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},Wt.createElement(KS,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),Wt.createElement(Ua,null,Wt.createElement(VS,{size:"4"}),Wt.createElement(XS,{size:"small",variant:"title"},on.t("Details")),Wt.createElement(Ua,null,l.map((p,u)=>Wt.createElement(hu,{key:u,...p})))))}i(yu,"HighValueLossWarningModal");import{i18n as za}from"@lingui/core";function Su(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=za.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Nt(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=za.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=za.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Su,"makeAlerts");import{i18n as Po}from"@lingui/core";import{Button as Tu,Divider as Cu,MessageBox as YS,Typography as ZS}from"@rango-dev/ui";import mo from"react";import{useNavigate as JS}from"react-router-dom";function ku(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=JS(),u=e??o;return mo.createElement(re,{anchor:"bottom",open:n,prefix:mo.createElement(Tu,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},mo.createElement(ZS,{variant:"label",size:"medium",color:"$neutral900"},Po.t("Change settings"))),container:P(),onClose:r},mo.createElement(YS,{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(Cu,{size:18}),mo.createElement(Cu,{size:32}),mo.createElement(Tu,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Po.t("Confirm anyway"))))}i(ku,"SlippageWarningModal");import{Button as RS,MessageBox as eT,WarningIcon as tT}from"@rango-dev/ui";import Ar from"react";function vu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ar.createElement(re,{footer:Ar.createElement(RS,{type:"primary",size:"large",prefix:Ar.createElement(tT,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},Ar.createElement(eT,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(vu,"UnknownPriceWarningModal");function nn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,g={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,m=Su(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),Ye.createElement(Ye.Fragment,null,d&&Ye.createElement(tn,{error:o,fetch:s}),!!m&&Ye.createElement(mu,null,Ye.createElement(nT,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ye.createElement(fu,{onClick:l},Ye.createElement(iT,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:Ye.createElement(rT,{size:"xxsmall",type:m.alertType,onClick:c},oT.t("Change"))}})),e&&Ye.createElement(Ye.Fragment,null,e.type===0&&Ye.createElement(yu,{...g,warning:e}),(e.type===3||e.type===2)&&Ye.createElement(ku,{...g,warning:e}),e.type===1&&Ye.createElement(vu,{...g,warning:e})))}i(nn,"QuoteWarningsAndErrors");import DT from"bignumber.js";import zr from"react";import{i18n as fo}from"@lingui/core";import{Alert as wT,Divider as Do,FullExpandedQuote as xT,InfoIcon as bT,NumericTooltip as tm,QuoteTag as ET,StepDetails as IT,TokenAmount as AT,Typography as $o}from"@rango-dev/ui";import Ya from"bignumber.js";import F,{useRef as NT,useState as WT}from"react";import{styled as qa}from"@rango-dev/ui";var Ha=qa("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),wu=qa("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),xu=qa("div",{width:"100%",display:"flex"});import*as Nr from"@radix-ui/react-collapsible";import{Button as aT,css as rn,darkTheme as be,Image as bu,styled as Ue,Typography as sT}from"@rango-dev/ui";var lT=300,Eu=Ue(Nr.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"}}]}),Iu=rn({padding:"$10 $15"}),Au=Ue(aT,{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"}}}),Nu=Ue("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"}}}}]}),Wu=rn({width:"100%",padding:"$15 $15 $10 $15"}),Mu=rn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),_o=rn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Lu=rn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Bu=Ue(Nr.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:{[`& ${bu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${bu}`]:{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"}}}),Pu=Ue("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"}}}}),_u=Ue(lr,{width:"100%",background:"inherit"}),Ga=Ue("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${lT}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),JB=Ue("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Du=Ue("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),$u=Ue("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Va=Ue(sT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Fu=Ue("div",{display:"flex",flexWrap:"wrap"}),Ka=Ue("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"}}}}),Ou=Ue("div",{display:"flex"}),Wr=Ue("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${be} &`]:{borderTopColor:"$neutral800"}});import{i18n as wt}from"@lingui/core";import{ChevronDownIcon as cT,CloseIcon as uT,Divider as Br,IconButton as mT,NumericTooltip as dT,QuoteCost as fT,Typography as dt}from"@rango-dev/ui";import ee,{useState as qu}from"react";import{css as pT,styled as Mr}from"@rango-dev/ui";var Lr=Mr("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Xa=Mr("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Uu=Mr("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Qu=Mr("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),zu=pT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var gT=i(t=>t.fee.isZero()?null:ee.createElement(Lr,null,ee.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},t.label),ee.createElement(dt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Hu(t){let[e,o]=qu(!1),[n,r]=qu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,g=s?.swaps??[],d=P(),m=vp(g);return ee.createElement(ee.Fragment,null,ee.createElement(fT,{onClickFee:c?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?wt.t("View more info"):void 0,tooltipContainer:d}),ee.createElement(re,{container:d,open:e,header:ee.createElement(Qu,null,ee.createElement(dt,{variant:"title",size:"medium"},wt.t("Gas & Fee Explanation")),ee.createElement(mT,{onClick:()=>o(!1),variant:"ghost"},ee.createElement(uT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},ee.createElement(Uu,null,ee.createElement(dt,{variant:"title",size:"small"},wt.t("Details")),ee.createElement(Br,{size:10}),Object.entries(m.payable).flatMap(([f,y])=>y.map((S,T)=>{let C=`payable-fee-${T}`,k=Xi(S);return ee.createElement(Lr,{key:C},ee.createElement(dt,{variant:"label",size:"medium",color:"neutral600"},Hi(f,wt.t)),ee.createElement(dT,{content:S.amount,container:d},ee.createElement(dt,{variant:"label",size:"medium"},M(S.amount,2,2)," ",S.asset.symbol," ($",M(k,4,4),")")))})),ee.createElement(Lr,{className:"total_payable_fee"},ee.createElement(dt,{variant:"label",size:"medium"},wt.t("Total Payable Fee")),ee.createElement(dt,{variant:"label",size:"medium"},"$",M(l,4,4))),ee.createElement(Xa,null),Object.keys(m.nonePayable).length&&ee.createElement(ur,{triggerAnchor:"bottom",onClickTrigger:()=>r(f=>!f),trigger:ee.createElement("div",{className:zu()},ee.createElement(dt,{size:"small",variant:"body",color:"neutral700"},n?wt.t("Hide non-payable fees"):wt.t("Show non-payable fees")),ee.createElement(Br,{size:4,direction:"horizontal"}),ee.createElement(pr,{orientation:n?"up":"down"},ee.createElement(cT,{size:12,color:"gray"}))),open:n},ee.createElement(dt,{size:"small",variant:"title"},wt.t("Description")),ee.createElement(Br,{size:4}),ee.createElement(dt,{size:"small",variant:"body",color:"neutral700"},wt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),ee.createElement(Br,{size:10}),Object.entries(m.nonePayable).map(([f,y],S)=>{let T=kp(y),C=Hi(f,wt.t),k=`non-payable-fee-${S}`;return ee.createElement(gT,{key:k,fee:T,label:C})}),ee.createElement(Xa,null)))))}i(Hu,"QuoteCostDetails");import{i18n as Ku}from"@lingui/core";import{TokenAmount as Xu}from"@rango-dev/ui";import Pr from"react";import{css as hT,styled as yT}from"@rango-dev/ui";var Gu=yT("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Vu=hT({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function an(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Pr.createElement(Gu,null,Pr.createElement(Xu,{direction:"horizontal",label:Ku.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}}),Pr.createElement("div",{className:Vu()}),Pr.createElement(Xu,{direction:"horizontal",tooltipContainer:P(),label:Ku.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(an,"QuoteSummary");import{i18n as Ru}from"@lingui/core";import{ChevronDownIcon as CT,ChevronRightIcon as kT,Divider as ja,Image as vT,Tooltip as Or,Typography as Dr}from"@rango-dev/ui";import O from"react";import{useLayoutEffect as ST,useState as sn}from"react";var ju=480,Yu=768,Zu=1024,Ju=1200,TT=i(()=>{let[t,e]=sn(!1),[o,n]=sn(!1),[r,a]=sn(!1),[s,l]=sn(!1),[p,u]=sn(!1),c=i(()=>{e(window.innerWidth<=ju),n(window.innerWidth>ju&&window.innerWidth<=Yu),a(window.innerWidth>Yu&&window.innerWidth<=Zu),l(window.innerWidth>Zu&&window.innerWidth<=Ju),u(window.innerWidth>Ju)},"handleResize");return ST(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),_r=TT;var $r=4,Fr=6,ln=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return O.createElement(Or,{container:l,side:"bottom",sideOffset:4,open:r,content:e},O.createElement(Pu,{className:n,state:a},O.createElement(vT,{src:o,size:16})))},"ImageComponent");function em(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Op(r),{isTablet:g,isMobile:d}=_r();return O.createElement(Bu,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(f=>!f)}},O.createElement("div",{className:_o()},O.createElement(Dr,{variant:"body",size:"xsmall"},Ru.t("Via:")),O.createElement(ja,{direction:"horizontal",size:4}),r.map((m,f)=>{let y=`item-${f}`,S=O.createElement(Ga,null,O.createElement(kT,{size:12,color:"black"}));return d||g?O.createElement(O.Fragment,{key:y},O.createElement(ln,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):O.createElement(O.Fragment,{key:y},u<=$r||u>$r&&f<$r-1?O.createElement(O.Fragment,null,O.createElement(ln,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&O.createElement(O.Fragment,null,S)):f===$r-1&&O.createElement(Or,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},S,r.map((T,C)=>{let k=`image-${C}`;return C>=f&&O.createElement(O.Fragment,{key:k},O.createElement(ln,{content:T.swapper.displayName,src:T.swapper.image,state:T.state,open:!1}),C!==u-1&&O.createElement(O.Fragment,null,S))}))},O.createElement(Ka,{state:r.find((T,C)=>C>=f&&(T.state==="error"||T.state==="warning"))?.state},O.createElement(Dr,{size:"xsmall",variant:"body"},"+",u-f))))})),O.createElement("div",{className:_o()},O.createElement("div",{className:"blockchains_section"},O.createElement("div",{className:_o()},O.createElement(Dr,{variant:"body",size:"xsmall"},Ru.t("Chains:")),O.createElement(ja,{direction:"horizontal",size:4}),c.map((m,f)=>O.createElement(O.Fragment,{key:m.displayName},c.length<=Fr||c.length>Fr&&f<Fr-1?O.createElement(Or,{container:p,side:"bottom",content:m.displayName,sideOffset:4},O.createElement(ln,{content:"",src:m.image,open:!1,className:f!==0?"blockchainImage":""})):f===Fr-1&&O.createElement(Or,{container:p,side:"bottom",align:"end",sideOffset:4,content:O.createElement("div",{className:_o()},c.map((y,S)=>S>=f&&O.createElement(ln,{key:y.displayName,content:"",src:y.image,open:!1,className:S>f?"blockchainImage":"",container:l})))},O.createElement(Ka,{className:"blockchainImage"},O.createElement(Dr,{size:"xsmall",variant:"body"},"+",c.length-f))))),O.createElement(ja,{direction:"horizontal",size:32}))),O.createElement(Ga,{orientation:a?"up":"down"},O.createElement(CT,{size:12,color:"black"}))))}i(em,"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:g=!1,container:d}=t,m=h().blockchains(),{findToken:f}=h(),y=h().swappers(),{customSlippage:S,slippage:T}=h(),C=S||T,[k,w]=WT(t.expanded),b=NT(null),N=M(o.value,6,6),x=M(n.value,6,6),v=n.usdValue?M(n.usdValue,4,4):"",E=tt(o.usdValue,n.usdValue??null),I=M(E,2,2),_=Nt(E??0),Q=i((ge,Te)=>ge.map((D,L)=>{let me,se=r?.type===3&&r.swap.swapperId===D.swapperId,_e=r?.type===4&&r.recommendedSlippages?.has(L),pt=a?.type===2&&a.recommendedSlippages?.has(L),De=se||_e,Ve=pt;De?me="error":Ve&&(me="warning");let Ke=De?fo.t("Slippage Error"):fo.t("Slippage Warning");return se&&(Ke=fo.t("Bridge Limit Error")),{swapper:{displayName:qo(D.swapperId,y)??"",image:D.swapperLogo},from:{token:{displayName:D.from.symbol,image:D.from.logo},chain:{displayName:Re(D.from.blockchain,m)??"",image:D.from.blockchainLogo},price:{value:L===0&&!Te?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 Ya(D.from.usdPrice??0).multipliedBy(D.fromAmount).toString()}},to:{token:{displayName:D.to.symbol,image:D.to.logo},chain:{displayName:Re(D.to.blockchain,m)||"",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 Ya(D.to.usdPrice??0).multipliedBy(D.toAmount).toString()}},state:me,alerts:De||Ve?F.createElement(wu,{dense:g},F.createElement(wT,{variant:"alarm",type:De?"error":"warning",title:Ke,footer:F.createElement(xu,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||pt)&&!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:C}}))))})):void 0,time:Ho(D.estimatedTimeInSeconds),fee:M(Ki(D,f),2,2),internalSwaps:D.internalSwaps?Q(D.internalSwaps):void 0}}),"getQuoteSteps"),A=Q(e?.swaps??[]),z=A.length,j=d||P(),G=Qp(t.quote.tags||[]),B=!!c,Z=Ho(Bn(e?.swaps)),ie=Zn(e?.swaps??[],f),J=M(ie,2,2),ne=ie.gte(new Ya(gp));return g?F.createElement(xT,{selected:l,fee:J,time:Z,tooltipContainer:zo(),steps:A,tags:G,feeWarning:ne,percentageChange:I,warningLevel:_,outputPrice:{value:x,usdValue:v,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Nu,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Wu()},!p&&G.length?F.createElement(F.Fragment,null,F.createElement(Ou,null,G.map((ge,Te)=>{let D=`${ge.value}_${Te}`;return F.createElement(F.Fragment,{key:D},F.createElement(ET,{label:ge.label,value:ge.value}),F.createElement(Do,{size:4,direction:"horizontal"}))})),F.createElement(Wr,null),!B&&F.createElement(Do,{size:4})):null,F.createElement("div",{id:"portal-root",className:Mu()},F.createElement(Hu,{quote:e,time:Z,fee:J,feeWarning:ne,showModalFee:u,steps:z}),B&&F.createElement(Au,{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:Lu()},F.createElement($u,null,F.createElement(bT,{size:12,color:"gray"})),F.createElement(Fu,null,F.createElement(Va,{size:"small",variant:"body"},`${N} ${A[0].from.token.displayName} = `),F.createElement(tm,{content:n.value,container:j,open:n.value?void 0:!1},F.createElement(Va,{size:"small",variant:"body"},"\xA0",`${x} ${A[A.length-1].to.token.displayName}`))),F.createElement(tm,{content:n.usdValue,container:j},F.createElement(Do,{size:2,direction:"horizontal"}),F.createElement($o,{color:"$neutral600",size:"xsmall",variant:"body"},`($${v})`))),s==="list-item"&&F.createElement(AT,{tooltipContainer:j,type:"output",direction:"vertical",price:{value:x,usdValue:v,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:I,warningLevel:_}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(an,{from:A[0].from,to:A[z-1].to,percentageChange:I,warningLevel:_}),F.createElement(Do,{size:4}))),F.createElement(Eu,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},F.createElement(em,{type:s,quoteRef:b,selected:l,setExpanded:w,container:j,expanded:k,steps:A}),F.createElement(_u,{open:k},F.createElement(Du,null),F.createElement("div",{className:Iu()},A.map((ge,Te)=>{let D=`item-${Te}`;return F.createElement(IT,{type:"quote-details",key:D,tooltipContainer:j,step:ge,hasSeparator:Te!==A.length-1,state:ge.state})})))))}i(Za,"Quote");import{Divider as PT,Skeleton as _T}from"@rango-dev/ui";import Lt from"react";import{darkTheme as MT,styled as Ur}from"@rango-dev/ui";var om=Ur("div",{$$color:"$colors$neutral100",[`.${MT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),nm=Ur("div",{paddingTop:"$2"}),rm=Ur("div",{paddingLeft:"$8"}),im=Ur("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as gm,Divider as ft,Skeleton as Ze}from"@rango-dev/ui";import H from"react";import{css as LT,styled as Mt}from"@rango-dev/ui";var Ja=Mt("div",{display:"flex"}),am=Mt("div",{padding:"$10 $0 $20"}),sm=Mt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),lm=Mt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),pm=Mt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),cm=Mt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),um=Mt("div",{width:"65%",display:"flex",justifyContent:"start"}),mm=Mt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),dm=Mt("div",{padding:"$15 $0 $15 $0"}),fm=LT({display:"flex",justifyContent:"space-between",alignItems:"center"});function pn(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(pm,null,H.createElement(um,null,H.createElement(gm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ft,{size:8,direction:"horizontal"}),H.createElement(mm,null,H.createElement(Ze,{height:10,width:60,variant:"rounded"}),H.createElement(ft,{size:4}),H.createElement(Ze,{height:15,variant:"rounded"}))),H.createElement(Ze,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return H.createElement("div",null,!o&&H.createElement(H.Fragment,null,H.createElement(Ja,null,H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:65,height:20,variant:"rounded"})),H.createElement(Wr,null),!r&&H.createElement(ft,{size:4})),H.createElement("div",{className:fm()},H.createElement(Ja,null,H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"}),H.createElement(ft,{size:4,direction:"horizontal"}),H.createElement(Ze,{width:60,height:10,variant:"rounded"})),r&&H.createElement(Ze,{width:85,height:24,variant:"rounded"})),e==="basic"&&H.createElement(am,null,H.createElement(Ze,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(sm,null,H.createElement(lm,null,H.createElement(gm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ft,{direction:"horizontal",size:4}),H.createElement(Ze,{height:15,width:150,variant:"rounded"})),H.createElement(ft,{size:10}),H.createElement(Ze,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&H.createElement(H.Fragment,null,H.createElement(ft,{size:4}),H.createElement(dm,null,n,H.createElement(cm,null),n),H.createElement(ft,{size:12})))}i(pn,"QuoteSummarySkeleton");import{ChainToken as Cm,Divider as es,NextIcon as BT,Skeleton as Qr}from"@rango-dev/ui";import Ee from"react";import{styled as cn}from"@rango-dev/ui";var hm=cn("div",{display:"flex",alignItems:"start"}),ym=cn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ra=cn("div",{display:"flex",alignItems:"center",flexGrow:1}),Sm=cn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Tm=cn("div",{display:"flex",alignItems:"center"});function xt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(Tm,null,Ee.createElement(Qr,{height:22,width:22,variant:"circular"}),Ee.createElement(es,{direction:"horizontal",size:8}),Ee.createElement(Qr,{height:15,width:148,variant:"rounded"})),Ee.createElement(hm,null,Ee.createElement(im,{hideSeparator:!e}),Ee.createElement(ym,{extraSpace:e},Ee.createElement(Ra,null,Ee.createElement(Cm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(es,{direction:"horizontal",size:8}),Ee.createElement(Qr,{height:12,variant:"rounded"})),Ee.createElement(Sm,null,Ee.createElement(BT,{color:"gray",size:16})),Ee.createElement(Ra,null,Ee.createElement(Cm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(es,{direction:"horizontal",size:8}),Ee.createElement(Qr,{height:12,variant:"rounded"})))))}i(xt,"StepSkeleton");function un(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Lt.createElement(om,{expanded:o,rounded:e!=="basic"},Lt.createElement(pn,{type:e,tagHidden:n}),Lt.createElement(nm,null,Lt.createElement(_T,{height:15,variant:"rounded"})),o&&Lt.createElement(rm,null,Lt.createElement(PT,{size:24}),Lt.createElement(xt,null),Lt.createElement(xt,null),Lt.createElement(xt,{separator:!1})))}i(un,"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:g,fullExpandedMode:d=!1,container:m}=t,{inputAmount:f,inputUsdValue:y,toToken:S}=Y(),T=e?.outputAmount?new DT(e?.outputAmount):null,C=e?.outputAmount?Rn(e?.outputAmount,tr(e)||S?.usdPrice):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?zr.createElement(Ha,null,zr.createElement(un,{tagHidden:l,type:o,expanded:s})):w?zr.createElement(Ha,{onClick:()=>p?.(e)},zr.createElement(Za,{quote:e,error:r,container:m,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:d,input:{value:f,usdValue:y?.toString()??""},output:{value:T?.toString()??"",usdValue:C?.toString()??""}})):null}i(go,"QuoteInfo");import{calculatePendingSwap as UT}from"@rango-dev/queue-manager-rango-preset";import{useEffect as QT}from"react";import{useRef as $T,useState as FT}from"react";var OT=2e3;function qr({request:t}){let[e,o]=FT(!1),n=$T(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,OT)),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(qr,"useFetch");function km(){let{fetch:t,loading:e,cancelFetch:o}=qr({request:async(n,r)=>await Ot().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(km,"useFetchConfirmQuote");function Hr(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=ts(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Hr,"throwErrorIfResponseIsNotValid");function ts(t){if(Sp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Tp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=wp(t);if(o){let n=Jn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(ts,"getQuoteError");function vm(t,e,o){let n=!1;t&&(n=Fp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=xo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Np(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(wo(e)),percentageChange:M(tt(wo(t)??"",wo(e)??""),null,2)}:ji(t,e)?r.quoteUpdate={type:0}:Yi(t,e)?r.quoteUpdate={type:1}:Zi(t,e)&&(r.quoteUpdate={type:2}));let s=Wp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(vm,"generateWarnings");function Gr(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(Gr,"handleQuoteErrors");function os(){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(),g=h().blockchains(),d=h().tokens(),{findToken:m}=h(),f=u||p,{fetch:y,cancelFetch:S,loading:T}=km();return QT(()=>S,[]),{loading:T,fetch:i(async k=>{let w=k.selectedWallets,b=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=w.reduce((v,E)=>(v[E.chain]=E.address,v),{}),x={requestId:r?.requestId||"",selectedWallets:N,destination:b||void 0};try{return await y(x,!0).then(v=>{let{result:E}=v;Hr({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let I={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(I);let _={slippage:f.toString(),disabledSwappersGroups:c},Q=vm(r??void 0,I,{fromToken:t,toToken:e,meta:{blockchains:g},findToken:m,selectedWallets:w,userSlippage:f});Q.quoteUpdate&&s(!1),l();let A=!!Q.balance,z=UT(o.toString(),E,Ip(w),_,!A,{blockchains:g,tokens:d});return{quote:I,swap:z,error:null,warnings:Q}})}catch(v){return Gr(v)}},"fetch"),cancelFetch:S}}i(os,"useConfirmSwap");var YT=HT("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${xm}`]:{width:"$48",height:"$48"}}),ZT=is({flexGrow:1,paddingRight:"$10"}),JT=is({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),RT=is({display:"flex",justifyContent:"space-between",alignItems:"center"});function bm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=Y(),s=jT(),[l,p]=mn(""),u=!n,[c,g]=mn(!1),[d,m]=mn(!1),{isActiveTab:f}=ae(),y=h().getDisabledLiquiditySources(),S=XT(y),{manager:T}=zT(),{fetch:C,loading:k,cancelFetch:w}=os(),[b,N]=mn({swap:null,error:null,warnings:null}),[x,v]=mn(!1),E=i(async({selectedWallets:B,customDestination:Z})=>{let ie=await C?.({selectedWallets:B,customDestination:Z});return N(ie),ie},"onConfirmSwap"),I=i(async()=>{if(b.swap&&n)try{await T?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let B=`../${q.swaps}/${b.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){p("Error: "+B?.message)}},"addNewSwap"),_=i(async()=>{m(!0),await I(),m(!1)},"onConfirm"),Q=i(async()=>{b?.warnings?.quote&&!a?v(!0):await _()},"onStartConfirmSwap"),A=i(async()=>{N({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(B=>{N(B)}).catch(B=>console.error(B))},"onRefresh");Vr(()=>{!!S.current.length&&!y.length&&A(),S.current=y},[y.length]),Vr(()=>{u&&w()},[u]),Vr(()=>{u&&g(u)},[u]),Vr(()=>{u||C({selectedWallets:o,customDestination:r}).then(B=>N(B)).catch(B=>console.error(B))},[]),KT(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let z=b.warnings?.quote??null,j=b.error,G=[];if(l&&G.push(Ie.createElement(wm,{type:"error",variant:"alarm",title:l})),b.warnings?.quoteUpdate&&G.push(Ie.createElement(wm,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&ar(b.warnings.quoteUpdate)})),z||j){let B=`../${q.settings}`;G.push(Ie.createElement(nn,{warning:z,error:j,couldChangeSettings:!1,refetchQuote:A,showWarningModal:x,confirmationDisabled:!f,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:async()=>{v(!1),await I()},onChangeSettings:()=>s(B)}))}return Ie.createElement(ce,{header:{title:ns.t("Confirm Swap"),onWallet:()=>{let B=`../${q.wallets}`;s(B)}},footer:Ie.createElement(YT,null,Ie.createElement("div",{className:ZT()},Ie.createElement(qT,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!b.error||!f,onClick:Q},ns.t("Start Swap"))),Ie.createElement(xm,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!f,onClick:g.bind(null,!0)},Ie.createElement(VT,{size:24})))},c&&Ie.createElement(ru,{open:c,onClose:()=>g(!1),onCancel:w,loading:k,onCheckBalance:E}),Ie.createElement(fe,null,Ie.createElement("div",{className:RT()},Ie.createElement(GT,{variant:"title",size:"small"},ns.t("You get")),Ie.createElement("div",{className:JT()},Ie.createElement(hr,{onClick:!k&&!c&&!x?A:void 0}))),Ie.createElement(rs,{size:"12"}),pc(G.map((B,Z)=>({element:B,key:`alert-${Z}`})),Ie.createElement(rs,{size:10})),G.length>0?Ie.createElement(rs,{size:10}):null,Ie.createElement(go,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:k,warning:b.warnings?.quote??null})))}i(bm,"ConfirmSwapPage");import{i18n as Xr}from"@lingui/core";import{useManager as gC}from"@rango-dev/queue-manager-react";import{Divider as Dm,NotFound as hC,styled as yC}from"@rango-dev/ui";import Pt,{useState as SC}from"react";import{useNavigate as TC}from"react-router-dom";import{i18n as oC}from"@lingui/core";import{Divider as Wm,GroupedVirtualizedList as nC,Skeleton as rC,SwapListItem as Mm,Typography as iC}from"@rango-dev/ui";import Qe,{useCallback as Lm,useEffect as aC,useRef as sC,useState as lC}from"react";function Em(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(Em,"calculateGroupsSoFar");import{css as eC,darkTheme as tC,styled as dn}from"@rango-dev/ui";var as=eC(),Im=dn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ss=dn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${as}`]:{$$color:"$colors$neutral600",[`.${tC} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ls=dn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Am=dn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Nm=dn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var pC=10;function ps(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=lC([]),l=sC(0),{swaps:p,groupCounts:u,groups:c}=n(e),g=Lm(Em,[]),d=Lm(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,pC),s(g(u,l.current)))},[e.length]);if(aC(()=>{r||d()},[r,d]),r){let m=[1,2];return Qe.createElement(Qe.Fragment,null,[m,m].map((y,S)=>Qe.createElement(ss,{key:S},Qe.createElement(ls,null,Qe.createElement(rC,{variant:"text",width:60,size:"small"}),Qe.createElement(Wm,{size:16})),Qe.createElement(Wm,{size:4}),Qe.createElement(Am,null,y.map((C,k)=>Qe.createElement(Mm,{isLoading:!0,key:k}))))))}return Qe.createElement(nC,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>Qe.createElement(ss,null,Qe.createElement(ls,null,Qe.createElement(iC,{variant:"label",size:"medium",className:as()},c[m]))),itemContent:(m,f)=>{let y=p[m];if(!y)return null;let S=y.steps[0],T=y.steps[y.steps.length-1];return Qe.createElement(Im,{key:y.requestId},Qe.createElement(Mm,{requestId:y.requestId,creationTime:y.creationTime,status:y.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[f]===oC.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:M(y.inputAmount,6,6),realAmount:y.inputAmount},to:{token:{image:T.toLogo,displayName:T.toSymbol},blockchain:{image:T.toBlockchainLogo||""},amount:M(T.outputAmount||T.expectedOutputAmountHumanReadable||"",6,6),realAmount:T.outputAmount||T.expectedOutputAmountHumanReadable||""}}}))}})}i(ps,"HistoryGroupedList");import{CloseIcon as uC,IconButton as mC,SearchIcon as dC,TextField as fC}from"@rango-dev/ui";import fn from"react";import{styled as cC}from"@rango-dev/ui";var Bm=cC("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Bt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return fn.createElement(fC,{prefix:fn.createElement(Bm,null,fn.createElement(dC,{color:"black"})),suffix:!!s.length&&fn.createElement(mC,{variant:"ghost",onClick:()=>l?.(""),size:"small"},fn.createElement(uC,{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(Bt,"SearchInput");import{i18n as Kr}from"@lingui/core";import Pm from"dayjs";var _m=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=Pm();t.forEach(p=>{let u=Number(p.creationTime),c=Pm(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 g=new Date(u).getFullYear().toString();o(g,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var CC=yC("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),kC=i((t,e)=>t?.length?t.filter(o=>Tt(o.fromBlockchain,e)||Tt(o.toBlockchain,e)||Tt(o.toSymbol,e)||Tt(o.fromSymbol,e)).length:!1,"isStepContainsText");function $m(){let t=TC(),{manager:e,state:o}=gC(),n=rt(e).map(({swap:c})=>c),[r,a]=SC(""),s=!o.loadedFromPersistor,l=i(c=>{let g=c.target.value;a(g)},"searchHandler"),p=n;r&&(p=n.filter(c=>Tt(c.inputAmount,r)||Tt(c.status,r)||kC(c.steps,r)||Tt(c.requestId,r)));let u=!p?.length&&!s;return Pt.createElement(ce,{header:{title:Xr.t("History")}},Pt.createElement(fe,null,Pt.createElement(Bt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Pt.createElement(Dm,{size:"16"}),Pt.createElement(CC,null,u&&Pt.createElement(Nm,null,Pt.createElement(Dm,{size:32}),Pt.createElement(hC,{title:Xr.t("No results found"),description:r?Xr.t("Try using different keywords"):""})),!u&&Pt.createElement(ps,{list:p,onSwapClick:t,groupBy:_m,isLoading:s}))))}i($m,"HistoryPage");import{i18n as UC}from"@lingui/core";import{Button as QC,Divider as td,styled as zC,WarningIcon as qC}from"@rango-dev/ui";import HC from"bignumber.js";import He,{useEffect as od,useState as nd}from"react";import{useNavigate as GC}from"react-router-dom";import{i18n as IC}from"@lingui/core";import{Header as AC}from"@rango-dev/ui";import Vt,{useEffect as NC,useState as WC}from"react";import{i18n as wC}from"@lingui/core";import{Divider as us,FullExpandedQuote as xC,Typography as bC}from"@rango-dev/ui";import ye from"react";import{styled as cs}from"@rango-dev/ui";var Fm=cs("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Om=cs("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Um=cs("div",{width:"146px"});import{i18n as gn}from"@lingui/core";import{Select as vC}from"@rango-dev/ui";import Qm from"react";function jr(t){let{updateQuotePartialState:e,sortStrategy:o}=Y(),n=[{value:"SMART",label:gn.t("Smart Routing")},{value:"FEE",label:gn.t("Lowest Fee")},{value:"SPEED",label:gn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:gn.t("Maximum Return")},{value:"PRICE",label:gn.t("Maximum Output")}];return Qm.createElement(Um,null,Qm.createElement(vC,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(jr,"SelectStrategy");var zm=3;function hn(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:g,toToken:d,sortStrategy:m,error:f}=Y(),{slippage:y,customSlippage:S}=h(),{findToken:T}=h(),C=l||P(),k=!!u&&u.results.length,w=S??y,b=i(v=>{if(!g||!d||!u)return null;let E={requestAmount:u.requestAmount,...v};return xo(E,{fromToken:g,toToken:d,userSlippage:w,findToken:T})},"getQuoteWarning"),N=f?.type===0||f?.type===1,x=u?.results?nr(m,u?.results):[];return ye.createElement(ye.Fragment,null,a&&ye.createElement(ye.Fragment,null,ye.createElement(Om,null,ye.createElement(bC,{size:"xmedium",variant:"title"},wC.t("Sort by")),ye.createElement(jr,{container:C})),ye.createElement(us,{size:"10"})),e&&Array.from({length:zm},(v,E)=>ye.createElement(ye.Fragment,{key:E},s?ye.createElement(xC,{loading:!0}):ye.createElement(un,{tagHidden:!1,type:"list-item",expanded:!1}),E!==zm-1&&ye.createElement(us,{size:16}))),!e&&ye.createElement(ye.Fragment,null,k?x.map((v,E)=>{let I=b(v),_=ts(v.swaps),Q=x.length-1===E;return ye.createElement(ye.Fragment,{key:v.requestId},ye.createElement(go,{showModalFee:r,container:C,selected:p?.requestId===v.requestId,tagHidden:!1,quote:{...v,requestAmount:u.requestAmount},loading:e,error:_?.options||null,warning:I,fullExpandedMode:s,onClick:A=>{_||c("warning",I),c("error",_?.options||null),o(A)},type:"list-item"}),!Q&&ye.createElement(us,{size:16}))}):N&&ye.createElement(Fm,null,ye.createElement(tn,{size:s?"large":"small",error:f,fetch:n}))))}i(hn,"Quotes");import{darkTheme as EC,styled as qm}from"@rango-dev/ui";var Hm=qm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${EC} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Gm=qm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var MC=100;function ms(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=WC(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",g=zo();return NC(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},MC):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),Vt.createElement(Hm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Tr()}`,id:he.EXPANDED_BOX_ID},Vt.createElement(AC,{title:IC.t("Routes"),suffix:Vt.createElement(Vt.Fragment,null,Vt.createElement(jr,{container:g}),Vt.createElement(ao,{container:g,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Vt.createElement(Gm,null,Vt.createElement(hn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:zo(),onClickOnQuote:n,fullExpandedMode:c})))}i(ms,"ExpandedQuotes");import{i18n as Jm}from"@lingui/core";import{SwapInput as Rm}from"@rango-dev/ui";import yn from"react";import{ReverseIcon as PC}from"@rango-dev/ui";import fs from"react";import{keyframes as LC,styled as Vm}from"@rango-dev/ui";var ds=450,BC=LC({"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)"}}),Km=Vm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Xm=Vm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${BC} ${ds}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 gs(){let t=Y.use.switchFromAndTo();return fs.createElement(Km,null,fs.createElement(Xm,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},ds),t()}},fs.createElement(PC,{size:12})))}i(gs,"SwitchFromAndToButton");import{styled as jm}from"@rango-dev/ui";var Ym=jm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Zm=jm("div",{position:"relative"});function hs(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:g,outputAmount:d,outputUsdValue:m,selectedQuote:f}=Y(),{connectedWallets:y,getBalanceFor:S}=te(),T=a?S(a):null,C=On(T)?.amount??"0",k=s&&a?M(T?.amount,T?.decimals):"0",w=!!s&&Ol(y,s.name),b=!Vi(f,c,g),N=!Vi(f,c,m),x=!g||!m||!m.gt(0)?null:tt(g.toString(),m.toString());return yn.createElement(Ym,null,yn.createElement(Zm,null,yn.createElement(Rm,{label:Jm.t("From"),mode:"From",onInputChange:u,balance:C,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:b?void 0:M(g,4,4),realUsdValue:b?void 0:g?.toString(),error:b?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),yn.createElement(gs,null)),yn.createElement(Rm,{sharpBottomStyle:!r&&(!!f||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(tt(g,m),2,2),warningLevel:Nt(x??0),price:{value:M(d,6,6),usdValue:N?void 0:M(m,4,4),realValue:d?.toString(),realUsdValue:N?void 0:m?.toString(),error:N?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(hs,"Inputs");import{useCallback as _C,useEffect as DC,useRef as $C,useState as FC}from"react";function ed(){let{fetch:t,loading:e,cancelFetch:o}=qr({request:async(n,r)=>await Ot().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(ed,"useFetchAllQuotes");var OC=600;function Yr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=ed(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=te.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:g,sortStrategy:d,resetQuote:m,error:f,warning:y,setSelectedQuote:S,updateQuotePartialState:T}=Y(),{slippage:C,customSlippage:k,affiliatePercent:w,affiliateRef:b,affiliateWallets:N,fetchStatus:x}=h(),v=h().getLiquiditySources(),E=h().getDisabledLiquiditySources(),I=h().excludeLiquiditySources(),{findToken:_}=h(),[Q,A]=FC(!0),z=$C(u),j=k??C,B=!l||!p||Rt(l,p)||!Go(u),Z=i(ne=>{A(ne)},"resetState"),ie=i(ne=>{let{fromToken:ge,toToken:Te,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve}=ne;if(Q||Z(!0),!B&&ge&&Te){m();let Ke=Ep({fromToken:ge,toToken:Te,inputAmount:D,liquiditySources:L,excludeLiquiditySources:me,disabledLiquiditySources:se,wallets:s,slippage:_e,affiliateRef:pt,affiliatePercent:De,affiliateWallets:Ve,enableCentralizedSwappers:a});Jl("experimentalRoute",r)&&(Ke.experimental=!0),e(Ke).then(ve=>{let de=nr(d,ve.results),W=Up(g,de,ve.requestAmount);A(!1),T("quotes",ve),S(W),Hr({diagnosisMessages:ve.diagnosisMessages,requestId:W?.requestId||"",swaps:W?.swaps});let V=W&&xo(W,{fromToken:ge,toToken:Te,userSlippage:j,findToken:_});T("warning",V)}).catch(ve=>{let{error:de}=Gr(ve);(de?.type===0||de?.type===1)&&m(),de?.type!==2&&(T("error",de),A(!1))})}},"fetch"),J=_C(bl(ne=>{ie(ne)},OC),[B]);return DC(()=>{if(!t){A(!1);return}if(x!=="success")return;if(B){A(!1),(g||f||y)&&m();return}if(!Go(u)||c?.eq(0)){Z(!1),o();return}m(),Z(!0);let ne=ie;return z.current&&z.current!=u&&(ne=J),z.current=u,ne({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:I,disabledLiquiditySources:E,slippage:j,affiliateRef:b,affiliatePercent:w,affiliateWallets:N}),o},[x,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,B,v?.length,n,E.length,j,b,w,JSON.stringify(N)]),{fetch:()=>ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:I,disabledLiquiditySources:E,slippage:j,affiliateRef:b,affiliatePercent:w,affiliateWallets:N}),loading:Q}}i(Yr,"useSwapInput");var VC=zC("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),KC=300;function rd(){let t=GC(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:g,updateQuotePartialState:d}=Y(),[m,f]=nd(!1),{isLargeScreen:y,isExtraLargeScreen:S}=_r(),{fetch:T,loading:C}=Yr({refetchQuote:a}),{config:k,fetchStatus:w}=h(),{connectedWallets:b}=te(),{isActiveTab:N}=ae(),[x,v]=nd(!1),I=Cp({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),_=Vl(y,S,k?.variant),Q=!!n&&!!e&&!!o&&new HC(n).gt(0)&&!_p(e,o),A=Q&&w==="success"&&C,G=(!_||_&&p?.results.length)&&(l||s);od(()=>{c(),d("refetchQuote",!0)},[]),od(()=>{f(Q)},[Q]);let B=(r||s)&&!x?T:void 0,Z=i(J=>{_&&m?(f(!1),setTimeout(()=>{t(J)},KC)):t(J)},"onHandleNavigation"),ie=i(J=>{r?.requestId!==J.requestId&&(v(!1),u(J))},"onClickOnQuote");return He.createElement(VC,null,He.createElement(ce,{height:"auto",footer:He.createElement(QC,{type:"primary",size:"large",disabled:I.disabled||!N,prefix:I.action==="confirm-warning"&&He.createElement(qC,null),fullWidth:!0,onClick:()=>{I.action==="connect-wallet"?Z(q.wallets):I.action==="confirm-warning"?v(!0):Z(q.confirmSwap)}},I.title),header:{onWallet:()=>{Z(q.wallets)},hasBackButton:!1,title:k.title||UC.t("Swap"),suffix:He.createElement(ao,{hidden:_?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>Z(q.swaps),onClickSettings:()=>{Z(q.settings)}})}},He.createElement(fe,null,He.createElement(hs,{fetchingQuote:A,fetchMetaStatus:w,isExpandable:_,onClickToken:J=>{Z(J==="from"?q.fromSwap:q.toSwap)}}),He.createElement(td,{size:"2"}),_?null:He.createElement(go,{quote:r,loading:A,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),Z(q.routes)}:void 0}),G?He.createElement(He.Fragment,null,He.createElement(td,{size:"10"}),He.createElement(nn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:T,showWarningModal:x,confirmationDisabled:!N,onOpenWarningModal:()=>v(!0),onCloseWarningModal:()=>v(!1),onConfirmWarningModal:()=>{v(!1),g(!0),Z(q.confirmSwap)},onChangeSettings:()=>Z(q.settings)})):null)),_?He.createElement(ms,{loading:A,onClickOnQuote:ie,fetch:T,onClickRefresh:B,isVisible:m}):null)}i(rd,"Home");import{i18n as id}from"@lingui/core";import{Alert as XC,Divider as jC,List as YC,ListItemButton as ZC,Radio as JC,RadioRoot as RC,Typography as ek}from"@rango-dev/ui";import bt from"react";function Kt(){let{setLanguage:t,language:e,config:o}=h(),n=ep,r=o?.language||vo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||vo),resetLanguage:()=>t(null)}}i(Kt,"useLanguage");function ad(){let{activeLanguage:t,changeLanguage:e,languages:o}=Kt(),n=nt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:bt.createElement(ek,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:bt.createElement(JC,{value:s}),start:bt.createElement(p,null)}});return bt.createElement(ce,{header:{title:id.t("Language")}},bt.createElement(fe,null,bt.createElement(XC,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),bt.createElement(jC,{size:"8"}),bt.createElement(RC,{value:t},bt.createElement(YC,{type:bt.createElement(ZC,{title:id.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(ad,"LanguagePage");import{i18n as _t}from"@lingui/core";import{Button as ik,Checkbox as ak,Image as sk,ListItemButton as lk,NotFound as pk,Typography as ck}from"@rango-dev/ui";import ze,{useState as uk}from"react";import{Checkbox as nk,Skeleton as ld}from"@rango-dev/ui";import Tn from"react";import{styled as ys}from"@rango-dev/ui";var Sn=ys("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ss=ys("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ts=ys("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as tk,styled as ok}from"@rango-dev/ui";var sd=ok(tk,{height:61});var rk=30;function Cs(){return Tn.createElement(Sn,null,Array.from(Array(rk),(t,e)=>Tn.createElement(sd,{hasDivider:!0,key:e,start:Tn.createElement(ld,{variant:"circular",width:35,height:35}),title:Tn.createElement(ld,{variant:"text",size:"large",width:90}),end:Tn.createElement(nk,{checked:!1})})))}i(Cs,"LoadingLiquiditySourceList");function ks({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=uk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Hn(o,n),u={Exchanges:_t.t("Exchanges"),Bridges:_t.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let g=p.filter(T=>c.includes(T.type)),d=g.length===g.filter(T=>T.selected).length,m=i(()=>{g.forEach(T=>{d?s(T.groupTitle):T.selected||s(T.groupTitle)})},"toggleAllSources"),f=g.map(T=>{let{selected:C,groupTitle:k,logo:w}=T;return{start:ze.createElement(sk,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:ze.createElement(ak,{checked:C,disabled:l}),title:ze.createElement(ck,{variant:"title",size:"xmedium"},_t.t(k)),...T}}),y=i(T=>{let C=T.target.value;a(C)},"searchHandler"),S=f;return r&&(S=f.filter(T=>Tt(T.groupTitle,r))),ze.createElement(ce,{header:{title:_t.t(t),suffix:ze.createElement(Ss,null,ze.createElement(ik,{variant:"ghost",size:"xsmall",onClick:m},d?_t.t("Deselect all"):_t.t("Select all")))}},ze.createElement(fe,{view:!0},ze.createElement(Bt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:_t.t("Search {sourceType}",{sourceType:u[t]}),onChange:y}),e==="loading"&&ze.createElement(Cs,null),!S.length&&r?ze.createElement(Ts,null,ze.createElement(pk,{title:_t.t("No results found"),description:_t.t("Try using different keywords")})):e==="success"&&ze.createElement(Sn,{disabled:l},S.map(T=>{let{groupTitle:C,...k}=T;return ze.createElement(ze.Fragment,{key:T.id},ze.createElement(lk,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ks,"LiquiditySourcePage");import{i18n as mk}from"@lingui/core";import Zr from"react";import{useNavigate as dk}from"react-router-dom";function pd(){let t=dk(),e=nt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=Y(),{fetch:l,loading:p}=Yr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,g=`../${q.wallets}`;return Zr.createElement(ce,{header:{onWallet:()=>{t(g),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:mk.t("Routes"),suffix:Zr.createElement(ao,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Zr.createElement(fe,null,Zr.createElement(hn,{fetch:l,loading:p,onClickOnQuote:u})))}i(pd,"RoutesPage");import{i18n as yd}from"@lingui/core";import{Divider as Sd,getCategoriesCount as vk,SelectableCategoryList as wk}from"@rango-dev/ui";import Dt,{useState as Td}from"react";import{i18n as vs}from"@lingui/core";import{Divider as gd,Image as yk,ListItemButton as Sk,NotFound as Tk,Typography as hd}from"@rango-dev/ui";import at,{useEffect as Ck,useState as kk}from"react";var cd=i((t,e,o)=>t.filter(n=>Wn(n.type,o)).filter(n=>It(n.name,e)||It(n.displayName,e)),"filterBlockchains");import{ImageContainer as fk,styled as ud}from"@rango-dev/ui";var md=ud("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Jr=ud(Zo,{padding:0,margin:0,listStyle:"none",[`& ${fk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as gk,Skeleton as dd}from"@rango-dev/ui";import Rr from"react";var hk=20;function fd(){return Rr.createElement(Jr,null,Array.from(Array(hk),t=>Rr.createElement(gk,{key:t,hasDivider:!0,start:Rr.createElement(dd,{variant:"circular",width:35,height:35}),title:Rr.createElement(dd,{variant:"text",size:"large",width:90})})))}i(fd,"LoadingBlockchainList");function ws(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=kk(e),{fetchStatus:l}=h();Ck(()=>{s([...cd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?at.createElement(at.Fragment,null,at.createElement(gd,{size:32}),at.createElement(Tk,{title:vs.t("No results found"),description:vs.t("Try using different keywords")})):at.createElement(Jr,{as:"ul",key:`${r}-${o}`},a.map(u=>at.createElement(Sk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:at.createElement(yk,{src:u.logo,size:30}),title:at.createElement(hd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return at.createElement(md,null,at.createElement(hd,{variant:"label",size:"large"},vs.t("Select Blockchain")),at.createElement(gd,{size:4}),l==="loading"&&at.createElement(fd,null),l==="success"&&p())}i(ws,"BlockchainList");function xs(t){let{type:e}=t,o=nt(),[n,r]=Td(""),[a,s]=Td("ALL"),l=Y.use.setToBlockchain(),p=Y.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),d=vk(c)!==1;return Dt.createElement(ce,{header:{title:yd.t("Select Blockchain")}},Dt.createElement(fe,{view:!0},d&&Dt.createElement(Dt.Fragment,null,Dt.createElement(wk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Dt.createElement(Sd,{size:24})),Dt.createElement(Bt,{value:n,autoFocus:!0,placeholder:yd.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Dt.createElement(Sd,{size:16}),Dt.createElement(ws,{list:c,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i(xs,"SelectBlockchainPage");import{i18n as ri}from"@lingui/core";import{Divider as Ud}from"@rango-dev/ui";import ho,{useState as Uk}from"react";import{useNavigate as Qk}from"react-router-dom";import{i18n as Is}from"@lingui/core";import{BlockchainsChip as ei,Divider as wd,Image as xd,Skeleton as Ak,Tooltip as Nk,Typography as As}from"@rango-dev/ui";import Le from"react";import{useEffect as Ek}from"react";var Cd=["ETH","COSMOS","OSMOSIS"];function bs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(xk),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(bk(s)),r=n.splice(a)}return{list:n,more:r}}i(bs,"prepare");function xk(t,e){let o=Cd,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(xk,"sortByMostUsedBlockchains");function bk(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(bk,"generateSortByPreferredBlockchainsFor");function kd(t,e){return!!e.list.find(o=>o.name===t)}i(kd,"isInVisibleList");function Es(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Ek(()=>{if(e?.selected){let a=bs(t,o,e);kd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=bs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Es,"usePrepareBlockchainList");import{styled as Ik}from"@rango-dev/ui";var vd=Ik("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Wk=12;function Ns(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Es(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=Y.use.resetToBlockchain(),u=Y.use.resetFromBlockchain(),c=s.more.length>0,g=s.more.length===1,d=!g&&c;return Le.createElement(Le.Fragment,null,Le.createElement(wd,{size:12}),Le.createElement(As,{variant:"label",size:"large"},Is.t("Select Blockchain")),Le.createElement(wd,{size:12}),Le.createElement(vd,null,l==="loading"&&Array.from(Array(Wk),m=>Le.createElement(Ak,{key:m,variant:"rounded",height:50})),l==="success"&&Le.createElement(Le.Fragment,null,Le.createElement(ei,{selected:!n,onClick:()=>{o==="from"?u():p()}},Le.createElement(As,{variant:"body",size:"xsmall",color:"secondary500"},Is.t("All"))),s.list.map(m=>Le.createElement(Nk,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:P()},Le.createElement(ei,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},Le.createElement(xd,{src:m.logo,size:30})))),g?Le.createElement(ei,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Le.createElement(xd,{src:s.more[0].logo,size:30})):null,d?Le.createElement(ei,{onClick:a,key:"more-blockchains"},Le.createElement(As,{variant:"body",size:"xsmall",color:"secondary500"},Is._("More +{count}",{count:s.more.length}))):null)))}i(Ns,"BlockchainsSection");import{i18n as Os}from"@lingui/core";import{darkTheme as _d,Divider as Oo,ExternalLinkIcon as Bk,Image as Pk,ListItemButton as _k,NotFound as Dk,PinIcon as $k,Skeleton as Dd,Typography as ni,VirtualizedList as Fk}from"@rango-dev/ui";import X,{useEffect as $d,useState as Fd}from"react";import{Divider as Bd,ListItem as Lk,Skeleton as Cn}from"@rango-dev/ui";import gt from"react";import{css as Fo,darkTheme as bd,ImageContainer as Mk,styled as st,Typography as Ed}from"@rango-dev/ui";var Ws=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ms=Fo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ls=Fo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Bs=Fo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${bd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ps=Fo({}),_s=Fo(),Id=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ds=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ti=st("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ms}`]:{[`& .${Bs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ps}`]:{bottom:"-15px"},[`& .${Ws}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ls}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),$s=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Fs=st(Ed,{}),Ad=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${_s}`]:{$$color:"$colors$neutral600",[`.${bd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),oi=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),DU=st("div",{display:"flex",alignItems:"center"}),Nd=st("div",{position:"relative",[`& ${Mk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Wd=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Md=st(Ed,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Ld=st("a",{"& svg:hover":{color:"$colors$info"}});function Pd(t){return gt.createElement(ti,null,Array.from(Array(t.size),e=>gt.createElement(Lk,{key:e,hasDivider:!0,start:gt.createElement(Cn,{variant:"circular",width:35,height:35}),end:gt.createElement(oi,null,gt.createElement(Cn,{variant:"text",size:"large",width:70}),gt.createElement(Bd,{size:4}),gt.createElement(Cn,{variant:"text",size:"medium",width:50})),title:gt.createElement("div",null,gt.createElement(Cn,{variant:"text",size:"large",width:90}),gt.createElement(Bd,{size:4}),gt.createElement(Cn,{variant:"text",size:"medium",width:90}))})))}i(Pd,"LoadingTokenList");var Us=20,Ok=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return X.createElement("div",{className:Ms()},o?X.createElement("div",{className:Ws()},o):X.createElement(Ds,{className:Ls()},X.createElement(ni,{variant:"title",size:"xmedium"},r.symbol),X.createElement(Oo,{direction:"horizontal",size:4}),X.createElement($s,{css:a},X.createElement(Fs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&X.createElement("div",{className:`${Bs()} ${!o&&Ps()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",X.createElement(Oo,{size:4,direction:"horizontal"}),X.createElement(Ld,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},X.createElement(Bk,{size:12}))))},"renderDesc");function Od(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Fd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Fd(!0),{getBalanceFor:g,loading:d}=te(),{isTokenPinned:m}=h(),f=i(()=>{s(e.slice(0,a.length+Us))},"loadNextPage");$d(()=>{c(e.length>a.length)},[a.length]),$d(()=>{s(e.slice(0,Us))},[e.length,r]);let y=i(()=>!a.length&&o?X.createElement(X.Fragment,null,X.createElement(Oo,{size:32}),X.createElement(Dk,{title:Os.t("No results found"),description:Os.t("Try using different keywords")})):X.createElement(Fk,{endReached:u?f:void 0,itemContent:S=>{let T=a[S],C=On(g(T)),k=T.address||"",w=p.find(v=>v.name===T.blockchain),b=sa(w.color,"main"),N={$$color:b.main150,[`.${_d} &`]:{$$color:b.main750},backgroundColor:"$$color"},x={$$color:b.main750,[`.${_d} &`]:{$$color:b.main150},color:"$$color"};return X.createElement("div",{style:{paddingRight:5}},X.createElement(_k,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":S,key:`${T.symbol}${T.address}`,id:`${T.symbol}${T.address}`,hasDivider:!0,onClick:()=>n(a[S]),start:X.createElement(Nd,null,X.createElement(Pk,{src:T.image,size:30}),m(T,t.type)&&X.createElement(Wd,null,X.createElement($k,{size:12,color:"gray"}))),title:w?.type==="COSMOS"||T.name||!T.name&&!k?X.createElement(Ds,null,X.createElement(ni,{variant:"title",size:"xmedium"},T.symbol),X.createElement(Oo,{direction:"horizontal",size:4}),X.createElement($s,{css:N},X.createElement(Fs,{variant:"body",size:"xsmall",css:x},T.blockchain))):void 0,description:w?.info&&k&&w.type!=="COSMOS"?Ok({address:k,token:a[S],customCssForTag:N,customCssForTagTitle:x,name:T.name,url:w.info.addressUrl.split("{wallet}").join(k)}):T.name||void 0,end:d?X.createElement(oi,null,X.createElement(Dd,{variant:"text",size:"large",width:70}),X.createElement(Oo,{size:4}),X.createElement(Dd,{variant:"text",size:"medium",width:50})):C&&X.createElement(Ad,null,X.createElement(Md,{variant:"title",size:"small"},C.amount),X.createElement("div",null),C.usdValue&&X.createElement(ni,{variant:"body",className:_s(),size:"xsmall"},`$${C.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return X.createElement(Id,null,X.createElement(ni,{variant:"label",size:"large"},Os.t("Select Token")),X.createElement(Oo,{size:4}),l==="loading"&&X.createElement(Pd,{size:Us}),l==="success"&&X.createElement(ti,{as:"ul"},y()))}i(Od,"TokenList");function Qs(t){let{type:e}=t,o=Qk(),n=nt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=Y(),c=te.use.getBalanceFor(),[g,d]=Uk(""),f=(e==="source"?r:a)?.name??"",y=h().blockchains({type:e}),S=h().tokens({type:e,blockchain:f,searchFor:g,getBalanceFor:c}),T=i(w=>{e==="source"?p(w):u(w)},"updateBlockchain"),C=i(w=>{e==="source"?s({token:w,meta:{blockchains:y,tokens:S}}):l({token:w,meta:{blockchains:y,tokens:S}})},"updateToken"),k={source:ri.t("Source"),destination:ri.t("Destination")};return ho.createElement(ce,{header:{title:ri.t("Swap {type}",{type:k[e]})}},ho.createElement(fe,null,ho.createElement(Ns,{blockchains:y,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:w=>{T(w)}}),ho.createElement(Ud,{size:24}),ho.createElement(Bt,{value:g,autoFocus:!0,placeholder:ri.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:w=>d(w.target.value)}),ho.createElement(Ud,{size:16}),ho.createElement(Od,{list:S,selectedBlockchain:f,searchedFor:g,type:e,onChange:w=>{C(w);let b=y.find(N=>w.blockchain===N.name);b&&T(b),n()}})))}i(Qs,"SelectSwapItemsPage");import{i18n as Gs}from"@lingui/core";import{Alert as mv,Button as dv,styled as fv}from"@rango-dev/ui";import yo from"react";import{useInRouterContext as gv,useSearchParams as hv}from"react-router-dom";import{i18n as Vd}from"@lingui/core";import{Divider as Gk,InfoIcon as Vk,TextField as Kk,Tooltip as Xk,Typography as Kd}from"@rango-dev/ui";import ht from"react";import{Chip as zk,styled as kn,TextField as qk}from"@rango-dev/ui";var Qd=kn("div",{paddingTop:"$5",padding:"$10 $5"}),zd=kn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${qk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),qd=kn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ii=kn("div",{maxWidth:"280px",padding:"$10"}),Hd=kn(zk,{width:"61px",flexShrink:0});import{i18n as zs}from"@lingui/core";import{Typography as Hk}from"@rango-dev/ui";import vn from"react";function Gd(){return vn.createElement(ii,null,vn.createElement(Hk,{variant:"label",size:"medium",color:"neutral700"},zs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),vn.createElement("br",null),vn.createElement("br",null),vn.createElement("b",null,zs.t("Warning")),":",zs.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(Gd,"SlippageTooltipContent");function qs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return ht.createElement(Qd,null,ht.createElement(qd,null,ht.createElement(Kd,{variant:"title",size:"xmedium"},Vd.t("Slippage tolerance per swap")),ht.createElement(Gk,{direction:"horizontal",size:4}),ht.createElement(Xk,{container:P(),side:"top",sideOffset:4,content:ht.createElement(Gd,null)},ht.createElement(Vk,{color:"gray"}))),ht.createElement(zd,null,tp.map((r,a)=>{let s=`slippage-${a}`;return ht.createElement(Hd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),ht.createElement(Kk,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=ip&&s<=rp?n(s):n(null)},suffix:o&&ht.createElement(Kd,{variant:"body",size:"small"},"%"),placeholder:Vd.t("Custom")})))}i(qs,"Slippage");import{i18n as Et}from"@lingui/core";import{AutoThemeIcon as Xd,BridgesIcon as jk,ChevronRightIcon as Hs,DarkModeIcon as jd,Divider as ai,ExchangeIcon as Yk,InfinityIcon as Zk,InfoIcon as Jk,LanguageIcon as Rk,LightModeIcon as Yd,List as ev,ListItem as tv,ListItemButton as ov,Skeleton as nv,styled as rv,Switch as iv,Tabs as av,Tooltip as sv,Typography as lt}from"@rango-dev/ui";import U from"react";import{useNavigate as lv}from"react-router-dom";var pv=rv("div",{width:"202px",height:"$40"}),cv=[{id:"light",icon:U.createElement(Yd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Light"))},{id:"dark",icon:U.createElement(jd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Dark"))},{id:"auto",icon:U.createElement(Xd,{color:"black",size:24}),tooltip:U.createElement(lt,{size:"xsmall",variant:"body"},Et.t("Auto"))}],uv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return U.createElement(Xd,{...e});case"dark":return U.createElement(jd,{...e});default:return U.createElement(Yd,{...e})}},"getThemeIcon");function Zd(){let t=lv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=Kt(),s=a.find(z=>z.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),g=et("theme",c),d=et("liquiditySource",c),m=et("language",c),f=h().infiniteApprove,y=h().toggleInfiniteApprove,S=Hn(p,u),T=S.filter(z=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(z.type)),C=T.length,k=T.filter(z=>z.selected).length,w=S.filter(z=>z.type==="DEX"),b=w.length,N=w.filter(z=>z.selected).length,x=i((z,j)=>{switch(l){case"loading":return U.createElement(nv,{variant:"text",size:"medium",width:50});case"failed":return U.createElement(lt,{variant:"body",size:"medium",color:"$error500"},Et.t("Loading failed"));default:return U.createElement(lt,{variant:"body",size:"medium"},`${z} / ${j}`)}},"handleSwapperEndItem"),v={id:"bridge-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Bridges")),end:U.createElement(U.Fragment,null,x(k,C),U.createElement(ai,{direction:"horizontal",size:8}),U.createElement(Hs,{color:"black"})),onClick:()=>t(q.bridges),start:U.createElement(jk,{color:"gray",size:16})},E={id:"exchange-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Exchanges")),end:U.createElement(U.Fragment,null,x(N,b),U.createElement(ai,{direction:"horizontal",size:8}),U.createElement(Hs,{color:"black"})),start:U.createElement(Yk,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},I={id:"language-item",title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Language")),start:U.createElement(Rk,{color:"gray",size:16}),end:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"body",size:"medium"},s),U.createElement(ai,{direction:"horizontal",size:8}),U.createElement(Hs,{color:"black"})),onClick:()=>t(q.languages)},_={id:"infinite-approval-item",title:U.createElement(U.Fragment,null,U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Infinite approval")),U.createElement(ai,{direction:"horizontal",size:4}),U.createElement(sv,{side:"top",sideOffset:4,container:P(),content:U.createElement(ii,null,U.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},Et.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(Jk,{color:"gray"}))),start:U.createElement(Zk,{color:"gray",size:16}),end:U.createElement(iv,{checked:f}),onClick:y},Q={id:"theme-item",type:U.createElement(tv,null),title:U.createElement(lt,{variant:"title",size:"xmedium"},Et.t("Theme")),end:U.createElement(pv,null,U.createElement(av,{container:P(),items:cv,value:n,onChange:z=>o(z.id),type:"primary",borderRadius:"small"})),start:uv(n)},A=d?[]:[v,E];return m||A.push(I),A.push(_),!e?.singleTheme&&!g&&A.push(Q),U.createElement(ev,{type:U.createElement(ov,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:A})}i(Zd,"SettingsLists");var yv=fv("div",{paddingLeft:"$8"});function Jd(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=hv(),r=gv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return yo.createElement(ce,{header:{title:Gs.t("Settings")}},yo.createElement(fe,null,o&&yo.createElement(mv,{type:"info",variant:"alarm",title:Gs.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(yv,null,yo.createElement(dv,{type:"secondary",size:"small",onClick:a},Gs.t("Reset")))}),yo.createElement(qs,null),yo.createElement(Zd,null)))}i(Jd,"SettingsPage");import{i18n as ow}from"@lingui/core";import{cancelSwap as nw}from"@rango-dev/queue-manager-rango-preset";import{useManager as rw}from"@rango-dev/queue-manager-react";import{Alert as iw}from"@rango-dev/ui";import pl from"react";import{useParams as aw}from"react-router-dom";import{i18n as Je}from"@lingui/core";import{getCurrentBlockchainOfOrNull as $v,getCurrentStep as Fv,getRelatedWalletOrNull as Ov}from"@rango-dev/queue-manager-rango-preset";import{Button as Mf,CopyIcon as Uv,Divider as Qv,DoneIcon as zv,IconButton as qv,QuoteCost as Hv,RangoExplorerIcon as Gv,StepDetails as Vv,Tooltip as Lf,Typography as To,useCopyToClipboard as Kv}from"@rango-dev/ui";import{useWallets as Xv}from"@rango-dev/wallets-react";import Bf from"bignumber.js";import{PendingSwapNetworkStatus as gi}from"rango-types";import R,{useEffect as Pf,useRef as jv,useState as _f}from"react";import{useNavigate as Yv}from"react-router-dom";import{i18n as Xt}from"@lingui/core";var Sv=[Xt.t("Sunday"),Xt.t("Monday"),Xt.t("Tuesday"),Xt.t("Wednesday"),Xt.t("Thursday"),Xt.t("Friday"),Xt.t("Saturday")];function Rd(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"):`${Sv[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Rd,"timeSince");function ef(t){return t.finishTime?Rd(parseInt(t.finishTime)):Rd(parseInt(t.creationTime))}i(ef,"getSwapDate");import{PendingSwapNetworkStatus as pi}from"rango-types";import ci from"react";import{i18n as si}from"@lingui/core";import{Button as tf,Divider as Vs,MessageBox as Tv}from"@rango-dev/ui";import jt from"react";var of=i(({onCancel:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Vs,{size:20}),jt.createElement(Tv,{type:"error",title:si.t("Cancel Swap"),description:si.t("Are you sure you want to cancel this swap?")}),jt.createElement(Vs,{size:32}),jt.createElement(tf,{variant:"contained",type:"primary",size:"large",onClick:t},si.t("Yes, Cancel it")),jt.createElement(Vs,{size:12}),jt.createElement(tf,{variant:"outlined",type:"primary",size:"large",onClick:e},si.t("No, Continue"))),"CancelContent");import{i18n as li}from"@lingui/core";import{Button as nf,Divider as Ks,MessageBox as Cv,Typography as kv}from"@rango-dev/ui";import $t from"react";var rf=i(({onDelete:t,onClose:e})=>$t.createElement($t.Fragment,null,$t.createElement(Ks,{size:20}),$t.createElement(Cv,{type:"error",title:li.t("Delete Transaction"),description:li.t("Are you sure you want to delete this swap?")}),$t.createElement(Ks,{size:32}),$t.createElement(nf,{variant:"contained",type:"primary",size:"large",onClick:t},li.t("Yes, Delete it")),$t.createElement(Ks,{size:12}),$t.createElement(nf,{variant:"outlined",type:"primary",size:"large",onClick:e},$t.createElement(kv,{variant:"title",size:"medium",color:"primary"},li.t("No, Cancel")))),"DeleteContent");import{i18n as Xs}from"@lingui/core";import{PendingSwapNetworkStatus as js}from"rango-types";var Ys={[js.WaitingForNetworkChange]:{type:"loading",title:Xs.t("Change Network")},[js.WaitingForConnectingWallet]:{type:"warning",title:Xs.t("Connect Wallet")},[js.NetworkChanged]:{type:"success",title:Xs.t("Network Changed")}};import{debug as Zs}from"@rango-dev/logging-core";import{MessageBox as vv,Wallet as wv}from"@rango-dev/ui";import{useWallets as xv}from"@rango-dev/wallets-react";import So,{useState as lf}from"react";import{styled as af}from"@rango-dev/ui";var sf=af("div",{display:"flex",justifyContent:"center"}),xz=af("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var pf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=xv(),[c,g]=lf(null),[d,m]=lf(null),f=n?.walletType,y=f?Li(u(f)):null,S=f?p(f):null,T=a&&!!f&&!!y&&!!S,C=i(()=>{c&&g({...c,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{d&&m({...d,open:!1})},"handleCloseDerivationPathModal"),w=i(N=>{S?.needsDerivationPath&&S?.singleNamespace&&N[0]&&f?m({open:!0,providerType:f,providerImage:S.img,namespace:N[0]}):l(c?.providerType,void 0,N.map(x=>({namespace:x}))).catch(x=>Zs(x)),C()},"handleConfirmNamespaces"),b=i(N=>{N&&d?.namespace&&l(d?.providerType,void 0,[{namespace:d.namespace,derivationPath:N}]).catch(x=>Zs(x)),k()},"handleDerivationPathConfirm");return So.createElement(So.Fragment,null,So.createElement(vv,{type:e,title:o,description:r}),T&&So.createElement(sf,null,So.createElement(wv,{container:P(),title:S.name,image:S.img,type:f,state:y,link:S.installLink,disabled:s,onClick:async()=>{S.namespaces?g({open:!0,providerType:f,providerImage:S.img,availableNamespaces:S.namespaces,singleNamespace:S.singleNamespace}):l(f).catch(N=>Zs(N))}})),So.createElement(po,{open:!!c?.open,onClose:C,onConfirm:w,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),So.createElement(so,{open:!!d?.open,selectedNamespace:d?.namespace,type:d?.providerType,image:d?.providerImage,onClose:k,onConfirm:b}))},"WalletStateContent");function Js(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===pi.WaitingForNetworkChange||e===pi.WaitingForConnectingWallet||e===pi.NetworkChanged;return ci.createElement(re,{open:!!e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},p&&ci.createElement(pf,{type:Ys[e].type,title:Ys[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==pi.WaitingForNetworkChange}),e==="delete"&&ci.createElement(rf,{onClose:o,onDelete:n}),e==="cancel"&&ci.createElement(of,{onClose:o,onCancel:r}))}i(Js,"SwapDetailsModal");import{i18n as wn}from"@lingui/core";import{Button as Rs,Divider as ui,MessageBox as cf,TokenAmount as bv,Typography as el}from"@rango-dev/ui";import Pe from"react";import{useNavigate as Ev}from"react-router-dom";function tl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:g,diagnosisUrl:d}=t,m=Ev();return Pe.createElement(re,{open:e,onClose:o,container:document.getElementById(he.SWAP_BOX_ID)||document.body},n==="success"?Pe.createElement(cf,{type:"success",title:wn.t("Swap Successful")},Pe.createElement(bv,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Pe.createElement(ui,{size:12}),Pe.createElement(el,{variant:"body",size:"medium",color:"neutral700",align:"center"},g)):Pe.createElement(cf,{type:"error",title:wn.t("Transaction Failed"),description:g}),Pe.createElement(ui,{size:32}),n==="success"&&Pe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Pe.createElement(el,{variant:"title",size:"medium",color:"neutral100"},wn.t("Done"))),Pe.createElement(ui,{size:12}),d&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},wn.t("Diagnosis")),Pe.createElement(ui,{size:12})),Pe.createElement(Rs,{variant:"outlined",type:"primary",size:"large",onClick:o},Pe.createElement(el,{variant:"title",size:"medium",color:"primary"},wn.t("See Details"))))}i(tl,"SwapDetailsCompleteModal");import Dv from"react";import{i18n as Lv}from"@lingui/core";import{Alert as If,IconButton as Bv,LinkIcon as Pv}from"@rango-dev/ui";import Yt,{Fragment as _v}from"react";import{Alert as Av,ChevronDownIcon as Nv,IconButton as Wv}from"@rango-dev/ui";import Qo,{useState as Mv}from"react";import{css as xn,darkTheme as uf,styled as Ft,Typography as Iv}from"@rango-dev/ui";var mf=Ft("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),mi=Ft("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${uf} &`]:{color:"$secondary500"}}}}}),df=Ft(Zo,{padding:"$0 $20 $20 $20"}),sq=Ft("div",{display:"flex",flexDirection:"column",gap:"$10"}),ff=Ft("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),lq=Ft("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Uo=xn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${uf} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),gf=xn({padding:"$5 0"}),di=xn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),hf=xn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),yf=xn({width:"100%",padding:"0 $20 $10"}),Sf=Ft("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Tf=Ft("div",{display:"flex",flexDirection:"column",gap:"$5"}),fi=Ft(Iv,{wordBreak:"break-word"});import{styled as ol}from"@rango-dev/ui";var Cf=ol("div",{display:"flex",flexDirection:"column",gap:"$10"}),kf=ol("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),vf=ol("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function wf(t){let{message:e}=t,[o,n]=Mv(!1);return Qo.createElement(Av,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Qo.createElement(Wv,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Qo.createElement(kf,{rotated:o},Qo.createElement(Nv,{size:12,color:"gray"}))),footer:Qo.createElement(vf,{open:o},Qo.createElement(fi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(wf,"FailedAlert");import{i18n as xf}from"@lingui/core";import{Alert as nl,Button as bf}from"@rango-dev/ui";import{PendingSwapNetworkStatus as rl}from"rango-types";import bn from"react";function Ef(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?bn.createElement(nl,{type:"warning",title:n.shortMessage,action:bn.createElement(bf,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},xf.t("Change"))}):r===rl.WaitingForConnectingWallet?bn.createElement(nl,{type:"warning",title:n.shortMessage,action:bn.createElement(bf,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForConnectingWallet)}},xf.t("Connect"))}):bn.createElement(nl,{type:"warning",title:n.shortMessage})}i(Ef,"WarningAlert");function il(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(Cf,null,a.explorerUrl?.map((g,d,m)=>{let f=d+g.url,y=d===m.length-1,S=(y&&u||p)&&!c,T=y&&a.status==="failed";return Yt.createElement(_v,{key:f},Yt.createElement(If,{type:y&&(S&&"loading"||T&&"error")||"success",title:g.description?`${g.description} Tx`:Lv.t("View transaction"),action:g.url&&Yt.createElement(Bv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(g.url,"_blank")},Yt.createElement(Pv,{size:12}))}))}),c&&Yt.createElement(If,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Yt.createElement(Ef,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Yt.createElement(wf,{message:r}))}i(il,"SwapDetailsAlerts");var Af=2e3;var Nf=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:Re(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Re(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:Re(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Re(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:qo(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Dv.createElement(il,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Wf(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(Wf,"getStepState");function al(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Xv(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),g=Y.use.retry(),d=ae.use.isActiveTab(),m=Yv(),[f,y]=Kv(Af),S=jv(null),[T,C]=_f(null),[k,w]=_f(null),b=i(()=>{r(),C(null)},"onCancel"),N=xe.use.getNotifications(),x=xe.use.removeNotification(),v=N(),E=Fv(e),I=E?.networkStatus;Pf(()=>{v.find(W=>W.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),x(e.requestId)):k&&w(null))},[e.status,e.requestId]),Pf(()=>{B?C(gi.WaitingForNetworkChange):I===gi.WaitingForConnectingWallet||I===gi.NetworkChanged?C(I):C(null)},[I]);let _=Lp(e),Q=E?$v(e,E):null,A=E?Ov(e,E):null,z=ef(e),j=Bp(e),G=i(de=>!!l(de)?.mobileWallet,"isMobileWallet"),B=I===gi.WaitingForNetworkChange&&!!Q&&!!A?.walletType&&(G(A.walletType)||a(A.walletType,Q)),Z=B?s.bind(null,A.walletType,Q):void 0,ie=Mp(e,E),J=Nf({swap:e,switchNetwork:Z,showNetworkModal:I,setNetworkModal:C,message:ie,blockchains:p,swappers:u}),ne=J.length,[ge,Te]=[e.steps[0],e.steps[ne-1]],D=Te.outputAmount||Te.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))*(Te.toUsdPrice||0),4,4),_e=M(parseFloat(e.inputAmount)*(ge.fromUsdPrice||0),4,4),pt=D?new Bf(D).multipliedBy(Te.toUsdPrice||0).toString():"",De=new Bf(e.inputAmount).multipliedBy(ge.fromUsdPrice||0).toString(),Ve=tt(_e,se),Ke=ie.detailedMessage.content||ie.shortMessage,ve=e.status==="success"?Je.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:Un(e.wallets[J[ne-1].to.chain.displayName]?.address||""),chain:J[ne-1].to.chain.displayName}}):R.createElement(Tf,null,R.createElement(To,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ke?"":Je.t("Transaction was not sent."),_?`${Je.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:_.outputAmount,symbol:_.symbol,blockchain:_.blockchain}})}`:""),Ke&&R.createElement(fi,{align:"center",variant:"body",size:"medium",color:"neutral700"},R.createElement("b",null,"Reason:")," ",Ke));return R.createElement(ce,{header:{title:Je.t("Swap Details"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&R.createElement(Ao,null,R.createElement(Mf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},R.createElement(To,{size:"medium",variant:"label",color:"error"},Je.t("Delete"))))},footer:j&&!k&&R.createElement(Mf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let de=or(e,p,c);g(de),setTimeout(()=>{m("../../")},0)}},Je.t("Try again"))},R.createElement(fe,{compact:!0,view:!0},R.createElement(mi,null,R.createElement("div",{className:Uo()},R.createElement(To,{variant:"label",size:"large",color:"neutral700"},`${Je.t("Request ID")}:`),R.createElement("div",{className:di()},R.createElement(To,{variant:"label",size:"small",color:"neutral700"},o),R.createElement(Lf,{container:P(),content:f?Je.t("Copied To Clipboard"):Je.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},R.createElement(qv,{variant:"ghost",onClick:y.bind(null,o||"")},f?R.createElement(zv,{size:16,color:"secondary"}):R.createElement(Uv,{size:16,color:"gray"}))),R.createElement(Sf,{target:"_blank",href:`${yl}/swap/${o}`},R.createElement(Lf,{container:P(),content:Je.t("View on Rango Explorer"),side:"bottom"},R.createElement(Gv,{size:20}))))),R.createElement("div",{className:Uo()},R.createElement(To,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Je.t("Finished at"):Je.t("Created at")),R.createElement(To,{variant:"label",size:"small",color:"neutral700"},z))),R.createElement("div",{className:hf()},R.createElement(Hv,{fee:M(String(L),2,2),time:Ho(Bn(e.steps)),steps:ne}),R.createElement(an,{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:pt,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(Ve,2,2),warningLevel:Nt(Ve??0)})),R.createElement("div",{className:yf()},R.createElement(To,{variant:"title",size:"small"},Je.t("Swaps steps"))),R.createElement(Qv,{size:8}),R.createElement(df,{ref:S},J.map((de,W)=>{let V=W,K=Wf(e.steps[W]),Xe=K==="error"||K==="in-progress"||K==="warning"||K==="completed"&&W===J.length-1;return R.createElement(Vv,{key:V,step:de,type:"swap-progress",ref:S,state:K,hasSeparator:W!==0,tabIndex:V,isFocused:Xe,tooltipContainer:P()})}))),R.createElement(Js,{state:T,onClose:()=>C(null),onCancel:b,onDelete:n,message:ie.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!d}),R.createElement(tl,{open:!!k,diagnosisUrl:me,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(D,6,6),usdValue:se,realUsdValue:pt,realValue:D||"",percentageChange:M(Ve,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(al,"SwapDetails");import{i18n as yi}from"@lingui/core";import{Divider as Ff,NotFound as tw,Skeleton as In,Typography as Si}from"@rango-dev/ui";import Se from"react";import{i18n as Zv}from"@lingui/core";import{Divider as Jv,Skeleton as Rv,Typography as ew}from"@rango-dev/ui";import ke from"react";import{css as yt,styled as sl}from"@rango-dev/ui";var Df=sl("div",{width:"100%",height:"100%",padding:"$10 $20"}),En=sl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),hi=sl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),CH=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),kH=yt({display:"flex",justifyContent:"space-between",alignItems:"center"}),vH=yt({paddingTop:"$15",display:"flex"}),wH=yt({padding:"$15 $0"}),xH=yt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),bH=yt({paddingBottom:"$10"}),EH=yt({display:"flex",justifyContent:"start",alignItems:"center"}),IH=yt({paddingTop:"$5",display:"flex",alignItems:"center"}),AH=yt({display:"flex",alignItems:"center"}),NH=yt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),$f=yt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ll(){return ke.createElement(Df,null,ke.createElement(pn,{type:"swap-preview"}),ke.createElement("div",{className:"swaps-steps"},ke.createElement(ew,{variant:"title",size:"small"},Zv.t("Swaps steps"))),ke.createElement(ke.Fragment,null,ke.createElement(En,null,ke.createElement(xt,{separator:!1}),ke.createElement("div",{className:$f()},ke.createElement(Jv,{direction:"horizontal",size:20}),ke.createElement(Rv,{height:22,variant:"rectangular"}))),ke.createElement(hi,null),ke.createElement(En,null,ke.createElement(xt,{separator:!1})),ke.createElement(hi,null),ke.createElement(En,null,ke.createElement(xt,{separator:!1})),ke.createElement(hi,null),ke.createElement(En,null,ke.createElement(xt,{separator:!1}))))}i(ll,"LoadingSwapDetails");function Of(t){let{requestId:e,showSkeleton:o}=t;return Se.createElement(ce,{header:{title:yi.t("Swap Details"),suffix:Se.createElement(Ao,null)}},o&&Se.createElement(mf,null,Se.createElement(mi,null,Se.createElement("div",{className:Uo()},Se.createElement(Si,{variant:"label",size:"large",color:"neutral700"},`${yi.t("Request ID")}:`),Se.createElement("div",{className:di()},Se.createElement(Si,{variant:"label",size:"small",color:"neutral700"},Se.createElement(In,{width:60,height:10,variant:"rounded"})),Se.createElement(Ff,{direction:"horizontal",size:4}),Se.createElement(In,{width:16,height:16,variant:"rectangular"}),Se.createElement(Ff,{direction:"horizontal",size:4}),Se.createElement(In,{width:16,height:16,variant:"rectangular"}))),Se.createElement("div",{className:Uo()},Se.createElement(Si,{className:gf(),variant:"label",size:"large",color:"neutral700"},Se.createElement(In,{width:60,height:10,variant:"rounded"})),Se.createElement(Si,{variant:"label",size:"small",color:"neutral700"},Se.createElement(In,{width:60,height:10,variant:"rounded"})))),Se.createElement(ll,null)),!o&&Se.createElement(ff,null,Se.createElement(tw,{title:yi.t("Not found"),description:yi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Of,"SwapDetailsPlaceholder");function Uf(){let{manager:t,state:e}=rw(),o=!e.loadedFromPersistor,n=rt(t),{requestId:r}=aw(),a=nt(),{fetchStatus:s}=h();if(!r)return pl.createElement(iw,{containerStyles:{margin:"20px"},type:"error",title:ow.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:d})=>d.requestId===r):void 0,u=i(()=>{if(p?.id){let d=t?.get(p.id);d&&nw(d)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),g=p?.swap;return!g||l?pl.createElement(Of,{requestId:r,showSkeleton:l}):pl.createElement(al,{swap:g,requestId:r,onCancel:u,onDelete:c})}i(Uf,"SwapDetailsPage");function Qf(){return qp(),ta(),sw([{path:q.home,element:Ge.createElement(rd,null)},{path:q.routes,element:Ge.createElement(pd,null)},{path:q.fromSwap,children:[{index:!0,element:Ge.createElement(Qs,{type:"source"})},{path:q.blockchains,element:Ge.createElement(xs,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Ge.createElement(Qs,{type:"destination"})},{path:q.blockchains,element:Ge.createElement(xs,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Ge.createElement(Jd,null)},{path:q.languages,element:Ge.createElement(ad,null)},{path:q.exchanges,element:Ge.createElement(ks,{sourceType:"Exchanges"})},{path:q.bridges,element:Ge.createElement(ks,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Ge.createElement($m,null)},{path:q.swapDetails,element:Ge.createElement(Uf,null)}]},{path:q.wallets,element:Ge.createElement(Xc,null)},{path:q.confirmSwap,element:Ge.createElement(bm,null)}])}i(Qf,"AppRoutes");import{useQueueManager as hw}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as yw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Sw}from"rango-sdk";import{useContext as Tw,useEffect as Xf,useState as jf}from"react";import{globalCss as lw}from"@rango-dev/ui";var zf=i(()=>lw({"@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 qf(){let{setWatermark:t}=ae();return{fetchApiConfig:i(async()=>{let o=await fetch(`${At("BASE_URL")}/meta/dapp/config?apiKey=${At("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(qf,"useFetchApiConfig");import{useWallets as pw}from"@rango-dev/wallets-react";import{useEffect as cw,useRef as uw}from"react";function Hf(){let{connect:t,state:e}=pw(),o=uw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);cw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Hf,"useForceAutoConnect");import{isApprovalTX as mw,RouteEventType as Gf,StepEventType as Vf,StepExecutionEventStatus as dw,WidgetEvents as Ti}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Kf}from"react";function cl(){let t=te.use.connectedWallets(),e=te.use.getWalletsDetails(),o=xe.use.setNotification(),{findToken:n}=h();Kf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===Vf.TX_EXECUTION&&s.status===dw.TX_SENT&&!mw(l)||s.type===Vf.SUCCEEDED){let c=t.find(d=>d.chain===l?.fromBlockchain),g=l?.fromBlockchain!==l?.toBlockchain&&t.find(d=>d.chain===l?.toBlockchain);c&&e([c],n),g&&e([g],n)}o(s,p)},"handleStepEvent");return we.on(Ti.StepEvent,r),()=>we.off(Ti.StepEvent,r)},[we,t]),Kf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Gf.FAILED||s.type===Gf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return we.on(Ti.RouteEvent,r),()=>we.off(Ti.RouteEvent,r)},[we])}i(cl,"useSubscribeToWidgetEvents");import{useManager as fw}from"@rango-dev/queue-manager-react";import{useEffect as gw}from"react";function ul(){let{isSynced:t,syncNotifications:e}=xe(),{manager:o,state:n}=fw();gw(()=>{xe.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(rt(o))},[xe.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ul,"useSyncNotifications");function ml(){Hf(),zf(),cl(),ul();let t=h().blockchains(),{canSwitchNetworkTo:e}=xr(),[o,n]=jf(""),[r,a]=jf(),s=Tw(Vn),l=t.filter(Sw),{fetchApiConfig:p}=qf();Xf(()=>()=>zp(),[]),hw({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Xf(()=>(eo.init(),xe.persist.hasHydrated()||xe.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===yw(o)?.[0]&&n("")}),p().catch(console.log),eo.destroy),[])}i(ml,"useBootstrap");import{styled as Cw}from"@rango-dev/ui";var Yf=Cw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Ci(){ml();let{config:t}=h(),{activeTheme:e}=dr(t?.theme||{}),{activeLanguage:o}=Kt();return dl.createElement(kw,{language:o},dl.createElement(Yf,{id:"swap-container",className:e()},dl.createElement(Qf,null)))}i(Ci,"Main");import{setSolanaSignerConfig as Qw}from"@rango-dev/signer-solana";import gl,{useEffect as tg,useMemo as zw}from"react";import{useState as vw}from"react";var ww=i(()=>{let[t,e]=vw(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=Il(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Zf=ww;import{checkWaitingForNetworkChange as xw,makeQueueDefinition as bw}from"@rango-dev/queue-manager-rango-preset";import{Provider as Ew}from"@rango-dev/queue-manager-react";import{useWallets as Iw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Aw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Nw}from"rango-types";import Ww,{useMemo as Mw}from"react";function Lw(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Iw(),l=Mw(()=>bw({API_KEY:t.apiKey||At("API_KEY"),BASE_URL:At("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:te.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},g=i(async(k,w)=>{if(a(k,w))return r(k,w)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),m=p.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),f=p.filter(Nw),y=i(k=>{let{supportedChains:w}=s(k);return Dn(w)},"getSupportedChainNames"),S=e(),T={meta:{blockchains:m,evmBasedChains:f,evmNetworkChainInfo:Aw(f),getSupportedChainNames:y},getSigners:o,wallets:c,providers:S,switchNetwork:g,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},C=ae.use.isActiveTab();return Ww.createElement(Ew,{queuesDefs:[l],context:T,onPersistedDataLoaded:k=>{xw(k)},isPaused:!C},t.children)}i(Lw,"QueueManager");var Jf=Lw;import{useManager as $w}from"@rango-dev/queue-manager-react";import Fw,{createContext as Ow,useContext as Uw}from"react";import{cancelSwap as Bw,getCurrentBlockchainOfOrNull as Pw,getCurrentStep as _w,getRelatedWalletOrNull as Dw}from"@rango-dev/queue-manager-rango-preset";var ki=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return rt(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=or(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Bw(o)}getCurrentStepInfo(e){let o=_w(e);return{step:o,wallet:o?Dw(e,o):null,network:o?Pw(e,o):null}}};var Rf=Ow(void 0);function fl(t){let{manager:e}=$w(),o=ae.use.isActiveTab(),n=Y.use.retry(),{findToken:r}=h(),a=new ki(e,{retrySwap:n,findToken:r}),s=te.use.connectedWallets(),l=te.use.loading(),p=_l(s),u=te.use.getWalletsDetails(),c=h().blockchains(),g=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=Kt().resetLanguage,y=xe().getNotifications(),S=xe().clearNotifications,T={isActiveTab:o,setCurrentTabAsActive:eo.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:C=>u(C,r)},meta:{blockchains:c,tokens:g,swappers:d,loadingStatus:m,findToken:r},resetLanguage:f,notifications:{list:y,clearAll:S}};return Fw.createElement(Rf.Provider,{value:T},t.children)}i(fl,"WidgetInfo");function eg(){let t=Uw(Rf);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(eg,"useWidget");function vi(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Zf();return tg(()=>{n&&r(n)},[n]),zw(()=>{ql({API_KEY:o?.apiKey||An,BASE_URL:o?.apiUrl||hl})},[o.apiKey,o.apiUrl]),tg(()=>{t.config?.signers?.customSolanaRPC&&Qw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),gl.createElement(Kn,{config:o,onUpdateState:e},gl.createElement(Jf,{apiKey:o.apiKey},gl.createElement(fl,null,t.children)))}i(vi,"WidgetProvider");function og(t){let e=t.config?.externalWallets;return wi.createElement(fp,null,e?wi.createElement(Ci,null):wi.createElement(vi,{config:t.config??Qi},wi.createElement(Ci,null)))}i(og,"Widget");function ng(){let{on:t,off:e}=we;return{on:t,off:e}}i(ng,"useWidgetEvents");export{V2 as EventSeverity,Vo as MainEvents,t5 as Networks,r5 as PendingSwapNetworkStatus,$i as QuoteEventTypes,K2 as RouteEventType,xi as SUPPORTED_FONTS,X2 as StepEventType,j2 as StepExecutionBlockedEventStatus,Y2 as StepExecutionEventStatus,he as UI_ID,Fi as WalletEventTypes,R2 as WalletEvents,o5 as WalletTypes,og as Widget,Vo as WidgetEvents,vi as WidgetProvider,Kn as WidgetWallets,ua as customizedThemeTokens,J2 as readAccountAddress,no as useWalletList,xr as useWallets,eg as useWidget,ng as useWidgetEvents,lg as widgetEventEmitter};
1
+ var lg=Object.defineProperty;var i=(t,e)=>lg(t,"name",{value:e,configurable:!0});import{EventSeverity as y5,RouteEventType as S5,StepEventType as C5,StepExecutionBlockedEventStatus as T5,StepExecutionEventStatus as k5}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as w5,useWallets as Tr,Events as x5}from"@rango-dev/wallets-react";import{Networks as E5,WalletTypes as I5}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as N5}from"rango-types";import{UI_ID as pg}from"@rango-dev/ui";var xn="c6381a79-2817-4602-83bf-6a641a409e32",hl="https://api.rango.exchange",yl="https://explorer.rango.exchange",Se={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...pg};var Sl="Roboto",Ti=[{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 Ui,Provider as nh}from"@rango-dev/wallets-react";import{isEvmBlockchain as rh}from"rango-sdk";import Qn,{createContext as ih,useEffect as mp,useMemo as ah,useRef as dp}from"react";import{useEffect as Wg}from"react";import{create as Ig}from"zustand";import{subscribeWithSelector as Ag}from"zustand/middleware";import cg from"mitt";var Te=cg(),ug={on:Te.on,off:Te.off};import{RangoClient as bg}from"rango-sdk";import{BlockchainCategories as Sg,WalletState as ht}from"@rango-dev/ui";import{readAccountAddress as Cg}from"@rango-dev/wallets-react";import{detectInstallLink as Tg,getCosmosExperimentalChainInfo as kg,isEvmAddress as vg,KEPLR_COMPATIBLE_WALLETS as wx,Networks as Wl}from"@rango-dev/wallets-shared";import Ii from"bignumber.js";import{isCosmosBlockchain as wg}from"rango-types";import mg from"bignumber.js";var Oe=new mg(0);import{WalletTypes as dg}from"@rango-dev/wallets-shared";var Cl=[dg.LEAP];import{BlockchainCategories as ki,WalletState as yg}from"@rango-dev/ui";import{TransactionType as bn}from"rango-sdk";function ho(t){return Array.from(new Set(t))}i(ho,"removeDuplicateFrom");function xi(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(xi,"areEqual");function bl(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(bl,"debounce");function vt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(vt,"containsText");function vl(t,e){return t.toLowerCase()===e.toLowerCase()}i(vl,"exactText");function wl(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(wl,"startWithText");var P=i(()=>document.getElementById(Se.SWAP_BOX_ID),"getContainer"),Uo=i(()=>document.getElementById(Se.EXPANDED_BOX_ID),"getExpanded");function xl(t,e,o){let n=!!e&&vl(e,t),r=!!o&&vl(o,t);return n!==r?n?-1:1:0}i(xl,"compareExactMatchText");function vi(t,e,o){let n=!!e&&vt(e,t),r=!!o&&vt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(vi,"compareContainsText");function wi(t,e,o){let n=!!e&&wl(e,t),r=!!o&&wl(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(wi,"compareStartWithText");function El(t,e,o){if(!o)return 0;let n=xl(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=xl(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=wi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=vi(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=wi(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=vi(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=wi(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=vi(o,t.address,e.address);if(r!==0)return r}return 0}i(El,"compareWithSearchFor");var En=i((t,e)=>{switch(e){case ki.ALL:return!0;case ki.UTXO:return t===bn.TRANSFER;case ki.OTHER:return t!==bn.TRANSFER&&t!==bn.COSMOS&&t!==bn.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Il=i(t=>Ti.find(o=>o.value===t)?.url,"getFontUrlByName");function In(t,e){let o=!!t.find(n=>n.state===yg.CONNECTED);return e===!1&&o}i(In,"isSingleWalletActive");function An(t,e){return e.find(o=>o.name===t)?.displayName}i(An,"getBlockchainDisplayNameFor");function Je(t,e){return e.find(o=>o.name===t)?.shortName}i(Je,"getBlockchainShortNameFor");function Al(t,e){return e.find(o=>o.name===t)?.logo}i(Al,"getBlockchainImage");function Qo(t,e){return e.find(o=>o.id===t)?.title}i(Qo,"getSwapperDisplayName");function bi(t,e){return e.find(o=>o.name===t)??null}i(bi,"findBlockchain");function Ei(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(Ei,"isTokenNative");function st(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(st,"createTokenHash");import{BigNumber as Nl}from"bignumber.js";var zo=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 Nl(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Nl(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 Nn=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"),qo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Ai(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(Ai,"mapStatusToWalletState");function Ml(t,e,o,n){return o.filter(r=>!Cl.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:g,needsDerivationPath:d}=e(r),m=ho(g.map(S=>S.type)),f=Ai(t(r));return{title:a,image:s,link:Tg(l),state:f,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:m,needsDerivationPath:d}})}i(Ml,"mapWalletTypesToWalletInfo");function Ln(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Ln,"walletAndSupportedChainsNames");function Ll(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(g=>g.chain===p)){let g={address:u,chain:p,walletType:t};a.push(g)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=Cg(p),g=l.length>0,d=l.includes(c),m=c===Wl.Unknown;if(g&&!d&&!m)return;let S=c===Wl.Unknown&&vg(u);if(m&&!S)return;o.includes(c)||S?r?s(c,u.toLowerCase()):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(c,u)}),a}i(Ll,"prepareAccountsForWalletStore");function Kt(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 g=u.from.blockchain,d=u.to.blockchain,m=a===o.swaps.length-1,f=c===p.length-1;(!m&&!f||m&&l!==g||e==="all")&&n.add(g),e==="all"&&n.add(d)})}e==="all"&&n.add(l)}),Array.from(n)}i(Kt,"getQuoteWallets");function Bn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Bn,"isAccountAndWalletMatched");function Bl(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new Ii(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:e(r.asset)?.usdPrice||null}))||[]}i(Bl,"makeBalanceFor");function Pl(t){return{...t,loading:!1,error:!0}}i(Pl,"resetConnectedWalletState");var _l=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 Ii(a?.amount||Oe).multipliedBy(a?.usdPrice||0))?.reduce((a,s)=>a.plus(s),Oe)||Oe).toString();return xg(r)},"calculateWalletUsdValue");function xg(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(xg,"numberWithThousandSeparator");var Pn=i((t,e)=>{let o=kg(Object.entries(t).map(([,n])=>n).filter(wg));return o&&o[e]?.experimental},"isExperimentalChain");function _n(t){return t?{...t,amount:M(t.amount,8,8),usdValue:M(t.usdValue,4,4)}:null}i(_n,"formatBalance");function Dl(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(Dl,"compareTokenBalance");function Xt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Xt,"areTokensEqual");function $l(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($l,"sortWalletsBasedOnConnectionState");function Dn(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(Dn,"getConciseAddress");function Fl({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Fl,"getAddress");function $n(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new Ii(o?.usdPrice??Oe).multipliedBy(o?.amount).toString():""},r=o?st({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,a=r?e[r]:null;return r&&(!a||a&&a.amount<n.amount)&&(e[r]=n),e},{})}i($n,"makeTokensBalance");var Ol=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Ul(t){return t.map(e=>e.state).join("-")}i(Ul,"hashWalletsState");function Ql(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(Ql,"filterBlockchainsByWalletTypes");function zl(t,e){return e===Sg.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(En(n,e))return!0;return!1})}i(zl,"filterWalletsByCategory");var Ni={API_KEY:xn};function wt(t){return Ni[t]||""}i(wt,"getConfig");function ql(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ni=e,Ni}i(ql,"initConfig");var Hl=20,Gl=25,Wi="theme-widget",Mi=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Xt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Xt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Li=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Vl=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Fn,_t=i(()=>Fn||(Fn=new bg(wt("API_KEY"),wt("BASE_URL")),Fn),"httpService");import{WidgetEvents as Kl}from"@rango-dev/queue-manager-rango-preset";var Bi=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Bi||{}),Pi=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Pi||{}),_i=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(_i||{}),yo=(a=>(a[a.RouteEvent=Kl.RouteEvent]="RouteEvent",a[a.StepEvent=Kl.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(yo||{});var Eg=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"),Dt=Eg;var oe=Dt(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:$n(a),connectedWallets:a}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let a=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.map(l=>o.find(p=>Bn(p,l))?{...l,loading:!0}:l)}));try{let s=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await _t().getWalletsDetails(s)).wallets;if(p)t(u=>{let c=u.connectedWallets.map(d=>{let m=o.find(S=>Bn(S,d)),f=p.find(S=>S.address===d.address&&S.blockChain===d.chain);return f?.failed&&m&&r&&a([m],n,!1),m&&f?{...d,explorerUrl:f.explorerUrl,balances:Bl(f,n),loading:!1}:d});return{loading:!1,balances:$n(c),connectedWallets:c}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(c=>o.find(g=>Bn(g,c))?Pl(c):c);return{loading:!1,balances:$n(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=st(o);return n[r]??null}}))));import{allProviders as Ng}from"@rango-dev/provider-all";function On(t,e){let o=Ng({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(On,"matchAndGenerateProviders");function Xl(t,e){return On(t,e).map(r=>r.config.type)}i(Xl,"configWalletsToWalletName");function jl(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(jl,"hashProviders");function Di(t,e){let o=oe.use.clearConnectedWallet(),n=On(t,e);return Wg(()=>{o(),n=On(t,e)},[jl(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Di,"useWalletProviders");import Yg,{createContext as Zg,useContext as Jg,useEffect as Rg,useRef as eh}from"react";import{create as Xg}from"zustand";import{persist as jg}from"zustand/middleware";var $i=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},So=new $i;function Ho(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=st(p));let u=o.tokensMapByTokenHash.get(p);u&&(n[p]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(u=>{let c=st(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(Ho,"matchTokensFromConfigWithMeta");var Fi={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"}},Mg={clientUrl:void 0},Lg={liquiditySources:void 0},Yl=i((t,e,o)=>({config:{...Fi,...t},iframe:Mg,campaignMode:Lg,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config,{_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s}=o(),l=Ho({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=Ho({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});So.set("supportedSourceTokens",l),So.set("supportedDestinationTokens",p),e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");function Un(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(Un,"getUniqueSwappersGroups");function Zl(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Zl,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function Jl(t,e){return e?.[t]==="enabled"}i(Jl,"isFeatureEnabled");var Rl=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config,s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a}=e(),s=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return s;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",c=So.get(u);c||(c=Ho({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),So.set(u,c));let g=e().blockchains({type:o.type});return c.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!g.some(f=>f.name===m.blockchain)?!1:o.searchFor?!!(vt(m.symbol,o.searchFor)||vt(m.address||"",o.searchFor)||vt(m.name||"",o.searchFor)):!0).sort((m,f)=>{let S=e().isTokenPinned(m,o.type),T=e().isTokenPinned(f,o.type);if(S!==T)return S?-1:1;if(o.getBalanceFor){let b=o.getBalanceFor(m),N=o.getBalanceFor(f),x=Dl(b,N);if(x!==0)return x}let y=l.get(m.blockchain),C=l.get(f.blockchain),k=Ei(m,y),v=Ei(f,C);if(k!==v)return k?-1:1;if(m.isPopular!==f.isPopular)return m.isPopular?-1:1;if(o.searchFor){let b=El(m,f,o.searchFor);if(b)return b}return m.isSecondaryCoin!==f.isSecondaryCoin?m.isSecondaryCoin?1:-1:y&&C?y.sort-C.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=st(o);return n.get(r)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Xt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(Zl)},fetch:async()=>{try{let{enableCentralizedSwappers:o}=e().config,n=await _t().getAllMetadata({enableCentralizedSwappers:o});t({fetchStatus:"success"});let r=new Map,a=new Map,s={},l=[],p=n.popularTokens,u=n.swappers,c=new Set;n.tokens.forEach(d=>{c.add(d.blockchain),l.push(d)}),n.blockchains.sort((d,m)=>d.sort-m.sort).forEach(d=>{d.enabled&&c.has(d.name)&&r.set(d.name,d)}),l.forEach(d=>{let m=st(d);s[d.blockchain]||(s[d.blockchain]=[]),a.set(m,d),s[d.blockchain].push(m)}),t({_blockchainsMapByName:r,_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Chinese as Bg,English as Pg,Finland as _g,French as Dg,German as $g,Greece as Fg,Italian as Og,Japanese as Ug,Netherlands as Qg,Poland as zg,Portuguese as qg,Russian as Hg,Spanish as Gg,Swedish as Vg,Ukrainian as Kg}from"@rango-dev/ui";var ep=[{title:"English",label:"English",local:"en",SVGFlag:Pg},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Gg},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Dg},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Ug},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:qg},{title:"Chinese",label:"\u4E2D\u56FD\u4EBA",local:"zh",SVGFlag:Bg},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Hg},{title:"German",label:"Deutsch",local:"de",SVGFlag:$g},{title:"Ukrainian",label:"\u0423\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Kg},{title:"Swedish",label:"svenska",local:"sv",SVGFlag:Vg},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:_g},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Qg},{title:"Greek",label:"Grieks",local:"el",SVGFlag:Fg},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Og},{title:"Polish",label:"Polski",local:"pl",SVGFlag:zg}],Co="en";var tp=[.5,1,3],op=1,np=5,rp=100,ip=0;var ap=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:op,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=Re("theme",n),s=Re("language",n),l=Re("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||Co},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||Co}})}}),"createSettingsSlice");function sp(t){return Xg()(jg((...e)=>({...Rl(...e),...ap(...e),...Yl(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(sp,"createAppStore");var lp=Zg(null);function h(){let t=Jg(lp);if(Rg(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(h,"useAppStore");function pp(t){let e=eh();return e.current||(e.current=sp(t.config)),Yg.createElement(lp.Provider,{value:e.current},t.children)}i(pp,"AppStoreProvider");import{create as oh}from"zustand";var cp="rango-widget";var Go=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(cp),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var le=Dt(oh()((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})}}))),jt=new Go({onInit:()=>le.setState({tabManagerInitiated:!0}),onClaim:()=>le.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>le.setState({isActiveTab:!1})});var zn=ih({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function sh(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=h(),a=h().blockchains(),{findToken:s}=h(),l=h().config,p={walletConnectProjectId:l?.walletConnectProjectId,trezorManifest:l?.trezorManifest,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:u}=Di(l.wallets,p),{connectWallet:c,disconnectWallet:g}=oe(),d=dp(),m=dp();mp(()=>{n().catch(console.log)},[]),mp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:l,dappConfig:t.config})},[t.config,r]);let f=a.filter(rh).map(C=>C.name),S=i((C,k,v,b,N)=>{if(k===Ui.ACCOUNTS)if(v){let x=Ln(N.supportedBlockchains),w=Ll(C,v,f,x,N.isContractWallet);w.length&&c(w,s)}else g(C),m.current?m.current(C):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(k===Ui.ACCOUNTS&&b.connected){let x=`${C}-${b.network}-${v}`;b.connected&&(d.current?d.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(k===Ui.NETWORK&&b.network){let x=`${C}-${b.network}`;d.current?d.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(C,k,v,b,N)},"onUpdateState"),T=le.use.isActiveTab(),y=ah(()=>({onConnectWallet:C=>{d.current=C},onDisconnectWallet:C=>{m.current=C}}),[]);return Qn.createElement(zn.Provider,{value:y},Qn.createElement(nh,{allBlockChains:a,providers:u,onUpdateState:S,autoConnect:!!T},t.children))}i(sh,"Main");function qn(t){let{config:e,...o}=t;return Qn.createElement(pp,{config:e},Qn.createElement(sh,{...o,config:e}))}i(qn,"WidgetWallets");import Ci from"react";import lh,{Fragment as ph}from"react";import{MemoryRouter as ch,useInRouterContext as uh}from"react-router";function fp({children:t}){let o=uh()?ph:ch;return lh.createElement(o,null,t)}i(fp,"AppRouter");import{I18nManager as Aw}from"@rango-dev/ui";import dl from"react";import Ke from"react";import{useRoutes as fw}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 vo,useRef as er}from"react";import Qe from"bignumber.js";import{create as fh}from"zustand";import{subscribeWithSelector as gh}from"zustand/middleware";import{getLastSuccessfulStep as dh}from"@rango-dev/queue-manager-rango-preset";import fI 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 zi=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],gp=30;import{i18n as lt}from"@lingui/core";import{RouteEventType as JE}from"@rango-dev/queue-manager-rango-preset";import Ue from"bignumber.js";import{PendingSwapNetworkStatus as Vn}from"rango-types";function Hn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Hn,"isValidAddress");import{i18n as $e}from"@lingui/core";var ne=i(()=>({genericServerError:$e.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:$e.t("Please reset your liquidity sources."),description:$e.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:$e.t("No Routes Found."),description:$e.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:$e.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:$e.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:$e.t("High Price Impact"),title:$e.t("Price impact is too high!"),description:$e.t("The price impact is significantly higher than the allowed amount."),confirmMessage:$e.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:$e.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:$e.t("USD Price Unknown"),title:$e.t("USD Price Unknown, Cannot calculate Price Impact."),description:$e.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:$e.t("Confirm USD Price Unknown")}}),"errorMessages");function hp(t){switch(t.type){case 0:return t.diagnosisMessage??ne().noResultError.title;case 1:return ne().genericServerError;default:return""}}i(hp,"getQuoteErrorMessage");import{i18n as Gn}from"@lingui/core";var Yt=i(()=>({connectWallet:Gn.t("Connect Wallet"),swap:Gn.t("Swap"),swapAnyway:Gn.t("Swap anyway"),ethWarning:Gn.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function yp(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Ue(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Ue(1e3)))??!1}i(yp,"hasHighValueLoss");function Sp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(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(Sp,"hasLimitError");function Cp(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Ue(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Ue(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 Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(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=ne().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=ne().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=ne().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=ne().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Cp,"getLimitErrorMessage");function Tp(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:Yt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:Yt().swap,action:"confirm-swap",disabled:!0}:s?{title:Yt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:Yt().ethWarning,action:"confirm-warning",disabled:!1}:{title:Yt().swap,action:"confirm-swap",disabled:!1}:{title:Yt().connectWallet,action:"connect-wallet",disabled:!1}}i(Tp,"getSwapButtonState");function qi(t,e,o){return!((!o||o.lte(Oe))&&t&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t)}i(qi,"canComputePriceImpact");function Hi(t,e){let o=Oe;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 Ue(r.amount).multipliedBy(a||0))}return o}i(Hi,"getUsdFeeOfStep");function Kn(t,e){return t.reduce((o,n)=>o.plus(Hi(n,e)),Oe)}i(Kn,"getTotalFeeInUsd");function Gi(t){let e=Oe;return e=e.plus(new Ue(t.amount).multipliedBy(t.price||0)),e}i(Gi,"getUsdFee");function kp(t){return t.reduce((e,o)=>e.plus(Gi(o)),Oe)}i(kp,"getTotalFeesInUsd");function vp(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(vp,"getFeesGroup");function wp(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(wp,"checkSlippageErrors");function xp(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(xp,"checkSlippageWarnings");function Xn(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Xn,"getMinRequiredSlippage");function bp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(bp,"hasProperSlippage");function Ep(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:g,affiliateWallets:d,destination:m,enableCentralizedSwappers:f}=t,S=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),T=[];return r?.forEach(C=>{T.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:g??void 0,affiliateWallets:d??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:T,selectedWallets:S??{},slippage:u.toString(),...m&&{destination:m},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1},enableCentralizedSwappers:f}}i(Ep,"createQuoteRequestBody");function Ip(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Ip,"getWalletsForNewSwap");function To(t){return t?.outputAmount||null}i(To,"getQuoteOutputAmount");function Ap(t,e){return new Ue(e).div(new Ue(t)).minus(1).multipliedBy(100).toNumber()}i(Ap,"getPercentageChange");function Np(t,e){let o=To(t),n=To(e);if(!o||!n)return!1;let r=et(o,n);return r?r<=-1:!0}i(Np,"isOutputAmountChangedALot");function Wp(t,e,o){let n=t.validationStatus,r=Kt({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Dp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=M(new Ue(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Ue(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:Je(s.asset.blockchain,o)}})})}i(Wp,"generateBalanceWarnings");function jn(t,e){return(t?new Ue(t):Oe).multipliedBy(e||0)}i(jn,"calcOutputUsdValue");function Vo(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Vn.NetworkChanged}i(Vo,"isNetworkStatusInWarningState");function Mp(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Vo(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Vn.WaitingForConnectingWallet:n=n||lt.t("Waiting for connecting wallet");break;case Vn.WaitingForQueue:n=n||lt.t("Waiting for other running tasks to be finished");break;case Vn.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(Mp,"getSwapMessages");function Lp(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(Lp,"getLastConvertedTokenInFailedSwap");function Bp(t){return t.status==="failed"}i(Bp,"shouldRetrySwap");function Pp(t,e,o,n,r,a){if(!n||t)return!0;let s=Kt({filter:"all",quote:n}),l=Kt({filter:"required",quote:n}),p=s.every(g=>r.some(d=>d.chain===g)),u=l.every(g=>r.some(d=>d.chain===g)),c=o&&a?Hn(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(Pp,"isConfirmSwapDisabled");function _p(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(_p,"isTokensIdentical");function Zn(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(Zn,"getQuoteToTokenUsdPrice");function Vi(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i(Vi,"isNumberOfSwapsChanged");function Ki(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!xi(o,n)}i(Ki,"isQuoteSwappersUpdated");function Xi(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!xi(o,n)}i(Xi,"isQuoteInternalCoinsUpdated");function Fp(t,e){return Vi(t,e)||Ki(t,e)||Xi(t,e)}i(Fp,"isQuoteChanged");function Dp(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(Dp,"getRequiredBalanceOfWallet");function xt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(xt,"getPriceImpactLevel");function Jn(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=dh(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=bi(a?a.toBlockchain:n.fromBlockchain,e),p=bi(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),g=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:g}}i(Jn,"createRetryQuote");function ko(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=Zt(o,t.requestAmount),l=Zt(n,t?.outputAmount??"");if(t&&s&&l){let c=et(s.toString(),l.toString());if(!!c&&yp(s,c)){let d=Kn(t?.swaps,r),m=xt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:d,warningLevel:m}}}else if(t&&(!s||!l))return{type:1};let p=Xn(t.swaps),u=a>np;if(bp(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:xp(t,a),minRequiredSlippage:p};return null}i(ko,"generateQuoteWarnings");function et(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ap(t.toString(),e.toString());return n&&n<0?n:null}i(et,"getPriceImpact");var Op=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"),Rn=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"),Up=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"),Qp=i(t=>{let e=i((o,n)=>{let r=zi.indexOf(o.value),a=zi.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Zt=i((t,e)=>t?.usdPrice?new Qe(e||Oe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),V=Dt(fh()(gh(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Qe(0),outputUsdValue:new Qe(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=Oe;return qo(o.inputAmount)?(e&&(n=e?.outputAmount?new Qe(e?.outputAmount):null,r=jn(e?.outputAmount,Zn(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 Qe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Qe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Qe(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Zt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Qe(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Qe(0),outputUsdValue:new Qe(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Zt(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:Zt(n??null,s),outputUsdValue:new Qe(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?Zt(e.toToken,e.outputAmount?.toString()||""):new Qe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Qe(0),inputUsdValue:new Qe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Qe(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),zp=V.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 qp(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=V(),c=h().config,g=h().fetchStatus,d=h().blockchains(),m=h().tokens(),{findToken:f}=h(),{setAffiliateRef:S,setAffiliatePercent:T,setAffiliateWallets:y}=h(),C=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,b=c?.to?.blockchains,N=er(void 0),x=er(void 0),w=er(void 0),E=er(void 0);vo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),vo(()=>{if(g==="success"){r();let A=d.find(I=>I.name===c?.from?.blockchain),B=c?.from?.token,z=B&&f(B);(A||!A&&w.current)&&n(A??null),z?a({token:z,meta:{blockchains:d,tokens:m}}):!z&&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,g]),vo(()=>{Mi(s,C)&&a({token:null}),Li(p,k)&&n(null)},[C,k]),vo(()=>{Mi(l,v)&&a({token:null}),Li(u,b)&&o(null)},[v,b]),vo(()=>{if(g==="success"){r();let A=d.find(I=>I.name===c?.to?.blockchain),B=c?.to?.token,z=B&&f(B);(A||!A&&E.current)&&o(A??null),z?e({token:z,meta:{blockchains:d,tokens:m}}):!z&&x.current&&e({token:null}),E.current=c?.to?.blockchain,x.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,g]),vo(()=>{S(c?.affiliate?.ref??null),T(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(qp,"useSyncStoresWithConfig");import{useEffect as Zi,useRef as hh}from"react";import{useInRouterContext as yh,useLocation as Sh,useSearchParams as Ch}from"react-router-dom";function ji(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(ji,"convertTokenSearchParamToAsset");function Yi(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Yi,"tokenToSearchParam");function Ji(){let t=Sh(),[e,o]=Ch(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:g,setInputAmount:d}=V(),m=h().fetchStatus,f=h().blockchains(),S=h().tokens(),T=yh(),{updateIframe:y,updateCampaignMode:C}=h(),k=h().isInCampaignMode(),v=hh(),{findToken:b}=h(),N=i(()=>{let w={};for(let[L,j]of e.entries())L.startsWith("utm_")&&(w[L]=j);let E=e.get("fromAmount"),A=e.get("fromBlockchain"),B=e.get("fromToken"),z=e.get("toBlockchain"),I=e.get("toToken"),U=e.get("autoConnect"),te=e.get("clientUrl"),G=e.get("liquiditySources");return{fromAmount:E,fromBlockchain:A,fromToken:B,toBlockchain:z,toToken:I,autoConnect:U,clientUrl:te,liquiditySources:G,utmQueryParams:w}},"getUrlSearchParams"),x=i(w=>{for(let E in w)w[E]||delete w[E];o(w,{replace:!0})},"updateUrlSearchParams");Zi(()=>{let{autoConnect:w,clientUrl:E,utmQueryParams:A}=N();T&&m==="success"&&x({fromBlockchain:n?.name,fromToken:Yi(a),toBlockchain:r?.name,toToken:Yi(s),fromAmount:l,autoConnect:w??void 0,clientUrl:E??void 0,liquiditySources:k?v.current:void 0,...A})},[t.pathname,l,n,a,r,s,k]),Zi(()=>{if(!T)return;let w=N();if(!v.current&&w.liquiditySources&&(v.current=w.liquiditySources),w.fromAmount&&d(w.fromAmount),m==="success"){let E=f.find(I=>I.name===w.fromBlockchain),A=w.fromToken&&E?b(ji(w.fromToken,E)):void 0,B=f.find(I=>I.name===w.toBlockchain),z=w.toToken&&B?b(ji(w.toToken,B)):void 0;E&&(p(E),A&&c({token:A,meta:{blockchains:f,tokens:S}})),B&&(u(B),z&&g({token:z,meta:{blockchains:f,tokens:S}}))}},[m]),Zi(()=>{let{clientUrl:w,liquiditySources:E}=N();y("clientUrl",w||void 0),C("liquiditySources",E?.split(",")??void 0)},[])}i(Ji,"useSyncUrlAndStore");import{i18n as ns}from"@lingui/core";import{useManager as jC}from"@rango-dev/queue-manager-react";import{Alert as bm,Button as YC,css as is,Divider as rs,IconButton as Em,styled as ZC,Typography as JC,WalletIcon as RC}from"@rango-dev/ui";import Ne,{useEffect as zr,useLayoutEffect as eT,useRef as tT,useState as sn}from"react";import{useNavigate as oT}from"react-router-dom";import{i18n as ao}from"@lingui/core";import{Alert as nu,BalanceErrors as FS,Button as ru,ChevronLeftIcon as OS,Divider as kr,MessageBox as US,Typography as Da}from"@rango-dev/ui";import J,{useCallback as QS,useEffect as iu,useMemo as zS,useState as so}from"react";import{useNavigate as qS}from"react-router-dom";import{i18n as tr}from"@lingui/core";function or(t){switch(t.type){case 0:return tr.t("Route has been updated.");case 3:return tr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return tr.t("Route swappers has been updated.");case 2:return tr.t("Route internal coins has been updated.");default:return""}}i(or,"getQuoteUpdateWarningMessage");import{Modal as kh}from"@rango-dev/ui";import vh from"react";function re(t){let{watermark:e}=le();return vh.createElement(kh,{hasWatermark:e==="FULL",...t},t.children)}i(re,"WatermarkedModal");import{i18n as oa}from"@lingui/core";import{Alert as Ih,ChevronDownIcon as Ah,CloseIcon as Nh,Divider as Zp,IconButton as Jp,PasteIcon as Wh,Typography as Mh,WalletIcon as Lh}from"@rango-dev/ui";import Le,{useEffect as Bh,useRef as Ph}from"react";import ar,{useRef as bh}from"react";import*as wo from"@radix-ui/react-collapsible";import{keyframes as Gp,styled as nr}from"@rango-dev/ui";var Ri=300,wh=Gp({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),xh=Gp({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Vp=nr(wo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ea=nr(wo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),rr=nr(wo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${wh} ${Ri}ms ease-out`},false:{animation:`${xh} ${Ri}ms ease-out`}}}}),ir=nr("div",{transition:`all ${Ri}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function sr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=bh(null);return ar.createElement(Vp,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&ar.createElement(ea,{className:"collapsible_trigger",onClick:a},s),ar.createElement(rr,{className:"collapsible_content",open:e},r),l==="bottom"&&ar.createElement(ea,{className:"collapsible_trigger",onClick:a},s))}i(sr,"CustomCollapsible");import{darkTheme as Kp,styled as ta,TextField as Eh}from"@rango-dev/ui";var Xp=ta("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),jp=ta(Eh,{backgroundColor:"$neutral100",padding:"$15"}),Yp=ta("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Kp} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Kp} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function Rp(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=V(),{config:s}=h(),l=h().blockchains(),p=An(e.name,l),u=Ph(null),c=s?.defaultCustomDestinations?.[e.name],g=navigator?.userAgent.includes("Firefox"),m=n&&!!r&&e&&!Hn(e,r),f=i(()=>{a("")},"handleClear"),S=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),u?.current?.focus()}},"handlePaste"),T=i(()=>r?Le.createElement(Jp,{onClick:f,variant:"ghost"},Le.createElement(Nh,{size:12,color:"gray"})):g?null:Le.createElement(Jp,{onClick:S,variant:"ghost"},Le.createElement(Wh,{size:16})),"renderSuffix");return Bh(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Le.createElement(Xp,null,Le.createElement(sr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Le.createElement(Yp,null,Le.createElement("div",{className:"button__content"},Le.createElement(Lh,{size:18,color:"info"}),Le.createElement(Zp,{size:4,direction:"horizontal"}),Le.createElement(Mh,{variant:"label",size:"medium",color:n?"$neutral600":void 0},oa.t("Send to a different address"))),Le.createElement(ir,{orientation:n?"up":"down"},Le.createElement(Ah,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Le.createElement(jp,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:oa.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:T(),onChange:y=>{let C=y.target.value;a(C)}})),m&&Le.createElement(Le.Fragment,null,Le.createElement(Zp,{size:4}),Le.createElement(Ih,{variant:"alarm",type:"error",title:oa.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(Rp,"CustomDestination");import{css as _h,darkTheme as na,IconButton as Dh,styled as bt}from"@rango-dev/ui";var ec=bt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),tc=bt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),$h=bt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${na} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${na} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${na} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),oc=bt($h,{alignSelf:"stretch",minHeight:"93px"}),nc=bt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),rc=bt(Dh,{position:"absolute",left:"$20"}),ic=bt("div",{paddingTop:"$20"}),ac=_h({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),sc=bt("div",{display:"flex"}),lc=bt("div",{overflow:"visible",width:"100%"});import{i18n as pt}from"@lingui/core";import{Button as PS,Divider as Pa,Image as _S,MessageBox as Cr,SelectableWallet as DS,Typography as eu,WalletState as tu}from"@rango-dev/ui";import fe,{useEffect as ou,useState as io}from"react";import{WalletState as ra}from"@rango-dev/ui";import{useWallets as Fh}from"@rango-dev/wallets-react";import{detectMobileScreens as Oh,KEPLR_COMPATIBLE_WALLETS as Uh,WalletTypes as xo}from"@rango-dev/wallets-shared";import{useCallback as Qh,useEffect as zh,useState as qh}from"react";var Hh=Object.values(xo);function Jt(t){let{chain:e,onBeforeConnect:o,onConnect:n,onError:r}=t,{config:a}=h(),{state:s,disconnect:l,getWalletInfo:p,connect:u}=Fh(),{connectedWallets:c}=oe(),g=h().blockchains(),d=Xl(a?.wallets,{trezorManifest:a?.trezorManifest,walletConnectProjectId:a?.walletConnectProjectId,walletConnectListedDesktopWalletLink:a.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink})||Hh,m=Ml(s,p,d,e);m=Oh()?m.filter(x=>x.showOnMobile!==!1&&s(x.type).installed):m;let f=$l(m),[S,T]=qh(""),y=i(x=>!c.find(w=>w.walletType===x&&w.chain===e),"isExperimentalChainNotAdded"),C=i(async(x,w)=>{let E=s(x);try{if(S&&T(""),E.connected)await l(x);else{if(In(m,a.multiWallets))return;o?.(x),await u(x,void 0,w),n?.(x)}}catch(A){r?.(A?.message),T("Error: "+A?.message)}},"handleClick"),k=Qh(()=>{let x=m?.filter(w=>w.state===ra.CONNECTING)||[];for(let w of x)l(w.type)},[Ul(m)]),v=i(async x=>{s(x).connected&&await l(x)},"disconnectWallet");zh(()=>()=>{k()},[]);let b=i(x=>{let w=x.find(A=>A.type===xo.DEFAULT);return!w||w.state===ra.NOT_INSTALLED?!1:x.filter(A=>A.state!=ra.NOT_INSTALLED&&![xo.DEFAULT,xo.WALLET_CONNECT_2,xo.LEDGER].includes(A.type)&&p(A.type).supportedChains.filter(B=>B.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),N=i((x,w,E)=>Pn(E,w)&&y(x)&&!Uh.includes(x)||x==xo.DEFAULT&&!b(m),"shouldExcludeWallet");return{list:f.filter(x=>!N(x.type,e??"",g)),error:S,handleClick:C,disconnectConnectingWallets:k,disconnectWallet:v}}i(Jt,"useWalletList");import{i18n as Kc}from"@lingui/core";import{Divider as bS,getCategoriesCount as ES,SelectableCategoryList as IS,styled as jc,Typography as AS,Wallet as NS,WalletState as Xc}from"@rango-dev/ui";import nt,{useState as jo}from"react";import{useManager as jy}from"@rango-dev/queue-manager-react";import{BottomLogo as Yy,Divider as Pc,Header as Zy}from"@rango-dev/ui";import we,{useEffect as Ea,useRef as _c,useState as Jy}from"react";import{useRef as Gh}from"react";function lr(){return window.self!==window.top}i(lr,"isAppLoadedIntoIframe");function ia(){let t=Gh(null),{iframe:e}=h(),o=lr()&&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(ia,"useIframe");import{useNavigate as Vh}from"react-router-dom";function tt(){let t=Vh();return()=>t(-1)}i(tt,"useNavigateBack");import{createTheme as ma,darkTheme as ay,lightTheme as sy}from"@rango-dev/ui";import{useEffect as ly,useState as py}from"react";import{theme as ry,darkColors as iy}from"@rango-dev/ui";import ca from"react";function Kh(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Kh,"expandShortHexColor");function Xh(t){return/[0-9]+$/.test(t)}i(Xh,"isOverridingColor");function jh(t,e){return t.padStart(e,"0")}i(jh,"pad");function aa(t){let e=Math.min(Math.max(Math.round(t),0),255);return jh(e.toString(16),2)}i(aa,"intToHex");function Yh(t){return`#${aa(t.red)}${aa(t.green)}${aa(t.blue)}`}i(Yh,"rgbToHex");function Zh(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(Zh,"hexToRGB");function Jh(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Jh,"generateShade");function Rh(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(Rh,"generateTint");function ey(t){return pc(t,Jh)}i(ey,"calculateShades");function ty(t){return pc(t,Rh)}i(ty,"calculateTints");function pc(t,e){let o=Zh(t),n=[];for(let r=1;r<9;r++)n.push(Yh(e(o,r)));return n}i(pc,"calculateColors");function sa(t,e,o){let a=ty(t).reverse().concat(t),s=ey(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let g=100+(o?u-1-c:c)*50;p[`${e}${g}`]=l[c]}return p}i(sa,"createTintsAndShades");function la(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)&&!Xh(r)){let p=Kh(a);Object.assign(n,sa(p,r,s))}}return{...n,...e}}i(la,"expandToGenerateThemeColors");var cc=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),oy=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=cc(o%52)+e;return cc(o%52)+e},"toAlphabeticName"),ny=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),pa=i(t=>oy(ny(5381,JSON.stringify(t))>>>0),"toHash");function ua(t){let e=ry.colors,o={...e,...iy},n,r;if(t?.light){let s={colors:la(e,t.light)};n={id:`${Wi}-light-${pa(s)}`,tokens:s}}if(t?.dark){let s={colors:la(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Wi}-dark-${pa(s)}`,tokens:s}}return{light:n,dark:r}}i(ua,"customizedThemeTokens");function uc(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ca.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ca.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ca.cloneElement(e,{key:l}))}}),o}i(uc,"joinList");function mc(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(mc,"doesWindowPreferDarkColorScheme");function pr(t){let{colors:e,fontFamily:o=Sl,borderRadius:n=Hl,secondaryBorderRadius:r=Gl}=t,[a,s]=py(mc()?"dark":"light"),{theme:l}=h(),{dark:p,light:u}=ua(e),c=ma({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),g=[c.className,sy.className],d=[c.className,ay.className];if(u){let f=ma(u.id,u.tokens);g.push(f.className)}if(p){let f=ma(p.id,p.tokens);d.push(f.className)}return ly(()=>{let f=i(S=>{S.matches?s("dark"):s("light")},"switchThemeListener");return mc()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=g.join(" "),S=d.join(" ");return l==="auto"?a==="dark"?S:f:l==="dark"?S:f},"getActiveTheme")}}i(pr,"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 dc}from"@lingui/core";import{Alert as cy,Button as uy}from"@rango-dev/ui";import fc from"react";function da(t){return fc.createElement(cy,{action:fc.createElement(uy,{onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},dc.t("Activate this tab")),type:"warning",variant:"alarm",title:dc.t("Another tab is open and handles transactions.")})}i(da,"ActivateTabAlert");import{i18n as fa}from"@lingui/core";import{Button as my,Divider as dy,MessageBox as fy}from"@rango-dev/ui";import cr from"react";function ga(t){let{open:e,onClose:o,onConfirm:n}=t;return cr.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},cr.createElement(fy,{title:fa.t("Activate current tab"),type:"warning",description:fa.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.")},cr.createElement(dy,{size:20}),cr.createElement(my,{variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},fa.t("Confirm"))))}i(ga,"ActivateTabModal");import{ChevronLeftIcon as yy}from"@rango-dev/ui";import kc from"react";import{css as gy,darkTheme as gc,IconButton as hy,styled as Rt}from"@rango-dev/ui";var yt=Rt(hy,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${gc} &`]:{backgroundColor:"$neutral"}}}),hc=Rt("div",{position:"absolute",background:"$secondary500",[`.${gc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),bo=Rt("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),yc=Rt("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),Sc=Rt("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Cc=Rt("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Tc=gy({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),ur=Rt("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function ha(t){return kc.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},kc.createElement(yy,{color:"black",size:16}))}i(ha,"BackButton");import{i18n as Sy}from"@lingui/core";import{Button as Cy,Typography as Ty}from"@rango-dev/ui";import ya from"react";function Sa(t){return ya.createElement(bo,null,ya.createElement(Cy,{variant:"ghost",onClick:t.onClick,size:"xsmall"},ya.createElement(Ty,{variant:"label",size:"medium",color:"error500"},Sy.t("Cancel"))))}i(Sa,"CancelButton");import{i18n as ky}from"@lingui/core";import{Image as vy,Tooltip as wy,WalletIcon as xy}from"@rango-dev/ui";import eo from"react";function Ca(t){let{list:e}=Jt({}),o=e.filter(r=>r.state==="connected"),n=o.length?eo.createElement("div",{className:Tc()},o.map(r=>eo.createElement(ur,{key:r.title},eo.createElement(vy,{src:r.image,size:14})))):ky.t("Connect Wallet");return eo.createElement(wy,{container:t.container,side:"bottom",content:n},eo.createElement(yt,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&eo.createElement(hc,null),eo.createElement(xy,{size:18,color:"black"})))}i(Ca,"WalletButton");import{i18n as dr}from"@lingui/core";import{NotificationsIcon as Uy,Popover as Qy,SettingsIcon as zy,Tooltip as fr,TransactionIcon as qy}from"@rango-dev/ui";import Be from"react";import{Notifications as Ay}from"@rango-dev/ui";import Ny from"react";import{useNavigate as Wy}from"react-router-dom";import{create as by}from"zustand";import{persist as Ey,subscribeWithSelector as Iy}from"zustand/middleware";var Ee=Dt(by()(Ey(Iy((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(p=>p.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function Ta(){let t=Wy(),{getNotifications:e,clearNotifications:o}=Ee(),n=e(),r=h().blockchains(),{findToken:a}=h();return Ny.createElement(Ay,{list:n,getBlockchainImage:l=>Al(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${q.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(Ta,"NotificationContent");import{useManager as My}from"@rango-dev/queue-manager-react";import{InProgressIcon as Ly}from"@rango-dev/ui";import vc from"react";var By=i(()=>{let{manager:t}=My();return ot(t).map(({swap:o})=>o).find(o=>o.status==="running")?vc.createElement(Cc,null,vc.createElement(Ly,{color:"info",size:6})):null},"InProgressTransactionBadge"),wc=By;import{EventSeverity as Py}from"@rango-dev/queue-manager-rango-preset";import{Typography as _y}from"@rango-dev/ui";import xc from"react";function bc(){let{getNotifications:t}=Ee(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Py.WARNING);return o?xc.createElement(yc,{isSever:n},xc.createElement(_y,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(bc,"NotificationsBadge");import{RefreshProgressButton as Dy}from"@rango-dev/ui";import ka,{useEffect as $y,useState as Ec}from"react";var Fy=1e3,Ic=60,Oy=100;function mr({onClick:t}){let[e,o]=Ec(0),[n,r]=Ec(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");$y(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Ic&&l()},Fy):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 ka.createElement(yt,{variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ka.createElement(Sc,{onTransitionEnd:()=>r(!1),isRefetched:n},ka.createElement(Dy,{size:22,color:t?"black":"gray",progress:e/Ic*Oy})))}i(mr,"RefreshButton");function to(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=h(),l=Re("notification",s)||r.includes("notifications");return Be.createElement(Be.Fragment,null,!r.includes("refresh")&&Be.createElement(fr,{container:a||P(),side:"top",content:dr.t("Refresh")},Be.createElement(mr,{onClick:e})),!l&&Be.createElement(Qy,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:P(),content:Be.createElement(Ta,null)},Be.createElement("div",null,Be.createElement(fr,{container:P(),side:"top",content:dr.t("Notifications")},Be.createElement(yt,{size:"small",variant:"ghost"},Be.createElement(Uy,{size:18,color:"black"}),Be.createElement(bc,null))))),!r.includes("settings")&&Be.createElement(fr,{container:P(),side:"top",content:dr.t("Settings")},Be.createElement(yt,{size:"small",variant:"ghost",onClick:n},Be.createElement(zy,{size:18,color:"black"}))),!r.includes("history")&&Be.createElement(fr,{container:P(),side:"top",content:dr.t("Transactions History")},Be.createElement(yt,{size:"small",variant:"ghost",onClick:o},Be.createElement(qy,{size:18,color:"black"}),Be.createElement(wc,null))))}i(to,"HeaderButtons");import{i18n as va}from"@lingui/core";import{Divider as Nc,MessageBox as Vy,RefreshIcon as Ky}from"@rango-dev/ui";import Eo from"react";import{Button as Hy,styled as Gy}from"@rango-dev/ui";var Ac=Gy(Hy,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function wa(t){let{open:e,onClose:o}=t;return Eo.createElement(re,{open:e,dismissible:!0,onClose:o,container:P()},Eo.createElement(Vy,{title:va.t("Something went wrong"),type:"error",description:va.t("Something went wrong. Please refresh the app.")},Eo.createElement(Nc,{size:30}),Eo.createElement(Ac,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Eo.createElement(Ky,{size:20,color:"primary"}),Eo.createElement(Nc,{size:4,direction:"horizontal"}),va.t("Refresh"))))}i(wa,"RefreshModal");function xa(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(xa,"onScrollContentAttachStatusToContainer");import{css as Xy,styled as ba}from"@rango-dev/ui";var Wc="700px",gr=Xy({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Mc=ba("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Wc},fixed:{height:Wc}}}}),Lc=ba("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Bc=ba("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 de(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ia(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l}=h(),[p,u]=Jy(!1),c=oe.use.connectedWallets(),{config:{features:g,theme:d}}=h(),{watermark:m}=le(),f=m==="FULL",{activeTheme:S}=pr(d||{}),T=Re("connectWalletButton",g),{isActiveTab:y,tabManagerInitiated:C,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:b}=le(),N=tt(),{manager:x}=jy(),E=ot(x).map(({swap:te})=>te).some(te=>te.status==="running"),A=i(()=>b(jt.forceClaim,E),"onActivateTab"),B=i(()=>{r.onWallet?.()},"onConnectWallet"),z=typeof r.hasBackButton>"u"||r.hasBackButton,I=_c(null),U=_c(null);return Ea(()=>(lr()&&U.current&&e(U.current),()=>{o()}),[]),Ea(()=>(I.current?.addEventListener("scroll",xa),()=>{I.current?.removeEventListener("scroll",xa)}),[]),Ea(()=>{u(l==="failed")},[l]),we.createElement(Mc,{height:s,id:Se.SWAP_BOX_ID,className:`${S()} ${gr()}`,ref:U},we.createElement(Zy,{prefix:we.createElement(we.Fragment,null,z&&we.createElement(ha,{onClick:()=>{N(),r.onBack&&r.onBack()}})),title:r.title,suffix:we.createElement(we.Fragment,null,r.suffix,r.onWallet&&!T&&we.createElement(Ca,{container:P(),onClick:B,isConnected:!!c?.length}),r.onCancel&&we.createElement(Sa,{onClick:r.onCancel}))}),we.createElement(Lc,{ref:I},n),we.createElement(ga,{open:k,onClose:()=>v(!1),onConfirm:A}),we.createElement(Bc,null,we.createElement("div",{className:"footer__content"},C&&!y&&we.createElement("div",{className:"footer__alert"},we.createElement(da,{onActivateTab:A}),we.createElement(Pc,{size:10})),a),we.createElement(Pc,{size:12}),we.createElement("div",{className:`footer__logo ${f?"logo__show":"logo__hidden"}`},we.createElement(Yy,null))),we.createElement(wa,{open:p,onClose:()=>u(!1)}))}i(de,"Layout");import{styled as Ry}from"@rango-dev/ui";var Dc="$20 $20 $10 $20",Ko=Ry("div",{padding:Dc,overflowY:"auto",flexGrow:1});import{styled as eS}from"@rango-dev/ui";var ye=eS("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 No}from"@lingui/core";import{Button as rS,Divider as Oc,Image as iS,MessageBox as aS,Select as sS,TextField as lS}from"@rango-dev/ui";import{namespaces as pS}from"@rango-dev/wallets-shared";import Ge,{useEffect as cS,useState as Uc}from"react";import{keyframes as tS,styled as hr}from"@rango-dev/ui";var RW=hr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Io=hr("div",{position:"relative"}),oS=tS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ao=hr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${oS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),yr=hr("div",{"& img":{borderRadius:"50%"}});import{styled as $c,Typography as nS}from"@rango-dev/ui";var Fc=$c("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ia=$c(nS,{paddingLeft:"$10"}),Aa={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var zc={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Qc(t){let e=t?pS[t].derivationPaths:null;return e?[...e,zc]:[]}i(Qc,"getDerivationPaths");function oo(t){let{onClose:e,onConfirm:o,selectedNamespace:n,image:r,type:a,open:s}=t,[l,p]=Uc(null),[u,c]=Uc("0"),g=l===zc.id,d=Qc(n),m=i(({value:S})=>{let T=d?.find(y=>y.id===S);T&&p(T.id)},"handleDerivationPathItemClick"),f=i(()=>{let S=d.find(T=>T.id===l);if(S)o(S.generateDerivationPath(u));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return cS(()=>{p(Qc(n)[0]?.id||null)},[n]),Ge.createElement(re,{open:s,onClose:e,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Ge.createElement(Oc,{size:20}),Ge.createElement(aS,{type:"info",title:No.t("Select Derivation Path"),description:No.t(`In order to connect to ${a}, you must first select a Derivation Path`),icon:Ge.createElement(Io,null,Ge.createElement(yr,null,Ge.createElement(iS,{src:r,size:45})),Ge.createElement(Ao,null))}),Ge.createElement(Fc,null,Ge.createElement(Ia,{variant:"body",size:"xsmall",color:"$neutral600"},No.t("Choose Derivation Path Template")),Ge.createElement(sS,{value:l||"",options:d.map(S=>({value:S.id,label:S.label})),variant:"filled",handleItemClick:m,styles:{trigger:Aa}}),Ge.createElement(Oc,{size:20}),Ge.createElement(Ia,{variant:"body",size:"xsmall",color:"$neutral600"},g?No.t("Enter Path"):No.t("Enter Index")),Ge.createElement(lS,{type:g?"text":"number",variant:"contained",value:u,onChange:S=>c(S.target.value),style:Aa})),Ge.createElement(rS,{type:"primary",onClick:f,disabled:!d||!l||!u},No.t("Confirm")))}i(oo,"WalletDerivationPathModal");import{Divider as dS}from"@rango-dev/ui";import Wa from"react";import{i18n as Wo}from"@lingui/core";import{Image as uS,MessageBox as Na,WalletState as mS}from"@rango-dev/ui";import no from"react";function qc(t){let{state:e,image:o,error:n}=t;return e===mS.CONNECTED?no.createElement(Na,{type:"success",title:Wo.t("Wallet Connected"),description:Wo.t("Your wallet is connected, you can use it to swap.")}):n?no.createElement(Na,{type:"error",title:Wo.t("Failed to Connect"),description:n||Wo.t("Your wallet is not connected. Please try again.")}):no.createElement(Na,{type:"loading",title:Wo.t("Connecting to your wallet"),description:Wo.t("Click connect in your wallet popup."),icon:no.createElement(Io,null,no.createElement(yr,null,no.createElement(uS,{src:o,size:45})),no.createElement(Ao,null))})}i(qc,"ModalContent");function Xo(t){let{open:e,onClose:o,...n}=t;return Wa.createElement(re,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Wa.createElement(qc,{...n}),Wa.createElement(dS,{direction:"vertical",size:32}))}i(Xo,"WalletModal");import{i18n as Ma}from"@lingui/core";import{Button as gS,Checkbox as hS,Divider as yS,Image as Gc,ListItemButton as SS,MessageBox as CS,Radio as TS,RadioRoot as kS}from"@rango-dev/ui";import{namespaces as Vc}from"@rango-dev/wallets-shared";import Pe,{useMemo as vS,useState as wS}from"react";import{styled as fS}from"@rango-dev/ui";var Hc=fS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});var xS=i((t,e)=>t.find(o=>o.name===e)?.logo,"getBlockchainLogo");function ro(t){let{singleNamespace:e,availableNamespaces:o}=t,[n,r]=wS([]),a=h().blockchains(),s=vS(()=>o?.map(u=>({name:u,logo:xS(a,Vc[u].mainBlockchain),title:Vc[u].title})),[o]),l=i(u=>{r(e?[u]:c=>c.includes(u)?c.filter(g=>g!==u):c.concat(u))},"onSelect"),p=i(u=>e?Pe.createElement(kS,{value:n?.[0]},u):Pe.createElement(Pe.Fragment,null,u),"wrapRadioRoot");return Pe.createElement(re,{open:t.open,onClose:t.onClose,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},Pe.createElement(yS,{size:20}),Pe.createElement(CS,{type:"info",title:Ma.t("Select chain types"),description:Ma.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:Pe.createElement(Io,null,Pe.createElement(ur,null,Pe.createElement(Gc,{src:t.image,size:45})),Pe.createElement(Ao,null))}),Pe.createElement(Hc,null,p(Pe.createElement(Pe.Fragment,null,s?.map(u=>Pe.createElement(SS,{key:u.name,id:u.name,title:u.title,hasDivider:!0,style:{height:60},onClick:()=>l(u.name),start:Pe.createElement(Gc,{src:u.logo,size:22}),end:e?Pe.createElement(TS,{value:u.name}):Pe.createElement(hS,{checked:n.includes(u.name)})}))))),Pe.createElement(gS,{type:"primary",disabled:!n.length,onClick:()=>t.onConfirm(n)},Ma.t("Confirm")))}i(ro,"WalletNamespacesModal");var WS=jc("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),MS=jc(ye,{textAlign:"center"}),Sr=3e3,La=300;function Yc(){let{fetchStatus:t}=h(),[e,o]=jo("ALL"),n=h().blockchains(),{config:r}=h(),[a,s]=jo(!1),[l,p]=jo(null),[u,c]=jo(null),[g,d]=jo(""),m=null,f=le.use.isActiveTab(),{list:S,handleClick:T,error:y,disconnectConnectingWallets:C}=Jt({onBeforeConnect:G=>{m=setTimeout(()=>{s(!0),d(G)},La)},onConnect:()=>{m&&clearTimeout(m),setTimeout(()=>{s(!1)},Sr)}}),k=i(()=>{C(),s(!1)},"handleCloseWalletModal"),v=i(()=>{l&&p({...l,open:!1})},"handleCloseNamespaceModal"),b=i(()=>{u&&c({...u,open:!1})},"handleCloseDerivationPathModal"),N=S.find(G=>G.type===g),x=N?.image||"",w=N?.state||Xc.NOT_INSTALLED,E=Ql(S,n),B=ES(E)!==1,z=zl(S,e),I=i((G,L)=>{In(S,r.multiWallets)||(L.namespaces&&L.state===Xc.DISCONNECTED?p({open:!0,providerType:G,providerImage:L.image,availableNamespaces:L.namespaces,singleNamespace:L.singleNamespace}):T(G))},"handleWalletItemClick"),U=i(G=>{let L=z.find(j=>j.type===l?.providerType);L?.singleNamespace&&L?.needsDerivationPath&&G[0]?c({open:!0,providerType:L.type,providerImage:L.image,namespace:G[0]}):T(l?.providerType,G.map(j=>({namespace:j}))),v()},"handleConfirmNamespaces"),te=i(G=>{G&&u?.namespace&&T(u.providerType,[{namespace:u.namespace,derivationPath:G}]),b()},"handleDerivationPathConfirm");return nt.createElement(de,{header:{title:Kc.t("Connect Wallets")}},nt.createElement(MS,null,B&&nt.createElement(nt.Fragment,null,nt.createElement(IS,{setCategory:o,category:e,blockchains:E,isLoading:t==="loading"}),nt.createElement(bS,{size:24})),nt.createElement(AS,{variant:"title",size:"xmedium",align:"center"},Kc.t("Choose a wallet to connect.")),nt.createElement(WS,null,z.map((G,L)=>{let j=`wallet-${L}-${G.type}`;return nt.createElement(NS,{key:j,...G,container:P(),onClick:ge=>I(ge,G),isLoading:t==="loading",disabled:!f})}),nt.createElement(Xo,{open:!!a,onClose:k,image:x,state:w,error:y}),nt.createElement(ro,{open:!!l?.open,onClose:v,onConfirm:U,image:l?.providerImage,availableNamespaces:l?.availableNamespaces,singleNamespace:l?.singleNamespace}),nt.createElement(oo,{open:!!u?.open,selectedNamespace:u?.namespace,type:u?.providerType,image:u?.providerImage,onClose:b,onConfirm:te}))))}i(Yc,"WalletsPage");import{keyframes as LS,styled as Ba}from"@rango-dev/ui";var Zc=Ba("div",{position:"relative"}),BS=LS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Jc=Ba("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${BS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Rc=Ba("div",{"& img":{borderRadius:"50%"}});var $S=7;function _a(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a,onConnect:s}=t,l=le.use.isActiveTab(),p=oe.use.connectedWallets(),{blockchains:u}=h(),[c,g]=io(""),[d,m]=io(null),[f,S]=io(!1),[T,y]=io(null),[C,k]=io(null),[v,b]=io(null),{suggestAndConnect:N}=Tr(),x=null,{list:w,error:E,handleClick:A,disconnectWallet:B,disconnectConnectingWallets:z}=Jt({chain:e,onBeforeConnect:W=>{x=setTimeout(()=>{g(W)},La)},onConnect:W=>{s?.(W),x&&clearTimeout(x),setTimeout(()=>{g("")},Sr)}}),[I,U]=io(w),te=w.length,G=r&&te-r>0,L=i(async W=>{S(!1),y("in-progress");try{await N(W.walletType,W.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain"),j=i(()=>{C&&k({...C,open:!1})},"handleCloseNamespaceModal"),ge=i(()=>{v&&b({...v,open:!1})},"handleCloseDerivationPathModal"),Y=i(W=>{k({open:!0,providerType:W.type,providerImage:W.image,availableNamespaces:W.namespaces,singleNamespace:W.singleNamespace})},"handleOpenNamespacesModal"),ie=i(W=>{let pe=I.find(ce=>ce.type===C?.providerType);pe?.singleNamespace&&pe?.needsDerivationPath&&W[0]?b({open:!0,providerType:pe.type,providerImage:pe.image,namespace:W[0]}):A(C?.providerType,W.map(ce=>({namespace:ce}))),j()},"handleConfirmNamespaces"),he=i(W=>{W&&v?.namespace&&A(v.providerType,[{namespace:v.namespace,derivationPath:W}]),ge()},"handleDerivationPathConfirm");ou(()=>{U(W=>{let pe=w.findIndex(ce=>o(ce.type,e));return G&&pe>1?[w[pe]].concat(w.filter((ce,De)=>De!==pe)):W.map(ce=>w.find(De=>De.type===ce.type)??ce)})},[JSON.stringify(w)]);let Ce=document.getElementById(Se.SWAP_BOX_ID);ou(()=>{let W=null;return(T==="completed"||T==="rejected")&&(W=setTimeout(()=>y(null),Sr)),()=>{W&&clearTimeout(W)}},[T]);let D=i(()=>{z(),g("")},"handleCloseWalletModal");return fe.createElement(fe.Fragment,null,I.slice(0,r).map(W=>{let pe=Fl({connectedWallets:p,walletType:W.type,chain:e}),ce=pe?Dn(pe,$S):"",De=Pn(u(),e),_=!p.find(se=>se.walletType===W.type&&se.chain===e),Q=De&&_&&W.state===tu.CONNECTED,K=Q?pt.t({id:"Add {chain} chain",values:{chain:e}}):ce,ae=i(async()=>{W.state===tu.DISCONNECTED?W.namespaces?Y(W):A(W.type):W.namespaces&&!ce?(await B(W.type),Y(W)):Q?(m({walletType:W.type,chain:e,address:pe??""}),S(!0)):n({walletType:W.type,chain:e,address:pe??""})},"onClick"),ee=d?.chain?An(d.chain,u()):void 0;return fe.createElement(fe.Fragment,{key:`${W.title}_${ee}`},fe.createElement(Xo,{open:c===W.type,onClose:D,image:W.image,state:W.state,error:E}),fe.createElement(ro,{open:!!C?.open,onClose:j,onConfirm:ie,image:C?.providerImage,availableNamespaces:C?.availableNamespaces,singleNamespace:C?.singleNamespace}),fe.createElement(oo,{open:!!v?.open,selectedNamespace:v?.namespace,type:v?.providerType,image:v?.providerImage,onClose:ge,onConfirm:he}),!!d&&fe.createElement(re,{open:!!d&&f,container:Ce,onClose:()=>{m(null)}},fe.createElement(Cr,{title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),type:"warning",description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}})},fe.createElement(Pa,{size:18}),fe.createElement(Pa,{size:32}),fe.createElement(PS,{onClick:L.bind(null,d),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},pt.t("Confirm")))),T&&fe.createElement(re,{open:!!T,onClose:y.bind(null,null),container:Ce},T==="in-progress"&&fe.createElement(Cr,{type:"loading",title:pt.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ee}}),description:pt.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ee}}),icon:fe.createElement(Zc,null,fe.createElement(Rc,null,fe.createElement(_S,{src:W.image,size:45})),fe.createElement(Jc,null))}),T==="completed"&&fe.createElement(Cr,{type:"success",title:pt.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ee}}),description:pt.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ee}})}),T==="rejected"&&fe.createElement(Cr,{type:"error",title:pt.t("Request Rejected"),description:pt.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ee}})}),fe.createElement(Pa,{direction:"vertical",size:32})),fe.createElement(DS,{key:W.type,description:K,onClick:ae,selected:o(W.type,e),disabled:!l,...W}))}),G&&fe.createElement(oc,{selected:!1,onClick:a},fe.createElement(eu,{variant:"label",size:"medium"},pt.t("Show more wallets"),fe.createElement(eu,{variant:"label",size:"medium",color:"$primary"},"\xA0+",te-(r??0)))))}i(_a,"WalletList");var HS=2;function au(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=qS(),l=h().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:g,customDestination:d,setCustomDestination:m}=V(),{connectedWallets:f,selectWallets:S}=oe(),{config:T}=h(),[y,C]=so(""),[k,v]=so([]),[b,N]=so(""),[x,w]=so(null),[E,A]=so(!!d),B=zS(()=>Kt({filter:"all",quote:p}),[p]),z=Kt({filter:"required",quote:p}),I=l.find(_=>_.name===p?.swaps[p?.swaps.length-1].to.blockchain),U=i(_=>z.includes(_),"isWalletRequiredFor"),te=QS(()=>f.filter(_=>_.selected&&B.includes(_.chain)),[f,B]),[G,L]=so(te()),[j,ge]=so([]),Y=i((_,Q)=>ge(K=>K.concat({blockchain:_,walletType:Q})),"addNextSelectedWallets"),ie=k.length>0,he=i((_,Q)=>!!G.find(K=>K.walletType===_&&K.chain===Q&&K.selected&&(U(Q)||!U(Q)&&!d)),"isSelected"),Ce=i((_,Q,K)=>{let ae=!1;return _.map(ee=>{if(ee.chain===Q){let se=ee.selected;return!ae&&K?(ae=!0,se=!0):K||(se=!1),{...ee,selected:se}}return ee})},"updateSelectableWallets"),D=i(_=>{A(_),_?U(I?.name??"")||L(Q=>Ce(Q,I?.name||"",!1)):(m(""),L(Q=>Ce(Q,I?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),W=i(_=>{if(y&&C(""),he(_.walletType,_.chain))return;let K=f.find(ae=>ae.walletType===_.walletType&&ae.chain===_.chain);K&&(n(),_.chain===I?.name&&E&&!U(I.name)&&(A(!1),m(null)),L(ae=>ae.filter(ee=>ee.chain!==_.chain).concat({...K,selected:!0})))},"onChange"),pe=i(()=>{let _=G.filter(Q=>Q.selected);S(_),u(_),g(!0),o()},"onConfirmBalance"),ce=i(async()=>{v([]),N(""),w(null);let _=await r?.({selectedWallets:G.filter(K=>K.selected),customDestination:d}),Q=_.warnings;Q?.balance?.messages&&v(Q.balance.messages),Q?.quoteUpdate&&w(Q.quoteUpdate),_.error&&N(hp(_.error)),!_.error&&!Q?.balance?.messages.length?pe():v(Q?.balance?.messages??[])},"onConfirmWallets");iu(()=>{L(_=>{let Q=[];return _.forEach(K=>{!f.some(ee=>ee.chain===K.chain&&ee.walletType===K.walletType&&ee.address===K.address)||Q.push(K)}),Q=Q.concat(f.filter(K=>!!!Q.find(ee=>ee.chain===K.chain)&&K.selected&&B.includes(K.chain))),Q})},[f,B]),iu(()=>{let _=[];j.length>0&&(j.forEach(Q=>{let K=f.find(ae=>ae.chain===Q.blockchain&&ae.walletType===Q.walletType);K?W(K):_.push(Q)}),ge(_))},[f,j]);let De=document.getElementById(Se.SWAP_BOX_ID);return J.createElement(re,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!y,container:De,...!y&&{footer:J.createElement(sc,null,J.createElement(ru,{loading:a,disabled:Pp(a,E,d,p,G,I),onClick:ce,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ao.t("Confirm")))},...y&&{styles:{container:{padding:"$0"}},header:J.createElement(nc,null,J.createElement(rc,{variant:"ghost",onClick:C.bind(null,"")},J.createElement(OS,{size:16})),J.createElement(Da,{variant:"headline",size:"small"},ao.t({id:"Your {blockchainName} wallets",values:{blockchainName:Je(y,l)}})))},anchor:"center"},J.createElement(re,{open:ie,onClose:v.bind(null,[]),container:De},J.createElement(US,{title:ao.t("Insufficient account balance"),type:"error",description:J.createElement(FS,{messages:k??[]})},J.createElement(ru,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:pe},ao.t("Proceed anyway")))),y&&J.createElement(ic,null,J.createElement("div",{className:ac()},J.createElement(_a,{chain:y,isSelected:he,selectWallet:W,onShowMore:()=>C(y),onConnect:_=>{Y(y,_)}}))),!y&&J.createElement(J.Fragment,null,b&&J.createElement(J.Fragment,null,J.createElement(nu,{variant:"alarm",type:"error",title:ao.t(b)}),J.createElement(kr,{size:12})),x&&J.createElement(J.Fragment,null,J.createElement(nu,{variant:"alarm",type:"warning",title:or(x)}),J.createElement(kr,{size:12})),J.createElement(lc,null,B.map((_,Q)=>{let K=l.find(be=>be.name===_),ae=`wallet-${Q}`,ee=Q===B.length-1,se=ee&&I&&T?.customDestination!==!1;return J.createElement("div",{key:ae},J.createElement(ec,null,J.createElement(Da,{variant:"title",size:"xmedium"},ao.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),J.createElement(Da,{variant:"label",color:"$neutral700",size:"medium"},ao.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),J.createElement(kr,{size:24}),J.createElement(tc,null,J.createElement(_a,{chain:_,isSelected:he,selectWallet:W,limit:HS,onShowMore:()=>C(K?.name??""),onConnect:be=>{Y(_,be)}})),!ee&&J.createElement(kr,{size:32}),se&&J.createElement(Rp,{blockchain:I,open:E,handleOpenChange:D}))}))))}i(au,"ConfirmWalletsModal");import{i18n as pC}from"@lingui/core";import{Alert as cC,Button as uC,InfoIcon as mC}from"@rango-dev/ui";import je from"react";import{Alert as KS,Button as XS,Divider as Oa,NoRouteIcon as jS,RefreshIcon as YS,Typography as du}from"@rango-dev/ui";import Xe from"react";import{i18n as su}from"@lingui/core";var GS=24,VS=60;function lu(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ne().genericServerError,action:{onClick:n,title:su.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ne().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:su.t("Reset")}},description:ne().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ne().noResultError.description}}i(lu,"makeInfo");var $a=(o=>(o[o.small=GS]="small",o[o.large=VS]="large",o))($a||{}),Fa=(o=>(o.small="small",o.large="medium",o))(Fa||{});import{styled as vr}from"@rango-dev/ui";var pu=vr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),cu=vr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),uu=vr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),mu=vr("div",{padding:"$6 $0"});function Yo(t){let{fetch:e,error:o,size:n="small"}=t,r=h().getDisabledLiquiditySources(),a=h().toggleAllLiquiditySources,s=h().swappers(),l=lu(o,r,()=>a(s,!0),e);return Xe.createElement(pu,null,Xe.createElement(jS,{size:$a[n],color:"gray"}),Xe.createElement(Oa,{size:4}),Xe.createElement(du,{variant:"title",size:Fa[n]},ne().noResultError.title),n==="large"&&Xe.createElement(Oa,{size:4}),!!l.description&&Xe.createElement(cu,{size:n},Xe.createElement(du,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Xe.createElement(Oa,{size:n==="large"?"24":"4"}),!!l.alert&&Xe.createElement(uu,{size:n},Xe.createElement(KS,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Xe.createElement(XS,{size:"xsmall",type:l.alert.type,prefix:Xe.createElement(mu,null,Xe.createElement(YS,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Yo,"NoResult");import{i18n as Zo}from"@lingui/core";import{Button as JS,Divider as RS,MessageBox as eC,Typography as tC,WarningIcon as oC}from"@rango-dev/ui";import Et from"react";import{Typography as yu}from"@rango-dev/ui";import Qa from"react";import{darkTheme as ZS,styled as wr}from"@rango-dev/ui";var fu=wr("div",{width:"100%"}),Ua=wr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),gu=wr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${ZS} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),hu=wr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Su(t){let{title:e,value:o,valueColor:n}=t;return Qa.createElement(gu,null,Qa.createElement(yu,{size:"medium",variant:"label",className:"_title"},e),Qa.createElement(yu,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Su,"QuoteErrorsModalItem");function Cu(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Zo.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:Zo.t("Gas cost"),value:M(r.totalFee,2,2)},{title:Zo.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:Zo.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Et.createElement(re,{footer:Et.createElement(JS,{type:"primary",size:"large",prefix:Et.createElement(oC,null),fullWidth:!0,disabled:a,onClick:n},ne().highValueLossError.confirmMessage),open:e,onClose:o,container:P()},Et.createElement(eC,{type:s,title:ne().highValueLossError.impactTitle,description:ne().highValueLossError.description}),Et.createElement(Ua,null,Et.createElement(RS,{size:"4"}),Et.createElement(tC,{size:"small",variant:"title"},Zo.t("Details")),Et.createElement(Ua,null,l.map((p,u)=>Et.createElement(Su,{key:u,...p})))))}i(Cu,"HighValueLossWarningModal");import{i18n as za}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=za.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(xt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ne().highValueLossError.title),t.type===1&&(o.title=ne().unknownPriceError.title),t.type===2&&(o.title=za.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=za.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Tu,"makeAlerts");import{i18n as Mo}from"@lingui/core";import{Button as ku,Divider as vu,MessageBox as nC,Typography as rC}from"@rango-dev/ui";import lo from"react";import{useNavigate as iC}from"react-router-dom";function wu(t){let{customSlippage:e,slippage:o}=h(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=iC(),u=e??o;return lo.createElement(re,{anchor:"bottom",open:n,prefix:lo.createElement(ku,{size:"small",variant:"ghost",onClick:()=>p("../"+q.settings)},lo.createElement(rC,{variant:"label",size:"medium",color:"$neutral900"},Mo.t("Change settings"))),container:P(),onClose:r},lo.createElement(nC,{type:"warning",title:s.type===3?Mo.t("High slippage"):Mo.t("Low slippage"),description:s.type===3?Mo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Mo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},lo.createElement(vu,{size:18}),lo.createElement(vu,{size:32}),lo.createElement(ku,{size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Mo.t("Confirm anyway"))))}i(wu,"SlippageWarningModal");import{Button as aC,MessageBox as sC,WarningIcon as lC}from"@rango-dev/ui";import xr from"react";function xu(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return xr.createElement(re,{footer:xr.createElement(aC,{type:"primary",size:"large",prefix:xr.createElement(lC,null),fullWidth:!0,disabled:r,onClick:n},ne().unknownPriceError.confirmMessage),open:e,onClose:o,container:P()},xr.createElement(sC,{type:"warning",title:ne().unknownPriceError.impactTitle,description:ne().unknownPriceError.description}))}i(xu,"UnknownPriceWarningModal");function Jo(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,g={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},d=o?.type===0||o?.type===1,m=Tu(e,o?.type===3||o?.type===4?o:null);return m&&!n&&(m.action=null),je.createElement(je.Fragment,null,d&&je.createElement(Yo,{error:o,fetch:s}),!!m&&je.createElement(fu,null,je.createElement(cC,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:je.createElement(hu,{onClick:l},je.createElement(mC,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:je.createElement(uC,{size:"xxsmall",type:m.alertType,onClick:c},pC.t("Change"))}})),e&&je.createElement(je.Fragment,null,e.type===0&&je.createElement(Cu,{...g,warning:e}),(e.type===3||e.type===2)&&je.createElement(wu,{...g,warning:e}),e.type===1&&je.createElement(xu,{...g,warning:e})))}i(Jo,"QuoteWarningsAndErrors");import qC from"bignumber.js";import Fr from"react";import{i18n as po}from"@lingui/core";import{Alert as WC,Divider as Bo,FullExpandedQuote as MC,InfoIcon as LC,NumericTooltip as nm,QuoteTag as BC,StepDetails as PC,TokenAmount as _C,Typography as Po}from"@rango-dev/ui";import Ya from"bignumber.js";import $,{useRef as DC,useState as $C}from"react";import{styled as qa}from"@rango-dev/ui";var Ha=qa("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),bu=qa("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Eu=qa("div",{width:"100%",display:"flex"});import*as br from"@radix-ui/react-collapsible";import{Button as dC,css as Ro,darkTheme as Ie,Image as Iu,styled as ze,Typography as fC}from"@rango-dev/ui";var gC=300,Au=ze(br.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ie} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Nu=Ro({padding:"$10 $15"}),Wu=ze(dC,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Ie} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Ie} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ie} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Mu=ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Ie} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ie} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ie} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ie} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ie} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ie} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ie} &`]:{backgroundColor:"$neutral400"}}}}]}),Lu=Ro({width:"100%",padding:"$15 $15 $10 $15"}),Bu=Ro({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Lo=Ro({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Pu=Ro({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ie} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),_u=ze(br.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:{[`& ${Iu}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Iu}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ie} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ie} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Du=ze("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),$u=ze(rr,{width:"100%",background:"inherit"}),Ga=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${gC}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),yP=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Fu=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ie} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Ou=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Va=ze(fC,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Uu=ze("div",{display:"flex",flexWrap:"wrap"}),Ka=ze("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Qu=ze("div",{display:"flex"}),Er=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ie} &`]:{borderTopColor:"$neutral800"}});import{i18n as St}from"@lingui/core";import{ChevronDownIcon as yC,CloseIcon as SC,Divider as Nr,IconButton as CC,NumericTooltip as TC,QuoteCost as kC,Typography as ct}from"@rango-dev/ui";import R,{useState as Gu}from"react";import{css as hC,styled as Ir}from"@rango-dev/ui";var Ar=Ir("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Xa=Ir("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),zu=Ir("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),qu=Ir("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Hu=hC({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var vC=i(t=>t.fee.isZero()?null:R.createElement(Ar,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 Vu(t){let[e,o]=Gu(!1),[n,r]=Gu(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,g=s?.swaps??[],d=P(),m=vp(g);return R.createElement(R.Fragment,null,R.createElement(kC,{onClickFee:c?f=>{f.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?St.t("View more info"):void 0,tooltipContainer:d}),R.createElement(re,{container:d,open:e,header:R.createElement(qu,null,R.createElement(ct,{variant:"title",size:"medium"},St.t("Gas & Fee Explanation")),R.createElement(CC,{onClick:()=>o(!1),variant:"ghost"},R.createElement(SC,{color:"gray",size:14}))),onClose:()=>{o(!1)}},R.createElement(zu,null,R.createElement(ct,{variant:"title",size:"small"},St.t("Details")),R.createElement(Nr,{size:10}),Object.entries(m.payable).flatMap(([f,S])=>S.map((T,y)=>{let C=`payable-fee-${y}`,k=Gi(T);return R.createElement(Ar,{key:C},R.createElement(ct,{variant:"label",size:"medium",color:"neutral600"},Qi(f,St.t)),R.createElement(TC,{content:T.amount,container:d},R.createElement(ct,{variant:"label",size:"medium"},M(T.amount,2,2)," ",T.asset.symbol," ($",M(k,4,4),")")))})),R.createElement(Ar,{className:"total_payable_fee"},R.createElement(ct,{variant:"label",size:"medium"},St.t("Total Payable Fee")),R.createElement(ct,{variant:"label",size:"medium"},"$",M(l,4,4))),R.createElement(Xa,null),Object.keys(m.nonePayable).length&&R.createElement(sr,{triggerAnchor:"bottom",onClickTrigger:()=>r(f=>!f),trigger:R.createElement("div",{className:Hu()},R.createElement(ct,{size:"small",variant:"body",color:"neutral700"},n?St.t("Hide non-payable fees"):St.t("Show non-payable fees")),R.createElement(Nr,{size:4,direction:"horizontal"}),R.createElement(ir,{orientation:n?"up":"down"},R.createElement(yC,{size:12,color:"gray"}))),open:n},R.createElement(ct,{size:"small",variant:"title"},St.t("Description")),R.createElement(Nr,{size:4}),R.createElement(ct,{size:"small",variant:"body",color:"neutral700"},St.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),R.createElement(Nr,{size:10}),Object.entries(m.nonePayable).map(([f,S],T)=>{let y=kp(S),C=Qi(f,St.t),k=`non-payable-fee-${T}`;return R.createElement(vC,{key:k,fee:y,label:C})}),R.createElement(Xa,null)))))}i(Vu,"QuoteCostDetails");import{i18n as ju}from"@lingui/core";import{TokenAmount as Yu}from"@rango-dev/ui";import Wr from"react";import{css as wC,styled as xC}from"@rango-dev/ui";var Ku=xC("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Xu=wC({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function en(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Wr.createElement(Ku,null,Wr.createElement(Yu,{direction:"horizontal",label:ju.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}}),Wr.createElement("div",{className:Xu()}),Wr.createElement(Yu,{direction:"horizontal",tooltipContainer:P(),label:ju.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(en,"QuoteSummary");import{i18n as tm}from"@lingui/core";import{ChevronDownIcon as IC,ChevronRightIcon as AC,Divider as ja,Image as NC,Tooltip as _r,Typography as Lr}from"@rango-dev/ui";import F from"react";import{useLayoutEffect as bC,useState as tn}from"react";var Zu=480,Ju=768,Ru=1024,em=1200,EC=i(()=>{let[t,e]=tn(!1),[o,n]=tn(!1),[r,a]=tn(!1),[s,l]=tn(!1),[p,u]=tn(!1),c=i(()=>{e(window.innerWidth<=Zu),n(window.innerWidth>Zu&&window.innerWidth<=Ju),a(window.innerWidth>Ju&&window.innerWidth<=Ru),l(window.innerWidth>Ru&&window.innerWidth<=em),u(window.innerWidth>em)},"handleResize");return bC(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),Mr=EC;var Br=4,Pr=6,on=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||P();return F.createElement(_r,{container:l,side:"bottom",sideOffset:4,open:r,content:e},F.createElement(Du,{className:n,state:a},F.createElement(NC,{src:o,size:16})))},"ImageComponent");function om(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||P(),u=r.length,c=Op(r),{isTablet:g,isMobile:d}=Mr();return F.createElement(_u,{listItem:s==="list-item",ref:m=>e.current=m,selected:o,onClick:m=>{m.stopPropagation(),n(f=>!f)}},F.createElement("div",{className:Lo()},F.createElement(Lr,{variant:"body",size:"xsmall"},tm.t("Via:")),F.createElement(ja,{direction:"horizontal",size:4}),r.map((m,f)=>{let S=`item-${f}`,T=F.createElement(Ga,null,F.createElement(AC,{size:12,color:"black"}));return d||g?F.createElement(F.Fragment,{key:S},F.createElement(on,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&F.createElement(F.Fragment,null,T)):F.createElement(F.Fragment,{key:S},u<=Br||u>Br&&f<Br-1?F.createElement(F.Fragment,null,F.createElement(on,{content:m.swapper.displayName,src:m.swapper.image,state:m.state,container:l}),f!==u-1&&F.createElement(F.Fragment,null,T)):f===Br-1&&F.createElement(_r,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Lo()},T,r.map((y,C)=>{let k=`image-${C}`;return C>=f&&F.createElement(F.Fragment,{key:k},F.createElement(on,{content:y.swapper.displayName,src:y.swapper.image,state:y.state,open:!1}),C!==u-1&&F.createElement(F.Fragment,null,T))}))},F.createElement(Ka,{state:r.find((y,C)=>C>=f&&(y.state==="error"||y.state==="warning"))?.state},F.createElement(Lr,{size:"xsmall",variant:"body"},"+",u-f))))})),F.createElement("div",{className:Lo()},F.createElement("div",{className:"blockchains_section"},F.createElement("div",{className:Lo()},F.createElement(Lr,{variant:"body",size:"xsmall"},tm.t("Chains:")),F.createElement(ja,{direction:"horizontal",size:4}),c.map((m,f)=>F.createElement(F.Fragment,{key:m.displayName},c.length<=Pr||c.length>Pr&&f<Pr-1?F.createElement(_r,{container:p,side:"bottom",content:m.displayName,sideOffset:4},F.createElement(on,{content:"",src:m.image,open:!1,className:f!==0?"blockchainImage":""})):f===Pr-1&&F.createElement(_r,{container:p,side:"bottom",align:"end",sideOffset:4,content:F.createElement("div",{className:Lo()},c.map((S,T)=>T>=f&&F.createElement(on,{key:S.displayName,content:"",src:S.image,open:!1,className:T>f?"blockchainImage":"",container:l})))},F.createElement(Ka,{className:"blockchainImage"},F.createElement(Lr,{size:"xsmall",variant:"body"},"+",c.length-f))))),F.createElement(ja,{direction:"horizontal",size:32}))),F.createElement(Ga,{orientation:a?"up":"down"},F.createElement(IC,{size:12,color:"black"}))))}i(om,"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:g=!1,container:d}=t,m=h().blockchains(),{findToken:f}=h(),S=h().swappers(),{customSlippage:T,slippage:y}=h(),C=T||y,[k,v]=$C(t.expanded),b=DC(null),N=M(o.value,6,6),x=M(n.value,6,6),w=n.usdValue?M(n.usdValue,4,4):"",E=et(o.usdValue,n.usdValue??null),A=M(E,2,2),B=xt(E??0),z=i((he,Ce)=>he.map((D,W)=>{let pe,ce=r?.type===3&&r.swap.swapperId===D.swapperId,De=r?.type===4&&r.recommendedSlippages?.has(W),_=a?.type===2&&a.recommendedSlippages?.has(W),Q=ce||De,K=_;Q?pe="error":K&&(pe="warning");let ae=Q?po.t("Slippage Error"):po.t("Slippage Warning");return ce&&(ae=po.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:Je(D.from.blockchain,m)??"",image:D.from.blockchainLogo},price:{value:W===0&&!Ce?M(o.value,6,6):M(D.fromAmount,6,6),usdValue:M((D.from.usdPrice??0)*parseFloat(D.fromAmount),4,4),realValue:W===0?o.value:D.fromAmount,realUsdValue:new Ya(D.from.usdPrice??0).multipliedBy(D.fromAmount).toString()}},to:{token:{displayName:D.to.symbol,image:D.to.logo},chain:{displayName:Je(D.to.blockchain,m)||"",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 Ya(D.to.usdPrice??0).multipliedBy(D.toAmount).toString()}},state:pe,alerts:Q||K?$.createElement(bu,{dense:g},$.createElement(WC,{variant:"alarm",type:Q?"error":"warning",title:ae,footer:$.createElement(Eu,null,ce&&$.createElement("div",null,$.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(Bo,{direction:"vertical",size:2}),$.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Yours: {amount} {symbol}",values:{amount:M(D.fromAmount,6,6),symbol:D?.from.symbol}}))),(De||_)&&!ce&&$.createElement("div",null,$.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),$.createElement(Bo,{direction:"vertical",size:2}),$.createElement(Po,{size:"xsmall",variant:"body",color:"neutral900"},po.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:zo(D.estimatedTimeInSeconds),fee:M(Hi(D,f),2,2),internalSwaps:D.internalSwaps?z(D.internalSwaps):void 0}}),"getQuoteSteps"),I=z(e?.swaps??[]),U=I.length,te=d||P(),G=Qp(t.quote.tags||[]),L=!!c,j=zo(Nn(e?.swaps)),ge=Kn(e?.swaps??[],f),Y=M(ge,2,2),ie=ge.gte(new Ya(gp));return g?$.createElement(MC,{selected:l,fee:Y,time:j,tooltipContainer:Uo(),steps:I,tags:G,feeWarning:ie,percentageChange:A,warningLevel:B,outputPrice:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue}}):$.createElement(Mu,{selected:l,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:Lu()},!p&&G.length?$.createElement($.Fragment,null,$.createElement(Qu,null,G.map((he,Ce)=>{let D=`${he.value}_${Ce}`;return $.createElement($.Fragment,{key:D},$.createElement(BC,{label:he.label,value:he.value}),$.createElement(Bo,{size:4,direction:"horizontal"}))})),$.createElement(Er,null),!L&&$.createElement(Bo,{size:4})):null,$.createElement("div",{id:"portal-root",className:Bu()},$.createElement(Vu,{quote:e,time:j,fee:Y,feeWarning:ie,showModalFee:u,steps:U}),L&&$.createElement(Wu,{onClick:he=>{he.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},$.createElement(Po,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},po.t("See All Routes")))),s==="basic"&&$.createElement("div",{className:Pu()},$.createElement(Ou,null,$.createElement(LC,{size:12,color:"gray"})),$.createElement(Uu,null,$.createElement(Va,{size:"small",variant:"body"},`${N} ${I[0].from.token.displayName} = `),$.createElement(nm,{content:n.value,container:te,open:n.value?void 0:!1},$.createElement(Va,{size:"small",variant:"body"},"\xA0",`${x} ${I[I.length-1].to.token.displayName}`))),$.createElement(nm,{content:n.usdValue,container:te},$.createElement(Bo,{size:2,direction:"horizontal"}),$.createElement(Po,{color:"$neutral600",size:"xsmall",variant:"body"},`($${w})`))),s==="list-item"&&$.createElement(_C,{tooltipContainer:te,type:"output",direction:"vertical",price:{value:x,usdValue:w,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:I[U-1].to.token.displayName,image:I[U-1].to.token.image},chain:{image:I[U-1].to.chain.image},percentageChange:A,warningLevel:B}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(en,{from:I[0].from,to:I[U-1].to,percentageChange:A,warningLevel:B}),$.createElement(Bo,{size:4}))),$.createElement(Au,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(om,{type:s,quoteRef:b,selected:l,setExpanded:v,container:te,expanded:k,steps:I}),$.createElement($u,{open:k},$.createElement(Fu,null),$.createElement("div",{className:Nu()},I.map((he,Ce)=>{let D=`item-${Ce}`;return $.createElement(PC,{type:"quote-details",key:D,tooltipContainer:te,step:he,hasSeparator:Ce!==I.length-1,state:he.state})})))))}i(Za,"Quote");import{Divider as QC,Skeleton as zC}from"@rango-dev/ui";import At from"react";import{darkTheme as FC,styled as Dr}from"@rango-dev/ui";var rm=Dr("div",{$$color:"$colors$neutral100",[`.${FC} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),im=Dr("div",{paddingTop:"$2"}),am=Dr("div",{paddingLeft:"$8"}),sm=Dr("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as ym,Divider as ut,Skeleton as Ye}from"@rango-dev/ui";import H from"react";import{css as OC,styled as It}from"@rango-dev/ui";var Ja=It("div",{display:"flex"}),lm=It("div",{padding:"$10 $0 $20"}),pm=It("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),cm=It("div",{display:"flex",justifyContent:"start",alignItems:"center"}),um=It("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),mm=It("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),dm=It("div",{width:"65%",display:"flex",justifyContent:"start"}),fm=It("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),gm=It("div",{padding:"$15 $0 $15 $0"}),hm=OC({display:"flex",justifyContent:"space-between",alignItems:"center"});function nn(t){let{type:e,tagHidden:o=!0}=t,n=H.createElement(um,null,H.createElement(dm,null,H.createElement(ym,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),H.createElement(ut,{size:8,direction:"horizontal"}),H.createElement(fm,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(Ja,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(Er,null),!r&&H.createElement(ut,{size:4})),H.createElement("div",{className:hm()},H.createElement(Ja,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(lm,null,H.createElement(Ye,{height:15,width:148,variant:"rounded"})),e==="list-item"&&H.createElement(pm,null,H.createElement(cm,null,H.createElement(ym,{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(gm,null,n,H.createElement(mm,null),n),H.createElement(ut,{size:12})))}i(nn,"QuoteSummarySkeleton");import{ChainToken as vm,Divider as es,NextIcon as UC,Skeleton as $r}from"@rango-dev/ui";import Ae from"react";import{styled as rn}from"@rango-dev/ui";var Sm=rn("div",{display:"flex",alignItems:"start"}),Cm=rn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ra=rn("div",{display:"flex",alignItems:"center",flexGrow:1}),Tm=rn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),km=rn("div",{display:"flex",alignItems:"center"});function Ct(t){let{separator:e=!0}=t;return Ae.createElement(Ae.Fragment,null,Ae.createElement(km,null,Ae.createElement($r,{height:22,width:22,variant:"circular"}),Ae.createElement(es,{direction:"horizontal",size:8}),Ae.createElement($r,{height:15,width:148,variant:"rounded"})),Ae.createElement(Sm,null,Ae.createElement(sm,{hideSeparator:!e}),Ae.createElement(Cm,{extraSpace:e},Ae.createElement(Ra,null,Ae.createElement(vm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ae.createElement(es,{direction:"horizontal",size:8}),Ae.createElement($r,{height:12,variant:"rounded"})),Ae.createElement(Tm,null,Ae.createElement(UC,{color:"gray",size:16})),Ae.createElement(Ra,null,Ae.createElement(vm,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ae.createElement(es,{direction:"horizontal",size:8}),Ae.createElement($r,{height:12,variant:"rounded"})))))}i(Ct,"StepSkeleton");function an(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return At.createElement(rm,{expanded:o,rounded:e!=="basic"},At.createElement(nn,{type:e,tagHidden:n}),At.createElement(im,null,At.createElement(zC,{height:15,variant:"rounded"})),o&&At.createElement(am,null,At.createElement(QC,{size:24}),At.createElement(Ct,null),At.createElement(Ct,null),At.createElement(Ct,{separator:!1})))}i(an,"QuoteSkeleton");function co(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:g,fullExpandedMode:d=!1,container:m}=t,{inputAmount:f,inputUsdValue:S,toToken:T}=V(),y=e?.outputAmount?new qC(e?.outputAmount):null,C=e?.outputAmount?jn(e?.outputAmount,Zn(e)||T?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Fr.createElement(Ha,null,Fr.createElement(an,{tagHidden:l,type:o,expanded:s})):v?Fr.createElement(Ha,{onClick:()=>p?.(e)},Fr.createElement(Za,{quote:e,error:r,container:m,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:d,input:{value:f,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(co,"QuoteInfo");import{calculatePendingSwap as KC}from"@rango-dev/queue-manager-rango-preset";import{useEffect as XC}from"react";import{useRef as HC,useState as GC}from"react";var VC=2e3;function Or({request:t}){let[e,o]=GC(!1),n=HC(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,VC)),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(Or,"useFetch");function wm(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await _t().confirmRouteRequest(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(wm,"useFetchConfirmQuote");function Ur(t){if(!t.swaps)throw new Error(ne().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=ts(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ur,"throwErrorIfResponseIsNotValid");function ts(t){if(Sp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Cp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=wp(t);if(o){let n=Xn(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(ts,"getQuoteError");function xm(t,e,o){let n=!1;t&&(n=Fp(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=ko(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(Np(t,e)?r.quoteUpdate={type:3,newOutputAmount:M(To(e)),percentageChange:M(et(To(t)??"",To(e)??""),null,2)}:Vi(t,e)?r.quoteUpdate={type:0}:Ki(t,e)?r.quoteUpdate={type:1}:Xi(t,e)&&(r.quoteUpdate={type:2}));let s=Wp(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(xm,"generateWarnings");function Qr(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Qr,"handleQuoteErrors");function os(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=V(),{slippage:p,customSlippage:u}=h(),c=h().getDisabledLiquiditySources(),g=h().blockchains(),d=h().tokens(),{findToken:m}=h(),f=u||p,{fetch:S,cancelFetch:T,loading:y}=wm();return XC(()=>T,[]),{loading:y,fetch:i(async k=>{let v=k.selectedWallets,b=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=v.reduce((w,E)=>(w[E.chain]=E.address,w),{}),x={requestId:r?.requestId||"",selectedWallets:N,destination:b||void 0};try{return await S(x,!0).then(w=>{let{result:E}=w;Ur({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let A={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};n(A);let B={slippage:f.toString(),disabledSwappersGroups:c},z=xm(r??void 0,A,{fromToken:t,toToken:e,meta:{blockchains:g},findToken:m,selectedWallets:v,userSlippage:f});z.quoteUpdate&&s(!1),l();let I=!!z.balance,U=KC(o.toString(),E,Ip(v),B,!I,{blockchains:g,tokens:d});return{quote:A,swap:U,error:null,warnings:z}})}catch(w){return Qr(w)}},"fetch"),cancelFetch:T}}i(os,"useConfirmSwap");var nT=ZC("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Em}`]:{width:"$48",height:"$48"}}),rT=is({flexGrow:1,paddingRight:"$10"}),iT=is({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),aT=is({display:"flex",justifyContent:"space-between",alignItems:"center"});function Im(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=V(),s=oT(),[l,p]=sn(""),u=!n,[c,g]=sn(!1),[d,m]=sn(!1),{isActiveTab:f}=le(),S=h().getDisabledLiquiditySources(),T=tT(S),{manager:y}=jC(),{fetch:C,loading:k,cancelFetch:v}=os(),[b,N]=sn({swap:null,error:null,warnings:null}),[x,w]=sn(!1),E=i(async({selectedWallets:L,customDestination:j})=>{let ge=await C?.({selectedWallets:L,customDestination:j});return N(ge),ge},"onConfirmSwap"),A=i(async()=>{if(b.swap&&n)try{await y?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId});let L=`../${q.swaps}/${b.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){p("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{m(!0),await A(),m(!1)},"onConfirm"),z=i(async()=>{b?.warnings?.quote&&!a?w(!0):await B()},"onStartConfirmSwap"),I=i(async()=>{N({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(L=>{N(L)}).catch(L=>console.error(L))},"onRefresh");zr(()=>{!!T.current.length&&!S.length&&I(),T.current=S},[S.length]),zr(()=>{u&&v()},[u]),zr(()=>{u&&g(u)},[u]),zr(()=>{u||C({selectedWallets:o,customDestination:r}).then(L=>N(L)).catch(L=>console.error(L))},[]),eT(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let U=b.warnings?.quote??null,te=b.error,G=[];if(l&&G.push(Ne.createElement(bm,{type:"error",variant:"alarm",title:l})),b.warnings?.quoteUpdate&&G.push(Ne.createElement(bm,{variant:"alarm",type:"warning",title:b.warnings.quoteUpdate&&or(b.warnings.quoteUpdate)})),U||te){let L=`../${q.settings}`;G.push(Ne.createElement(Jo,{warning:U,error:te,couldChangeSettings:!1,refetchQuote:I,showWarningModal:x,confirmationDisabled:!f,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:async()=>{w(!1),await A()},onChangeSettings:()=>s(L)}))}return Ne.createElement(de,{header:{title:ns.t("Confirm Swap"),onWallet:()=>{let L=`../${q.wallets}`;s(L)}},footer:Ne.createElement(nT,null,Ne.createElement("div",{className:rT()},Ne.createElement(YC,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||d,disabled:!!b.error||!f,onClick:z},ns.t("Start Swap"))),Ne.createElement(Em,{variant:"contained",type:"primary",size:"large",loading:k||d,disabled:!f,onClick:g.bind(null,!0)},Ne.createElement(RC,{size:24})))},c&&Ne.createElement(au,{open:c,onClose:()=>g(!1),onCancel:v,loading:k,onCheckBalance:E}),Ne.createElement(ye,null,Ne.createElement("div",{className:aT()},Ne.createElement(JC,{variant:"title",size:"small"},ns.t("You get")),Ne.createElement("div",{className:iT()},Ne.createElement(mr,{onClick:!k&&!c&&!x?I:void 0}))),Ne.createElement(rs,{size:"12"}),uc(G.map((L,j)=>({element:L,key:`alert-${j}`})),Ne.createElement(rs,{size:10})),G.length>0?Ne.createElement(rs,{size:10}):null,Ne.createElement(co,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:b.error,loading:k,warning:b.warnings?.quote??null})))}i(Im,"ConfirmSwapPage");import{i18n as Hr}from"@lingui/core";import{useManager as vT}from"@rango-dev/queue-manager-react";import{Divider as Fm,NotFound as wT,styled as xT}from"@rango-dev/ui";import Wt,{useState as bT}from"react";import{useNavigate as ET}from"react-router-dom";import{i18n as pT}from"@lingui/core";import{Divider as Lm,GroupedVirtualizedList as cT,Skeleton as uT,SwapListItem as Bm,Typography as mT}from"@rango-dev/ui";import qe,{useCallback as Pm,useEffect as dT,useRef as fT,useState as gT}from"react";function Am(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(Am,"calculateGroupsSoFar");import{css as sT,darkTheme as lT,styled as ln}from"@rango-dev/ui";var as=sT(),Nm=ln("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ss=ln("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${as}`]:{$$color:"$colors$neutral600",[`.${lT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ls=ln("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Wm=ln("div",{gap:"$10",display:"flex",flexDirection:"column"}),Mm=ln("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var hT=10;function ps(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=gT([]),l=fT(0),{swaps:p,groupCounts:u,groups:c}=n(e),g=Pm(Am,[]),d=Pm(()=>{let m=e.length-l.current;m&&(l.current+=Math.min(m,hT),s(g(u,l.current)))},[e.length]);if(dT(()=>{r||d()},[r,d]),r){let m=[1,2];return qe.createElement(qe.Fragment,null,[m,m].map((S,T)=>qe.createElement(ss,{key:T},qe.createElement(ls,null,qe.createElement(uT,{variant:"text",width:60,size:"small"}),qe.createElement(Lm,{size:16})),qe.createElement(Lm,{size:4}),qe.createElement(Wm,null,S.map((C,k)=>qe.createElement(Bm,{isLoading:!0,key:k}))))))}return qe.createElement(cT,{endReached:()=>{l.current<e.length&&d()},groupCounts:a,groupContent:m=>qe.createElement(ss,null,qe.createElement(ls,null,qe.createElement(mT,{variant:"label",size:"medium",className:as()},c[m]))),itemContent:(m,f)=>{let S=p[m];if(!S)return null;let T=S.steps[0],y=S.steps[S.steps.length-1];return qe.createElement(Nm,{key:S.requestId},qe.createElement(Bm,{requestId:S.requestId,creationTime:S.creationTime,status:S.status,onClick:o,tooltipContainer:P(),onlyShowTime:c[f]===pT.t("Today"),swapTokenData:{from:{token:{image:T.fromLogo,displayName:T.fromSymbol},blockchain:{image:T.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(ps,"HistoryGroupedList");import{CloseIcon as ST,IconButton as CT,SearchIcon as TT,TextField as kT}from"@rango-dev/ui";import pn from"react";import{styled as yT}from"@rango-dev/ui";var _m=yT("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Nt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,setValue:l,...p}=t;return pn.createElement(kT,{prefix:pn.createElement(_m,null,pn.createElement(TT,{color:"black"})),suffix:!!s.length&&pn.createElement(CT,{variant:"ghost",onClick:()=>l?.(""),size:"small"},pn.createElement(ST,{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(Nt,"SearchInput");import{i18n as qr}from"@lingui/core";import Dm from"dayjs";var $m=i(t=>{let e=new Map([["today",{title:qr.t("Today"),swaps:[]}],["week",{title:qr.t("This week"),swaps:[]}],["month",{title:qr.t("This month"),swaps:[]}],["year",{title:qr.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=Dm();t.forEach(p=>{let u=Number(p.creationTime),c=Dm(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 g=new Date(u).getFullYear().toString();o(g,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var IT=xT("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),AT=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 Om(){let t=ET(),{manager:e,state:o}=vT(),n=ot(e).map(({swap:c})=>c),[r,a]=bT(""),s=!o.loadedFromPersistor,l=i(c=>{let g=c.target.value;a(g)},"searchHandler"),p=n;r&&(p=n.filter(c=>gt(c.inputAmount,r)||gt(c.status,r)||AT(c.steps,r)||gt(c.requestId,r)));let u=!p?.length&&!s;return Wt.createElement(de,{header:{title:Hr.t("History")}},Wt.createElement(ye,null,Wt.createElement(Nt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Hr.t("Search Transaction"),autoFocus:!0,onChange:l,value:r}),Wt.createElement(Fm,{size:"16"}),Wt.createElement(IT,null,u&&Wt.createElement(Mm,null,Wt.createElement(Fm,{size:32}),Wt.createElement(wT,{title:Hr.t("No results found"),description:r?Hr.t("Try using different keywords"):""})),!u&&Wt.createElement(ps,{list:p,onSwapClick:t,groupBy:$m,isLoading:s}))))}i(Om,"HistoryPage");import{i18n as KT}from"@lingui/core";import{Button as XT,Divider as rd,styled as jT,WarningIcon as YT}from"@rango-dev/ui";import ZT from"bignumber.js";import Ve,{useEffect as id,useState as ad}from"react";import{useNavigate as JT}from"react-router-dom";import{i18n as PT}from"@lingui/core";import{Header as _T}from"@rango-dev/ui";import zt,{useEffect as DT,useState as $T}from"react";import{i18n as WT}from"@lingui/core";import{Divider as us,FullExpandedQuote as MT,Typography as LT}from"@rango-dev/ui";import ke from"react";import{styled as cs}from"@rango-dev/ui";var Um=cs("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Qm=cs("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),zm=cs("div",{width:"146px"});import{i18n as cn}from"@lingui/core";import{Select as NT}from"@rango-dev/ui";import qm from"react";function Gr(t){let{updateQuotePartialState:e,sortStrategy:o}=V(),n=[{value:"SMART",label:cn.t("Smart Routing")},{value:"FEE",label:cn.t("Lowest Fee")},{value:"SPEED",label:cn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:cn.t("Maximum Return")},{value:"PRICE",label:cn.t("Maximum Output")}];return qm.createElement(zm,null,qm.createElement(NT,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Gr,"SelectStrategy");var Hm=3;function un(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:g,toToken:d,sortStrategy:m,error:f}=V(),{slippage:S,customSlippage:T}=h(),{findToken:y}=h(),C=l||P(),k=!!u&&u.results.length,v=T??S,b=i(w=>{if(!g||!d||!u)return null;let E={requestAmount:u.requestAmount,...w};return ko(E,{fromToken:g,toToken:d,userSlippage:v,findToken:y})},"getQuoteWarning"),N=f?.type===0||f?.type===1,x=u?.results?Rn(m,u?.results):[];return ke.createElement(ke.Fragment,null,a&&ke.createElement(ke.Fragment,null,ke.createElement(Qm,null,ke.createElement(LT,{size:"xmedium",variant:"title"},WT.t("Sort by")),ke.createElement(Gr,{container:C})),ke.createElement(us,{size:"10"})),e&&Array.from({length:Hm},(w,E)=>ke.createElement(ke.Fragment,{key:E},s?ke.createElement(MT,{loading:!0}):ke.createElement(an,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Hm-1&&ke.createElement(us,{size:16}))),!e&&ke.createElement(ke.Fragment,null,k?x.map((w,E)=>{let A=b(w),B=ts(w.swaps),z=x.length-1===E;return ke.createElement(ke.Fragment,{key:w.requestId},ke.createElement(co,{showModalFee:r,container:C,selected:p?.requestId===w.requestId,tagHidden:!1,quote:{...w,requestAmount:u.requestAmount},loading:e,error:B?.options||null,warning:A,fullExpandedMode:s,onClick:I=>{B||c("warning",A),c("error",B?.options||null),o(I)},type:"list-item"}),!z&&ke.createElement(us,{size:16}))}):N&&ke.createElement(Um,null,ke.createElement(Yo,{size:s?"large":"small",error:f,fetch:n}))))}i(un,"Quotes");import{darkTheme as BT,styled as Gm}from"@rango-dev/ui";var Vm=Gm("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${BT} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Km=Gm("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var FT=100;function ms(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=$T(!1),p=s?"":"is-hidden",{config:u}=h(),c=u?.variant==="full-expanded",g=Uo();return DT(()=>{let d=null;return a?d=setTimeout(()=>{l(!0)},FT):(l(!1),d&&clearTimeout(d)),()=>{d&&clearTimeout(d)}},[a]),zt.createElement(Vm,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${gr()}`,id:Se.EXPANDED_BOX_ID},zt.createElement(_T,{title:PT.t("Routes"),suffix:zt.createElement(zt.Fragment,null,zt.createElement(Gr,{container:g}),zt.createElement(to,{container:g,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),zt.createElement(Km,null,zt.createElement(un,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:Uo(),onClickOnQuote:n,fullExpandedMode:c})))}i(ms,"ExpandedQuotes");import{i18n as ed}from"@lingui/core";import{SwapInput as td}from"@rango-dev/ui";import mn from"react";import{ReverseIcon as QT}from"@rango-dev/ui";import fs from"react";import{keyframes as OT,styled as Xm}from"@rango-dev/ui";var ds=450,UT=OT({"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)"}}),jm=Xm("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ym=Xm("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${UT} ${ds}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 gs(){let t=V.use.switchFromAndTo();return fs.createElement(jm,null,fs.createElement(Ym,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},ds),t()}},fs.createElement(QT,{size:12})))}i(gs,"SwitchFromAndToButton");import{styled as Zm}from"@rango-dev/ui";var Jm=Zm("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Rm=Zm("div",{position:"relative"});function hs(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:g,outputAmount:d,outputUsdValue:m,selectedQuote:f}=V(),{connectedWallets:S,getBalanceFor:T}=oe(),y=a?T(a):null,C=_n(y)?.amount??"0",k=s&&a?M(y?.amount,y?.decimals):"0",v=!!s&&Ol(S,s.name),b=!qi(f,c,g),N=!qi(f,c,m),x=!g||!m||!m.gt(0)?null:et(g.toString(),m.toString());return mn.createElement(Jm,null,mn.createElement(Rm,null,mn.createElement(td,{label:ed.t("From"),mode:"From",onInputChange:u,balance:C,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:b?void 0:M(g,4,4),realUsdValue:b?void 0:g?.toString(),error:b?ne().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:P(),onSelectMaxBalance:()=>{u(k.split(",").join(""))}}),mn.createElement(gs,null)),mn.createElement(td,{sharpBottomStyle:!r&&(!!f||e),label:ed.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(et(g,m),2,2),warningLevel:xt(x??0),price:{value:M(d,6,6),usdValue:N?void 0:M(m,4,4),realValue:d?.toString(),realUsdValue:N?void 0:m?.toString(),error:N?ne().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:P()}))}i(hs,"Inputs");import{useCallback as zT,useEffect as qT,useRef as HT,useState as GT}from"react";function od(){let{fetch:t,loading:e,cancelFetch:o}=Or({request:async(n,r)=>await _t().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(od,"useFetchAllQuotes");var VT=600;function Vr({refetchQuote:t}){let{fetch:e,cancelFetch:o}=od(),{excludeLiquiditySources:n,features:r,enableCentralizedSwappers:a}=h().config,s=oe.use.connectedWallets(),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:c,selectedQuote:g,sortStrategy:d,resetQuote:m,error:f,warning:S,setSelectedQuote:T,updateQuotePartialState:y}=V(),{slippage:C,customSlippage:k,affiliatePercent:v,affiliateRef:b,affiliateWallets:N,fetchStatus:x}=h(),w=h().getLiquiditySources(),E=h().getDisabledLiquiditySources(),A=h().excludeLiquiditySources(),{findToken:B}=h(),[z,I]=GT(!0),U=HT(u),te=k??C,L=!l||!p||Xt(l,p)||!qo(u),j=i(ie=>{I(ie)},"resetState"),ge=i(ie=>{let{fromToken:he,toToken:Ce,inputAmount:D,liquiditySources:W,excludeLiquiditySources:pe,disabledLiquiditySources:ce,slippage:De,affiliateRef:_,affiliatePercent:Q,affiliateWallets:K}=ie;if(z||j(!0),!L&&he&&Ce){m();let ae=Ep({fromToken:he,toToken:Ce,inputAmount:D,liquiditySources:W,excludeLiquiditySources:pe,disabledLiquiditySources:ce,wallets:s,slippage:De,affiliateRef:_,affiliatePercent:Q,affiliateWallets:K,enableCentralizedSwappers:a});Jl("experimentalRoute",r)&&(ae.experimental=!0),e(ae).then(ee=>{let se=Rn(d,ee.results),be=Up(g,se,ee.requestAmount);I(!1),y("quotes",ee),T(be),Ur({diagnosisMessages:ee.diagnosisMessages,requestId:be?.requestId||"",swaps:be?.swaps});let wn=be&&ko(be,{fromToken:he,toToken:Ce,userSlippage:te,findToken:B});y("warning",wn)}).catch(ee=>{let{error:se}=Qr(ee);(se?.type===0||se?.type===1)&&m(),se?.type!==2&&(y("error",se),I(!1))})}},"fetch"),Y=zT(bl(ie=>{ge(ie)},VT),[L]);return qT(()=>{if(!t){I(!1);return}if(x!=="success")return;if(L){I(!1),(g||f||S)&&m();return}if(!qo(u)||c?.eq(0)){j(!1),o();return}m(),j(!0);let ie=ge;return U.current&&U.current!=u&&(ie=Y),U.current=u,ie({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:v,affiliateWallets:N}),o},[x,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,L,w?.length,n,E.length,te,b,v,JSON.stringify(N)]),{fetch:()=>ge({inputAmount:u,fromToken:l,toToken:p,liquiditySources:w,excludeLiquiditySources:A,disabledLiquiditySources:E,slippage:te,affiliateRef:b,affiliatePercent:v,affiliateWallets:N}),loading:z}}i(Vr,"useSwapInput");function nd(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Te.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(nd,"emitPreventableEvent");var RT=jT("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),ek=300;function sd(){let t=JT(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:g,updateQuotePartialState:d}=V(),[m,f]=ad(!1),{isLargeScreen:S,isExtraLargeScreen:T}=Mr(),{fetch:y,loading:C}=Vr({refetchQuote:a}),{config:k,fetchStatus:v}=h(),{connectedWallets:b}=oe(),{isActiveTab:N}=le(),[x,w]=ad(!1),A=Tp({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:b.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Vl(S,T,k?.variant),z=!!n&&!!e&&!!o&&new ZT(n).gt(0)&&!_p(e,o),I=z&&v==="success"&&C,G=(!B||B&&p?.results.length)&&(l||s);id(()=>{c(),d("refetchQuote",!0)},[]),id(()=>{f(z)},[z]);let L=(r||s)&&!x?y:void 0,j=i(Y=>{B&&m?(f(!1),setTimeout(()=>{t(Y)},ek)):t(Y)},"onHandleNavigation"),ge=i(Y=>{r?.requestId!==Y.requestId&&(w(!1),u(Y))},"onClickOnQuote");return Ve.createElement(RT,null,Ve.createElement(de,{height:"auto",footer:Ve.createElement(XT,{type:"primary",size:"large",disabled:A.disabled||!N,prefix:A.action==="confirm-warning"&&Ve.createElement(YT,null),fullWidth:!0,onClick:()=>{A.action==="connect-wallet"?nd({type:"clickConnectWallet"},()=>j(q.wallets)):A.action==="confirm-warning"?w(!0):j(q.confirmSwap)}},A.title),header:{onWallet:()=>{j(q.wallets)},hasBackButton:!1,title:k.title||KT.t("Swap"),suffix:Ve.createElement(to,{hidden:B?["refresh"]:void 0,onClickRefresh:L,onClickHistory:()=>j(q.swaps),onClickSettings:()=>{j(q.settings)}})}},Ve.createElement(ye,null,Ve.createElement(hs,{fetchingQuote:I,fetchMetaStatus:v,isExpandable:B,onClickToken:Y=>{j(Y==="from"?q.fromSwap:q.toSwap)}}),Ve.createElement(rd,{size:"2"}),B?null:Ve.createElement(co,{quote:r,loading:I,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{d("refetchQuote",!1),j(q.routes)}:void 0}),G?Ve.createElement(Ve.Fragment,null,Ve.createElement(rd,{size:"10"}),Ve.createElement(Jo,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:y,showWarningModal:x,confirmationDisabled:!N,onOpenWarningModal:()=>w(!0),onCloseWarningModal:()=>w(!1),onConfirmWarningModal:()=>{w(!1),g(!0),j(q.confirmSwap)},onChangeSettings:()=>j(q.settings)})):null)),B?Ve.createElement(ms,{loading:I,onClickOnQuote:ge,fetch:y,onClickRefresh:L,isVisible:m}):null)}i(sd,"Home");import{i18n as ld}from"@lingui/core";import{Alert as tk,Divider as ok,List as nk,ListItemButton as rk,Radio as ik,RadioRoot as ak,Typography as sk}from"@rango-dev/ui";import Tt from"react";function qt(){let{setLanguage:t,language:e,config:o}=h(),n=ep,r=o?.language||Co;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Co),resetLanguage:()=>t(null)}}i(qt,"useLanguage");function pd(){let{activeLanguage:t,changeLanguage:e,languages:o}=qt(),n=tt(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:s,value:s,title:Tt.createElement(sk,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Tt.createElement(ik,{value:s}),start:Tt.createElement(p,null)}});return Tt.createElement(de,{header:{title:ld.t("Language")}},Tt.createElement(ye,null,Tt.createElement(tk,{type:"warning",variant:"alarm",title:"Important Notice: Machine translations are in use"}),Tt.createElement(ok,{size:"8"}),Tt.createElement(ak,{value:t},Tt.createElement(nk,{type:Tt.createElement(rk,{title:ld.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(pd,"LanguagePage");import{i18n as Mt}from"@lingui/core";import{Button as mk,Checkbox as dk,Image as fk,ListItemButton as gk,NotFound as hk,Typography as yk}from"@rango-dev/ui";import He,{useState as Sk}from"react";import{Checkbox as ck,Skeleton as ud}from"@rango-dev/ui";import fn from"react";import{styled as ys}from"@rango-dev/ui";var dn=ys("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ss=ys("div",{width:80,display:"flex",justifyContent:"flex-end"}),Cs=ys("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as lk,styled as pk}from"@rango-dev/ui";var cd=pk(lk,{height:61});var uk=30;function Ts(){return fn.createElement(dn,null,Array.from(Array(uk),(t,e)=>fn.createElement(cd,{hasDivider:!0,key:e,start:fn.createElement(ud,{variant:"circular",width:35,height:35}),title:fn.createElement(ud,{variant:"text",size:"large",width:90}),end:fn.createElement(ck,{checked:!1})})))}i(Ts,"LoadingLiquiditySourceList");function ks({sourceType:t}){let e=h().fetchStatus,o=h().swappers(),n=h().getDisabledLiquiditySources(),[r,a]=Sk(""),s=h().toggleLiquiditySource,l=h().isInCampaignMode(),p=Un(o,n),u={Exchanges:Mt.t("Exchanges"),Bridges:Mt.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let g=p.filter(y=>c.includes(y.type)),d=g.length===g.filter(y=>y.selected).length,m=i(()=>{g.forEach(y=>{d?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),f=g.map(y=>{let{selected:C,groupTitle:k,logo:v}=y;return{start:He.createElement(fk,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:He.createElement(dk,{checked:C,disabled:l}),title:He.createElement(yk,{variant:"title",size:"xmedium"},Mt.t(k)),...y}}),S=i(y=>{let C=y.target.value;a(C)},"searchHandler"),T=f;return r&&(T=f.filter(y=>gt(y.groupTitle,r))),He.createElement(de,{header:{title:Mt.t(t),suffix:He.createElement(Ss,null,He.createElement(mk,{variant:"ghost",size:"xsmall",onClick:m},d?Mt.t("Deselect all"):Mt.t("Select all")))}},He.createElement(ye,{view:!0},He.createElement(Nt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Mt.t("Search {sourceType}",{sourceType:u[t]}),onChange:S}),e==="loading"&&He.createElement(Ts,null),!T.length&&r?He.createElement(Cs,null,He.createElement(hk,{title:Mt.t("No results found"),description:Mt.t("Try using different keywords")})):e==="success"&&He.createElement(dn,{disabled:l},T.map(y=>{let{groupTitle:C,...k}=y;return He.createElement(He.Fragment,{key:y.id},He.createElement(gk,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(ks,"LiquiditySourcePage");import{i18n as Ck}from"@lingui/core";import Kr from"react";import{useNavigate as Tk}from"react-router-dom";function md(){let t=Tk(),e=tt(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=V(),{fetch:l,loading:p}=Vr({refetchQuote:n}),u=i(d=>{r(d),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${q.settings}`,g=`../${q.wallets}`;return Kr.createElement(de,{header:{onWallet:()=>{t(g),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Ck.t("Routes"),suffix:Kr.createElement(to,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Kr.createElement(ye,null,Kr.createElement(un,{fetch:l,loading:p,onClickOnQuote:u})))}i(md,"RoutesPage");import{i18n as Td}from"@lingui/core";import{Divider as kd,getCategoriesCount as Nk,SelectableCategoryList as Wk}from"@rango-dev/ui";import Lt,{useState as vd}from"react";import{i18n as vs}from"@lingui/core";import{Divider as Sd,Image as xk,ListItemButton as bk,NotFound as Ek,Typography as Cd}from"@rango-dev/ui";import rt,{useEffect as Ik,useState as Ak}from"react";var dd=i((t,e,o)=>t.filter(n=>En(n.type,o)).filter(n=>vt(n.name,e)||vt(n.displayName,e)),"filterBlockchains");import{ImageContainer as kk,styled as fd}from"@rango-dev/ui";var gd=fd("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Xr=fd(Ko,{padding:0,margin:0,listStyle:"none",[`& ${kk}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as vk,Skeleton as hd}from"@rango-dev/ui";import jr from"react";var wk=20;function yd(){return jr.createElement(Xr,null,Array.from(Array(wk),t=>jr.createElement(vk,{key:t,hasDivider:!0,start:jr.createElement(hd,{variant:"circular",width:35,height:35}),title:jr.createElement(hd,{variant:"text",size:"large",width:90})})))}i(yd,"LoadingBlockchainList");function ws(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[a,s]=Ak(e),{fetchStatus:l}=h();Ik(()=>{s([...dd(e,o,r)])},[e,o,r]);let p=i(()=>!a.length&&o?rt.createElement(rt.Fragment,null,rt.createElement(Sd,{size:32}),rt.createElement(Ek,{title:vs.t("No results found"),description:vs.t("Try using different keywords")})):rt.createElement(Xr,{as:"ul",key:`${r}-${o}`},a.map(u=>rt.createElement(bk,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:rt.createElement(xk,{src:u.logo,size:30}),title:rt.createElement(Cd,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return rt.createElement(gd,null,rt.createElement(Cd,{variant:"label",size:"large"},vs.t("Select Blockchain")),rt.createElement(Sd,{size:4}),l==="loading"&&rt.createElement(yd,null),l==="success"&&p())}i(ws,"BlockchainList");function xs(t){let{type:e}=t,o=tt(),[n,r]=vd(""),[a,s]=vd("ALL"),l=V.use.setToBlockchain(),p=V.use.setFromBlockchain(),u=h().fetchStatus,c=h().blockchains({type:e}),d=Nk(c)!==1;return Lt.createElement(de,{header:{title:Td.t("Select Blockchain")}},Lt.createElement(ye,{view:!0},d&&Lt.createElement(Lt.Fragment,null,Lt.createElement(Wk,{setCategory:s,category:a,blockchains:c,isLoading:u==="loading"}),Lt.createElement(kd,{size:24})),Lt.createElement(Nt,{value:n,autoFocus:!0,placeholder:Td.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Lt.createElement(kd,{size:16}),Lt.createElement(ws,{list:c,searchedFor:n,blockchainCategory:a,onChange:m=>{e==="source"?p(m):l(m),o()}})))}i(xs,"SelectBlockchainPage");import{i18n as ei}from"@lingui/core";import{Divider as qd}from"@rango-dev/ui";import uo,{useState as Kk}from"react";import{useNavigate as Xk}from"react-router-dom";import{i18n as Is}from"@lingui/core";import{BlockchainsChip as Yr,Divider as Ed,Image as Id,Skeleton as _k,Tooltip as Dk,Typography as As}from"@rango-dev/ui";import _e from"react";import{useEffect as Bk}from"react";var wd=["ETH","COSMOS","OSMOSIS"];function bs(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Mk),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(Lk(s)),r=n.splice(a)}return{list:n,more:r}}i(bs,"prepare");function Mk(t,e){let o=wd,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(Mk,"sortByMostUsedBlockchains");function Lk(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(Lk,"generateSortByPreferredBlockchainsFor");function xd(t,e){return!!e.list.find(o=>o.name===t)}i(xd,"isInVisibleList");function Es(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=h();Bk(()=>{if(e?.selected){let a=bs(t,o,e);xd(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=bs(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Es,"usePrepareBlockchainList");import{styled as Pk}from"@rango-dev/ui";var bd=Pk("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var $k=12;function Ns(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Es(e,{limit:10,selected:n?.name}),{fetchStatus:l}=h(),p=V.use.resetToBlockchain(),u=V.use.resetFromBlockchain(),c=s.more.length>0,g=s.more.length===1,d=!g&&c;return _e.createElement(_e.Fragment,null,_e.createElement(Ed,{size:12}),_e.createElement(As,{variant:"label",size:"large"},Is.t("Select Blockchain")),_e.createElement(Ed,{size:12}),_e.createElement(bd,null,l==="loading"&&Array.from(Array($k),m=>_e.createElement(_k,{key:m,variant:"rounded",height:50})),l==="success"&&_e.createElement(_e.Fragment,null,_e.createElement(Yr,{selected:!n,onClick:()=>{o==="from"?u():p()}},_e.createElement(As,{variant:"body",size:"xsmall",color:"secondary500"},Is.t("All"))),s.list.map(m=>_e.createElement(Dk,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:P()},_e.createElement(Yr,{key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},_e.createElement(Id,{src:m.logo,size:30})))),g?_e.createElement(Yr,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},_e.createElement(Id,{src:s.more[0].logo,size:30})):null,d?_e.createElement(Yr,{onClick:a,key:"more-blockchains"},_e.createElement(As,{variant:"body",size:"xsmall",color:"secondary500"},Is._("More +{count}",{count:s.more.length}))):null)))}i(Ns,"BlockchainsSection");import{i18n as Os}from"@lingui/core";import{darkTheme as Fd,Divider as Do,ExternalLinkIcon as Uk,Image as Qk,ListItemButton as zk,NotFound as qk,PinIcon as Hk,Skeleton as Od,Typography as Rr,VirtualizedList as Gk}from"@rango-dev/ui";import X,{useEffect as Ud,useState as Qd}from"react";import{Divider as Dd,ListItem as Ok,Skeleton as gn}from"@rango-dev/ui";import mt from"react";import{css as _o,darkTheme as Ad,ImageContainer as Fk,styled as it,Typography as Nd}from"@rango-dev/ui";var Ws=_o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ms=_o({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ls=_o({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Bs=_o({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Ad} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Ps=_o({}),_s=_o(),Wd=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ds=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Zr=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ms}`]:{[`& .${Bs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Ps}`]:{bottom:"-15px"},[`& .${Ws}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ls}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),$s=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Fs=it(Nd,{}),Md=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${_s}`]:{$$color:"$colors$neutral600",[`.${Ad} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Jr=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),sQ=it("div",{display:"flex",alignItems:"center"}),Ld=it("div",{position:"relative",[`& ${Fk}`]:{borderRadius:"$xm",overflow:"hidden"}}),Bd=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Pd=it(Nd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),_d=it("a",{"& svg:hover":{color:"$colors$info"}});function $d(t){return mt.createElement(Zr,null,Array.from(Array(t.size),e=>mt.createElement(Ok,{key:e,hasDivider:!0,start:mt.createElement(gn,{variant:"circular",width:35,height:35}),end:mt.createElement(Jr,null,mt.createElement(gn,{variant:"text",size:"large",width:70}),mt.createElement(Dd,{size:4}),mt.createElement(gn,{variant:"text",size:"medium",width:50})),title:mt.createElement("div",null,mt.createElement(gn,{variant:"text",size:"large",width:90}),mt.createElement(Dd,{size:4}),mt.createElement(gn,{variant:"text",size:"medium",width:90}))})))}i($d,"LoadingTokenList");var Us=20,Vk=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return X.createElement("div",{className:Ms()},o?X.createElement("div",{className:Ws()},o):X.createElement(Ds,{className:Ls()},X.createElement(Rr,{variant:"title",size:"xmedium"},r.symbol),X.createElement(Do,{direction:"horizontal",size:4}),X.createElement($s,{css:a},X.createElement(Fs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&X.createElement("div",{className:`${Bs()} ${!o&&Ps()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",X.createElement(Do,{size:4,direction:"horizontal"}),X.createElement(_d,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},X.createElement(Uk,{size:12}))))},"renderDesc");function zd(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[a,s]=Qd(e),l=h().fetchStatus,p=h().blockchains(),[u,c]=Qd(!0),{getBalanceFor:g,loading:d}=oe(),{isTokenPinned:m}=h(),f=i(()=>{s(e.slice(0,a.length+Us))},"loadNextPage");Ud(()=>{c(e.length>a.length)},[a.length]),Ud(()=>{s(e.slice(0,Us))},[e.length,r]);let S=i(()=>!a.length&&o?X.createElement(X.Fragment,null,X.createElement(Do,{size:32}),X.createElement(qk,{title:Os.t("No results found"),description:Os.t("Try using different keywords")})):X.createElement(Gk,{endReached:u?f:void 0,itemContent:T=>{let y=a[T],C=_n(g(y)),k=y.address||"",v=p.find(w=>w.name===y.blockchain),b=sa(v.color,"main"),N={$$color:b.main150,[`.${Fd} &`]:{$$color:b.main750},backgroundColor:"$$color"},x={$$color:b.main750,[`.${Fd} &`]:{$$color:b.main150},color:"$$color"};return X.createElement("div",{style:{paddingRight:5}},X.createElement(zk,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":T,key:`${y.symbol}${y.address}`,id:`${y.symbol}${y.address}`,hasDivider:!0,onClick:()=>n(a[T]),start:X.createElement(Ld,null,X.createElement(Qk,{src:y.image,size:30}),m(y,t.type)&&X.createElement(Bd,null,X.createElement(Hk,{size:12,color:"gray"}))),title:v?.type==="COSMOS"||y.name||!y.name&&!k?X.createElement(Ds,null,X.createElement(Rr,{variant:"title",size:"xmedium"},y.symbol),X.createElement(Do,{direction:"horizontal",size:4}),X.createElement($s,{css:N},X.createElement(Fs,{variant:"body",size:"xsmall",css:x},y.blockchain))):void 0,description:v?.info&&k&&v.type!=="COSMOS"?Vk({address:k,token:a[T],customCssForTag:N,customCssForTagTitle:x,name:y.name,url:v.info.addressUrl.split("{wallet}").join(k)}):y.name||void 0,end:d?X.createElement(Jr,null,X.createElement(Od,{variant:"text",size:"large",width:70}),X.createElement(Do,{size:4}),X.createElement(Od,{variant:"text",size:"medium",width:50})):C&&X.createElement(Md,null,X.createElement(Pd,{variant:"title",size:"small"},C.amount),X.createElement("div",null),C.usdValue&&X.createElement(Rr,{variant:"body",className:_s(),size:"xsmall"},`$${C.usdValue}`))}))},totalCount:a.length,key:`${r}-${o}`}),"renderList");return X.createElement(Wd,null,X.createElement(Rr,{variant:"label",size:"large"},Os.t("Select Token")),X.createElement(Do,{size:4}),l==="loading"&&X.createElement($d,{size:Us}),l==="success"&&X.createElement(Zr,{as:"ul"},S()))}i(zd,"TokenList");function Qs(t){let{type:e}=t,o=Xk(),n=tt(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=V(),c=oe.use.getBalanceFor(),[g,d]=Kk(""),f=(e==="source"?r:a)?.name??"",S=h().blockchains({type:e}),T=h().tokens({type:e,blockchain:f,searchFor:g,getBalanceFor:c}),y=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),C=i(v=>{e==="source"?s({token:v,meta:{blockchains:S,tokens:T}}):l({token:v,meta:{blockchains:S,tokens:T}})},"updateToken"),k={source:ei.t("Source"),destination:ei.t("Destination")};return uo.createElement(de,{header:{title:ei.t("Swap {type}",{type:k[e]})}},uo.createElement(ye,null,uo.createElement(Ns,{blockchains:S,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(q.blockchains),onChange:v=>{y(v)}}),uo.createElement(qd,{size:24}),uo.createElement(Nt,{value:g,autoFocus:!0,placeholder:ei.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>d(""),onChange:v=>d(v.target.value)}),uo.createElement(qd,{size:16}),uo.createElement(zd,{list:T,selectedBlockchain:f,searchedFor:g,type:e,onChange:v=>{C(v);let b=S.find(N=>v.blockchain===N.name);b&&y(b),n()}})))}i(Qs,"SelectSwapItemsPage");import{i18n as Gs}from"@lingui/core";import{Alert as Cv,Button as Tv,styled as kv}from"@rango-dev/ui";import mo from"react";import{useInRouterContext as vv,useSearchParams as wv}from"react-router-dom";import{i18n as jd}from"@lingui/core";import{Divider as Jk,InfoIcon as Rk,TextField as ev,Tooltip as tv,Typography as Yd}from"@rango-dev/ui";import dt from"react";import{Chip as jk,styled as hn,TextField as Yk}from"@rango-dev/ui";var Hd=hn("div",{paddingTop:"$5",padding:"$10 $5"}),Gd=hn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Yk}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Vd=hn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ti=hn("div",{maxWidth:"280px",padding:"$10"}),Kd=hn(jk,{width:"61px",flexShrink:0});import{i18n as zs}from"@lingui/core";import{Typography as Zk}from"@rango-dev/ui";import yn from"react";function Xd(){return yn.createElement(ti,null,yn.createElement(Zk,{variant:"label",size:"medium",color:"neutral700"},zs.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),yn.createElement("br",null),yn.createElement("br",null),yn.createElement("b",null,zs.t("Warning")),":",zs.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(Xd,"SlippageTooltipContent");function qs(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=h();return dt.createElement(Hd,null,dt.createElement(Vd,null,dt.createElement(Yd,{variant:"title",size:"xmedium"},jd.t("Slippage tolerance per swap")),dt.createElement(Jk,{direction:"horizontal",size:4}),dt.createElement(tv,{container:P(),side:"top",sideOffset:4,content:dt.createElement(Xd,null)},dt.createElement(Rk,{color:"gray"}))),dt.createElement(Gd,null,tp.map((r,a)=>{let s=`slippage-${a}`;return dt.createElement(Kd,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),dt.createElement(ev,{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>=ip&&s<=rp?n(s):n(null)},suffix:o&&dt.createElement(Yd,{variant:"body",size:"small"},"%"),placeholder:jd.t("Custom")})))}i(qs,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as Zd,BridgesIcon as ov,ChevronRightIcon as Hs,DarkModeIcon as Jd,Divider as oi,ExchangeIcon as nv,InfinityIcon as rv,InfoIcon as iv,LanguageIcon as av,LightModeIcon as Rd,List as sv,ListItem as lv,ListItemButton as pv,Skeleton as cv,styled as uv,Switch as mv,Tabs as dv,Tooltip as fv,Typography as at}from"@rango-dev/ui";import O from"react";import{useNavigate as gv}from"react-router-dom";var hv=uv("div",{width:"202px",height:"$40"}),yv=[{id:"light",icon:O.createElement(Rd,{color:"black",size:24}),tooltip:O.createElement(at,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:O.createElement(Jd,{color:"black",size:24}),tooltip:O.createElement(at,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:O.createElement(Zd,{color:"black",size:24}),tooltip:O.createElement(at,{size:"xsmall",variant:"body"},kt.t("Auto"))}],Sv=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return O.createElement(Zd,{...e});case"dark":return O.createElement(Jd,{...e});default:return O.createElement(Rd,{...e})}},"getThemeIcon");function ef(){let t=gv(),{theme:e}=h().config,{setTheme:o,theme:n}=h(),{activeLanguage:r,languages:a}=qt(),s=a.find(U=>U.local===r)?.label,l=h().fetchStatus,p=h().swappers(),u=h().getDisabledLiquiditySources(),{config:{features:c}}=h(),g=Re("theme",c),d=Re("liquiditySource",c),m=Re("language",c),f=h().infiniteApprove,S=h().toggleInfiniteApprove,T=Un(p,u),y=T.filter(U=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(U.type)),C=y.length,k=y.filter(U=>U.selected).length,v=T.filter(U=>U.type==="DEX"),b=v.length,N=v.filter(U=>U.selected).length,x=i((U,te)=>{switch(l){case"loading":return O.createElement(cv,{variant:"text",size:"medium",width:50});case"failed":return O.createElement(at,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return O.createElement(at,{variant:"body",size:"medium"},`${U} / ${te}`)}},"handleSwapperEndItem"),w={id:"bridge-item",title:O.createElement(at,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:O.createElement(O.Fragment,null,x(k,C),O.createElement(oi,{direction:"horizontal",size:8}),O.createElement(Hs,{color:"black"})),onClick:()=>t(q.bridges),start:O.createElement(ov,{color:"gray",size:16})},E={id:"exchange-item",title:O.createElement(at,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:O.createElement(O.Fragment,null,x(N,b),O.createElement(oi,{direction:"horizontal",size:8}),O.createElement(Hs,{color:"black"})),start:O.createElement(nv,{color:"gray",size:16}),onClick:()=>t(q.exchanges)},A={id:"language-item",title:O.createElement(at,{variant:"title",size:"xmedium"},kt.t("Language")),start:O.createElement(av,{color:"gray",size:16}),end:O.createElement(O.Fragment,null,O.createElement(at,{variant:"body",size:"medium"},s),O.createElement(oi,{direction:"horizontal",size:8}),O.createElement(Hs,{color:"black"})),onClick:()=>t(q.languages)},B={id:"infinite-approval-item",title:O.createElement(O.Fragment,null,O.createElement(at,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),O.createElement(oi,{direction:"horizontal",size:4}),O.createElement(fv,{side:"top",sideOffset:4,container:P(),content:O.createElement(ti,null,O.createElement(at,{variant:"label",size:"medium",color:"neutral700"},kt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},O.createElement(iv,{color:"gray"}))),start:O.createElement(rv,{color:"gray",size:16}),end:O.createElement(mv,{checked:f}),onClick:S},z={id:"theme-item",type:O.createElement(lv,null),title:O.createElement(at,{variant:"title",size:"xmedium"},kt.t("Theme")),end:O.createElement(hv,null,O.createElement(dv,{container:P(),items:yv,value:n,onChange:U=>o(U.id),type:"primary",borderRadius:"small"})),start:Sv(n)},I=d?[]:[w,E];return m||I.push(A),I.push(B),!e?.singleTheme&&!g&&I.push(z),O.createElement(sv,{type:O.createElement(pv,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:I})}i(ef,"SettingsLists");var xv=kv("div",{paddingLeft:"$8"});function tf(){let{isInCampaignMode:t,updateCampaignMode:e}=h(),o=t(),[,n]=wv(),r=vv(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return mo.createElement(de,{header:{title:Gs.t("Settings")}},mo.createElement(ye,null,o&&mo.createElement(Cv,{type:"info",variant:"alarm",title:Gs.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:mo.createElement(xv,null,mo.createElement(Tv,{type:"secondary",size:"small",onClick:a},Gs.t("Reset")))}),mo.createElement(qs,null),mo.createElement(ef,null)))}i(tf,"SettingsPage");import{i18n as pw}from"@lingui/core";import{cancelSwap as cw}from"@rango-dev/queue-manager-rango-preset";import{useManager as uw}from"@rango-dev/queue-manager-react";import{Alert as mw}from"@rango-dev/ui";import pl from"react";import{useParams as dw}from"react-router-dom";import{i18n as Ze}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Hv,getCurrentStep as Gv,getRelatedWalletOrNull as Vv}from"@rango-dev/queue-manager-rango-preset";import{Button as Pf,CopyIcon as Kv,Divider as Xv,DoneIcon as jv,IconButton as Yv,QuoteCost as Zv,RangoExplorerIcon as Jv,StepDetails as Rv,Tooltip as _f,Typography as go,useCopyToClipboard as ew}from"@rango-dev/ui";import{useWallets as tw}from"@rango-dev/wallets-react";import Df from"bignumber.js";import{PendingSwapNetworkStatus as ui}from"rango-types";import Z,{useEffect as $f,useRef as ow,useState as Ff}from"react";import{useNavigate as nw}from"react-router-dom";import{i18n as Ht}from"@lingui/core";var bv=[Ht.t("Sunday"),Ht.t("Monday"),Ht.t("Tuesday"),Ht.t("Wednesday"),Ht.t("Thursday"),Ht.t("Friday"),Ht.t("Saturday")];function of(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Ht.t("Today"):`${bv[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(of,"timeSince");function nf(t){return t.finishTime?of(parseInt(t.finishTime)):of(parseInt(t.creationTime))}i(nf,"getSwapDate");import{PendingSwapNetworkStatus as ii}from"rango-types";import ai from"react";import{i18n as ni}from"@lingui/core";import{Button as rf,Divider as Vs,MessageBox as Ev}from"@rango-dev/ui";import Gt from"react";var af=i(({onCancel:t,onClose:e})=>Gt.createElement(Gt.Fragment,null,Gt.createElement(Vs,{size:20}),Gt.createElement(Ev,{type:"error",title:ni.t("Cancel Swap"),description:ni.t("Are you sure you want to cancel this swap?")}),Gt.createElement(Vs,{size:32}),Gt.createElement(rf,{variant:"contained",type:"primary",size:"large",onClick:t},ni.t("Yes, Cancel it")),Gt.createElement(Vs,{size:12}),Gt.createElement(rf,{variant:"outlined",type:"primary",size:"large",onClick:e},ni.t("No, Continue"))),"CancelContent");import{i18n as ri}from"@lingui/core";import{Button as sf,Divider as Ks,MessageBox as Iv,Typography as Av}from"@rango-dev/ui";import Bt from"react";var lf=i(({onDelete:t,onClose:e})=>Bt.createElement(Bt.Fragment,null,Bt.createElement(Ks,{size:20}),Bt.createElement(Iv,{type:"error",title:ri.t("Delete Transaction"),description:ri.t("Are you sure you want to delete this swap?")}),Bt.createElement(Ks,{size:32}),Bt.createElement(sf,{variant:"contained",type:"primary",size:"large",onClick:t},ri.t("Yes, Delete it")),Bt.createElement(Ks,{size:12}),Bt.createElement(sf,{variant:"outlined",type:"primary",size:"large",onClick:e},Bt.createElement(Av,{variant:"title",size:"medium",color:"primary"},ri.t("No, Cancel")))),"DeleteContent");import{i18n as Xs}from"@lingui/core";import{PendingSwapNetworkStatus as js}from"rango-types";var Ys={[js.WaitingForNetworkChange]:{type:"loading",title:Xs.t("Change Network")},[js.WaitingForConnectingWallet]:{type:"warning",title:Xs.t("Connect Wallet")},[js.NetworkChanged]:{type:"success",title:Xs.t("Network Changed")}};import{debug as Zs}from"@rango-dev/logging-core";import{MessageBox as Nv,Wallet as Wv}from"@rango-dev/ui";import{useWallets as Mv}from"@rango-dev/wallets-react";import fo,{useState as uf}from"react";import{styled as pf}from"@rango-dev/ui";var cf=pf("div",{display:"flex",justifyContent:"center"}),jz=pf("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var mf=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,{connect:l,getWalletInfo:p,state:u}=Mv(),[c,g]=uf(null),[d,m]=uf(null),f=n?.walletType,S=f?Ai(u(f)):null,T=f?p(f):null,y=a&&!!f&&!!S&&!!T,C=i(()=>{c&&g({...c,open:!1})},"handleCloseNamespaceModal"),k=i(()=>{d&&m({...d,open:!1})},"handleCloseDerivationPathModal"),v=i(N=>{T?.needsDerivationPath&&T?.singleNamespace&&N[0]&&f?m({open:!0,providerType:f,providerImage:T.img,namespace:N[0]}):l(c?.providerType,void 0,N.map(x=>({namespace:x}))).catch(x=>Zs(x)),C()},"handleConfirmNamespaces"),b=i(N=>{N&&d?.namespace&&l(d?.providerType,void 0,[{namespace:d.namespace,derivationPath:N}]).catch(x=>Zs(x)),k()},"handleDerivationPathConfirm");return fo.createElement(fo.Fragment,null,fo.createElement(Nv,{type:e,title:o,description:r}),y&&fo.createElement(cf,null,fo.createElement(Wv,{container:P(),title:T.name,image:T.img,type:f,state:S,link:T.installLink,disabled:s,onClick:async()=>{T.namespaces?g({open:!0,providerType:f,providerImage:T.img,availableNamespaces:T.namespaces,singleNamespace:T.singleNamespace}):l(f).catch(N=>Zs(N))}})),fo.createElement(ro,{open:!!c?.open,onClose:C,onConfirm:v,image:c?.providerImage,availableNamespaces:c?.availableNamespaces,singleNamespace:c?.singleNamespace}),fo.createElement(oo,{open:!!d?.open,selectedNamespace:d?.namespace,type:d?.providerType,image:d?.providerImage,onClose:k,onConfirm:b}))},"WalletStateContent");function Js(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===ii.WaitingForNetworkChange||e===ii.WaitingForConnectingWallet||e===ii.NetworkChanged;return ai.createElement(re,{open:!!e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},p&&ai.createElement(mf,{type:Ys[e].type,title:Ys[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ii.WaitingForNetworkChange}),e==="delete"&&ai.createElement(lf,{onClose:o,onDelete:n}),e==="cancel"&&ai.createElement(af,{onClose:o,onCancel:r}))}i(Js,"SwapDetailsModal");import{i18n as Sn}from"@lingui/core";import{Button as Rs,Divider as si,MessageBox as df,TokenAmount as Lv,Typography as el}from"@rango-dev/ui";import Fe from"react";import{useNavigate as Bv}from"react-router-dom";function tl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:g,diagnosisUrl:d}=t,m=Bv();return Fe.createElement(re,{open:e,onClose:o,container:document.getElementById(Se.SWAP_BOX_ID)||document.body},n==="success"?Fe.createElement(df,{type:"success",title:Sn.t("Swap Successful")},Fe.createElement(Lv,{direction:"vertical",tooltipContainer:P(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),Fe.createElement(si,{size:12}),Fe.createElement(el,{variant:"body",size:"medium",color:"neutral700",align:"center"},g)):Fe.createElement(df,{type:"error",title:Sn.t("Transaction Failed"),description:g}),Fe.createElement(si,{size:32}),n==="success"&&Fe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},Fe.createElement(el,{variant:"title",size:"medium",color:"neutral100"},Sn.t("Done"))),Fe.createElement(si,{size:12}),d&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Rs,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(d,"_blank")},Sn.t("Diagnosis")),Fe.createElement(si,{size:12})),Fe.createElement(Rs,{variant:"outlined",type:"primary",size:"large",onClick:o},Fe.createElement(el,{variant:"title",size:"medium",color:"primary"},Sn.t("See Details"))))}i(tl,"SwapDetailsCompleteModal");import qv from"react";import{i18n as Ov}from"@lingui/core";import{Alert as Wf,IconButton as Uv,LinkIcon as Qv}from"@rango-dev/ui";import Vt,{Fragment as zv}from"react";import{Alert as _v,ChevronDownIcon as Dv,IconButton as $v}from"@rango-dev/ui";import Fo,{useState as Fv}from"react";import{css as Cn,darkTheme as ff,styled as Pt,Typography as Pv}from"@rango-dev/ui";var gf=Pt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),li=Pt("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${ff} &`]:{color:"$secondary500"}}}}}),hf=Pt(Ko,{padding:"$0 $20 $20 $20"}),Lq=Pt("div",{display:"flex",flexDirection:"column",gap:"$10"}),yf=Pt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),Bq=Pt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),$o=Cn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${ff} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Sf=Cn({padding:"$5 0"}),pi=Cn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Cf=Cn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Tf=Cn({width:"100%",padding:"0 $20 $10"}),kf=Pt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),vf=Pt("div",{display:"flex",flexDirection:"column",gap:"$5"}),ci=Pt(Pv,{wordBreak:"break-word"});import{styled as ol}from"@rango-dev/ui";var wf=ol("div",{display:"flex",flexDirection:"column",gap:"$10"}),xf=ol("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),bf=ol("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Ef(t){let{message:e}=t,[o,n]=Fv(!1);return Fo.createElement(_v,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Fo.createElement($v,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Fo.createElement(xf,{rotated:o},Fo.createElement(Dv,{size:12,color:"gray"}))),footer:Fo.createElement(bf,{open:o},Fo.createElement(ci,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Ef,"FailedAlert");import{i18n as If}from"@lingui/core";import{Alert as nl,Button as Af}from"@rango-dev/ui";import{PendingSwapNetworkStatus as rl}from"rango-types";import Tn from"react";function Nf(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Tn.createElement(nl,{type:"warning",title:n.shortMessage,action:Tn.createElement(Af,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},If.t("Change"))}):r===rl.WaitingForConnectingWallet?Tn.createElement(nl,{type:"warning",title:n.shortMessage,action:Tn.createElement(Af,{size:"xxsmall",type:"warning",onClick:()=>{o(rl.WaitingForConnectingWallet)}},If.t("Connect"))}):Tn.createElement(nl,{type:"warning",title:n.shortMessage})}i(Nf,"WarningAlert");function il(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Vo(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return Vt.createElement(wf,null,a.explorerUrl?.map((g,d,m)=>{let f=d+g.url,S=d===m.length-1,T=(S&&u||p)&&!c,y=S&&a.status==="failed";return Vt.createElement(zv,{key:f},Vt.createElement(Wf,{type:S&&(T&&"loading"||y&&"error")||"success",title:g.description?`${g.description} Tx`:Ov.t("View transaction"),action:g.url&&Vt.createElement(Uv,{variant:"ghost",size:"xsmall",onClick:()=>window.open(g.url,"_blank")},Vt.createElement(Qv,{size:12}))}))}),c&&Vt.createElement(Wf,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&Vt.createElement(Nf,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&Vt.createElement(Ef,{message:r}))}i(il,"SwapDetailsAlerts");var Mf=2e3;var Lf=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:Je(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:Je(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:Je(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:Je(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:Qo(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:qv.createElement(il,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Bf(t){if(Vo(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(Bf,"getStepState");function al(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=tw(),p=h().blockchains(),u=h().swappers(),{findToken:c}=h(),g=V.use.retry(),d=le.use.isActiveTab(),m=nw(),[f,S]=ew(Mf),T=ow(null),[y,C]=Ff(null),[k,v]=Ff(null),b=i(()=>{r(),C(null)},"onCancel"),N=Ee.use.getNotifications(),x=Ee.use.removeNotification(),w=N(),E=Gv(e),A=E?.networkStatus;$f(()=>{w.find(be=>be.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),x(e.requestId)):k&&v(null))},[e.status,e.requestId]),$f(()=>{L?C(ui.WaitingForNetworkChange):A===ui.WaitingForConnectingWallet||A===ui.NetworkChanged?C(A):C(null)},[A]);let B=Lp(e),z=E?Hv(e,E):null,I=E?Vv(e,E):null,U=nf(e),te=Bp(e),G=i(se=>!!l(se)?.mobileWallet,"isMobileWallet"),L=A===ui.WaitingForNetworkChange&&!!z&&!!I?.walletType&&(G(I.walletType)||a(I.walletType,z)),j=L?s.bind(null,I.walletType,z):void 0,ge=Mp(e,E),Y=Lf({swap:e,switchNetwork:j,showNetworkModal:A,setNetworkModal:C,message:ge,blockchains:p,swappers:u}),ie=Y.length,[he,Ce]=[e.steps[0],e.steps[ie-1]],D=Ce.outputAmount||Ce.expectedOutputAmountHumanReadable,W=e.steps.reduce((se,be)=>se+parseFloat(be.feeInUsd||""),0),pe=e.steps.find(se=>se.diagnosisUrl)?.diagnosisUrl,ce=M(parseFloat(M(D,6,6))*(Ce.toUsdPrice||0),4,4),De=M(parseFloat(e.inputAmount)*(he.fromUsdPrice||0),4,4),_=D?new Df(D).multipliedBy(Ce.toUsdPrice||0).toString():"",Q=new Df(e.inputAmount).multipliedBy(he.fromUsdPrice||0).toString(),K=et(De,ce),ae=ge.detailedMessage.content||ge.shortMessage,ee=e.status==="success"?Ze.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(D,6,6),token:Y[ie-1].to.token.displayName,conciseAddress:Dn(e.wallets[Y[ie-1].to.chain.displayName]?.address||""),chain:Y[ie-1].to.chain.displayName}}):Z.createElement(vf,null,Z.createElement(go,{variant:"body",size:"medium",color:"neutral700",align:"center"},ae?"":Ze.t("Transaction was not sent."),B?`${Ze.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),ae&&Z.createElement(ci,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",ae));return Z.createElement(de,{header:{title:Ze.t("Swap Details"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(bo,null,Z.createElement(Pf,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},Z.createElement(go,{size:"medium",variant:"label",color:"error"},Ze.t("Delete"))))},footer:te&&!k&&Z.createElement(Pf,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{let se=Jn(e,p,c);g(se),setTimeout(()=>{m("../../")},0)}},Ze.t("Try again"))},Z.createElement(ye,{compact:!0,view:!0},Z.createElement(li,null,Z.createElement("div",{className:$o()},Z.createElement(go,{variant:"label",size:"large",color:"neutral700"},`${Ze.t("Request ID")}:`),Z.createElement("div",{className:pi()},Z.createElement(go,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(_f,{container:P(),content:f?Ze.t("Copied To Clipboard"):Ze.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(Yv,{variant:"ghost",onClick:S.bind(null,o||"")},f?Z.createElement(jv,{size:16,color:"secondary"}):Z.createElement(Kv,{size:16,color:"gray"}))),Z.createElement(kf,{target:"_blank",href:`${yl}/swap/${o}`},Z.createElement(_f,{container:P(),content:Ze.t("View on Rango Explorer"),side:"bottom"},Z.createElement(Jv,{size:20}))))),Z.createElement("div",{className:$o()},Z.createElement(go,{variant:"label",size:"large",color:"neutral700"},e.finishTime?Ze.t("Finished at"):Ze.t("Created at")),Z.createElement(go,{variant:"label",size:"small",color:"neutral700"},U))),Z.createElement("div",{className:Cf()},Z.createElement(Zv,{fee:M(String(W),2,2),time:zo(Nn(e.steps)),steps:ie}),Z.createElement(en,{from:{price:{value:M(e.inputAmount,6,6),usdValue:De,realUsdValue:Q,realValue:e.inputAmount},token:{displayName:Y[0].from.token.displayName,image:Y[0].from.token.image},chain:{image:Y[0].from.chain.image,displayName:Y[0].from.chain.displayName}},to:{price:{value:M(D,6,6),usdValue:ce,realUsdValue:_,realValue:D||""},token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image,displayName:Y[ie-1].to.chain.displayName}},percentageChange:M(K,2,2),warningLevel:xt(K??0)})),Z.createElement("div",{className:Tf()},Z.createElement(go,{variant:"title",size:"small"},Ze.t("Swaps steps"))),Z.createElement(Xv,{size:8}),Z.createElement(hf,{ref:T},Y.map((se,be)=>{let wn=be,Oo=Bf(e.steps[be]),sg=Oo==="error"||Oo==="in-progress"||Oo==="warning"||Oo==="completed"&&be===Y.length-1;return Z.createElement(Rv,{key:wn,step:se,type:"swap-progress",ref:T,state:Oo,hasSeparator:be!==0,tabIndex:wn,isFocused:sg,tooltipContainer:P()})}))),Z.createElement(Js,{state:y,onClose:()=>C(null),onCancel:b,onDelete:n,message:ge.detailedMessage.content,currentStepWallet:I,walletButtonDisabled:!d}),Z.createElement(tl,{open:!!k,diagnosisUrl:pe,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(D,6,6),usdValue:ce,realUsdValue:_,realValue:D||"",percentageChange:M(K,2,2),token:{displayName:Y[ie-1].to.token.displayName,image:Y[ie-1].to.token.image},chain:{image:Y[ie-1].to.chain.image},description:ee}))}i(al,"SwapDetails");import{i18n as di}from"@lingui/core";import{Divider as Qf,NotFound as lw,Skeleton as vn,Typography as fi}from"@rango-dev/ui";import ve from"react";import{i18n as rw}from"@lingui/core";import{Divider as iw,Skeleton as aw,Typography as sw}from"@rango-dev/ui";import xe from"react";import{css as ft,styled as sl}from"@rango-dev/ui";var Of=sl("div",{width:"100%",height:"100%",padding:"$10 $20"}),kn=sl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),mi=sl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),GH=ft({display:"flex",justifyContent:"space-between",alignItems:"center"}),VH=ft({display:"flex",justifyContent:"space-between",alignItems:"center"}),KH=ft({paddingTop:"$15",display:"flex"}),XH=ft({padding:"$15 $0"}),jH=ft({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),YH=ft({paddingBottom:"$10"}),ZH=ft({display:"flex",justifyContent:"start",alignItems:"center"}),JH=ft({paddingTop:"$5",display:"flex",alignItems:"center"}),RH=ft({display:"flex",alignItems:"center"}),eG=ft({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Uf=ft({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ll(){return xe.createElement(Of,null,xe.createElement(nn,{type:"swap-preview"}),xe.createElement("div",{className:"swaps-steps"},xe.createElement(sw,{variant:"title",size:"small"},rw.t("Swaps steps"))),xe.createElement(xe.Fragment,null,xe.createElement(kn,null,xe.createElement(Ct,{separator:!1}),xe.createElement("div",{className:Uf()},xe.createElement(iw,{direction:"horizontal",size:20}),xe.createElement(aw,{height:22,variant:"rectangular"}))),xe.createElement(mi,null),xe.createElement(kn,null,xe.createElement(Ct,{separator:!1})),xe.createElement(mi,null),xe.createElement(kn,null,xe.createElement(Ct,{separator:!1})),xe.createElement(mi,null),xe.createElement(kn,null,xe.createElement(Ct,{separator:!1}))))}i(ll,"LoadingSwapDetails");function zf(t){let{requestId:e,showSkeleton:o}=t;return ve.createElement(de,{header:{title:di.t("Swap Details"),suffix:ve.createElement(bo,null)}},o&&ve.createElement(gf,null,ve.createElement(li,null,ve.createElement("div",{className:$o()},ve.createElement(fi,{variant:"label",size:"large",color:"neutral700"},`${di.t("Request ID")}:`),ve.createElement("div",{className:pi()},ve.createElement(fi,{variant:"label",size:"small",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})),ve.createElement(Qf,{direction:"horizontal",size:4}),ve.createElement(vn,{width:16,height:16,variant:"rectangular"}),ve.createElement(Qf,{direction:"horizontal",size:4}),ve.createElement(vn,{width:16,height:16,variant:"rectangular"}))),ve.createElement("div",{className:$o()},ve.createElement(fi,{className:Sf(),variant:"label",size:"large",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})),ve.createElement(fi,{variant:"label",size:"small",color:"neutral700"},ve.createElement(vn,{width:60,height:10,variant:"rounded"})))),ve.createElement(ll,null)),!o&&ve.createElement(yf,null,ve.createElement(lw,{title:di.t("Not found"),description:di.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(zf,"SwapDetailsPlaceholder");function qf(){let{manager:t,state:e}=uw(),o=!e.loadedFromPersistor,n=ot(t),{requestId:r}=dw(),a=tt(),{fetchStatus:s}=h();if(!r)return pl.createElement(mw,{containerStyles:{margin:"20px"},type:"error",title:pw.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:d})=>d.requestId===r):void 0,u=i(()=>{if(p?.id){let d=t?.get(p.id);d&&cw(d)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(d){console.log(d)}},"onDelete"),g=p?.swap;return!g||l?pl.createElement(zf,{requestId:r,showSkeleton:l}):pl.createElement(al,{swap:g,requestId:r,onCancel:u,onDelete:c})}i(qf,"SwapDetailsPage");function Hf(){return qp(),Ji(),fw([{path:q.home,element:Ke.createElement(sd,null)},{path:q.routes,element:Ke.createElement(md,null)},{path:q.fromSwap,children:[{index:!0,element:Ke.createElement(Qs,{type:"source"})},{path:q.blockchains,element:Ke.createElement(xs,{type:"source"})}]},{path:q.toSwap,children:[{index:!0,element:Ke.createElement(Qs,{type:"destination"})},{path:q.blockchains,element:Ke.createElement(xs,{type:"destination"})}]},{path:q.settings,children:[{index:!0,element:Ke.createElement(tf,null)},{path:q.languages,element:Ke.createElement(pd,null)},{path:q.exchanges,element:Ke.createElement(ks,{sourceType:"Exchanges"})},{path:q.bridges,element:Ke.createElement(ks,{sourceType:"Bridges"})}]},{path:q.swaps,children:[{index:!0,element:Ke.createElement(Om,null)},{path:q.swapDetails,element:Ke.createElement(qf,null)}]},{path:q.wallets,element:Ke.createElement(Yc,null)},{path:q.confirmSwap,element:Ke.createElement(Im,null)}])}i(Hf,"AppRoutes");import{useQueueManager as ww}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as xw}from"@rango-dev/wallets-shared";import{isEvmBlockchain as bw}from"rango-sdk";import{useContext as Ew,useEffect as Zf,useState as Jf}from"react";import{globalCss as gw}from"@rango-dev/ui";var Gf=i(()=>gw({"@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 Vf(){let{setWatermark:t}=le();return{fetchApiConfig:i(async()=>{let o=await fetch(`${wt("BASE_URL")}/meta/dapp/config?apiKey=${wt("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(Vf,"useFetchApiConfig");import{useWallets as hw}from"@rango-dev/wallets-react";import{useEffect as yw,useRef as Sw}from"react";function Kf(){let{connect:t,state:e}=hw(),o=Sw({}),{fetchStatus:n}=h(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);yw(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Kf,"useForceAutoConnect");import{isApprovalTX as Cw,RouteEventType as Xf,StepEventType as jf,StepExecutionEventStatus as Tw,WidgetEvents as gi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Yf}from"react";function cl(){let t=oe.use.connectedWallets(),e=oe.use.getWalletsDetails(),o=Ee.use.setNotification(),{findToken:n}=h();Yf(()=>{let r=i(a=>{let{event:s,step:l,route:p}=a;if(s.type===jf.TX_EXECUTION&&s.status===Tw.TX_SENT&&!Cw(l)||s.type===jf.SUCCEEDED){let c=t.find(d=>d.chain===l?.fromBlockchain),g=l?.fromBlockchain!==l?.toBlockchain&&t.find(d=>d.chain===l?.toBlockchain);c&&e([c],n),g&&e([g],n)}o(s,p)},"handleStepEvent");return Te.on(gi.StepEvent,r),()=>Te.off(gi.StepEvent,r)},[Te,t]),Yf(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Xf.FAILED||s.type===Xf.SUCCEEDED)&&o(s,l)},"handleRouteEvent");return Te.on(gi.RouteEvent,r),()=>Te.off(gi.RouteEvent,r)},[Te])}i(cl,"useSubscribeToWidgetEvents");import{useManager as kw}from"@rango-dev/queue-manager-react";import{useEffect as vw}from"react";function ul(){let{isSynced:t,syncNotifications:e}=Ee(),{manager:o,state:n}=kw();vw(()=>{Ee.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ot(o))},[Ee.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ul,"useSyncNotifications");function ml(){Kf(),Gf(),cl(),ul();let t=h().blockchains(),{canSwitchNetworkTo:e}=Tr(),[o,n]=Jf(""),[r,a]=Jf(),s=Ew(zn),l=t.filter(bw),{fetchApiConfig:p}=Vf();Zf(()=>()=>zp(),[]),ww({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Zf(()=>(jt.init(),Ee.persist.hasHydrated()||Ee.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===xw(o)?.[0]&&n("")}),p().catch(console.log),jt.destroy),[])}i(ml,"useBootstrap");import{styled as Iw}from"@rango-dev/ui";var Rf=Iw("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function hi(){ml();let{config:t}=h(),{activeTheme:e}=pr(t?.theme||{}),{activeLanguage:o}=qt();return dl.createElement(Aw,{language:o},dl.createElement(Rf,{id:"swap-container",className:e()},dl.createElement(Hf,null)))}i(hi,"Main");import{setSolanaSignerConfig as Xw}from"@rango-dev/signer-solana";import gl,{useEffect as rg,useMemo as jw}from"react";import{useState as Nw}from"react";var Ww=i(()=>{let[t,e]=Nw(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=Il(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),eg=Ww;import{checkWaitingForNetworkChange as Mw,makeQueueDefinition as Lw}from"@rango-dev/queue-manager-rango-preset";import{Provider as Bw}from"@rango-dev/queue-manager-react";import{useWallets as Pw}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as _w}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Dw}from"rango-types";import $w,{useMemo as Fw}from"react";function Ow(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=Pw(),l=Fw(()=>Lw({API_KEY:t.apiKey||wt("API_KEY"),BASE_URL:wt("BASE_URL"),emitter:{emit:Te.emit}}),[t.apiKey]),p=h().blockchains(),c={blockchains:oe.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},g=i(async(k,v)=>{if(a(k,v))return r(k,v)},"switchNetwork"),d=i(k=>!!s(k).mobileWallet,"isMobileWallet"),m=p.filter(k=>k.enabled).reduce((k,v)=>(k[v.name]=v,k),{}),f=p.filter(Dw),S=i(k=>{let{supportedChains:v}=s(k);return Ln(v)},"getSupportedChainNames"),T=e(),y={meta:{blockchains:m,evmBasedChains:f,evmNetworkChainInfo:_w(f),getSupportedChainNames:S},getSigners:o,wallets:c,providers:T,switchNetwork:g,canSwitchNetworkTo:a,connect:r,state:n,isMobileWallet:d},C=le.use.isActiveTab();return $w.createElement(Bw,{queuesDefs:[l],context:y,onPersistedDataLoaded:k=>{Mw(k)},isPaused:!C},t.children)}i(Ow,"QueueManager");var tg=Ow;import{useManager as Hw}from"@rango-dev/queue-manager-react";import Gw,{createContext as Vw,useContext as Kw}from"react";import{cancelSwap as Uw,getCurrentBlockchainOfOrNull as Qw,getCurrentStep as zw,getRelatedWalletOrNull as qw}from"@rango-dev/queue-manager-rango-preset";var yi=class{static{i(this,"WidgetHistory")}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=Jn(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&Uw(o)}getCurrentStepInfo(e){let o=zw(e);return{step:o,wallet:o?qw(e,o):null,network:o?Qw(e,o):null}}};var og=Vw(void 0);function fl(t){let{manager:e}=Hw(),o=le.use.isActiveTab(),n=V.use.retry(),{findToken:r}=h(),a=new yi(e,{retrySwap:n,findToken:r}),s=oe.use.connectedWallets(),l=oe.use.loading(),p=_l(s),u=oe.use.getWalletsDetails(),c=h().blockchains(),g=h().tokens(),d=h().swappers(),m=h().fetchStatus,f=qt().resetLanguage,S=Ee().getNotifications(),T=Ee().clearNotifications,y={isActiveTab:o,setCurrentTabAsActive:jt.forceClaim,history:a,wallets:{isLoading:l,details:s,totalBalance:p,refetch:C=>u(C,r)},meta:{blockchains:c,tokens:g,swappers:d,loadingStatus:m,findToken:r},resetLanguage:f,notifications:{list:S,clearAll:T}};return Gw.createElement(og.Provider,{value:y},t.children)}i(fl,"WidgetInfo");function ng(){let t=Kw(og);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(ng,"useWidget");function Si(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=eg();return rg(()=>{n&&r(n)},[n]),jw(()=>{ql({API_KEY:o?.apiKey||xn,BASE_URL:o?.apiUrl||hl})},[o.apiKey,o.apiUrl]),rg(()=>{t.config?.signers?.customSolanaRPC&&Xw("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),gl.createElement(qn,{config:o,onUpdateState:e},gl.createElement(tg,{apiKey:o.apiKey},gl.createElement(fl,null,t.children)))}i(Si,"WidgetProvider");function ig(t){let e=t.config?.externalWallets;return Ci.createElement(fp,null,e?Ci.createElement(hi,null):Ci.createElement(Si,{config:t.config??Fi},Ci.createElement(hi,null)))}i(ig,"Widget");function ag(){let{on:t,off:e}=Te;return{on:t,off:e}}i(ag,"useWidgetEvents");export{y5 as EventSeverity,yo as MainEvents,E5 as Networks,N5 as PendingSwapNetworkStatus,Bi as QuoteEventTypes,S5 as RouteEventType,Ti as SUPPORTED_FONTS,C5 as StepEventType,T5 as StepExecutionBlockedEventStatus,k5 as StepExecutionEventStatus,Se as UI_ID,_i as UiEventTypes,Pi as WalletEventTypes,x5 as WalletEvents,I5 as WalletTypes,ig as Widget,yo as WidgetEvents,Si as WidgetProvider,qn as WidgetWallets,ua as customizedThemeTokens,w5 as readAccountAddress,Jt as useWalletList,Tr as useWallets,ng as useWidget,ag as useWidgetEvents,ug as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map