@rango-dev/widget-embedded 0.17.1-next.25 → 0.17.1-next.27

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 (80) hide show
  1. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +3 -3
  2. package/dist/components/HeaderButtons/HomeButtons.d.ts.map +1 -1
  3. package/dist/components/Layout/Layout.d.ts.map +1 -1
  4. package/dist/components/NoResult/NoResult.d.ts.map +1 -1
  5. package/dist/components/Quote/Quote.styles.d.ts +1 -1
  6. package/dist/components/Slippage/Slippage.d.ts.map +1 -1
  7. package/dist/components/TokenList/TokenList.d.ts.map +1 -1
  8. package/dist/components/TokenList/TokenList.helpers.d.ts +2 -2
  9. package/dist/components/TokenList/TokenList.helpers.d.ts.map +1 -1
  10. package/dist/components/TokenList/TokenList.types.d.ts +3 -9
  11. package/dist/components/TokenList/TokenList.types.d.ts.map +1 -1
  12. package/dist/components/TokenList/index.d.ts +0 -1
  13. package/dist/components/TokenList/index.d.ts.map +1 -1
  14. package/dist/containers/App/App.d.ts.map +1 -1
  15. package/dist/hooks/useLanguage.d.ts.map +1 -1
  16. package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
  17. package/dist/hooks/useTheme.d.ts +1 -1
  18. package/dist/hooks/useTheme.d.ts.map +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/index.js.map +4 -4
  21. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  22. package/dist/pages/Home.d.ts.map +1 -1
  23. package/dist/pages/LiquiditySourcePage.d.ts.map +1 -1
  24. package/dist/pages/SelectSwapItemsPage.d.ts.map +1 -1
  25. package/dist/pages/SettingsPage.d.ts.map +1 -1
  26. package/dist/pages/ThemePage.d.ts.map +1 -1
  27. package/dist/store/AppStore.d.ts +37 -1
  28. package/dist/store/AppStore.d.ts.map +1 -1
  29. package/dist/store/app.d.ts +39 -2
  30. package/dist/store/app.d.ts.map +1 -1
  31. package/dist/store/quote.d.ts +4 -5
  32. package/dist/store/quote.d.ts.map +1 -1
  33. package/dist/store/slices/settings.d.ts +39 -0
  34. package/dist/store/slices/settings.d.ts.map +1 -0
  35. package/dist/store/wallets.d.ts +5 -2
  36. package/dist/store/wallets.d.ts.map +1 -1
  37. package/dist/types/config.d.ts +28 -9
  38. package/dist/types/config.d.ts.map +1 -1
  39. package/dist/types/wallets.d.ts +15 -1
  40. package/dist/types/wallets.d.ts.map +1 -1
  41. package/dist/utils/settings.d.ts +4 -1
  42. package/dist/utils/settings.d.ts.map +1 -1
  43. package/dist/utils/wallets.d.ts +6 -8
  44. package/dist/utils/wallets.d.ts.map +1 -1
  45. package/package.json +3 -3
  46. package/src/components/HeaderButtons/HomeButtons.tsx +28 -18
  47. package/src/components/Layout/Layout.tsx +11 -1
  48. package/src/components/NoResult/NoResult.tsx +2 -5
  49. package/src/components/QuoteWarningsAndErrors/SlippageWariningModal.tsx +2 -2
  50. package/src/components/Slippage/Slippage.tsx +3 -5
  51. package/src/components/TokenList/TokenList.helpers.ts +2 -2
  52. package/src/components/TokenList/TokenList.tsx +10 -12
  53. package/src/components/TokenList/TokenList.types.ts +3 -10
  54. package/src/components/TokenList/index.ts +0 -1
  55. package/src/containers/App/App.tsx +0 -2
  56. package/src/containers/Wallets/Wallets.tsx +3 -3
  57. package/src/hooks/useConfirmSwap/useConfirmSwap.ts +4 -4
  58. package/src/hooks/useLanguage.ts +2 -3
  59. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.ts +2 -2
  60. package/src/hooks/useSwapInput.ts +4 -4
  61. package/src/hooks/useSyncStoresWithConfig.ts +1 -2
  62. package/src/hooks/useTheme.ts +4 -5
  63. package/src/pages/ConfirmSwapPage.tsx +2 -3
  64. package/src/pages/Home.tsx +9 -33
  65. package/src/pages/LiquiditySourcePage.tsx +3 -3
  66. package/src/pages/SelectSwapItemsPage.tsx +3 -6
  67. package/src/pages/SettingsPage.tsx +22 -11
  68. package/src/pages/ThemePage.tsx +2 -3
  69. package/src/store/AppStore.tsx +7 -1
  70. package/src/store/app.ts +31 -5
  71. package/src/store/quote.ts +2 -3
  72. package/src/store/slices/settings.ts +168 -0
  73. package/src/store/wallets.ts +56 -29
  74. package/src/types/config.ts +38 -8
  75. package/src/types/wallets.ts +18 -1
  76. package/src/utils/settings.ts +11 -5
  77. package/src/utils/wallets.ts +80 -134
  78. package/dist/store/settings.d.ts +0 -83
  79. package/dist/store/settings.d.ts.map +0 -1
  80. package/src/store/settings.ts +0 -161
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var zu=Object.defineProperty;var s=(t,e)=>zu(t,"name",{value:e,configurable:!0});import{MainEvents as a$,PendingSwapNetworkStatus as l$,RouteEventType as p$,StepEventType as u$,StepExecutionBlockedEventStatus as c$,StepExecutionEventStatus as m$,useEvents as d$}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as g$,useWallets as Ka,Events as h$}from"@rango-dev/wallets-react";import{Networks as S$,WalletTypes as C$}from"@rango-dev/wallets-shared";import{Events as yr,Provider as vc}from"@rango-dev/wallets-react";import{isEvmBlockchain as xc}from"rango-sdk";import Ro,{createContext as bc,useEffect as Ec,useRef as Ac}from"react";import{useEffect as Xo,useLayoutEffect as Ys,useMemo as Yo,useRef as Jo}from"react";import lc,{createContext as pc,useContext as uc,useRef as cc}from"react";import{create as ac}from"zustand";var or={apiKey:"",multiWallets:!0,enableNewLiquiditySources:!0},Ri=s((t,e,o)=>({config:{...or,...t},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})}}),"createConfigSlice");import{RangoClient as qu}from"rango-sdk";var Ao="c6381a79-2817-4602-83bf-6a641a409e32",es="https://api.rango.exchange";var nr={API_KEY:Ao};function Wt(t){return nr[t]||""}s(Wt,"getConfig");function ts(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),nr=e,nr}s(ts,"initConfig");var os=20,ns=25,rs="Roboto",rr="theme-widget";var Io,Nt=s(()=>Io||(Io=new qu(Wt("API_KEY"),Wt("BASE_URL")),Io),"httpService");function Lt(t){return Array.from(new Set(t))}s(Lt,"removeDuplicateFrom");function ir(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}s(ir,"areEqual");function is(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}s(is,"debounce");function Ct(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}s(Ct,"containsText");var K=s(()=>document.getElementById("swap-box"),"getContainer");import{create as Ku}from"zustand";import{persist as Xu,subscribeWithSelector as Yu}from"zustand/middleware";import{English as Gu,French as Qu,Japanese as Hu,Spanish as Vu}from"@rango-dev/ui";var ss=[{title:"English",label:"English",local:"en",SVGFlag:Gu},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Vu},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Qu},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Hu}],Kt="en";var as=[.5,1,3],ls=1,ps=5,us=100,cs=0;var ju=s(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),je=ju;var U=je(Ku()(Xu(Yu((t,e)=>({preferredBlockchains:[],slippage:ls,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,disabledLiquiditySources:[],theme:"auto",language:Kt,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((a,l)=>{let p=a===o,u=l<=10-1;return p&&u}))return;let i=n.filter(a=>!(a===o));t(()=>({preferredBlockchains:[o,...i]}))},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 i=Lt(o.map(a=>a.swapperGroup));return i.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:i}}),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}))})),{name:"user-settings",skipHydration:!0})));function Wo(t){let e=U.use.disabledLiquiditySources(),o=t.map(i=>i.swapperGroup),n=[];return Lt(t.map(i=>i.swapperGroup)).map(i=>{let a=t.find(l=>l.swapperGroup===i);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}s(Wo,"getUniqueSwappersGroups");function ms(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}s(ms,"sortLiquiditySourcesByGroupTitle");import{WalletState as Xe}from"@rango-dev/ui";import{readAccountAddress as Ru}from"@rango-dev/wallets-react";import{detectInstallLink as ec,getCosmosExperimentalChainInfo as tc,isEvmAddress as oc,KEPLR_COMPATIBLE_WALLETS as iS,Networks as gs}from"@rango-dev/wallets-shared";import Mo from"bignumber.js";import{isCosmosBlockchain as nc}from"rango-types";import Ju from"bignumber.js";var ke=new Ju(0);import{WalletTypes as Zu}from"@rango-dev/wallets-shared";var ds=[Zu.LEAP];import{BigNumber as fs}from"bignumber.js";var No=s(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),A=s((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new fs(t),r=1,i=1e3;for(let a=0;a<60;a++)if(new fs(n.toFixed(a,r)).eq(n)){i=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(i,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(i,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(i,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(i,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(i,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Lo=s(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Ke=s((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Xt=s(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Bo(t,e=4){let o=parseFloat(t);if(isNaN(o))return t;let n=Math.pow(10,e);return(Math.round(o*n)/n).toString()}s(Bo,"limitDecimalPlaces");function rc(t){switch(!0){case t.connected:return Xe.CONNECTED;case t.connecting:return Xe.CONNECTING;case!t.installed:return Xe.NOT_INSTALLED;default:return Xe.DISCONNECTED}}s(rc,"mapStatusToWalletState");function hs(t,e,o,n){return o.filter(r=>!ds.includes(r)).filter(r=>{let{supportedChains:i,isContractWallet:a}=e(r),{installed:l,network:p}=t(r);return a&&(!l||!!n&&p!==n)?!1:n?!!i.find(m=>m.name===n):!0}).map(r=>{let{name:i,img:a,installLink:l}=e(r),p=rc(t(r));return{title:i,image:a,link:ec(l),state:p,type:r}})}s(hs,"mapWalletTypesToWalletInfo");function Po(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}s(Po,"walletAndSupportedChainsNames");function ys(t,e,o,n,r){let i=[];function a(p,u){if(!!!i.find(c=>c.chain===p)){let c={address:u,chain:p,walletType:t};i.push(c)}}s(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:m}=Ru(p),c=l.length>0,h=l.includes(m),d=m===gs.Unknown;if(c&&!h&&!d)return;let x=m===gs.Unknown&&oc(u);if(d&&!x)return;o.includes(m)||x?r?a(m,u.toLowerCase()):l.filter(g=>o.includes(g)).forEach(g=>{a(g,u.toLowerCase())}):a(m,u)}),i}s(ys,"prepareAccountsForWalletStore");function Ss(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain;e.includes(n)||e.push(n),e.includes(r)||e.push(r),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(i=>{let a=i.from.blockchain,l=i.to.blockchain;e.includes(a)||e.push(a),e.includes(l)||e.push(l)})}),e}s(Ss,"getRequiredChains");function Bt(t,e,o,n){if(t.length===0)return null;let r=t.filter(i=>i.chain===e);return r.length===0?null:r.map(i=>i.balances?.find(a=>n!==null&&a.address===n||n===null&&a.address===n&&a.symbol===o)||null).filter(i=>i!==null).sort((i,a)=>parseFloat(a?.amount||"0")-parseFloat(i?.amount||"1")).find(()=>!0)||null}s(Bt,"getBalanceFromWallet");function $o(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}s($o,"isAccountAndWalletMatched");function Cs(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 Mo(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:_o(o,r.asset.symbol,r.asset.address,e)||null}))||[]}s(Cs,"makeBalanceFor");function ks(t){return{...t,loading:!1,error:!0}}s(ks,"resetConnectedWalletState");var Ts=s(t=>{let e=new Set,n=t?.reduce((i,a)=>i.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...i,a]:i,[])?.map(i=>{let a={name:i.chain,accounts:[]};return e.has(i.address)||e.add(i.address),e.forEach(l=>{i.address===l&&a.accounts.push(i)}),a}),r=A(n?.flatMap(i=>i.accounts)?.flatMap(i=>i?.balances)?.map(i=>new Mo(i?.amount||ke).multipliedBy(i?.usdPrice||0))?.reduce((i,a)=>i.plus(a),ke)||ke).toString();return ic(r)},"calculateWalletUsdValue");function ic(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}s(ic,"numberWithThousandSeparator");var _o=s((t,e,o,n)=>n?.find(i=>i.blockchain===t&&i.symbol?.toUpperCase()===e?.toUpperCase()&&i.address===o)?.usdPrice||null,"getUsdPrice"),Do=s((t,e)=>{let o=tc(Object.entries(t).map(([,n])=>n).filter(nc));return o&&o[e]?.experimental},"isExperimentalChain");function sc(t,e){return t.map(({balance:o,...n})=>{let r=A(new Mo(Bt(e,n.blockchain,n.symbol,n.address)?.amount||ke)),i="";return n.usdPrice&&(i=A(new Mo(Bt(e,n.blockchain,n.symbol,n.address)?.amount||ke).multipliedBy(n.usdPrice))),{...n,...r!=="0"&&{balance:{amount:r,usdValue:i}}}})}s(sc,"getTokensWithBalance");function ws(t,e){let o=e.length>0?sc(t,e):t;return o.sort((n,r)=>n.balance?.usdValue&&r.balance?.usdValue?parseFloat(r.balance.usdValue)-parseFloat(n.balance.usdValue):!n.balance?.usdValue&&r.balance?.usdValue?1:n.balance?.usdValue&&!r.balance?.usdValue?-1:!n.balance?.usdValue&&!r.balance?.usdValue?parseFloat(r.balance?.amount||"0")-parseFloat(n.balance?.amount||"0"):0),o}s(ws,"getTokensBalanceFromWalletAndSort");function We(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}s(We,"tokensAreEqual");function vs(t){return t.sort((e,o)=>+(o.state===Xe.CONNECTED)-+(e.state===Xe.CONNECTED)||+(o.state===Xe.DISCONNECTED||o.state===Xe.CONNECTING)-+(e.state===Xe.DISCONNECTED||e.state===Xe.CONNECTING))}s(vs,"sortWalletsBasedOnConnectionState");function Fo(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}`}s(Fo,"getConciseAddress");function xs({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}s(xs,"getAddress");var bs=s((t,e)=>({_blockchains:[],_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchains;if(!o||!o?.type)return n;let r=e().config,i=(o.type==="source"?r.from?.blockchains:r.to?.blockchains)??[];return n.filter(l=>!(i.length>0&&!i.includes(l.name)))},tokens:o=>{let n=e()._tokens;if(!o||!o?.type)return n;let r=e().config,i=(o.type==="source"?r.from?.tokens:r.to?.tokens)??[],a=e().blockchains({type:o.type});return n.filter(p=>i.length>0&&!i.some(u=>We(u,p))||o.blockchain&&p.blockchain!==o.blockchain||!a.some(u=>u.name===p.blockchain)?!1:o.searchFor?!!(Ct(p.symbol,o.searchFor)||Ct(p.address||"",o.searchFor)||Ct(p.name||"",o.searchFor)):!0).sort((p,u)=>e().isTokenPinned(p)?-1:e().isTokenPinned(u)||p.isSecondaryCoin?1:u.isSecondaryCoin||!p.address&&u.address?-1:p.address&&!u.address?1:0)},isTokenPinned:o=>!!e().config.pinnedTokens?.some(r=>We(r,o)),swappers:()=>{let{config:{enableNewLiquiditySources:o,liquiditySources:n}}=e();return e()._swappers.filter(a=>{let l=n?.includes(a.swapperGroup);return o||!n||n.length===0?!l:l}).sort(ms)},fetch:async()=>{try{let o=await Nt().getAllMetadata();t({fetchStatus:"success"});let n=[],r=[],i=o.popularTokens,a=o.swappers,l=new Set;o.tokens.forEach(p=>{l.add(p.blockchain),r.push(p)}),o.blockchains.forEach(p=>{p.enabled&&l.has(p.name)&&n.push(p)}),n.sort((p,u)=>p.sort-u.sort),t({_blockchains:n,_tokens:r,_popularTokens:i,_swappers:a})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");function Es(t){return ac()((...e)=>({...bs(...e),...Ri(t,...e)}))}s(Es,"createAppStore");var As=pc(null);function k(){let t=uc(As);if(!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}s(k,"useAppStore");function Is(t){let e=cc();return e.current||(e.current=Es(t.config)),lc.createElement(As.Provider,{value:e.current},t.children)}s(Is,"AppStoreProvider");import mt from"bignumber.js";import{create as yc}from"zustand";import{subscribeWithSelector as Sc}from"zustand/middleware";import{getLastSuccessfulStep as hc}from"@rango-dev/queue-manager-rango-preset";import uC from"bignumber.js";var ut=(r=>(r[r.HIGH_VALUE_LOSS=0]="HIGH_VALUE_LOSS",r[r.UNKNOWN_PRICE=1]="UNKNOWN_PRICE",r[r.INSUFFICIENT_SLIPPAGE=2]="INSUFFICIENT_SLIPPAGE",r[r.HIGH_SLIPPAGE=3]="HIGH_SLIPPAGE",r))(ut||{});function Ws(t,e){return e.find(o=>o.name===t)?.displayName}s(Ws,"getBlockchainDisplayNameFor");function Ye(t,e){return e.find(o=>o.name===t)?.shortName}s(Ye,"getBlockchainShortNameFor");function Ns(t,e){return e.find(o=>o.id===t)?.swapperGroup}s(Ns,"getSwapperDisplayName");function ar(t,e){return e.find(o=>We(o,t))??null}s(ar,"findToken");function lr(t,e){return e.find(o=>o.name===t)??null}s(lr,"findBlockchain");import{i18n as Fe}from"@lingui/core";import{PendingSwapNetworkStatus as qo}from"@rango-dev/queue-manager-rango-preset";import Te from"bignumber.js";function Oo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,i=e[e.length-1];n!=i&&e.push(n),i=e[e.length-1],r!=i&&e.push(r)}),e}s(Oo,"getRequiredWallets");function Uo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}s(Uo,"isValidAddress");import{i18n as fe}from"@lingui/core";var H=s(()=>({genericServerError:fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:fe.t("Please reset your liquidity sources."),description:fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:fe.t("No Routes Found."),description:fe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:fe.t("High Price Impact"),title:fe.t("Price impact is too high!"),description:fe.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:fe.t("USD Price Unknown"),title:fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:fe.t("Confirm USD Price Unknown")}}),"errorMessages");function Ls(t){switch(t.type){case 0:return t.diagnosisMessage??H().noResultError.title;case 1:return H().genericServerError;default:return""}}s(Ls,"getQuoteErrorMessage");import{i18n as zo}from"@lingui/core";var kt=s(()=>({connectWallet:zo.t("Connect Wallet"),swap:zo.t("Swap"),swapAnyway:zo.t("Swap anyway"),ethWarning:zo.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Bs(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Te(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Te(1e3)))??!1}s(Bs,"hasHighValueLoss");function pr(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new Te(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Te(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}s(pr,"hasLimitError");function ur(t){let e=(t.result?.swaps||[]).filter(l=>{let p=l.fromAmountMinValue?new Te(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Te(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 Te(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Te(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",i="",a="";return!r&&o&&o.gt(e.fromAmount)?(i=Fe.t({id:"Required: >= {min} {symbol}",values:{min:A(o,6,6),symbol:e.from.symbol}}),a=H().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(i=Fe.t({id:"Required: > {min} {symbol}",values:{min:A(o,6,6),symbol:e.from.symbol}}),a=H().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(i=Fe.t({id:"Required: <= {max} {symbol}",values:{max:A(n,6,6),symbol:e.from.symbol}}),a=H().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(i=Fe.t({id:"Required: < {max} {symbol}",values:{max:A(n,6,6),symbol:e.from.symbol}}),a=H().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:i,recommendation:a}}s(ur,"getLimitErrorMessage");function Ms(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:i,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:kt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!i||!i.result||l||!r||r==="0"?{title:kt().swap,action:"confirm-swap",disabled:!0}:a?{title:kt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:kt().ethWarning,action:"confirm-warning",disabled:!1}:{title:kt().swap,action:"confirm-swap",disabled:!1}:{title:kt().connectWallet,action:"connect-wallet",disabled:!1}}s(Ms,"getSwapButtonState");function cr(t,e,o){return!((!o||o.lte(ke))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}s(cr,"canComputePriceImpact");function mc(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,i=e[e.length-1];n!=i&&e.push(n),i=e[e.length-1],r!=i&&e.push(r)}),e}s(mc,"requiredWallets");var dc=s((t,e,o,n)=>n?.find(i=>i.blockchain===t&&i.symbol?.toUpperCase()===e?.toUpperCase()&&i.address===o)?.usdPrice||null,"getUsdPrice");function fc(t,e){let o=ke;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let i=dc(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new Te(r.amount).multipliedBy(i||0))}return o}s(fc,"getUsdFeeOfStep");function Ho(t,e){return t.reduce((o,n)=>o.plus(fc(n,e)),ke)}s(Ho,"getTotalFeeInUsd");function mr(t){let e=new Map;return t.result?.swaps.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}s(mr,"checkSlippageErrors");function Ps(t,e){let o=new Map;return t.result?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}s(Ps,"checkSlippageWarnings");function Vo(t){return t.result?.swaps.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}s(Vo,"getMinRequiredSlippage");function $s(t,e){return e?parseFloat(t)>=parseFloat(e):!0}s($s,"hasProperSlippage");function jo(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:i,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:m,affiliatePercent:c,affiliateWallets:h,initialQuote:d,destination:y}=t,x=i?.reduce((S,C)=>(S[C.chain]=C.address,S),{}),f=[];r?.forEach(S=>{let C=f.find(B=>B.blockchain===S.chain);C?C.addresses.push(S.address):f.push({blockchain:S.chain,addresses:[S.address]})});let b=!!d,g=Lt((d?.result?.swaps||[]).reduce((S,C)=>(S.push(C.from.blockchain,C.to.blockchain),C.internalSwaps&&Array.isArray(C.internalSwaps)&&C.internalSwaps.map(B=>{S.push(B.from.blockchain,B.to.blockchain)}),S),[]));return{amount:n.toString(),affiliateRef:m??void 0,affiliatePercent:c??void 0,affiliateWallets:h??void 0,checkPrerequisites:b,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:f,selectedWallets:x??{},slippage:u.toString(),...y&&{destination:y},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!a.includes(S)),swappersGroupsExclude:!1},...b&&{blockchains:g}}}s(jo,"createQuoteRequestBody");function _s(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}s(_s,"getWalletsForNewSwap");function Mt(t){return t.result?.outputAmount||null}s(Mt,"getQuoteOutputAmount");function Ds(t,e){return new Te(e).div(new Te(t)).minus(1).multipliedBy(100).toNumber()}s(Ds,"getPercentageChange");function Fs(t,e){let o=Mt(t),n=Mt(e);if(!o||!n)return!1;let r=Ne(o,n);return r?r<=-1:!0}s(Fs,"isOutputAmountChangedALot");function Os(t,e,o){let n=t.validationStatus,r=Ss(t);return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>Hs(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=A(new Te(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),u=A(new Te(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),m="";return a.reason==="FEE"&&(m=Fe.t(" for network fee")),a.reason==="INPUT_ASSET"&&(m=Fe.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(m=Fe.t(" for input and network fee")),Fe.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:m,currentAmount:p,blockchain:Ye(a.asset.blockchain,o)}})})}s(Os,"generateBalanceWarnings");function Us(t,e){return(t?new Te(t):ke).multipliedBy(e||0)}s(Us,"calcOutputUsdValue");function Yt(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==qo.NetworkChanged}s(Yt,"isNetworkStatusInWarningState");function zs(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Yt(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case qo.WaitingForConnectingWallet:n=n||Fe.t("Waiting for connecting wallet");break;case qo.WaitingForQueue:n=n||Fe.t("Waiting for other running tasks to be finished");break;case qo.WaitingForNetworkChange:n=n||Fe.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}s(zs,"getSwapMessages");function qs(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}s(qs,"getLastConvertedTokenInFailedSwap");function Gs(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}s(Gs,"shouldRetrySwap");function Qs(t,e,o,n,r,i){return t||!e&&!mc(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&i&&!Uo(i,o)}s(Qs,"confirmSwapDisabled");function dr(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}s(dr,"searchParamsToToken");function js(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}s(js,"getQuoteToTokenUsdPrice");function fr(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}s(fr,"isNumberOfSwapsChanged");function gr(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!ir(o,n)}s(gr,"isQuoteSwappersUpdated");function hr(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!ir(o,n)}s(hr,"isQuoteInternalCoinsUpdated");function Ks(t,e){return fr(t,e)||gr(t,e)||hr(t,e)}s(Ks,"isQuoteChanged");function Hs(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}s(Hs,"getRequiredBalanceOfWallet");function nt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}s(nt,"getPriceImpactLevel");function Xs(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],i=hc(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=lr(i?i.toBlockchain:n.fromBlockchain,e),p=lr(r.toBlockchain,e),u=ar(i?{blockchain:l?.name??"",symbol:i.toSymbol,address:i.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),m=ar(a,o),c=i?i.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:m,inputAmount:c}}s(Xs,"createRetryQuote");function Ko(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:i}=e,a=Tt(o,t.requestAmount),l=Tt(n,t.result?.outputAmount??"");if(t.result&&a&&l){let m=Ne(a.toString(),l.toString());if(!!m&&Bs(a,m)){let h=Ho(t.result.swaps,r),d=nt(m);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:m,totalFee:h,warningLevel:d}}}else if(t.result&&(!a||!l))return{type:1};let p=Vo(t),u=i>ps;if($s(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<i)return{type:3,slippage:i.toString()}}else return{type:2,recommendedSlippages:Ps(t,i),minRequiredSlippage:p};return null}s(Ko,"generateQuoteWarnings");function Ne(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ds(t.toString(),e.toString());return n&&n<0?n:null}s(Ne,"getPriceImpact");var Tt=s((t,e)=>t?.usdPrice?new mt(e||ke).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),z=je(yc()(Sc(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new mt(0),outputUsdValue:new mt(0),toBlockchain:null,toToken:null,quote:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:"",quoteWarningsConfirmed:!1,setQuote:e=>t(o=>{let n=null,r=ke;return Xt(o.inputAmount)?(e&&(n=e.result?.outputAmount?new mt(e.result?.outputAmount):null,r=Us(e.result?.outputAmount,js(e)||o.toToken?.usdPrice)),{quote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetQuote:()=>t(()=>({quote:null,outputAmount:null,outputUsdValue:new mt(0)})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{quote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Tt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{quote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new mt(0),outputUsdValue:new mt(0),quote:null},...!!o.fromToken&&{inputUsdValue:Tt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:i,fromToken:a,toBlockchain:l,toToken:p,inputAmount:u}=Xs(e,r,n);t({fromBlockchain:i,fromToken:a,inputAmount:u,outputAmount:null,inputUsdValue:Tt(a??null,u),outputUsdValue:new mt(0),toBlockchain:l,toToken:p,quote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:Tt(e.toToken,e.outputAmount?.toString()||"")})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:""}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Js(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:i,toToken:a,fromBlockchain:l,toBlockchain:p}=z(),u=k().config,m=k().fetchStatus,c=k().blockchains(),h=k().tokens(),{setAffiliateRef:d,setAffiliatePercent:y,setAffiliateWallets:x}=U(),f=Yo(()=>u?.from?.tokens,[u?.from?.tokens]),b=Yo(()=>u?.from?.blockchains,[u?.from?.blockchains]),g=Yo(()=>u?.to?.tokens,[u?.to?.tokens]),v=Yo(()=>u?.to?.blockchains,[u?.to?.blockchains]),S=Jo(void 0),C=Jo(void 0),B=Jo(void 0),O=Jo(void 0);Xo(()=>{t(u?.amount?.toString()||"")},[u?.amount]),Ys(()=>{if(m==="success"){let T=c.find(M=>M.name===u?.from?.blockchain),$=h.find(M=>We(M,u?.from?.token||null));(T||!T&&B.current)&&n(T??null),$?r({token:$,meta:{blockchains:c,tokens:h}}):!$&&S.current&&r({token:null}),B.current=u?.from?.blockchain,S.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),Xo(()=>{i&&f&&(f.some(T=>We(T,i))||r({token:null})),l&&b&&(b.includes(l.name)||n(null))},[f,b]),Xo(()=>{a&&g&&(g.some(T=>We(T,a))||e({token:null})),p&&v&&(v.includes(p.name)||o(null))},[g,v]),Ys(()=>{if(m==="success"){let T=c.find(M=>M.name===u?.to?.blockchain),$=h.find(M=>We(M,u?.to?.token||null));(T||!T&&O.current)&&o(T??null),$?e({token:$,meta:{blockchains:c,tokens:h}}):!$&&C.current&&e({token:null}),O.current=u?.to?.blockchain,C.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),Xo(()=>{d(u?.affiliate?.ref??null),y(u?.affiliate?.percent??null),x(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}s(Js,"useSyncStoresWithConfig");import{useEffect as wc}from"react";import{create as Cc}from"zustand";import{subscribeWithSelector as kc}from"zustand/middleware";var G=je(Cc()(kc((t,e)=>({connectedWallets:[],customDestination:"",loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(i=>({loading:!0,connectedWallets:i.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!i.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(i=>i.selected&&i.walletType!==o).map(i=>i.chain);return{connectedWallets:n.connectedWallets.filter(i=>i.walletType!==o).map(i=>r.includes(i.chain)?i:(r.push(i.chain),{...i,selected:!0}))}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let i=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return i?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let i=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>$o(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:u,chain:m})=>({address:u,blockchain:m})),p=(await Nt().getWalletsDetails(a)).wallets;if(p)t(u=>({loading:!1,connectedWallets:u.connectedWallets.map(m=>{let c=o.find(d=>$o(d,m)),h=p.find(d=>d.address===m.address&&d.blockChain===m.chain);return h?.failed&&c&&r&&i([c],n,!1),c&&h?{...m,explorerUrl:h.explorerUrl,balances:Cs(h,n),loading:!1}:m})}));else throw new Error("Wallet not found")}catch{t(l=>({loading:!1,connectedWallets:l.connectedWallets.map(p=>o.find(u=>$o(u,p))?ks(p):p)}))}}}))));import{allProviders as Tc}from"@rango-dev/provider-all";function Zo(t,e){let o=Tc({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let i=o.find(a=>a.config.type===r);i?n.push(i):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}s(Zo,"matchAndGenerateProviders");function Zs(t,e){return Zo(t,e).map(r=>r.config.type)}s(Zs,"configWalletsToWalletName");function Rs(t,e){let o=G.use.clearConnectedWallet(),n=Zo(void 0,e);return wc(()=>{o(),n=Zo(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}s(Rs,"useWalletProviders");var en=bc({onConnectWallet:()=>{}});function Ic(t){let e=k().updateConfig,o=k().blockchains(),n=k().tokens(),r={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:i}=Rs(t.config.wallets,r),a=G.use.disconnectWallet(),l=G.use.connectWallet(),p=Ac();Js(),Ec(()=>{t.config&&e(t.config)},[t.config]);let u=o.filter(xc).map(c=>c.name),m=s((c,h,d,y,x)=>{if(h===yr.ACCOUNTS)if(d){let f=Po(x.supportedBlockchains),b=ys(c,d,u,f,x.isContractWallet);l(b,n)}else a(c);if(h===yr.ACCOUNTS&&y.connected){let f=`${c}-${y.network}-${d}`;y.connected&&(p.current?p.current(f):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(h===yr.NETWORK&&y.network){let f=`${c}-${y.network}`;p.current?p.current(f):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(c,h,d,y,x)},"onUpdateState");return Ro.createElement(en.Provider,{value:{onConnectWallet:c=>{p.current=c}}},Ro.createElement(vc,{allBlockChains:o,providers:i,onUpdateState:m,autoConnect:!0},t.children))}s(Ic,"Main");function tn(t){let{config:e,...o}=t;return Ro.createElement(Is,{config:e},Ro.createElement(Ic,{...o,config:e}))}s(tn,"WidgetWallets");import Zi from"react";import{I18nManager as Rh}from"@rango-dev/ui";import bo,{useContext as ey,useEffect as $u,useState as _u}from"react";import{useQueueManager as Dc}from"@rango-dev/queue-manager-rango-preset";import{useWallets as Fc}from"@rango-dev/wallets-react";import{isEvmBlockchain as Oc}from"rango-types";import on,{Fragment as Uc}from"react";import{MemoryRouter as zc,useInRouterContext as qc}from"react-router";import{useWallets as Nc}from"@rango-dev/wallets-react";import{useEffect as Lc,useRef as Bc}from"react";function ea(){let{connect:t,state:e}=Nc(),o=Bc({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",i=e(r);Lc(()=>{n==="success"&&r&&i.installed&&!i.connecting&&!i.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[i,n])}s(ea,"useForceAutoConnect");import{useEffect as Sr,useRef as Cr}from"react";import{createSearchParams as Pc,useLocation as $c,useSearchParams as _c}from"react-router-dom";var P={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",themes:"themes",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId"};import{create as Mc}from"zustand";var we=je(Mc()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function ta(){let t=Cr(!0),[e,o]=_c(),n=$c(),r=Cr(n.search),i=Cr({}),a=z.use.fromBlockchain(),l=z.use.toBlockchain(),p=z.use.fromToken(),u=z.use.toToken(),m=z.use.setFromBlockchain(),c=z.use.setFromToken(),h=z.use.setToBlockchain(),d=z.use.setToToken(),y=z.use.inputAmount(),x=z.use.setInputAmount(),f=k().fetchStatus,b=k().blockchains(),g=k().tokens(),v=we.use.setSelectedSwap();return Sr(()=>{let S={};Pc(r.current).forEach((B,O)=>{S[O]=B}),i.current=S;let C=n.pathname.split(P.swaps+"/")[1]||null;C&&v(C)},[]),Sr(()=>{if(!t.current){let S="",C="",B="",O="",T="",$=i.current["autoConnect"];f!=="success"?(S=i.current["fromBlockchain"],C=i.current["fromToken"],B=i.current["toBlockchain"],O=i.current["toToken"],T=i.current["fromAmount"]||y):(S=a?.name||"",C=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),B=l?.name||"",O=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),T=y),o({...S&&{["fromBlockchain"]:S},...C&&{["fromToken"]:C},...B&&{["toBlockchain"]:B},...O&&{["toToken"]:O},...T&&{["fromAmount"]:T.toString()},...$&&{["autoConnect"]:$}},{replace:!0})}t.current=!1},[n.pathname,y,a,p,l,u]),Sr(()=>{if(f==="success"){let S=e.get("fromBlockchain"),C=e.get("fromToken"),B=e.get("toBlockchain"),O=e.get("toToken"),T=e.get("fromAmount"),$=b.find(D=>D.name===S),M=dr(g,C,$||null),N=b.find(D=>D.name===B),w=dr(g,O,N||null);$&&(m($),M&&c({token:M,meta:{blockchains:b,tokens:g}})),N&&(h(N),w&&d({token:w,meta:{blockchains:b,tokens:g}})),T&&x(T)}},[f]),null}s(ta,"UpdateUrl");function oa({children:t,...e}){let o=qc(),n=o?Uc:zc,r=k().blockchains(),{canSwitchNetworkTo:i}=Fc();ea();let a=r.filter(Oc);return Dc({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:i}),on.createElement(on.Fragment,null,on.createElement(n,null,t),o&&on.createElement(ta,null))}s(oa,"AppRouter");import Ee from"react";import{useRoutes as Uh}from"react-router-dom";import{i18n as bn}from"@lingui/core";import{useManager as Kd}from"@rango-dev/queue-manager-react";import{Alert as Dl,Button as Fl,Divider as Xd,IconButton as Ol,RefreshIcon as Yd,SettingsIcon as Jd,styled as Ul,Tooltip as Zd,Typography as Rd,WalletIcon as ef}from"@rango-dev/ui";import te,{useEffect as ao,useLayoutEffect as tf,useRef as of,useState as En}from"react";import{flushSync as nf}from"react-dom";import{useNavigate as rf}from"react-router-dom";import{i18n as rt}from"@lingui/core";import{Alert as Mr,BalanceErrors as Zm,Button as Xa,ChevronDownIcon as Rm,ChevronLeftIcon as ed,Divider as Ft,MessageBox as td,Modal as Ya,Typography as yn,WalletIcon as od}from"@rango-dev/ui";import W,{useEffect as nd,useLayoutEffect as rd,useRef as id,useState as xt}from"react";import{useNavigate as sd}from"react-router-dom";import{i18n as nn}from"@lingui/core";function rn(t){switch(t.type){case 0:return nn.t("Route has been updated.");case 3:return nn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return nn.t("Route swappers has been updated.");case 2:return nn.t("Route internal coins has been updated.");default:return""}}s(rn,"getQuoteUpdateWarningMessage");import*as $t from"@radix-ui/react-collapsible";import{Button as Qc,darkTheme as Pt,IconButton as Hc,keyframes as na,styled as ye,TextField as Vc}from"@rango-dev/ui";var Jt=300,jc=na({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Kc=na({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),ra=ye("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),ia=ye("div",{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline"}),sa=ye("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Pt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${Pt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${Pt} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),aa=ye($t.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),la=ye("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),pa=ye(Hc,{position:"absolute",left:"$20"}),ua=ye("div",{paddingTop:"$20","& .wallets-list":{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline"}}),ca=ye($t.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ma=ye(Qc,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Pt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${Pt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${Pt} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),da=ye("div",{padding:"$10 $0","& .button__content":{display:"flex",justifyContent:"center",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),fa=ye("div",{transition:`all ${Jt}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),ga=ye("div",{display:"flex"}),ha=ye(Vc,{padding:"$0 $15 $15 $15"}),sn=ye($t.Content,{overflow:"hidden",variants:{open:{true:{animation:`${jc} ${Jt}ms ease-out`},false:{animation:`${Kc} ${Jt}ms ease-out`}}}}),ya=ye("div",{overflow:"visible",width:"100%"});import{i18n as ze}from"@lingui/core";import{Button as Xm,Divider as Lr,Image as Ym,MessageBox as hn,Modal as Qa,SelectableWallet as Jm,Typography as Ha,WalletState as Va}from"@rango-dev/ui";import ee,{useEffect as ja,useState as Rt}from"react";import{WalletState as Sa}from"@rango-dev/ui";import{useWallets as Xc}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as Yc,WalletTypes as Jc}from"@rango-dev/wallets-shared";import{useEffect as Zc,useState as Rc}from"react";var em=Object.values(Jc);function an(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:i,disconnect:a,getWalletInfo:l,connect:p}=Xc(),{connectedWallets:u}=G(),m=k().blockchains(),c=Zs(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||em,h=hs(i,l,c,o),d=vs(h),[y,x]=Rc(""),f=s(S=>!u.find(C=>C.walletType===S&&C.chain===o),"isExperimentalChainNotAdded"),b=s(async S=>{let C=i(S);try{if(y&&x(""),C.connected)await a(S);else{let B=!!h.find(O=>O.state===Sa.CONNECTED);if(!e?.multiWallets&&B)return;n?.(S),await p(S),r?.(S)}}catch(B){x("Error: "+B?.message)}},"handleClick"),g=s(()=>{let S=h?.filter(C=>C.state===Sa.CONNECTING)||[];for(let C of S)a(C.type)},"disconnectConnectingWallets");Zc(()=>()=>{g()},[]);let v=s((S,C,B)=>Do(B,C)&&f(S)&&!Yc.includes(S),"shouldExcludeWallet");return{list:d.filter(S=>!v(S.type,o??"",m)),error:y,handleClick:b}}s(an,"useWalletList");import{i18n as Da}from"@lingui/core";import{styled as Oa,Typography as zm,Wallet as qm,WalletState as Gm}from"@rango-dev/ui";import vt,{Fragment as Qm,useState as Fa}from"react";import{BottomLogo as Lm,Divider as Bm,Header as Mm}from"@rango-dev/ui";import ge from"react";import{useNavigate as tm}from"react-router-dom";function dt(){let t=tm();return()=>t(-1)}s(dt,"useNavigateBack");import{ChevronLeftIcon as rm}from"@rango-dev/ui";import Ta from"react";import{darkTheme as om,IconButton as nm,styled as ln}from"@rango-dev/ui";var Oe=ln(nm,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),Ca=ln("div",{position:"absolute",background:"$secondary500",[`.${om} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),_t=ln("div",{display:"flex",justifyContent:"flex-end",width:"$40"}),ka=ln("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"});function kr(t){return Ta.createElement(Oe,{variant:"ghost",size:"small",onClick:t.onClick},Ta.createElement(rm,{color:"black",size:16}))}s(kr,"BackButton");import{i18n as im}from"@lingui/core";import{Button as sm,Typography as am}from"@rango-dev/ui";import Tr from"react";function wr(t){return Tr.createElement(_t,null,Tr.createElement(sm,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Tr.createElement(am,{variant:"label",size:"medium",color:"error500"},im.t("Cancel"))))}s(wr,"CancelButton");import{i18n as lm}from"@lingui/core";import{Tooltip as pm,WalletIcon as um}from"@rango-dev/ui";import pn from"react";function vr(t){return pn.createElement(pm,{container:t.container,side:"top",content:lm.t("Connect Wallet")},pn.createElement(Oe,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&pn.createElement(Ca,null),pn.createElement(um,{size:18,color:"black"})))}s(vr,"WalletButton");import{i18n as mn}from"@lingui/core";import{NotificationsIcon as bm,Popover as Em,RefreshIcon as Am,SettingsIcon as Im,Tooltip as dn,TransactionIcon as Wm}from"@rango-dev/ui";import ue from"react";import{i18n as Sm}from"@lingui/core";import{ChainToken as Aa,ChevronRightIcon as Cm,ListItemButton as km,Typography as Tm}from"@rango-dev/ui";import Ue from"react";import{useNavigate as wm}from"react-router-dom";import{create as cm}from"zustand";import{persist as mm,subscribeWithSelector as dm}from"zustand/middleware";var Le=je(cm()(mm(dm((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],i=n.steps[n.steps.length-1],a={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,tokenAddress:r.fromSymbolAddress,tokenSymbol:r.fromSymbol},to:{blockchain:i.toBlockchain,tokenSymbol:i.toSymbol,tokenAddress:i.toSymbolAddress}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,a]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{styled as un}from"@rango-dev/ui";var wa=un("div",{padding:"$10",width:"350px",minHeight:"150px"}),va=un("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),xa=un("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),ba=un("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as fm}from"@lingui/core";import{Divider as gm,NoNotificationIcon as hm,Typography as ym}from"@rango-dev/ui";import cn from"react";function Ea(){return cn.createElement(ba,null,cn.createElement(hm,{color:"secondary",size:26}),cn.createElement(gm,{size:12}),cn.createElement(ym,{variant:"body",size:"medium",color:"neutral700"},fm.t("You have no notification")))}s(Ea,"NotificationNotFound");var vm=4;function xr(){let t=wm(),e=we.use.setSelectedSwap(),{getUnreadNotifications:o}=Le(),n=o(),r=k().blockchains(),i=k().tokens(),a=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,vm),l=s(p=>{e(p),t(`${P.swaps}/${p}`)},"handleOnClick");return Ue.createElement(wa,null,a.length?Ue.createElement(va,null,a.map(p=>{let u=i.find(d=>d.address===p.route.from.tokenAddress&&d.blockchain===p.route.from.blockchain&&d.symbol===p.route.from.tokenSymbol),m=r.find(d=>d.name===p.route.from.blockchain),c=i.find(d=>d.address===p.route.to.tokenAddress&&d.blockchain===p.route.to.blockchain&&d.symbol===p.route.to.tokenSymbol),h=r.find(d=>d.name===p.route.to.blockchain);return Ue.createElement(km,{key:p.requestId,onClick:()=>l(p.requestId),title:Ue.createElement(Tm,{variant:"body",size:"small",color:"$neutral700"},Sm.t(p.event.message)),id:p.requestId,start:Ue.createElement(xa,null,Ue.createElement("div",{className:"from-chain-token"},Ue.createElement(Aa,{tokenImage:u?u.image:"",chainImage:m?m.logo:"",size:"small"})),Ue.createElement("div",{className:"to-chain-token"},Ue.createElement(Aa,{tokenImage:c?c.image:"",chainImage:h?h.logo:"",size:"small"}))),end:Ue.createElement(Cm,{size:12,color:"gray"})})})):Ue.createElement(Ea,null))}s(xr,"NotificationContent");import{Typography as xm}from"@rango-dev/ui";import Ia from"react";function Wa(){let{getUnreadNotifications:t}=Le(),e=t().length;return e?Ia.createElement(ka,null,Ia.createElement(xm,{variant:"body",size:"xsmall",color:"$background"},e)):null}s(Wa,"UnreadNotificationsBadge");function br(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r,onClickNotifications:i}=t;return ue.createElement(ue.Fragment,null,ue.createElement(dn,{container:K(),side:"top",content:mn.t("Refresh")},ue.createElement(Oe,{variant:"ghost",size:"small",onClick:o,disabled:!o},ue.createElement(Am,{size:16,color:o?"black":"gray"}))),ue.createElement(dn,{container:K(),side:"top",content:mn.t("Notifications")},ue.createElement(Em,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:K(),content:ue.createElement(xr,null)},ue.createElement(Oe,{size:"small",variant:"ghost",onClick:i},ue.createElement(bm,{size:18,color:"black"}),ue.createElement(Wa,null)))),ue.createElement(dn,{container:K(),side:"top",content:mn.t("Settings")},ue.createElement(Oe,{size:"small",variant:"ghost",onClick:r},ue.createElement(Im,{size:18,color:"black"}))),ue.createElement(dn,{container:K(),side:"top",content:mn.t("Transactions History")},ue.createElement(Oe,{size:"small",variant:"ghost",onClick:n},ue.createElement(Wm,{size:18,color:"black"}))))}s(br,"HomeButtons");import{darkTheme as Nm,styled as Er}from"@rango-dev/ui";var Na=Er("div",{position:"relative",display:"flex",flexDirection:"column",borderRadius:"$primary",overflow:"hidden !important",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)",width:"95vw",maxWidth:"390px",maxHeight:"700px",$$color:"$colors$neutral100",[`.${Nm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"95vh"},false:{height:"auto"}}}}),La=Er("div",{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",display:"flex",flexDirection:"column",flex:1,padding:"$20 $20 $10 $20",backgroundColor:"$background",position:"relative",overflowY:"auto",overflowX:"hidden",variants:{noPadding:{true:{padding:"0"}}}}),Ba=Er("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function Pm(t,e){let{children:o,header:n,footer:r,noPadding:i,hasLogo:a=!0,fixedHeight:l=!0}=t,p=G.use.connectedWallets(),u=we.use.connectWalletsButtonDisabled(),m=dt(),c=s(()=>{!u&&n.onWallet&&n.onWallet()},"onConnectWallet"),h=typeof n.hasBackButton>"u"||n.hasBackButton;return ge.createElement(Na,{ref:e,fixedHeight:l,id:"swap-box"},ge.createElement(Mm,{prefix:ge.createElement(ge.Fragment,null,h&&ge.createElement(kr,{onClick:m})),title:n.title,suffix:ge.createElement(ge.Fragment,null,n.suffix,n.onWallet&&ge.createElement(vr,{container:K(),onClick:c,isConnected:!!p?.length}),n.onCancel&&ge.createElement(wr,{onClick:n.onCancel}))}),ge.createElement(La,{noPadding:i},o),(a||r)&&ge.createElement(Ba,null,ge.createElement("div",{className:"footer__content"},r),a&&ge.createElement("div",{className:"footer__logo"},ge.createElement(Bm,{size:12}),ge.createElement(Lm,null))))}s(Pm,"LayoutComponent");var X=ge.forwardRef(Pm);X.displayName="Layout";import{Divider as Om,Modal as Um}from"@rango-dev/ui";import Ir from"react";import{i18n as Dt}from"@lingui/core";import{Image as Dm,MessageBox as Ar,WalletState as Fm}from"@rango-dev/ui";import wt from"react";import{keyframes as $m,styled as fn}from"@rango-dev/ui";var Bw=fn("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Ma=fn("div",{position:"relative"}),_m=$m({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Pa=fn("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${_m} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),$a=fn("div",{"& img":{borderRadius:"50%"}});function _a(t){let{state:e,image:o,error:n}=t;return e===Fm.CONNECTED?wt.createElement(Ar,{type:"success",title:Dt.t("Wallet Connected"),description:Dt.t("Your wallet is connected, you can use it to swap.")}):n?wt.createElement(Ar,{type:"error",title:Dt.t("Failed to Connect"),description:n||Dt.t("Your wallet is not connected. Please try again.")}):wt.createElement(Ar,{type:"loading",title:Dt.t("Connecting to your wallet"),description:Dt.t("Click connect in your wallet popup."),icon:wt.createElement(Ma,null,wt.createElement($a,null,wt.createElement(Dm,{src:o,size:45})),wt.createElement(Pa,null))})}s(_a,"ModalContent");function Zt(t){let{open:e,onClose:o,...n}=t;return Ir.createElement(Um,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},Ir.createElement(_a,{...n}),Ir.createElement(Om,{direction:"vertical",size:32}))}s(Zt,"WalletModal");var Hm=Oa("div",{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline",paddingTop:"$15",height:"100%"}),Vm=Oa("div",{textAlign:"center"}),gn=3e3,Wr=300;function Ua(){let{config:t,fetchStatus:e}=k(),[o,n]=Fa(!1),[r,i]=Fa(""),a=null,{list:l,handleClick:p,error:u}=an({config:t,onBeforeConnect:d=>{a=setTimeout(()=>{n(!0),i(d)},Wr)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},gn)}}),m=l.find(d=>d.type===r),c=m?.image||"",h=m?.state||Gm.NOT_INSTALLED;return vt.createElement(X,{header:{title:Da.t("Connect Wallets")}},vt.createElement(Vm,null,vt.createElement(zm,{variant:"title",size:"xmedium",align:"center"},Da.t("Choose a wallet to connect.")),vt.createElement(Hm,null,l.map((d,y)=>{let x=`wallet-${y}-${d.type}`;return vt.createElement(Qm,{key:x},vt.createElement(qm,{...d,container:K(),onClick:f=>{p(f)},isLoading:e==="loading"}))}),vt.createElement(Zt,{open:!!o,onClose:()=>n(!1),image:c,state:h,error:u}))))}s(Ua,"WalletsPage");import{keyframes as jm,styled as Nr}from"@rango-dev/ui";var za=Nr("div",{position:"relative"}),Km=jm({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),qa=Nr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Km} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ga=Nr("div",{"& img":{borderRadius:"50%"}});function Br(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:i}=t,{config:a}=k(),l=G.use.connectedWallets(),{blockchains:p}=k(),[u,m]=Rt(""),[c,h]=Rt(null),[d,y]=Rt(!1),[x,f]=Rt(null),{suggestAndConnect:b}=Ka(),g=null,{list:v,error:S,handleClick:C}=an({config:a,chain:e,onBeforeConnect:w=>{g=setTimeout(()=>{m(w)},Wr)},onConnect:()=>{g&&clearTimeout(g),setTimeout(()=>{m("")},gn)}}),[B,O]=Rt(v),T=v.length,$=r&&T-r>0,M=s(async w=>{y(!1),f("in-progress");try{await b(w.walletType,w.chain),f("completed")}catch{f("rejected")}},"addExperimentalChain");ja(()=>{O(w=>{let D=v.findIndex(I=>o(I.type,e));return $&&D>1?[v[D]].concat(v.filter((I,j)=>j!==D)):w.map(I=>v.find(j=>j.type===I.type)??I)})},[JSON.stringify(v)]);let N=document.querySelector("#swap-box");return ja(()=>{let w=null;return(x==="completed"||x==="rejected")&&(w=setTimeout(()=>f(null),gn)),()=>{w&&clearTimeout(w)}},[x]),ee.createElement(ee.Fragment,null,B.slice(0,r).map(w=>{let D=xs({connectedWallets:l,walletType:w.type,chain:e}),I=D?Fo(D):"",j=Do(p(),e),oe=!l.find(de=>de.walletType===w.type&&de.chain===e),ne=j&&oe&&w.state===Va.CONNECTED,Q=ne?ze.t({id:"Add {chain} chain",values:{chain:e}}):I,se=s(()=>{w.state===Va.DISCONNECTED?C(w.type):ne?(h({walletType:w.type,chain:e,address:D??""}),y(!0)):n({walletType:w.type,chain:e,address:D??""})},"onClick"),me=c?.chain?Ws(c.chain,p()):void 0;return ee.createElement(ee.Fragment,null,ee.createElement(Zt,{open:u===w.type,onClose:()=>m(""),image:w.image,state:w.state,error:S}),!!c&&ee.createElement(Qa,{open:!!c&&d,container:N,onClose:()=>{h(null)}},ee.createElement(hn,{title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:me}}),type:"warning",description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:me}})},ee.createElement(Lr,{size:18}),ee.createElement(Lr,{size:32}),ee.createElement(Xm,{onClick:M.bind(null,c),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ze.t("Confirm")))),x&&ee.createElement(Qa,{open:!!x,onClose:f.bind(null,null),container:N},x==="in-progress"&&ee.createElement(hn,{type:"loading",title:ze.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:me}}),description:ze.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:me}}),icon:ee.createElement(za,null,ee.createElement(Ga,null,ee.createElement(Ym,{src:w.image,size:45})),ee.createElement(qa,null))}),x==="completed"&&ee.createElement(hn,{type:"success",title:ze.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:me}}),description:ze.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:me}})}),x==="rejected"&&ee.createElement(hn,{type:"error",title:ze.t("Request Rejected"),description:ze.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:me}})}),ee.createElement(Lr,{direction:"vertical",size:32})),ee.createElement(Jm,{key:w.type,description:Q,onClick:se,selected:o(w.type,e),...w}))}),$&&ee.createElement(sa,{selected:!1,onClick:i.bind(null)},ee.createElement(Ha,{variant:"label",size:"medium"},ze.t("Show more wallets"),ee.createElement(Ha,{variant:"label",size:"medium",color:"$primary"},"\xA0+",T-(r??0)))))}s(Br,"WalletList");var ad=2;function Ja(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:i}=t,a=k().config,l=k().blockchains(),{quote:p,setSelectedWallets:u,quoteWalletsConfirmed:m,setQuoteWalletConfirmed:c,customDestination:h,setCustomDestination:d}=z(),{connectedWallets:y,selectWallets:x}=G(),[f,b]=xt(""),[g,v]=xt([]),[S,C]=xt(""),[B,O]=xt(null),[T,$]=xt(h),[M,N]=xt(!!h),w=id(null),D=Oo(p),I=l.find(_=>_.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),j=s(_=>!!p?.result?.swaps.find(J=>J.from.blockchain===_),"isWalletRequiredFor"),[oe,ne]=xt(y.filter(_=>_.selected&&D.includes(_.chain))),Q=l.find(_=>_.name===I?.name),se=s((_,J)=>!!oe.find(q=>q.walletType===_&&q.chain===J&&q.selected&&(j(J)||!j(J)&&!T)),"isSelected"),me=!!T&&M&&Q&&!Uo(Q,T),de=s(()=>{N(!1),$(""),ne(_=>{let J=!1;return _.map(q=>!J&&q.chain===I?.name?(J=!0,{...q,selected:!0}):q)})},"resetCustomDestination"),De=s(_=>{if(f&&b(""),se(_.walletType,_.chain))return;let q=y.find(ae=>ae.walletType===_.walletType&&ae.chain===_.chain);q&&(n(),_.chain===I?.name&&M&&(N(!1),$("")),ne(ae=>ae.filter(Ve=>Ve.chain!==_.chain).concat({...q,selected:!0})))},"onChange"),It=s(()=>{let _=oe.filter(J=>J.selected);x(_),u(_),d(T),c(!0),o()},"onConfirmBalance"),jt=s(async()=>{v([]),C(""),O(null);let _=y.filter(ae=>oe.find(Ve=>Ve.chain===ae.chain&&Ve.walletType===ae.walletType)),J=await r?.({selectedWallets:_,customDestination:T}),q=J.warnings;q?.balance?.messages&&v(q.balance.messages),q?.quoteUpdate&&O(q.quoteUpdate),J.error&&C(Ls(J.error)),!J.error&&(!q?.balance?.messages.length||0>0)?It():v(q?.balance?.messages??[])},"onConfirmWallets");nd(()=>{ne(_=>_.concat(y.filter(J=>!!!_.find(ae=>ae.chain===J.chain)&&J.selected&&D.includes(J.chain))))},[y.length]),rd(()=>{M&&w.current&&setTimeout(()=>{w?.current?.scrollIntoView({behavior:"smooth"})},Jt)},[M]);let ot=document.querySelector("#swap-box"),He=sd();return W.createElement(Ya,{open:e,onClose:()=>{m||He("../",{replace:!0}),o()},dismissible:!f,container:ot,...!f&&{footer:W.createElement(ga,null,W.createElement(Xa,{loading:i,disabled:Qs(i,M,T,p,oe,I),onClick:jt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...f&&{containerStyle:{padding:"$0"},header:W.createElement(la,null,W.createElement(pa,{variant:"ghost",onClick:b.bind(null,"")},W.createElement(ed,{size:16})),W.createElement(yn,{variant:"headline",size:"small"},rt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Ye(f,l)}})))},anchor:"center"},W.createElement(Ya,{open:g.length>0,onClose:v.bind(null,[]),container:ot},W.createElement(td,{title:rt.t("Insufficient account balance"),type:"error",description:W.createElement(Zm,{messages:g??[]})},W.createElement(Xa,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:It},rt.t("Proceed anyway")))),f&&W.createElement(ua,null,W.createElement("div",{className:"wallets-list"},W.createElement(Br,{chain:f,isSelected:se,selectWallet:De,onShowMore:b.bind(null,f)}))),!f&&W.createElement(W.Fragment,null,S&&W.createElement(W.Fragment,null,W.createElement(Mr,{variant:"alarm",type:"error",title:rt.t(S)}),W.createElement(Ft,{size:12})),B&&W.createElement(W.Fragment,null,W.createElement(Mr,{variant:"alarm",type:"warning",title:rn(B)}),W.createElement(Ft,{size:12})),W.createElement(ya,null,D.map((_,J)=>{let q=l.find(Ae=>Ae.name===_),ae=`wallet-${J}`,Ve=J===D.length-1;return W.createElement("div",{key:ae},W.createElement(ra,null,W.createElement(yn,{variant:"title",size:"xmedium"},rt.t({id:"Your {blockchainName} wallets",values:{blockchainName:q?.shortName}})),W.createElement(yn,{variant:"label",color:"$neutral700",size:"medium"},rt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:q?.shortName}}))),W.createElement(Ft,{size:24}),W.createElement(ia,null,W.createElement(Br,{chain:_,isSelected:se,selectWallet:De,limit:ad,onShowMore:()=>b(q?.name??"")})),!Ve&&W.createElement(Ft,{size:32}),Ve&&a?.customDestination&&W.createElement(da,null,W.createElement(ca,{ref:w,selected:M,open:M,onOpenChange:Ae=>{Ae?j(I?.name??"")||ne(er=>er.map(tr=>tr.chain===I?.name?{...tr,selected:!1}:tr)):de()}},W.createElement(aa,{onClick:()=>N(Ae=>!Ae)},W.createElement(ma,{fullWidth:!0,variant:"default",suffix:W.createElement(fa,{orientation:M?"up":"down"},W.createElement(Rm,{size:10,color:"gray"}))},W.createElement("div",{className:"button__content"},W.createElement(od,{size:18,color:"info"}),W.createElement(Ft,{size:4,direction:"horizontal"}),W.createElement(yn,{variant:"label",size:"medium"},rt.t("Send to a different address"))))),W.createElement(sn,{open:M},W.createElement(W.Fragment,null,W.createElement(Ft,{size:4}),W.createElement(ha,{autoFocus:!0,placeholder:rt.t("Your destination address"),value:T,onChange:Ae=>{$(Ae.target.value)}})))),me&&W.createElement("div",{className:"alarms"},W.createElement(Mr,{variant:"alarm",type:"error",title:rt.t({values:{destination:T},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}s(Ja,"ConfirmWalletsModal");import{Divider as Gd}from"@rango-dev/ui";import Pe from"react";import{i18n as Fr}from"@lingui/core";import{Alert as pd,ChevronDownIcon as ud,ChevronRightIcon as cd,Divider as Or,Image as cl,InfoIcon as md,QuoteCost as dd,StepDetails as fd,TokenAmount as gd,Tooltip as ml,Typography as Ot}from"@rango-dev/ui";import L,{useLayoutEffect as hd,useRef as dl,useState as yd}from"react";import{styled as eo}from"@rango-dev/ui";var Za=eo("div",{paddingBottom:"$10"}),Pr=eo("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Ra=eo("div",{variants:{paddingTop:{true:{paddingTop:"$10"}}}}),el=eo("div",{paddingBottom:"$15"}),tl=eo("div",{width:"100%",display:"flex"});import*as Sn from"@radix-ui/react-collapsible";import{darkTheme as Je,Image as ol,styled as it}from"@rango-dev/ui";var $r=300,nl=it(Sn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",cursor:"default",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Je} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Je} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& .steps-details":{padding:"$10 $15"}}),rl=it("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",cursor:"pointer",boxSizing:"border-box",position:"relative",variants:{recommended:{true:{$$color:"$colors$info100",[`.${Je} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}},false:{$$color:"$colors$neutral200",[`.${Je} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{},false:{}}},compoundVariants:[{listItem:!0,recommended:!0,css:{"&:hover":{$$color:"$colors$secondary200",[`.${Je} &`]:{$$color:"$colors$secondary700"},backgroundColor:"$$color"}}},{listItem:!0,recommended:!1,css:{"&:hover":{$$color:"$colors$neutral300",[`.${Je} &`]:{$$color:"$colors$neutral400"},backgroundColor:"$$color"}}}],"& .summary":{width:"100%",padding:"$15 $15 $10 $15",cursor:"default"},"& .basic-info":{paddingTop:"$10",display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Je} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}}),il=it(Sn.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:{[`& ${ol}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${ol}`]:{border:"1px transparent solid",borderRadius:"100%"}}},recommended:{true:{$$color:"$colors$info300",[`.${Je} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Je} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& div:nth-child(1)":{display:"flex"}}),_r=it("div",{width:"18px",height:"18px",borderRadius:"100%",border:"1.5px transparent solid",display:"flex",justifyContent:"center",alignItems:"center",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),sl=it(sn,{width:"100%"}),Dr=it("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${$r}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Uv=it("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),al=it("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Je} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),ll=it("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"});import{TokenAmount as ul}from"@rango-dev/ui";import Cn from"react";import{styled as ld}from"@rango-dev/ui";var pl=ld("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%","& .separator":{height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"}});function to(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Cn.createElement(pl,null,Cn.createElement(ul,{direction:"horizontal",label:"Swap input",type:"input",price:{value:e.price.value,usdValue:e.price.usdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Cn.createElement("div",{className:"separator"}),Cn.createElement(ul,{direction:"horizontal",label:"Estimated output",type:"output",price:{value:o.price.value,usdValue:o.price.usdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}s(to,"QuoteSummary");function Ur(t){let{quote:e,input:o,output:n,error:r,warning:i,type:a,recommended:l=!0}=t,p=k().tokens(),u=k().blockchains(),m=k().swappers(),[c,h]=yd(t.expanded),d=dl(null),y=dl(c),x=A(Ho(e.result?.swaps??[],p),2,2),f=No(Lo(e.result?.swaps)),b=A(o.value,6,6),g=A(n.value,6,6),v=n.usdValue?A(n.usdValue,4,4):"",S=Ne(o.usdValue,n.usdValue??null),C=A(S,2,2),B=nt(S??0),T=s(N=>N.map((w,D)=>{let I,j=r?.type===3&&r.swap.swapperId===w.swapperId||r?.type===4&&r.recommendedSlippages?.has(D),oe=i?.type===2&&i.recommendedSlippages?.has(D);return j?I="error":oe&&(I="warning"),{swapper:{displayName:Ns(w.swapperId,m),image:w.swapperLogo},from:{token:{displayName:w.from.symbol,image:w.from.logo},chain:{displayName:Ye(w.from.blockchain,u),image:w.from.blockchainLogo},price:{value:D===0?A(o.value,6,6):A(w.fromAmount,6,6),usdValue:A((w.from.usdPrice??0)*parseFloat(w.fromAmount),4,4)}},to:{token:{displayName:w.to.symbol,image:w.to.logo},chain:{displayName:Ye(w.to.blockchain,u),image:w.to.blockchainLogo},price:{value:A(w.toAmount,6,6),usdValue:A((w.to.usdPrice??0)*parseFloat(w.toAmount),4,4)}},state:I,alerts:j||oe?L.createElement(el,null,L.createElement(pd,{type:j?"error":"warning",title:r?.type===3?r?.recommendation:Fr.t("Slippage Error:"),footer:L.createElement(tl,null,r?.type===3&&L.createElement(L.Fragment,null,L.createElement(Ot,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),L.createElement(Or,{direction:"horizontal",size:8}),L.createElement(Ot,{size:"xsmall",variant:"body",color:"neutral900"},"|"),L.createElement(Or,{direction:"horizontal",size:8}),L.createElement(Ot,{size:"xsmall",variant:"body",color:"neutral900"},Fr.t({id:"Yours: {amount} {symbol}",values:{amount:A(w.fromAmount,6,6),symbol:w?.from.symbol}}))),(r?.type===4||i?.type===2)&&L.createElement(Ot,{size:"xsmall",variant:"body",color:"neutral900"},Fr.t({id:"Minimum required slippage is {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(D)},...i?.type===2&&{minRequiredSlippage:i.recommendedSlippages?.get(D)}}})))})):void 0}}),"getQuoteSteps")(e.result?.swaps??[]),$=T.length,M=K();return hd(()=>{c&&!y.current&&d.current&&setTimeout(()=>{d?.current?.scrollIntoView({behavior:"smooth"})},$r),y.current=c},[c,y]),L.createElement(L.Fragment,null,L.createElement(rl,{recommended:l,listItem:a==="list-item",basic:a==="basic"},L.createElement("div",{className:"summary"},L.createElement(dd,{fee:x,time:f,steps:$}),a==="basic"&&L.createElement("div",{className:"basic-info"},L.createElement(ll,null,L.createElement(md,{size:12,color:"gray"})),L.createElement(Ot,{size:"small",variant:"body",style:{letterSpacing:.4}},`${b} ${T[0].from.token.displayName} = ${g} ${T[T.length-1].to.token.displayName}`),L.createElement(Ot,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${v})`)),a==="list-item"&&L.createElement(gd,{type:"output",direction:"vertical",price:{value:g,usdValue:v},token:{displayName:T[$-1].to.token.displayName,image:T[$-1].to.token.image},chain:{image:T[$-1].to.chain.image},percentageChange:C,warningLevel:B}),a==="swap-preview"&&L.createElement(L.Fragment,null,L.createElement(to,{from:T[0].from,to:T[$-1].to,percentageChange:C,warningLevel:B}),L.createElement(Or,{size:4}))),L.createElement(nl,{recommended:l,open:c,onOpenChange:h},L.createElement(il,{ref:N=>d.current=N,recommended:l,onClick:()=>h(N=>!N)},L.createElement("div",null,T.map((N,w)=>{let D=`item-${w}`,I=L.createElement(Dr,null,L.createElement(cd,{size:12,color:"black",...N.state&&{color:N.state==="error"?"error":"warning"}}));return L.createElement(L.Fragment,{key:D},L.createElement(ml,{container:M,side:"bottom",sideOffset:4,content:N.from.chain.displayName},L.createElement(_r,{state:N.state||T[w-1]?.state},L.createElement(cl,{src:N.from.chain.image,size:16}))),w===$-1&&L.createElement(L.Fragment,null,I,L.createElement(ml,{container:M,side:"bottom",sideOffset:4,content:N.to.chain.displayName},L.createElement(_r,{state:N.state},L.createElement(cl,{src:N.to.chain.image,size:16})))),w!==$-1&&L.createElement(L.Fragment,null,I))})),L.createElement(Dr,{orientation:c?"up":"down"},L.createElement(ud,{size:12,color:"black"}))),L.createElement(sl,{open:c},L.createElement(al,null),L.createElement("div",{className:"steps-details"},T.map((N,w)=>{let D=`item-${w}`;return L.createElement(fd,{type:"quote-details",key:D,step:N,hasSeparator:w!==T.length-1,state:N.state})}))))))}s(Ur,"Quote");import{ChainToken as kn,Divider as qe,NextIcon as Cd,Skeleton as Se}from"@rango-dev/ui";import E from"react";import{darkTheme as Sd,styled as fl}from"@rango-dev/ui";var gl=fl("div",{$$color:"$colors$neutral100",[`.${Sd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ","& .cost-and-tag":{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"},variants:{rounded:{true:{borderRadius:"$xm"}}},"& .cost":{display:"flex"},"& .basic-summary":{padding:"$15 $0 14px $0"},"& .output":{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"},"& .output__token-info":{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"},"& .quote-summary":{display:"flex",justifyContent:"space-between",alignItems:"end"},"& .quote-summary__separator":{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"},"& .token-amount":{display:"flex",justifyContent:"space-between"},"& .token-amount__label":{display:"flex",flexDirection:"column",alignItems:"start"},"& .chains":{paddingTop:"$2"},"& .swap-preview":{padding:"$15 $0 $15 $0"},"& .steps":{paddingLeft:"$8"},"& .step__title":{display:"flex",alignItems:"center"},"& .step__content":{display:"flex",alignItems:"start"},"& .step__tokens":{paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"},"& .step__token-info":{display:"flex",alignItems:"center"},"& .step__icon-container":{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}}),hl=fl("div",{borderLeft:"1px dashed black",minHeight:" 64px",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});function zr(t){let{separator:e=!0}=t;return E.createElement(E.Fragment,null,E.createElement("div",{className:"step__title"},E.createElement(Se,{height:22,width:22,variant:"circular"}),E.createElement(qe,{direction:"horizontal",size:8}),E.createElement(Se,{height:15,width:148,variant:"rounded"})),E.createElement("div",{className:"step__content"},E.createElement(hl,{hideSeparator:!e}),E.createElement("div",{className:"step__tokens"},E.createElement("div",{className:"step__token-info"},E.createElement(kn,{size:"small",loading:!0,chainImage:"",tokenImage:""}),E.createElement(qe,{direction:"horizontal",size:8}),E.createElement(Se,{height:12,width:76,variant:"rounded"})),E.createElement("div",{className:"step__icon-container"},E.createElement(Cd,{color:"gray",size:16})),E.createElement("div",{className:"step__token-info"},E.createElement(kn,{size:"small",loading:!0,chainImage:"",tokenImage:""}),E.createElement(qe,{direction:"horizontal",size:8}),E.createElement(Se,{height:12,width:76,variant:"rounded"})))))}s(zr,"StepSkeleton");function qr(t){let{type:e,expanded:o,tag:n=!1}=t,r=E.createElement("div",{className:"quote-summary"},E.createElement("div",{className:"token-amount"},E.createElement(kn,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),E.createElement(qe,{size:8,direction:"horizontal"}),E.createElement("div",{className:"token-amount__label"},E.createElement(Se,{height:10,width:60,variant:"rounded"}),E.createElement(qe,{size:4}),E.createElement(Se,{height:15,width:148,variant:"rounded"}))),E.createElement(Se,{height:12,width:64,variant:"rounded"}));return E.createElement(gl,{rounded:e!=="basic"},E.createElement("div",{className:"cost-and-tag"},E.createElement("div",{className:"cost"},E.createElement(Se,{width:60,height:10,variant:"rounded"}),E.createElement(qe,{size:4,direction:"horizontal"}),E.createElement(Se,{width:60,height:10,variant:"rounded"}),E.createElement(qe,{size:4,direction:"horizontal"}),E.createElement(Se,{width:60,height:10,variant:"rounded"})),n&&E.createElement(Se,{height:22,width:100,variant:"rounded"})),e==="basic"&&E.createElement("div",{className:"basic-summary"},E.createElement(Se,{height:15,width:148,variant:"rounded"})),e==="list-item"&&E.createElement("div",{className:"output"},E.createElement("div",{className:"output__token-info"},E.createElement(kn,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),E.createElement(qe,{direction:"horizontal",size:4}),E.createElement(Se,{height:15,width:150,variant:"rounded"})),E.createElement(qe,{size:4}),E.createElement(Se,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&E.createElement(E.Fragment,null,E.createElement(qe,{size:4}),E.createElement("div",{className:"swap-preview"},r,E.createElement("div",{className:"quote-summary__separator"}),r)),E.createElement("div",{className:"chains"},E.createElement(Se,{height:15,width:321,variant:"rounded"})),o&&E.createElement("div",{className:"steps"},E.createElement(qe,{size:20}),E.createElement(zr,null),E.createElement(zr,null),E.createElement(zr,{separator:!1})))}s(qr,"QuoteSkeleton");import{i18n as Od}from"@lingui/core";import{Alert as Ud,Button as zd,InfoIcon as qd}from"@rango-dev/ui";import Ie from"react";import{Alert as kd,Button as Td,Divider as wl,NoRouteIcon as wd,RefreshIcon as vd,Typography as vl}from"@rango-dev/ui";import Ge from"react";import{i18n as yl}from"@lingui/core";function Sl(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:H().genericServerError,action:{onClick:n,title:yl.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:H().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:yl.t("Reset")}},description:H().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:H().noResultError.description}}s(Sl,"makeInfo");import{styled as Gr}from"@rango-dev/ui";var Cl=Gr("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),kl=Gr("div",{width:"100%"}),Tl=Gr("div",{padding:"$6 $0"});function Qr(t){let{fetch:e,error:o}=t,n=U.use.disabledLiquiditySources(),r=U.use.toggleAllLiquiditySources(),i=k().swappers(),a=Sl(o,n,()=>r(i,!0),e);return Ge.createElement(Cl,null,Ge.createElement(wd,{size:24,color:"gray"}),Ge.createElement(wl,{size:4}),Ge.createElement(vl,{variant:"title",size:"small"},H().noResultError.title),!!a.description&&Ge.createElement(vl,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),Ge.createElement(wl,{size:4}),!!a.alert&&Ge.createElement(kl,null,Ge.createElement(kd,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&Ge.createElement(Td,{size:"xsmall",type:a.alert.type,prefix:Ge.createElement(Tl,null,Ge.createElement(vd,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}s(Qr,"NoResult");import{i18n as ro}from"@lingui/core";import{Button as bd,Divider as Wl,MessageBox as Ed,Modal as Ad,Typography as Id,WarningIcon as Wd}from"@rango-dev/ui";import Ze from"react";import{Typography as Al}from"@rango-dev/ui";import Vr from"react";import{darkTheme as xd,styled as Tn}from"@rango-dev/ui";var xl=Tn("div",{width:"100%",paddingTop:"$10"}),Hr=Tn("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),bl=Tn("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${xd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),El=Tn("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Il(t){let{title:e,value:o,valueColor:n}=t;return Vr.createElement(bl,null,Vr.createElement(Al,{size:"medium",variant:"label",className:"_title"},e),Vr.createElement(Al,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}s(Il,"QuoteErrorsModalItem");function Nl(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,i=r.warningLevel==="high"?"error":"warning",a=[{title:ro.t("Swapping"),value:A(r.inputUsdValue,4,4)},{title:ro.t("Gas cost"),value:A(r.totalFee,2,2)},{title:ro.t("Receiving"),value:A(r.outputUsdValue,4,4)},{title:ro.t("Price impact"),value:A(r.priceImpact,2,2),valueColor:`${i}500`}];return Ze.createElement(Ad,{open:e,onClose:o,container:K()},Ze.createElement(Ed,{type:i,title:H().highValueLossError.impactTitle,description:H().highValueLossError.description}),Ze.createElement(Hr,null,Ze.createElement(Wl,{size:20}),Ze.createElement(Id,{size:"small",variant:"title"},ro.t("Details")),Ze.createElement(Hr,null,a.map((l,p)=>Ze.createElement(Il,{key:p,...l})))),Ze.createElement(Wl,{size:32}),Ze.createElement(bd,{type:"primary",size:"large",prefix:Ze.createElement(Wd,null),fullWidth:!0,onClick:n},H().highValueLossError.confirmMessage))}s(Nl,"HighValueLossWarningModal");import{i18n as jr}from"@lingui/core";function Ll(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(nt(t.priceImpact)==="high"&&(o.alertType="error"),o.action=null,o.title=H().highValueLossError.title),t.type===1&&(o.title=H().unknownPriceError.title),t.type===2&&(o.title=jr.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=jr.t("Caution, your slippage is high.")),o):e?(o.alertType="error",e.type===3&&(o.title=e.recommendation,o.action="show-info"),e.type===4&&(o.title=jr.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):null}s(Ll,"makeAlerts");import{i18n as Ut}from"@lingui/core";import{Button as Bl,Divider as Ml,MessageBox as Nd,Modal as Ld,Typography as Bd}from"@rango-dev/ui";import bt from"react";import{useNavigate as Md}from"react-router-dom";function Pl(t){let{customSlippage:e,slippage:o}=U(),{open:n,onClose:r,onConfirm:i,warning:a}=t,l=Md(),p=e??o;return bt.createElement(Ld,{anchor:"bottom",open:n,prefix:bt.createElement(Bl,{size:"small",variant:"ghost",onClick:()=>l("../"+P.settings)},bt.createElement(Bd,{variant:"label",size:"medium",color:"$neutral900"},Ut.t("Change settings"))),container:K(),onClose:r},bt.createElement(Nd,{type:"warning",title:a.type===3?Ut.t("High slippage"):Ut.t("Low slippage"),description:a.type===3?Ut.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):Ut.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},bt.createElement(Ml,{size:18}),bt.createElement(Ml,{size:32}),bt.createElement(Bl,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:i},Ut.t("Confirm anyway"))))}s(Pl,"SlippageWarningModal");import{Button as Pd,Divider as $d,MessageBox as _d,Modal as Dd,WarningIcon as Fd}from"@rango-dev/ui";import io from"react";function $l(t){let{open:e,onClose:o,onConfirm:n}=t;return io.createElement(Dd,{open:e,onClose:o,container:K()},io.createElement(_d,{type:"warning",title:H().unknownPriceError.impactTitle,description:H().unknownPriceError.description}),io.createElement($d,{size:32}),io.createElement(Pd,{type:"primary",size:"large",prefix:io.createElement(Fd,null),fullWidth:!0,onClick:n},H().unknownPriceError.confirmMessage))}s($l,"UnknownPriceWarningModal");function Kr(t){let{warning:e,error:o,refetchQuote:n,showWarningModal:r,onOpenWarningModal:i,onCloseWarningModal:a,onConfirmWarningModal:l,onChangeSettings:p}=t,u={open:r,onClose:a,onConfirm:l},m=o?.type===0||o?.type===1,c=Ll(e,o?.type===3||o?.type===4?o:null);return Ie.createElement(Ie.Fragment,null,m&&Ie.createElement(Qr,{error:o,fetch:n}),!!c&&Ie.createElement(xl,null,Ie.createElement(Ud,{title:c.title,type:c.alertType,variant:"alarm",...c.action==="show-info"&&{action:Ie.createElement(El,{onClick:i},Ie.createElement(qd,{size:12,color:"gray"}))},...c.action==="change-settings"&&{action:Ie.createElement(zd,{size:"xxsmall",type:c.alertType,onClick:p},Od.t("Change"))}})),e&&Ie.createElement(Ie.Fragment,null,e.type===0&&Ie.createElement(Nl,{...u,warning:e}),(e.type===3||e.type===2)&&Ie.createElement(Pl,{...u,warning:e}),e.type===1&&Ie.createElement($l,{...u,warning:e})))}s(Kr,"QuoteWarningsAndErrors");function so(t){let{quote:e,type:o,loading:n,error:r,warning:i,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c,expanded:h=!1,alertPosition:d="bottom"}=t,{inputAmount:y,inputUsdValue:x,outputUsdValue:f,outputAmount:b}=z(),v=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,S=(i||r)&&Pe.createElement(Kr,{warning:i,error:r,loading:n,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c});return Pe.createElement(Pe.Fragment,null,n&&Pe.createElement(Pr,null,Pe.createElement(Ra,{paddingTop:d==="top"},Pe.createElement(qr,{type:o,expanded:h}))),d==="top"&&Pe.createElement(Za,null,S),v?Pe.createElement(Pr,null,Pe.createElement(Ur,{quote:e,error:r,warning:i,type:o,expanded:h,recommended:!0,input:{value:y,usdValue:x?.toString()??""},output:{value:b?.toString()??"",usdValue:f?.toString()??""}})):null,d==="bottom"&&Pe.createElement(Pe.Fragment,null,!i&&!r&&Pe.createElement(Gd,{size:16}),S))}s(so,"QuoteInfo");import{calculatePendingSwap as Vd}from"@rango-dev/queue-manager-rango-preset";import{useEffect as jd}from"react";import{useRef as Qd,useState as Hd}from"react";function wn(){let[t,e]=Hd(!1),o=Qd(null),n=s(()=>o.current?.abort(),"cancel");return{fetch:s(async i=>{n(),o.current=new AbortController,e(!0);try{let a=await Nt().getBestRoute(i,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}s(wn,"useFetchQuote");function vn(t){if(!t.result)throw new Error(H().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(pr(t)){let{swap:n,recommendation:r,fromAmountRangeError:i}=ur(t);throw new Error("bridge limit error",{cause:{type:3,swap:n,recommendation:r,fromAmountRangeError:i}})}let o=mr(t);if(o){let n=Vo(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}s(vn,"throwErrorIfResponseIsNotValid");function _l(t,e,o){let n=!1;t&&(n=Ks(t,e));let r={quote:null,quoteUpdate:null,balance:null},i=Ko(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});i&&(r.quote=i),t&&n&&(Fs(t,e)?r.quoteUpdate={type:3,newOutputAmount:A(Mt(e)),percentageChange:A(Ne(Mt(t)??"",Mt(e)??""),null,2)}:fr(t,e)?r.quoteUpdate={type:0}:gr(t,e)?r.quoteUpdate={type:1}:hr(t,e)&&(r.quoteUpdate={type:2}));let a=Os(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}s(_l,"generateWarnings");function xn(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}}s(xn,"handleQuoteErrors");function Xr(){let{fromToken:t,toToken:e,inputAmount:o,setQuote:n,quote:r,customDestination:i,setQuoteWarningsConfirmed:a}=z(),{slippage:l,customSlippage:p,affiliatePercent:u,affiliateRef:m,affiliateWallets:c,disabledLiquiditySources:h}=U(),{connectedWallets:d}=G(),y=k().blockchains(),x=k().tokens(),{experimental:f}=k().config,{enableNewLiquiditySources:b}=k().config,g=p||l,{fetch:v,cancelFetch:S,loading:C}=wn();return jd(()=>S,[]),{loading:C,fetch:s(async O=>{let T=O.selectedWallets,$=O?.customDestination??i;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let M=jo({fromToken:t,toToken:e,inputAmount:o,wallets:d,selectedWallets:T,excludeLiquiditySources:b,disabledLiquiditySources:h,slippage:g,affiliateRef:m,affiliatePercent:u,affiliateWallets:c,initialQuote:r??void 0,destination:$});f?.routing&&(M.experimental=!0);let N;try{N=await v(M).then(j=>vn(j)),n(N)}catch(j){return xn(j)}let w={slippage:g.toString(),disabledSwappersGroups:h},D=Vd(o.toString(),N,_s(T),w,!1,{blockchains:y,tokens:x}),I=_l(r??void 0,N,{fromToken:t,toToken:e,meta:{blockchains:y,tokens:x},selectedWallets:T,userSlippage:g});return I.quoteUpdate&&a(!1),{quote:N,swap:D,error:null,warnings:I}},"fetch"),cancelFetch:S}}s(Xr,"useConfirmSwap");var sf=Ul("div",{position:"relative",width:"100%","& .description":{display:"flex",justifyContent:"space-between",alignItems:"center"},"& .icon":{width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"},"& .quote-update__alert":{paddingTop:"$10"}}),af=Ul("div",{width:"100%",display:"flex",justifyContent:"space-between","& .confirm-button":{flexGrow:1,paddingRight:"$10"},[`& ${Ol}`]:{width:"$48",height:"$48"}});function zl(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:i,quoteWarningsConfirmed:a}=z(),l=rf(),[p,u]=En(""),{connectedWallets:m}=G(),c=!n,[h,d]=En(!1),y=we.use.setSelectedSwap(),x=U.use.disabledLiquiditySources(),f=of(x),{manager:b}=Kd(),{fetch:g,loading:v,cancelFetch:S}=Xr(),[C,B]=En({swap:null,error:null,warnings:null}),[O,T]=En(!1),$=s(async({selectedWallets:I,customDestination:j})=>{let oe=await g?.({selectedWallets:I,customDestination:j});return B(oe),oe},"onConfirmSwap"),M=s(async()=>{if(C.swap&&n)try{await b?.create("swap",{swapDetails:C.swap},{id:C.swap.requestId}),y(C.swap.requestId);let I=`../${P.swaps}/${C.swap.requestId}`;l(I,{replace:!0}),setTimeout(()=>{e("")},0)}catch(I){u("Error: "+I?.message)}},"addNewSwap"),N=s(async()=>{await M()},"onConfirm"),w=s(async()=>{C?.warnings?.quote&&!a?T(!0):await N()},"onStartConfirmSwap"),D=s(async()=>{B({error:null,swap:null,warnings:null}),g({selectedWallets:o,customDestination:i}).then(I=>{B(I)}).catch(I=>console.error(I))},"onRefresh");return ao(()=>{!!f.current.length&&!x.length&&D(),f.current=x},[x.length]),ao(()=>{c&&S()},[c]),ao(()=>{c&&d(c)},[c]),ao(()=>{c||g({selectedWallets:o,customDestination:i}).then(I=>B(I)).catch(I=>console.error(I))},[]),ao(()=>{let I=C.warnings?.quote?.type&&Object.values(ut).includes(C.warnings?.quote?.type),j=o.length<1||!o.every(ne=>m.find(Q=>ne.address===Q.address&&ne.walletType===Q.walletType&&ne.chain===Q.chain)),oe=!1;if(I){let ne=Oo(t),Q=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(de=>de.from.blockchain===Q)||(ne=ne.slice(-ne.length,ne.length-1)),ne.every(de=>o.find(De=>De.chain===de))||(oe=!0)}t&&(j||oe)&&(queueMicrotask(()=>nf(d.bind(null,!0))),r(!1))},[C.warnings?.quote,o.length,m.length]),tf(()=>{t||l("../")},[]),te.createElement(X,{header:{title:bn.t("Confirm Swap"),onWallet:()=>{let I=`../${P.wallets}`;l(I)},suffix:te.createElement(Zd,{container:K(),side:"bottom",content:bn.t("Settings")},te.createElement(Oe,{size:"small",variant:"ghost",onClick:()=>l("../"+P.settings)},te.createElement(Jd,{size:18,color:"black"})))},footer:te.createElement(af,null,te.createElement("div",{className:"confirm-button"},te.createElement(Fl,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:v,disabled:!!C.error,onClick:w},bn.t("Start Swap"))),te.createElement(Ol,{variant:"contained",type:"primary",size:"large",loading:v,onClick:d.bind(null,!0)},te.createElement(ef,{size:24})))},h&&te.createElement(Ja,{open:h,onClose:()=>d(!1),onCancel:S,loading:v,onCheckBalance:$}),te.createElement(sf,null,te.createElement("div",{className:"description"},te.createElement(Rd,{variant:"title",size:"small"},bn.t("You get")),te.createElement(Fl,{style:{padding:"0"},variant:"ghost",disabled:v,onClick:D},te.createElement("div",{className:"icon"},te.createElement(Yd,{size:16})))),p&&te.createElement(te.Fragment,null,te.createElement(Dl,{type:"error",variant:"alarm",title:p}),te.createElement(Xd,{size:12})),C.warnings?.quoteUpdate&&te.createElement("div",{className:"quote-update__alert"},te.createElement(Dl,{variant:"alarm",type:"warning",title:C.warnings.quoteUpdate&&rn(C.warnings.quoteUpdate)})),te.createElement(so,{quote:t,type:"swap-preview",expanded:!0,alertPosition:"top",error:C.error,loading:v,warning:C.warnings?.quote??null,refetchQuote:D,showWarningModal:O,onOpenWarningModal:()=>T(!0),onCloseWarningModal:()=>T(!1),onConfirmWarningModal:async()=>{T(!1),await M()},onChangeSettings:()=>l("../"+P.settings)})))}s(zl,"ConfirmSwapPage");import{i18n as In}from"@lingui/core";import{useManager as ff}from"@rango-dev/queue-manager-react";import{Divider as gf,NotFound as hf,styled as Yl}from"@rango-dev/ui";import ht,{useState as yf}from"react";import{useNavigate as Sf}from"react-router-dom";import{CloseIcon as pf,IconButton as uf,SearchIcon as cf,TextField as mf}from"@rango-dev/ui";import lo from"react";import{styled as lf}from"@rango-dev/ui";var ql=lf("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function st(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:i,value:a,setValue:l,...p}=t;return lo.createElement(mf,{prefix:lo.createElement(ql,null,lo.createElement(cf,{color:"black"})),suffix:!!a.length&&lo.createElement(uf,{variant:"ghost",onClick:()=>l?.(""),size:"small"},lo.createElement(pf,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:i,...p})}s(st,"SearchInput");import{i18n as Ql}from"@lingui/core";import{Divider as Hl,SwapListItem as Vl,Typography as jl}from"@rango-dev/ui";import R from"react";import{darkTheme as df,styled as An}from"@rango-dev/ui";var Yr=An("div",{width:"100%",display:"flex",flexDirection:"column",".group-title":{$$color:"$colors$neutral600",[`.${df} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Jr=An("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Zr=An("div",{gap:"$10",display:"flex",flexDirection:"column"}),Gl=An("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function Rr(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,i=n?n(e):[{title:"History",swaps:e}];if(r){let a=[{},{}];return R.createElement(R.Fragment,null,[{title:"Today",swaps:a},{title:"Last month",swaps:a}].map(p=>R.createElement(R.Fragment,{key:p.title},R.createElement(Yr,null,R.createElement(Jr,null,R.createElement(jl,{variant:"label",size:"medium",className:"group-title"},Ql.t(p.title))),R.createElement(Hl,{size:4}),R.createElement(Zr,null,p.swaps.map((u,m)=>{let c=m+p.title;return R.createElement(R.Fragment,{key:c},R.createElement(Vl,{isLoading:!0}))}))))))}return R.createElement(R.Fragment,null,i.filter(a=>a.swaps.length>0).map(a=>R.createElement(R.Fragment,{key:a.title},R.createElement(Yr,null,R.createElement(Jr,null,R.createElement(jl,{variant:"label",size:"medium",className:"group-title"},Ql.t(a.title))),R.createElement(Hl,{size:4}),R.createElement(Zr,null,a.swaps.map(l=>{let p=l.steps[0],u=l.steps[l.steps.length-1];return R.createElement(R.Fragment,{key:l.requestId},R.createElement(Vl,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,onlyShowTime:a.title==="Today",swapTokenData:{from:{token:{image:p.fromLogo,displayName:p.fromSymbol},blockchain:{image:p.fromBlockchainLogo||""},amount:Bo(l.inputAmount)},to:{token:{image:u.toLogo,displayName:u.toSymbol},blockchain:{image:u.toBlockchainLogo||""},amount:Bo(u.outputAmount||""),estimatedAmount:Bo(u.expectedOutputAmountHumanReadable||"")}}}))}))))))}s(Rr,"SwapsGroup");import Kl from"dayjs";var Xl=s(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["month",{title:"Last month",swaps:[]}],["year",{title:"Last year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=Kl();return t.forEach(n=>{let r=Kl(Number(n.creationTime));o.isSame(r,"day")?e.get("today")?.swaps.push(n):o.isSame(r,"month")?e.get("month")?.swaps.push(n):o.isSame(r,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");var zt=s(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");var Cf=Yl("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),kf=Yl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Tf=s((t,e)=>t?.length?t.filter(o=>Ke(o.fromBlockchain,e)||Ke(o.toBlockchain,e)||Ke(o.toSymbol,e)||Ke(o.fromSymbol,e)).length:!1,"isStepContainsText");function Jl(){let t=we.use.setSelectedSwap(),e=Sf(),{manager:o,state:n}=ff(),r=zt(o).map(({swap:c})=>c),[i,a]=yf(""),l=!n.loadedFromPersistor,p=s(c=>{let h=c.target.value;a(h)},"searchHandler"),u=r;i&&(u=r.filter(c=>Ke(c.inputAmount,i)||Ke(c.status,i)||Tf(c.steps,i)||Ke(c.requestId,i)));let m=!u?.length&&!l;return ht.createElement(X,{header:{title:In.t("History")}},ht.createElement(Cf,null,ht.createElement(st,{setValue:a,fullWidth:!0,variant:"contained",placeholder:In.t("Search Transaction"),autoFocus:!0,onChange:p,value:i}),ht.createElement(kf,null,m&&ht.createElement(Gl,null,ht.createElement(gf,{size:32}),ht.createElement(hf,{title:In.t("No results found"),description:i?In.t("Try using different keywords"):""})),!m&&ht.createElement(Rr,{list:u,onSwapClick:c=>{t(c),e(c)},groupBy:Xl,isLoading:l}))))}s(Jl,"HistoryPage");import{i18n as oi}from"@lingui/core";import{Button as If,styled as ni,SwapInput as tp,WarningIcon as Wf}from"@rango-dev/ui";import $e,{useEffect as Nf,useRef as Lf,useState as Bf}from"react";import{useNavigate as Mf}from"react-router-dom";import{ReverseIcon as wf,styled as Zl}from"@rango-dev/ui";import ei from"react";var vf=Zl("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),xf=Zl("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&:hover":{color:"$secondary500"}});function Rl(){let t=z.use.switchFromAndTo();return ei.createElement(vf,null,ei.createElement(xf,{onClick:()=>{t()}},ei.createElement(wf,{size:12})))}s(Rl,"SwitchFromAndToButton");import{useCallback as bf,useEffect as Ef,useState as ti}from"react";var Af=600;function ep(){let{fetch:t,cancelFetch:e}=wn(),{liquiditySources:o,enableNewLiquiditySources:n,experimental:r}=k().config,i=k().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:u,resetQuote:m,setQuote:c}=z(),{slippage:h,customSlippage:d,affiliatePercent:y,affiliateRef:x,affiliateWallets:f,disabledLiquiditySources:b}=U(),[g,v]=ti(!1),[S,C]=ti(null),[B,O]=ti(null),T=d??h,M=!a||!l||We(a,l)||!Xt(p),N=s(I=>{v(I),C(null),O(null)},"resetState"),w=s(I=>{let{fromToken:j,toToken:oe,inputAmount:ne,liquiditySources:Q,excludeLiquiditySources:se,disabledLiquiditySources:me,slippage:de,affiliateRef:De,affiliatePercent:It,affiliateWallets:jt}=I;if(g||N(!0),!M&&j&&oe){m();let ot=jo({fromToken:j,toToken:oe,inputAmount:ne,liquiditySources:Q,excludeLiquiditySources:se,disabledLiquiditySources:me,slippage:de,affiliateRef:De,affiliatePercent:It,affiliateWallets:jt});r?.routing&&(ot.experimental=!0),t(ot).then(He=>{v(!1),c(He),vn(He);let _=Ko(He,{fromToken:j,toToken:oe,userSlippage:T,tokens:i});O(_)}).catch(He=>{let{error:_}=xn(He);(_?.type===0||_?.type===1)&&m(),_?.type!==2&&(C(_),v(!1))})}},"fetch"),D=bf(is(I=>{M||w(I)},Af),[M]);return Ef(()=>{if(!Xt(p)||u?.eq(0)){N(!1),e();return}if(!M)return m(),N(!0),D({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:b,slippage:T,affiliateRef:x,affiliatePercent:y,affiliateWallets:f}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,M,o?.length,n,b.length,T,x,y,JSON.stringify(f)]),{fetch:()=>w({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:b,slippage:T,affiliateRef:x,affiliatePercent:y,affiliateWallets:f}),loading:g,error:S,warning:B}}s(ep,"useSwapInput");var Pf=ni("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),$f=ni("div",{position:"relative"}),_f=ni("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function op(){let t=Mf(),{fetch:e,loading:o,error:n,warning:r}=ep(),{fromToken:i,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:m,inputUsdValue:c,outputAmount:h,outputUsdValue:d,quote:y,resetQuoteWallets:x,setQuoteWarningsConfirmed:f}=z(),b=k().fetchStatus,g=G.use.connectedWallets(),v=we.use.setCurrentPage(),[S,C]=Bf(!1),B=Lf(null),O=!1,T=!cr(y,m,c),$=!cr(y,m,d),M=Ms({fetchMetaStatus:b,fetchingQuote:o,inputAmount:m,quote:y,anyWalletConnected:g.length>0,error:n,warning:r,needsToWarnEthOnPath:O}),N=a&&i?A(Bt(g,a?.name,i?.symbol,i?.address)?.amount||"0",8,8):"0",w=a&&i?A(Bt(g,a?.name,i?.symbol,i?.address)?.amount||"0",Bt(g,a?.name,i?.symbol,i?.address)?.decimal):"0";Nf(()=>(v(P.home),x(),v.bind(null,"")),[]);let D=!c||!d||!d.gt(0)?null:Ne(c.toString(),d.toString());return $e.createElement(X,{ref:B,fixedHeight:!1,hasLogo:!0,footer:$e.createElement(If,{type:"primary",size:"large",disabled:M.disabled,prefix:M.action==="confirm-warning"&&$e.createElement(Wf,null),fullWidth:!0,onClick:()=>{M.action==="connect-wallet"?t(P.wallets):M.action==="confirm-warning"?C(!0):t(P.confirmSwap)}},M.title),header:{onWallet:()=>{t(P.wallets)},hasBackButton:!1,title:oi.t("Swap"),suffix:$e.createElement(br,{layoutRef:B.current,onClickRefresh:y||n?e:void 0,onClickHistory:()=>t(P.swaps),onClickSettings:()=>t(P.settings)})}},$e.createElement(Pf,null,$e.createElement(_f,null,$e.createElement($f,null,$e.createElement(tp,{label:oi.t("From"),mode:"From",onInputChange:u,balance:N,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:i?.symbol||"",image:i?.image||""},onClickToken:()=>t(P.fromSwap),price:{value:m,usdValue:T?void 0:A(c,4,4),error:T?H().unknownPriceError.impactTitle:void 0},disabled:b==="failed",loading:b==="loading",onSelectMaxBalance:()=>{N!=="0"&&u(w.split(",").join(""))}}),$e.createElement(Rl,null)),$e.createElement(tp,{sharpBottomStyle:!!y?.result||o,label:oi.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:A(Ne(c,d),2,2),warningLevel:nt(D??0),price:{value:A(h,6,6),usdValue:$?void 0:A(d,4,4),error:$?H().unknownPriceError.impactTitle:void 0},onClickToken:()=>t(P.toSwap),disabled:b==="failed",loading:b==="loading"})),$e.createElement("div",{className:"quote__container"},$e.createElement(so,{quote:y,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:S,onOpenWarningModal:()=>C(!0),onCloseWarningModal:()=>C(!1),onConfirmWarningModal:()=>{C(!1),f(!0),t(P.confirmSwap)},onChangeSettings:()=>t(P.settings)}))))}s(op,"Home");import{i18n as np}from"@lingui/core";import{List as Df,ListItemButton as Ff,Radio as Of,RadioRoot as Uf,Typography as zf}from"@rango-dev/ui";import yt from"react";import{styled as Wn}from"@rango-dev/ui";var at=Wn("div",{height:"100%",overflow:"hidden"}),po=Wn("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),ri=Wn("div",{width:80,display:"flex",justifyContent:"flex-end"}),ii=Wn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Nn(){let t=U.use.language(),e=U.use.setLanguage();return{activeLanguage:t,languages:ss,defaultLanguage:Kt,changeLanguage:r=>e(r||Kt)}}s(Nn,"useLanguage");function rp(){let{activeLanguage:t,changeLanguage:e,languages:o}=Nn(),n=o.map(r=>{let{local:i,label:a,SVGFlag:l}=r;return{id:i,value:i,title:yt.createElement(zf,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:yt.createElement(Of,{value:i}),start:yt.createElement(l,null)}});return yt.createElement(X,{header:{title:np.t("Language")}},yt.createElement(at,null,yt.createElement(Uf,{value:t},yt.createElement(Df,{type:yt.createElement(Ff,{title:np.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}s(rp,"LanguagePage");import{i18n as qt}from"@lingui/core";import{Button as Vf,Checkbox as jf,Image as Kf,ListItemButton as Xf,NotFound as Yf,Typography as Jf}from"@rango-dev/ui";import Ce,{useState as Zf}from"react";import{Checkbox as Qf,Skeleton as sp}from"@rango-dev/ui";import uo from"react";import{ListItem as qf,styled as Gf}from"@rango-dev/ui";var ip=Gf(qf,{height:61});var Hf=30;function si(){return uo.createElement(po,null,Array.from(Array(Hf),t=>uo.createElement(ip,{hasDivider:!0,key:t,start:uo.createElement(sp,{variant:"circular",width:35,height:35}),title:uo.createElement(sp,{variant:"text",size:"large",width:90}),end:uo.createElement(Qf,{checked:!1})})))}s(si,"LoadingLiquiditySourceList");function ai({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),[n,r]=Zf(""),i=U.use.toggleLiquiditySource(),a=Wo(o),l=[];t==="Exchanges"&&l.push("DEX"),t==="Bridges"&&(l.push("BRIDGE"),l.push("AGGREGATOR"));let p=a.filter(y=>l.includes(y.type)),u=p.length===p.filter(y=>y.selected).length,m=s(()=>{p.forEach(y=>{u?i(y.groupTitle):y.selected||i(y.groupTitle)})},"toggleAllSources"),c=p.map(y=>{let{selected:x,groupTitle:f,logo:b}=y;return{start:Ce.createElement(Kf,{src:b,size:22,type:"circular"}),onClick:()=>i(f),end:Ce.createElement(jf,{checked:x}),title:Ce.createElement(Jf,{variant:"title",size:"xmedium"},qt.t(f)),...y}}),h=s(y=>{let x=y.target.value;r(x)},"searchHandler"),d=c;return n&&(d=c.filter(y=>Ke(y.groupTitle,n))),Ce.createElement(X,{header:{title:qt.t(t),suffix:Ce.createElement(ri,null,Ce.createElement(Vf,{variant:"ghost",size:"xsmall",onClick:m},qt.t(u?"Deselect all":"Select all")))}},Ce.createElement(at,null,Ce.createElement(st,{value:n,setValue:r,fullWidth:!0,color:"light",variant:"contained",placeholder:qt.t("Search {sourceType}",{sourceType:t}),onChange:h}),e==="loading"&&Ce.createElement(si,null),!d.length&&n?Ce.createElement(ii,null,Ce.createElement(Yf,{title:qt.t("No results found"),description:qt.t("Try using different keywords")})):e==="success"&&Ce.createElement(po,null,d.map(y=>Ce.createElement(Ce.Fragment,{key:y.id},Ce.createElement(Xf,{style:{height:"61px"},...y,selected:!1,hasDivider:!0}))))))}s(ai,"LiquiditySourcePage");import{i18n as fp}from"@lingui/core";import{Divider as ci,getCountCategories as ag,SelectableCategoryList as lg}from"@rango-dev/ui";import lt,{useState as gp}from"react";import{i18n as pi}from"@lingui/core";import{Divider as mp,Image as og,ListItemButton as ng,NotFound as rg,Typography as dp}from"@rango-dev/ui";import _e,{useEffect as ig,useState as sg}from"react";import{BlockchainCategories as li}from"@rango-dev/ui";import{TransactionType as Ln}from"rango-sdk";var Rf=s((t,e)=>{switch(e){case li.ALL:return!0;case li.UTXO:return t.type===Ln.TRANSFER;case li.OTHER:return t.type!==Ln.TRANSFER&&t.type!==Ln.COSMOS&&t.type!==Ln.EVM;default:return t.type===e}},"filterByType"),ap=s((t,e,o)=>t.filter(n=>Rf(n,o)).filter(n=>Ct(n.name,e)||Ct(n.displayName,e)),"filterBlockchains");import{styled as lp}from"@rango-dev/ui";var pp=lp("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Bn=lp("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",".image-container":{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as eg,Skeleton as up}from"@rango-dev/ui";import Mn from"react";var tg=20;function cp(){return Mn.createElement(Bn,null,Array.from(Array(tg),t=>Mn.createElement(eg,{key:t,hasDivider:!0,start:Mn.createElement(up,{variant:"circular",width:35,height:35}),title:Mn.createElement(up,{variant:"text",size:"large",width:90})})))}s(cp,"LoadingBlockchainList");function ui(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[i,a]=sg(e),{fetchStatus:l}=k();ig(()=>{a([...ap(e,o,r)])},[e,o,r]);let p=s(()=>!i.length&&o?_e.createElement(_e.Fragment,null,_e.createElement(mp,{size:32}),_e.createElement(rg,{title:pi.t("No results found"),description:pi.t("Try using different keywords")})):_e.createElement(Bn,{key:`${r}-${o}`},i.map(u=>_e.createElement(ng,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:_e.createElement(og,{src:u.logo,size:30}),title:_e.createElement(dp,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return _e.createElement(pp,null,_e.createElement(dp,{variant:"label",size:"large"},pi.t("Select Blockchain")),_e.createElement(mp,{size:4}),l==="loading"&&_e.createElement(cp,null),l==="success"&&p())}s(ui,"BlockchainList");function mi(t){let{type:e}=t,o=dt(),[n,r]=gp(""),[i,a]=gp("ALL"),l=z.use.setToBlockchain(),p=z.use.setFromBlockchain(),u=k().fetchStatus,m=k().blockchains({type:e}),h=ag(m)!==1;return lt.createElement(X,{header:{title:fp.t("Select Blockchain")}},lt.createElement(ci,{size:12}),h&&lt.createElement(lt.Fragment,null,lt.createElement(lg,{setCategory:a,category:i,blockchains:m,isLoading:u==="loading"}),lt.createElement(ci,{size:24})),lt.createElement(st,{value:n,autoFocus:!0,placeholder:fp.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),lt.createElement(ci,{size:16}),lt.createElement(ui,{list:m,searchedFor:n,blockchainCategory:i,onChange:d=>{e==="source"?p(d):l(d),o()}}))}s(mi,"SelectBlockchainPage");import{i18n as Pp}from"@lingui/core";import{Divider as $p}from"@rango-dev/ui";import Gt,{useState as bg}from"react";import{useNavigate as Eg}from"react-router-dom";import{i18n as gi}from"@lingui/core";import{BlockchainsChip as Pn,Divider as Cp,Image as kp,Skeleton as dg,Typography as hi}from"@rango-dev/ui";import he from"react";import{useEffect as cg}from"react";var hp=["ETH","COSMOS","OSMOSIS"];function di(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(pg),o?.limit&&t.length>o.limit){let i=o.limit,a=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];a=a.filter(m=>u.name!==m)}}n.sort(ug(a)),r=n.splice(i)}return{list:n,more:r}}s(di,"prepare");function pg(t,e){let o=hp,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),i=n>-1,a=r>-1;return i&&a?n>r?1:-1:i?-1:a?1:0}s(pg,"sortByMostUsedBlockchains");function ug(t){return s(function(o,n){let r=t.findIndex(p=>p===o.name),i=t.findIndex(p=>p===n.name),a=r>-1,l=i>-1;return a&&l?r>i?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}s(ug,"generateSortByPreferredBlockchainsFor");function yp(t,e){return!!e.list.find(o=>o.name===t)}s(yp,"isInVisibleList");function fi(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=U();cg(()=>{if(e?.selected){let i=di(t,o,e);yp(e.selected,i)||n(e?.selected)}},[e?.selected]);let r=di(t,o,e);return{list:r.list,more:r.more,history:[]}}s(fi,"usePrepareBlockchainList");import{styled as mg}from"@rango-dev/ui";var Sp=mg("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var fg=12;function yi(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:i}=t,a=fi(e,{limit:10,selected:n?.name}),{fetchStatus:l}=k(),p=z.use.resetToBlockchain(),u=z.use.resetFromBlockchain(),m=a.more.length>0,c=a.more.length===1,h=!c&&m;return he.createElement("div",null,he.createElement(Cp,{size:12}),he.createElement(hi,{variant:"label",size:"large"},gi.t("Select Blockchain")),he.createElement(Cp,{size:12}),he.createElement(Sp,null,l==="loading"&&Array.from(Array(fg),d=>he.createElement(dg,{key:d,variant:"rounded",height:50})),l==="success"&&he.createElement(he.Fragment,null,he.createElement(Pn,{selected:!n,onClick:()=>{o==="from"?u():p()}},he.createElement(hi,{variant:"body",size:"xsmall",color:"secondary500"},gi.t("All"))),a.list.map(d=>he.createElement(Pn,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},he.createElement(kp,{src:d.logo,size:30}))),c?he.createElement(Pn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},he.createElement(kp,{src:a.more[0].logo,size:30})):null,h?he.createElement(Pn,{onClick:i,key:"more-blockchains"},he.createElement(hi,{variant:"body",size:"xsmall",color:"secondary500"},gi._("More +{count}",{count:a.more.length}))):null)))}s(yi,"BlockchainsSection");import{i18n as wi}from"@lingui/core";import{darkTheme as Wp,Divider as mo,ExternalLinkIcon as yg,Image as Sg,ListItemButton as Cg,NotFound as kg,PinIcon as Tg,Skeleton as Np,Typography as fo,VirtualizedList as wg}from"@rango-dev/ui";import F,{forwardRef as vg,useEffect as Lp,useState as Bp}from"react";var Tp=s((t,e)=>{t=t.replace(/^#/,""),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let[i,a,l]=t.match(/.{2}/g);[i,a,l]=[parseInt(i,16)+e,parseInt(a,16)+e,parseInt(l,16)+e],i=Math.max(Math.min(255,i),0).toString(16),a=Math.max(Math.min(255,a),0).toString(16),l=Math.max(Math.min(255,l),0).toString(16);let p=(i.length<2?"0":"")+i,u=(a.length<2?"0":"")+a,m=(l.length<2?"0":"")+l;return`#${p}${u}${m}`},"colorShade"),$n=s((t,e)=>{let a={[t]:e};for(let l=1;l<10;l++)l<5&&(a={...a,[t+l*100]:Tp(e,(5-l)*25)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:Tp(e,-((l-5)*25))});return a},"generateRangeColors"),Si=s((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let i in o){let a=o[i];if(a&&a!==t[i])if(n=!0,i==="background"||i==="foreground")r={...r,[i]:a};else if(i==="neutral"&&e){let l=$n(i,a);r={...r,[`${i}100`]:l[`${i}900`],[`${i}200`]:l[`${i}800`],[`${i}300`]:l[`${i}700`],[`${i}400`]:l[`${i}600`],[`${i}500`]:l[`${i}500`],[`${i}600`]:l[`${i}400`],[`${i}700`]:l[`${i}300`],[`${i}800`]:l[`${i}200`],[`${i}900`]:l[`${i}100`]}}else r={...r,...$n(i,a)}}return n?r:{}},"generateColors");import{Divider as Ap,ListItem as hg,Skeleton as co}from"@rango-dev/ui";import Qe from"react";import{darkTheme as wp,styled as Re,Typography as gg}from"@rango-dev/ui";var vp=Re("div",{display:"flex",flexDirection:"column",flexGrow:1}),Ci=Re("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),_n=Re("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none",".description":{position:"relative",height:12,width:150,".token-title":{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"},".token-address":{transform:"translateY(12px)",visibility:"hidden","& a":{fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${wp} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}},".token-name":{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}},"&:hover":{".description":{".token-address":{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},".token-address-without-name":{bottom:"-15px"},".token-name":{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},".token-title":{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),ki=Re("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ti=Re(gg,{}),xp=Re("div",{textAlign:"right",".usd-value":{$$color:"$colors$neutral600",[`.${wp} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Dn=Re("ul",{display:"flex",alignItems:"end",flexDirection:"column"}),pW=Re("div",{display:"flex",alignItems:"center"}),bp=Re("div",{position:"relative",".image-container":{borderRadius:"$xm",overflow:"hidden"}}),Ep=Re("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6});function Ip(t){return Qe.createElement(_n,null,Array.from(Array(t.size),e=>Qe.createElement(hg,{key:e,hasDivider:!0,start:Qe.createElement(co,{variant:"circular",width:35,height:35}),end:Qe.createElement(Dn,null,Qe.createElement(co,{variant:"text",size:"large",width:70}),Qe.createElement(Ap,{size:4}),Qe.createElement(co,{variant:"text",size:"medium",width:50})),title:Qe.createElement("div",null,Qe.createElement(co,{variant:"text",size:"large",width:90}),Qe.createElement(Ap,{size:4}),Qe.createElement(co,{variant:"text",size:"medium",width:90}))})))}s(Ip,"LoadingTokenList");var vi=20,xg=s(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:i,customCssForTagTitle:a}=t,l=e.length;return F.createElement("div",{className:"description"},o?F.createElement("div",{className:"token-name"},o):F.createElement(Ci,{className:"token-title"},F.createElement(fo,{variant:"title",size:"xmedium"},r.symbol),F.createElement(mo,{direction:"horizontal",size:4}),F.createElement(ki,{css:i},F.createElement(Ti,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&F.createElement("div",{className:`token-address ${!o&&"token-address-without-name"}`},F.createElement("a",{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",F.createElement(yg,{color:"gray",size:12}))))},"renderDesc");function Mp(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[i,a]=Bp(e),l=k().fetchStatus,p=k().blockchains(),[u,m]=Bp(!0),c=G.use.loading(),{isTokenPinned:h}=k(),d=vg((f,b)=>F.createElement("div",{...f,ref:b,style:{...f.style,height:`${parseFloat(f.style?.height)+8*2}px`}})),y=s(()=>{a(e.slice(0,i.length+vi))},"loadNextPage");Lp(()=>{m(e.length>i.length)},[i.length]),Lp(()=>{a(e.slice(0,vi))},[e]);let x=s(()=>!i.length&&o?F.createElement(F.Fragment,null,F.createElement(mo,{size:32}),F.createElement(kg,{title:wi.t("No results found"),description:wi.t("Try using different keywords")})):F.createElement(wg,{Item:({index:f,style:b})=>{let g=i[f],v=g.address||"",S=p.find(T=>T.name===g.blockchain),C=$n(g.symbol,S?.color||""),B={$$color:C[`${g.symbol}100`],[`.${Wp} &`]:{$$color:C[`${g.symbol}900`]},backgroundColor:"$$color"},O={$$color:C[`${g.symbol}700`],[`.${Wp} &`]:{$$color:C[`${g.symbol}100`]},color:"$$color"};return F.createElement("div",{style:{...b,paddingRight:5}},F.createElement(Cg,{style:{height:b?.height},"tab-index":f,key:`${g.symbol}${g.address}`,id:`${g.symbol}${g.address}`,hasDivider:!0,onClick:()=>n(i[f]),start:F.createElement(bp,null,F.createElement(Sg,{src:g.image,size:30}),h(g)&&F.createElement(Ep,null,F.createElement(Tg,{size:12,color:"gray"}))),title:S?.type==="COSMOS"||g.name||!g.name&&!v?F.createElement(Ci,null,F.createElement(fo,{variant:"title",size:"xmedium"},g.symbol),F.createElement(mo,{direction:"horizontal",size:4}),F.createElement(ki,{css:B},F.createElement(Ti,{variant:"body",size:"xsmall",css:O},g.blockchain))):void 0,description:S?.info&&v&&S.type!=="COSMOS"?xg({address:v,token:i[f],customCssForTag:B,customCssForTagTitle:O,name:g.name,url:S.info.addressUrl.split("{wallet}").join(v)}):g.name||void 0,end:c?F.createElement(Dn,null,F.createElement(Np,{variant:"text",size:"large",width:70}),F.createElement(mo,{size:4}),F.createElement(Np,{variant:"text",size:"medium",width:50})):i[f]?.balance&&F.createElement(xp,null,F.createElement(fo,{variant:"title",size:"small"},g.balance?.amount),F.createElement("div",null),g.balance?.usdValue&&F.createElement(fo,{variant:"body",className:"usd-value",size:"xsmall"},`$${g.balance?.usdValue}`))}))},hasNextPage:u,itemCount:i.length,loadNextPage:y,innerElementType:d,size:60,key:`${r}-${o}`}),"renderList");return F.createElement(vp,null,F.createElement(fo,{variant:"label",size:"large"},wi.t("Select Token")),F.createElement(mo,{size:4}),l==="loading"&&F.createElement(Ip,{size:vi}),l==="success"&&F.createElement(_n,null,x()))}s(Mp,"TokenList");function xi(t){let{type:e}=t,o=Eg(),n=dt(),{fromBlockchain:r,toBlockchain:i,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=z(),{connectedWallets:m}=G(),[c,h]=bg(""),y=(e==="source"?r:i)?.name??"",x=k().blockchains({type:e}),f=k().tokens({type:e,blockchain:y,searchFor:c}),b=ws(f,m),g=s(S=>{e==="source"?p(S):u(S)},"updateBlockchain"),v=s(S=>{e==="source"?a({token:S,meta:{blockchains:x,tokens:f}}):l({token:S,meta:{blockchains:x,tokens:f}})},"updateToken");return Gt.createElement(X,{header:{title:Pp.t("Swap {type}",{type:e})}},Gt.createElement(yi,{blockchains:x,type:e=="source"?"from":"to",blockchain:e==="source"?r:i,onMoreClick:()=>o(P.blockchains),onChange:S=>{g(S)}}),Gt.createElement($p,{size:24}),Gt.createElement(st,{value:c,autoFocus:!0,placeholder:Pp.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>h(""),onChange:S=>h(S.target.value)}),Gt.createElement($p,{size:16}),Gt.createElement(Mp,{list:b,selectedBlockchain:y,searchedFor:c,onChange:S=>{v(S);let C=x.find(B=>S.blockchain===B.name);C&&g(C),n()}}))}s(xi,"SelectSwapItemsPage");import{i18n as Et}from"@lingui/core";import{ChevronRightIcon as Ai,Divider as Ii,InfoIcon as Bg,List as Mg,ListItemButton as Pg,Skeleton as $g,Switch as _g,Tooltip as Dg,Typography as At}from"@rango-dev/ui";import V from"react";import{useNavigate as Fg}from"react-router-dom";import{i18n as Up}from"@lingui/core";import{Chip as Ig,Divider as zp,InfoIcon as Wg,TextField as Ng,Tooltip as Lg,Typography as qp}from"@rango-dev/ui";import ve from"react";import{styled as Fn}from"@rango-dev/ui";var _p=Fn("div",{paddingTop:"$5",paddingBottom:"30px"}),Dp=Fn("div",{display:"flex",alignItems:"center",justifyContent:"start"}),Fp=Fn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),On=Fn("div",{maxWidth:"300px",padding:"$10"});import{i18n as bi}from"@lingui/core";import{Typography as Ag}from"@rango-dev/ui";import go from"react";function Op(){return go.createElement(On,null,go.createElement(Ag,{variant:"label",size:"medium",color:"neutral700"},bi.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),go.createElement("br",null),go.createElement("br",null),go.createElement("b",null,bi.t("Warning")),":",bi.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}s(Op,"SlippageTooltipContent");function Ei(){let t=U.use.slippage(),e=U.use.setSlippage(),o=U.use.customSlippage(),n=U.use.setCustomSlippage();return ve.createElement(_p,null,ve.createElement(Fp,null,ve.createElement(qp,{variant:"title",size:"xmedium"},Up.t("Slippage tolerance per swap")),ve.createElement(zp,{direction:"horizontal",size:4}),ve.createElement(Lg,{container:K(),side:"top",content:ve.createElement(Op,null)},ve.createElement(Wg,{color:"gray"}))),ve.createElement(Dp,null,as.map((r,i)=>{let a=`slippage-${i}`;return ve.createElement(ve.Fragment,null,ve.createElement(Ig,{style:{width:"64px",flexShrink:0},key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}),ve.createElement(zp,{direction:"horizontal",size:8}))}),ve.createElement(Ng,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let i=parseFloat(r.target.value);(!i||i>=cs&&i<=us)&&n(i)},suffix:o&&ve.createElement(qp,{variant:"body",size:"small"},"%"),placeholder:Up.t("Custom")})))}s(Ei,"Slippage");function Gp(){let t=Fg(),{theme:e}=k().config,o=k().fetchStatus,n=k().swappers(),r=U.use.infiniteApprove(),i=U.use.toggleInfiniteApprove(),a=Wo(n),l=a.filter(v=>v.type==="BRIDGE"||v.type==="AGGREGATOR"),p=l.length,u=l.filter(v=>v.selected).length,m=a.filter(v=>v.type==="DEX"),c=m.length,h=m.filter(v=>v.selected).length,d=s((v,S)=>{switch(o){case"loading":return V.createElement($g,{variant:"text",size:"medium",width:50});case"failed":return V.createElement(At,{variant:"body",size:"medium",color:"$error500"},Et.t("Loading failed"));default:return V.createElement(At,{variant:"body",size:"medium"},`${v} / ${S}`)}},"handleEndItem"),y={id:"bridge-item",title:V.createElement(At,{variant:"title",size:"xmedium"},Et.t("Enabled bridges")),end:V.createElement(V.Fragment,null,d(u,p),V.createElement(Ii,{direction:"horizontal",size:8}),V.createElement(Ai,{color:"black"})),onClick:()=>t(P.bridges)},x={id:"exchange-item",title:V.createElement(At,{variant:"title",size:"xmedium"},Et.t("Enabled exchanges")),end:V.createElement(V.Fragment,null,d(h,c),V.createElement(Ii,{direction:"horizontal",size:8}),V.createElement(Ai,{color:"gray"})),onClick:()=>t(P.exchanges)},f={id:"theme-item",title:V.createElement(At,{variant:"title",size:"xmedium"},Et.t("Theme")),end:V.createElement(Ai,{color:"gray"}),onClick:()=>t(P.themes)},b={id:"infinite-approval-item",title:V.createElement(V.Fragment,null,V.createElement(At,{variant:"title",size:"xmedium"},Et.t("Infinite Approval")),V.createElement(Ii,{direction:"horizontal",size:4}),V.createElement(Dg,{side:"top",container:K(),content:V.createElement(On,null,V.createElement(At,{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.")))},V.createElement(Bg,{color:"gray"}))),end:V.createElement(_g,{checked:r}),onClick:i},g=[y,x];return e?.singleTheme||g.push(f),g.push(b),V.createElement(X,{header:{title:Et.t("Setting")}},V.createElement(at,null,V.createElement(Ei,null),V.createElement(Mg,{type:V.createElement(Pg,{title:"_",id:"_",onClick:()=>console.log()}),items:g})))}s(Gp,"SettingsPage");import{cancelSwap as Bh}from"@rango-dev/queue-manager-rango-preset";import{useManager as Mh}from"@rango-dev/queue-manager-react";import Tu from"react";import{i18n as pt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as dh,getCurrentStep as fh,getRelatedWalletOrNull as gh,PendingSwapNetworkStatus as Xn}from"@rango-dev/queue-manager-rango-preset";import{Button as du,CopyIcon as hh,Divider as yh,IconButton as Sh,QuoteCost as Ch,StepDetails as kh,Typography as Ht,useCopyToClipboard as Th}from"@rango-dev/ui";import{useWallets as wh}from"@rango-dev/wallets-react";import Y,{useEffect as fu,useRef as vh,useState as gu}from"react";import{useNavigate as xh}from"react-router-dom";import{i18n as xe}from"@lingui/core";var Og=1e3,Ug=31536e3,zg=2592e3,qg=86400,Gg=3600,Qg=60;function Qp(t){let e=Math.floor((Date.now()-t)/Og),n=[{turningPoint:Ug,label:xe.t("year"),pluralLabel:xe.t("years")},{turningPoint:zg,label:xe.t("month"),pluralLabel:xe.t("months")},{turningPoint:qg,label:xe.t("day"),pluralLabel:xe.t("days")},{turningPoint:Gg,label:xe.t("hour"),pluralLabel:xe.t("hours")},{turningPoint:Qg,label:xe.t("minute"),pluralLabel:xe.t("minutes")}].sort((r,i)=>i.turningPoint-r.turningPoint);for(let r of n){let{turningPoint:i,label:a,pluralLabel:l}=r,p=Math.floor(e/i);if(p>1)return`${p} ${l}`;if(p===1)return`${p} ${a}`}return e>1?`${e} ${xe.t("seconds")}`:`${e} ${xe.t("second")}`}s(Qp,"timeSince");function Hp(t){return t.finishTime?xe.t({id:"{time} ago",values:{time:Qp(parseInt(t.finishTime))}}):xe.t({id:"{time} ago",values:{time:Qp(parseInt(t.creationTime))}})}s(Hp,"getSwapDate");import{PendingSwapNetworkStatus as qn}from"@rango-dev/queue-manager-rango-preset";import{Modal as Jg}from"@rango-dev/ui";import Gn from"react";import{i18n as Un}from"@lingui/core";import{Button as Vp,Divider as Wi,MessageBox as Hg,Typography as jp}from"@rango-dev/ui";import et from"react";var Kp=s(({onCancel:t,onClose:e})=>et.createElement(et.Fragment,null,et.createElement(Wi,{size:20}),et.createElement(Hg,{type:"error",title:Un.t("Cancel Swap"),description:Un.t("Are you sure you want to cancel this swap?")}),et.createElement(Wi,{size:32}),et.createElement(Vp,{variant:"contained",type:"primary",size:"large",onClick:t},et.createElement(jp,{variant:"title",size:"medium",color:"neutral100"},Un.t("Yes, Cancel it"))),et.createElement(Wi,{size:12}),et.createElement(Vp,{variant:"outlined",type:"primary",size:"large",onClick:e},et.createElement(jp,{variant:"title",size:"medium",color:"primary"},Un.t("No, Continue")))),"CancelContent");import{i18n as zn}from"@lingui/core";import{Button as Xp,Divider as Ni,MessageBox as Vg,Typography as Yp}from"@rango-dev/ui";import tt from"react";var Jp=s(({onDelete:t,onClose:e})=>tt.createElement(tt.Fragment,null,tt.createElement(Ni,{size:20}),tt.createElement(Vg,{type:"error",title:zn.t("Delete Transaction"),description:zn.t("Are you sure you want to delete this swap?")}),tt.createElement(Ni,{size:32}),tt.createElement(Xp,{variant:"contained",type:"primary",size:"large",onClick:t},tt.createElement(Yp,{variant:"title",size:"medium",color:"neutral100"},zn.t("Yes, Delete it"))),tt.createElement(Ni,{size:12}),tt.createElement(Xp,{variant:"outlined",type:"primary",size:"large",onClick:e},tt.createElement(Yp,{variant:"title",size:"medium",color:"primary"},zn.t("No, Cancel")))),"DeleteContent");import{i18n as Li}from"@lingui/core";import{PendingSwapNetworkStatus as Bi}from"@rango-dev/queue-manager-rango-preset";var Mi={[Bi.WaitingForNetworkChange]:{type:"loading",title:Li.t("Change Network")},[Bi.WaitingForConnectingWallet]:{type:"warning",title:Li.t("Connect Wallet")},[Bi.NetworkChanged]:{type:"success",title:Li.t("Network Changed")}};import{MessageBox as Kg,Wallet as Xg,WalletState as Rp}from"@rango-dev/ui";import{useWallets as Yg}from"@rango-dev/wallets-react";import ho from"react";import{styled as jg}from"@rango-dev/ui";var Zp=jg("div",{display:"flex",justifyContent:"center"});var eu=s(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:i}=t,{connect:a,getWalletInfo:l,state:p}=Yg(),u=n?.walletType,c=u&&p(u).connected?Rp.CONNECTED:Rp.DISCONNECTED;return ho.createElement(ho.Fragment,null,ho.createElement(Kg,{type:e,title:o,description:r}),i&&u&&ho.createElement(Zp,null,ho.createElement(Xg,{container:K(),title:l(u).name,image:l(u).img,type:u,state:c,onClick:async()=>a(u)})))},"WalletStateContent");function Pi(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:i,message:a}=t,l=e===qn.WaitingForNetworkChange||e===qn.WaitingForConnectingWallet||e===qn.NetworkChanged;return Gn.createElement(Jg,{open:!!e,onClose:o,container:document.getElementById("swap-box")||document.body},l&&Gn.createElement(eu,{type:Mi[e].type,title:Mi[e].title,currentStepWallet:i,message:a,showWalletButton:e!==qn.WaitingForNetworkChange}),e==="delete"&&Gn.createElement(Jp,{onClose:o,onDelete:n}),e==="cancel"&&Gn.createElement(Kp,{onClose:o,onCancel:r}))}s(Pi,"SwapDetailsModal");import{i18n as yo}from"@lingui/core";import{Button as $i,Divider as Qn,MessageBox as tu,Modal as Zg,TokenAmount as Rg,Typography as Hn}from"@rango-dev/ui";import ce from"react";import{useNavigate as eh}from"react-router-dom";function _i(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:i,token:a,chain:l,percentageChange:p,description:u,diagnosisUrl:m}=t,c=eh();return ce.createElement(Zg,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},n==="success"?ce.createElement(tu,{type:"success",title:yo.t("Swap Successful")},ce.createElement(Rg,{direction:"vertical",type:"output",centerAlign:!0,price:{value:r,usdValue:i},token:a,chain:l,percentageChange:p}),ce.createElement(Qn,{size:12}),ce.createElement(Hn,{variant:"body",size:"medium",color:"neutral700",align:"center"},u)):ce.createElement(tu,{type:"error",title:yo.t("Transaction Failed"),description:u}),ce.createElement(Qn,{size:32}),n==="success"&&ce.createElement($i,{variant:"contained",type:"primary",size:"large",onClick:()=>{c("../../")}},ce.createElement(Hn,{variant:"title",size:"medium",color:"neutral100"},yo.t("Done"))),ce.createElement(Qn,{size:12}),m&&ce.createElement(ce.Fragment,null,ce.createElement($i,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},ce.createElement(Hn,{variant:"title",size:"medium",color:"primary"},yo.t("Diagnosis"))),ce.createElement(Qn,{size:12})),ce.createElement($i,{variant:"outlined",type:"primary",size:"large",onClick:o},ce.createElement(Hn,{variant:"title",size:"medium",color:"primary"},yo.t("See Details"))))}s(_i,"SwapDetailsCompleteModal");import ch from"react";import{i18n as ah}from"@lingui/core";import{Alert as au,IconButton as lh,LinkIcon as ph}from"@rango-dev/ui";import St,{Fragment as uh}from"react";import{Alert as th,ChevronDownIcon as oh,ChevronUpIcon as nh,IconButton as rh}from"@rango-dev/ui";import Vn,{useState as ih}from"react";function ou(t){let{message:e}=t,[o,n]=ih(!1);return Vn.createElement(th,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&Vn.createElement(rh,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?Vn.createElement(nh,{size:12,color:"gray"}):Vn.createElement(oh,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}s(ou,"FailedAlert");import{styled as sh}from"@rango-dev/ui";var nu=sh("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as ru}from"@lingui/core";import{PendingSwapNetworkStatus as Di}from"@rango-dev/queue-manager-rango-preset";import{Alert as Fi,Button as iu}from"@rango-dev/ui";import So from"react";function su(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?So.createElement(Fi,{type:"warning",title:n.shortMessage,action:So.createElement(iu,{size:"xxsmall",type:"warning",onClick:()=>{o(Di.WaitingForNetworkChange),e().catch(i=>{console.log(i)})}},ru.t("Change"))}):r===Di.WaitingForConnectingWallet?So.createElement(Fi,{type:"warning",title:n.shortMessage,action:So.createElement(iu,{size:"xxsmall",type:"warning",onClick:()=>{o(Di.WaitingForConnectingWallet)}},ru.t("Connect"))}):So.createElement(Fi,{type:"warning",title:n.shortMessage})}s(su,"WarningAlert");function Oi(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:i,hasAlreadyProceededToSign:a}=t,l=Yt(i),p=i.status==="waitingForApproval"&&!l,u=i.status==="running"&&!l;return St.createElement(nu,null,i.explorerUrl?.map((m,c,h)=>{let d=c+m.url,y=c===h.length-1,x=y&&u||p,f=y&&i.status==="failed";return St.createElement(uh,{key:d},St.createElement(au,{type:x&&"loading"||f&&"error"||"success",title:m.description?`${m.description} Tx`:ah.t("View transaction"),action:m.url&&St.createElement(lh,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},St.createElement(ph,{size:16}))}))}),(u&&!a||p&&!i.explorerUrl?.length)&&St.createElement(au,{type:"loading",title:r.shortMessage}),i.status!=="failed"&&l&&St.createElement(su,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),i.status==="failed"&&St.createElement(ou,{message:r}))}s(Oi,"SwapDetailsAlerts");var lu=2e3;var pu=s(({swap:t,blockchains:e,...o})=>{let n=t.hasAlreadyProceededToSign!==!1;return t.steps.map((r,i)=>{let a=i===0?t.inputAmount:t.steps[i-1].outputAmount;return{from:{token:{displayName:r.fromSymbol,image:r.fromLogo??""},chain:{displayName:Ye(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:A(a,6,6)}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Ye(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:A(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6)}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:ch.createElement(Oi,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function uu(t){if(Yt(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"}}s(uu,"getStepState");import{darkTheme as mh,styled as Qt}from"@rango-dev/ui";var jn=Qt("div",{display:"flex",width:"100%",flexDirection:"column",alignItems:"center",height:"0",flexGrow:1,"& .row":{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${mh} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"},"& .request-id":{display:"flex",justifyContent:"center",alignItems:"center",height:"$24"},"& .output":{display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"},"& .title-steps":{textAlign:"left",width:"100%",padding:"0 $20 $10"}}),Kn=Qt("div",{width:"100%"}),cu=Qt("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),QL=Qt("div",{display:"flex",flexDirection:"column",gap:"$10"}),mu=Qt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),HL=Qt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1});function Ui(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:i,connect:a,getWalletInfo:l}=wh(),p=k().blockchains(),u=k().tokens(),m=z.use.retry(),c=xh(),[h,d]=Th(lu),y=vh(null),[x,f]=gu(null),[b,g]=gu(null),v=s(()=>{r(),f(null)},"onCancel"),S=Le.use.getUnreadNotifications(),C=Le.use.setAsRead(),B=S(),O=fh(e),T=O?.networkStatus;fu(()=>{B.find(ae=>ae.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(g(e.status),C(e.requestId))},[e.status]),fu(()=>{j?f(Xn.WaitingForNetworkChange):T===Xn.WaitingForConnectingWallet||T===Xn.NetworkChanged?f(T):f(null)},[T]);let $=qs(e),M=O?dh(e,O):null,N=O?gh(e,O):null,w=Hp(e),D=Gs(e),I=s(q=>!!l(q)?.mobileWallet,"isMobileWallet"),j=T===Xn.WaitingForNetworkChange&&!!M&&!!N?.walletType&&(I(N.walletType)||i(N.walletType,M)),oe=j?a.bind(null,N.walletType,M):void 0,ne=zs(e,O),Q=pu({swap:e,switchNetwork:oe,showNetworkModal:T,setNetworkModal:f,message:ne,blockchains:p}),se=Q.length,[me,de]=[e.steps[0],e.steps[se-1]],De=de.outputAmount||de.expectedOutputAmountHumanReadable,It=e.steps.reduce((q,ae)=>q+parseFloat(ae.feeInUsd||""),0),jt=e.steps.find(q=>q.diagnosisUrl)?.diagnosisUrl,ot=A(String(parseFloat(A(De,6,6))*(_o(de.toBlockchain,de.toSymbol,de.toSymbolAddress,u)||0)),4,4),He=A(String(parseFloat(e.inputAmount)*(_o(me.fromBlockchain,me.fromSymbol,me.fromSymbolAddress,u)||0)),4,4),_=Ne(He,ot),J=e.status==="success"?pt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:A(De,6,6),token:Q[se-1].to.token.displayName,conciseAddress:Fo(e.wallets[Q[se-1].to.chain.displayName]?.address||""),chain:Q[se-1].to.chain.displayName}}):`${pt.t("Transaction was not sent.")} ${$?pt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:$.outputAmount,symbol:$.symbol,blockchain:$.blockchain}}):""}`;return Y.createElement(X,{noPadding:!0,header:{title:pt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>f("cancel"):void 0,suffix:e.status!=="running"&&Y.createElement(_t,null,Y.createElement(du,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>f("delete")},Y.createElement(Ht,{size:"medium",variant:"label",color:"error"},pt.t("Delete"))))},footer:D&&!b&&Y.createElement(du,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{m(e,{blockchains:p,tokens:u}),setTimeout(()=>{c("../../")},0)}},pt.t("Try again"))},Y.createElement(jn,null,Y.createElement(Kn,null,Y.createElement("div",{className:"row"},Y.createElement(Ht,{variant:"label",size:"large",color:"neutral700"},`${pt.t("Request ID")}:`),Y.createElement("div",{className:"request-id"},Y.createElement(Ht,{variant:"label",size:"small",color:"neutral700"},o),Y.createElement(Sh,{variant:"ghost",onClick:d.bind(null,o||"")},Y.createElement(hh,{size:16,color:"gray"})))),Y.createElement("div",{className:"row"},Y.createElement(Ht,{variant:"label",size:"large",color:"neutral700"},`${pt.t("Created at")}:`),Y.createElement(Ht,{variant:"label",size:"small",color:"neutral700"},w))),Y.createElement("div",{className:"output"},Y.createElement(Ch,{fee:A(String(It),2,2),time:No(Lo(e.steps)),steps:se}),Y.createElement(to,{from:{price:{value:A(e.inputAmount,6,6),usdValue:He},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:A(De,6,6),usdValue:ot},token:{displayName:Q[se-1].to.token.displayName,image:Q[se-1].to.token.image},chain:{image:Q[se-1].to.chain.image,displayName:Q[se-1].to.chain.displayName}},percentageChange:A(_,2,2),warningLevel:nt(_??0)})),Y.createElement("div",{className:"title-steps"},Y.createElement(Ht,{variant:"title",size:"small"},pt.t("Swaps steps"))),Y.createElement(yh,{size:8}),Y.createElement(cu,{ref:y},Q.map((q,ae)=>{let Ve=ae,Ae=uu(e.steps[ae]),er=Ae==="error"||Ae==="in-progress"||Ae==="warning"||Ae==="completed"&&ae===Q.length-1;return Y.createElement(kh,{key:Ve,step:q,type:"swap-progress",ref:y,state:Ae,hasSeparator:ae!==0,tabIndex:Ve,isFocused:er})}))),Y.createElement(Pi,{state:x,onClose:()=>f(null),onCancel:v,onDelete:n,message:ne.detailedMessage.content,currentStepWallet:N}),Y.createElement(_i,{open:!!b,diagnosisUrl:jt,onClose:()=>g(null),status:e.status==="success"?"success":"failed",priceValue:A(De,6,6),usdValue:ot,percentageChange:A(_,2,2),token:{displayName:Q[se-1].to.token.displayName,image:Q[se-1].to.token.image},chain:{image:Q[se-1].to.chain.image},description:J}))}s(Ui,"SwapDetails");import{i18n as vo}from"@lingui/core";import{CopyIcon as Wh,IconButton as Nh,NotFound as Lh,Skeleton as Cu,Typography as Jn}from"@rango-dev/ui";import pe from"react";import{i18n as Eh}from"@lingui/core";import{ChainToken as Ah,Divider as qi,Skeleton as wo,Typography as Ih}from"@rango-dev/ui";import Z from"react";import{styled as zi}from"@rango-dev/ui";var hu=zi("div",{width:"100%",height:"100%",padding:"$0 $20",".cost":{paddingTop:"$15",display:"flex"},".quote-summary":{padding:"$15 $0"},".quote-summary-item":{display:"flex",justifyContent:"space-between",alignItems:"center"},".token-amount":{display:"flex",justifyContent:"space-between",alignItems:"center"},".quote-summary-separator":{width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"},".swaps-steps":{paddingBottom:"$10"}}),yu=zi("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15",".step-title":{display:"flex",justifyContent:"start",alignItems:"center"},".step-tokens":{paddingTop:"$5",display:"flex",alignItems:"center"},".step-token-info":{display:"flex",alignItems:"center"},".step-icon-container":{padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"},".extra-info":{display:"flex",paddingTop:"$10",paddingBottom:"$5"}}),Yn=zi("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"});import{ChainToken as Su,Divider as Co,NextIcon as bh,Skeleton as ko}from"@rango-dev/ui";import le from"react";function To(t){let{extraInfo:e}=t;return le.createElement(yu,null,le.createElement("div",{className:"step-title"},le.createElement(ko,{height:28,width:28,variant:"circular"}),le.createElement(Co,{direction:"horizontal",size:8}),le.createElement(ko,{height:15,width:148,variant:"rounded"})),le.createElement("div",{className:"step-tokens"},le.createElement(Co,{direction:"horizontal",size:20}),le.createElement("div",{className:"step-token-info"},le.createElement(Su,{size:"small",loading:!0,chainImage:"",tokenImage:""}),le.createElement(Co,{direction:"horizontal",size:8}),le.createElement(ko,{height:12,width:76,variant:"rounded"})),le.createElement("div",{className:"step-icon-container"},le.createElement(bh,{color:"gray",size:16})),le.createElement("div",{className:"step-token-info"},le.createElement(Su,{size:"small",loading:!0,chainImage:"",tokenImage:""}),le.createElement(Co,{direction:"horizontal",size:8}),le.createElement(ko,{height:12,width:76,variant:"rounded"}))),e&&le.createElement("div",{className:"extra-info"},le.createElement(Co,{direction:"horizontal",size:20}),le.createElement(ko,{height:22,width:297,variant:"rectangular"})))}s(To,"LoadingSwapDetailStep");function Gi(){let t=Z.createElement("div",{className:"quote-summary-item"},Z.createElement("div",{className:"token-amount"},Z.createElement(Ah,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),Z.createElement(qi,{size:8,direction:"horizontal"}),Z.createElement(wo,{height:15,width:148,variant:"rounded"})),Z.createElement(wo,{height:12,width:64,variant:"rounded"}));return Z.createElement(hu,null,Z.createElement("div",{className:"cost"},Z.createElement(wo,{width:60,height:10,variant:"rounded"}),Z.createElement(qi,{size:4,direction:"horizontal"}),Z.createElement(wo,{width:60,height:10,variant:"rounded"}),Z.createElement(qi,{size:4,direction:"horizontal"}),Z.createElement(wo,{width:60,height:10,variant:"rounded"})),Z.createElement("div",{className:"quote-summary"},t,Z.createElement("div",{className:"quote-summary-separator"}),t),Z.createElement("div",{className:"swaps-steps"},Z.createElement(Ih,{variant:"title",size:"small"},Eh.t("Swaps steps"))),Z.createElement("div",{className:"step-container"},Z.createElement(To,{extraInfo:!0}),Z.createElement(Yn,null),Z.createElement(To,null),Z.createElement(Yn,null),Z.createElement(To,null),Z.createElement(Yn,null),Z.createElement(To,null)))}s(Gi,"LoadingSwapDetails");function ku(t){let{requestId:e,showSkeleton:o}=t;return pe.createElement(X,{noPadding:!0,header:{title:vo.t("Swap and Bridge"),suffix:pe.createElement(_t,null)}},o&&pe.createElement(jn,null,pe.createElement(Kn,null,pe.createElement("div",{className:"row"},pe.createElement(Jn,{variant:"label",size:"large",color:"neutral700"},`${vo.t("Request ID")}:`),pe.createElement("div",{className:"request-id"},pe.createElement(Jn,{variant:"label",size:"small",color:"neutral700"},pe.createElement(Cu,{width:60,height:10,variant:"rounded"})),pe.createElement(Nh,{variant:"ghost"},pe.createElement(Wh,{size:16,color:"gray"})))),pe.createElement("div",{className:"row"},pe.createElement(Jn,{variant:"label",size:"large",color:"neutral700"},`${vo.t("Created at")}:`),pe.createElement(Jn,{variant:"label",size:"small",color:"neutral700"},pe.createElement(Cu,{width:60,height:10,variant:"rounded"})))),pe.createElement(Gi,null)),!o&&pe.createElement(mu,null,pe.createElement(Lh,{title:vo.t("Not found"),description:vo.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}s(ku,"SwapDetailsPlaceholder");function wu(){let{manager:t,state:e}=Mh(),o=!e.loadedFromPersistor,n=zt(t),r=we.use.selectedSwapRequestId(),i=dt(),{fetchStatus:a}=k(),l=o||a==="loading",p=n.find(({swap:h})=>h.requestId===r),u=s(()=>{if(p?.id){let h=t?.get(p.id);h&&Bh(h)}},"onCancel"),m=s(async()=>{if(p?.id)try{t?.deleteQueue(p.id),i()}catch(h){console.log(h)}},"onDelete"),c=p?.swap;return!c||l?Tu.createElement(ku,{requestId:r||"",showSkeleton:l}):Tu.createElement(Ui,{swap:c,requestId:r||"",onCancel:u,onDelete:m})}s(wu,"SwapDetailsPage");import{i18n as xo}from"@lingui/core";import{AutoThemeIcon as Ph,DarkModeIcon as $h,LightModeIcon as _h,List as Dh,ListItemButton as Fh,Radio as Qi,RadioRoot as Oh,Typography as Hi}from"@rango-dev/ui";import be from"react";function vu(){let t=U.use.theme(),e=U.use.setTheme(),o=[{id:"light",value:"light",title:be.createElement(Hi,{variant:"title",size:"xmedium"},xo.t("Light")),onClick:()=>e("light"),start:be.createElement(_h,{color:"gray"}),end:be.createElement(Qi,{value:"light"})},{id:"dark",value:"dark",title:be.createElement(Hi,{variant:"title",size:"xmedium"},xo.t("Dark")),onClick:()=>e("dark"),start:be.createElement($h,{color:"gray"}),end:be.createElement(Qi,{value:"dark"})},{id:"auto",value:"auto",title:be.createElement(Hi,{variant:"title",size:"xmedium"},xo.t("Auto")),onClick:()=>e("auto"),start:be.createElement(Ph,{color:"gray"}),end:be.createElement(Qi,{value:"auto"})}];return be.createElement(X,{header:{title:xo.t("Theme")}},be.createElement(at,null,be.createElement(Oh,{onValueChange:n=>e(n),value:t},be.createElement(Dh,{type:be.createElement(Fh,{title:xo.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}s(vu,"ThemePage");function xu(){return Uh([{path:P.home,element:Ee.createElement(op,null)},{path:P.fromSwap,children:[{index:!0,element:Ee.createElement(xi,{type:"source"})},{path:P.blockchains,element:Ee.createElement(mi,{type:"source"})}]},{path:P.toSwap,children:[{index:!0,element:Ee.createElement(xi,{type:"destination"})},{path:P.blockchains,element:Ee.createElement(mi,{type:"destination"})}]},{path:P.settings,children:[{index:!0,element:Ee.createElement(Gp,null)},{path:P.themes,element:Ee.createElement(vu,null)},{path:P.languages,element:Ee.createElement(rp,null)},{path:P.exchanges,element:Ee.createElement(ai,{sourceType:"Exchanges"})},{path:P.bridges,element:Ee.createElement(ai,{sourceType:"Bridges"})}]},{path:P.swaps,children:[{index:!0,element:Ee.createElement(Jl,null)},{path:P.swapDetails,element:Ee.createElement(wu,null)}]},{path:P.wallets,element:Ee.createElement(Ua,null)},{path:P.confirmSwap,element:Ee.createElement(zl,null)}])}s(xu,"AppRoutes");import{isApprovalTX as zh,MainEvents as Eu,RouteEventType as Au,StepEventType as Vt,StepExecutionEventStatus as qh,useEvents as Gh}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Iu}from"react";import{StepExecutionBlockedEventStatus as Vi}from"@rango-dev/queue-manager-rango-preset";var bu=[Vi.WAITING_FOR_CHANGE_WALLET_ACCOUNT,Vi.WAITING_FOR_NETWORK_CHANGE,Vi.WAITING_FOR_WALLET_CONNECT];function Wu(){let t=k().tokens(),e=G.use.connectedWallets(),o=G.use.getWalletsDetails(),n=Le.use.setNotification(),r=Le.use.setAsRead(),i=Gh();return Iu(()=>(i.on(Eu.StepEvent,a=>{let{event:l,step:p,route:u}=a;if(l.type===Vt.TX_EXECUTION&&l.status===qh.TX_SENT&&!zh(p)||l.type===Vt.SUCCEEDED){let c=e.find(d=>d.chain===p?.fromBlockchain),h=p?.fromBlockchain!==p?.toBlockchain&&e.find(d=>d.chain===p?.toBlockchain);c&&o([c],t),h&&o([h],t)}l.type===Vt.TX_EXECUTION_BLOCKED&&bu.includes(l.status)||l.type===Vt.FAILED?n(l,u):(l.type===Vt.TX_EXECUTION||l.type===Vt.CHECK_STATUS)&&r(u.requestId)}),()=>i.all.clear()),[i,e.length]),Iu(()=>(i.on(Eu.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===Au.FAILED||l.type===Au.SUCCEEDED)&&n(l,p)}),()=>i.all.clear()),[i,e.length]),null}s(Wu,"WidgetEvents");import{globalCss as Qh}from"@rango-dev/ui";var Nu=s(()=>Qh({"@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')","url('https://fonts.cdnfonts.com/css/times-new-roman')"]})(),"globalFont");import{createTheme as Xi,darkTheme as Xh,lightTheme as Yh}from"@rango-dev/ui";import{useEffect as Bu,useState as Jh}from"react";import{theme as jh,darkColors as Kh}from"@rango-dev/ui";var Lu=s(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Hh=s(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Lu(o%52)+e;return Lu(o%52)+e},"toAlphabeticName"),Vh=s((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ji=s(t=>Hh(Vh(5381,JSON.stringify(t))>>>0),"toHash");function Ki(t){let e=jh.colors,o=Si({...e,...Kh},!0,t?.dark),n=Si(e,!1,t?.light),r=Object.keys(o).length>0,i=Object.keys(n).length>0,a,l;if(i){let p={colors:n};a={id:`${rr}-light-${ji(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${rr}-dark-${ji(p)}`,tokens:p}}return{light:a,dark:l}}s(Ki,"customizedThemeTokens");function Mu(t){let{colors:e,fontFamily:o=rs,borderRadius:n=os,secondaryBorderRadius:r=ns,mode:i="auto"}=t,[a,l]=Jh("light"),p=U.use.theme(),u=U.use.setTheme(),{dark:m,light:c}=Ki(e),h=Xi({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[h.className,Yh.className],y=[h.className,Xh.className];if(c){let f=Xi(c.id,c.tokens);d.push(f.className)}if(m){let f=Xi(m.id,m.tokens);y.push(f.className)}return Bu(()=>{let f=s(b=>{b.matches?l("dark"):l("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&l("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),Bu(()=>{i!=="auto"&&u(i)},[i]),{activeTheme:s(()=>{let f=d.join(" "),b=y.join(" ");return p==="auto"?a==="dark"?b:f:p==="dark"?b:f},"getActiveTheme")}}s(Mu,"useTheme");import{styled as Zh}from"@rango-dev/ui";var Pu=Zh("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",fontFamily:"$widget",boxSizing:"border-box","& *, *::before, *::after":{boxSizing:"inherit",listStyleType:"none"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"}});function Zn(){Nu();let{fetch:t,config:e}=k(),{activeTheme:o}=Mu(e?.theme||{}),{activeLanguage:n,changeLanguage:r}=Nn(),[i,a]=_u(""),[l,p]=_u(),u=ey(en);return $u(()=>{t().catch(),U.persist.rehydrate(),Le.persist.rehydrate(),u.onConnectWallet(a)},[]),$u(()=>{r(e?.language)},[e?.language]),bo.createElement(Rh,{language:n},bo.createElement(Pu,{id:"swap-container",className:o()},bo.createElement(Wu,null),bo.createElement(oa,{lastConnectedWallet:i,disconnectedWallet:l,clearDisconnectedWallet:()=>{p(void 0)}},bo.createElement(xu,null))))}s(Zn,"Main");import Ji,{useMemo as yy}from"react";import{checkWaitingForNetworkChange as ty,makeQueueDefinition as oy}from"@rango-dev/queue-manager-rango-preset";import{Provider as ny}from"@rango-dev/queue-manager-react";import{useWallets as ry}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as iy}from"@rango-dev/wallets-shared";import{isEvmBlockchain as sy}from"rango-types";import ay,{useMemo as ly}from"react";function py(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:i,getWalletInfo:a}=ry(),l=ly(()=>oy({API_KEY:t.apiKey||Wt("API_KEY"),BASE_URL:Wt("BASE_URL")}),[t.apiKey]),p=k().blockchains(),m={blockchains:G.use.connectedWallets().map(g=>({accounts:[g],name:g.chain}))},c=s(async(g,v)=>{if(i(g,v))return r(g,v)},"switchNetwork"),h=s(g=>!!a(g).mobileWallet,"isMobileWallet"),d=p.filter(g=>g.enabled).reduce((g,v)=>(g[v.name]=v,g),{}),y=p.filter(sy),x=s(g=>{let{supportedChains:v}=a(g);return Po(v)},"getSupportedChainNames"),f=e(),b={meta:{blockchains:d,evmBasedChains:y,evmNetworkChainInfo:iy(y),getSupportedChainNames:x},getSigners:o,wallets:m,providers:f,switchNetwork:c,canSwitchNetworkTo:i,connect:r,state:n,isMobileWallet:h};return ay.createElement(ny,{queuesDefs:[l],context:b,onPersistedDataLoaded:g=>{ty(g)},isPaused:!1},t.children)}s(py,"QueueManager");var Du=py;import{useManager as dy}from"@rango-dev/queue-manager-react";import fy,{createContext as gy,useContext as hy}from"react";import{getCurrentBlockchainOfOrNull as uy,getCurrentStep as cy,getRelatedWalletOrNull as my}from"@rango-dev/queue-manager-rango-preset";var Eo=class{constructor(e){this.manager=e}getAllSwaps(){return zt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}getCurrentStepInfo(e){let o=cy(e);return{step:o,wallet:o?my(e,o):null,network:o?uy(e,o):null}}};s(Eo,"WidgetHistory");var Fu=gy(void 0);function Yi(t){let{manager:e}=dy(),o=new Eo(e),n=G.use.connectedWallets(),r=G.use.loading(),i=Ts(n),a=G.use.getWalletsDetails(),l={history:o,wallets:{isLoading:r,details:n,totalBalance:i,refetch:a}};return fy.createElement(Fu.Provider,{value:l},t.children)}s(Yi,"WidgetInfo");function Ou(){let t=hy(Fu);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}s(Ou,"useWidget");function Rn(t){let{onUpdateState:e,config:o}=t;return yy(()=>{ts({API_KEY:o?.apiKey||Ao,BASE_URL:o?.apiUrl||es})},[o]),Ji.createElement(tn,{config:o,onUpdateState:e},Ji.createElement(Du,{apiKey:o.apiKey},Ji.createElement(Yi,null,t.children)))}s(Rn,"WidgetProvider");function Uu(t){return t.config?.externalWallets?Zi.createElement(Zn,null):Zi.createElement(Rn,{config:t.config??or},Zi.createElement(Zn,null))}s(Uu,"Widget");export{a$ as MainEvents,S$ as Networks,l$ as PendingSwapNetworkStatus,p$ as RouteEventType,u$ as StepEventType,c$ as StepExecutionBlockedEventStatus,m$ as StepExecutionEventStatus,h$ as WalletEvents,C$ as WalletTypes,Uu as Widget,Rn as WidgetProvider,tn as WidgetWallets,Ki as customizedThemeTokens,g$ as readAccountAddress,Ka as useWallets,Ou as useWidget,d$ as useWidgetEvents};
1
+ var Qu=Object.defineProperty;var i=(t,e)=>Qu(t,"name",{value:e,configurable:!0});import{MainEvents as p$,PendingSwapNetworkStatus as u$,RouteEventType as c$,StepEventType as m$,StepExecutionBlockedEventStatus as d$,StepExecutionEventStatus as f$,useEvents as g$}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as y$,useWallets as Za,Events as S$}from"@rango-dev/wallets-react";import{Networks as k$,WalletTypes as T$}from"@rango-dev/wallets-shared";import{Events as kr,Provider as bc}from"@rango-dev/wallets-react";import{isEvmBlockchain as Ec}from"rango-sdk";import en,{createContext as Ac,useEffect as Ic,useRef as Wc}from"react";import{useEffect as Yo,useLayoutEffect as ea,useMemo as Jo,useRef as Zo}from"react";import lc,{createContext as pc,useContext as uc,useEffect as cc,useRef as mc}from"react";import{create as sc}from"zustand";import{persist as ac}from"zustand/middleware";var nr={apiKey:"",multiWallets:!0,enableNewLiquiditySources:!0},os=i((t,e,o)=>({config:{...nr,...t},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})}}),"createConfigSlice");import{RangoClient as Vu}from"rango-sdk";var Eo="c6381a79-2817-4602-83bf-6a641a409e32",ns="https://api.rango.exchange";var rr={API_KEY:Eo};function Wt(t){return rr[t]||""}i(Wt,"getConfig");function rs(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),rr=e,rr}i(rs,"initConfig");var is=20,ss=25,as="Roboto",ir="theme-widget";var Ao,Nt=i(()=>Ao||(Ao=new Vu(Wt("API_KEY"),Wt("BASE_URL")),Ao),"httpService");function Lt(t){return Array.from(new Set(t))}i(Lt,"removeDuplicateFrom");function sr(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(sr,"areEqual");function ls(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(ls,"debounce");function Ct(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Ct,"containsText");var j=i(()=>document.getElementById("swap-box"),"getContainer");function Io(t,e){let o=t.map(s=>s.swapperGroup),n=[];return Lt(t.map(s=>s.swapperGroup)).map(s=>{let a=t.find(l=>l.swapperGroup===s);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}i(Io,"getUniqueSwappersGroups");function ps(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(ps,"sortLiquiditySourcesByGroupTitle");function Ne(t,e){return e?.[t]==="hidden"}i(Ne,"isFeatureHidden");function Wo(t,e){return e?.[t]==="enabled"}i(Wo,"isFeatureEnabled");import{WalletState as Ke}from"@rango-dev/ui";import{readAccountAddress as Xu}from"@rango-dev/wallets-react";import{detectInstallLink as Yu,getCosmosExperimentalChainInfo as Ju,isEvmAddress as Zu,KEPLR_COMPATIBLE_WALLETS as jy,Networks as ms}from"@rango-dev/wallets-shared";import ar from"bignumber.js";import{isCosmosBlockchain as Ru}from"rango-types";import ju from"bignumber.js";var Ie=new ju(0);import{WalletTypes as Ku}from"@rango-dev/wallets-shared";var us=[Ku.LEAP];import{BigNumber as cs}from"bignumber.js";var No=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),N=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new cs(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new cs(n.toFixed(a,r)).eq(n)){s=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Lo=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var je=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Kt=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Bo(t,e=4){let o=parseFloat(t);if(isNaN(o))return t;let n=Math.pow(10,e);return(Math.round(o*n)/n).toString()}i(Bo,"limitDecimalPlaces");function ec(t){switch(!0){case t.connected:return Ke.CONNECTED;case t.connecting:return Ke.CONNECTING;case!t.installed:return Ke.NOT_INSTALLED;default:return Ke.DISCONNECTED}}i(ec,"mapStatusToWalletState");function ds(t,e,o,n){return o.filter(r=>!us.includes(r)).filter(r=>{let{supportedChains:s,isContractWallet:a}=e(r),{installed:l,network:p}=t(r);return a&&(!l||!!n&&p!==n)?!1:n?!!s.find(m=>m.name===n):!0}).map(r=>{let{name:s,img:a,installLink:l}=e(r),p=ec(t(r));return{title:s,image:a,link:Yu(l),state:p,type:r}})}i(ds,"mapWalletTypesToWalletInfo");function $o(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i($o,"walletAndSupportedChainsNames");function fs(t,e,o,n,r){let s=[];function a(p,u){if(!!!s.find(c=>c.chain===p)){let c={address:u,chain:p,walletType:t};s.push(c)}}i(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:m}=Xu(p),c=l.length>0,g=l.includes(m),f=m===ms.Unknown;if(c&&!g&&!f)return;let h=m===ms.Unknown&&Zu(u);if(f&&!h)return;o.includes(m)||h?r?a(m,u.toLowerCase()):l.filter(w=>o.includes(w)).forEach(w=>{a(w,u.toLowerCase())}):a(m,u)}),s}i(fs,"prepareAccountsForWalletStore");function gs(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain;e.includes(n)||e.push(n),e.includes(r)||e.push(r),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(s=>{let a=s.from.blockchain,l=s.to.blockchain;e.includes(a)||e.push(a),e.includes(l)||e.push(l)})}),e}i(gs,"getRequiredChains");function _o(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(_o,"isAccountAndWalletMatched");function hs(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 ar(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:Do(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(hs,"makeBalanceFor");function ys(t){return{...t,loading:!1,error:!0}}i(ys,"resetConnectedWalletState");var Ss=i(t=>{let e=new Set,n=t?.reduce((s,a)=>s.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...s,a]:s,[])?.map(s=>{let a={name:s.chain,accounts:[]};return e.has(s.address)||e.add(s.address),e.forEach(l=>{s.address===l&&a.accounts.push(s)}),a}),r=N(n?.flatMap(s=>s.accounts)?.flatMap(s=>s?.balances)?.map(s=>new ar(s?.amount||Ie).multipliedBy(s?.usdPrice||0))?.reduce((s,a)=>s.plus(a),Ie)||Ie).toString();return tc(r)},"calculateWalletUsdValue");function tc(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(tc,"numberWithThousandSeparator");var Do=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),Fo=i((t,e)=>{let o=Ju(Object.entries(t).map(([,n])=>n).filter(Ru));return o&&o[e]?.experimental},"isExperimentalChain");function Uo(t){return t?{...t,amount:N(t.amount,8,8),usdValue:N(t.usdValue,4,4)}:null}i(Uo,"formatBalance");function Cs(t,e){return t.sort((o,n)=>{let r=e(o),s=e(n);return r?.usdValue&&s?.usdValue?parseFloat(s.usdValue)-parseFloat(r.usdValue):!r?.usdValue&&s?.usdValue?1:r?.usdValue&&!s?.usdValue?-1:!r?.usdValue&&!s?.usdValue?parseFloat(s?.amount||"0")-parseFloat(r?.amount||"0"):0}),t}i(Cs,"sortTokensByBalance");function Le(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Le,"tokensAreEqual");function ks(t){return t.sort((e,o)=>+(o.state===Ke.CONNECTED)-+(e.state===Ke.CONNECTED)||+(o.state===Ke.DISCONNECTED||o.state===Ke.CONNECTING)-+(e.state===Ke.DISCONNECTED||e.state===Ke.CONNECTING))}i(ks,"sortWalletsBasedOnConnectionState");function Oo(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(Oo,"getConciseAddress");function Ts({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Ts,"getAddress");function lr(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(lr,"createTokenHash");function qo(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new ar(o?.usdPrice??Ie).multipliedBy(o?.amount).toString():""},r=o?lr({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,s=r?e[r]:null;return r&&(!s||s&&s.amount<n.amount)&&(e[r]=n),e},{})}i(qo,"makeTokensBalance");var ws=i((t,e)=>({_blockchains:[],_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchains;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.blockchains:r.to?.blockchains)??[];return n.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let n=e()._tokens;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.tokens:r.to?.tokens)??[],a=e().blockchains({type:o.type});return n.filter(p=>s.length>0&&!s.some(u=>Le(u,p))||o.blockchain&&p.blockchain!==o.blockchain||!a.some(u=>u.name===p.blockchain)?!1:o.searchFor?!!(Ct(p.symbol,o.searchFor)||Ct(p.address||"",o.searchFor)||Ct(p.name||"",o.searchFor)):!0).sort((p,u)=>e().isTokenPinned(p)?-1:e().isTokenPinned(u)||p.isSecondaryCoin?1:u.isSecondaryCoin||!p.address&&u.address?-1:p.address&&!u.address?1:0)},isTokenPinned:o=>!!e().config.pinnedTokens?.some(r=>Le(r,o)),swappers:()=>{let{config:{enableNewLiquiditySources:o,liquiditySources:n}}=e();return e()._swappers.filter(a=>{let l=n?.includes(a.swapperGroup);return o||!n||n.length===0?!l:l}).sort(ps)},fetch:async()=>{try{let o=await Nt().getAllMetadata();t({fetchStatus:"success"});let n=[],r=[],s=o.popularTokens,a=o.swappers,l=new Set;o.tokens.forEach(p=>{l.add(p.blockchain),r.push(p)}),o.blockchains.forEach(p=>{p.enabled&&l.has(p.name)&&n.push(p)}),n.sort((p,u)=>p.sort-u.sort),t({_blockchains:n,_tokens:r,_popularTokens:s,_swappers:a})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{English as oc,French as nc,Japanese as rc,Spanish as ic}from"@rango-dev/ui";var vs=[{title:"English",label:"English",local:"en",SVGFlag:oc},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:ic},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:nc},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:rc}],Bt="en";var xs=[.5,1,3],bs=1,Es=5,As=100,Is=0;var Ws=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:Bt,preferredBlockchains:[],slippage:bs,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((a,l)=>{let p=a===o,u=l<=10-1;return p&&u}))return;let s=n.filter(a=>!(a===o));t(()=>({preferredBlockchains:[o,...s]}))},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 s=Lt(o.map(a=>a.swapperGroup));return s.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:s}}),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}=o,r=Ne("theme",n),s=Ne("language",n),a=Ne("liquiditySource",n);t({...r&&{theme:"auto"},...s&&{language:Bt},...a&&{disabledLiquiditySources:[]}})}}),"createSettingsSlice");function Ns(t){return sc()(ac((...e)=>({...ws(...e),...Ws(...e),...os(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(Ns,"createAppStore");var Ls=pc(null);function d(){let t=uc(Ls);if(cc(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(d,"useAppStore");function Bs(t){let e=mc();return e.current||(e.current=Ns(t.config)),lc.createElement(Ls.Provider,{value:e.current},t.children)}i(Bs,"AppStoreProvider");import mt from"bignumber.js";import{create as Cc}from"zustand";import{subscribeWithSelector as kc}from"zustand/middleware";import{getLastSuccessfulStep as yc}from"@rango-dev/queue-manager-rango-preset";import cC from"bignumber.js";var pt=(r=>(r[r.HIGH_VALUE_LOSS=0]="HIGH_VALUE_LOSS",r[r.UNKNOWN_PRICE=1]="UNKNOWN_PRICE",r[r.INSUFFICIENT_SLIPPAGE=2]="INSUFFICIENT_SLIPPAGE",r[r.HIGH_SLIPPAGE=3]="HIGH_SLIPPAGE",r))(pt||{});function Ps(t,e){return e.find(o=>o.name===t)?.displayName}i(Ps,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function Ms(t,e){return e.find(o=>o.id===t)?.swapperGroup}i(Ms,"getSwapperDisplayName");function ur(t,e){return e.find(o=>Le(o,t))??null}i(ur,"findToken");function cr(t,e){return e.find(o=>o.name===t)??null}i(cr,"findBlockchain");import{i18n as Fe}from"@lingui/core";import{PendingSwapNetworkStatus as Qo}from"@rango-dev/queue-manager-rango-preset";import Te from"bignumber.js";function zo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(zo,"getRequiredWallets");function Go(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Go,"isValidAddress");import{i18n as de}from"@lingui/core";var Q=i(()=>({genericServerError:de.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:de.t("Please reset your liquidity sources."),description:de.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:de.t("No Routes Found."),description:de.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:de.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:de.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:de.t("High Price Impact"),title:de.t("Price impact is too high!"),description:de.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:de.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:de.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:de.t("USD Price Unknown"),title:de.t("USD Price Unknown, Cannot calculate Price Impact."),description:de.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:de.t("Confirm USD Price Unknown")}}),"errorMessages");function $s(t){switch(t.type){case 0:return t.diagnosisMessage??Q().noResultError.title;case 1:return Q().genericServerError;default:return""}}i($s,"getQuoteErrorMessage");import{i18n as Ho}from"@lingui/core";var kt=i(()=>({connectWallet:Ho.t("Connect Wallet"),swap:Ho.t("Swap"),swapAnyway:Ho.t("Swap anyway"),ethWarning:Ho.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function _s(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Te(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Te(1e3)))??!1}i(_s,"hasHighValueLoss");function mr(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new Te(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Te(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(mr,"hasLimitError");function dr(t){let e=(t.result?.swaps||[]).filter(l=>{let p=l.fromAmountMinValue?new Te(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Te(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 Te(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Te(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=Fe.t({id:"Required: >= {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=Fe.t({id:"Required: > {min} {symbol}",values:{min:N(o,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=Fe.t({id:"Required: <= {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=Fe.t({id:"Required: < {max} {symbol}",values:{max:N(n,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(dr,"getLimitErrorMessage");function Ds(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:s,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:kt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!s||!s.result||l||!r||r==="0"?{title:kt().swap,action:"confirm-swap",disabled:!0}:a?{title:kt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:kt().ethWarning,action:"confirm-warning",disabled:!1}:{title:kt().swap,action:"confirm-swap",disabled:!1}:{title:kt().connectWallet,action:"connect-wallet",disabled:!1}}i(Ds,"getSwapButtonState");function fr(t,e,o){return!((!o||o.lte(Ie))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(fr,"canComputePriceImpact");function dc(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(dc,"requiredWallets");var fc=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function gc(t,e){let o=Ie;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=fc(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new Te(r.amount).multipliedBy(s||0))}return o}i(gc,"getUsdFeeOfStep");function Vo(t,e){return t.reduce((o,n)=>o.plus(gc(n,e)),Ie)}i(Vo,"getTotalFeeInUsd");function gr(t){let e=new Map;return t.result?.swaps.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(gr,"checkSlippageErrors");function Fs(t,e){let o=new Map;return t.result?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(Fs,"checkSlippageWarnings");function jo(t){return t.result?.swaps.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(jo,"getMinRequiredSlippage");function Us(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Us,"hasProperSlippage");function Ko(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:m,affiliatePercent:c,affiliateWallets:g,initialQuote:f,destination:k}=t,h=s?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),y=[];r?.forEach(S=>{let T=y.find(A=>A.blockchain===S.chain);T?T.addresses.push(S.address):y.push({blockchain:S.chain,addresses:[S.address]})});let b=!!f,w=Lt((f?.result?.swaps||[]).reduce((S,T)=>(S.push(T.from.blockchain,T.to.blockchain),T.internalSwaps&&Array.isArray(T.internalSwaps)&&T.internalSwaps.map(A=>{S.push(A.from.blockchain,A.to.blockchain)}),S),[]));return{amount:n.toString(),affiliateRef:m??void 0,affiliatePercent:c??void 0,affiliateWallets:g??void 0,checkPrerequisites:b,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:h??{},slippage:u.toString(),...k&&{destination:k},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!a.includes(S)),swappersGroupsExclude:!1},...b&&{blockchains:w}}}i(Ko,"createQuoteRequestBody");function Os(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Os,"getWalletsForNewSwap");function Pt(t){return t.result?.outputAmount||null}i(Pt,"getQuoteOutputAmount");function qs(t,e){return new Te(e).div(new Te(t)).minus(1).multipliedBy(100).toNumber()}i(qs,"getPercentageChange");function zs(t,e){let o=Pt(t),n=Pt(e);if(!o||!n)return!1;let r=Be(o,n);return r?r<=-1:!0}i(zs,"isOutputAmountChangedALot");function Gs(t,e,o){let n=t.validationStatus,r=gs(t);return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>Xs(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=N(new Te(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),u=N(new Te(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),m="";return a.reason==="FEE"&&(m=Fe.t(" for network fee")),a.reason==="INPUT_ASSET"&&(m=Fe.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(m=Fe.t(" for input and network fee")),Fe.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:m,currentAmount:p,blockchain:Xe(a.asset.blockchain,o)}})})}i(Gs,"generateBalanceWarnings");function Hs(t,e){return(t?new Te(t):Ie).multipliedBy(e||0)}i(Hs,"calcOutputUsdValue");function Xt(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Qo.NetworkChanged}i(Xt,"isNetworkStatusInWarningState");function Qs(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Xt(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Qo.WaitingForConnectingWallet:n=n||Fe.t("Waiting for connecting wallet");break;case Qo.WaitingForQueue:n=n||Fe.t("Waiting for other running tasks to be finished");break;case Qo.WaitingForNetworkChange:n=n||Fe.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}i(Qs,"getSwapMessages");function Vs(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(Vs,"getLastConvertedTokenInFailedSwap");function js(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(js,"shouldRetrySwap");function Ks(t,e,o,n,r,s){return t||!e&&!dc(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&s&&!Go(s,o)}i(Ks,"confirmSwapDisabled");function hr(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(hr,"searchParamsToToken");function Js(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(Js,"getQuoteToTokenUsdPrice");function yr(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(yr,"isNumberOfSwapsChanged");function Sr(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!sr(o,n)}i(Sr,"isQuoteSwappersUpdated");function Cr(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!sr(o,n)}i(Cr,"isQuoteInternalCoinsUpdated");function Zs(t,e){return yr(t,e)||Sr(t,e)||Cr(t,e)}i(Zs,"isQuoteChanged");function Xs(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(Xs,"getRequiredBalanceOfWallet");function ot(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(ot,"getPriceImpactLevel");function Rs(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=yc(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=cr(s?s.toBlockchain:n.fromBlockchain,e),p=cr(r.toBlockchain,e),u=ur(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),m=ur(a,o),c=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:m,inputAmount:c}}i(Rs,"createRetryQuote");function Xo(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:s}=e,a=Tt(o,t.requestAmount),l=Tt(n,t.result?.outputAmount??"");if(t.result&&a&&l){let m=Be(a.toString(),l.toString());if(!!m&&_s(a,m)){let g=Vo(t.result.swaps,r),f=ot(m);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:m,totalFee:g,warningLevel:f}}}else if(t.result&&(!a||!l))return{type:1};let p=jo(t),u=s>Es;if(Us(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:Fs(t,s),minRequiredSlippage:p};return null}i(Xo,"generateQuoteWarnings");function Be(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:qs(t.toString(),e.toString());return n&&n<0?n:null}i(Be,"getPriceImpact");var Sc=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"),ct=Sc;var Tt=i((t,e)=>t?.usdPrice?new mt(e||Ie).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=ct(Cc()(kc(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new mt(0),outputUsdValue:new mt(0),toBlockchain:null,toToken:null,quote:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:"",quoteWarningsConfirmed:!1,setQuote:e=>t(o=>{let n=null,r=Ie;return Kt(o.inputAmount)?(e&&(n=e.result?.outputAmount?new mt(e.result?.outputAmount):null,r=Hs(e.result?.outputAmount,Js(e)||o.toToken?.usdPrice)),{quote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetQuote:()=>t(()=>({quote:null,outputAmount:null,outputUsdValue:new mt(0)})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{quote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:Tt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{quote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new mt(0),outputUsdValue:new mt(0),quote:null},...!!o.fromToken&&{inputUsdValue:Tt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:s,fromToken:a,toBlockchain:l,toToken:p,inputAmount:u}=Rs(e,r,n);t({fromBlockchain:s,fromToken:a,inputAmount:u,outputAmount:null,inputUsdValue:Tt(a??null,u),outputUsdValue:new mt(0),toBlockchain:l,toToken:p,quote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:Tt(e.toToken,e.outputAmount?.toString()||"")})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:""}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function ta(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:s,toToken:a,fromBlockchain:l,toBlockchain:p}=O(),u=d().config,m=d().fetchStatus,c=d().blockchains(),g=d().tokens(),{setAffiliateRef:f,setAffiliatePercent:k,setAffiliateWallets:h}=d(),y=Jo(()=>u?.from?.tokens,[u?.from?.tokens]),b=Jo(()=>u?.from?.blockchains,[u?.from?.blockchains]),w=Jo(()=>u?.to?.tokens,[u?.to?.tokens]),v=Jo(()=>u?.to?.blockchains,[u?.to?.blockchains]),S=Zo(void 0),T=Zo(void 0),A=Zo(void 0),M=Zo(void 0);Yo(()=>{t(u?.amount?.toString()||"")},[u?.amount]),ea(()=>{if(m==="success"){let C=c.find($=>$.name===u?.from?.blockchain),P=g.find($=>Le($,u?.from?.token||null));(C||!C&&A.current)&&n(C??null),P?r({token:P,meta:{blockchains:c,tokens:g}}):!P&&S.current&&r({token:null}),A.current=u?.from?.blockchain,S.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),Yo(()=>{s&&y&&(y.some(C=>Le(C,s))||r({token:null})),l&&b&&(b.includes(l.name)||n(null))},[y,b]),Yo(()=>{a&&w&&(w.some(C=>Le(C,a))||e({token:null})),p&&v&&(v.includes(p.name)||o(null))},[w,v]),ea(()=>{if(m==="success"){let C=c.find($=>$.name===u?.to?.blockchain),P=g.find($=>Le($,u?.to?.token||null));(C||!C&&M.current)&&o(C??null),P?e({token:P,meta:{blockchains:c,tokens:g}}):!P&&T.current&&e({token:null}),M.current=u?.to?.blockchain,T.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),Yo(()=>{f(u?.affiliate?.ref??null),k(u?.affiliate?.percent??null),h(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(ta,"useSyncStoresWithConfig");import{useEffect as xc}from"react";import{create as Tc}from"zustand";import{subscribeWithSelector as wc}from"zustand/middleware";var z=ct(Tc()(wc((t,e)=>({connectedWallets:[],balances:{},customDestination:"",loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!s.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),s=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:qo(s),connectedWallets:s}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let s=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return s?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let s=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>_o(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:u,chain:m})=>({address:u,blockchain:m})),p=(await Nt().getWalletsDetails(a)).wallets;if(p)t(u=>{let m=u.connectedWallets.map(g=>{let f=o.find(h=>_o(h,g)),k=p.find(h=>h.address===g.address&&h.blockChain===g.chain);return k?.failed&&f&&r&&s([f],n,!1),f&&k?{...g,explorerUrl:k.explorerUrl,balances:hs(k,n),loading:!1}:g});return{loading:!1,balances:qo(m),connectedWallets:m}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(m=>o.find(c=>_o(c,m))?ys(m):m);return{loading:!1,balances:qo(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=lr(o);return n[r]??null}}))));import{allProviders as vc}from"@rango-dev/provider-all";function Ro(t,e){let o=vc({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let s=o.find(a=>a.config.type===r);s?n.push(s):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(Ro,"matchAndGenerateProviders");function oa(t,e){return Ro(t,e).map(r=>r.config.type)}i(oa,"configWalletsToWalletName");function na(t,e){let o=z.use.clearConnectedWallet(),n=Ro(void 0,e);return xc(()=>{o(),n=Ro(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(na,"useWalletProviders");var tn=Ac({onConnectWallet:()=>{}});function Nc(t){let{updateConfig:e,updateSettings:o}=d(),n=d().blockchains(),r=d().tokens(),s={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:a}=na(t.config.wallets,s),{connectWallet:l,disconnectWallet:p}=z(),u=Wc();ta(),Ic(()=>{t.config&&(e(t.config),o(t.config))},[t.config]);let m=n.filter(Ec).map(g=>g.name),c=i((g,f,k,h,y)=>{if(f===kr.ACCOUNTS)if(k){let b=$o(y.supportedBlockchains),w=fs(g,k,m,b,y.isContractWallet);l(w,r)}else p(g);if(f===kr.ACCOUNTS&&h.connected){let b=`${g}-${h.network}-${k}`;h.connected&&(u.current?u.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(f===kr.NETWORK&&h.network){let b=`${g}-${h.network}`;u.current?u.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(g,f,k,h,y)},"onUpdateState");return en.createElement(tn.Provider,{value:{onConnectWallet:g=>{u.current=g}}},en.createElement(bc,{allBlockChains:n,providers:a,onUpdateState:c,autoConnect:!0},t.children))}i(Nc,"Main");function on(t){let{config:e,...o}=t;return en.createElement(Bs,{config:e},en.createElement(Nc,{...o,config:e}))}i(on,"WidgetWallets");import ts from"react";import{I18nManager as ty}from"@rango-dev/ui";import xo,{useContext as oy,useEffect as Uu,useState as Ou}from"react";import{useQueueManager as Uc}from"@rango-dev/queue-manager-rango-preset";import{useWallets as Oc}from"@rango-dev/wallets-react";import{isEvmBlockchain as qc}from"rango-types";import nn,{Fragment as zc}from"react";import{MemoryRouter as Gc,useInRouterContext as Hc}from"react-router";import{useWallets as Bc}from"@rango-dev/wallets-react";import{useEffect as Pc,useRef as Mc}from"react";function ra(){let{connect:t,state:e}=Bc(),o=Mc({}),{fetchStatus:n}=d(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);Pc(()=>{n==="success"&&r&&s.installed&&!s.connecting&&!s.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[s,n])}i(ra,"useForceAutoConnect");import{useEffect as Tr,useRef as wr}from"react";import{createSearchParams as _c,useLocation as Dc,useSearchParams as Fc}from"react-router-dom";var _={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",themes:"themes",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId"};import{create as $c}from"zustand";var we=ct($c()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function ia(){let t=wr(!0),[e,o]=Fc(),n=Dc(),r=wr(n.search),s=wr({}),a=O.use.fromBlockchain(),l=O.use.toBlockchain(),p=O.use.fromToken(),u=O.use.toToken(),m=O.use.setFromBlockchain(),c=O.use.setFromToken(),g=O.use.setToBlockchain(),f=O.use.setToToken(),k=O.use.inputAmount(),h=O.use.setInputAmount(),y=d().fetchStatus,b=d().blockchains(),w=d().tokens(),v=we.use.setSelectedSwap();return Tr(()=>{let S={};_c(r.current).forEach((A,M)=>{S[M]=A}),s.current=S;let T=n.pathname.split(_.swaps+"/")[1]||null;T&&v(T)},[]),Tr(()=>{if(!t.current){let S="",T="",A="",M="",C="",P=s.current["autoConnect"];y!=="success"?(S=s.current["fromBlockchain"],T=s.current["fromToken"],A=s.current["toBlockchain"],M=s.current["toToken"],C=s.current["fromAmount"]||k):(S=a?.name||"",T=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),A=l?.name||"",M=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),C=k),o({...S&&{["fromBlockchain"]:S},...T&&{["fromToken"]:T},...A&&{["toBlockchain"]:A},...M&&{["toToken"]:M},...C&&{["fromAmount"]:C.toString()},...P&&{["autoConnect"]:P}},{replace:!0})}t.current=!1},[n.pathname,k,a,p,l,u]),Tr(()=>{if(y==="success"){let S=e.get("fromBlockchain"),T=e.get("fromToken"),A=e.get("toBlockchain"),M=e.get("toToken"),C=e.get("fromAmount"),P=b.find(F=>F.name===S),$=hr(w,T,P||null),W=b.find(F=>F.name===A),x=hr(w,M,W||null);P&&(m(P),$&&c({token:$,meta:{blockchains:b,tokens:w}})),W&&(g(W),x&&f({token:x,meta:{blockchains:b,tokens:w}})),C&&h(C)}},[y]),null}i(ia,"UpdateUrl");function sa({children:t,...e}){let o=Hc(),n=o?zc:Gc,r=d().blockchains(),{canSwitchNetworkTo:s}=Oc();ra();let a=r.filter(qc);return Uc({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:s}),nn.createElement(nn.Fragment,null,nn.createElement(n,null,t),o&&nn.createElement(ia,null))}i(sa,"AppRouter");import Ee from"react";import{useRoutes as zh}from"react-router-dom";import{i18n as En}from"@lingui/core";import{useManager as Yd}from"@rango-dev/queue-manager-react";import{Alert as ql,Button as zl,Divider as Jd,IconButton as Gl,RefreshIcon as Zd,SettingsIcon as Rd,styled as Hl,Tooltip as ef,Typography as tf,WalletIcon as of}from"@rango-dev/ui";import ee,{useEffect as so,useLayoutEffect as nf,useRef as rf,useState as An}from"react";import{flushSync as sf}from"react-dom";import{useNavigate as af}from"react-router-dom";import{i18n as nt}from"@lingui/core";import{Alert as _r,BalanceErrors as ed,Button as Ra,ChevronDownIcon as td,ChevronLeftIcon as od,Divider as Ft,MessageBox as nd,Modal as el,Typography as Sn,WalletIcon as rd}from"@rango-dev/ui";import L,{useEffect as id,useLayoutEffect as sd,useRef as ad,useState as xt}from"react";import{useNavigate as ld}from"react-router-dom";import{i18n as rn}from"@lingui/core";function sn(t){switch(t.type){case 0:return rn.t("Route has been updated.");case 3:return rn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return rn.t("Route swappers has been updated.");case 2:return rn.t("Route internal coins has been updated.");default:return""}}i(sn,"getQuoteUpdateWarningMessage");import*as $t from"@radix-ui/react-collapsible";import{Button as Vc,darkTheme as Mt,IconButton as jc,keyframes as aa,styled as he,TextField as Kc}from"@rango-dev/ui";var Yt=300,Xc=aa({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Yc=aa({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),la=he("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),pa=he("div",{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline"}),ua=he("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Mt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${Mt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${Mt} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),ca=he($t.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),ma=he("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),da=he(jc,{position:"absolute",left:"$20"}),fa=he("div",{paddingTop:"$20","& .wallets-list":{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline"}}),ga=he($t.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ha=he(Vc,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Mt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${Mt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${Mt} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),ya=he("div",{padding:"$10 $0","& .button__content":{display:"flex",justifyContent:"center",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),Sa=he("div",{transition:`all ${Yt}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Ca=he("div",{display:"flex"}),ka=he(Kc,{padding:"$0 $15 $15 $15"}),an=he($t.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Xc} ${Yt}ms ease-out`},false:{animation:`${Yc} ${Yt}ms ease-out`}}}}),Ta=he("div",{overflow:"visible",width:"100%"});import{i18n as qe}from"@lingui/core";import{Button as Jm,Divider as Mr,Image as Zm,MessageBox as yn,Modal as Ka,SelectableWallet as Rm,Typography as Xa,WalletState as Ya}from"@rango-dev/ui";import R,{useEffect as Ja,useState as Zt}from"react";import{WalletState as wa}from"@rango-dev/ui";import{useWallets as Jc}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as Zc,WalletTypes as Rc}from"@rango-dev/wallets-shared";import{useEffect as em,useState as tm}from"react";var om=Object.values(Rc);function ln(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:l,connect:p}=Jc(),{connectedWallets:u}=z(),m=d().blockchains(),c=oa(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||om,g=ds(s,l,c,o),f=ks(g),[k,h]=tm(""),y=i(S=>!u.find(T=>T.walletType===S&&T.chain===o),"isExperimentalChainNotAdded"),b=i(async S=>{let T=s(S);try{if(k&&h(""),T.connected)await a(S);else{let A=!!g.find(M=>M.state===wa.CONNECTED);if(!e?.multiWallets&&A)return;n?.(S),await p(S),r?.(S)}}catch(A){h("Error: "+A?.message)}},"handleClick"),w=i(()=>{let S=g?.filter(T=>T.state===wa.CONNECTING)||[];for(let T of S)a(T.type)},"disconnectConnectingWallets");em(()=>()=>{w()},[]);let v=i((S,T,A)=>Fo(A,T)&&y(S)&&!Zc.includes(S),"shouldExcludeWallet");return{list:f.filter(S=>!v(S.type,o??"",m)),error:k,handleClick:b}}i(ln,"useWalletList");import{i18n as qa}from"@lingui/core";import{styled as Ga,Typography as Gm,Wallet as Hm,WalletState as Qm}from"@rango-dev/ui";import vt,{Fragment as Vm,useState as za}from"react";import{BottomLogo as Pm,Divider as Mm,Header as $m}from"@rango-dev/ui";import fe from"react";import{useNavigate as nm}from"react-router-dom";function dt(){let t=nm();return()=>t(-1)}i(dt,"useNavigateBack");import{ChevronLeftIcon as sm}from"@rango-dev/ui";import ba from"react";import{darkTheme as rm,IconButton as im,styled as pn}from"@rango-dev/ui";var Ue=pn(im,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),va=pn("div",{position:"absolute",background:"$secondary500",[`.${rm} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),_t=pn("div",{display:"flex",justifyContent:"flex-end",width:"$40"}),xa=pn("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"});function vr(t){return ba.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},ba.createElement(sm,{color:"black",size:16}))}i(vr,"BackButton");import{i18n as am}from"@lingui/core";import{Button as lm,Typography as pm}from"@rango-dev/ui";import xr from"react";function br(t){return xr.createElement(_t,null,xr.createElement(lm,{variant:"ghost",onClick:t.onClick,size:"xsmall"},xr.createElement(pm,{variant:"label",size:"medium",color:"error500"},am.t("Cancel"))))}i(br,"CancelButton");import{i18n as um}from"@lingui/core";import{Tooltip as cm,WalletIcon as mm}from"@rango-dev/ui";import un from"react";function Er(t){return un.createElement(cm,{container:t.container,side:"top",content:um.t("Connect Wallet")},un.createElement(Ue,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&un.createElement(va,null),un.createElement(mm,{size:18,color:"black"})))}i(Er,"WalletButton");import{i18n as dn}from"@lingui/core";import{NotificationsIcon as Am,Popover as Im,RefreshIcon as Wm,SettingsIcon as Nm,Tooltip as fn,TransactionIcon as Lm}from"@rango-dev/ui";import pe from"react";import{i18n as km}from"@lingui/core";import{ChainToken as La,ChevronRightIcon as Tm,ListItemButton as wm,Typography as vm}from"@rango-dev/ui";import Oe from"react";import{useNavigate as xm}from"react-router-dom";import{create as dm}from"zustand";import{persist as fm,subscribeWithSelector as gm}from"zustand/middleware";var Pe=ct(dm()(fm(gm((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],s=n.steps[n.steps.length-1],a={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,tokenAddress:r.fromSymbolAddress,tokenSymbol:r.fromSymbol},to:{blockchain:s.toBlockchain,tokenSymbol:s.toSymbol,tokenAddress:s.toSymbolAddress}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,a]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{styled as cn}from"@rango-dev/ui";var Ea=cn("div",{padding:"$10",width:"350px",minHeight:"150px"}),Aa=cn("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),Ia=cn("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),Wa=cn("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as hm}from"@lingui/core";import{Divider as ym,NoNotificationIcon as Sm,Typography as Cm}from"@rango-dev/ui";import mn from"react";function Na(){return mn.createElement(Wa,null,mn.createElement(Sm,{color:"secondary",size:26}),mn.createElement(ym,{size:12}),mn.createElement(Cm,{variant:"body",size:"medium",color:"neutral700"},hm.t("You have no notification")))}i(Na,"NotificationNotFound");var bm=4;function Ar(){let t=xm(),e=we.use.setSelectedSwap(),{getUnreadNotifications:o}=Pe(),n=o(),r=d().blockchains(),s=d().tokens(),a=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,bm),l=i(p=>{e(p),t(`${_.swaps}/${p}`)},"handleOnClick");return Oe.createElement(Ea,null,a.length?Oe.createElement(Aa,null,a.map(p=>{let u=s.find(f=>f.address===p.route.from.tokenAddress&&f.blockchain===p.route.from.blockchain&&f.symbol===p.route.from.tokenSymbol),m=r.find(f=>f.name===p.route.from.blockchain),c=s.find(f=>f.address===p.route.to.tokenAddress&&f.blockchain===p.route.to.blockchain&&f.symbol===p.route.to.tokenSymbol),g=r.find(f=>f.name===p.route.to.blockchain);return Oe.createElement(wm,{key:p.requestId,onClick:()=>l(p.requestId),title:Oe.createElement(vm,{variant:"body",size:"small",color:"$neutral700"},km.t(p.event.message)),id:p.requestId,start:Oe.createElement(Ia,null,Oe.createElement("div",{className:"from-chain-token"},Oe.createElement(La,{tokenImage:u?u.image:"",chainImage:m?m.logo:"",size:"small"})),Oe.createElement("div",{className:"to-chain-token"},Oe.createElement(La,{tokenImage:c?c.image:"",chainImage:g?g.logo:"",size:"small"}))),end:Oe.createElement(Tm,{size:12,color:"gray"})})})):Oe.createElement(Na,null))}i(Ar,"NotificationContent");import{Typography as Em}from"@rango-dev/ui";import Ba from"react";function Pa(){let{getUnreadNotifications:t}=Pe(),e=t().length;return e?Ba.createElement(xa,null,Ba.createElement(Em,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(Pa,"UnreadNotificationsBadge");function Ir(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r,onClickNotifications:s}=t,{config:{features:a}}=d(),l=Ne("notification",a);return pe.createElement(pe.Fragment,null,pe.createElement(fn,{container:j(),side:"top",content:dn.t("Refresh")},pe.createElement(Ue,{variant:"ghost",size:"small",onClick:o,disabled:!o},pe.createElement(Wm,{size:16,color:o?"black":"gray"}))),!l&&pe.createElement(fn,{container:j(),side:"top",content:dn.t("Notifications")},pe.createElement(Im,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:j(),content:pe.createElement(Ar,null)},pe.createElement(Ue,{size:"small",variant:"ghost",onClick:s},pe.createElement(Am,{size:18,color:"black"}),pe.createElement(Pa,null)))),pe.createElement(fn,{container:j(),side:"top",content:dn.t("Settings")},pe.createElement(Ue,{size:"small",variant:"ghost",onClick:r},pe.createElement(Nm,{size:18,color:"black"}))),pe.createElement(fn,{container:j(),side:"top",content:dn.t("Transactions History")},pe.createElement(Ue,{size:"small",variant:"ghost",onClick:n},pe.createElement(Lm,{size:18,color:"black"}))))}i(Ir,"HomeButtons");import{darkTheme as Bm,styled as Wr}from"@rango-dev/ui";var Ma=Wr("div",{position:"relative",display:"flex",flexDirection:"column",borderRadius:"$primary",overflow:"hidden !important",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)",width:"95vw",maxWidth:"390px",maxHeight:"700px",$$color:"$colors$neutral100",[`.${Bm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"95vh"},false:{height:"auto"}}}}),$a=Wr("div",{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",display:"flex",flexDirection:"column",flex:1,padding:"$20 $20 $10 $20",backgroundColor:"$background",position:"relative",overflowY:"auto",overflowX:"hidden",variants:{noPadding:{true:{padding:"0"}}}}),_a=Wr("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function _m(t,e){let{children:o,header:n,footer:r,noPadding:s,hasLogo:a=!0,fixedHeight:l=!0}=t,p=z.use.connectedWallets(),{config:{features:u}}=d(),m=Ne("connectWalletButton",u),c=we.use.connectWalletsButtonDisabled(),g=dt(),f=i(()=>{!c&&n.onWallet&&n.onWallet()},"onConnectWallet"),k=typeof n.hasBackButton>"u"||n.hasBackButton;return fe.createElement(Ma,{ref:e,fixedHeight:l,id:"swap-box"},fe.createElement($m,{prefix:fe.createElement(fe.Fragment,null,k&&fe.createElement(vr,{onClick:g})),title:n.title,suffix:fe.createElement(fe.Fragment,null,n.suffix,n.onWallet&&!m&&fe.createElement(Er,{container:j(),onClick:f,isConnected:!!p?.length}),n.onCancel&&fe.createElement(br,{onClick:n.onCancel}))}),fe.createElement($a,{noPadding:s},o),(a||r)&&fe.createElement(_a,null,fe.createElement("div",{className:"footer__content"},r),a&&fe.createElement("div",{className:"footer__logo"},fe.createElement(Mm,{size:12}),fe.createElement(Pm,null))))}i(_m,"LayoutComponent");var K=fe.forwardRef(_m);K.displayName="Layout";import{Divider as qm,Modal as zm}from"@rango-dev/ui";import Lr from"react";import{i18n as Dt}from"@lingui/core";import{Image as Um,MessageBox as Nr,WalletState as Om}from"@rango-dev/ui";import wt from"react";import{keyframes as Dm,styled as gn}from"@rango-dev/ui";var Dw=gn("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Da=gn("div",{position:"relative"}),Fm=Dm({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Fa=gn("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Fm} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Ua=gn("div",{"& img":{borderRadius:"50%"}});function Oa(t){let{state:e,image:o,error:n}=t;return e===Om.CONNECTED?wt.createElement(Nr,{type:"success",title:Dt.t("Wallet Connected"),description:Dt.t("Your wallet is connected, you can use it to swap.")}):n?wt.createElement(Nr,{type:"error",title:Dt.t("Failed to Connect"),description:n||Dt.t("Your wallet is not connected. Please try again.")}):wt.createElement(Nr,{type:"loading",title:Dt.t("Connecting to your wallet"),description:Dt.t("Click connect in your wallet popup."),icon:wt.createElement(Da,null,wt.createElement(Ua,null,wt.createElement(Um,{src:o,size:45})),wt.createElement(Fa,null))})}i(Oa,"ModalContent");function Jt(t){let{open:e,onClose:o,...n}=t;return Lr.createElement(zm,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},Lr.createElement(Oa,{...n}),Lr.createElement(qm,{direction:"vertical",size:32}))}i(Jt,"WalletModal");var jm=Ga("div",{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline",paddingTop:"$15",height:"100%"}),Km=Ga("div",{textAlign:"center"}),hn=3e3,Br=300;function Ha(){let{config:t,fetchStatus:e}=d(),[o,n]=za(!1),[r,s]=za(""),a=null,{list:l,handleClick:p,error:u}=ln({config:t,onBeforeConnect:f=>{a=setTimeout(()=>{n(!0),s(f)},Br)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},hn)}}),m=l.find(f=>f.type===r),c=m?.image||"",g=m?.state||Qm.NOT_INSTALLED;return vt.createElement(K,{header:{title:qa.t("Connect Wallets")}},vt.createElement(Km,null,vt.createElement(Gm,{variant:"title",size:"xmedium",align:"center"},qa.t("Choose a wallet to connect.")),vt.createElement(jm,null,l.map((f,k)=>{let h=`wallet-${k}-${f.type}`;return vt.createElement(Vm,{key:h},vt.createElement(Hm,{...f,container:j(),onClick:y=>{p(y)},isLoading:e==="loading"}))}),vt.createElement(Jt,{open:!!o,onClose:()=>n(!1),image:c,state:g,error:u}))))}i(Ha,"WalletsPage");import{keyframes as Xm,styled as Pr}from"@rango-dev/ui";var Qa=Pr("div",{position:"relative"}),Ym=Xm({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Va=Pr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ym} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),ja=Pr("div",{"& img":{borderRadius:"50%"}});function $r(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,{config:a}=d(),l=z.use.connectedWallets(),{blockchains:p}=d(),[u,m]=Zt(""),[c,g]=Zt(null),[f,k]=Zt(!1),[h,y]=Zt(null),{suggestAndConnect:b}=Za(),w=null,{list:v,error:S,handleClick:T}=ln({config:a,chain:e,onBeforeConnect:x=>{w=setTimeout(()=>{m(x)},Br)},onConnect:()=>{w&&clearTimeout(w),setTimeout(()=>{m("")},hn)}}),[A,M]=Zt(v),C=v.length,P=r&&C-r>0,$=i(async x=>{k(!1),y("in-progress");try{await b(x.walletType,x.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Ja(()=>{M(x=>{let F=v.findIndex(I=>o(I.type,e));return P&&F>1?[v[F]].concat(v.filter((I,G)=>G!==F)):x.map(I=>v.find(G=>G.type===I.type)??I)})},[JSON.stringify(v)]);let W=document.querySelector("#swap-box");return Ja(()=>{let x=null;return(h==="completed"||h==="rejected")&&(x=setTimeout(()=>y(null),hn)),()=>{x&&clearTimeout(x)}},[h]),R.createElement(R.Fragment,null,A.slice(0,r).map(x=>{let F=Ts({connectedWallets:l,walletType:x.type,chain:e}),I=F?Oo(F):"",G=Fo(p(),e),te=!l.find(me=>me.walletType===x.type&&me.chain===e),oe=G&&te&&x.state===Ya.CONNECTED,H=oe?qe.t({id:"Add {chain} chain",values:{chain:e}}):I,ie=i(()=>{x.state===Ya.DISCONNECTED?T(x.type):oe?(g({walletType:x.type,chain:e,address:F??""}),k(!0)):n({walletType:x.type,chain:e,address:F??""})},"onClick"),ce=c?.chain?Ps(c.chain,p()):void 0;return R.createElement(R.Fragment,null,R.createElement(Jt,{open:u===x.type,onClose:()=>m(""),image:x.image,state:x.state,error:S}),!!c&&R.createElement(Ka,{open:!!c&&f,container:W,onClose:()=>{g(null)}},R.createElement(yn,{title:qe.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ce}}),type:"warning",description:qe.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ce}})},R.createElement(Mr,{size:18}),R.createElement(Mr,{size:32}),R.createElement(Jm,{onClick:$.bind(null,c),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},qe.t("Confirm")))),h&&R.createElement(Ka,{open:!!h,onClose:y.bind(null,null),container:W},h==="in-progress"&&R.createElement(yn,{type:"loading",title:qe.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:ce}}),description:qe.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:ce}}),icon:R.createElement(Qa,null,R.createElement(ja,null,R.createElement(Zm,{src:x.image,size:45})),R.createElement(Va,null))}),h==="completed"&&R.createElement(yn,{type:"success",title:qe.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:ce}}),description:qe.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:ce}})}),h==="rejected"&&R.createElement(yn,{type:"error",title:qe.t("Request Rejected"),description:qe.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:ce}})}),R.createElement(Mr,{direction:"vertical",size:32})),R.createElement(Rm,{key:x.type,description:H,onClick:ie,selected:o(x.type,e),...x}))}),P&&R.createElement(ua,{selected:!1,onClick:s.bind(null)},R.createElement(Xa,{variant:"label",size:"medium"},qe.t("Show more wallets"),R.createElement(Xa,{variant:"label",size:"medium",color:"$primary"},"\xA0+",C-(r??0)))))}i($r,"WalletList");var pd=2;function tl(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=d().config,l=d().blockchains(),{quote:p,setSelectedWallets:u,quoteWalletsConfirmed:m,setQuoteWalletConfirmed:c,customDestination:g,setCustomDestination:f}=O(),{connectedWallets:k,selectWallets:h}=z(),[y,b]=xt(""),[w,v]=xt([]),[S,T]=xt(""),[A,M]=xt(null),[C,P]=xt(g),[$,W]=xt(!!g),x=ad(null),F=zo(p),I=l.find(D=>D.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),G=i(D=>!!p?.result?.swaps.find(Y=>Y.from.blockchain===D),"isWalletRequiredFor"),[te,oe]=xt(k.filter(D=>D.selected&&F.includes(D.chain))),H=l.find(D=>D.name===I?.name),ie=i((D,Y)=>!!te.find(q=>q.walletType===D&&q.chain===Y&&q.selected&&(G(Y)||!G(Y)&&!C)),"isSelected"),ce=!!C&&$&&H&&!Go(H,C),me=i(()=>{W(!1),P(""),oe(D=>{let Y=!1;return D.map(q=>!Y&&q.chain===I?.name?(Y=!0,{...q,selected:!0}):q)})},"resetCustomDestination"),De=i(D=>{if(y&&b(""),ie(D.walletType,D.chain))return;let q=k.find(se=>se.walletType===D.walletType&&se.chain===D.chain);q&&(n(),D.chain===I?.name&&$&&(W(!1),P("")),oe(se=>se.filter(Ve=>Ve.chain!==D.chain).concat({...q,selected:!0})))},"onChange"),It=i(()=>{let D=te.filter(Y=>Y.selected);h(D),u(D),f(C),c(!0),o()},"onConfirmBalance"),jt=i(async()=>{v([]),T(""),M(null);let D=k.filter(se=>te.find(Ve=>Ve.chain===se.chain&&Ve.walletType===se.walletType)),Y=await r?.({selectedWallets:D,customDestination:C}),q=Y.warnings;q?.balance?.messages&&v(q.balance.messages),q?.quoteUpdate&&M(q.quoteUpdate),Y.error&&T($s(Y.error)),!Y.error&&(!q?.balance?.messages.length||0>0)?It():v(q?.balance?.messages??[])},"onConfirmWallets");id(()=>{oe(D=>D.concat(k.filter(Y=>!!!D.find(se=>se.chain===Y.chain)&&Y.selected&&F.includes(Y.chain))))},[k.length]),sd(()=>{$&&x.current&&setTimeout(()=>{x?.current?.scrollIntoView({behavior:"smooth"})},Yt)},[$]);let tt=document.querySelector("#swap-box"),Qe=ld();return L.createElement(el,{open:e,onClose:()=>{m||Qe("../",{replace:!0}),o()},dismissible:!y,container:tt,...!y&&{footer:L.createElement(Ca,null,L.createElement(Ra,{loading:s,disabled:Ks(s,$,C,p,te,I),onClick:jt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...y&&{containerStyle:{padding:"$0"},header:L.createElement(ma,null,L.createElement(da,{variant:"ghost",onClick:b.bind(null,"")},L.createElement(od,{size:16})),L.createElement(Sn,{variant:"headline",size:"small"},nt.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(y,l)}})))},anchor:"center"},L.createElement(el,{open:w.length>0,onClose:v.bind(null,[]),container:tt},L.createElement(nd,{title:nt.t("Insufficient account balance"),type:"error",description:L.createElement(ed,{messages:w??[]})},L.createElement(Ra,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:It},nt.t("Proceed anyway")))),y&&L.createElement(fa,null,L.createElement("div",{className:"wallets-list"},L.createElement($r,{chain:y,isSelected:ie,selectWallet:De,onShowMore:b.bind(null,y)}))),!y&&L.createElement(L.Fragment,null,S&&L.createElement(L.Fragment,null,L.createElement(_r,{variant:"alarm",type:"error",title:nt.t(S)}),L.createElement(Ft,{size:12})),A&&L.createElement(L.Fragment,null,L.createElement(_r,{variant:"alarm",type:"warning",title:sn(A)}),L.createElement(Ft,{size:12})),L.createElement(Ta,null,F.map((D,Y)=>{let q=l.find(Ae=>Ae.name===D),se=`wallet-${Y}`,Ve=Y===F.length-1;return L.createElement("div",{key:se},L.createElement(la,null,L.createElement(Sn,{variant:"title",size:"xmedium"},nt.t({id:"Your {blockchainName} wallets",values:{blockchainName:q?.shortName}})),L.createElement(Sn,{variant:"label",color:"$neutral700",size:"medium"},nt.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:q?.shortName}}))),L.createElement(Ft,{size:24}),L.createElement(pa,null,L.createElement($r,{chain:D,isSelected:ie,selectWallet:De,limit:pd,onShowMore:()=>b(q?.name??"")})),!Ve&&L.createElement(Ft,{size:32}),Ve&&a?.customDestination&&L.createElement(ya,null,L.createElement(ga,{ref:x,selected:$,open:$,onOpenChange:Ae=>{Ae?G(I?.name??"")||oe(tr=>tr.map(or=>or.chain===I?.name?{...or,selected:!1}:or)):me()}},L.createElement(ca,{onClick:()=>W(Ae=>!Ae)},L.createElement(ha,{fullWidth:!0,variant:"default",suffix:L.createElement(Sa,{orientation:$?"up":"down"},L.createElement(td,{size:10,color:"gray"}))},L.createElement("div",{className:"button__content"},L.createElement(rd,{size:18,color:"info"}),L.createElement(Ft,{size:4,direction:"horizontal"}),L.createElement(Sn,{variant:"label",size:"medium"},nt.t("Send to a different address"))))),L.createElement(an,{open:$},L.createElement(L.Fragment,null,L.createElement(Ft,{size:4}),L.createElement(ka,{autoFocus:!0,placeholder:nt.t("Your destination address"),value:C,onChange:Ae=>{P(Ae.target.value)}})))),ce&&L.createElement("div",{className:"alarms"},L.createElement(_r,{variant:"alarm",type:"error",title:nt.t({values:{destination:C},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(tl,"ConfirmWalletsModal");import{Divider as Qd}from"@rango-dev/ui";import Me from"react";import{i18n as qr}from"@lingui/core";import{Alert as cd,ChevronDownIcon as md,ChevronRightIcon as dd,Divider as zr,Image as gl,InfoIcon as fd,QuoteCost as gd,StepDetails as hd,TokenAmount as yd,Tooltip as hl,Typography as Ut}from"@rango-dev/ui";import B,{useLayoutEffect as Sd,useRef as yl,useState as Cd}from"react";import{styled as Rt}from"@rango-dev/ui";var ol=Rt("div",{paddingBottom:"$10"}),Dr=Rt("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),nl=Rt("div",{variants:{paddingTop:{true:{paddingTop:"$10"}}}}),rl=Rt("div",{paddingBottom:"$15"}),il=Rt("div",{width:"100%",display:"flex"});import*as Cn from"@radix-ui/react-collapsible";import{darkTheme as Ye,Image as sl,styled as rt}from"@rango-dev/ui";var Fr=300,al=rt(Cn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",cursor:"default",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Ye} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ye} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& .steps-details":{padding:"$10 $15"}}),ll=rt("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",cursor:"pointer",boxSizing:"border-box",position:"relative",variants:{recommended:{true:{$$color:"$colors$info100",[`.${Ye} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}},false:{$$color:"$colors$neutral200",[`.${Ye} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{},false:{}}},compoundVariants:[{listItem:!0,recommended:!0,css:{"&:hover":{$$color:"$colors$secondary200",[`.${Ye} &`]:{$$color:"$colors$secondary700"},backgroundColor:"$$color"}}},{listItem:!0,recommended:!1,css:{"&:hover":{$$color:"$colors$neutral300",[`.${Ye} &`]:{$$color:"$colors$neutral400"},backgroundColor:"$$color"}}}],"& .summary":{width:"100%",padding:"$15 $15 $10 $15",cursor:"default"},"& .basic-info":{paddingTop:"$10",display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ye} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}}),pl=rt(Cn.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:{[`& ${sl}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${sl}`]:{border:"1px transparent solid",borderRadius:"100%"}}},recommended:{true:{$$color:"$colors$info300",[`.${Ye} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ye} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& div:nth-child(1)":{display:"flex"}}),Ur=rt("div",{width:"18px",height:"18px",borderRadius:"100%",border:"1.5px transparent solid",display:"flex",justifyContent:"center",alignItems:"center",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ul=rt(an,{width:"100%"}),Or=rt("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Fr}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Qv=rt("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),cl=rt("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ye} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),ml=rt("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"});import{TokenAmount as fl}from"@rango-dev/ui";import kn from"react";import{styled as ud}from"@rango-dev/ui";var dl=ud("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%","& .separator":{height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"}});function eo(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return kn.createElement(dl,null,kn.createElement(fl,{direction:"horizontal",label:"Swap input",type:"input",price:{value:e.price.value,usdValue:e.price.usdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),kn.createElement("div",{className:"separator"}),kn.createElement(fl,{direction:"horizontal",label:"Estimated output",type:"output",price:{value:o.price.value,usdValue:o.price.usdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(eo,"QuoteSummary");function Gr(t){let{quote:e,input:o,output:n,error:r,warning:s,type:a,recommended:l=!0}=t,p=d().tokens(),u=d().blockchains(),m=d().swappers(),[c,g]=Cd(t.expanded),f=yl(null),k=yl(c),h=N(Vo(e.result?.swaps??[],p),2,2),y=No(Lo(e.result?.swaps)),b=N(o.value,6,6),w=N(n.value,6,6),v=n.usdValue?N(n.usdValue,4,4):"",S=Be(o.usdValue,n.usdValue??null),T=N(S,2,2),A=ot(S??0),C=i(W=>W.map((x,F)=>{let I,G=r?.type===3&&r.swap.swapperId===x.swapperId||r?.type===4&&r.recommendedSlippages?.has(F),te=s?.type===2&&s.recommendedSlippages?.has(F);return G?I="error":te&&(I="warning"),{swapper:{displayName:Ms(x.swapperId,m),image:x.swapperLogo},from:{token:{displayName:x.from.symbol,image:x.from.logo},chain:{displayName:Xe(x.from.blockchain,u),image:x.from.blockchainLogo},price:{value:F===0?N(o.value,6,6):N(x.fromAmount,6,6),usdValue:N((x.from.usdPrice??0)*parseFloat(x.fromAmount),4,4)}},to:{token:{displayName:x.to.symbol,image:x.to.logo},chain:{displayName:Xe(x.to.blockchain,u),image:x.to.blockchainLogo},price:{value:N(x.toAmount,6,6),usdValue:N((x.to.usdPrice??0)*parseFloat(x.toAmount),4,4)}},state:I,alerts:G||te?B.createElement(rl,null,B.createElement(cd,{type:G?"error":"warning",title:r?.type===3?r?.recommendation:qr.t("Slippage Error:"),footer:B.createElement(il,null,r?.type===3&&B.createElement(B.Fragment,null,B.createElement(Ut,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),B.createElement(zr,{direction:"horizontal",size:8}),B.createElement(Ut,{size:"xsmall",variant:"body",color:"neutral900"},"|"),B.createElement(zr,{direction:"horizontal",size:8}),B.createElement(Ut,{size:"xsmall",variant:"body",color:"neutral900"},qr.t({id:"Yours: {amount} {symbol}",values:{amount:N(x.fromAmount,6,6),symbol:x?.from.symbol}}))),(r?.type===4||s?.type===2)&&B.createElement(Ut,{size:"xsmall",variant:"body",color:"neutral900"},qr.t({id:"Minimum required slippage is {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(F)},...s?.type===2&&{minRequiredSlippage:s.recommendedSlippages?.get(F)}}})))})):void 0}}),"getQuoteSteps")(e.result?.swaps??[]),P=C.length,$=j();return Sd(()=>{c&&!k.current&&f.current&&setTimeout(()=>{f?.current?.scrollIntoView({behavior:"smooth"})},Fr),k.current=c},[c,k]),B.createElement(B.Fragment,null,B.createElement(ll,{recommended:l,listItem:a==="list-item",basic:a==="basic"},B.createElement("div",{className:"summary"},B.createElement(gd,{fee:h,time:y,steps:P}),a==="basic"&&B.createElement("div",{className:"basic-info"},B.createElement(ml,null,B.createElement(fd,{size:12,color:"gray"})),B.createElement(Ut,{size:"small",variant:"body",style:{letterSpacing:.4}},`${b} ${C[0].from.token.displayName} = ${w} ${C[C.length-1].to.token.displayName}`),B.createElement(Ut,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${v})`)),a==="list-item"&&B.createElement(yd,{type:"output",direction:"vertical",price:{value:w,usdValue:v},token:{displayName:C[P-1].to.token.displayName,image:C[P-1].to.token.image},chain:{image:C[P-1].to.chain.image},percentageChange:T,warningLevel:A}),a==="swap-preview"&&B.createElement(B.Fragment,null,B.createElement(eo,{from:C[0].from,to:C[P-1].to,percentageChange:T,warningLevel:A}),B.createElement(zr,{size:4}))),B.createElement(al,{recommended:l,open:c,onOpenChange:g},B.createElement(pl,{ref:W=>f.current=W,recommended:l,onClick:()=>g(W=>!W)},B.createElement("div",null,C.map((W,x)=>{let F=`item-${x}`,I=B.createElement(Or,null,B.createElement(dd,{size:12,color:"black",...W.state&&{color:W.state==="error"?"error":"warning"}}));return B.createElement(B.Fragment,{key:F},B.createElement(hl,{container:$,side:"bottom",sideOffset:4,content:W.from.chain.displayName},B.createElement(Ur,{state:W.state||C[x-1]?.state},B.createElement(gl,{src:W.from.chain.image,size:16}))),x===P-1&&B.createElement(B.Fragment,null,I,B.createElement(hl,{container:$,side:"bottom",sideOffset:4,content:W.to.chain.displayName},B.createElement(Ur,{state:W.state},B.createElement(gl,{src:W.to.chain.image,size:16})))),x!==P-1&&B.createElement(B.Fragment,null,I))})),B.createElement(Or,{orientation:c?"up":"down"},B.createElement(md,{size:12,color:"black"}))),B.createElement(ul,{open:c},B.createElement(cl,null),B.createElement("div",{className:"steps-details"},C.map((W,x)=>{let F=`item-${x}`;return B.createElement(hd,{type:"quote-details",key:F,step:W,hasSeparator:x!==C.length-1,state:W.state})}))))))}i(Gr,"Quote");import{ChainToken as Tn,Divider as ze,NextIcon as Td,Skeleton as ye}from"@rango-dev/ui";import E from"react";import{darkTheme as kd,styled as Sl}from"@rango-dev/ui";var Cl=Sl("div",{$$color:"$colors$neutral100",[`.${kd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ","& .cost-and-tag":{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"},variants:{rounded:{true:{borderRadius:"$xm"}}},"& .cost":{display:"flex"},"& .basic-summary":{padding:"$15 $0 14px $0"},"& .output":{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"},"& .output__token-info":{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"},"& .quote-summary":{display:"flex",justifyContent:"space-between",alignItems:"end"},"& .quote-summary__separator":{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"},"& .token-amount":{display:"flex",justifyContent:"space-between"},"& .token-amount__label":{display:"flex",flexDirection:"column",alignItems:"start"},"& .chains":{paddingTop:"$2"},"& .swap-preview":{padding:"$15 $0 $15 $0"},"& .steps":{paddingLeft:"$8"},"& .step__title":{display:"flex",alignItems:"center"},"& .step__content":{display:"flex",alignItems:"start"},"& .step__tokens":{paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"},"& .step__token-info":{display:"flex",alignItems:"center"},"& .step__icon-container":{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}}),kl=Sl("div",{borderLeft:"1px dashed black",minHeight:" 64px",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});function Hr(t){let{separator:e=!0}=t;return E.createElement(E.Fragment,null,E.createElement("div",{className:"step__title"},E.createElement(ye,{height:22,width:22,variant:"circular"}),E.createElement(ze,{direction:"horizontal",size:8}),E.createElement(ye,{height:15,width:148,variant:"rounded"})),E.createElement("div",{className:"step__content"},E.createElement(kl,{hideSeparator:!e}),E.createElement("div",{className:"step__tokens"},E.createElement("div",{className:"step__token-info"},E.createElement(Tn,{size:"small",loading:!0,chainImage:"",tokenImage:""}),E.createElement(ze,{direction:"horizontal",size:8}),E.createElement(ye,{height:12,width:76,variant:"rounded"})),E.createElement("div",{className:"step__icon-container"},E.createElement(Td,{color:"gray",size:16})),E.createElement("div",{className:"step__token-info"},E.createElement(Tn,{size:"small",loading:!0,chainImage:"",tokenImage:""}),E.createElement(ze,{direction:"horizontal",size:8}),E.createElement(ye,{height:12,width:76,variant:"rounded"})))))}i(Hr,"StepSkeleton");function Qr(t){let{type:e,expanded:o,tag:n=!1}=t,r=E.createElement("div",{className:"quote-summary"},E.createElement("div",{className:"token-amount"},E.createElement(Tn,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),E.createElement(ze,{size:8,direction:"horizontal"}),E.createElement("div",{className:"token-amount__label"},E.createElement(ye,{height:10,width:60,variant:"rounded"}),E.createElement(ze,{size:4}),E.createElement(ye,{height:15,width:148,variant:"rounded"}))),E.createElement(ye,{height:12,width:64,variant:"rounded"}));return E.createElement(Cl,{rounded:e!=="basic"},E.createElement("div",{className:"cost-and-tag"},E.createElement("div",{className:"cost"},E.createElement(ye,{width:60,height:10,variant:"rounded"}),E.createElement(ze,{size:4,direction:"horizontal"}),E.createElement(ye,{width:60,height:10,variant:"rounded"}),E.createElement(ze,{size:4,direction:"horizontal"}),E.createElement(ye,{width:60,height:10,variant:"rounded"})),n&&E.createElement(ye,{height:22,width:100,variant:"rounded"})),e==="basic"&&E.createElement("div",{className:"basic-summary"},E.createElement(ye,{height:15,width:148,variant:"rounded"})),e==="list-item"&&E.createElement("div",{className:"output"},E.createElement("div",{className:"output__token-info"},E.createElement(Tn,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),E.createElement(ze,{direction:"horizontal",size:4}),E.createElement(ye,{height:15,width:150,variant:"rounded"})),E.createElement(ze,{size:4}),E.createElement(ye,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&E.createElement(E.Fragment,null,E.createElement(ze,{size:4}),E.createElement("div",{className:"swap-preview"},r,E.createElement("div",{className:"quote-summary__separator"}),r)),E.createElement("div",{className:"chains"},E.createElement(ye,{height:15,width:321,variant:"rounded"})),o&&E.createElement("div",{className:"steps"},E.createElement(ze,{size:20}),E.createElement(Hr,null),E.createElement(Hr,null),E.createElement(Hr,{separator:!1})))}i(Qr,"QuoteSkeleton");import{i18n as qd}from"@lingui/core";import{Alert as zd,Button as Gd,InfoIcon as Hd}from"@rango-dev/ui";import We from"react";import{Alert as wd,Button as vd,Divider as El,NoRouteIcon as xd,RefreshIcon as bd,Typography as Al}from"@rango-dev/ui";import Ge from"react";import{i18n as Tl}from"@lingui/core";function wl(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:Q().genericServerError,action:{onClick:n,title:Tl.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:Q().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Tl.t("Reset")}},description:Q().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:Q().noResultError.description}}i(wl,"makeInfo");import{styled as Vr}from"@rango-dev/ui";var vl=Vr("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),xl=Vr("div",{width:"100%"}),bl=Vr("div",{padding:"$6 $0"});function jr(t){let{fetch:e,error:o}=t,n=d().disabledLiquiditySources,r=d().toggleAllLiquiditySources,s=d().swappers(),a=wl(o,n,()=>r(s,!0),e);return Ge.createElement(vl,null,Ge.createElement(xd,{size:24,color:"gray"}),Ge.createElement(El,{size:4}),Ge.createElement(Al,{variant:"title",size:"small"},Q().noResultError.title),!!a.description&&Ge.createElement(Al,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),Ge.createElement(El,{size:4}),!!a.alert&&Ge.createElement(xl,null,Ge.createElement(wd,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&Ge.createElement(vd,{size:"xsmall",type:a.alert.type,prefix:Ge.createElement(bl,null,Ge.createElement(bd,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}i(jr,"NoResult");import{i18n as no}from"@lingui/core";import{Button as Ad,Divider as Pl,MessageBox as Id,Modal as Wd,Typography as Nd,WarningIcon as Ld}from"@rango-dev/ui";import Je from"react";import{Typography as Ll}from"@rango-dev/ui";import Xr from"react";import{darkTheme as Ed,styled as wn}from"@rango-dev/ui";var Il=wn("div",{width:"100%",paddingTop:"$10"}),Kr=wn("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),Wl=wn("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Ed} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Nl=wn("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Bl(t){let{title:e,value:o,valueColor:n}=t;return Xr.createElement(Wl,null,Xr.createElement(Ll,{size:"medium",variant:"label",className:"_title"},e),Xr.createElement(Ll,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Bl,"QuoteErrorsModalItem");function Ml(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,s=r.warningLevel==="high"?"error":"warning",a=[{title:no.t("Swapping"),value:N(r.inputUsdValue,4,4)},{title:no.t("Gas cost"),value:N(r.totalFee,2,2)},{title:no.t("Receiving"),value:N(r.outputUsdValue,4,4)},{title:no.t("Price impact"),value:N(r.priceImpact,2,2),valueColor:`${s}500`}];return Je.createElement(Wd,{open:e,onClose:o,container:j()},Je.createElement(Id,{type:s,title:Q().highValueLossError.impactTitle,description:Q().highValueLossError.description}),Je.createElement(Kr,null,Je.createElement(Pl,{size:20}),Je.createElement(Nd,{size:"small",variant:"title"},no.t("Details")),Je.createElement(Kr,null,a.map((l,p)=>Je.createElement(Bl,{key:p,...l})))),Je.createElement(Pl,{size:32}),Je.createElement(Ad,{type:"primary",size:"large",prefix:Je.createElement(Ld,null),fullWidth:!0,onClick:n},Q().highValueLossError.confirmMessage))}i(Ml,"HighValueLossWarningModal");import{i18n as Yr}from"@lingui/core";function $l(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(ot(t.priceImpact)==="high"&&(o.alertType="error"),o.action=null,o.title=Q().highValueLossError.title),t.type===1&&(o.title=Q().unknownPriceError.title),t.type===2&&(o.title=Yr.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=Yr.t("Caution, your slippage is high.")),o):e?(o.alertType="error",e.type===3&&(o.title=e.recommendation,o.action="show-info"),e.type===4&&(o.title=Yr.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):null}i($l,"makeAlerts");import{i18n as Ot}from"@lingui/core";import{Button as _l,Divider as Dl,MessageBox as Bd,Modal as Pd,Typography as Md}from"@rango-dev/ui";import bt from"react";import{useNavigate as $d}from"react-router-dom";function Fl(t){let{customSlippage:e,slippage:o}=d(),{open:n,onClose:r,onConfirm:s,warning:a}=t,l=$d(),p=e??o;return bt.createElement(Pd,{anchor:"bottom",open:n,prefix:bt.createElement(_l,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},bt.createElement(Md,{variant:"label",size:"medium",color:"$neutral900"},Ot.t("Change settings"))),container:j(),onClose:r},bt.createElement(Bd,{type:"warning",title:a.type===3?Ot.t("High slippage"):Ot.t("Low slippage"),description:a.type===3?Ot.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):Ot.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},bt.createElement(Dl,{size:18}),bt.createElement(Dl,{size:32}),bt.createElement(_l,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:s},Ot.t("Confirm anyway"))))}i(Fl,"SlippageWarningModal");import{Button as _d,Divider as Dd,MessageBox as Fd,Modal as Ud,WarningIcon as Od}from"@rango-dev/ui";import ro from"react";function Ul(t){let{open:e,onClose:o,onConfirm:n}=t;return ro.createElement(Ud,{open:e,onClose:o,container:j()},ro.createElement(Fd,{type:"warning",title:Q().unknownPriceError.impactTitle,description:Q().unknownPriceError.description}),ro.createElement(Dd,{size:32}),ro.createElement(_d,{type:"primary",size:"large",prefix:ro.createElement(Od,null),fullWidth:!0,onClick:n},Q().unknownPriceError.confirmMessage))}i(Ul,"UnknownPriceWarningModal");function Jr(t){let{warning:e,error:o,refetchQuote:n,showWarningModal:r,onOpenWarningModal:s,onCloseWarningModal:a,onConfirmWarningModal:l,onChangeSettings:p}=t,u={open:r,onClose:a,onConfirm:l},m=o?.type===0||o?.type===1,c=$l(e,o?.type===3||o?.type===4?o:null);return We.createElement(We.Fragment,null,m&&We.createElement(jr,{error:o,fetch:n}),!!c&&We.createElement(Il,null,We.createElement(zd,{title:c.title,type:c.alertType,variant:"alarm",...c.action==="show-info"&&{action:We.createElement(Nl,{onClick:s},We.createElement(Hd,{size:12,color:"gray"}))},...c.action==="change-settings"&&{action:We.createElement(Gd,{size:"xxsmall",type:c.alertType,onClick:p},qd.t("Change"))}})),e&&We.createElement(We.Fragment,null,e.type===0&&We.createElement(Ml,{...u,warning:e}),(e.type===3||e.type===2)&&We.createElement(Fl,{...u,warning:e}),e.type===1&&We.createElement(Ul,{...u,warning:e})))}i(Jr,"QuoteWarningsAndErrors");function io(t){let{quote:e,type:o,loading:n,error:r,warning:s,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c,expanded:g=!1,alertPosition:f="bottom"}=t,{inputAmount:k,inputUsdValue:h,outputUsdValue:y,outputAmount:b}=O(),v=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,S=(s||r)&&Me.createElement(Jr,{warning:s,error:r,loading:n,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:m,onChangeSettings:c});return Me.createElement(Me.Fragment,null,n&&Me.createElement(Dr,null,Me.createElement(nl,{paddingTop:f==="top"},Me.createElement(Qr,{type:o,expanded:g}))),f==="top"&&Me.createElement(ol,null,S),v?Me.createElement(Dr,null,Me.createElement(Gr,{quote:e,error:r,warning:s,type:o,expanded:g,recommended:!0,input:{value:k,usdValue:h?.toString()??""},output:{value:b?.toString()??"",usdValue:y?.toString()??""}})):null,f==="bottom"&&Me.createElement(Me.Fragment,null,!s&&!r&&Me.createElement(Qd,{size:16}),S))}i(io,"QuoteInfo");import{calculatePendingSwap as Kd}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Xd}from"react";import{useRef as Vd,useState as jd}from"react";function vn(){let[t,e]=jd(!1),o=Vd(null),n=i(()=>o.current?.abort(),"cancel");return{fetch:i(async s=>{n(),o.current=new AbortController,e(!0);try{let a=await Nt().getBestRoute(s,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}i(vn,"useFetchQuote");function xn(t){if(!t.result)throw new Error(Q().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(mr(t)){let{swap:n,recommendation:r,fromAmountRangeError:s}=dr(t);throw new Error("bridge limit error",{cause:{type:3,swap:n,recommendation:r,fromAmountRangeError:s}})}let o=gr(t);if(o){let n=jo(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}i(xn,"throwErrorIfResponseIsNotValid");function Ol(t,e,o){let n=!1;t&&(n=Zs(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=Xo(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(zs(t,e)?r.quoteUpdate={type:3,newOutputAmount:N(Pt(e)),percentageChange:N(Be(Pt(t)??"",Pt(e)??""),null,2)}:yr(t,e)?r.quoteUpdate={type:0}:Sr(t,e)?r.quoteUpdate={type:1}:Cr(t,e)&&(r.quoteUpdate={type:2}));let a=Gs(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Ol,"generateWarnings");function bn(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(bn,"handleQuoteErrors");function Zr(){let{fromToken:t,toToken:e,inputAmount:o,setQuote:n,quote:r,customDestination:s,setQuoteWarningsConfirmed:a}=O(),{slippage:l,customSlippage:p,affiliatePercent:u,affiliateRef:m,affiliateWallets:c,disabledLiquiditySources:g}=d(),{connectedWallets:f}=z(),k=d().blockchains(),h=d().tokens(),{features:y}=d().config,{enableNewLiquiditySources:b}=d().config,w=p||l,{fetch:v,cancelFetch:S,loading:T}=vn();return Xd(()=>S,[]),{loading:T,fetch:i(async M=>{let C=M.selectedWallets,P=M?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let $=Ko({fromToken:t,toToken:e,inputAmount:o,wallets:f,selectedWallets:C,excludeLiquiditySources:b,disabledLiquiditySources:g,slippage:w,affiliateRef:m,affiliatePercent:u,affiliateWallets:c,initialQuote:r??void 0,destination:P});Wo("experimentalRoute",y)&&($.experimental=!0);let W;try{W=await v($).then(G=>xn(G)),n(W)}catch(G){return bn(G)}let x={slippage:w.toString(),disabledSwappersGroups:g},F=Kd(o.toString(),W,Os(C),x,!1,{blockchains:k,tokens:h}),I=Ol(r??void 0,W,{fromToken:t,toToken:e,meta:{blockchains:k,tokens:h},selectedWallets:C,userSlippage:w});return I.quoteUpdate&&a(!1),{quote:W,swap:F,error:null,warnings:I}},"fetch"),cancelFetch:S}}i(Zr,"useConfirmSwap");var lf=Hl("div",{position:"relative",width:"100%","& .description":{display:"flex",justifyContent:"space-between",alignItems:"center"},"& .icon":{width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"},"& .quote-update__alert":{paddingTop:"$10"}}),pf=Hl("div",{width:"100%",display:"flex",justifyContent:"space-between","& .confirm-button":{flexGrow:1,paddingRight:"$10"},[`& ${Gl}`]:{width:"$48",height:"$48"}});function Ql(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:s,quoteWarningsConfirmed:a}=O(),l=af(),[p,u]=An(""),{connectedWallets:m}=z(),c=!n,[g,f]=An(!1),k=we.use.setSelectedSwap(),h=d().disabledLiquiditySources,y=rf(h),{manager:b}=Yd(),{fetch:w,loading:v,cancelFetch:S}=Zr(),[T,A]=An({swap:null,error:null,warnings:null}),[M,C]=An(!1),P=i(async({selectedWallets:I,customDestination:G})=>{let te=await w?.({selectedWallets:I,customDestination:G});return A(te),te},"onConfirmSwap"),$=i(async()=>{if(T.swap&&n)try{await b?.create("swap",{swapDetails:T.swap},{id:T.swap.requestId}),k(T.swap.requestId);let I=`../${_.swaps}/${T.swap.requestId}`;l(I,{replace:!0}),setTimeout(()=>{e("")},0)}catch(I){u("Error: "+I?.message)}},"addNewSwap"),W=i(async()=>{await $()},"onConfirm"),x=i(async()=>{T?.warnings?.quote&&!a?C(!0):await W()},"onStartConfirmSwap"),F=i(async()=>{A({error:null,swap:null,warnings:null}),w({selectedWallets:o,customDestination:s}).then(I=>{A(I)}).catch(I=>console.error(I))},"onRefresh");return so(()=>{!!y.current.length&&!h.length&&F(),y.current=h},[h.length]),so(()=>{c&&S()},[c]),so(()=>{c&&f(c)},[c]),so(()=>{c||w({selectedWallets:o,customDestination:s}).then(I=>A(I)).catch(I=>console.error(I))},[]),so(()=>{let I=T.warnings?.quote?.type&&Object.values(pt).includes(T.warnings?.quote?.type),G=o.length<1||!o.every(oe=>m.find(H=>oe.address===H.address&&oe.walletType===H.walletType&&oe.chain===H.chain)),te=!1;if(I){let oe=zo(t),H=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(me=>me.from.blockchain===H)||(oe=oe.slice(-oe.length,oe.length-1)),oe.every(me=>o.find(De=>De.chain===me))||(te=!0)}t&&(G||te)&&(queueMicrotask(()=>sf(f.bind(null,!0))),r(!1))},[T.warnings?.quote,o.length,m.length]),nf(()=>{t||l("../")},[]),ee.createElement(K,{header:{title:En.t("Confirm Swap"),onWallet:()=>{let I=`../${_.wallets}`;l(I)},suffix:ee.createElement(ef,{container:j(),side:"bottom",content:En.t("Settings")},ee.createElement(Ue,{size:"small",variant:"ghost",onClick:()=>l("../"+_.settings)},ee.createElement(Rd,{size:18,color:"black"})))},footer:ee.createElement(pf,null,ee.createElement("div",{className:"confirm-button"},ee.createElement(zl,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:v,disabled:!!T.error,onClick:x},En.t("Start Swap"))),ee.createElement(Gl,{variant:"contained",type:"primary",size:"large",loading:v,onClick:f.bind(null,!0)},ee.createElement(of,{size:24})))},g&&ee.createElement(tl,{open:g,onClose:()=>f(!1),onCancel:S,loading:v,onCheckBalance:P}),ee.createElement(lf,null,ee.createElement("div",{className:"description"},ee.createElement(tf,{variant:"title",size:"small"},En.t("You get")),ee.createElement(zl,{style:{padding:"0"},variant:"ghost",disabled:v,onClick:F},ee.createElement("div",{className:"icon"},ee.createElement(Zd,{size:16})))),p&&ee.createElement(ee.Fragment,null,ee.createElement(ql,{type:"error",variant:"alarm",title:p}),ee.createElement(Jd,{size:12})),T.warnings?.quoteUpdate&&ee.createElement("div",{className:"quote-update__alert"},ee.createElement(ql,{variant:"alarm",type:"warning",title:T.warnings.quoteUpdate&&sn(T.warnings.quoteUpdate)})),ee.createElement(io,{quote:t,type:"swap-preview",expanded:!0,alertPosition:"top",error:T.error,loading:v,warning:T.warnings?.quote??null,refetchQuote:F,showWarningModal:M,onOpenWarningModal:()=>C(!0),onCloseWarningModal:()=>C(!1),onConfirmWarningModal:async()=>{C(!1),await $()},onChangeSettings:()=>l("../"+_.settings)})))}i(Ql,"ConfirmSwapPage");import{i18n as Wn}from"@lingui/core";import{useManager as hf}from"@rango-dev/queue-manager-react";import{Divider as yf,NotFound as Sf,styled as ep}from"@rango-dev/ui";import ht,{useState as Cf}from"react";import{useNavigate as kf}from"react-router-dom";import{CloseIcon as cf,IconButton as mf,SearchIcon as df,TextField as ff}from"@rango-dev/ui";import ao from"react";import{styled as uf}from"@rango-dev/ui";var Vl=uf("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function it(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return ao.createElement(ff,{prefix:ao.createElement(Vl,null,ao.createElement(df,{color:"black"})),suffix:!!a.length&&ao.createElement(mf,{variant:"ghost",onClick:()=>l?.(""),size:"small"},ao.createElement(cf,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...p})}i(it,"SearchInput");import{i18n as Kl}from"@lingui/core";import{Divider as Xl,SwapListItem as Yl,Typography as Jl}from"@rango-dev/ui";import Z from"react";import{darkTheme as gf,styled as In}from"@rango-dev/ui";var Rr=In("div",{width:"100%",display:"flex",flexDirection:"column",".group-title":{$$color:"$colors$neutral600",[`.${gf} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ei=In("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),ti=In("div",{gap:"$10",display:"flex",flexDirection:"column"}),jl=In("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function oi(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,s=n?n(e):[{title:"History",swaps:e}];if(r){let a=[{},{}];return Z.createElement(Z.Fragment,null,[{title:"Today",swaps:a},{title:"Last month",swaps:a}].map(p=>Z.createElement(Z.Fragment,{key:p.title},Z.createElement(Rr,null,Z.createElement(ei,null,Z.createElement(Jl,{variant:"label",size:"medium",className:"group-title"},Kl.t(p.title))),Z.createElement(Xl,{size:4}),Z.createElement(ti,null,p.swaps.map((u,m)=>{let c=m+p.title;return Z.createElement(Z.Fragment,{key:c},Z.createElement(Yl,{isLoading:!0}))}))))))}return Z.createElement(Z.Fragment,null,s.filter(a=>a.swaps.length>0).map(a=>Z.createElement(Z.Fragment,{key:a.title},Z.createElement(Rr,null,Z.createElement(ei,null,Z.createElement(Jl,{variant:"label",size:"medium",className:"group-title"},Kl.t(a.title))),Z.createElement(Xl,{size:4}),Z.createElement(ti,null,a.swaps.map(l=>{let p=l.steps[0],u=l.steps[l.steps.length-1];return Z.createElement(Z.Fragment,{key:l.requestId},Z.createElement(Yl,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,onlyShowTime:a.title==="Today",swapTokenData:{from:{token:{image:p.fromLogo,displayName:p.fromSymbol},blockchain:{image:p.fromBlockchainLogo||""},amount:Bo(l.inputAmount)},to:{token:{image:u.toLogo,displayName:u.toSymbol},blockchain:{image:u.toBlockchainLogo||""},amount:Bo(u.outputAmount||""),estimatedAmount:Bo(u.expectedOutputAmountHumanReadable||"")}}}))}))))))}i(oi,"SwapsGroup");import Zl from"dayjs";var Rl=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["month",{title:"Last month",swaps:[]}],["year",{title:"Last year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=Zl();return t.forEach(n=>{let r=Zl(Number(n.creationTime));o.isSame(r,"day")?e.get("today")?.swaps.push(n):o.isSame(r,"month")?e.get("month")?.swaps.push(n):o.isSame(r,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");var qt=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");var Tf=ep("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),wf=ep("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),vf=i((t,e)=>t?.length?t.filter(o=>je(o.fromBlockchain,e)||je(o.toBlockchain,e)||je(o.toSymbol,e)||je(o.fromSymbol,e)).length:!1,"isStepContainsText");function tp(){let t=we.use.setSelectedSwap(),e=kf(),{manager:o,state:n}=hf(),r=qt(o).map(({swap:c})=>c),[s,a]=Cf(""),l=!n.loadedFromPersistor,p=i(c=>{let g=c.target.value;a(g)},"searchHandler"),u=r;s&&(u=r.filter(c=>je(c.inputAmount,s)||je(c.status,s)||vf(c.steps,s)||je(c.requestId,s)));let m=!u?.length&&!l;return ht.createElement(K,{header:{title:Wn.t("History")}},ht.createElement(Tf,null,ht.createElement(it,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Wn.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),ht.createElement(wf,null,m&&ht.createElement(jl,null,ht.createElement(yf,{size:32}),ht.createElement(Sf,{title:Wn.t("No results found"),description:s?Wn.t("Try using different keywords"):""})),!m&&ht.createElement(oi,{list:u,onSwapClick:c=>{t(c),e(c)},groupBy:Rl,isLoading:l}))))}i(tp,"HistoryPage");import{i18n as ii}from"@lingui/core";import{Button as Nf,styled as si,SwapInput as ip,WarningIcon as Lf}from"@rango-dev/ui";import $e,{useEffect as Bf,useRef as Pf,useState as Mf}from"react";import{useNavigate as $f}from"react-router-dom";import{ReverseIcon as xf,styled as op}from"@rango-dev/ui";import ni from"react";var bf=op("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ef=op("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&:hover":{color:"$secondary500"}});function np(){let t=O.use.switchFromAndTo();return ni.createElement(bf,null,ni.createElement(Ef,{onClick:()=>{t()}},ni.createElement(xf,{size:12})))}i(np,"SwitchFromAndToButton");import{useCallback as Af,useEffect as If,useState as ri}from"react";var Wf=600;function rp(){let{fetch:t,cancelFetch:e}=vn(),{liquiditySources:o,enableNewLiquiditySources:n,features:r}=d().config,s=d().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:u,resetQuote:m,setQuote:c}=O(),{slippage:g,customSlippage:f,affiliatePercent:k,affiliateRef:h,affiliateWallets:y,disabledLiquiditySources:b}=d(),[w,v]=ri(!1),[S,T]=ri(null),[A,M]=ri(null),C=f??g,$=!a||!l||Le(a,l)||!Kt(p),W=i(I=>{v(I),T(null),M(null)},"resetState"),x=i(I=>{let{fromToken:G,toToken:te,inputAmount:oe,liquiditySources:H,excludeLiquiditySources:ie,disabledLiquiditySources:ce,slippage:me,affiliateRef:De,affiliatePercent:It,affiliateWallets:jt}=I;if(w||W(!0),!$&&G&&te){m();let tt=Ko({fromToken:G,toToken:te,inputAmount:oe,liquiditySources:H,excludeLiquiditySources:ie,disabledLiquiditySources:ce,slippage:me,affiliateRef:De,affiliatePercent:It,affiliateWallets:jt});Wo("experimentalRoute",r)&&(tt.experimental=!0),t(tt).then(Qe=>{v(!1),c(Qe),xn(Qe);let D=Xo(Qe,{fromToken:G,toToken:te,userSlippage:C,tokens:s});M(D)}).catch(Qe=>{let{error:D}=bn(Qe);(D?.type===0||D?.type===1)&&m(),D?.type!==2&&(T(D),v(!1))})}},"fetch"),F=Af(ls(I=>{$||x(I)},Wf),[$]);return If(()=>{if(!Kt(p)||u?.eq(0)){W(!1),e();return}if(!$)return m(),W(!0),F({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:b,slippage:C,affiliateRef:h,affiliatePercent:k,affiliateWallets:y}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,$,o?.length,n,b.length,C,h,k,JSON.stringify(y)]),{fetch:()=>x({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:b,slippage:C,affiliateRef:h,affiliatePercent:k,affiliateWallets:y}),loading:w,error:S,warning:A}}i(rp,"useSwapInput");var _f=si("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),Df=si("div",{position:"relative"}),Ff=si("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function sp(){let t=$f(),{fetch:e,loading:o,error:n,warning:r}=rp(),{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:m,inputUsdValue:c,outputAmount:g,outputUsdValue:f,quote:k,resetQuoteWallets:h,setQuoteWarningsConfirmed:y}=O(),b=d().fetchStatus,{connectedWallets:w,getBalanceFor:v}=z(),S=we.use.setCurrentPage(),[T,A]=Mf(!1),M=Pf(null),C=!1,P=!fr(k,m,c),$=!fr(k,m,f),W=Ds({fetchMetaStatus:b,fetchingQuote:o,inputAmount:m,quote:k,anyWalletConnected:w.length>0,error:n,warning:r,needsToWarnEthOnPath:C}),x=s?v(s):null,F=Uo(x)?.amount??"0",I=a&&s?N(x?.amount,x?.decimals):"0";Bf(()=>(S(_.home),h(),S.bind(null,"")),[]);let G=!c||!f||!f.gt(0)?null:Be(c.toString(),f.toString());return $e.createElement(K,{ref:M,fixedHeight:!1,hasLogo:!0,footer:$e.createElement(Nf,{type:"primary",size:"large",disabled:W.disabled,prefix:W.action==="confirm-warning"&&$e.createElement(Lf,null),fullWidth:!0,onClick:()=>{W.action==="connect-wallet"?t(_.wallets):W.action==="confirm-warning"?A(!0):t(_.confirmSwap)}},W.title),header:{onWallet:()=>{t(_.wallets)},hasBackButton:!1,title:ii.t("Swap"),suffix:$e.createElement(Ir,{layoutRef:M.current,onClickRefresh:k||n?e:void 0,onClickHistory:()=>t(_.swaps),onClickSettings:()=>t(_.settings)})}},$e.createElement(_f,null,$e.createElement(Ff,null,$e.createElement(Df,null,$e.createElement(ip,{label:ii.t("From"),mode:"From",onInputChange:u,balance:F,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>t(_.fromSwap),price:{value:m,usdValue:P?void 0:N(c,4,4),error:P?Q().unknownPriceError.impactTitle:void 0},disabled:b==="failed",loading:b==="loading",onSelectMaxBalance:()=>{F!=="0"&&u(I.split(",").join(""))}}),$e.createElement(np,null)),$e.createElement(ip,{sharpBottomStyle:!!k?.result||o,label:ii.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:N(Be(c,f),2,2),warningLevel:ot(G??0),price:{value:N(g,6,6),usdValue:$?void 0:N(f,4,4),error:$?Q().unknownPriceError.impactTitle:void 0},onClickToken:()=>t(_.toSwap),disabled:b==="failed",loading:b==="loading"})),$e.createElement("div",{className:"quote__container"},$e.createElement(io,{quote:k,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:T,onOpenWarningModal:()=>A(!0),onCloseWarningModal:()=>A(!1),onConfirmWarningModal:()=>{A(!1),y(!0),t(_.confirmSwap)},onChangeSettings:()=>t(_.settings)}))))}i(sp,"Home");import{i18n as ap}from"@lingui/core";import{List as Uf,ListItemButton as Of,Radio as qf,RadioRoot as zf,Typography as Gf}from"@rango-dev/ui";import yt from"react";import{styled as Nn}from"@rango-dev/ui";var st=Nn("div",{height:"100%",overflow:"hidden"}),lo=Nn("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),ai=Nn("div",{width:80,display:"flex",justifyContent:"flex-end"}),li=Nn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Ln(){let{setLanguage:t,language:e}=d();return{activeLanguage:e,languages:vs,defaultLanguage:Bt,changeLanguage:r=>t(r||Bt)}}i(Ln,"useLanguage");function lp(){let{activeLanguage:t,changeLanguage:e,languages:o}=Ln(),n=o.map(r=>{let{local:s,label:a,SVGFlag:l}=r;return{id:s,value:s,title:yt.createElement(Gf,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:yt.createElement(qf,{value:s}),start:yt.createElement(l,null)}});return yt.createElement(K,{header:{title:ap.t("Language")}},yt.createElement(st,null,yt.createElement(zf,{value:t},yt.createElement(Uf,{type:yt.createElement(Of,{title:ap.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(lp,"LanguagePage");import{i18n as zt}from"@lingui/core";import{Button as Kf,Checkbox as Xf,Image as Yf,ListItemButton as Jf,NotFound as Zf,Typography as Rf}from"@rango-dev/ui";import Se,{useState as eg}from"react";import{Checkbox as Vf,Skeleton as up}from"@rango-dev/ui";import po from"react";import{ListItem as Hf,styled as Qf}from"@rango-dev/ui";var pp=Qf(Hf,{height:61});var jf=30;function pi(){return po.createElement(lo,null,Array.from(Array(jf),t=>po.createElement(pp,{hasDivider:!0,key:t,start:po.createElement(up,{variant:"circular",width:35,height:35}),title:po.createElement(up,{variant:"text",size:"large",width:90}),end:po.createElement(Vf,{checked:!1})})))}i(pi,"LoadingLiquiditySourceList");function ui({sourceType:t}){let e=d().fetchStatus,o=d().swappers(),n=d().disabledLiquiditySources,[r,s]=eg(""),a=d().toggleLiquiditySource,l=Io(o,n),p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&(p.push("BRIDGE"),p.push("AGGREGATOR"));let u=l.filter(h=>p.includes(h.type)),m=u.length===u.filter(h=>h.selected).length,c=i(()=>{u.forEach(h=>{m?a(h.groupTitle):h.selected||a(h.groupTitle)})},"toggleAllSources"),g=u.map(h=>{let{selected:y,groupTitle:b,logo:w}=h;return{start:Se.createElement(Yf,{src:w,size:22,type:"circular"}),onClick:()=>a(b),end:Se.createElement(Xf,{checked:y}),title:Se.createElement(Rf,{variant:"title",size:"xmedium"},zt.t(b)),...h}}),f=i(h=>{let y=h.target.value;s(y)},"searchHandler"),k=g;return r&&(k=g.filter(h=>je(h.groupTitle,r))),Se.createElement(K,{header:{title:zt.t(t),suffix:Se.createElement(ai,null,Se.createElement(Kf,{variant:"ghost",size:"xsmall",onClick:c},zt.t(m?"Deselect all":"Select all")))}},Se.createElement(st,null,Se.createElement(it,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:zt.t("Search {sourceType}",{sourceType:t}),onChange:f}),e==="loading"&&Se.createElement(pi,null),!k.length&&r?Se.createElement(li,null,Se.createElement(Zf,{title:zt.t("No results found"),description:zt.t("Try using different keywords")})):e==="success"&&Se.createElement(lo,null,k.map(h=>Se.createElement(Se.Fragment,{key:h.id},Se.createElement(Jf,{style:{height:"61px"},...h,selected:!1,hasDivider:!0}))))))}i(ui,"LiquiditySourcePage");import{i18n as Sp}from"@lingui/core";import{Divider as fi,getCountCategories as pg,SelectableCategoryList as ug}from"@rango-dev/ui";import at,{useState as Cp}from"react";import{i18n as mi}from"@lingui/core";import{Divider as hp,Image as rg,ListItemButton as ig,NotFound as sg,Typography as yp}from"@rango-dev/ui";import _e,{useEffect as ag,useState as lg}from"react";import{BlockchainCategories as ci}from"@rango-dev/ui";import{TransactionType as Bn}from"rango-sdk";var tg=i((t,e)=>{switch(e){case ci.ALL:return!0;case ci.UTXO:return t.type===Bn.TRANSFER;case ci.OTHER:return t.type!==Bn.TRANSFER&&t.type!==Bn.COSMOS&&t.type!==Bn.EVM;default:return t.type===e}},"filterByType"),cp=i((t,e,o)=>t.filter(n=>tg(n,o)).filter(n=>Ct(n.name,e)||Ct(n.displayName,e)),"filterBlockchains");import{styled as mp}from"@rango-dev/ui";var dp=mp("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Pn=mp("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",".image-container":{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as og,Skeleton as fp}from"@rango-dev/ui";import Mn from"react";var ng=20;function gp(){return Mn.createElement(Pn,null,Array.from(Array(ng),t=>Mn.createElement(og,{key:t,hasDivider:!0,start:Mn.createElement(fp,{variant:"circular",width:35,height:35}),title:Mn.createElement(fp,{variant:"text",size:"large",width:90})})))}i(gp,"LoadingBlockchainList");function di(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=lg(e),{fetchStatus:l}=d();ag(()=>{a([...cp(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?_e.createElement(_e.Fragment,null,_e.createElement(hp,{size:32}),_e.createElement(sg,{title:mi.t("No results found"),description:mi.t("Try using different keywords")})):_e.createElement(Pn,{key:`${r}-${o}`},s.map(u=>_e.createElement(ig,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:_e.createElement(rg,{src:u.logo,size:30}),title:_e.createElement(yp,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return _e.createElement(dp,null,_e.createElement(yp,{variant:"label",size:"large"},mi.t("Select Blockchain")),_e.createElement(hp,{size:4}),l==="loading"&&_e.createElement(gp,null),l==="success"&&p())}i(di,"BlockchainList");function gi(t){let{type:e}=t,o=dt(),[n,r]=Cp(""),[s,a]=Cp("ALL"),l=O.use.setToBlockchain(),p=O.use.setFromBlockchain(),u=d().fetchStatus,m=d().blockchains({type:e}),g=pg(m)!==1;return at.createElement(K,{header:{title:Sp.t("Select Blockchain")}},at.createElement(fi,{size:12}),g&&at.createElement(at.Fragment,null,at.createElement(ug,{setCategory:a,category:s,blockchains:m,isLoading:u==="loading"}),at.createElement(fi,{size:24})),at.createElement(it,{value:n,autoFocus:!0,placeholder:Sp.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),at.createElement(fi,{size:16}),at.createElement(di,{list:m,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}}))}i(gi,"SelectBlockchainPage");import{i18n as Fp}from"@lingui/core";import{Divider as Up}from"@rango-dev/ui";import Gt,{useState as Ag}from"react";import{useNavigate as Ig}from"react-router-dom";import{i18n as Si}from"@lingui/core";import{BlockchainsChip as $n,Divider as vp,Image as xp,Skeleton as gg,Typography as Ci}from"@rango-dev/ui";import ge from"react";import{useEffect as dg}from"react";var kp=["ETH","COSMOS","OSMOSIS"];function hi(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(cg),o?.limit&&t.length>o.limit){let s=o.limit,a=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let u=n[p];a=a.filter(m=>u.name!==m)}}n.sort(mg(a)),r=n.splice(s)}return{list:n,more:r}}i(hi,"prepare");function cg(t,e){let o=kp,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),s=n>-1,a=r>-1;return s&&a?n>r?1:-1:s?-1:a?1:0}i(cg,"sortByMostUsedBlockchains");function mg(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),s=t.findIndex(p=>p===n.name),a=r>-1,l=s>-1;return a&&l?r>s?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(mg,"generateSortByPreferredBlockchainsFor");function Tp(t,e){return!!e.list.find(o=>o.name===t)}i(Tp,"isInVisibleList");function yi(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=d();dg(()=>{if(e?.selected){let s=hi(t,o,e);Tp(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=hi(t,o,e);return{list:r.list,more:r.more,history:[]}}i(yi,"usePrepareBlockchainList");import{styled as fg}from"@rango-dev/ui";var wp=fg("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var hg=12;function ki(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=yi(e,{limit:10,selected:n?.name}),{fetchStatus:l}=d(),p=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),m=a.more.length>0,c=a.more.length===1,g=!c&&m;return ge.createElement("div",null,ge.createElement(vp,{size:12}),ge.createElement(Ci,{variant:"label",size:"large"},Si.t("Select Blockchain")),ge.createElement(vp,{size:12}),ge.createElement(wp,null,l==="loading"&&Array.from(Array(hg),f=>ge.createElement(gg,{key:f,variant:"rounded",height:50})),l==="success"&&ge.createElement(ge.Fragment,null,ge.createElement($n,{selected:!n,onClick:()=>{o==="from"?u():p()}},ge.createElement(Ci,{variant:"body",size:"xsmall",color:"secondary500"},Si.t("All"))),a.list.map(f=>ge.createElement($n,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},ge.createElement(xp,{src:f.logo,size:30}))),c?ge.createElement($n,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},ge.createElement(xp,{src:a.more[0].logo,size:30})):null,g?ge.createElement($n,{onClick:s,key:"more-blockchains"},ge.createElement(Ci,{variant:"body",size:"xsmall",color:"secondary500"},Si._("More +{count}",{count:a.more.length}))):null)))}i(ki,"BlockchainsSection");import{i18n as bi}from"@lingui/core";import{darkTheme as Pp,Divider as co,ExternalLinkIcon as Cg,Image as kg,ListItemButton as Tg,NotFound as wg,PinIcon as vg,Skeleton as Mp,Typography as mo,VirtualizedList as xg}from"@rango-dev/ui";import U,{forwardRef as bg,useEffect as $p,useState as _p}from"react";var bp=i((t,e)=>{t=t.replace(/^#/,""),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let[s,a,l]=t.match(/.{2}/g);[s,a,l]=[parseInt(s,16)+e,parseInt(a,16)+e,parseInt(l,16)+e],s=Math.max(Math.min(255,s),0).toString(16),a=Math.max(Math.min(255,a),0).toString(16),l=Math.max(Math.min(255,l),0).toString(16);let p=(s.length<2?"0":"")+s,u=(a.length<2?"0":"")+a,m=(l.length<2?"0":"")+l;return`#${p}${u}${m}`},"colorShade"),_n=i((t,e)=>{let a={[t]:e};for(let l=1;l<10;l++)l<5&&(a={...a,[t+l*100]:bp(e,(5-l)*25)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:bp(e,-((l-5)*25))});return a},"generateRangeColors"),Ti=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let s in o){let a=o[s];if(a&&a!==t[s])if(n=!0,s==="background"||s==="foreground")r={...r,[s]:a};else if(s==="neutral"&&e){let l=_n(s,a);r={...r,[`${s}100`]:l[`${s}900`],[`${s}200`]:l[`${s}800`],[`${s}300`]:l[`${s}700`],[`${s}400`]:l[`${s}600`],[`${s}500`]:l[`${s}500`],[`${s}600`]:l[`${s}400`],[`${s}700`]:l[`${s}300`],[`${s}800`]:l[`${s}200`],[`${s}900`]:l[`${s}100`]}}else r={...r,..._n(s,a)}}return n?r:{}},"generateColors");import{Divider as Lp,ListItem as Sg,Skeleton as uo}from"@rango-dev/ui";import He from"react";import{darkTheme as Ep,styled as Ze,Typography as yg}from"@rango-dev/ui";var Ap=Ze("div",{display:"flex",flexDirection:"column",flexGrow:1}),wi=Ze("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Dn=Ze("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none",".description":{position:"relative",height:12,width:150,".token-title":{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"},".token-address":{transform:"translateY(12px)",visibility:"hidden","& a":{fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Ep} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}},".token-name":{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}},"&:hover":{".description":{".token-address":{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},".token-address-without-name":{bottom:"-15px"},".token-name":{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},".token-title":{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),vi=Ze("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),xi=Ze(yg,{}),Ip=Ze("div",{textAlign:"right",".usd-value":{$$color:"$colors$neutral600",[`.${Ep} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Fn=Ze("ul",{display:"flex",alignItems:"end",flexDirection:"column"}),mW=Ze("div",{display:"flex",alignItems:"center"}),Wp=Ze("div",{position:"relative",".image-container":{borderRadius:"$xm",overflow:"hidden"}}),Np=Ze("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6});function Bp(t){return He.createElement(Dn,null,Array.from(Array(t.size),e=>He.createElement(Sg,{key:e,hasDivider:!0,start:He.createElement(uo,{variant:"circular",width:35,height:35}),end:He.createElement(Fn,null,He.createElement(uo,{variant:"text",size:"large",width:70}),He.createElement(Lp,{size:4}),He.createElement(uo,{variant:"text",size:"medium",width:50})),title:He.createElement("div",null,He.createElement(uo,{variant:"text",size:"large",width:90}),He.createElement(Lp,{size:4}),He.createElement(uo,{variant:"text",size:"medium",width:90}))})))}i(Bp,"LoadingTokenList");var Ei=20,Eg=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return U.createElement("div",{className:"description"},o?U.createElement("div",{className:"token-name"},o):U.createElement(wi,{className:"token-title"},U.createElement(mo,{variant:"title",size:"xmedium"},r.symbol),U.createElement(co,{direction:"horizontal",size:4}),U.createElement(vi,{css:s},U.createElement(xi,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&U.createElement("div",{className:`token-address ${!o&&"token-address-without-name"}`},U.createElement("a",{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",U.createElement(Cg,{color:"gray",size:12}))))},"renderDesc");function Dp(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=_p(e),l=d().fetchStatus,p=d().blockchains(),[u,m]=_p(!0),{getBalanceFor:c,loading:g}=z(),{isTokenPinned:f}=d(),k=bg((b,w)=>U.createElement("div",{...b,ref:w,style:{...b.style,height:`${parseFloat(b.style?.height)+8*2}px`}})),h=i(()=>{a(e.slice(0,s.length+Ei))},"loadNextPage");$p(()=>{m(e.length>s.length)},[s.length]),$p(()=>{a(e.slice(0,Ei))},[e]);let y=i(()=>!s.length&&o?U.createElement(U.Fragment,null,U.createElement(co,{size:32}),U.createElement(wg,{title:bi.t("No results found"),description:bi.t("Try using different keywords")})):U.createElement(xg,{Item:({index:b,style:w})=>{let v=s[b],S=Uo(c(v)),T=v.address||"",A=p.find($=>$.name===v.blockchain),M=_n(v.symbol,A?.color||""),C={$$color:M[`${v.symbol}100`],[`.${Pp} &`]:{$$color:M[`${v.symbol}900`]},backgroundColor:"$$color"},P={$$color:M[`${v.symbol}700`],[`.${Pp} &`]:{$$color:M[`${v.symbol}100`]},color:"$$color"};return U.createElement("div",{style:{...w,paddingRight:5}},U.createElement(Tg,{style:{height:w?.height},"tab-index":b,key:`${v.symbol}${v.address}`,id:`${v.symbol}${v.address}`,hasDivider:!0,onClick:()=>n(s[b]),start:U.createElement(Wp,null,U.createElement(kg,{src:v.image,size:30}),f(v)&&U.createElement(Np,null,U.createElement(vg,{size:12,color:"gray"}))),title:A?.type==="COSMOS"||v.name||!v.name&&!T?U.createElement(wi,null,U.createElement(mo,{variant:"title",size:"xmedium"},v.symbol),U.createElement(co,{direction:"horizontal",size:4}),U.createElement(vi,{css:C},U.createElement(xi,{variant:"body",size:"xsmall",css:P},v.blockchain))):void 0,description:A?.info&&T&&A.type!=="COSMOS"?Eg({address:T,token:s[b],customCssForTag:C,customCssForTagTitle:P,name:v.name,url:A.info.addressUrl.split("{wallet}").join(T)}):v.name||void 0,end:g?U.createElement(Fn,null,U.createElement(Mp,{variant:"text",size:"large",width:70}),U.createElement(co,{size:4}),U.createElement(Mp,{variant:"text",size:"medium",width:50})):S&&U.createElement(Ip,null,U.createElement(mo,{variant:"title",size:"small"},S.amount),U.createElement("div",null),S.usdValue&&U.createElement(mo,{variant:"body",className:"usd-value",size:"xsmall"},`$${S.usdValue}`))}))},hasNextPage:u,itemCount:s.length,loadNextPage:h,innerElementType:k,size:60,key:`${r}-${o}`}),"renderList");return U.createElement(Ap,null,U.createElement(mo,{variant:"label",size:"large"},bi.t("Select Token")),U.createElement(co,{size:4}),l==="loading"&&U.createElement(Bp,{size:Ei}),l==="success"&&U.createElement(Dn,null,y()))}i(Dp,"TokenList");function Ai(t){let{type:e}=t,o=Ig(),n=dt(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=O(),m=z.use.getBalanceFor(),[c,g]=Ag(""),k=(e==="source"?r:s)?.name??"",h=d().blockchains({type:e}),y=d().tokens({type:e,blockchain:k,searchFor:c}),b=Cs(y,m),w=i(S=>{e==="source"?p(S):u(S)},"updateBlockchain"),v=i(S=>{e==="source"?a({token:S,meta:{blockchains:h,tokens:y}}):l({token:S,meta:{blockchains:h,tokens:y}})},"updateToken");return Gt.createElement(K,{header:{title:Fp.t("Swap {type}",{type:e})}},Gt.createElement(ki,{blockchains:h,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(_.blockchains),onChange:S=>{w(S)}}),Gt.createElement(Up,{size:24}),Gt.createElement(it,{value:c,autoFocus:!0,placeholder:Fp.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:S=>g(S.target.value)}),Gt.createElement(Up,{size:16}),Gt.createElement(Dp,{list:b,selectedBlockchain:k,searchedFor:c,onChange:S=>{v(S);let T=h.find(A=>S.blockchain===A.name);T&&w(T),n()}}))}i(Ai,"SelectSwapItemsPage");import{i18n as Et}from"@lingui/core";import{ChevronRightIcon as Ni,Divider as Li,InfoIcon as Mg,List as $g,ListItemButton as _g,Skeleton as Dg,Switch as Fg,Tooltip as Ug,Typography as At}from"@rango-dev/ui";import V from"react";import{useNavigate as Og}from"react-router-dom";import{i18n as Hp}from"@lingui/core";import{Chip as Ng,Divider as Qp,InfoIcon as Lg,TextField as Bg,Tooltip as Pg,Typography as Vp}from"@rango-dev/ui";import ve from"react";import{styled as Un}from"@rango-dev/ui";var Op=Un("div",{paddingTop:"$5",paddingBottom:"30px"}),qp=Un("div",{display:"flex",alignItems:"center",justifyContent:"start"}),zp=Un("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),On=Un("div",{maxWidth:"300px",padding:"$10"});import{i18n as Ii}from"@lingui/core";import{Typography as Wg}from"@rango-dev/ui";import fo from"react";function Gp(){return fo.createElement(On,null,fo.createElement(Wg,{variant:"label",size:"medium",color:"neutral700"},Ii.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),fo.createElement("br",null),fo.createElement("br",null),fo.createElement("b",null,Ii.t("Warning")),":",Ii.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}i(Gp,"SlippageTooltipContent");function Wi(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=d();return ve.createElement(Op,null,ve.createElement(zp,null,ve.createElement(Vp,{variant:"title",size:"xmedium"},Hp.t("Slippage tolerance per swap")),ve.createElement(Qp,{direction:"horizontal",size:4}),ve.createElement(Pg,{container:j(),side:"top",content:ve.createElement(Gp,null)},ve.createElement(Lg,{color:"gray"}))),ve.createElement(qp,null,xs.map((r,s)=>{let a=`slippage-${s}`;return ve.createElement(ve.Fragment,null,ve.createElement(Ng,{style:{width:"64px",flexShrink:0},key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}),ve.createElement(Qp,{direction:"horizontal",size:8}))}),ve.createElement(Bg,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let s=parseFloat(r.target.value);(!s||s>=Is&&s<=As)&&n(s)},suffix:o&&ve.createElement(Vp,{variant:"body",size:"small"},"%"),placeholder:Hp.t("Custom")})))}i(Wi,"Slippage");function jp(){let t=Og(),{theme:e}=d().config,o=d().fetchStatus,n=d().swappers(),r=d().disabledLiquiditySources,{config:{features:s}}=d(),a=Ne("theme",s),l=Ne("liquiditySource",s),p=Ne("language",s),u=d().infiniteApprove,m=d().toggleInfiniteApprove,c=Io(n,r),g=c.filter(C=>C.type==="BRIDGE"||C.type==="AGGREGATOR"),f=g.length,k=g.filter(C=>C.selected).length,h=c.filter(C=>C.type==="DEX"),y=h.length,b=h.filter(C=>C.selected).length,w=i((C,P)=>{switch(o){case"loading":return V.createElement(Dg,{variant:"text",size:"medium",width:50});case"failed":return V.createElement(At,{variant:"body",size:"medium",color:"$error500"},Et.t("Loading failed"));default:return V.createElement(At,{variant:"body",size:"medium"},`${C} / ${P}`)}},"handleEndItem"),v={id:"bridge-item",title:V.createElement(At,{variant:"title",size:"xmedium"},Et.t("Enabled bridges")),end:V.createElement(V.Fragment,null,w(k,f),V.createElement(Li,{direction:"horizontal",size:8}),V.createElement(Ni,{color:"black"})),onClick:()=>t(_.bridges)},S={id:"exchange-item",title:V.createElement(At,{variant:"title",size:"xmedium"},Et.t("Enabled exchanges")),end:V.createElement(V.Fragment,null,w(b,y),V.createElement(Li,{direction:"horizontal",size:8}),V.createElement(Ni,{color:"gray"})),onClick:()=>t(_.exchanges)},T={id:"theme-item",title:V.createElement(At,{variant:"title",size:"xmedium"},Et.t("Theme")),end:V.createElement(Ni,{color:"gray"}),onClick:()=>t(_.themes)},A={id:"infinite-approval-item",title:V.createElement(V.Fragment,null,V.createElement(At,{variant:"title",size:"xmedium"},Et.t("Infinite Approval")),V.createElement(Li,{direction:"horizontal",size:4}),V.createElement(Ug,{side:"top",container:j(),content:V.createElement(On,null,V.createElement(At,{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.")))},V.createElement(Mg,{color:"gray"}))),end:V.createElement(Fg,{checked:u}),onClick:m},M=l?[]:[v,S];return!e?.singleTheme&&!a&&M.push(T),M.push(A),V.createElement(K,{header:{title:Et.t("Setting")}},V.createElement(st,null,V.createElement(Wi,null),V.createElement($g,{type:V.createElement(_g,{title:"_",id:"_",onClick:()=>console.log()}),items:M})))}i(jp,"SettingsPage");import{cancelSwap as Mh}from"@rango-dev/queue-manager-rango-preset";import{useManager as $h}from"@rango-dev/queue-manager-react";import bu from"react";import{i18n as lt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as gh,getCurrentStep as hh,getRelatedWalletOrNull as yh,PendingSwapNetworkStatus as Yn}from"@rango-dev/queue-manager-rango-preset";import{Button as yu,CopyIcon as Sh,Divider as Ch,IconButton as kh,QuoteCost as Th,StepDetails as wh,Typography as Qt,useCopyToClipboard as vh}from"@rango-dev/ui";import{useWallets as xh}from"@rango-dev/wallets-react";import X,{useEffect as Su,useRef as bh,useState as Cu}from"react";import{useNavigate as Eh}from"react-router-dom";import{i18n as xe}from"@lingui/core";var qg=1e3,zg=31536e3,Gg=2592e3,Hg=86400,Qg=3600,Vg=60;function Kp(t){let e=Math.floor((Date.now()-t)/qg),n=[{turningPoint:zg,label:xe.t("year"),pluralLabel:xe.t("years")},{turningPoint:Gg,label:xe.t("month"),pluralLabel:xe.t("months")},{turningPoint:Hg,label:xe.t("day"),pluralLabel:xe.t("days")},{turningPoint:Qg,label:xe.t("hour"),pluralLabel:xe.t("hours")},{turningPoint:Vg,label:xe.t("minute"),pluralLabel:xe.t("minutes")}].sort((r,s)=>s.turningPoint-r.turningPoint);for(let r of n){let{turningPoint:s,label:a,pluralLabel:l}=r,p=Math.floor(e/s);if(p>1)return`${p} ${l}`;if(p===1)return`${p} ${a}`}return e>1?`${e} ${xe.t("seconds")}`:`${e} ${xe.t("second")}`}i(Kp,"timeSince");function Xp(t){return t.finishTime?xe.t({id:"{time} ago",values:{time:Kp(parseInt(t.finishTime))}}):xe.t({id:"{time} ago",values:{time:Kp(parseInt(t.creationTime))}})}i(Xp,"getSwapDate");import{PendingSwapNetworkStatus as Gn}from"@rango-dev/queue-manager-rango-preset";import{Modal as Rg}from"@rango-dev/ui";import Hn from"react";import{i18n as qn}from"@lingui/core";import{Button as Yp,Divider as Bi,MessageBox as jg,Typography as Jp}from"@rango-dev/ui";import Re from"react";var Zp=i(({onCancel:t,onClose:e})=>Re.createElement(Re.Fragment,null,Re.createElement(Bi,{size:20}),Re.createElement(jg,{type:"error",title:qn.t("Cancel Swap"),description:qn.t("Are you sure you want to cancel this swap?")}),Re.createElement(Bi,{size:32}),Re.createElement(Yp,{variant:"contained",type:"primary",size:"large",onClick:t},Re.createElement(Jp,{variant:"title",size:"medium",color:"neutral100"},qn.t("Yes, Cancel it"))),Re.createElement(Bi,{size:12}),Re.createElement(Yp,{variant:"outlined",type:"primary",size:"large",onClick:e},Re.createElement(Jp,{variant:"title",size:"medium",color:"primary"},qn.t("No, Continue")))),"CancelContent");import{i18n as zn}from"@lingui/core";import{Button as Rp,Divider as Pi,MessageBox as Kg,Typography as eu}from"@rango-dev/ui";import et from"react";var tu=i(({onDelete:t,onClose:e})=>et.createElement(et.Fragment,null,et.createElement(Pi,{size:20}),et.createElement(Kg,{type:"error",title:zn.t("Delete Transaction"),description:zn.t("Are you sure you want to delete this swap?")}),et.createElement(Pi,{size:32}),et.createElement(Rp,{variant:"contained",type:"primary",size:"large",onClick:t},et.createElement(eu,{variant:"title",size:"medium",color:"neutral100"},zn.t("Yes, Delete it"))),et.createElement(Pi,{size:12}),et.createElement(Rp,{variant:"outlined",type:"primary",size:"large",onClick:e},et.createElement(eu,{variant:"title",size:"medium",color:"primary"},zn.t("No, Cancel")))),"DeleteContent");import{i18n as Mi}from"@lingui/core";import{PendingSwapNetworkStatus as $i}from"@rango-dev/queue-manager-rango-preset";var _i={[$i.WaitingForNetworkChange]:{type:"loading",title:Mi.t("Change Network")},[$i.WaitingForConnectingWallet]:{type:"warning",title:Mi.t("Connect Wallet")},[$i.NetworkChanged]:{type:"success",title:Mi.t("Network Changed")}};import{MessageBox as Yg,Wallet as Jg,WalletState as nu}from"@rango-dev/ui";import{useWallets as Zg}from"@rango-dev/wallets-react";import go from"react";import{styled as Xg}from"@rango-dev/ui";var ou=Xg("div",{display:"flex",justifyContent:"center"});var ru=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s}=t,{connect:a,getWalletInfo:l,state:p}=Zg(),u=n?.walletType,c=u&&p(u).connected?nu.CONNECTED:nu.DISCONNECTED;return go.createElement(go.Fragment,null,go.createElement(Yg,{type:e,title:o,description:r}),s&&u&&go.createElement(ou,null,go.createElement(Jg,{container:j(),title:l(u).name,image:l(u).img,type:u,state:c,onClick:async()=>a(u)})))},"WalletStateContent");function Di(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a}=t,l=e===Gn.WaitingForNetworkChange||e===Gn.WaitingForConnectingWallet||e===Gn.NetworkChanged;return Hn.createElement(Rg,{open:!!e,onClose:o,container:document.getElementById("swap-box")||document.body},l&&Hn.createElement(ru,{type:_i[e].type,title:_i[e].title,currentStepWallet:s,message:a,showWalletButton:e!==Gn.WaitingForNetworkChange}),e==="delete"&&Hn.createElement(tu,{onClose:o,onDelete:n}),e==="cancel"&&Hn.createElement(Zp,{onClose:o,onCancel:r}))}i(Di,"SwapDetailsModal");import{i18n as ho}from"@lingui/core";import{Button as Fi,Divider as Qn,MessageBox as iu,Modal as eh,TokenAmount as th,Typography as Vn}from"@rango-dev/ui";import ue from"react";import{useNavigate as oh}from"react-router-dom";function Ui(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:s,token:a,chain:l,percentageChange:p,description:u,diagnosisUrl:m}=t,c=oh();return ue.createElement(eh,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},n==="success"?ue.createElement(iu,{type:"success",title:ho.t("Swap Successful")},ue.createElement(th,{direction:"vertical",type:"output",centerAlign:!0,price:{value:r,usdValue:s},token:a,chain:l,percentageChange:p}),ue.createElement(Qn,{size:12}),ue.createElement(Vn,{variant:"body",size:"medium",color:"neutral700",align:"center"},u)):ue.createElement(iu,{type:"error",title:ho.t("Transaction Failed"),description:u}),ue.createElement(Qn,{size:32}),n==="success"&&ue.createElement(Fi,{variant:"contained",type:"primary",size:"large",onClick:()=>{c("../../")}},ue.createElement(Vn,{variant:"title",size:"medium",color:"neutral100"},ho.t("Done"))),ue.createElement(Qn,{size:12}),m&&ue.createElement(ue.Fragment,null,ue.createElement(Fi,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},ue.createElement(Vn,{variant:"title",size:"medium",color:"primary"},ho.t("Diagnosis"))),ue.createElement(Qn,{size:12})),ue.createElement(Fi,{variant:"outlined",type:"primary",size:"large",onClick:o},ue.createElement(Vn,{variant:"title",size:"medium",color:"primary"},ho.t("See Details"))))}i(Ui,"SwapDetailsCompleteModal");import dh from"react";import{i18n as ph}from"@lingui/core";import{Alert as cu,IconButton as uh,LinkIcon as ch}from"@rango-dev/ui";import St,{Fragment as mh}from"react";import{Alert as nh,ChevronDownIcon as rh,ChevronUpIcon as ih,IconButton as sh}from"@rango-dev/ui";import jn,{useState as ah}from"react";function su(t){let{message:e}=t,[o,n]=ah(!1);return jn.createElement(nh,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&jn.createElement(sh,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?jn.createElement(ih,{size:12,color:"gray"}):jn.createElement(rh,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(su,"FailedAlert");import{styled as lh}from"@rango-dev/ui";var au=lh("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as lu}from"@lingui/core";import{PendingSwapNetworkStatus as Oi}from"@rango-dev/queue-manager-rango-preset";import{Alert as qi,Button as pu}from"@rango-dev/ui";import yo from"react";function uu(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?yo.createElement(qi,{type:"warning",title:n.shortMessage,action:yo.createElement(pu,{size:"xxsmall",type:"warning",onClick:()=>{o(Oi.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},lu.t("Change"))}):r===Oi.WaitingForConnectingWallet?yo.createElement(qi,{type:"warning",title:n.shortMessage,action:yo.createElement(pu,{size:"xxsmall",type:"warning",onClick:()=>{o(Oi.WaitingForConnectingWallet)}},lu.t("Connect"))}):yo.createElement(qi,{type:"warning",title:n.shortMessage})}i(uu,"WarningAlert");function zi(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,l=Xt(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l;return St.createElement(au,null,s.explorerUrl?.map((m,c,g)=>{let f=c+m.url,k=c===g.length-1,h=k&&u||p,y=k&&s.status==="failed";return St.createElement(mh,{key:f},St.createElement(cu,{type:h&&"loading"||y&&"error"||"success",title:m.description?`${m.description} Tx`:ph.t("View transaction"),action:m.url&&St.createElement(uh,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},St.createElement(ch,{size:16}))}))}),(u&&!a||p&&!s.explorerUrl?.length)&&St.createElement(cu,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&St.createElement(uu,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&St.createElement(su,{message:r}))}i(zi,"SwapDetailsAlerts");var mu=2e3;var du=i(({swap:t,blockchains:e,...o})=>{let n=t.hasAlreadyProceededToSign!==!1;return t.steps.map((r,s)=>{let a=s===0?t.inputAmount:t.steps[s-1].outputAmount;return{from:{token:{displayName:r.fromSymbol,image:r.fromLogo??""},chain:{displayName:Xe(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:N(a,6,6)}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Xe(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:N(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6)}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:dh.createElement(zi,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function fu(t){if(Xt(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(fu,"getStepState");import{darkTheme as fh,styled as Ht}from"@rango-dev/ui";var Kn=Ht("div",{display:"flex",width:"100%",flexDirection:"column",alignItems:"center",height:"0",flexGrow:1,"& .row":{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${fh} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"},"& .request-id":{display:"flex",justifyContent:"center",alignItems:"center",height:"$24"},"& .output":{display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"},"& .title-steps":{textAlign:"left",width:"100%",padding:"0 $20 $10"}}),Xn=Ht("div",{width:"100%"}),gu=Ht("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),jL=Ht("div",{display:"flex",flexDirection:"column",gap:"$10"}),hu=Ht("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),KL=Ht("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1});function Gi(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=xh(),p=d().blockchains(),u=d().tokens(),m=O.use.retry(),c=Eh(),[g,f]=vh(mu),k=bh(null),[h,y]=Cu(null),[b,w]=Cu(null),v=i(()=>{r(),y(null)},"onCancel"),S=Pe.use.getUnreadNotifications(),T=Pe.use.setAsRead(),A=S(),M=hh(e),C=M?.networkStatus;Su(()=>{A.find(se=>se.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(w(e.status),T(e.requestId))},[e.status]),Su(()=>{G?y(Yn.WaitingForNetworkChange):C===Yn.WaitingForConnectingWallet||C===Yn.NetworkChanged?y(C):y(null)},[C]);let P=Vs(e),$=M?gh(e,M):null,W=M?yh(e,M):null,x=Xp(e),F=js(e),I=i(q=>!!l(q)?.mobileWallet,"isMobileWallet"),G=C===Yn.WaitingForNetworkChange&&!!$&&!!W?.walletType&&(I(W.walletType)||s(W.walletType,$)),te=G?a.bind(null,W.walletType,$):void 0,oe=Qs(e,M),H=du({swap:e,switchNetwork:te,showNetworkModal:C,setNetworkModal:y,message:oe,blockchains:p}),ie=H.length,[ce,me]=[e.steps[0],e.steps[ie-1]],De=me.outputAmount||me.expectedOutputAmountHumanReadable,It=e.steps.reduce((q,se)=>q+parseFloat(se.feeInUsd||""),0),jt=e.steps.find(q=>q.diagnosisUrl)?.diagnosisUrl,tt=N(String(parseFloat(N(De,6,6))*(Do(me.toBlockchain,me.toSymbol,me.toSymbolAddress,u)||0)),4,4),Qe=N(String(parseFloat(e.inputAmount)*(Do(ce.fromBlockchain,ce.fromSymbol,ce.fromSymbolAddress,u)||0)),4,4),D=Be(Qe,tt),Y=e.status==="success"?lt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:N(De,6,6),token:H[ie-1].to.token.displayName,conciseAddress:Oo(e.wallets[H[ie-1].to.chain.displayName]?.address||""),chain:H[ie-1].to.chain.displayName}}):`${lt.t("Transaction was not sent.")} ${P?lt.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}}):""}`;return X.createElement(K,{noPadding:!0,header:{title:lt.t("Swap and Bridge"),onCancel:e.status==="running"?()=>y("cancel"):void 0,suffix:e.status!=="running"&&X.createElement(_t,null,X.createElement(yu,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>y("delete")},X.createElement(Qt,{size:"medium",variant:"label",color:"error"},lt.t("Delete"))))},footer:F&&!b&&X.createElement(yu,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{m(e,{blockchains:p,tokens:u}),setTimeout(()=>{c("../../")},0)}},lt.t("Try again"))},X.createElement(Kn,null,X.createElement(Xn,null,X.createElement("div",{className:"row"},X.createElement(Qt,{variant:"label",size:"large",color:"neutral700"},`${lt.t("Request ID")}:`),X.createElement("div",{className:"request-id"},X.createElement(Qt,{variant:"label",size:"small",color:"neutral700"},o),X.createElement(kh,{variant:"ghost",onClick:f.bind(null,o||"")},X.createElement(Sh,{size:16,color:"gray"})))),X.createElement("div",{className:"row"},X.createElement(Qt,{variant:"label",size:"large",color:"neutral700"},`${lt.t("Created at")}:`),X.createElement(Qt,{variant:"label",size:"small",color:"neutral700"},x))),X.createElement("div",{className:"output"},X.createElement(Th,{fee:N(String(It),2,2),time:No(Lo(e.steps)),steps:ie}),X.createElement(eo,{from:{price:{value:N(e.inputAmount,6,6),usdValue:Qe},token:{displayName:H[0].from.token.displayName,image:H[0].from.token.image},chain:{image:H[0].from.chain.image,displayName:H[0].from.chain.displayName}},to:{price:{value:N(De,6,6),usdValue:tt},token:{displayName:H[ie-1].to.token.displayName,image:H[ie-1].to.token.image},chain:{image:H[ie-1].to.chain.image,displayName:H[ie-1].to.chain.displayName}},percentageChange:N(D,2,2),warningLevel:ot(D??0)})),X.createElement("div",{className:"title-steps"},X.createElement(Qt,{variant:"title",size:"small"},lt.t("Swaps steps"))),X.createElement(Ch,{size:8}),X.createElement(gu,{ref:k},H.map((q,se)=>{let Ve=se,Ae=fu(e.steps[se]),tr=Ae==="error"||Ae==="in-progress"||Ae==="warning"||Ae==="completed"&&se===H.length-1;return X.createElement(wh,{key:Ve,step:q,type:"swap-progress",ref:k,state:Ae,hasSeparator:se!==0,tabIndex:Ve,isFocused:tr})}))),X.createElement(Di,{state:h,onClose:()=>y(null),onCancel:v,onDelete:n,message:oe.detailedMessage.content,currentStepWallet:W}),X.createElement(Ui,{open:!!b,diagnosisUrl:jt,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:N(De,6,6),usdValue:tt,percentageChange:N(D,2,2),token:{displayName:H[ie-1].to.token.displayName,image:H[ie-1].to.token.image},chain:{image:H[ie-1].to.chain.image},description:Y}))}i(Gi,"SwapDetails");import{i18n as wo}from"@lingui/core";import{CopyIcon as Lh,IconButton as Bh,NotFound as Ph,Skeleton as vu,Typography as Zn}from"@rango-dev/ui";import le from"react";import{i18n as Ih}from"@lingui/core";import{ChainToken as Wh,Divider as Qi,Skeleton as To,Typography as Nh}from"@rango-dev/ui";import J from"react";import{styled as Hi}from"@rango-dev/ui";var ku=Hi("div",{width:"100%",height:"100%",padding:"$0 $20",".cost":{paddingTop:"$15",display:"flex"},".quote-summary":{padding:"$15 $0"},".quote-summary-item":{display:"flex",justifyContent:"space-between",alignItems:"center"},".token-amount":{display:"flex",justifyContent:"space-between",alignItems:"center"},".quote-summary-separator":{width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"},".swaps-steps":{paddingBottom:"$10"}}),Tu=Hi("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15",".step-title":{display:"flex",justifyContent:"start",alignItems:"center"},".step-tokens":{paddingTop:"$5",display:"flex",alignItems:"center"},".step-token-info":{display:"flex",alignItems:"center"},".step-icon-container":{padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"},".extra-info":{display:"flex",paddingTop:"$10",paddingBottom:"$5"}}),Jn=Hi("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"});import{ChainToken as wu,Divider as So,NextIcon as Ah,Skeleton as Co}from"@rango-dev/ui";import ae from"react";function ko(t){let{extraInfo:e}=t;return ae.createElement(Tu,null,ae.createElement("div",{className:"step-title"},ae.createElement(Co,{height:28,width:28,variant:"circular"}),ae.createElement(So,{direction:"horizontal",size:8}),ae.createElement(Co,{height:15,width:148,variant:"rounded"})),ae.createElement("div",{className:"step-tokens"},ae.createElement(So,{direction:"horizontal",size:20}),ae.createElement("div",{className:"step-token-info"},ae.createElement(wu,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(So,{direction:"horizontal",size:8}),ae.createElement(Co,{height:12,width:76,variant:"rounded"})),ae.createElement("div",{className:"step-icon-container"},ae.createElement(Ah,{color:"gray",size:16})),ae.createElement("div",{className:"step-token-info"},ae.createElement(wu,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(So,{direction:"horizontal",size:8}),ae.createElement(Co,{height:12,width:76,variant:"rounded"}))),e&&ae.createElement("div",{className:"extra-info"},ae.createElement(So,{direction:"horizontal",size:20}),ae.createElement(Co,{height:22,width:297,variant:"rectangular"})))}i(ko,"LoadingSwapDetailStep");function Vi(){let t=J.createElement("div",{className:"quote-summary-item"},J.createElement("div",{className:"token-amount"},J.createElement(Wh,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),J.createElement(Qi,{size:8,direction:"horizontal"}),J.createElement(To,{height:15,width:148,variant:"rounded"})),J.createElement(To,{height:12,width:64,variant:"rounded"}));return J.createElement(ku,null,J.createElement("div",{className:"cost"},J.createElement(To,{width:60,height:10,variant:"rounded"}),J.createElement(Qi,{size:4,direction:"horizontal"}),J.createElement(To,{width:60,height:10,variant:"rounded"}),J.createElement(Qi,{size:4,direction:"horizontal"}),J.createElement(To,{width:60,height:10,variant:"rounded"})),J.createElement("div",{className:"quote-summary"},t,J.createElement("div",{className:"quote-summary-separator"}),t),J.createElement("div",{className:"swaps-steps"},J.createElement(Nh,{variant:"title",size:"small"},Ih.t("Swaps steps"))),J.createElement("div",{className:"step-container"},J.createElement(ko,{extraInfo:!0}),J.createElement(Jn,null),J.createElement(ko,null),J.createElement(Jn,null),J.createElement(ko,null),J.createElement(Jn,null),J.createElement(ko,null)))}i(Vi,"LoadingSwapDetails");function xu(t){let{requestId:e,showSkeleton:o}=t;return le.createElement(K,{noPadding:!0,header:{title:wo.t("Swap and Bridge"),suffix:le.createElement(_t,null)}},o&&le.createElement(Kn,null,le.createElement(Xn,null,le.createElement("div",{className:"row"},le.createElement(Zn,{variant:"label",size:"large",color:"neutral700"},`${wo.t("Request ID")}:`),le.createElement("div",{className:"request-id"},le.createElement(Zn,{variant:"label",size:"small",color:"neutral700"},le.createElement(vu,{width:60,height:10,variant:"rounded"})),le.createElement(Bh,{variant:"ghost"},le.createElement(Lh,{size:16,color:"gray"})))),le.createElement("div",{className:"row"},le.createElement(Zn,{variant:"label",size:"large",color:"neutral700"},`${wo.t("Created at")}:`),le.createElement(Zn,{variant:"label",size:"small",color:"neutral700"},le.createElement(vu,{width:60,height:10,variant:"rounded"})))),le.createElement(Vi,null)),!o&&le.createElement(hu,null,le.createElement(Ph,{title:wo.t("Not found"),description:wo.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(xu,"SwapDetailsPlaceholder");function Eu(){let{manager:t,state:e}=$h(),o=!e.loadedFromPersistor,n=qt(t),r=we.use.selectedSwapRequestId(),s=dt(),{fetchStatus:a}=d(),l=o||a==="loading",p=n.find(({swap:g})=>g.requestId===r),u=i(()=>{if(p?.id){let g=t?.get(p.id);g&&Mh(g)}},"onCancel"),m=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),s()}catch(g){console.log(g)}},"onDelete"),c=p?.swap;return!c||l?bu.createElement(xu,{requestId:r||"",showSkeleton:l}):bu.createElement(Gi,{swap:c,requestId:r||"",onCancel:u,onDelete:m})}i(Eu,"SwapDetailsPage");import{i18n as vo}from"@lingui/core";import{AutoThemeIcon as _h,DarkModeIcon as Dh,LightModeIcon as Fh,List as Uh,ListItemButton as Oh,Radio as ji,RadioRoot as qh,Typography as Ki}from"@rango-dev/ui";import be from"react";function Au(){let{setTheme:t,theme:e}=d(),o=[{id:"light",value:"light",title:be.createElement(Ki,{variant:"title",size:"xmedium"},vo.t("Light")),onClick:()=>t("light"),start:be.createElement(Fh,{color:"gray"}),end:be.createElement(ji,{value:"light"})},{id:"dark",value:"dark",title:be.createElement(Ki,{variant:"title",size:"xmedium"},vo.t("Dark")),onClick:()=>t("dark"),start:be.createElement(Dh,{color:"gray"}),end:be.createElement(ji,{value:"dark"})},{id:"auto",value:"auto",title:be.createElement(Ki,{variant:"title",size:"xmedium"},vo.t("Auto")),onClick:()=>t("auto"),start:be.createElement(_h,{color:"gray"}),end:be.createElement(ji,{value:"auto"})}];return be.createElement(K,{header:{title:vo.t("Theme")}},be.createElement(st,null,be.createElement(qh,{onValueChange:n=>t(n),value:e},be.createElement(Uh,{type:be.createElement(Oh,{title:vo.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}i(Au,"ThemePage");function Iu(){return zh([{path:_.home,element:Ee.createElement(sp,null)},{path:_.fromSwap,children:[{index:!0,element:Ee.createElement(Ai,{type:"source"})},{path:_.blockchains,element:Ee.createElement(gi,{type:"source"})}]},{path:_.toSwap,children:[{index:!0,element:Ee.createElement(Ai,{type:"destination"})},{path:_.blockchains,element:Ee.createElement(gi,{type:"destination"})}]},{path:_.settings,children:[{index:!0,element:Ee.createElement(jp,null)},{path:_.themes,element:Ee.createElement(Au,null)},{path:_.languages,element:Ee.createElement(lp,null)},{path:_.exchanges,element:Ee.createElement(ui,{sourceType:"Exchanges"})},{path:_.bridges,element:Ee.createElement(ui,{sourceType:"Bridges"})}]},{path:_.swaps,children:[{index:!0,element:Ee.createElement(tp,null)},{path:_.swapDetails,element:Ee.createElement(Eu,null)}]},{path:_.wallets,element:Ee.createElement(Ha,null)},{path:_.confirmSwap,element:Ee.createElement(Ql,null)}])}i(Iu,"AppRoutes");import{isApprovalTX as Gh,MainEvents as Nu,RouteEventType as Lu,StepEventType as Vt,StepExecutionEventStatus as Hh,useEvents as Qh}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Bu}from"react";import{StepExecutionBlockedEventStatus as Xi}from"@rango-dev/queue-manager-rango-preset";var Wu=[Xi.WAITING_FOR_CHANGE_WALLET_ACCOUNT,Xi.WAITING_FOR_NETWORK_CHANGE,Xi.WAITING_FOR_WALLET_CONNECT];function Pu(){let t=d().tokens(),e=z.use.connectedWallets(),o=z.use.getWalletsDetails(),n=Pe.use.setNotification(),r=Pe.use.setAsRead(),s=Qh();return Bu(()=>(s.on(Nu.StepEvent,a=>{let{event:l,step:p,route:u}=a;if(l.type===Vt.TX_EXECUTION&&l.status===Hh.TX_SENT&&!Gh(p)||l.type===Vt.SUCCEEDED){let c=e.find(f=>f.chain===p?.fromBlockchain),g=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);c&&o([c],t),g&&o([g],t)}l.type===Vt.TX_EXECUTION_BLOCKED&&Wu.includes(l.status)||l.type===Vt.FAILED?n(l,u):(l.type===Vt.TX_EXECUTION||l.type===Vt.CHECK_STATUS)&&r(u.requestId)}),()=>s.all.clear()),[s,e.length]),Bu(()=>(s.on(Nu.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===Lu.FAILED||l.type===Lu.SUCCEEDED)&&n(l,p)}),()=>s.all.clear()),[s,e.length]),null}i(Pu,"WidgetEvents");import{globalCss as Vh}from"@rango-dev/ui";var Mu=i(()=>Vh({"@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')","url('https://fonts.cdnfonts.com/css/times-new-roman')"]})(),"globalFont");import{createTheme as Zi,darkTheme as Jh,lightTheme as Zh}from"@rango-dev/ui";import{useEffect as _u,useState as Rh}from"react";import{theme as Xh,darkColors as Yh}from"@rango-dev/ui";var $u=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),jh=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=$u(o%52)+e;return $u(o%52)+e},"toAlphabeticName"),Kh=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Yi=i(t=>jh(Kh(5381,JSON.stringify(t))>>>0),"toHash");function Ji(t){let e=Xh.colors,o=Ti({...e,...Yh},!0,t?.dark),n=Ti(e,!1,t?.light),r=Object.keys(o).length>0,s=Object.keys(n).length>0,a,l;if(s){let p={colors:n};a={id:`${ir}-light-${Yi(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${ir}-dark-${Yi(p)}`,tokens:p}}return{light:a,dark:l}}i(Ji,"customizedThemeTokens");function Du(t){let{colors:e,fontFamily:o=as,borderRadius:n=is,secondaryBorderRadius:r=ss,mode:s="auto"}=t,[a,l]=Rh("light"),{setTheme:p,theme:u}=d(),{dark:m,light:c}=Ji(e),g=Zi({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[g.className,Zh.className],k=[g.className,Jh.className];if(c){let y=Zi(c.id,c.tokens);f.push(y.className)}if(m){let y=Zi(m.id,m.tokens);k.push(y.className)}return _u(()=>{let y=i(b=>{b.matches?l("dark"):l("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&l("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",y),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",y)}},[]),_u(()=>{s!=="auto"&&p(s)},[s]),{activeTheme:i(()=>{let y=f.join(" "),b=k.join(" ");return u==="auto"?a==="dark"?b:y:u==="dark"?b:y},"getActiveTheme")}}i(Du,"useTheme");import{styled as ey}from"@rango-dev/ui";var Fu=ey("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",fontFamily:"$widget",boxSizing:"border-box","& *, *::before, *::after":{boxSizing:"inherit",listStyleType:"none"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"}});function Rn(){Mu();let{fetch:t,config:e}=d(),{activeTheme:o}=Du(e?.theme||{}),{activeLanguage:n,changeLanguage:r}=Ln(),[s,a]=Ou(""),[l,p]=Ou(),u=oy(tn);return Uu(()=>{t().catch(),Pe.persist.rehydrate(),u.onConnectWallet(a)},[]),Uu(()=>{r(e?.language)},[e?.language]),xo.createElement(ty,{language:n},xo.createElement(Fu,{id:"swap-container",className:o()},xo.createElement(Pu,null),xo.createElement(sa,{lastConnectedWallet:s,disconnectedWallet:l,clearDisconnectedWallet:()=>{p(void 0)}},xo.createElement(Iu,null))))}i(Rn,"Main");import es,{useMemo as Cy}from"react";import{checkWaitingForNetworkChange as ny,makeQueueDefinition as ry}from"@rango-dev/queue-manager-rango-preset";import{Provider as iy}from"@rango-dev/queue-manager-react";import{useWallets as sy}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as ay}from"@rango-dev/wallets-shared";import{isEvmBlockchain as ly}from"rango-types";import py,{useMemo as uy}from"react";function cy(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=sy(),l=uy(()=>ry({API_KEY:t.apiKey||Wt("API_KEY"),BASE_URL:Wt("BASE_URL")}),[t.apiKey]),p=d().blockchains(),m={blockchains:z.use.connectedWallets().map(w=>({accounts:[w],name:w.chain}))},c=i(async(w,v)=>{if(s(w,v))return r(w,v)},"switchNetwork"),g=i(w=>!!a(w).mobileWallet,"isMobileWallet"),f=p.filter(w=>w.enabled).reduce((w,v)=>(w[v.name]=v,w),{}),k=p.filter(ly),h=i(w=>{let{supportedChains:v}=a(w);return $o(v)},"getSupportedChainNames"),y=e(),b={meta:{blockchains:f,evmBasedChains:k,evmNetworkChainInfo:ay(k),getSupportedChainNames:h},getSigners:o,wallets:m,providers:y,switchNetwork:c,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:g};return py.createElement(iy,{queuesDefs:[l],context:b,onPersistedDataLoaded:w=>{ny(w)},isPaused:!1},t.children)}i(cy,"QueueManager");var qu=cy;import{useManager as gy}from"@rango-dev/queue-manager-react";import hy,{createContext as yy,useContext as Sy}from"react";import{getCurrentBlockchainOfOrNull as my,getCurrentStep as dy,getRelatedWalletOrNull as fy}from"@rango-dev/queue-manager-rango-preset";var bo=class{constructor(e){this.manager=e}getAllSwaps(){return qt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}getCurrentStepInfo(e){let o=dy(e);return{step:o,wallet:o?fy(e,o):null,network:o?my(e,o):null}}};i(bo,"WidgetHistory");var zu=yy(void 0);function Ri(t){let{manager:e}=gy(),o=new bo(e),n=z.use.connectedWallets(),r=z.use.loading(),s=Ss(n),a=z.use.getWalletsDetails(),l={history:o,wallets:{isLoading:r,details:n,totalBalance:s,refetch:a}};return hy.createElement(zu.Provider,{value:l},t.children)}i(Ri,"WidgetInfo");function Gu(){let t=Sy(zu);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Gu,"useWidget");function er(t){let{onUpdateState:e,config:o}=t;return Cy(()=>{rs({API_KEY:o?.apiKey||Eo,BASE_URL:o?.apiUrl||ns})},[o]),es.createElement(on,{config:o,onUpdateState:e},es.createElement(qu,{apiKey:o.apiKey},es.createElement(Ri,null,t.children)))}i(er,"WidgetProvider");function Hu(t){return t.config?.externalWallets?ts.createElement(Rn,null):ts.createElement(er,{config:t.config??nr},ts.createElement(Rn,null))}i(Hu,"Widget");export{p$ as MainEvents,k$ as Networks,u$ as PendingSwapNetworkStatus,c$ as RouteEventType,m$ as StepEventType,d$ as StepExecutionBlockedEventStatus,f$ as StepExecutionEventStatus,S$ as WalletEvents,T$ as WalletTypes,Hu as Widget,er as WidgetProvider,on as WidgetWallets,Ji as customizedThemeTokens,y$ as readAccountAddress,Za as useWallets,Gu as useWidget,g$ as useWidgetEvents};
2
2
  //# sourceMappingURL=index.js.map