@rango-dev/widget-embedded 0.42.3-next.1 → 0.42.3-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/errors.d.ts.map +1 -1
- package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +2 -2
- package/dist/types/quote.d.ts +1 -0
- package/dist/types/quote.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +2 -2
- package/src/constants/errors.ts +6 -7
- package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +1 -0
- package/src/hooks/useConfirmSwap/useConfirmSwap.ts +1 -1
- package/src/types/quote.ts +4 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var Vy=Object.defineProperty;var i=(t,e)=>Vy(t,"name",{value:e,configurable:!0});import{EventSeverity as j7,RouteEventType as X7,StepEventType as Y7,StepExecutionBlockedEventStatus as Z7,StepExecutionEventStatus as J7}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as e9}from"@rango-dev/wallets-core/legacy";import{useWallets as Ai,Events as o9}from"@rango-dev/wallets-react";import{Networks as r9,WalletTypes as i9}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as s9}from"rango-types";import{Divider as nT}from"@rango-dev/ui";import Zt,{useEffect as rT,useRef as iT,useState as xu}from"react";import{WalletState as sS}from"@rango-dev/ui";import{useWallets as lS}from"@rango-dev/wallets-react";import{useReducer as cS}from"react";import{BlockchainCategories as eS,WalletState as nt}from"@rango-dev/ui";import{legacyReadAccountAddress as tS}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as oS,getCosmosExperimentalChainInfo as nS,isEvmAddress as rS,KEPLR_COMPATIBLE_WALLETS as S0,Networks as lp}from"@rango-dev/wallets-shared";import Fo from"bignumber.js";import{isCosmosBlockchain as iS}from"rango-types";import Ky from"bignumber.js";var pe=new Ky(0);import{WalletTypes as jy}from"@rango-dev/wallets-shared";var go="~",jc=[jy.LEAP];import{BlockchainCategories as Na,WalletState as Ry}from"@rango-dev/ui";import{TransactionType as Wr}from"rango-sdk";import{UI_ID as Xy}from"@rango-dev/ui";var Br="c6381a79-2817-4602-83bf-6a641a409e32",Xc="https://api.rango.exchange",Yc="https://explorer.rango.exchange",Ue={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Xy};var Zc="Roboto",Aa=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];function $o(t){return Array.from(new Set(t))}i($o,"removeDuplicateFrom");function Lr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Lr,"debounce");function ot(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(ot,"containsText");function ep(t,e){return t.toLowerCase()===e.toLowerCase()}i(ep,"exactText");function tp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(tp,"startWithText");var N=i(()=>document.getElementById(Ue.SWAP_BOX_ID),"getContainer"),ho=i(()=>document.getElementById(Ue.EXPANDED_BOX_ID),"getExpanded");function op(t,e,o){let n=!!e&&ep(e,t),r=!!o&&ep(o,t);return n!==r?n?-1:1:0}i(op,"compareExactMatchText");function Ba(t,e,o){let n=!!e&&ot(e,t),r=!!o&&ot(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ba,"compareContainsText");function Wa(t,e,o){let n=!!e&&tp(e,t),r=!!o&&tp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Wa,"compareStartWithText");function np(t,e,o){if(!o)return 0;let n=op(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=op(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Wa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ba(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Wa(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ba(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Wa(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ba(o,t.address,e.address);if(r!==0)return r}return 0}i(np,"compareWithSearchFor");var Mr=i((t,e)=>{switch(e){case Na.ALL:return!0;case Na.UTXO:return t===Wr.TRANSFER;case Na.OTHER:return t!==Wr.TRANSFER&&t!==Wr.COSMOS&&t!==Wr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),rp=i(t=>Aa.find(o=>o.value===t)?.url,"getFontUrlByName");function ip(t,e){let o=!!t.find(n=>n.state===Ry.CONNECTED);return e===!1&&o}i(ip,"isSingleWalletActive");function ap(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(ap,"memoizedResult");import{BigNumber as sp}from"bignumber.js";var bn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new sp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new sp(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Pr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var At=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),xn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function En(t){return t.connected?nt.CONNECTED:t.connecting?nt.CONNECTING:t.installed?nt.DISCONNECTED:nt.NOT_INSTALLED}i(En,"mapStatusToWalletState");function cp(t,e,o,n){return o.filter(r=>!jc.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:c}=t(r);return s&&(!l||!!n&&c!==n)?!1:n?!!a.find(p=>p.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:c,needsNamespace:u,supportedChains:p,needsDerivationPath:m,properties:h,isHub:f}=e(r),d=$o(p.map(S=>S.type)),g=En(t(r));return{title:a,image:s,link:oS(l),state:g,type:r,showOnMobile:c,needsNamespace:u,blockchainTypes:d,needsDerivationPath:m,properties:h,isHub:f}})}i(cp,"mapWalletTypesToWalletInfo");function In(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(In,"walletAndSupportedChainsNames");function Ma(t,e,o,n,r){let a=[];function s(c,u,p){if(!!!a.find(h=>h.chain===c)){let h={address:u,chain:c,walletType:t,isContractWallet:p??!1};a.push(h)}}i(s,"addAccount");let l=n||[];return e.forEach(c=>{let{address:u,network:p}=tS(c),m=l.length>0,h=l.includes(p),f=p===lp.Unknown;if(m&&!h&&!f)return;let g=p===lp.Unknown&&rS(u);if(f&&!g)return;o.includes(p)||g?r?s(p,u.toLowerCase(),r):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(p,u)}),a}i(Ma,"prepareAccountsForWalletStore");function yo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:c}=r;c.forEach((u,p)=>{let m=u.from.blockchain,h=u.to.blockchain,f=a===o.swaps.length-1,d=p===c.length-1;(!f&&!d||f&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(h)})}e==="all"&&n.add(l)}),Array.from(n)}i(yo,"getQuoteChains");function An(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(An,"isAccountAndWalletMatched");var pp=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?La(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new Fo(pe));return aS(e.toString())},"calculateWalletUsdValue");function aS(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(aS,"numberWithThousandSeparator");var $r=i((t,e)=>{let o=nS(Object.entries(t).map(([,n])=>n).filter(iS));return o&&o[e]?.experimental},"isExperimentalChain");function La(t,e){return new Fo(t).shiftedBy(-e).toFixed()}i(La,"representAmountInNumber");function Fr(t){if(!t)return null;let e=La(t.amount,t.decimals),o=t.usdValue?La(t.usdValue,t.decimals):null,n=M(e,8,8),r=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Fr,"formatBalance");function up(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Fo(t.usdValue).shiftedBy(-t.decimals):pe,n=e&&e.usdValue?new Fo(e.usdValue).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Fo(t.amount).shiftedBy(-t.decimals):pe,n=e&&e.amount?new Fo(e.amount).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(up,"compareTokenBalance");function Dt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Dt,"areTokensEqual");function mp(t,e){return t.map(o=>({isPartiallyConnected:Nn(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===nt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===nt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===nt.CONNECTED)-+(o.state===nt.CONNECTED)||+(n.state===nt.DISCONNECTED||n.state===nt.CONNECTING)-+(o.state===nt.DISCONNECTED||o.state===nt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(mp,"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 dp({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(dp,"getAddress");var fp=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function gp(t){return t.map(e=>e.state).join("-")}i(gp,"hashWalletsState");function hp(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(hp,"filterBlockchainsByWalletTypes");function yp(t,e){return e===eS.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Mr(n,e))return!0;return!1})}i(yp,"filterWalletsByCategory");function Nn(t,e){return!t.isHub||!t.needsNamespace||t.state!==nt.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(Nn,"checkIsWalletPartiallyConnected");function Sp(t){return!!t.derivationPath}i(Sp,"isStateOnDerivationPathStep");function Cp(t){return!!t.namespace}i(Cp,"isStateOnNamespace");var Or={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Tp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Or;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Or;default:throw new Error("Action hasn't been defined.")}}i(Tp,"reducer");function Uo(){let{state:t,disconnect:e,connect:o}=lS(),[n,r]=cS(Tp,Or),a=i(async(p,m,h)=>{r({type:"reset"});try{let f=m?.map(d=>({...d,network:void 0}));return await o(p,f),{status:"connected"}}catch(f){let d=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:f})}},"runConnect"),s=i(async(p,m)=>{if(p.state===sS.DISCONNECTED){let f=!!p.isHub,d=p.properties?.find(g=>g.name==="detached")?.value;if(f&&!d?.length||!f&&!p.needsNamespace)return await a(p.type,void 0,m);if(f&&d?.length&&d.length>1||!f&&p.needsNamespace?.data.length&&p.needsNamespace.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:p,defaultSelectedChains:m?.defaultSelectedChains}}),{status:"namespace"};if(f&&d?.length===1||!f&&p.needsNamespace?.data.length===1){if(p.needsNamespace&&p.needsDerivationPath){let g=p.needsNamespace.data[0];return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:g.value}}),{status:"derivation-path"}}return await a(p.type,p.needsNamespace?.data.map(g=>({namespace:g.value})),m)}}if(p.isHub){let d=t(p.type).namespaces;if(Nn(p,d))return r({type:"detached",payload:{targetWallet:p,selectedNamespaces:null}}),{status:"Detached"}}return m?.disconnectIfConnected?(await u(p.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(p,m)=>{let h=p.needsNamespace?.selection==="single",f=p.needsDerivationPath,d=m[0];if(!d)throw new Error("To confirm a namespace, you should select at least one namespace.");if(h&&f)return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:d}}),{status:"derivation-path"};if(!Cp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let g=m.map(S=>({namespace:S}));return r({type:"detached",payload:{targetWallet:p,selectedNamespaces:g?.map(S=>S.namespace)||null}}),{status:"Detached"}},"handleNamespace"),c=i(async p=>{if(!p)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Sp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:p}];return await a(m,f)},"handleDerivationPath"),u=i(async p=>{let m=t(p);return m.connected||m.connecting?(await e(p),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:l,handleDerivationPath:c,getState:()=>n,resetState:p=>{r(p==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Uo,"useStatefulConnect");import{WalletState as Ya}from"@rango-dev/ui";import{useWallets as iC}from"@rango-dev/wallets-react";import{detectMobileScreens as aC,KEPLR_COMPATIBLE_WALLETS as sC,WalletTypes as Pn}from"@rango-dev/wallets-shared";import{useCallback as lC,useEffect as cC}from"react";import eC,{createContext as tC,useContext as oC,useEffect as nC,useRef as rC}from"react";import{create as JS}from"zustand";import{persist as RS}from"zustand/middleware";import{allProviders as pS}from"@rango-dev/provider-all";var Pa=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},zo=new Pa;import{defineVersions as vp,pickVersion as wp,Provider as _a}from"@rango-dev/wallets-core";function bp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=xp(a);return s instanceof _a?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof _a?o.push(vp().version("1.0.0",n).build()):o.push(vp().version("0.0.0",n).build())}),o}return t}i(bp,"matchAndGenerateProviders");function xp(t){try{return wp(t,"1.0.0")[1]}catch{return wp(t,"0.0.0")[1]}}i(xp,"pickProviderVersionWithFallbackToLegacy");function Ep(t){return t.map(o=>xp(o)).map(o=>o instanceof _a?o.id:o.config.type)}i(Ep,"configWalletsToWalletName");function Ur(t,e){return e.find(o=>o.name===t)?.displayName}i(Ur,"getBlockchainDisplayNameFor");function dt(t,e){return e.find(o=>o.name===t)?.shortName}i(dt,"getBlockchainShortNameFor");function Ip(t,e){return e.find(o=>o.name===t)?.logo}i(Ip,"getBlockchainImage");function Bn(t,e){return e.find(o=>o.id===t)?.title}i(Bn,"getSwapperDisplayName");function So(t,e){return e.find(o=>o.name===t)??null}i(So,"findBlockchain");function Da(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Da,"isTokenNative");function ft(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(ft,"createTokenHash");function Ho(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Ho,"isValidTokenAddress");function Wn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(c=>{typeof c!="string"&&(c=ft(c));let u=o.tokensMapByTokenHash.get(c);u&&(n[c]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(c=>{l.has(c)||a(o.tokensMapByBlockchainName[c])})}return s.forEach(l=>{let c=r[l];if(!c&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}c&&(c.isExcluded?(a(o.tokensMapByBlockchainName[l]),c.tokens.forEach(u=>{let p=ft(u);delete n[p]})):a(c.tokens))}),Object.values(n)}i(Wn,"matchTokensFromConfigWithMeta");function zr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(zr,"getSupportedBlockchainsFromConfig");function Np(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Np,"makeProvidersOptionsFromConfig");var Hr={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},uS={clientUrl:void 0},mS={liquiditySources:void 0};function Ap(t){let e=Np(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return pS(o).map(a=>a())}i(Ap,"generateProviders");var Bp=i((t,e,o)=>{let n=Ap({...Hr,...t});return{config:{...Hr,...t},iframe:uS,campaignMode:mS,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l}=o(),c=Wn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}}),u=Wn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}});zo.set("supportedSourceTokens",c),zo.set("supportedDestinationTokens",u),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=Ap(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Np(a);return bp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Wp}from"rango-types";var Lp=[Wp.EVM,Wp.SOLANA],Qr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as dS}from"rango-sdk";var $a={API_KEY:Br};function $t(t){return $a[t]||""}i($t,"getConfig");function Mp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),$a=e,$a}i(Mp,"initConfig");var Pp=20,_p=25,Fa="theme-widget",Oa=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Dt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Dt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Ua=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Dp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var qr,rt=i(()=>qr||(qr=new dS($t("API_KEY"),$t("BASE_URL")),qr),"httpService");import{i18n as Up}from"@lingui/core";var $p=[.5,1,3],Fp=1,Gr=5,Ln=30,Op=0;function Vr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return $o(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(c=>c===s.swapperGroup)),l&&s.types.map(c=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:c,selected:!e.includes(s.swapperGroup)})})}}),n}i(Vr,"getUniqueSwappersGroups");function zp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(zp,"sortLiquiditySourcesByGroupTitle");function Ze(t,e){return e?.[t]==="hidden"}i(Ze,"isFeatureHidden");function Qo(t,e){return e?.[t]==="enabled"}i(Qo,"isRoutingEnabled");var Hp=i((t,e,o)=>Ze("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function Qp(t){return t==Op?{type:"error",message:Up.t("Slippage must be greater than or equal to 0.01")}:t>Gr&&t<=Ln?{type:"warning",message:Up.t("Your transaction is at risk of being frontrun due to high slippage tolerance.")}:null}i(Qp,"getSlippageValidation");var qp=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let c=zr({config:a}),u=r;return c.length>0&&(u=u.filter(p=>c.includes(p.name))),u.filter(p=>Lp.includes(p.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(c=>!(s.length>0&&!s.includes(c.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),l=Array.from(n.values()),c=e()._blockchainsMapByName;if(!o||!o.type)return l;let u=o.type==="source"?"from":"to",p=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=zo.get(p);m?.length||(m=Wn({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),zo.set(p,m)),m=Hp(m,s,a.features);let h=e().blockchains({type:o.type});return m.filter(d=>o.blockchain&&d.blockchain!==o.blockchain||!h.some(g=>g.name===d.blockchain)?!1:o.searchFor?!!(ot(d.symbol,o.searchFor)||ot(d.address||"",o.searchFor)||ot(d.name||"",o.searchFor)):!0).sort((d,g)=>{let S=e().isTokenPinned(d,o.type),T=e().isTokenPinned(g,o.type);if(S!==T)return S?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(d),A=o.getBalanceFor(g),E=up(I,A);if(E!==0)return E}let C=c.get(d.blockchain),k=c.get(g.blockchain),w=Da(d,C),x=Da(g,k);if(w!==x)return w?-1:1;if(d.isPopular!==g.isPopular)return d.isPopular?-1:1;if(o.searchFor){let I=np(d,g,o.searchFor);if(I)return I}return d.isSecondaryCoin!==g.isSecondaryCoin?d.isSecondaryCoin?1:-1:C&&k?C.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=ft(o),s=n.get(a);return s||(s=r.find(l=>ft(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Dt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let p=a?.includes(u.swapperGroup);return s||!a||a.length===0?!p:p}).sort(zp)},fetch:async()=>{try{let{routing:o}=e().config,n=Qo("enableCentralizedSwappers",o),r=await rt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},c=[],u=r.popularTokens,p=r.swappers.filter(f=>f.enabled),m=new Set;r.tokens.forEach(f=>{m.add(f.blockchain),c.push(f)}),r.blockchains.sort((f,d)=>f.sort-d.sort).forEach(f=>{f.enabled&&m.has(f.name)&&a.set(f.name,f)}),c.forEach(f=>{let d=ft(f);l[f.blockchain]||(l[f.blockchain]=[]),s.set(d,f),l[f.blockchain].push(d)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:u,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as fS,Catalonia as gS,Chinese as Gp,Denmark as hS,English as yS,Finland as SS,French as CS,German as TS,Greece as kS,Hungary as vS,India as wS,Indonesian as bS,Italian as xS,Japanese as ES,Korea as IS,Lithuania as AS,Malay as NS,Netherlands as BS,Pakistan as WS,Philippines as LS,Poland as MS,Portuguese as PS,Russian as _S,SaudiArabia as DS,Serbia as $S,Slovakia as FS,SouthAfrica as OS,Spanish as US,Swahili as zS,Swedish as HS,Thai as QS,Turkish as qS,Ukrainian as GS,Vietnamese as VS}from"@rango-dev/ui";var Vp=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:OS},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:DS},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:fS},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:gS},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Gp},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Gp},{title:"Danish",label:"Dansk",local:"da",SVGFlag:hS},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:BS},{title:"English",label:"English",local:"en",SVGFlag:yS},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:LS},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:SS},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:CS},{title:"German",label:"Deutsch",local:"de",SVGFlag:TS},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:kS},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:wS},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:vS},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:bS},{title:"Italian",label:"Italiana",local:"it",SVGFlag:xS},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:ES},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:IS},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:AS},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:NS},{title:"Polish",label:"Polski",local:"pl",SVGFlag:MS},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:PS},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:_S},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:$S},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:FS},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:US},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:zS},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:HS},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:QS},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:qS},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:GS},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:WS},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:VS}],qo="en";var Kp=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Fp,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let c=s===o,u=l<=9;return c&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=$o(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Ze("theme",n),s=Ze("language",n),l=Ze("liquiditySource",n),c=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...c&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||qo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||qo}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=zr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Xa from"bignumber.js";import KS from"mitt";var Ce=KS(),jS={on:Ce.on,off:Ce.off};import{WidgetEvents as jp}from"@rango-dev/queue-manager-rango-preset";var Ha=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Ha||{}),Qa=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Qa||{}),qa=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(qa||{}),Go=(a=>(a[a.RouteEvent=jp.RouteEvent]="RouteEvent",a[a.StepEvent=jp.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Go||{});var Xp=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...l]=a;e(c=>({...typeof s=="function"?s(c):s,lastUpdatedAt:+new Date}),...l)},"modifedSet"),o,n),"keepLastUpdated");import Yp from"bignumber.js";function Ft(t){return`${t.blockchain}${go}${t.address}${go}${t.symbol}`}i(Ft,"createAssetKey");function Zp(t,e){return`${Ft(e)}${go}${t}`}i(Zp,"createBalanceKey");function Mn(t){let[e,o,n]=t.split(go);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Mn,"extractAssetFromBalanceKey");function Ga(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Ft(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Yp(r??pe).multipliedBy(o[s].amount).toString():""})})}),o}i(Ga,"computeNextBalancesWithNewPrices");function Va(t,e){let o={};return t.balances?.forEach(n=>{let r=Zp(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,l=n.price??e().findToken(n.asset)?.usdPrice,c=l?new Yp(l??pe).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:c};o[r]=u}),o}i(Va,"createBalanceStateForNewAccount");function Ka(t,e){for(let o in e){let n=Mn(o),r=Ft(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(Ka,"updateAggregatedBalanceStateForNewAccount");function XS(t,e){let o=Mn(e),n=Ft(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(XS,"removeBalanceFromAggregatedBalance");function ja(t,e,o){let n=t.connectedWallets.filter(c=>c.walletType===e);t.connectedWallets.forEach(c=>{c.walletType!==e&&(n=n.filter(u=>!(u.chain===c.chain&&u.address===c.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(c=>o.chains?.includes(c.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(c=>c.namespace?o.namespaces?.includes(c.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(c=>{let u=Mn(c);!!n.find(m=>Zp(m.address,{address:u.address,blockchain:m.chain,symbol:u.symbol})===c)?a=XS(a,c):r[c]=s[c]}),{_balances:r,_aggregatedBalances:a}}i(ja,"computeNextStateAfterWalletBalanceRemoval");function YS(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(YS,"matchWalletDetailsWithConnectedWallet");var ZS=ap(),Jp=Xp((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>An(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>An(s,a))?{...a,loading:!1,error:!1,explorerUrl:YS(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>An(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n)=>{let r=e().connectedWallets,a=o.filter(s=>!r.some(l=>An(s,l)));if(a.length>0){let s=a.map(l=>{let c=!r.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:c,namespace:n,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!s.some(p=>p.walletType===u.walletType&&p.chain===u.chain)),...s]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((c,u)=>((c[u.blockchain]||=[]).push(u),c),{}),s=new Set,l=r.reduce((c,u)=>{let p=`${u.address}-${u.chain}`;return s.has(p)||(s.add(p),a[u.chain]&&(c[u.address]||(c[u.address]=[]),c[u.address].push(...a[u.chain]))),c},{});Object.entries(l).forEach(async([c,u])=>{try{let{balances:p}=await rt().getMultipleTokenBalance({assets:u.map(({symbol:m,address:h,blockchain:f})=>({symbol:m,address:h,blockchain:f})),walletAddress:c});if(p){let m=e()._balances,h=e()._aggregatedBalances;p.forEach(f=>{if(parseFloat(f.amount.amount)===0)return;let d={blockChain:f.asset.blockchain,balances:[f],address:c},g={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};Ga(g,d,m);let S=Va(d,e);h=Ka(h,S),m={...m,...S}}),t(f=>({_balances:{...f._balances,...m},_aggregatedBalances:h}))}}catch(p){console.error(p)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n)=>{Ce.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ja(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(Ce.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(l=>a.includes(l.chain)?(a=a.filter(c=>c!==l.chain),{...l,selected:!0}):l);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(c=>({address:c.address,blockchain:c.chain})),s;try{s=await rt().getWalletsDetails(a)}catch(c){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${c}`);return}let l=s.wallets;if(l){let c=e()._balances,u=e()._aggregatedBalances;l.forEach(m=>{if(m.failed)return;let h={_balances:c,_aggregatedBalances:u,connectedWallets:e().connectedWallets,findToken:e().findToken};Ga(h,m,c);let{_balances:f,_aggregatedBalances:d}=ja(h,r,{chains:[m.blockChain]});if(u=d,c=f,!e().connectedWallets.find(S=>S.walletType===r&&S.address===m.address&&S.chain===m.blockChain))return;let g=Va(m,e);u=Ka(u,g),c={...c,...g}}),t(m=>({_balances:{...m._balances,...c},_aggregatedBalances:u})),e().setConnectedWalletRetrievedData(o,l);let{retryOnFailedBalances:p=!0}=n||{};if(p){let m=l.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));m.length>0&&await e().fetchMainTokensBalances(m,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Ft(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let c=a[0];return n[c]}let l=n[a[0]];return a.forEach(c=>{let u=n[c],p=new Xa(u.amount),m=new Xa(l.amount);p.isGreaterThan(m)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,l)=>{let c=n[l],[,,,u]=l.split(go);return u===o&&(s[l]=c),s},{})},getConnectedWalletsDetails:()=>ZS(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,l)=>{let c=r[l],u=Mn(l);if(u.blockchain===n.chain){let p=e().findToken(u),m=c.amount?new Xa(c.amount).shiftedBy(-c.decimals):pe;s.push({chain:n.chain,symbol:u.symbol,ticker:u.symbol,address:u.address,rawAmount:c.amount,decimal:c.decimals,amount:m.toString(),logo:p?.image||null,usdPrice:p?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Rp(t){return JS()(RS((...e)=>({...Jp(...e),...qp(...e),...Kp(...e),...Bp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,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}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Rp,"createAppStore");var eu=tC(null);function y(){let t=oC(eu);if(nC(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function tu(t){let e=rC();return e.current||(e.current=Rp(t.config)),eC.createElement(eu.Provider,{value:e.current},t.children)}i(tu,"AppStoreProvider");function Ct(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=y(),{state:r,getWalletInfo:a}=iC(),s=y().blockchains(),{handleDisconnect:l}=Uo(),c=Ep(n()),u=cp(r,a,c,e);u=aC()?u.filter(g=>g.showOnMobile!==!1&&r(g.type).installed):u;let p=mp(u,r),m=i(g=>!o.find(S=>S.walletType===g&&S.chain===e),"isExperimentalChainNotAdded"),h=lC(()=>{let g=u?.filter(S=>S.state===Ya.CONNECTING)||[];for(let S of g)l(S.type)},[gp(u)]);cC(()=>()=>{h()},[]);let f=i(g=>{let S=g.find(C=>C.type===Pn.DEFAULT);return!S||S.state===Ya.NOT_INSTALLED?!1:g.filter(C=>C.state!=Ya.NOT_INSTALLED&&![Pn.DEFAULT,Pn.WALLET_CONNECT_2,Pn.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i((g,S,T)=>$r(T,S)&&m(g)&&!sC.includes(g)||g==Pn.DEFAULT&&!f(u),"shouldExcludeWallet");return{list:p.filter(g=>!d(g.type,e??"",s)),terminateConnectingWallets:h}}i(Ct,"useWalletList");import{Modal as dC}from"@rango-dev/ui";import fC from"react";import{create as mC}from"zustand";var ou="rango-widget";var _n=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(ou),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var uC=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"),Vo=uC;var te=Vo(mC()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Co=new _n({onInit:()=>te.setState({tabManagerInitiated:!0}),onClaim:()=>te.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>te.setState({isActiveTab:!1})});function J(t){let{watermark:e}=te();return fC.createElement(dC,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as Ro}from"@lingui/core";import{Alert as bC,Button as xC,Divider as Jr,Image as EC,MessageBox as IC,RadioRoot as AC}from"@rango-dev/ui";import ue,{useEffect as NC,useMemo as BC,useState as WC}from"react";import{Checkbox as TC,Radio as kC,Typography as vC}from"@rango-dev/ui";import Yt from"react";function Ko(t,e){return t.find(o=>o.name===e)?.logo}i(Ko,"getBlockchainLogo");import{Button as gC,darkTheme as hC,Image as yC,styled as Tt,Typography as SC}from"@rango-dev/ui";var Kr=Tt("ul",{padding:0,paddingTop:"$10",paddingBottom:"$20",margin:0}),jo=Tt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100 ",[`.${hC} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),Xo=Tt("div",{display:"flex",gap:"$8",alignItems:"center"}),jr=Tt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),ru=Tt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Yo=Tt(yC,{variants:{disabled:{true:{opacity:"0.5"}}}}),Zo=Tt(gC,{minHeight:"$40"}),iu=Tt(SC,{maxWidth:"100px"}),au=Tt("div",{paddingLeft:"48px"}),su=Tt("div",{display:"flex",gap:"2px",cursor:"pointer",alignItems:"center",width:"fit-content"}),lu=Tt("div",{display:"flex",gap:"6px",alignItems:"center"});import{Image as pu,Tooltip as uu,Typography as CC}from"@rango-dev/ui";import Nt from"react";import{styled as cu}from"@rango-dev/ui";var Za=cu("div",{display:"flex",alignItems:"center",padding:0,margin:0}),Xr=cu("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var Ja=3;function Yr(t){let{chains:e}=t;return Nt.createElement(Za,null,e.slice(0,Ja).map((o,n)=>Nt.createElement(uu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Nt.createElement(Xr,{firstItem:n===0},Nt.createElement(pu,{src:o.logo,size:15})))),e.length>Ja&&Nt.createElement(uu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Nt.createElement(Za,null,e.map((o,n)=>Nt.createElement(Xr,{key:o.name,firstItem:n===0},Nt.createElement(pu,{src:o.logo,size:15}))))},Nt.createElement(Xr,null,Nt.createElement(CC,{variant:"body",size:"xsmall"},"+",e.length-Ja))))}i(Yr,"SupportedChainsList");function mu(t){let{onClick:e,type:o,namespace:n}=t,r=y().blockchains(),a=n.chains.length>1;return Yt.createElement(jo,{onClick:e,clickable:!0},Yt.createElement(Xo,null,Yt.createElement(Yo,{src:Ko(r,n.id),size:40}),Yt.createElement(jr,{showSupportedChains:a},Yt.createElement(vC,{variant:"label",size:"large"},n.label),a&&Yt.createElement(Yr,{chains:n.chains})),o==="radio"?Yt.createElement(kC,{value:n.value}):Yt.createElement(TC,{checked:t.value})))}i(mu,"NamespaceListItem");import{i18n as wC}from"@lingui/core";import{Typography as du}from"@rango-dev/ui";import Jo from"react";function Zr(t){let{namespace:e}=t,o=y().blockchains();return Jo.createElement(jo,{unsupported:!0},Jo.createElement(Xo,null,Jo.createElement(Yo,{src:Ko(o,e.id),size:40,disabled:!0}),Jo.createElement(ru,null,Jo.createElement(du,{variant:"label",size:"large"},e.label),Jo.createElement(du,{variant:"body",size:"xsmall"},wC.t("(Currently not supported)")))))}i(Zr,"NamespaceUnsupportedItem");function Dn(t){let{targetWallet:e}=t.value,o=e.needsNamespace?.selection==="single",n=e.image,[r,a]=WC([]),s=BC(()=>e.needsNamespace?.data.filter(m=>!m.unsupported),[e?.type]),l=i(m=>{a(o?[m]:h=>h.includes(m)?h.filter(f=>f!==m):h.concat(m))},"onSelect"),c=s?.length===r.length,u=i(()=>{if(o)throw new Error("onSelectAll should not be called on single selection mode.");c?a([]):s&&a(s.map(m=>m.value))},"onSelectAll"),p=i(m=>o?ue.createElement(AC,{value:r?.[0]},m):ue.createElement(ue.Fragment,null,m),"wrapRadioRoot");return NC(()=>{if(!o&&s)if(t.value.defaultSelectedChains?.length){let m=s.filter(h=>h.chains.some(f=>t.value.defaultSelectedChains?.includes(f.name)));a(m.map(h=>h.value))}else a(s.map(m=>m.value))},[]),ue.createElement(ue.Fragment,null,ue.createElement(IC,{type:"info",title:Ro.t("Connect {wallet}",{wallet:e.title}),description:Ro.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ue.createElement(EC,{src:n,size:45})}),o?ue.createElement(ue.Fragment,null,ue.createElement(Jr,{size:20}),ue.createElement(bC,{variant:"alarm",type:"info",title:Ro.t("This wallet can only connect to one chain at a time. ")})):ue.createElement(ue.Fragment,null,ue.createElement(Jr,{size:30}),ue.createElement(xC,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:u},c?Ro.t("Deselect all"):Ro.t("Select all"))),ue.createElement(Kr,null,p(ue.createElement(ue.Fragment,null,e.needsNamespace?.data.map((m,h,f)=>ue.createElement(ue.Fragment,{key:m.id},m.unsupported?ue.createElement(Zr,{namespace:m}):ue.createElement(mu,{value:r.includes(m.value),namespace:m,type:o?"radio":"checkbox",onClick:()=>l(m.value)}),h!==f.length-1&&ue.createElement(Jr,{size:10})))))),ue.createElement(Jr,{size:20}),ue.createElement(Zo,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},Ro.t("Connect")))}i(Dn,"Namespaces");import{i18n as Ra}from"@lingui/core";import{Divider as es,Image as UC,MessageBox as zC}from"@rango-dev/ui";import it from"react";import{i18n as en}from"@lingui/core";import{Button as LC,ChevronDownIcon as MC,ChevronUpIcon as PC,Divider as _C,Spinner as DC,Typography as $n}from"@rango-dev/ui";import{useWallets as $C}from"@rango-dev/wallets-react";import Te,{useEffect as FC,useLayoutEffect as OC,useState as fu}from"react";var gu=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,a=y().blockchains(),{connect:s,disconnect:l,state:c}=$C(),[u,p]=fu(null),[m,h]=fu(!1),d=c(o).namespaces?.get(n.value),g=d.accounts?.[0]?.split(":");FC(()=>h(!1),[u]),OC(()=>{r&&S(o,n.value)},[]);let S=i(async(k,w)=>{try{await s(k,[{namespace:w,network:""}])}catch(x){p(x)}},"handleConnectNamespace"),T=i(async k=>{p(null),k.connected?await l(o,[n.value]):S(o,n.value)},"handleButtonClick"),C=i(()=>d.connected?en.t("Disconnect"):u?en.t("Try again"):en.t("Connect"),"getButtonText");return Te.createElement(jo,{hasError:!!u},Te.createElement(Xo,null,Te.createElement(Yo,{src:Ko(a,n.id),size:40}),Te.createElement(jr,null,Te.createElement(lu,null,Te.createElement($n,{variant:"label",size:"large"},n.label),d.connected&&Te.createElement($n,{variant:"body",size:"small",color:"success500"},en.t("Connected")),!d.connected&&!!u&&Te.createElement($n,{variant:"body",size:"small",color:"error500"},en.t("Connection failed"))),d.connected&&Te.createElement(iu,{variant:"body",size:"small",color:"neutral700"},Oo(g?.[g?.length-1])),!d.connected&&u&&Te.createElement(su,{onClick:()=>h(k=>!k)},Te.createElement($n,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},en.t("See why")),m?Te.createElement(PC,{size:12,color:"gray"}):Te.createElement(MC,{size:12,color:"gray"})),!d.connected&&!u&&n.chains.length>1&&Te.createElement(Yr,{chains:n.chains})),d.connecting?Te.createElement(DC,{color:"info"}):Te.createElement(LC,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"small",onClick:async()=>T(d)},C())),!d.connected&&!!u&&m&&Te.createElement(Te.Fragment,null,Te.createElement(_C,{size:4}),Te.createElement(au,null,Te.createElement($n,{variant:"body",size:"small",color:"neutral700"},u.cause?.message||u.message))))},"NamespaceDetachedItem");function Fn(t){let{selectedNamespaces:e,value:o}=t,{targetWallet:n}=o;return it.createElement(it.Fragment,null,it.createElement(zC,{type:"info",title:Ra.t("Connect {wallet}",{wallet:n.type}),description:Ra.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:it.createElement(UC,{src:n.image,size:45})}),it.createElement(es,{size:20}),it.createElement(Kr,null,n.needsNamespace?.data.map((r,a,s)=>it.createElement(it.Fragment,{key:r.id},r.unsupported?it.createElement(Zr,{namespace:r}):it.createElement(gu,{walletType:n.type,namespace:r,initialConnect:e?.includes(r.value)}),a!==s.length-1&&it.createElement(es,{size:10})))),it.createElement(es,{size:20}),it.createElement(Zo,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},Ra.t("Done")))}i(Fn,"Detached");import{i18n as tn}from"@lingui/core";import{Divider as yu,Image as GC,MessageBox as VC,Select as KC,TextField as jC}from"@rango-dev/ui";import gt,{useEffect as XC,useState as Su}from"react";import{namespaces as HC}from"@rango-dev/wallets-shared";var Rr={id:"custom",label:"Custom",generateDerivationPath:t=>t};function ts(t){let e=t?HC[t].derivationPaths:null;return e?[...e,Rr]:[]}i(ts,"getDerivationPaths");import{Button as QC,styled as os,Typography as qC}from"@rango-dev/ui";var hu=os("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),ns=os(qC,{paddingLeft:"$10"}),rs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},fL=os(QC,{minHeight:"$40"});var Cu="0";function On(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Su(null),[l,c]=Su(Cu),u=a===Rr.id,p=ts(o),m=i(({value:f})=>{let d=p?.find(g=>g.id===f);d&&(a===Rr.id&&Number.isNaN(Number(l))&&c(Cu),s(d.id))},"handleDerivationPathItemClick"),h=i(()=>{let f=p.find(d=>d.id===a);if(f)e(f.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return XC(()=>{s(ts(o)[0]?.id||null)},[o]),gt.createElement(gt.Fragment,null,gt.createElement(yu,{size:20}),gt.createElement(VC,{type:"info",title:tn.t("Select Derivation Path"),description:tn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:gt.createElement(GC,{src:n,size:45})}),gt.createElement(hu,null,gt.createElement(ns,{variant:"body",size:"xsmall",color:"$neutral600"},tn.t("Choose Derivation Path Template")),gt.createElement(KC,{value:a||"",options:p.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:m,styles:{trigger:rs}}),gt.createElement(yu,{size:20}),gt.createElement(ns,{variant:"body",size:"xsmall",color:"$neutral600"},u?tn.t("Enter Path"):tn.t("Enter Index")),gt.createElement(jC,{type:u?"text":"number",variant:"contained",value:l,onChange:f=>c(f.target.value),style:rs})),gt.createElement(Zo,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!p||!a||!l},tn.t("Confirm")))}i(On,"DerivationPath");import{i18n as on}from"@lingui/core";import{Image as JC,MessageBox as is,WalletState as RC}from"@rango-dev/ui";import{useWallets as eT}from"@rango-dev/wallets-react";import To from"react";import{keyframes as YC,styled as ei}from"@rango-dev/ui";var xL=ei("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Tu=ei("div",{position:"relative"}),ZC=YC({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ku=ei("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ZC} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),vu=ei("div",{"& img":{borderRadius:"50%"}});function as(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=eT();return En(a(n))===RC.CONNECTED?To.createElement(is,{type:"success",title:on.t("Wallet Connected"),description:on.t("Your wallet is connected, you can use it to swap.")}):o?To.createElement(is,{type:"error",title:on.t("Failed to Connect"),description:o||on.t("Your wallet is not connected. Please try again.")}):To.createElement(is,{type:"loading",title:on.t("Connecting to your wallet"),description:on.t("Click connect in your wallet popup."),icon:To.createElement(Tu,null,To.createElement(vu,null,To.createElement(JC,{src:r,size:45})),To.createElement(ku,null))})}i(as,"ConnectStatus");import{i18n as ss}from"@lingui/core";import{Button as tT,Divider as wu,MessageBox as oT}from"@rango-dev/ui";import ti from"react";function ls(t){let{displayName:e,onConfirm:o}=t;return ti.createElement(oT,{title:ss.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:ss.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},ti.createElement(wu,{size:18}),ti.createElement(wu,{size:32}),ti.createElement(tT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ss.t("Confirm")))}i(ls,"ExperimentalChain");function bu(t,e){return t().status==="init"&&!!e}i(bu,"isOnStatus");function Un(t){return t().status==="namespace"}i(Un,"isOnNamespace");function zn(t){return t().status==="derivationPath"}i(zn,"isOnDerivationPath");function Hn(t){return t().status==="detached"}i(Hn,"isOnDetached");var aT=3e3,sT=300;function ko(t){let e=iT(),[o,n]=xu(!1),[r,a]=xu(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=Ct(),{handleConnect:c,handleDerivationPath:u,handleNamespace:p,getState:m,resetState:h}=Uo(),f=i(k=>{p(t.wallet,k).then(C).catch(s)},"handleConfirmNamespaces"),d=i(()=>{S()},"handleDetachedConfirm"),g=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(k).then(C).catch(s)},"handleDerivationPathConfirm"),S=i(()=>{n(!1)},"handleClosingModal"),T=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),C=i((k,w)=>{let x=k.status==="connected",I=["disconnected","disconnected-unhandled"].includes(k.status);x?(t.onConnect?.(),w||(e.current=setTimeout(S,aT))):I&&S()},"afterConnected");return rT(()=>{if(t.wallet){T();let k=!1,w=!0;i(()=>{setTimeout(()=>{w=!1,k||n(!0)},sT)},"beforeConnecting")(),c(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(k=!0),C(I,w)}).catch(s)}},[t.wallet]),Zt.createElement(J,{open:o,onClose:S,onExit:()=>{T(),l(),t.onClose&&t.onClose()},container:N()},bu(m,t.wallet)&&Zt.createElement(Zt.Fragment,null,Zt.createElement(as,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),Zt.createElement(nT,{direction:"vertical",size:32})),Un(m)&&Zt.createElement(Dn,{onConfirm:f,value:m().namespace}),zn(m)&&Zt.createElement(On,{onConfirm:g,value:m().derivationPath}),Hn(m)&&Zt.createElement(Fn,{onConfirm:d,value:m().namespace,selectedNamespaces:m().selectedNamespaces}))}i(ko,"StatefulConnectModal");import{Provider as mT}from"@rango-dev/wallets-react";import oi,{createContext as dT,useEffect as Bu,useMemo as fT,useRef as Wu}from"react";import{useEffect as lT}from"react";function Eu(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Eu,"hashProviders");function cs(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=y(),a=n();return lT(()=>{o(),r()},[Eu(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(cs,"useWalletProviders");import{legacyFormatAddressWithNetwork as cT,legacyReadAccountAddress as Iu}from"@rango-dev/wallets-core/legacy";import{Events as nn}from"@rango-dev/wallets-react";import{isEvmBlockchain as pT}from"rango-sdk";function Au(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=y(),{onConnectWalletHandler:l,onDisconnectWalletHandler:c}=t,u=s().filter(pT).map(g=>g.name),p=i((g,S)=>{let[T,,C,k,w]=g,x={walletType:T,network:k.network??void 0,accounts:C};l.current?l.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=Ma(T,C,u,S.supportedChainNames,w.isContractWallet);I.length&&e(I,w.namespace)},"onAccountsEvent"),m=i((g,S,T,C,k)=>{if(S===nn.ACCOUNTS){let w=In(k.supportedBlockchains);T&&p([g,S,T,C,k],{supportedChainNames:w})}S===nn.PROVIDER_DISCONNECTED&&(o(g),c.current?c.current(g):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===nn.NAMESPACE_DISCONNECTED&&n(g,T)},"handleUpdatesForHub"),h=i((g,S,T,C,k)=>{if(S===nn.ACCOUNTS){let w=In(k.supportedBlockchains),x=[],I=[];if(T?.forEach(E=>{let{network:b}=Iu(E);u.includes(b)?x.push(E):I.push(E)}),r.filter(E=>E.walletType===g).map(E=>cT(E.address,E.chain)).length>0){if(x.length>0){let E=Ma(g,x,u,w,k.isContractWallet);a(g,{chains:E.map(b=>b.chain)})}I.length>0&&a(g,{chains:I.map(E=>{let{network:b}=Iu(E);return b})})}T?p([g,S,T,C,k],{supportedChainNames:w}):(o(g),c.current?c.current(g):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),f=i((g,S,T,C,k)=>{if(S===nn.CONNECTED&&T){let w={walletType:g,network:C.network??void 0,accounts:C.accounts??void 0};l.current?l.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===nn.NETWORK&&T){let w={walletType:g,network:T,accounts:C.accounts??void 0};l.current?l.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((g,S,T,C,k)=>{k.isHub?m(g,S,T,C,k):h(g,S,T,C,k),f(g,S,T,C,k)},"handler")}}i(Au,"useUpdates");import{LegacyEvents as uT}from"@rango-dev/wallets-core/legacy";function Nu(t,e){let[o,n,r,a,s]=e;n!==uT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(Nu,"propagateEvents");var ni=dT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function gT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=y(),a=y().blockchains(),s=y().config,l={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:c}=cs(s.wallets,l),u=Wu(),p=Wu(),{handler:m}=Au({onConnectWalletHandler:u,onDisconnectWalletHandler:p});Bu(()=>{n().catch(console.log)},[]),Bu(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let h=te.use.isActiveTab(),f=fT(()=>({onConnectWallet:d=>{u.current=d},onDisconnectWallet:d=>{p.current=d}}),[]);return oi.createElement(ni.Provider,{value:f},oi.createElement(mT,{allBlockChains:a,providers:c,onUpdateState:(d,g,S,T,C)=>{let k=[d,g,S,T,C];m(...k),t.onUpdateState&&Nu(t.onUpdateState,k)},autoConnect:!!h,configs:{wallets:s.wallets}},t.children))}i(gT,"Main");function ri(t){let{config:e,...o}=t;return oi.createElement(tu,{config:e},oi.createElement(gT,{...o,config:e}))}i(ri,"WidgetWallets");import Ia from"react";import hT,{Fragment as yT}from"react";import{MemoryRouter as ST,useInRouterContext as CT}from"react-router";function Lu({children:t}){let o=CT()?yT:ST;return hT.createElement(o,null,t)}i(Lu,"AppRouter");import{I18nManager as IA}from"@rango-dev/ui";import Gc from"react";import $e from"react";import{useRoutes as fA}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as an,useRef as di}from"react";import Je from"bignumber.js";import{create as wT}from"zustand";import{subscribeWithSelector as bT}from"zustand/middleware";import{i18n as kt}from"@lingui/core";import{getRelatedWalletOrNull as vT,RouteEventType as gP}from"@rango-dev/queue-manager-rango-preset";import qe from"bignumber.js";import{PendingSwapNetworkStatus as ui}from"rango-types";import{i18n as ze}from"@lingui/core";var oe=i(()=>({genericServerError:ze.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:ze.t("Please reset your liquidity sources."),description:ze.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:ze.t("No Routes Found."),description:ze.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:ze.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:ze.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:ze.t("High Price Impact"),title:ze.t("Price impact is too high!"),description:ze.t("The price impact is significantly higher than the allowed amount."),confirmMessage:ze.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:ze.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:ze.t("USD Price Unknown"),title:ze.t("USD Price Unknown, Cannot calculate Price Impact."),description:ze.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:ze.t("Confirm USD Price Unknown")}}),"errorMessages");function Mu(t){switch(t.type){case 0:return t.diagnosisMessage??oe().noResultError.title;case 1:return oe().genericServerError;default:return""}}i(Mu,"getQuoteErrorMessage");import{i18n as ii}from"@lingui/core";var vo=i(()=>({connectWallet:ii.t("Connect Wallet"),swap:ii.t("Swap"),swapAnyway:ii.t("Swap anyway"),ethWarning:ii.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ps(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(ps,"getFeeLabel");var us=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Pu=100,_u=30,Du=15,$u=60;var Fu=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Ou=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as kT}from"@rango-dev/queue-manager-rango-preset";import tP from"bignumber.js";function zu(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(zu,"getRequiredBalanceOfWallet");function Ut(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Ut,"getPriceImpactLevel");function si(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=kT(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=So(a?a.toBlockchain:n.fromBlockchain,e),c=So(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),p=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:c,toToken:p,inputAmount:m}}i(si,"createRetryQuote");function rn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Qn(o),s=ht(o);if(o&&a&&s){let u=Ot(a.toString(),s.toString());if(!!u&&Vu(a,u)){let m=ci(o?.swaps,n),h=Ut(u);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:u,totalFee:m,warningLevel:h}}}if(e&&Xu(e,o))return{type:4,usdValueChange:M(ht(o)?.minus(ht(e)??0).toString()??"0",null,2),percentageChange:M(Ot(ht(e)??"1",ht(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let l=pi(o.swaps),c=r>Gr;if(ju(t.userSlippage.toString(),l)){if(c&&parseFloat(l??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Ku(o,r),minRequiredSlippage:l};return null}i(rn,"generateQuoteWarnings");function Hu(t){return![4].includes(t.type)}i(Hu,"isQuoteWarningConfirmationRequired");function Ot(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:ms(t.toString(),e.toString());return n&&n<0?n:null}i(Ot,"getPriceImpact");var Qu=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),li=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(p=>p.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),c=n.requestId.toLowerCase();return l.localeCompare(c)}),"sortQuotesBy"),qu=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),Gu=i(t=>{let e=i((o,n)=>{let r=us.indexOf(o.value),a=us.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Vu(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Fu.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new qe(r)))}i(Vu,"hasHighValueLoss");function Yu(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new qe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(Yu,"hasLimitError");function Zu(t){let e=(t||[]).filter(l=>{let c=l.fromAmountMinValue?new qe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new qe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?c?.gte(l.fromAmount)||u?.lte(l.fromAmount):c?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new qe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=kt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=kt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=kt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=kt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Zu,"getLimitErrorMessage");function Ju(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:c}=t;return e!=="success"?{title:vo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:vo().swap,action:"confirm-swap",disabled:!0}:s?{title:vo().swapAnyway,action:"confirm-warning",disabled:!1}:c?{title:vo().ethWarning,action:"confirm-warning",disabled:!1}:{title:vo().swap,action:"confirm-swap",disabled:!1}:{title:vo().connectWallet,action:"connect-wallet",disabled:!1}}i(Ju,"getSwapButtonState");function ds(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}i(ds,"canComputePriceImpact");function fs(t,e){let o=pe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new qe(r.amount).multipliedBy(a||0))}return o}i(fs,"getUsdFeeOfStep");function ci(t,e){return t.reduce((o,n)=>o.plus(fs(n,e)),pe)}i(ci,"getTotalFeeInUsd");function gs(t){let e=pe;return e=e.plus(new qe(t.amount).multipliedBy(t.price||0)),e}i(gs,"getUsdFee");function Ru(t){return t.reduce((e,o)=>e.plus(gs(o)),pe)}i(Ru,"getTotalFeesInUsd");function em(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(em,"getFeesGroup");function tm(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(tm,"checkSlippageErrors");function Ku(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(Ku,"checkSlippageWarnings");function pi(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(pi,"getMinRequiredSlippage");function ju(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ju,"hasProperSlippage");function om(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:c,slippage:u,affiliateRef:p,affiliatePercent:m,affiliateWallets:h,destination:f,contractCall:d}=t,g=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:p??void 0,affiliatePercent:m??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:g??{},slippage:u.toString(),contractCall:d,...f&&{destination:f},...c&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!c&&{swapperGroups:l?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(om,"createQuoteRequestBody");function nm(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(nm,"getWalletsForNewSwap");function Qn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new qe(e).multipliedBy(o)}i(Qn,"getUsdInputFrom");function ht(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new qe(e).multipliedBy(o)}i(ht,"getUsdOutputFrom");function ms(t,e){return new qe(e).div(new qe(t)).minus(1).multipliedBy(Pu).toNumber()}i(ms,"getPercentageChange");function Xu(t,e){let o=Qn(t),n=ht(t),r=ht(e);if(!o||!n||!r)return!1;let a=ms(n.toString(),r.toString());return Ou.some(({threshold:s,minInput:l})=>a<=s&&o.isGreaterThanOrEqualTo(l))}i(Xu,"isOutputAmountChangedExcessively");function rm(t,e,o){let n=t.validationStatus,r=yo({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>zu(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,c=M(new qe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new qe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),p="";return s.reason==="FEE"&&(p=kt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(p=kt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(p=kt.t(" for input and network fee")),kt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:p,currentAmount:c,blockchain:dt(s.asset.blockchain,o)}})})}i(rm,"generateBalanceWarnings");function qn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==ui.NetworkChanged}i(qn,"isNetworkStatusInWarningState");function im(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),qn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let u=(e?vT(t,e):null)?.walletType,p=u?o?.(u)?.name:null;switch(e?.networkStatus){case ui.WaitingForConnectingWallet:r=p?kt.t("Connect {wallet}",{wallet:p}):r;break;case ui.WaitingForQueue:r=r||kt.t("Waiting for other running tasks to be finished");break;case ui.WaitingForNetworkChange:r=r||kt.t("Waiting for changing wallet network");break;default:r=r||"";break}}a=a||"",r=r||"";let l=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:l}}}i(im,"getSwapMessages");function am(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(am,"getLastConvertedTokenInFailedSwap");function sm(t){return t.status==="failed"}i(sm,"shouldRetrySwap");function lm(t,e,o,n,r,a){if(!n||t)return!0;let s=yo({filter:"all",quote:n}),l=yo({filter:"required",quote:n}),c=s.every(m=>r.some(h=>h.chain===m)),u=l.every(m=>r.some(h=>h.chain===m)),p=o&&a?Ho(a,o):!1;return!e&&!c||e&&!o||e&&!!o&&(!p||!u)}i(lm,"isConfirmSwapDisabled");function cm(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(cm,"isTokensIdentical");var mi=i((t,e)=>t?.usdPrice?new Je(e||pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Vo(wT()(bT(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Je(0),outputUsdValue:new Je(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=pe,a=o.inputUsdValue;return xn(o.inputAmount)?(e&&(n=e?.outputAmount?new Je(e?.outputAmount):null,a=Qn(e)??pe,r=ht(e)??pe),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Je(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Je(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Je(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:mi(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Je(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:null,outputUsdValue:new Je(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:mi(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:mi(n??null,s),outputUsdValue:new Je(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?mi(e.toToken,e.outputAmount?.toString()||""):new Je(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Je(0),inputUsdValue:new Je(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Je(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),pm=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Ce.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&Ce.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function um(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:c,toBlockchain:u}=O(),p=y().config,m=y().fetchStatus,h=y().blockchains(),{findToken:f}=y(),{setAffiliateRef:d,setAffiliatePercent:g,setAffiliateWallets:S}=y(),T=p?.from?.tokens,C=p?.from?.blockchains,k=p?.to?.tokens,w=p?.to?.blockchains,x=di(void 0),I=di(void 0),A=di(void 0),E=di(void 0);an(()=>{typeof p.amount<"u"&&t(p.amount.toString())},[p?.amount]),an(()=>{if(m==="success"){r();let b=h.find(P=>P.name===p?.from?.blockchain),v=p?.from?.token,B=v&&f(v);(b||!b&&A.current)&&n(b??null),B?a({token:B,meta:{blockchains:h}}):!B&&x.current&&a({token:null}),A.current=p?.from?.blockchain,x.current=p?.from?.token}},[p?.from?.token?.symbol,p?.from?.token?.address,p?.from?.token?.blockchain,p?.from?.blockchain,m]),an(()=>{Oa(s,T)&&a({token:null}),Ua(c,C)&&n(null)},[T,C]),an(()=>{Oa(l,k)&&a({token:null}),Ua(u,w)&&o(null)},[k,w]),an(()=>{if(m==="success"){r();let b=h.find(P=>P.name===p?.to?.blockchain),v=p?.to?.token,B=v&&f(v);(b||!b&&E.current)&&o(b??null),B?e({token:B,meta:{blockchains:h}}):!B&&I.current&&e({token:null}),E.current=p?.to?.blockchain,I.current=p?.to?.token}},[p?.to?.token?.symbol,p?.to?.token?.address,p?.to?.token?.blockchain,p?.to?.blockchain,m]),an(()=>{d(p?.affiliate?.ref??null),g(p?.affiliate?.percent??null),S(p?.affiliate?.wallets??null)},[p?.affiliate?.ref,p?.affiliate?.percent,p?.affiliate?.wallets])}i(um,"useSyncStoresWithConfig");import{useEffect as Ss,useRef as xT}from"react";import{useInRouterContext as ET,useLocation as IT,useSearchParams as AT}from"react-router-dom";function hs(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(hs,"convertTokenSearchParamToAsset");function ys(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(ys,"tokenToSearchParam");function Ts(){let t=IT(),[e,o]=AT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:c,setToBlockchain:u,setFromToken:p,setToToken:m,setInputAmount:h}=O(),f=y().fetchStatus,d=y().blockchains(),g=ET(),{updateIframe:S,updateCampaignMode:T}=y(),C=y().isInCampaignMode(),k=xT(),{findToken:w}=y(),x=i(()=>{let A={};for(let[L,X]of e.entries())L.startsWith("utm_")&&(A[L]=X);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),v=e.get("fromToken"),B=e.get("toBlockchain"),P=e.get("toToken"),_=e.get("autoConnect"),V=e.get("clientUrl"),ee=e.get("liquiditySources"),j=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:v,toBlockchain:B,toToken:P,autoConnect:_,clientUrl:V,liquiditySources:ee,utmQueryParams:A,blockchain:j}},"getUrlSearchParams"),I=i(A=>{for(let E in A)A[E]||delete A[E];o(A,{replace:!0})},"updateUrlSearchParams");Ss(()=>{let{autoConnect:A,clientUrl:E,utmQueryParams:b,blockchain:v}=x();g&&f==="success"&&I({fromBlockchain:n?.name,fromToken:ys(a),toBlockchain:r?.name,toToken:ys(s),fromAmount:l,autoConnect:A??void 0,clientUrl:E??void 0,blockchain:v??void 0,liquiditySources:C?k.current:void 0,...b})},[t.pathname,l,n,a,r,s,C]),Ss(()=>{if(!g)return;let A=x();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&h(A.fromAmount),f==="success"){let E=d.find(P=>P.name===A.fromBlockchain),b=A.fromToken&&E?w(hs(A.fromToken,E)):void 0,v=d.find(P=>P.name===A.toBlockchain),B=A.toToken&&v?w(hs(A.toToken,v)):void 0;E&&(c(E),b&&p({token:b,meta:{blockchains:d}})),v&&(u(v),B&&m({token:B,meta:{blockchains:d}}))}},[f]),Ss(()=>{let{clientUrl:A,liquiditySources:E}=x();S("clientUrl",A||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(Ts,"useSyncUrlAndStore");import{i18n as mn}from"@lingui/core";import{Alert as Yk,Button as Zk,darkTheme as Jk,Divider as Zs,DoneIcon as Rk,styled as ev,TextField as tv,Typography as ov}from"@rango-dev/ui";import Qe,{useState as nv}from"react";import{useNavigate as rv,useSearchParams as iv}from"react-router-dom";import{ChevronRightIcon as NT,Divider as hm,Image as BT,Typography as ym}from"@rango-dev/ui";import vt from"react";import{darkTheme as mm,styled as ks}from"@rango-dev/ui";var dm=ks("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${mm} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${mm} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),fm=ks("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),gm=ks("div",{display:"flex"});function vs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return vt.createElement(fm,null,vt.createElement(ym,{size:"large",variant:"label"},n),vt.createElement(hm,{size:10}),vt.createElement(dm,{onClick:s?void 0:e,disabled:s},vt.createElement(gm,null,r&&vt.createElement(vt.Fragment,null,vt.createElement(BT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),vt.createElement(hm,{size:4,direction:"horizontal"})),vt.createElement(ym,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),vt.createElement(NT,{size:12,color:"black"})))}i(vs,"BlockchainSelectorButton");import{i18n as Is}from"@lingui/core";import{Button as PT,Divider as km,MessageBox as _T}from"@rango-dev/ui";import Rt,{useEffect as vm,useState as As}from"react";import{i18n as fi}from"@lingui/core";import{Divider as wo,ExternalLinkIcon as LT,Image as MT,Typography as ln}from"@rango-dev/ui";import ke from"react";var Sm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Cm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Cm,"generateExplorerLink");import{Button as WT,darkTheme as sn,styled as ws}from"@rango-dev/ui";var bs=ws("a",{textDecoration:"none",color:"$colors$neutral700",[`.${sn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${sn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${sn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${sn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Tm=ws("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${sn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${sn} &`]:{color:"$colors$neutral900"}}}),xs=ws(WT,{minHeight:"$40"});function Es(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,l=Cm(n.address,s),c=i(()=>window.open(Sm,"_blank"),"onClickLearnMore");return ke.createElement(J,{open:e,dismissible:!0,onClose:o,onExit:r,container:N()},ke.createElement(Tm,null,ke.createElement(MT,{src:n.image===""?Qr:n.image,size:45,type:"circular"}),ke.createElement(wo,{size:4}),ke.createElement(ln,{variant:"title",size:"medium"},n.symbol),ke.createElement(ln,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ke.createElement(wo,{size:4}),ke.createElement(ln,{variant:"body",size:"medium"},l?ke.createElement(bs,{hasHover:!0,href:l,target:"_blank",rel:"nofollow noreferrer"},n.address,ke.createElement(LT,{size:12,color:"gray"})):ke.createElement(bs,null,n.address)),ke.createElement(wo,{size:4}),n.coinSource&&ke.createElement(ln,{className:"_coin-source",variant:"body",size:"xsmall"},fi.t("via")," ",ke.createElement(ln,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ke.createElement(wo,{size:"32"}),ke.createElement(ln,{size:"medium",variant:"body",className:"_custom-token-description"},fi.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),ke.createElement(wo,{size:40}),ke.createElement(wo,{size:10}),ke.createElement(xs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},fi.t("Import Anyway")),ke.createElement(wo,{size:10}),ke.createElement(xs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:c},fi.t("Learn More")))}i(Es,"CustomTokenModal");function Gn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:l,onExitErrorModal:c,onExitImportModal:u}=t,{setCustomToken:p}=y(),[m,h]=As(!1),[f,d]=As(!1),[g,S]=As(!1),T=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),h(!1)},"closeErrorModal"),k=i(()=>{S(!0),C()},"handleErrorModalButtonClick"),w=i(()=>{g&&n?.type==="network-error"&&(S(!1),T()),c()},"handleExit"),x=i(()=>{e&&(p(e),l())},"handleSubmit");return vm(()=>{n&&h(!0)},[n]),vm(()=>{o&&e&&d(!0)},[o,e]),Rt.createElement(Rt.Fragment,null,Rt.createElement(J,{open:m,dismissible:!0,onClose:C,onExit:w,container:N()},Rt.createElement(_T,{title:n?.title??"",type:"error",description:n?.message||Is.t("Failed Network, Please retry.")},Rt.createElement(km,{size:40}),Rt.createElement(km,{size:10}),Rt.createElement(PT,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?Is.t("Retry"):Is.t("Add another custom token")))),o&&e&&Rt.createElement(Es,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>d(!1),open:f,onExit:u}))}i(Gn,"ImportCustomToken");import{useManager as qk}from"@rango-dev/queue-manager-react";import{BottomLogo as Gk,Divider as Rm,Header as Vk}from"@rango-dev/ui";import Ae,{useEffect as ki,useLayoutEffect as Kk,useRef as ed,useState as td}from"react";import{useRef as DT}from"react";function Vn(){return window.self!==window.top}i(Vn,"isAppLoadedIntoIframe");function Ns(){let t=DT(null),{iframe:e}=y(),o=Vn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let c of l)n({type:"widget_height",data:{height:c.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ns,"useIframe");import{useNavigate as $T}from"react-router-dom";function He(){let t=$T();return()=>t(-1)}i(He,"useNavigateBack");import{useLayoutEffect as FT,useState as Kn}from"react";var wm=480,bm=768,xm=1024,Em=1200,OT=i(()=>{let[t,e]=Kn(!1),[o,n]=Kn(!1),[r,a]=Kn(!1),[s,l]=Kn(!1),[c,u]=Kn(!1),p=i(()=>{e(window.innerWidth<=wm),n(window.innerWidth>wm&&window.innerWidth<=bm),a(window.innerWidth>bm&&window.innerWidth<=xm),l(window.innerWidth>xm&&window.innerWidth<=Em),u(window.innerWidth>Em)},"handleResize");return FT(()=>(p(),window.addEventListener("resize",p),()=>window.removeEventListener("resize",p)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:c}},"useScreenDetect"),cn=OT;import{createTheme as Ds,darkTheme as RT,lightTheme as ek}from"@rango-dev/ui";import{useEffect as tk,useState as ok}from"react";import{theme as ZT,darkColors as JT}from"@rango-dev/ui";import Ps from"react";function UT(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(UT,"expandShortHexColor");function zT(t){return/[0-9]+$/.test(t)}i(zT,"isOverridingColor");function HT(t,e){return t.padStart(e,"0")}i(HT,"pad");function Bs(t){let e=Math.min(Math.max(Math.round(t),0),255);return HT(e.toString(16),2)}i(Bs,"intToHex");function QT(t){return`#${Bs(t.red)}${Bs(t.green)}${Bs(t.blue)}`}i(QT,"rgbToHex");function qT(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(qT,"hexToRGB");function GT(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(GT,"generateShade");function VT(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(VT,"generateTint");function KT(t){return Im(t,GT)}i(KT,"calculateShades");function jT(t){return Im(t,VT)}i(jT,"calculateTints");function Im(t,e){let o=qT(t),n=[];for(let r=1;r<9;r++)n.push(QT(e(o,r)));return n}i(Im,"calculateColors");function Ws(t,e,o){let a=jT(t).reverse().concat(t),s=KT(t),l=a.concat(s),c={},u=l.length;for(let p=0;p<u;p++){let m=100+(o?u-1-p:p)*50;c[`${e}${m}`]=l[p]}return c}i(Ws,"createTintsAndShades");function Ls(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!zT(r)){let c=UT(a);Object.assign(n,Ws(c,r,s))}}return{...n,...e}}i(Ls,"expandToGenerateThemeColors");var Am=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),XT=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Am(o%52)+e;return Am(o%52)+e},"toAlphabeticName"),YT=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ms=i(t=>XT(YT(5381,JSON.stringify(t))>>>0),"toHash");function _s(t){let e=ZT.colors,o={...e,...JT},n,r;if(t?.light){let s={colors:Ls(e,t.light)};n={id:`${Fa}-light-${Ms(s)}`,tokens:s}}if(t?.dark){let s={colors:Ls(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Fa}-dark-${Ms(s)}`,tokens:s}}return{light:n,dark:r}}i(_s,"customizedThemeTokens");function Nm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ps.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ps.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ps.cloneElement(e,{key:l}))}}),o}i(Nm,"joinList");function Bm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Bm,"doesWindowPreferDarkColorScheme");function pn(t){let{colors:e,fontFamily:o=Zc,borderRadius:n=Pp,secondaryBorderRadius:r=_p}=t,[a,s]=ok(Bm()?"dark":"light"),{theme:l}=y(),{dark:c,light:u}=_s(e),p=Ds({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[p.className,ek.className],h=[p.className,RT.className];if(u){let d=Ds(u.id,u.tokens);m.push(d.className)}if(c){let d=Ds(c.id,c.tokens);h.push(d.className)}return tk(()=>{let d=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return Bm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",d),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",d)}},[]),{activeTheme:i(()=>{let d=m.join(" "),g=h.join(" ");return l==="auto"?a==="dark"?g:d:l==="dark"?g:d},"getActiveTheme"),mode:l==="auto"?a:l}}i(pn,"useTheme");var yt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Wm}from"@lingui/core";import{Alert as nk,Button as rk}from"@rango-dev/ui";import Lm from"react";function $s(t){return Lm.createElement(nk,{action:Lm.createElement(rk,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Wm.t("Activate this tab")),type:"warning",variant:"alarm",title:Wm.t("Another tab is open and handles transactions.")})}i($s,"ActivateTabAlert");import{i18n as Fs}from"@lingui/core";import{Button as ik,Divider as ak,MessageBox as sk}from"@rango-dev/ui";import gi from"react";function Os(t){let{open:e,onClose:o,onConfirm:n}=t;return gi.createElement(J,{open:e,dismissible:!0,onClose:o,container:N()},gi.createElement(sk,{title:Fs.t("Activate current tab"),type:"warning",description:Fs.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},gi.createElement(ak,{size:20}),gi.createElement(ik,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Fs.t("Confirm"))))}i(Os,"ActivateTabModal");import{ChevronLeftIcon as pk}from"@rango-dev/ui";import Um from"react";import{css as lk,darkTheme as Mm,IconButton as ck,styled as bo}from"@rango-dev/ui";var Bt=bo(ck,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Mm} &`]:{backgroundColor:"$neutral"}}}),Pm=bo("div",{position:"absolute",background:"$secondary500",[`.${Mm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),eo=bo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),_m=bo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),Dm=bo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),$m=bo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Fm=lk({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Om=bo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Us(t){return Um.createElement(Bt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Um.createElement(pk,{color:"black",size:16}))}i(Us,"BackButton");import{i18n as uk}from"@lingui/core";import{Button as mk,Typography as dk}from"@rango-dev/ui";import zs from"react";function Hs(t){return zs.createElement(eo,null,zs.createElement(mk,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},zs.createElement(dk,{variant:"label",size:"medium",color:"error500"},uk.t("Cancel"))))}i(Hs,"CancelButton");import{i18n as fk}from"@lingui/core";import{Image as gk,Tooltip as hk,WalletIcon as yk}from"@rango-dev/ui";import xo from"react";function Qs(t){let{list:e}=Ct(),o=e.filter(r=>r.state==="connected"),n=o.length?xo.createElement("div",{className:Fm()},o.map(r=>xo.createElement(Om,{key:r.title},xo.createElement(gk,{src:r.image,size:14})))):fk.t("Connect Wallet");return xo.createElement(hk,{container:t.container,side:"bottom",content:n},xo.createElement(Bt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&xo.createElement(Pm,null),xo.createElement(yk,{size:18,color:"black"})))}i(Qs,"WalletButton");import{i18n as yi}from"@lingui/core";import{NotificationsIcon as Mk,Popover as Pk,SettingsIcon as _k,Tooltip as Si,TransactionIcon as Dk}from"@rango-dev/ui";import Me from"react";import{Notifications as kk}from"@rango-dev/ui";import vk from"react";import{useNavigate as wk}from"react-router-dom";import{create as Sk}from"zustand";import{persist as Ck,subscribeWithSelector as Tk}from"zustand/middleware";var Ie=Vo(Sk()(Ck(Tk((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(c=>c.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(c=>c.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function qs(){let t=wk(),{getNotifications:e,clearNotifications:o}=Ie(),n=e(),r=y().blockchains(),{findToken:a}=y();return vk.createElement(kk,{list:n,getBlockchainImage:l=>Ip(l,r),getTokenImage:l=>a(l)?.image,onClickItem:i(l=>{t(`${F.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(qs,"NotificationContent");import{useManager as bk}from"@rango-dev/queue-manager-react";import{InProgressIcon as xk}from"@rango-dev/ui";import zm from"react";var Ek=i(()=>{let{manager:t}=bk();return yt(t).map(({swap:o})=>o).find(o=>o.status==="running")?zm.createElement($m,null,zm.createElement(xk,{color:"info",size:6})):null},"InProgressTransactionBadge"),Hm=Ek;import{EventSeverity as Ik}from"@rango-dev/queue-manager-rango-preset";import{Typography as Ak}from"@rango-dev/ui";import Qm from"react";function qm(){let{getNotifications:t}=Ie(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Ik.WARNING);return o?Qm.createElement(_m,{isSever:n},Qm.createElement(Ak,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(qm,"NotificationsBadge");import{RefreshProgressButton as Nk}from"@rango-dev/ui";import Gs,{useEffect as Bk,useState as Gm}from"react";var Wk=1e3,Vm=60,Lk=100;function hi({onClick:t}){let[e,o]=Gm(0),[n,r]=Gm(!1),a=i(c=>{document.hidden&&c&&s(c)},"handleVisibilityChange");Bk(()=>{let c;return t?c=window.setInterval(()=>{o(u=>u+1),e===Vm&&l()},Wk):s(c),document.addEventListener("visibilitychange",()=>a(c)),()=>{document.removeEventListener("visibilitychange",()=>a(c)),c&&clearInterval(c)}},[e,t]);let s=i(c=>{c&&clearInterval(c),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return Gs.createElement(Bt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Gs.createElement(Dm,{onTransitionEnd:()=>r(!1),isRefetched:n},Gs.createElement(Nk,{size:22,color:t?"black":"gray",progress:e/Vm*Lk})))}i(hi,"RefreshButton");function Eo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ze("notification",s)||r.includes("notifications");return Me.createElement(Me.Fragment,null,!r.includes("refresh")&&Me.createElement(Si,{container:a||N(),side:"top",content:yi.t("Refresh")},Me.createElement(hi,{onClick:e})),!l&&Me.createElement(Pk,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Me.createElement(qs,null)},Me.createElement("div",null,Me.createElement(Si,{container:N(),side:"top",content:yi.t("Notifications")},Me.createElement(Bt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Me.createElement(Mk,{size:18,color:"black"}),Me.createElement(qm,null))))),!r.includes("settings")&&Me.createElement(Si,{container:N(),side:"top",content:yi.t("Settings")},Me.createElement(Bt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Me.createElement(_k,{size:18,color:"black"}))),!r.includes("history")&&Me.createElement(Si,{container:N(),side:"top",content:yi.t("History")},Me.createElement(Bt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Me.createElement(Dk,{size:18,color:"black"}),Me.createElement(Hm,null))))}i(Eo,"HeaderButtons");import{i18n as Vs}from"@lingui/core";import{Divider as jm,MessageBox as Ok,RefreshIcon as Uk}from"@rango-dev/ui";import un from"react";import{Button as $k,styled as Fk}from"@rango-dev/ui";var Km=Fk($k,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Ks(t){let{open:e,onClose:o}=t;return un.createElement(J,{open:e,dismissible:!0,onClose:o,container:N()},un.createElement(Ok,{title:Vs.t("Something went wrong"),type:"error",description:Vs.t("Something went wrong. Please refresh the app.")},un.createElement(jm,{size:30}),un.createElement(Km,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},un.createElement(Uk,{size:20,color:"primary"}),un.createElement(jm,{size:4,direction:"horizontal"}),Vs.t("Refresh"))))}i(Ks,"RefreshModal");function js(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(js,"onScrollContentAttachStatusToContainer");import{css as Hk,styled as Ci}from"@rango-dev/ui";var Ti=Hk({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Xm=Ci("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Ym=Ci("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Zm=Ci("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}}),Jm=Ci("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function re(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ns(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:c,config:{__UNSTABLE_OR_INTERNAL__:u}}=y(),[p,m]=td(!1),{config:{features:h,theme:f}}=y(),{watermark:d,setShowCompactTokenSelector:g}=te(),S=d==="FULL",{activeTheme:T}=pn(f||{}),[C,k]=td(!1),w=Ze("connectWalletButton",h),{isActiveTab:x,tabManagerInitiated:I,showActivateTabModal:A,setShowActivateTabModal:E,activateCurrentTab:b}=te(),v=He(),{manager:B}=qk(),{isTablet:P,isMobile:_}=cn(),ee=yt(B).map(({swap:R})=>R).some(R=>R.status==="running"),j=i(()=>b(Co.forceClaim,ee),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),X=typeof r.hasBackButton>"u"||r.hasBackButton,se=ed(null),z=ed(null);return ki(()=>{let R=(u?.swapBoxBanner?.routes?.length??0)===0,le=!!u?.swapBoxBanner?.routes?.some(me=>location.pathname.endsWith(me));k(!!u?.swapBoxBanner&&(R||le))},[u?.swapBoxBanner?.routes?.toString(),location.pathname]),ki(()=>(Vn()&&z.current&&e(z.current),()=>{o()}),[]),ki(()=>(se.current?.addEventListener("scroll",js),()=>{se.current?.removeEventListener("scroll",js)}),[]),ki(()=>{m(l==="failed")},[l]),Kk(()=>{let R=s==="auto"||!z.current||Vn(),le=_||P,me=i(()=>{R||(le?z.current.style.height=`${window.innerHeight-z.current.offsetTop}px`:z.current.style.height=`${700}px`,g(parseFloat(z.current.style.height)<640))},"handler");return me(),window.addEventListener("resize",me),()=>window.removeEventListener("resize",me)},[s,_,P]),Ae.createElement(Xm,{height:s,id:Ue.SWAP_BOX_ID,className:`${T()} ${Ti()}`,ref:z,showBanner:C},Ae.createElement(Vk,{prefix:X?Ae.createElement(Us,{onClick:()=>{v(),r.onBack?.()}}):null,title:r.title,suffix:Ae.createElement(Ae.Fragment,null,r.suffix,r.onWallet&&!w&&Ae.createElement(Qs,{container:N(),onClick:L,isConnected:!!c?.length}),r.onCancel&&Ae.createElement(Hs,{onClick:r.onCancel}))}),Ae.createElement(Ym,{ref:se},n),Ae.createElement(Os,{open:A,onClose:()=>E(!1),onConfirm:j}),Ae.createElement(Zm,null,Ae.createElement("div",{className:"footer__content"},I&&!x&&Ae.createElement("div",{className:"footer__alert"},Ae.createElement($s,{onActivateTab:j}),Ae.createElement(Rm,{size:10})),a),Ae.createElement(Rm,{size:12}),Ae.createElement("div",{className:`footer__logo ${S?"logo__show":"logo__hidden"}`},Ae.createElement(Gk,null))),C&&Ae.createElement(Jm,null,u?.swapBoxBanner?.element),Ae.createElement(Ks,{open:p,onClose:()=>m(!1)}))}i(re,"Layout");import{styled as jk}from"@rango-dev/ui";var od="$20 $20 $10 $20",Xs=jk("div",{padding:od,overflowY:"auto",flexGrow:1});import{styled as Xk}from"@rango-dev/ui";var ie=Xk("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as to}from"@lingui/core";import{useState as Ys}from"react";function nd(){let[t,e]=Ys(!1),[o,n]=Ys(null),[r,a]=Ys(null),{findToken:s}=y(),l=y().customTokens(),c=i(()=>{a(null),e(!1),n(null)},"resetState");function u(m,h){switch(m){case"duplicated":return{type:m,title:to.t("Duplicate Token"),message:to.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:to.t("Token Already Exists"),message:to.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:m,title:to.t("Token Not Found"),message:to.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:h}})};case"network-error":return{type:m,title:to.t("Network error"),message:to.t("An error occurred while retrieving token data.")}}}return i(u,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:m,tokenAddress:h})=>{e(!0);try{if(l.some(T=>T.address?.toLowerCase()===h.toLowerCase())){let T=u("duplicated");n(T);return}let d=await rt().getCustomToken({blockchain:m,address:h});if(!d||!d.token||d.error){let T=u("not-found",m);n(T);return}let g=d.token;if(s({blockchain:g.blockchain,address:g.address,symbol:g.symbol})){let T=u("token-exist");n(T);return}return a({...g,warning:!0})}catch(f){if(f.code==="ERR_BAD_REQUEST"){let d=u("not-found",m);n(d);return}n(u("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:c}}i(nd,"useFetchCustomToken");var av=ev("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Jk} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function rd(){let t=rv(),[e]=iv(),o=He(),n=y().blockchains(),r=e.get("blockchain")||"",a=So(r,n),[s,l]=nv(""),{fetchCustomToken:c,token:u,loading:p,error:m,resetState:h}=nd(),f=!!a&&Ho(a,s),d=!a||!s||!f,g=i(()=>{a&&c({blockchain:r,tokenAddress:s})},"getCustomToken");return Qe.createElement(re,{header:{title:mn.t("Add Custom Token")}},Qe.createElement(ie,null,Qe.createElement(av,null,Qe.createElement("div",null,Qe.createElement(vs,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:mn.t("Select chain"),placeholder:mn.t("Select chain")}),Qe.createElement(Zs,{size:"24"}),Qe.createElement(ov,{size:"large",variant:"label"},mn.t("Enter Address")),Qe.createElement(Zs,{size:10}),Qe.createElement(tv,{fullWidth:!0,disabled:!a,variant:"contained",placeholder:mn.t("Enter token address"),size:"large",value:s,suffix:!!s&&f&&Qe.createElement(Rk,{color:"success",size:12}),onChange:S=>l(S.target.value)}),!f&&!!s&&Qe.createElement(Qe.Fragment,null,Qe.createElement(Zs,{size:4}),Qe.createElement(Yk,{type:"error",variant:"alarm",title:"Invalid Address"}))),Qe.createElement(Zk,{id:"widget-add-custom-token-import-btn",disabled:d,type:"primary",variant:"contained",loading:p,size:"large",onClick:g},mn.t("Import"))),Qe.createElement(Gn,{token:u,blockchain:a??void 0,address:s,error:m??void 0,fetchCustomToken:c,onCloseErrorModal:()=>{m?.type!=="network-error"&&l("")},onImport:o,onExitErrorModal:h,onExitImportModal:h})))}i(rd,"AddCustomTokenPage");import{i18n as Il}from"@lingui/core";import{useManager as Hw}from"@rango-dev/queue-manager-react";import{Alert as Qw,Button as qw,css as Nl,Divider as Al,IconButton as Kf,styled as Gw,Typography as Vw,WalletIcon as Kw}from"@rango-dev/ui";import _e,{useEffect as Xi,useLayoutEffect as jw,useRef as Xw,useState as ar}from"react";import{useNavigate as Yw}from"react-router-dom";import{i18n as Io}from"@lingui/core";import{Alert as Lv,BalanceErrors as Mv,Button as Bd,ChevronLeftIcon as Pv,Divider as il,MessageBox as _v,Typography as al}from"@rango-dev/ui";import ne,{useCallback as Dv,useEffect as Wd,useMemo as $v,useState as gn}from"react";import{useNavigate as Fv}from"react-router-dom";import{i18n as tl}from"@lingui/core";import{Alert as uv,ChevronDownIcon as mv,CloseIcon as dv,Divider as ud,IconButton as md,PasteIcon as fv,Typography as gv,WalletIcon as hv}from"@rango-dev/ui";import Pe,{useEffect as yv,useRef as Sv}from"react";import xi,{useRef as cv}from"react";import*as dn from"@radix-ui/react-collapsible";import{keyframes as id,styled as vi}from"@rango-dev/ui";var Js=300,sv=id({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),lv=id({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),ad=vi(dn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Rs=vi(dn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),wi=vi(dn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${sv} ${Js}ms ease-out`},false:{animation:`${lv} ${Js}ms ease-out`}}}}),bi=vi("div",{transition:`all ${Js}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Ei(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,c=cv(null);return xi.createElement(ad,{ref:c,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&xi.createElement(Rs,{className:"collapsible_trigger",onClick:a},s),xi.createElement(wi,{className:"collapsible_content",open:e},r),l==="bottom"&&xi.createElement(Rs,{className:"collapsible_trigger",onClick:a},s))}i(Ei,"CustomCollapsible");import{darkTheme as sd,styled as el,TextField as pv}from"@rango-dev/ui";var ld=el("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),cd=el(pv,{backgroundColor:"$neutral100",padding:"$15"}),pd=el("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${sd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${sd} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function dd(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=y(),l=y().blockchains(),c=Ur(e.name,l),u=Sv(null),p=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!Ho(e,r),d=i(()=>{a("")},"handleClear"),g=i(async T=>{if(T.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),u?.current?.focus()}},"handlePaste"),S=i(()=>r?Pe.createElement(md,{id:"widget-custom-destination-close-icon-btn",onClick:d,variant:"ghost"},Pe.createElement(dv,{size:12,color:"gray"})):m?null:Pe.createElement(md,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Pe.createElement(fv,{size:16})),"renderSuffix");return yv(()=>{!!p&&r===null&&(a(p),o(!0))},[p]),Pe.createElement(ld,null,Pe.createElement(Ei,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Pe.createElement(pd,null,Pe.createElement("div",{className:"button__content"},Pe.createElement(hv,{size:18,color:"info"}),Pe.createElement(ud,{size:4,direction:"horizontal"}),Pe.createElement(gv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},tl.t("Send to a different address"))),Pe.createElement(bi,{orientation:n?"up":"down"},Pe.createElement(mv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Pe.createElement(cd,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:tl.t("Enter {blockchainName} address",{blockchainName:c}),value:r||"",suffix:S(),onChange:T=>{let C=T.target.value;a(C)}})),f&&Pe.createElement(Pe.Fragment,null,Pe.createElement(ud,{size:4}),Pe.createElement(uv,{variant:"alarm",type:"error",title:tl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(dd,"CustomDestination");import{css as Cv,IconButton as Tv,SelectableWalletButton as kv,styled as oo}from"@rango-dev/ui";var fd=oo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),gd=oo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),hd=oo(kv,{justifyContent:"center"}),yd=oo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Sd=oo(Tv,{position:"absolute",left:"$20"}),Cd=oo("div",{paddingTop:"$20"}),Td=Cv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),kd=oo("div",{display:"flex"}),vd=oo("div",{overflow:"visible",width:"100%"});import{i18n as nl}from"@lingui/core";import{warn as Ev}from"@rango-dev/logging-core";import{Divider as Iv,makeInfo as Av,SelectableWallet as Nv,Typography as Ad,WalletState as Ii}from"@rango-dev/ui";import Re,{useEffect as Nd,useState as Yn}from"react";import{Image as bv,MessageBox as xv}from"@rango-dev/ui";import Xn from"react";import{keyframes as vv,styled as ol}from"@rango-dev/ui";var wd=ol("div",{position:"relative"}),wv=vv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),bd=ol("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${wv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),xd=ol("div",{"& img":{borderRadius:"50%"}});import{i18n as fn}from"@lingui/core";function Ed(t,e){switch(t){case"in-progress":return{type:"loading",title:fn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:fn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:fn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:fn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:fn.t("Request Rejected"),description:fn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(Ed,"generateMessageByStatus");function Id(t){let{status:e,displayName:o,image:n}=t,r=Ed(e,o),a=e=="in-progress";return Xn.createElement(xv,{type:r.type,title:r.title,description:r.description,icon:a?Xn.createElement(wd,null,Xn.createElement(xd,null,Xn.createElement(bv,{src:n,size:45})),Xn.createElement(bd,null)):void 0})}i(Id,"ExperimentalChainStatus");var Bv=7,Wv=3e3;function rl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,l=te.use.isActiveTab(),{blockchains:c,connectedWallets:u}=y(),[p,m]=Yn(),[h,f]=Yn(null),[d,g]=Yn(!1),[S,T]=Yn(null),{suggestAndConnect:C}=Ai(),{list:k}=Ct({chain:e}),[w,x]=Yn(k),I=k.length,A=a&&I-a>0,E=i(async v=>{g(!1),T("in-progress");try{await C(v.walletType,v.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain");Nd(()=>{x(v=>{let B=k.findIndex(P=>n(P.type,e));return A&&B>1?[k[B]].concat(k.filter((P,_)=>_!==B)):v.map(P=>k.find(_=>_.type===P.type)??P)})},[JSON.stringify(k)]);let b=document.getElementById(Ue.SWAP_BOX_ID);return Nd(()=>{let v=null;return(S==="completed"||S==="rejected")&&(v=setTimeout(()=>T(null),Wv)),()=>{v&&clearTimeout(v)}},[S]),Re.createElement(Re.Fragment,null,w.slice(0,a).map(v=>{let B=dp({connectedWallets:u,walletType:v.type,chain:e}),P=v.state===Ii.CONNECTED,_=B?Oo(B,Bv):"",V=(P&&v.isHub||!!v.needsNamespace)&&!_,ee=$r(c(),e),j=!u.find(me=>me.walletType===v.type&&me.chain===e),L=ee&&j&&v.state===Ii.CONNECTED,X=i(async()=>{v.state===Ii.DISCONNECTED||V?m(v):L?(f({walletType:v.type,chain:e,address:B??""}),g(!0)):r({walletType:v.type,chain:e,address:B??""})},"onSelectableWalletClick"),se=Av(v.state),z=i(()=>L?nl.t({id:"Add {chain} chain",values:{chain:e}}):V?nl.t("Chain not connected"):_||se.description,"getWalletDescription"),R=i(()=>v.state===Ii.CONNECTED?V?"neutral600":"neutral700":se.color,"getWalletDescriptionColor"),le=h?.chain?Ur(h.chain,c()):void 0;return Re.createElement(Re.Fragment,{key:`${v.title}_${le}`},!!h&&Re.createElement(J,{open:!!h&&d,container:b,onClose:()=>{f(null)}},Re.createElement(ls,{displayName:le,onConfirm:()=>{E(h)}})),S&&Re.createElement(J,{open:!!S,onClose:T.bind(null,null),container:b},Re.createElement(Id,{status:S,displayName:le,image:v.image}),Re.createElement(Iv,{direction:"vertical",size:32})),Re.createElement(Nv,{key:v.type,description:z(),descriptionColor:R(),onClick:X,selected:n(v.type,e),disabled:!l,...v}))}),Re.createElement(ko,{wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{m(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):Ev(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&Re.createElement(hd,{selected:!1,onClick:s},Re.createElement(Ad,{variant:"label",size:"medium"},nl.t("Show more wallets"),Re.createElement(Ad,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(rl,"WalletList");var Ov=2;function Ld(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Fv(),l=y().blockchains(),{selectedQuote:c,setSelectedWallets:u,quoteWalletsConfirmed:p,setQuoteWalletConfirmed:m,customDestination:h,setCustomDestination:f}=O(),{config:d,connectedWallets:g,setWalletsAsSelected:S}=y(),[T,C]=gn(""),[k,w]=gn([]),[x,I]=gn(""),[A,E]=gn(!!h),b=$v(()=>yo({filter:"all",quote:c}),[c]),v=yo({filter:"required",quote:c}),B=l.find(D=>D.name===c?.swaps[c?.swaps.length-1].to.blockchain),P=i(D=>v.includes(D),"isWalletRequiredFor"),_=Dv(()=>g.filter(D=>D.selected&&b.includes(D.chain)),[g,b]),[V,ee]=gn(_()),[j,L]=gn([]),X=i((D,q)=>L(K=>K.concat({blockchain:D,walletType:q})),"addNextSelectedWallets"),se=k.length>0,z=i((D,q)=>!!V.find(K=>K.walletType===D&&K.chain===q&&K.selected&&(P(q)||!P(q)&&!h)),"isSelected"),R=i((D,q,K)=>{let Se=!1;return D.map(de=>{if(de.chain===q){let Fe=de.selected;return!Se&&K?(Se=!0,Fe=!0):K||(Fe=!1),{...de,selected:Fe}}return de})},"updateSelectableWallets"),le=i(D=>{E(D),D?P(B?.name??"")||ee(q=>R(q,B?.name||"",!1)):(f(""),ee(q=>R(q,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),me=i(D=>{if(T&&C(""),z(D.walletType,D.chain))return;let K=g.find(Se=>Se.walletType===D.walletType&&Se.chain===D.chain);K&&(n(),D.chain===B?.name&&A&&!P(B.name)&&(E(!1),f(null)),ee(Se=>Se.filter(de=>de.chain!==D.chain).concat({...K,selected:!0})))},"onChange"),ce=i(()=>{let D=V.filter(q=>q.selected);S(D),u(D),m(!0),o()},"onConfirmBalance"),mt=i(async()=>{w([]),I("");let D=await r?.({selectedWallets:V.filter(K=>K.selected),customDestination:h}),q=D.warnings;q?.balance?.messages&&w(q.balance.messages),D.error&&I(Mu(D.error)),!D.error&&!q?.balance?.messages.length?ce():w(q?.balance?.messages??[])},"onConfirmWallets");Wd(()=>{ee(D=>{let q=[];return D.forEach(K=>{!g.some(de=>de.chain===K.chain&&de.walletType===K.walletType&&de.address===K.address)||q.push(K)}),q=q.concat(g.filter(K=>!!!q.find(de=>de.chain===K.chain)&&K.selected&&b.includes(K.chain))),q})},[g,b]),Wd(()=>{let D=[];j.length>0&&(j.forEach(q=>{let K=g.find(Se=>Se.chain===q.blockchain&&Se.walletType===q.walletType);K?me(K):D.push(q)}),L(D))},[g,j]);let G=document.getElementById(Ue.SWAP_BOX_ID);return ne.createElement(J,{open:e,onClose:()=>{p||s("../",{replace:!0}),o()},dismissible:!T,container:G,...!T&&{styles:{container:{height:"100%"}},footer:ne.createElement(kd,null,ne.createElement(Bd,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:lm(a,A,h,c,V,B),onClick:mt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Io.t("Confirm")))},...T&&{styles:{container:{height:"100%",padding:"$0"}},header:ne.createElement(yd,null,ne.createElement(Sd,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ne.createElement(Pv,{size:16})),ne.createElement(al,{variant:"headline",size:"small"},Io.t({id:"Your {blockchainName} wallets",values:{blockchainName:dt(T,l)}})))},anchor:"center"},ne.createElement(J,{open:se,onClose:w.bind(null,[]),container:G},ne.createElement(_v,{title:Io.t("Insufficient account balance"),type:"error",description:ne.createElement(Mv,{messages:k??[]})},ne.createElement(Bd,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ce},Io.t("Proceed anyway")))),T&&ne.createElement(Cd,null,ne.createElement("div",{className:Td()},ne.createElement(rl,{chain:T,quoteChains:b,isSelected:z,selectWallet:me,onShowMore:()=>C(T),onConnect:D=>{X(T,D)}}))),!T&&ne.createElement(ne.Fragment,null,x&&ne.createElement(ne.Fragment,null,ne.createElement(Lv,{variant:"alarm",type:"error",title:Io.t(x)}),ne.createElement(il,{size:12})),ne.createElement(vd,null,b.map((D,q)=>{let K=l.find(Ye=>Ye.name===D),Se=`wallet-${q}`,de=q===b.length-1,Fe=de&&B&&d?.customDestination!==!1;return ne.createElement("div",{key:Se},ne.createElement(fd,null,ne.createElement(al,{variant:"title",size:"xmedium"},Io.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),ne.createElement(al,{variant:"label",color:"$neutral700",size:"medium"},Io.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),ne.createElement(il,{size:24}),ne.createElement(gd,null,ne.createElement(rl,{chain:D,quoteChains:b,isSelected:z,selectWallet:me,limit:Ov,onShowMore:()=>C(K?.name??""),onConnect:Ye=>{X(D,Ye)}})),!de&&ne.createElement(il,{size:32}),Fe&&ne.createElement(dd,{blockchain:B,open:A,handleOpenChange:le}))}))))}i(Ld,"ConfirmWalletsModal");import{i18n as rw}from"@lingui/core";import{Alert as iw,Button as aw,InfoIcon as sw}from"@rango-dev/ui";import st from"react";import{Alert as Hv,Button as Qv,Divider as cl,NoRouteIcon as qv,RefreshIcon as Gv,Typography as Od}from"@rango-dev/ui";import at from"react";import{i18n as Md}from"@lingui/core";var Uv=24,zv=60;function Pd(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:Md.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Md.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(Pd,"makeInfo");var sl=(o=>(o[o.small=Uv]="small",o[o.large=zv]="large",o))(sl||{}),ll=(o=>(o.small="small",o.large="medium",o))(ll||{});import{styled as Ni}from"@rango-dev/ui";var _d=Ni("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Dd=Ni("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),$d=Ni("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Fd=Ni("div",{padding:"$6 $0"});function Zn(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Pd(o,r,()=>a(s,!0),e);return at.createElement(_d,null,at.createElement(qv,{size:sl[n],color:"gray"}),at.createElement(cl,{size:4}),at.createElement(Od,{variant:"title",size:ll[n]},oe().noResultError.title),n==="large"&&at.createElement(cl,{size:4}),!!l.description&&at.createElement(Dd,{size:n},at.createElement(Od,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),at.createElement(cl,{size:n==="large"?"24":"4"}),!!l.alert&&at.createElement($d,{size:n},at.createElement(Hv,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&at.createElement(Qv,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:at.createElement(Fd,null,at.createElement(Gv,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Zn,"NoResult");import{i18n as Jn}from"@lingui/core";import{Button as Kv,Divider as jv,MessageBox as Xv,Typography as Yv,WarningIcon as Zv}from"@rango-dev/ui";import zt from"react";import{Typography as Qd}from"@rango-dev/ui";import ul from"react";import{darkTheme as Vv,styled as Bi}from"@rango-dev/ui";var Ud=Bi("div",{width:"100%"}),pl=Bi("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),zd=Bi("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Vv} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Hd=Bi("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function qd(t){let{title:e,value:o,valueColor:n}=t;return ul.createElement(zd,null,ul.createElement(Qd,{size:"medium",variant:"label",className:"_title"},e),ul.createElement(Qd,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(qd,"QuoteErrorsModalItem");function Gd(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Jn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:Jn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:Jn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:Jn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return zt.createElement(J,{footer:zt.createElement(Kv,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:zt.createElement(Zv,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},zt.createElement(Xv,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),zt.createElement(pl,null,zt.createElement(jv,{size:"4"}),zt.createElement(Yv,{size:"small",variant:"title"},Jn.t("Details")),zt.createElement(pl,null,l.map((c,u)=>zt.createElement(qd,{key:u,...c})))))}i(Gd,"HighValueLossWarningModal");import{i18n as Wi}from"@lingui/core";function Vd(t,e){let o={alertType:"warning",title:"",action:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Wi.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o;if(t){switch(t.type){case 0:{Ut(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title;break}case 4:{o.title=Wi.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=oe().unknownPriceError.title;break}case 2:{o.title=Wi.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings";break}case 3:{o.title=Wi.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Vd,"makeAlerts");import{i18n as hn}from"@lingui/core";import{Button as Kd,Divider as jd,MessageBox as Jv,Typography as Rv}from"@rango-dev/ui";import Ao from"react";import{useNavigate as ew}from"react-router-dom";function Xd(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,c=ew(),u=e??o;return Ao.createElement(J,{anchor:"bottom",open:n,prefix:Ao.createElement(Kd,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>c("../"+F.settings)},Ao.createElement(Rv,{variant:"label",size:"medium",color:"$neutral900"},hn.t("Change settings"))),container:N(),onClose:r},Ao.createElement(Jv,{type:"warning",title:s.type===3?hn.t("High slippage"):hn.t("Low slippage"),description:s.type===3?hn.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):hn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},Ao.createElement(jd,{size:18}),Ao.createElement(jd,{size:32}),Ao.createElement(Kd,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},hn.t("Confirm anyway"))))}i(Xd,"SlippageWarningModal");import{Button as tw,MessageBox as ow,WarningIcon as nw}from"@rango-dev/ui";import Li from"react";function Yd(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Li.createElement(J,{footer:Li.createElement(tw,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Li.createElement(nw,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Li.createElement(ow,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Yd,"UnknownPriceWarningModal");function Rn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:c,onConfirmWarningModal:u,onChangeSettings:p}=t,m={confirmationDisabled:a,open:r,onClose:c,onConfirm:u},h=o?.type===0||o?.type===1,f=Vd(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),st.createElement(st.Fragment,null,h&&st.createElement(Zn,{error:o,fetch:s}),!!f&&st.createElement(Ud,null,st.createElement(iw,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:st.createElement(Hd,{onClick:l},st.createElement(sw,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:st.createElement(aw,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:p},rw.t("Change"))}})),e&&st.createElement(st.Fragment,null,e.type===0&&st.createElement(Gd,{...m,warning:e}),(e.type===3||e.type===2)&&st.createElement(Xd,{...m,warning:e}),e.type===1&&st.createElement(Yd,{...m,warning:e})))}i(Rn,"QuoteWarningsAndErrors");import Dw from"bignumber.js";import Gi from"react";import{i18n as No}from"@lingui/core";import{Alert as ww,Divider as Sn,FullExpandedQuote as bw,InfoIcon as xw,NumericTooltip as xf,QuoteTag as Ew,StepDetails as Iw,TokenAmount as Aw,Typography as Cn}from"@rango-dev/ui";import Tl from"bignumber.js";import U,{useRef as Nw,useState as Bw}from"react";import{styled as ml}from"@rango-dev/ui";var dl=ml("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Zd=ml("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Jd=ml("div",{width:"100%",display:"flex"});import*as Mi from"@radix-ui/react-collapsible";import{Button as lw,css as er,darkTheme as Ne,Image as Rd,styled as Ge,Typography as cw}from"@rango-dev/ui";var pw=300,ef=Ge(Mi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ne} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ne} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ne} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),tf=er({padding:"$10 $15"}),of=Ge(lw,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Ne} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Ne} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ne} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),nf=Ge("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Ne} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ne} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ne} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ne} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ne} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ne} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ne} &`]:{backgroundColor:"$neutral400"}}}}]}),rf=er({width:"100%",padding:"$15 $15 $10 $15"}),af=er({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),yn=er({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),sf=er({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ne} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lf=Ge(Mi.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:{[`& ${Rd}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Rd}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ne} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ne} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ne} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),cf=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),pf=Ge(wi,{width:"100%",background:"inherit"}),fl=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${pw}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),iz=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),uf=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ne} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),mf=Ge("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),gl=Ge(cw,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),df=Ge("div",{display:"flex",flexWrap:"wrap"}),hl=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ff=Ge("div",{display:"flex"}),Pi=Ge("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ne} &`]:{borderTopColor:"$neutral800"}});import{i18n as Wt}from"@lingui/core";import{ChevronDownIcon as mw,CloseIcon as dw,Divider as $i,IconButton as fw,NumericTooltip as gw,QuoteCost as hw,Typography as wt}from"@rango-dev/ui";import Y,{useState as Sf}from"react";import{css as uw,styled as _i}from"@rango-dev/ui";var Di=_i("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),yl=_i("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),gf=_i("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),hf=_i("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),yf=uw({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var yw=i(t=>t.fee.isZero()?null:Y.createElement(Di,null,Y.createElement(wt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(wt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Sl(t){let[e,o]=Sf(!1),[n,r]=Sf(!1),{steps:a,quote:s,fee:l,time:c,feeWarning:u,timeWarning:p,showModalFee:m,fullExpandedMode:h=!1}=t,f=s?.swaps??[],d=h?ho():N(),g=em(f);return Y.createElement(Y.Fragment,null,Y.createElement(hw,{onClickFee:m?S=>{S.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,timeWarning:p,time:c,steps:a,tooltipGas:m?Wt.t("View more info"):void 0,tooltipContainer:d}),Y.createElement(J,{container:d,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Y.createElement(hf,{style:{textAlign:h?"left":"center"}},Y.createElement(wt,{variant:"title",size:"medium"},Wt.t("Gas & Fee Explanation")),Y.createElement(fw,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(dw,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(gf,null,Y.createElement(wt,{variant:"title",size:"small"},Wt.t("Details")),Y.createElement($i,{size:10}),Object.entries(g.payable).flatMap(([S,T])=>T.map((C,k)=>{let w=`payable-fee-${k}`,x=gs(C);return Y.createElement(Di,{key:w},Y.createElement(wt,{variant:"label",size:"medium",color:"neutral600"},ps(S,Wt.t)),Y.createElement(gw,{content:C.amount,container:d},Y.createElement(wt,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(x,4,4),")")))})),Y.createElement(Di,{className:"total_payable_fee"},Y.createElement(wt,{variant:"label",size:"medium"},Wt.t("Total Payable Fee")),Y.createElement(wt,{variant:"label",size:"medium"},"$",M(l,4,4))),Y.createElement(yl,null),Object.keys(g.nonePayable).length&&Y.createElement(Ei,{triggerAnchor:"bottom",onClickTrigger:()=>r(S=>!S),trigger:Y.createElement("div",{className:yf()},Y.createElement(wt,{size:"small",variant:"body",color:"neutral700"},n?Wt.t("Hide non-payable fees"):Wt.t("Show non-payable fees")),Y.createElement($i,{size:4,direction:"horizontal"}),Y.createElement(bi,{orientation:n?"up":"down"},Y.createElement(mw,{size:12,color:"gray"}))),open:n},Y.createElement(wt,{size:"small",variant:"title"},Wt.t("Description")),Y.createElement($i,{size:4}),Y.createElement(wt,{size:"small",variant:"body",color:"neutral700"},Wt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),Y.createElement($i,{size:10}),Object.entries(g.nonePayable).map(([S,T],C)=>{let k=Ru(T),w=ps(S,Wt.t),x=`non-payable-fee-${C}`;return Y.createElement(yw,{key:x,fee:k,label:w})}),Y.createElement(yl,null)))))}i(Sl,"QuoteCostDetails");import{i18n as kf}from"@lingui/core";import{TokenAmount as vf}from"@rango-dev/ui";import Fi from"react";import{css as Sw,styled as Cw}from"@rango-dev/ui";var Cf=Cw("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Tf=Sw({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function tr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Fi.createElement(Cf,null,Fi.createElement(vf,{direction:"horizontal",label:kf.t("Swap input"),type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Fi.createElement("div",{className:Tf()}),Fi.createElement(vf,{direction:"horizontal",tooltipContainer:N(),label:kf.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(tr,"QuoteSummary");import{i18n as wf}from"@lingui/core";import{ChevronDownIcon as Tw,ChevronRightIcon as kw,Divider as Cl,Image as vw,Tooltip as Hi,Typography as Oi}from"@rango-dev/ui";import H from"react";var Ui=4,zi=6,or=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||N();return H.createElement(Hi,{container:l,side:"bottom",sideOffset:4,open:r,content:e},H.createElement(cf,{className:n,state:a},H.createElement(vw,{src:o,size:16})))},"ImageComponent");function bf(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,c=l||N(),u=r.length,p=Qu(r),{isTablet:m,isMobile:h}=cn();return H.createElement(lf,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(d=>!d)}},H.createElement("div",{className:yn()},H.createElement(Oi,{variant:"body",size:"xsmall"},wf.t("Via:")),H.createElement(Cl,{direction:"horizontal",size:4}),r.map((f,d)=>{let g=`item-${d}`,S=H.createElement(fl,null,H.createElement(kw,{size:12,color:"black"}));return h||m?H.createElement(H.Fragment,{key:g},H.createElement(or,{content:f.swapper.displayName,src:f.swapper.image??"",state:f.state,container:l}),d!==u-1&&H.createElement(H.Fragment,null,S)):H.createElement(H.Fragment,{key:g},u<=Ui||u>Ui&&d<Ui-1?H.createElement(H.Fragment,null,H.createElement(or,{content:f.swapper.displayName,src:f.swapper.image??"",state:f.state,container:l}),d!==u-1&&H.createElement(H.Fragment,null,S)):d===Ui-1&&H.createElement(Hi,{container:c,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:yn()},S,r.map((T,C)=>{let k=`image-${C}`;return C>=d&&H.createElement(H.Fragment,{key:k},H.createElement(or,{content:T.swapper.displayName,src:T.swapper.image??"",state:T.state,open:!1}),C!==u-1&&H.createElement(H.Fragment,null,S))}))},H.createElement(hl,{state:r.find((T,C)=>C>=d&&(T.state==="error"||T.state==="warning"))?.state},H.createElement(Oi,{size:"xsmall",variant:"body"},"+",u-d))))})),H.createElement("div",{className:yn()},H.createElement("div",{className:"blockchains_section"},H.createElement("div",{className:yn()},H.createElement(Oi,{variant:"body",size:"xsmall"},wf.t("Chains:")),H.createElement(Cl,{direction:"horizontal",size:4}),p.map((f,d)=>H.createElement(H.Fragment,{key:f.displayName},p.length<=zi||p.length>zi&&d<zi-1?H.createElement(Hi,{container:c,side:"bottom",content:f.displayName,sideOffset:4},H.createElement(or,{content:"",src:f.image??"",open:!1,className:d!==0?"blockchainImage":""})):d===zi-1&&H.createElement(Hi,{container:c,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:yn()},p.map((g,S)=>S>=d&&H.createElement(or,{key:g.displayName,content:"",src:g.image??"",open:!1,className:S>d?"blockchainImage":"",container:l})))},H.createElement(hl,{className:"blockchainImage"},H.createElement(Oi,{size:"xsmall",variant:"body"},"+",p.length-d))))),H.createElement(Cl,{direction:"horizontal",size:32}))),H.createElement(fl,{orientation:a?"up":"down"},H.createElement(Tw,{size:12,color:"black"}))))}i(bf,"QuoteTrigger");function kl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:c=!0,showModalFee:u=!0,onClickAllRoutes:p,fullExpandedMode:m=!1,container:h}=t,f=y().blockchains(),{findToken:d}=y(),g=y().swappers(),{customSlippage:S,slippage:T}=y(),C=S||T,[k,w]=Bw(t.expanded),x=Nw(null),I=M(o.value,6,6),A=M(n.value,6,6),E=n.usdValue?M(n.usdValue,4,4):"",b=Ot(o.usdValue,n.usdValue??null),v=M(b,2,2),B=Ut(b??0),P=i((ce,mt)=>ce.map((G,D)=>{let q,K=r?.type===3&&r.swap.swapperId===G.swapperId,Se=r?.type===4&&r.recommendedSlippages?.has(D),de=a?.type===2&&a.recommendedSlippages?.has(D),Fe=K||Se,Ye=de;Fe?q="error":Ye&&(q="warning");let we=Fe?No.t("Slippage Error"):No.t("Slippage Warning");return K&&(we=No.t("Bridge Limit Error")),{swapper:{displayName:Bn(G.swapperId,g)??"",image:G.swapperLogo},from:{token:{displayName:G.from.symbol,image:G.from.logo},chain:{displayName:dt(G.from.blockchain,f)??"",image:G.from.blockchainLogo},price:{value:D===0&&!mt?M(o.value,6,6):M(G.fromAmount,6,6),usdValue:M((G.from.usdPrice??0)*parseFloat(G.fromAmount),4,4),realValue:D===0?o.value:G.fromAmount,realUsdValue:new Tl(G.from.usdPrice??0).multipliedBy(G.fromAmount).toString()}},to:{token:{displayName:G.to.symbol,image:G.to.logo},chain:{displayName:dt(G.to.blockchain,f)||"",image:G.to.blockchainLogo},price:{value:M(G.toAmount,6,6),usdValue:M((G.to.usdPrice??0)*parseFloat(G.toAmount),4,4),realValue:G.toAmount,realUsdValue:new Tl(G.to.usdPrice??0).multipliedBy(G.toAmount).toString()}},state:q,alerts:Fe||Ye?U.createElement(Zd,{dense:m},U.createElement(ww,{variant:"alarm",type:Fe?"error":"warning",title:we,footer:U.createElement(Jd,null,K&&U.createElement("div",null,U.createElement(Cn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(Sn,{direction:"vertical",size:2}),U.createElement(Cn,{size:"xsmall",variant:"body",color:"neutral900"},No.t({id:"Yours: {amount} {symbol}",values:{amount:M(G.fromAmount,6,6),symbol:G?.from.symbol}}))),(Se||de)&&!K&&U.createElement("div",null,U.createElement(Cn,{size:"xsmall",variant:"body",color:"neutral900"},No.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(D)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(D)}}})),U.createElement(Sn,{direction:"vertical",size:2}),U.createElement(Cn,{size:"xsmall",variant:"body",color:"neutral900"},No.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:bn(G.estimatedTimeInSeconds),fee:M(fs(G,d),2,2),internalSwaps:G.internalSwaps?P(G.internalSwaps):void 0}}),"getQuoteSteps"),_=P(e?.swaps??[]),V=_.length,ee=h||N(),j=Gu(t.quote.tags||[]),L=!!p,X=Pr(e?.swaps),se=bn(X),z=ci(e?.swaps??[],d),R=M(z,2,2),le=z.gte(new Tl(_u)),me=X/$u>=Du;return m?U.createElement(bw,{selected:l,fee:R,time:se,tooltipContainer:ho(),steps:_,tags:j,quoteCost:U.createElement(Sl,{quote:e,fullExpandedMode:!0,time:se,fee:R,feeWarning:le,timeWarning:me,showModalFee:u,steps:V}),percentageChange:v,warningLevel:B,outputPrice:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(nf,{selected:l,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:rf()},!c&&j.length?U.createElement(U.Fragment,null,U.createElement(ff,null,j.map((ce,mt)=>{let G=`${ce.value}_${mt}`;return U.createElement(U.Fragment,{key:G},U.createElement(Ew,{label:ce.label,value:ce.value}),U.createElement(Sn,{size:4,direction:"horizontal"}))})),U.createElement(Pi,null),!L&&U.createElement(Sn,{size:4})):null,U.createElement("div",{id:"portal-root",className:af()},U.createElement(Sl,{quote:e,time:se,fee:R,feeWarning:le,timeWarning:me,showModalFee:u,steps:V}),L&&U.createElement(of,{onClick:ce=>{ce.stopPropagation(),p()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(Cn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},No.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:sf()},U.createElement(mf,null,U.createElement(xw,{size:12,color:"gray"})),U.createElement(df,null,U.createElement(gl,{size:"small",variant:"body"},`${I} ${_[0].from.token.displayName} = `),U.createElement(xf,{content:n.value,container:ee,open:n.value?void 0:!1},U.createElement(gl,{size:"small",variant:"body"},"\xA0",`${A} ${_[_.length-1].to.token.displayName}`))),U.createElement(xf,{content:n.usdValue,container:ee},U.createElement(Sn,{size:2,direction:"horizontal"}),U.createElement(Cn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(Aw,{tooltipContainer:ee,type:"output",direction:"vertical",price:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:_[V-1].to.token.displayName,image:_[V-1].to.token.image},chain:{image:_[V-1].to.chain.image},percentageChange:v,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(tr,{from:_[0].from,to:_[V-1].to,percentageChange:v,warningLevel:B}),U.createElement(Sn,{size:4}))),U.createElement(ef,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},U.createElement(bf,{type:s,quoteRef:x,selected:l,setExpanded:w,container:ee,expanded:k,steps:_}),U.createElement(pf,{open:k},U.createElement(uf,null),U.createElement("div",{className:tf()},_.map((ce,mt)=>{let G=`item-${mt}`;return U.createElement(Iw,{type:"quote-details",key:G,tooltipContainer:ee,step:ce,hasSeparator:mt!==_.length-1,state:ce.state})})))))}i(kl,"Quote");import{Divider as Pw,Skeleton as _w}from"@rango-dev/ui";import Qt from"react";import{darkTheme as Ww,styled as Qi}from"@rango-dev/ui";var Ef=Qi("div",{$$color:"$colors$neutral100",[`.${Ww} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),If=Qi("div",{paddingTop:"$2"}),Af=Qi("div",{paddingLeft:"$8"}),Nf=Qi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Of,Divider as bt,Skeleton as lt}from"@rango-dev/ui";import Q from"react";import{css as Lw,styled as Ht}from"@rango-dev/ui";var vl=Ht("div",{display:"flex"}),Bf=Ht("div",{padding:"$10 $0 $20"}),Wf=Ht("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Lf=Ht("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Mf=Ht("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Pf=Ht("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),_f=Ht("div",{width:"65%",display:"flex",justifyContent:"start"}),Df=Ht("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),$f=Ht("div",{padding:"$15 $0 $15 $0"}),Ff=Lw({display:"flex",justifyContent:"space-between",alignItems:"center"});function nr(t){let{type:e,tagHidden:o=!0}=t,n=Q.createElement(Mf,null,Q.createElement(_f,null,Q.createElement(Of,{loading:!0,size:"medium"}),Q.createElement(bt,{size:8,direction:"horizontal"}),Q.createElement(Df,null,Q.createElement(lt,{height:10,width:60,variant:"rounded"}),Q.createElement(bt,{size:4}),Q.createElement(lt,{height:15,variant:"rounded"}))),Q.createElement(lt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return Q.createElement("div",null,!o&&Q.createElement(Q.Fragment,null,Q.createElement(vl,null,Q.createElement(lt,{width:65,height:20,variant:"rounded"}),Q.createElement(bt,{size:4,direction:"horizontal"}),Q.createElement(lt,{width:65,height:20,variant:"rounded"}),Q.createElement(bt,{size:4,direction:"horizontal"}),Q.createElement(lt,{width:65,height:20,variant:"rounded"})),Q.createElement(Pi,null),!r&&Q.createElement(bt,{size:4})),Q.createElement("div",{className:Ff()},Q.createElement(vl,null,Q.createElement(lt,{width:60,height:10,variant:"rounded"}),Q.createElement(bt,{size:4,direction:"horizontal"}),Q.createElement(lt,{width:60,height:10,variant:"rounded"}),Q.createElement(bt,{size:4,direction:"horizontal"}),Q.createElement(lt,{width:60,height:10,variant:"rounded"})),r&&Q.createElement(lt,{width:85,height:24,variant:"rounded"})),e==="basic"&&Q.createElement(Bf,null,Q.createElement(lt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&Q.createElement(Wf,null,Q.createElement(Lf,null,Q.createElement(Of,{loading:!0,size:"medium"}),Q.createElement(bt,{direction:"horizontal",size:4}),Q.createElement(lt,{height:15,width:150,variant:"rounded"})),Q.createElement(bt,{size:10}),Q.createElement(lt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&Q.createElement(Q.Fragment,null,Q.createElement(bt,{size:4}),Q.createElement($f,null,n,Q.createElement(Pf,null),n),Q.createElement(bt,{size:12})))}i(nr,"QuoteSummarySkeleton");import{ChainToken as qf,Divider as bl,NextIcon as Mw,Skeleton as qi}from"@rango-dev/ui";import Be from"react";import{styled as rr}from"@rango-dev/ui";var Uf=rr("div",{display:"flex",alignItems:"start"}),zf=rr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),wl=rr("div",{display:"flex",alignItems:"center",flexGrow:1}),Hf=rr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Qf=rr("div",{display:"flex",alignItems:"center"});function Lt(t){let{separator:e=!0}=t;return Be.createElement(Be.Fragment,null,Be.createElement(Qf,null,Be.createElement(qi,{height:22,width:22,variant:"circular"}),Be.createElement(bl,{direction:"horizontal",size:8}),Be.createElement(qi,{height:15,width:148,variant:"rounded"})),Be.createElement(Uf,null,Be.createElement(Nf,{hideSeparator:!e}),Be.createElement(zf,{extraSpace:e},Be.createElement(wl,null,Be.createElement(qf,{size:"small",loading:!0}),Be.createElement(bl,{direction:"horizontal",size:8}),Be.createElement(qi,{height:12,variant:"rounded"})),Be.createElement(Hf,null,Be.createElement(Mw,{color:"gray",size:16})),Be.createElement(wl,null,Be.createElement(qf,{size:"small",loading:!0}),Be.createElement(bl,{direction:"horizontal",size:8}),Be.createElement(qi,{height:12,variant:"rounded"})))))}i(Lt,"StepSkeleton");function ir(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Qt.createElement(Ef,{expanded:o,rounded:e!=="basic"},Qt.createElement(nr,{type:e,tagHidden:n}),Qt.createElement(If,null,Qt.createElement(_w,{height:15,variant:"rounded"})),o&&Qt.createElement(Af,null,Qt.createElement(Pw,{size:24}),Qt.createElement(Lt,null),Qt.createElement(Lt,null),Qt.createElement(Lt,{separator:!1})))}i(ir,"QuoteSkeleton");function Bo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:c,showModalFee:u,selected:p,onClickAllRoutes:m,fullExpandedMode:h=!1,container:f}=t,{inputAmount:d,inputUsdValue:g}=O(),S=e?.outputAmount?new Dw(e?.outputAmount):null,T=e?ht(e):null,k=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Gi.createElement(dl,null,Gi.createElement(ir,{tagHidden:l,type:o,expanded:s})):k?Gi.createElement(dl,{onClick:()=>c?.(e)},Gi.createElement(kl,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:p,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:h,input:{value:d,usdValue:g?.toString()??""},output:{value:S?.toString()??"",usdValue:T?.toString()??""}})):null}i(Bo,"QuoteInfo");import{calculatePendingSwap as Uw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as zw}from"react";import{useRef as $w,useState as Fw}from"react";var Ow=2e3;function Vi({request:t}){let[e,o]=Fw(!1),n=$w(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(c=>setTimeout(c,Ow)),await s(l,!1)),"retryFetch"),s=i(async(l,c=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(c)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Vi,"useFetch");function Gf(){let{fetch:t,loading:e,cancelFetch:o}=Vi({request:async(n,r)=>await rt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Gf,"useFetchConfirmQuote");function Ki(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=xl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ki,"throwErrorIfResponseIsNotValid");function xl(t){if(Yu(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Zu(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=tm(t);if(o){let n=pi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(xl,"getQuoteError");function Vf(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,l={quote:null,balance:null},c=rn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});c&&(l.quote=c);let u=rm(e,r,n.blockchains);return u.length===0||(l.balance={messages:u}),l}i(Vf,"generateWarnings");function ji(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1},warnings:null}}i(ji,"handleQuoteErrors");function El(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:l}=O(),{slippage:c,customSlippage:u}=y(),p=y().getDisabledLiquiditySources(),m=y().blockchains(),h=y().tokens(),{findToken:f}=y(),d=u||c,{fetch:g,cancelFetch:S,loading:T}=Gf();return zw(()=>S,[]),{loading:T,fetch:i(async k=>{let w=k.selectedWallets,x=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=w.reduce((E,b)=>(E[b.chain]=b.address,E),{}),A={requestId:a?.requestId||"",selectedWallets:I,destination:x||void 0};try{return await g(A,!0).then(E=>{let{result:b}=E;if(!b)throw new Error("Error fetching updated route");Ki({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let v={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(v);let B={slippage:d.toString(),disabledSwappersGroups:p},P=Vf({previousQuote:a??void 0,currentQuote:v,meta:{blockchains:m},selectedWallets:w,userSlippage:d,inputUsdValue:n,findToken:f});l();let _=!!P.balance,V=Uw(o.toString(),b,nm(w),B,!_,{blockchains:m,tokens:h});return{quote:v,swap:V,error:null,warnings:P}})}catch(E){return ji(E)}},"fetch"),cancelFetch:S}}i(El,"useConfirmSwap");var Zw=Gw("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Kf}`]:{width:"$48",height:"$48"}}),Jw=Nl({flexGrow:1,paddingRight:"$10"}),Rw=Nl({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),eb=Nl({display:"flex",justifyContent:"space-between",alignItems:"center"});function jf(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=Yw(),[l,c]=ar(""),u=!n,[p,m]=ar(!1),[h,f]=ar(!1),{isActiveTab:d}=te(),g=y().getDisabledLiquiditySources(),S=Xw(g),{manager:T}=Hw(),{fetch:C,loading:k,cancelFetch:w}=El(),[x,I]=ar({swap:null,error:null,warnings:null}),[A,E]=ar(!1),b=i(async({selectedWallets:L,customDestination:X})=>{let se=await C?.({selectedWallets:L,customDestination:X});return I(se),se},"onConfirmSwap"),v=i(async()=>{if(x.swap&&n)try{await T?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let L=`../${F.swaps}/${x.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){c("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{f(!0),await v(),f(!1)},"onConfirm"),P=i(async()=>{x.warnings?.quote&&Hu(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),_=i(async()=>{I({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(L=>{I(L)}).catch(L=>console.error(L))},"onRefresh");Xi(()=>{!!S.current.length&&!g.length&&_(),S.current=g},[g.length]),Xi(()=>{u&&w()},[u]),Xi(()=>{u&&m(u)},[u]),Xi(()=>{u||C({selectedWallets:o,customDestination:r}).then(L=>I(L)).catch(L=>console.error(L))},[]),jw(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let V=x.warnings?.quote??null,ee=x.error,j=[];if(l&&j.push(_e.createElement(Qw,{type:"error",variant:"alarm",title:l})),V||ee){let L=`../${F.settings}`;j.push(_e.createElement(Rn,{warning:V,error:ee,couldChangeSettings:!1,refetchQuote:_,showWarningModal:A,confirmationDisabled:!d,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await v()},onChangeSettings:()=>s(L)}))}return _e.createElement(re,{header:{title:Il.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:_e.createElement(Zw,null,_e.createElement("div",{className:Jw()},_e.createElement(qw,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||h,disabled:!!x.error||!d,onClick:P},Il.t("Start Swap"))),_e.createElement(Kf,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||h,disabled:!d,onClick:m.bind(null,!0)},_e.createElement(Kw,{size:24})))},p&&_e.createElement(Ld,{open:p,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:b}),_e.createElement(ie,null,_e.createElement("div",{className:eb()},_e.createElement(Vw,{variant:"title",size:"small"},Il.t("You get")),_e.createElement("div",{className:Rw()},_e.createElement(hi,{onClick:!k&&!p&&!A?_:void 0}))),_e.createElement(Al,{size:"12"}),Nm(j.map((L,X)=>({element:L,key:`alert-${X}`})),_e.createElement(Al,{size:10})),j.length>0?_e.createElement(Al,{size:10}):null,_e.createElement(Bo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:x.error,loading:k,warning:x.warnings?.quote??null})))}i(jf,"ConfirmSwapPage");import{i18n as Gt}from"@lingui/core";import{Button as zl,CustomTokensZeroStateDarkIcon as kb,CustomTokensZeroStateIcon as vb,DeleteIcon as wb,Divider as mr,IconButton as bb,MessageBox as xb,NotFound as Eb,styled as Ql}from"@rango-dev/ui";import he,{useState as Hl}from"react";import{useNavigate as Ib}from"react-router-dom";import{CloseIcon as ob,IconButton as nb,SearchIcon as rb,TextField as ib}from"@rango-dev/ui";import sr from"react";import{styled as tb}from"@rango-dev/ui";var Xf=tb("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function xt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:c,suffix:u,...p}=t,m=s.length?sr.createElement(nb,{variant:"ghost",onClick:()=>c?.(""),size:"small"},sr.createElement(ob,{color:"gray",size:10})):null;return u&&(m=u),sr.createElement(ib,{prefix:sr.createElement(Xf,null,sr.createElement(rb,{color:"black"})),suffix:m,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...p})}i(xt,"SearchInput");import{i18n as Ul}from"@lingui/core";import{Button as cb,CustomTokenWarning as pb,darkTheme as sg,Divider as qt,ExternalLinkIcon as ub,Image as mb,ListItem as db,NotFound as fb,PinIcon as gb,Skeleton as Wo,Typography as pr,VirtualizedList as hb}from"@rango-dev/ui";import W,{useState as yb}from"react";import{useTranslation as Sb}from"react-i18next";import{Divider as ig,ListItem as lb,Skeleton as cr}from"@rango-dev/ui";import Et from"react";import{css as Tn,darkTheme as Bl,ImageContainer as ab,ListItemButton as sb,styled as et,Typography as Yf}from"@rango-dev/ui";var Wl=Tn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ll=Tn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ml=Tn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Pl=Tn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Bl} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),_l=Tn({}),Dl=Tn(),Zf=et("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),$l=et("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Yi=et("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ll}`]:{[`& .${Pl}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${_l}`]:{bottom:"-15px"},[`& .${Wl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ml}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Jf=et(sb,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),Fl=et("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ol=et(Yf,{}),Rf=et("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Dl}`]:{$$color:"$colors$neutral600",[`.${Bl} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lr=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),YQ=et("div",{display:"flex",alignItems:"center"}),eg=et("div",{position:"relative",[`& ${ab}`]:{borderRadius:"$xm",overflow:"hidden"}}),tg=et("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),og=et(Yf,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),ng=et("a",{"& svg:hover":{color:"$colors$info"}}),rg=et("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${Bl} &`]:{color:"$foreground"}}}});function ag(t){return Et.createElement(Yi,null,Array.from(Array(t.size),e=>Et.createElement(lb,{key:e,hasDivider:!0,start:Et.createElement(cr,{variant:"circular",width:35,height:35}),end:Et.createElement(lr,null,Et.createElement(cr,{variant:"text",size:"large",width:70}),Et.createElement(ig,{size:4}),Et.createElement(cr,{variant:"text",size:"medium",width:50})),title:Et.createElement("div",null,Et.createElement(cr,{variant:"text",size:"large",width:90}),Et.createElement(ig,{size:4}),Et.createElement(cr,{variant:"text",size:"medium",width:90}))})))}i(ag,"LoadingTokenList");var Cb=20,Tb=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return W.createElement("div",{className:Ll()},o?W.createElement("div",{className:Wl()},o):W.createElement($l,{className:Ml()},W.createElement(pr,{variant:"title",size:"xmedium"},r.symbol),W.createElement(qt,{direction:"horizontal",size:4}),W.createElement(Fl,{css:a},W.createElement(Ol,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&W.createElement("div",{className:`${Pl()} ${!o&&_l()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",W.createElement(qt,{size:4,direction:"horizontal"}),W.createElement(ng,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:c=>c.stopPropagation()},W.createElement(ub,{size:12}))))},"renderDesc");function ur(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:l,showWarning:c=!0}=t,u=y().fetchStatus,p=y().blockchains(),{getBalanceFor:m,fetchingWallets:h}=y(),{isTokenPinned:f}=y(),{setFromToken:d,setToToken:g}=O(),{t:S}=Sb(),T=He(),[C,k]=yb(null),w=i(()=>{l==="source"?d({token:C,meta:{blockchains:p}}):g({token:C,meta:{blockchains:p}})},"updateToken"),x=i(()=>{w(),T()},"handleImportToken"),I=i(b=>{if(b.customToken){let{customToken:B,...P}=b;return W.createElement(cb,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(V=>{V.stopPropagation(),k({...P,warning:!0})},"handleClick")},W.createElement(pr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let v=Fr(m(b));return s?s(b):h?W.createElement(lr,null,W.createElement(Wo,{variant:"text",size:"large",width:70}),W.createElement(qt,{size:4}),W.createElement(Wo,{variant:"text",size:"medium",width:50})):v&&W.createElement(Rf,null,W.createElement(og,{variant:"title",size:"small"},v.amount),W.createElement("div",null),v.usdValue&&W.createElement(pr,{variant:"body",className:Dl(),size:"xsmall"},`$${v.usdValue}`))},"endRenderer"),A=i(()=>W.createElement(hb,{itemContent:b=>{let v=e[b];if(v==="skeleton")return W.createElement(db,{hasDivider:!0,start:W.createElement(Wo,{variant:"circular",width:35,height:35}),end:W.createElement(lr,null,W.createElement(Wo,{variant:"text",size:"large",width:70}),W.createElement(qt,{size:4}),W.createElement(Wo,{variant:"text",size:"medium",width:50})),title:W.createElement("div",null,W.createElement(Wo,{variant:"text",size:"large",width:90}),W.createElement(qt,{size:4}),W.createElement(Wo,{variant:"text",size:"medium",width:90}))});let B=v.address||"",P=p.find(L=>L.name===v.blockchain);if(!P)return null;let _=Ws(P.color,"main"),V={$$color:_.main150,[`.${sg} &`]:{$$color:_.main750},backgroundColor:"$$color"},ee={$$color:_.main750,[`.${sg} &`]:{$$color:_.main150},color:"$$color"},j=i(()=>{typeof v!="string"&&!v.customToken&&n?.(v)},"handleClick");return W.createElement(rg,null,W.createElement(Jf,{"tab-index":b,key:`${v.symbol}${v.address}`,id:`${v.symbol}${v.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:v.customToken,onClick:j,start:W.createElement(eg,null,W.createElement(mb,{src:v.image===""?Qr:v.image,size:30}),t.type!=="custom-token"&&f(v,t.type)&&W.createElement(tg,null,W.createElement(gb,{size:12,color:"gray"}))),title:P?.type==="COSMOS"||v.name||!v.name&&!B?W.createElement($l,null,W.createElement(pr,{variant:"title",size:"xmedium"},v.symbol),W.createElement(qt,{direction:"horizontal",size:4}),W.createElement(Fl,{css:V},W.createElement(Ol,{variant:"body",size:"xsmall",css:ee},v.blockchain)),c&&v.warning&&W.createElement(W.Fragment,null,W.createElement(qt,{direction:"horizontal",size:4}),W.createElement(pb,{container:N()}))):void 0,description:typeof v!="string"&&P?.info&&B&&P.type!=="COSMOS"?Tb({address:B,token:v,customCssForTag:V,customCssForTagTitle:ee,name:v.name,url:P.info.addressUrl.split("{wallet}").join(B)}):v.name||void 0,end:I(v)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=C?So(C?.blockchain,p):null;return W.createElement(W.Fragment,null,a&&W.createElement(W.Fragment,null,W.createElement(pr,{variant:"label",size:"large"},Ul.t("Select Token")),W.createElement(qt,{size:4})),W.createElement(Zf,null,W.createElement(qt,{size:4}),u==="loading"&&W.createElement(ag,{size:Cb}),u==="success"&&(e.length?W.createElement(W.Fragment,null,W.createElement(Gn,{token:C,address:C?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),W.createElement(Yi,{as:"ul"},A())):!!o&&W.createElement(fb,{title:Ul.t("No results found"),description:Ul.t("Try using different keywords")}))))}i(ur,"TokenList");var Ab=Ql("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Nb=Ql("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Bb=Ql(bb,{"&:hover":{"& svg":{color:"$secondary550"}}});function lg(){let[t,e]=Hl(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=O(),{mode:c}=pn({}),u=Ib(),[p,m]=Hl(!1),[h,f]=Hl(),d=i(C=>{let k=C.target.value;e(k)},"handleSearch"),g=c==="dark",S=n.filter(C=>ot(C.symbol,t)||ot(C.address||"",t)||ot(C.name||"",t)),T=i(()=>{if(h){let C=a?ft(a):null,k=r?ft(r):null,w=ft(h);C===w?l({token:null}):k===w&&s({token:null}),o(h)}m(!1)},"handleDeleteCustomToken");return he.createElement(re,{header:{title:Gt.t("Custom Tokens")}},he.createElement(ie,null,he.createElement(Ab,null,n.length?he.createElement(he.Fragment,null,he.createElement(xt,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Gt.t("Search Token"),onChange:d}),he.createElement(mr,{size:16}),he.createElement(ur,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>he.createElement(Bb,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),f(C)}},he.createElement(wb,{size:12,color:"gray"}))})):he.createElement(Nb,null,he.createElement(Eb,{icon:g?he.createElement(kb,{size:200}):he.createElement(vb,{size:200}),title:Gt.t("No custom tokens"),description:Gt.t("press the button to add your custom token")})),he.createElement(mr,{size:20}),he.createElement(zl,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u(F.addCustomTokens)},Gt.t("Add Custom Token"))),he.createElement(J,{open:p,dismissible:!0,onClose:()=>m(!1),container:N()},he.createElement(xb,{title:Gt.t("Delete Custom Token"),type:"error",description:Gt.t("Are you sure you want to Delete this Token?")},he.createElement(mr,{size:40}),he.createElement(mr,{size:10}),he.createElement(zl,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:T},Gt.t("Yes, Delete it")),he.createElement(mr,{size:12}),he.createElement(zl,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},Gt.t("No, Continue"))))))}i(lg,"CustomTokensPage");import{i18n as Ke}from"@lingui/core";import{useManager as Yb}from"@rango-dev/queue-manager-react";import{Button as Yl,darkTheme as Zb,Divider as Mo,MessageBox as Jb,NotFound as Rb,styled as Zl,Typography as Ri}from"@rango-dev/ui";import{TransactionStatus as gr}from"rango-types";import ae,{useMemo as Ig,useState as ea}from"react";import{useNavigate as ex}from"react-router-dom";import{FilterIcon as $b,Popover as Fb}from"@rango-dev/ui";import Lo from"react";import{css as Wb,darkTheme as Zi,IconButton as Lb,styled as dr}from"@rango-dev/ui";var ql=dr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Zi} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),cg=dr(Lb,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Zi} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Zi} &`]:{backgroundColor:"$neutral"},[`& ${ql}::before`]:{backgroundColor:"$secondary100",[`.${Zi} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),pg=dr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),ug=dr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),mg=Wb({display:"flex",justifyContent:"space-between",alignItems:"center"}),dg=dr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as fg}from"@lingui/core";import{Button as Mb,Divider as gg,ListItemButton as Pb,Radio as _b,RadioRoot as Db,Typography as hg}from"@rango-dev/ui";import ct from"react";function yg(t){let{filterBy:e,onClickItem:o}=t;return ct.createElement(ug,null,ct.createElement("div",{className:mg()},ct.createElement(hg,{size:"small",variant:"body"},fg.t("Status")),ct.createElement(Mb,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},fg.t("Reset"))),ct.createElement(gg,{size:10}),ct.createElement(Db,{value:e},ct.createElement(dg,null,t.list.map((n,r)=>ct.createElement(Pb,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ct.createElement(ct.Fragment,null,ct.createElement(gg,{direction:"horizontal",size:4}),ct.createElement(hg,{size:"medium",variant:"body"},n.title)),start:ct.createElement(_b,{value:n.id}),onClick:o})))))}i(yg,"FilterSelectorContent");function Gl(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Lo.createElement("div",null,Lo.createElement(Fb,{open:a,align:"end",onOpenChange:o,container:N(),content:Lo.createElement(yg,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Lo.createElement(cg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Lo.createElement(ql,{isSelect:!!n},Lo.createElement($b,{size:16,color:"black"}),!!n&&Lo.createElement(pg,null)))))}i(Gl,"FilterSelector");import{i18n as zb}from"@lingui/core";import{getCurrentStep as Hb}from"@rango-dev/queue-manager-rango-preset";import{Divider as vg,GroupedVirtualizedList as Qb,Skeleton as qb,SwapListItem as wg,Typography as Gb}from"@rango-dev/ui";import Ve,{useCallback as bg,useEffect as Vb,useRef as Kb,useState as jb}from"react";function Sg(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Sg,"calculateGroupsSoFar");import{css as Ob,darkTheme as Ub,styled as fr}from"@rango-dev/ui";var Vl=Ob(),Cg=fr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Kl=fr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Vl}`]:{$$color:"$colors$neutral600",[`.${Ub} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),jl=fr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Tg=fr("div",{gap:"$10",display:"flex",flexDirection:"column"}),kg=fr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Xb=10;function Xl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=jb([]),l=Kb(0),{swaps:c,groupCounts:u,groups:p}=n(e),m=bg(Sg,[]),h=bg(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,Xb),s(m(u,l.current)))},[e.length]);if(Vb(()=>{r||h()},[r,h]),r){let f=[1,2];return Ve.createElement(Ve.Fragment,null,[f,f].map((g,S)=>Ve.createElement(Kl,{key:S},Ve.createElement(jl,null,Ve.createElement(qb,{variant:"text",width:60,size:"small"}),Ve.createElement(vg,{size:16})),Ve.createElement(vg,{size:4}),Ve.createElement(Tg,null,g.map((C,k)=>Ve.createElement(wg,{isLoading:!0,key:k}))))))}return Ve.createElement(Qb,{endReached:()=>{l.current<e.length&&h()},groupCounts:a,groupContent:f=>Ve.createElement(Kl,null,Ve.createElement(jl,null,Ve.createElement(Gb,{variant:"label",size:"medium",className:Vl()},p[f]))),itemContent:(f,d)=>{let g=c[f],S=Hb(g);if(!g)return null;let T=g.steps[0],C=g.steps[g.steps.length-1];return Ve.createElement(Cg,{key:g.requestId},Ve.createElement(wg,{requestId:g.requestId,creationTime:g.creationTime,status:g.status,onClick:o,currentStep:S,tooltipContainer:N(),onlyShowTime:p[d]===zb.t("Today"),swapTokenData:{from:{token:{image:T.fromLogo,displayName:T.fromSymbol},blockchain:{image:T.fromBlockchainLogo||""},amount:M(g.inputAmount,6,6),realAmount:g.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:M(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(Xl,"HistoryGroupedList");import{i18n as Ji}from"@lingui/core";import xg from"dayjs";var Eg=i(t=>{let e=new Map([["today",{title:Ji.t("Today"),swaps:[]}],["week",{title:Ji.t("This week"),swaps:[]}],["month",{title:Ji.t("This month"),swaps:[]}],["year",{title:Ji.t("This year"),swaps:[]}]]);function o(c,u){e.has(c)||e.set(c,{title:c,swaps:[]}),e.get(c)?.swaps.push(u)}i(o,"addYearsToOutput");let n=xg();t.forEach(c=>{let u=Number(c.creationTime),p=xg(u);if(n.isSame(p,"day"))e.get("today")?.swaps.push(c);else if(n.isSame(p,"week"))e.get("week")?.swaps.push(c);else if(n.isSame(p,"month"))e.get("month")?.swaps.push(c);else if(n.isSame(p,"year"))e.get("year")?.swaps.push(c);else{let m=new Date(u).getFullYear().toString();o(m,c)}});let r=Array.from(e.values()).filter(c=>c.swaps.length>0),a=r.flatMap(c=>c.swaps),s=r.map(c=>c.swaps.length),l=r.map(c=>c.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var tx=Zl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),ox=Zl("div",{display:"flex",justifyContent:"center",alignItems:"center"}),nx=Zl("div",{"._typography":{color:"$neutral700",[`.${Zb}&`]:{color:"$neutral900"}}}),rx=[{id:gr.SUCCESS,title:Ke.t("Complete")},{id:gr.RUNNING,title:Ke.t("Running")},{id:gr.FAILED,title:Ke.t("Failed")}],ix=i((t,e)=>t?.length?t.filter(o=>At(o.fromBlockchain,e)||At(o.toBlockchain,e)||At(o.toSymbol,e)||At(o.fromSymbol,e)).length:!1,"isStepContainsText");function Ag(){let t=ex(),{manager:e,state:o}=Yb(),n=yt(e).map(({swap:k})=>k),[r,a]=ea(""),[s,l]=ea(!1),c=!o.loadedFromPersistor,[u,p]=ea(""),[m,h]=ea(!1),f=i(k=>{let w=k.target.value;a(w)},"handleSearch"),d=Ig(()=>!r&&!u?n:n.filter(k=>{let{inputAmount:w,status:x,steps:I,requestId:A}=k;return(!r||At(w,r)||At(x,r)||ix(I,r)||At(A,r))&&(!u||u===x)}),[n,r,u]),g=!d?.length&&!c,S=i(()=>h(!1),"onCloseModal"),T=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(k){console.log(k)}},"onClear"),C=Ig(()=>!n.some(k=>k.status===gr.SUCCESS||k.status===gr.FAILED),[n]);return ae.createElement(re,{header:{title:Ke.t("History"),suffix:ae.createElement(eo,null,ae.createElement(Yl,{id:"widget-history-clear-btn",disabled:C,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},ae.createElement(Ri,{size:"medium",variant:"label",color:"error"},Ke.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(ox,null,ae.createElement(xt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ke.t("Search Transaction"),autoFocus:!0,onChange:f,style:{height:36},value:r}),ae.createElement(Mo,{size:10,direction:"horizontal"}),ae.createElement(Gl,{filterBy:u,open:s,onOpenChange:k=>l(k),onClickItem:k=>p(k),list:rx})),ae.createElement(Mo,{size:"16"}),ae.createElement(tx,null,g&&ae.createElement(kg,null,ae.createElement(Mo,{size:32}),ae.createElement(Rb,{title:r?Ke.t("No results found"):Ke.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ke.t("Try using different keywords"):Ke.t("Your transaction history is stored locally and will appear here after you start a swap")})),!g&&ae.createElement(Xl,{list:d,onSwapClick:t,groupBy:Eg,isLoading:c}))),ae.createElement(J,{open:m,onClose:S,container:N()},ae.createElement(Mo,{size:20}),ae.createElement(Jb,{type:"warning",title:Ke.t("Clear Transaction History"),description:ae.createElement(nx,null,ae.createElement(Ri,{variant:"body",size:"medium"},Ke.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(Mo,{size:"24"}),ae.createElement(Ri,{variant:"body",size:"small"},Ke.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(Mo,{size:30}),ae.createElement(Yl,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:T},Ke.t("Yes, Clear the history")),ae.createElement(Mo,{size:10}),ae.createElement(Yl,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:S},ae.createElement(Ri,{variant:"title",size:"medium",color:"primary"},Ke.t("No, Cancel")))))}i(Ag,"HistoryPage");import{i18n as Nx}from"@lingui/core";import{Button as Bx,Divider as Xg,styled as Wx,WarningIcon as Lx}from"@rango-dev/ui";import Mx from"bignumber.js";import je,{useEffect as Yg,useState as Zg}from"react";import{useNavigate as Px}from"react-router-dom";import{i18n as Bg}from"@lingui/core";import{Alert as sx,Divider as Jl,NoRouteIcon as lx,Typography as cx}from"@rango-dev/ui";import Po from"react";import{styled as ax}from"@rango-dev/ui";var Ng=ax("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Rl(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Dt(t,e)?Po.createElement(Ng,null,Po.createElement(Jl,{size:10}),Po.createElement(lx,{size:24,color:"gray"}),Po.createElement(Jl,{size:4}),Po.createElement(cx,{variant:"title",size:"small"},Bg.t("No Routes Found")),Po.createElement(Jl,{size:4}),Po.createElement(sx,{title:Bg.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Rl,"SameTokensWarning");import{i18n as gx}from"@lingui/core";import{Header as hx}from"@rango-dev/ui";import so,{useEffect as yx,useState as Sx}from"react";import{i18n as ux}from"@lingui/core";import{Divider as tc,FullExpandedQuote as mx,Typography as dx}from"@rango-dev/ui";import ve from"react";import{styled as ec}from"@rango-dev/ui";var Wg=ec("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Lg=ec("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Mg=ec("div",{width:"146px"});import{i18n as hr}from"@lingui/core";import{Select as px}from"@rango-dev/ui";import Pg from"react";function ta(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:hr.t("Smart Routing")},{value:"FEE",label:hr.t("Lowest Fee")},{value:"SPEED",label:hr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:hr.t("Maximum Return")},{value:"PRICE",label:hr.t("Maximum Output")}];return Pg.createElement(Mg,null,Pg.createElement(px,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ta,"SelectStrategy");var _g=3;function yr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:c,quotes:u,updateQuotePartialState:p,fromToken:m,toToken:h,sortStrategy:f,error:d}=O(),{slippage:g,customSlippage:S}=y(),{findToken:T}=y(),C=l||N(),k=!!u&&u.results.length,w=S??g,x=i(E=>{if(!m||!h||!u)return null;let b={requestAmount:u.requestAmount,validationStatus:null,...E};return rn({currentQuote:b,userSlippage:w,findToken:T})},"getQuoteWarning"),I=d?.type===0||d?.type===1,A=u?.results?li(f,u?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(Lg,null,ve.createElement(dx,{size:"xmedium",variant:"title"},ux.t("Sort by")),ve.createElement(ta,{container:C})),ve.createElement(tc,{size:"10"})),e&&Array.from({length:_g},(E,b)=>ve.createElement(ve.Fragment,{key:b},s?ve.createElement(mx,{loading:!0}):ve.createElement(ir,{tagHidden:!1,type:"list-item",expanded:!1}),b!==_g-1&&ve.createElement(tc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,k?A.map((E,b)=>{let v=x(E),B=xl(E.swaps),P=A.length-1===b;return ve.createElement(ve.Fragment,{key:E.requestId},ve.createElement(Bo,{showModalFee:r,container:C,selected:c?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:u.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:v,fullExpandedMode:s,onClick:_=>{B||p("warning",v),p("error",B?.options||null),o(_)},type:"list-item"}),!P&&ve.createElement(tc,{size:16}))}):I&&ve.createElement(Wg,null,ve.createElement(Zn,{size:s?"large":"small",error:d,fetch:n}))))}i(yr,"Quotes");import{darkTheme as fx,styled as Dg}from"@rango-dev/ui";var $g=Dg("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${fx} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Fg=Dg("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var Cx=100;function oc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=Sx(!1),c=s?"":"is-hidden",{config:u}=y(),p=u?.variant==="full-expanded",m=ho();return yx(()=>{let h=null;return a?h=setTimeout(()=>{l(!0)},Cx):(l(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),so.createElement($g,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${c} ${Ti()}`,id:Ue.EXPANDED_BOX_ID},so.createElement(hx,{title:gx.t("Routes"),suffix:so.createElement(so.Fragment,null,so.createElement(ta,{container:m}),so.createElement(Eo,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),so.createElement(Fg,null,so.createElement(yr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:ho(),onClickOnQuote:n,fullExpandedMode:p})))}i(oc,"ExpandedQuotes");import{i18n as Gg}from"@lingui/core";import{SwapInput as Vg}from"@rango-dev/ui";import wx from"bignumber.js";import Sr from"react";import{ReverseIcon as vx}from"@rango-dev/ui";import rc from"react";import{keyframes as Tx,styled as Og}from"@rango-dev/ui";var nc=450,kx=Tx({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Ug=Og("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),zg=Og("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${kx} ${nc}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function ic(){let t=O.use.switchFromAndTo();return rc.createElement(Ug,null,rc.createElement(zg,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},nc),t()}},rc.createElement(vx,{size:12})))}i(ic,"SwitchFromAndToButton");import{styled as Hg}from"@rango-dev/ui";var Qg=Hg("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),qg=Hg("div",{position:"relative"});function ac(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:c,setInputAmount:u,inputAmount:p,inputUsdValue:m,outputAmount:h,outputUsdValue:f,selectedQuote:d}=O(),{connectedWallets:g,getBalanceFor:S}=y(),T=a?S(a):null,C=Fr(T)?.amount??"0",k=T?new wx(T.amount).shiftedBy(-T.decimals):pe,w=!!s&&fp(g,s.name),x=!ds(d,p,m),I=!ds(d,p,f),A=!m||!f||!f.gt(0)?null:Ot(m.toString(),f.toString());return Sr.createElement(Qg,null,Sr.createElement(qg,null,Sr.createElement(Vg,{label:Gg.t("From"),mode:"From",onInputChange:u,balance:C,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:p,usdValue:x?void 0:M(m,4,4),realUsdValue:x?void 0:m?.toString(),error:x?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:N(),onSelectMaxBalance:()=>{let E=M(k,T?.decimals),b=T?.amount?E.split(",").join(""):"";u(b)},anyWalletConnected:g.length>0}),Sr.createElement(ic,null)),Sr.createElement(Vg,{sharpBottomStyle:!r&&(!!d||e),label:Gg.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:c?.displayName||"",image:c?.logo},token:{displayName:l?.symbol||"",image:l?.image,securityWarning:!!l?.warning},percentageChange:M(Ot(m,f),2,2),warningLevel:Ut(A??0),price:{value:M(h,6,6),usdValue:I?void 0:M(f,4,4),realValue:h?.toString(),realUsdValue:I?void 0:f?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(ac,"Inputs");import{useCallback as bx,useEffect as xx,useRef as Ex,useState as Ix}from"react";function Kg(){let{fetch:t,loading:e,cancelFetch:o}=Vi({request:async(n,r)=>await rt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Kg,"useFetchAllQuotes");var Ax=600;function oa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Kg(),{excludeLiquiditySources:n,routing:r}=y().config,{connectedWallets:a}=y(),l=a.some(le=>le.isContractWallet),{fromToken:c,toToken:u,inputAmount:p,inputUsdValue:m,selectedQuote:h,sortStrategy:f,resetQuote:d,error:g,warning:S,setSelectedQuote:T,updateQuotePartialState:C}=O(),{slippage:k,customSlippage:w,affiliatePercent:x,affiliateRef:I,affiliateWallets:A,fetchStatus:E}=y(),b=y().getLiquiditySources(),v=y().getDisabledLiquiditySources(),B=y().excludeLiquiditySources(),{findToken:P}=y(),[_,V]=Ix(!0),ee=Ex(p),j=w??k,X=!c||!u||Dt(c,u)||!xn(p),se=i(le=>{V(le)},"resetState"),z=i(le=>{let{fromToken:me,toToken:ce,inputAmount:mt,liquiditySources:G,excludeLiquiditySources:D,disabledLiquiditySources:q,slippage:K,affiliateRef:Se,affiliatePercent:de,affiliateWallets:Fe}=le;if(_||se(!0),!X&&me&&ce){d();let Ye=om({fromToken:me,toToken:ce,inputAmount:mt,liquiditySources:G,excludeLiquiditySources:D,disabledLiquiditySources:q,wallets:a,slippage:K,affiliateRef:Se,affiliatePercent:de,affiliateWallets:Fe,contractCall:l});Qo("experimental",r)&&(Ye.experimental=!0),Qo("avoidNativeFee",r)&&(Ye.avoidNativeFee=!0),Qo("enableCentralizedSwappers",r)&&(Ye.enableCentralizedSwappers=!0),r?.maxLength&&(Ye.maxLength=r.maxLength),e(Ye).then(we=>{let Oe=li(f,we.results),Xt=qu(h,Oe,we.requestAmount);V(!1),C("quotes",we),T(Xt),Ki({diagnosisMessages:we.diagnosisMessages,requestId:Xt?.requestId||"",swaps:Xt?.swaps});let fo=Xt&&rn({currentQuote:Xt,userSlippage:j,findToken:P});C("warning",fo)}).catch(we=>{let{error:Oe}=ji(we);(Oe?.type===0||Oe?.type===1)&&d(),Oe?.type!==2&&(C("error",Oe),V(!1))})}},"fetch"),R=bx(Lr(le=>{z(le)},Ax),[X]);return xx(()=>{if(!t){V(!1);return}if(E!=="success")return;if(X){V(!1),(h||g||S)&&d();return}if(!xn(p)||m?.eq(0)){se(!1),o();return}d(),se(!0);let le=z;return ee.current&&ee.current!=p&&(le=R),ee.current=p,le({inputAmount:p,fromToken:c,toToken:u,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:v,slippage:j,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:l}),o},[E,p,c?.symbol,c?.address,c?.blockchain,u?.symbol,u?.address,u?.blockchain,X,b?.length,n,v.length,j,I,x,l,JSON.stringify(A)]),{fetch:()=>z({inputAmount:p,fromToken:c,toToken:u,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:v,slippage:j,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:l}),loading:_}}i(oa,"useSwapInput");function jg(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Ce.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(jg,"emitPreventableEvent");var _x=Wx("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Dx=300;function Jg(){let t=Px(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:c,setSelectedQuote:u,resetQuoteWallets:p,setQuoteWarningsConfirmed:m,updateQuotePartialState:h}=O(),[f,d]=Zg(!1),{isLargeScreen:g,isExtraLargeScreen:S}=cn(),{fetch:T,loading:C}=oa({refetchQuote:a}),{config:k,fetchStatus:w,connectedWallets:x}=y(),{isActiveTab:I}=te(),[A,E]=Zg(!1),v=Ju({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Dp(g,S,k?.variant),P=!!n&&!!e&&!!o&&new Mx(n).gt(0)&&!cm(e,o),_=P&&w==="success"&&C,j=(!B||B&&c?.results.length)&&(l||s);Yg(()=>{p(),h("refetchQuote",!0)},[]),Yg(()=>{d(P)},[P]);let L=(r||s)&&!A?T:void 0,X=i(z=>{B&&f?(d(!1),setTimeout(()=>{t(z)},Dx)):t(z)},"onHandleNavigation"),se=i(z=>{r?.requestId!==z.requestId&&(E(!1),u(z))},"onClickOnQuote");return je.createElement(_x,null,je.createElement(re,{height:"auto",footer:je.createElement(Bx,{id:`widget-swap-${v.action}-btn`,type:"primary",size:"large",disabled:v.disabled||!I,prefix:v.action==="confirm-warning"&&je.createElement(Lx,null),fullWidth:!0,onClick:()=>{v.action==="connect-wallet"?jg({type:"clickConnectWallet"},()=>X(F.wallets)):v.action==="confirm-warning"?E(!0):X(F.confirmSwap)}},v.title),header:{onWallet:()=>{X(F.wallets)},hasBackButton:!1,title:k.title||Nx.t("Swap"),suffix:je.createElement(Eo,{hidden:B?["refresh"]:void 0,onClickRefresh:L,onClickHistory:()=>X(F.swaps),onClickSettings:()=>{X(F.settings)}})}},je.createElement(ie,null,je.createElement(ac,{fetchingQuote:_,fetchMetaStatus:w,isExpandable:B,onClickToken:z=>{X(z==="from"?F.fromSwap:F.toSwap)}}),je.createElement(Xg,{size:"2"}),B?null:je.createElement(Bo,{quote:r,loading:_,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:c&&c.results.length>1?()=>{h("refetchQuote",!1),X(F.routes)}:void 0}),j?je.createElement(je.Fragment,null,je.createElement(Xg,{size:"10"}),je.createElement(Rn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:T,showWarningModal:A,confirmationDisabled:!I,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:()=>{E(!1),m(!0),X(F.confirmSwap)},onChangeSettings:()=>X(F.settings)})):null,je.createElement(Rl,null))),B?je.createElement(oc,{loading:_,onClickOnQuote:se,fetch:T,onClickRefresh:L,isVisible:f}):null)}i(Jg,"Home");import{i18n as Rg}from"@lingui/core";import{Alert as $x,Divider as Fx,List as Ox,ListItemButton as Ux,Radio as zx,RadioRoot as Hx,Typography as Qx}from"@rango-dev/ui";import Mt from"react";function lo(){let{setLanguage:t,language:e,config:o}=y(),n=Vp,r=o?.language||qo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||qo),resetLanguage:()=>t(null)}}i(lo,"useLanguage");function eh(){let{activeLanguage:t,changeLanguage:e,languages:o}=lo(),n=He(),r=o.map(a=>{let{local:s,label:l,SVGFlag:c}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Mt.createElement(Qx,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Mt.createElement(zx,{value:s}),start:Mt.createElement(c,null)}});return Mt.createElement(re,{header:{title:Rg.t("Language")}},Mt.createElement(ie,null,Mt.createElement($x,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Mt.createElement(Fx,{size:"8"}),Mt.createElement(Hx,{value:t},Mt.createElement(Ox,{type:Mt.createElement(Ux,{title:Rg.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(eh,"LanguagePage");import{i18n as Vt}from"@lingui/core";import{Button as jx,Checkbox as Xx,Image as Yx,ListItemButton as Zx,NotFound as Jx,Typography as Rx}from"@rango-dev/ui";import Xe,{useState as eE}from"react";import{Checkbox as Vx,Skeleton as oh}from"@rango-dev/ui";import Tr from"react";import{styled as sc}from"@rango-dev/ui";var Cr=sc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),lc=sc("div",{width:80,display:"flex",justifyContent:"flex-end"}),cc=sc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as qx,styled as Gx}from"@rango-dev/ui";var th=Gx(qx,{height:61});var Kx=30;function pc(){return Tr.createElement(Cr,null,Array.from(Array(Kx),(t,e)=>Tr.createElement(th,{hasDivider:!0,key:e,start:Tr.createElement(oh,{variant:"circular",width:35,height:35}),title:Tr.createElement(oh,{variant:"text",size:"large",width:90}),end:Tr.createElement(Vx,{checked:!1})})))}i(pc,"LoadingLiquiditySourceList");function uc({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=eE(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),c=Vr(o,n),u={Exchanges:Vt.t("Exchanges"),Bridges:Vt.t("Bridges")},p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&p.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=c.filter(T=>p.includes(T.type)),h=m.length===m.filter(T=>T.selected).length,f=i(()=>{m.forEach(T=>{h?s(T.groupTitle):T.selected||s(T.groupTitle)})},"toggleAllSources"),d=m.map(T=>{let{selected:C,groupTitle:k,logo:w,id:x,...I}=T;return{id:`widget-setting-liquidity-source-${x.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:Xe.createElement(Yx,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Xe.createElement(Xx,{checked:C,disabled:l}),title:Xe.createElement(Rx,{variant:"title",size:"xmedium"},Vt.t(k)),selected:C,groupTitle:k,logo:w,...I}}),g=i(T=>{let C=T.target.value;a(C)},"handleSearch"),S=d;return r&&(S=d.filter(T=>At(T.groupTitle,r))),Xe.createElement(re,{header:{title:Vt.t(t),suffix:Xe.createElement(lc,null,Xe.createElement(jx,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:f},h?Vt.t("Deselect all"):Vt.t("Select all")))}},Xe.createElement(ie,{view:!0},Xe.createElement(xt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Vt.t("Search {sourceType}",{sourceType:u[t]}),onChange:g}),e==="loading"&&Xe.createElement(pc,null),!S.length&&r?Xe.createElement(cc,null,Xe.createElement(Jx,{title:Vt.t("No results found"),description:Vt.t("Try using different keywords")})):e==="success"&&Xe.createElement(Cr,{disabled:l},S.map(T=>{let{groupTitle:C,...k}=T;return Xe.createElement(Xe.Fragment,{key:T.id},Xe.createElement(Zx,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(uc,"LiquiditySourcePage");import{i18n as tE}from"@lingui/core";import na from"react";import{useNavigate as oE}from"react-router-dom";function nh(){let t=oE(),e=He(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:l,loading:c}=oa({refetchQuote:n}),u=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),p=`../${F.settings}`,m=`../${F.wallets}`;return na.createElement(re,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:tE.t("Routes"),suffix:na.createElement(Eo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(p),a("refetchQuote",!0)}})}},na.createElement(ie,null,na.createElement(yr,{fetch:l,loading:c,onClickOnQuote:u})))}i(nh,"RoutesPage");import{i18n as ph}from"@lingui/core";import{Divider as uh,getCategoriesCount as mE,SelectableCategoryList as dE}from"@rango-dev/ui";import Kt,{useState as mh}from"react";import{useNavigate as fE}from"react-router-dom";import{i18n as mc}from"@lingui/core";import{Divider as aE,Image as sE,ListItemButton as lE,NotFound as cE,Typography as ch}from"@rango-dev/ui";import pt,{useEffect as pE,useState as uE}from"react";var rh=i((t,e,o)=>t.filter(n=>Mr(n.type,o)).filter(n=>ot(n.name,e)||ot(n.displayName,e)),"filterBlockchains");import{ImageContainer as nE,styled as ih}from"@rango-dev/ui";var ah=ih("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ra=ih(Xs,{padding:0,margin:0,listStyle:"none",[`& ${nE}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as rE,Skeleton as sh}from"@rango-dev/ui";import ia from"react";var iE=20;function lh(){return ia.createElement(ra,null,Array.from(Array(iE),t=>ia.createElement(rE,{key:t,hasDivider:!0,start:ia.createElement(sh,{variant:"circular",width:35,height:35}),title:ia.createElement(sh,{variant:"text",size:"large",width:90})})))}i(lh,"LoadingBlockchainList");function dc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=uE(e),{fetchStatus:c}=y();pE(()=>{l([...rh(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?pt.createElement(cE,{title:mc.t("No results found"),description:mc.t("Try using different keywords")}):pt.createElement(ra,{as:"ul",key:`${r}-${o}`},s.map(p=>pt.createElement(lE,{key:`${p.name}-${p.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(p),start:pt.createElement(sE,{src:p.logo,size:30}),title:pt.createElement(ch,{variant:"title",size:"medium"},p.displayName),id:p.name}))),"renderList");return pt.createElement(pt.Fragment,null,a&&pt.createElement(pt.Fragment,null,pt.createElement(ch,{variant:"label",size:"large"},mc.t("Select Chain")),pt.createElement(aE,{size:4})),pt.createElement(ah,null,c==="loading"&&pt.createElement(lh,null),c==="success"&&u()))}i(dc,"BlockchainList");function aa(t){let{type:e}=t,o=He(),[n,r]=mh(""),[a,s]=mh("ALL"),l=O.use.setToBlockchain(),c=O.use.setFromBlockchain(),{fetchStatus:u}=y(),p=fE(),m=y().blockchains({type:e}),h=mE(m),f=!t.hideCategory&&h!==1;return Kt.createElement(re,{header:{title:ph.t("Select Chain")}},Kt.createElement(ie,{view:!0},f&&Kt.createElement(Kt.Fragment,null,Kt.createElement(dE,{setCategory:s,category:a,blockchains:m,isLoading:u==="loading"}),Kt.createElement(uh,{size:24})),Kt.createElement(xt,{value:n,autoFocus:!0,placeholder:ph.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),Kt.createElement(uh,{size:16}),Kt.createElement(dc,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:d=>{e==="custom-token"?p(`..?blockchain=${d.name}`,{replace:!0}):(e==="source"?c(d):l(d),o())}})))}i(aa,"SelectBlockchainPage");import{i18n as ca}from"@lingui/core";import{Divider as Ch,Spinner as NE}from"@rango-dev/ui";import co,{useEffect as BE,useState as WE}from"react";import{useNavigate as LE}from"react-router-dom";import{i18n as hc}from"@lingui/core";import{BlockchainsChip as sa,Divider as hh,Image as yh,Skeleton as TE,Tooltip as kE,Typography as yc}from"@rango-dev/ui";import be from"react";import{useEffect as yE}from"react";var dh=["ETH","COSMOS","OSMOSIS"];function fc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(gE),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let c=0;c<=l;c++){let u=n[c];s=s.filter(p=>u.name!==p)}}n.sort(hE(s)),r=n.splice(a)}return{list:n,more:r}}i(fc,"prepare");function gE(t,e){let o=dh,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(gE,"sortByMostUsedBlockchains");function hE(t){return i(function(o,n){let r=t.findIndex(c=>c===o.name),a=t.findIndex(c=>c===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(hE,"generateSortByPreferredBlockchainsFor");function fh(t,e){return!!e.list.find(o=>o.name===t)}i(fh,"isInVisibleList");function gc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();yE(()=>{if(e?.selected){let a=fc(t,o,e);fh(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=fc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(gc,"usePrepareBlockchainList");import{styled as SE}from"@rango-dev/ui";var gh=SE("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var vE=6,wE=12;function Sc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=te(),l=gc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:c}=y(),u=O.use.resetToBlockchain(),p=O.use.resetFromBlockchain(),m=l.more.length>0,h=l.more.length===1,f=!h&&m;return be.createElement(be.Fragment,null,!s&&be.createElement(be.Fragment,null,be.createElement(hh,{size:12}),be.createElement(yc,{variant:"label",size:"large"},hc.t("Select Chain"))),be.createElement(hh,{size:12}),be.createElement(gh,null,c==="loading"&&Array.from(Array(s?vE:wE),(d,g)=>be.createElement(TE,{key:g,variant:"rounded",height:50})),c==="success"&&be.createElement(be.Fragment,null,be.createElement(sa,{selected:!n,onClick:()=>{o==="from"?p():u()}},be.createElement(yc,{variant:"body",size:"xsmall",color:"secondary500"},hc.t("All"))),l.list.map(d=>be.createElement(kE,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:N()},be.createElement(sa,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},be.createElement(yh,{src:d.logo,size:30})))),h?be.createElement(sa,{key:l.more[0].name,selected:!!n&&n.name===l.more[0].name,onClick:()=>r(l.more[0])},be.createElement(yh,{src:l.more[0].logo,size:30})):null,f?be.createElement(sa,{onClick:a,key:"more-blockchains"},be.createElement(yc,{variant:"body",size:"xsmall",color:"secondary500"},hc._("More +{count}",{count:l.more.length}))):null)))}i(Sc,"BlockchainsSection");import{useCallback as xE,useRef as EE,useState as Cc}from"react";function Tc(){let t=y().blockchains(),e=EE(null),{customTokens:o}=y(),[n,r]=Cc(!1),[a,s]=Cc([]),[l,c]=Cc(null),u=i(async(h,f)=>{c(null),r(!0),s([]);try{let d=await rt().searchCustomTokens({query:h,blockchain:f},{signal:e.current?.signal}),g=new Set(o().map(C=>Ft(C))),S=new Set(t.map(C=>C.name)),T=d.tokens.filter(C=>S.has(C.blockchain)&&!g.has(Ft(C)));s(T),r(!1)}catch(d){c(d instanceof Error?d.message:"something went wrong"),s([]),d?.name!=="CanceledError"&&r(!1)}},"fetch"),p=xE(Lr((h,f)=>{e.current?.signal.aborted||u(h,f)},600),[t.length]);return{fetch:(h,f)=>{e.current=new AbortController,s([]),r(!0),p(h,f)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:l}}i(Tc,"useSearchCustomTokens");function la(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(la,"shouldSearchForCustomTokens");function Sh(t,e,o,n,r){let a=[...t];return la(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(Sh,"prepareTokensList");function pa(t){let{type:e}=t,o=LE(),n=He(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:c,setToBlockchain:u}=O(),{getBalanceFor:p}=y(),{fetch:m,loading:h,tokens:f,cancel:d}=Tc(),[g,S]=WE(""),T=e==="source"?r:a,C=T?.name??"",k=y().blockchains({type:e}),w=y().tokens({type:e,blockchain:C,searchFor:g,getBalanceFor:p}),x=Sh(w,f,g,h,T?.name),I=i(b=>{e==="source"?c(b):u(b)},"updateBlockchain"),A=i(b=>{e==="source"?s({token:b,meta:{blockchains:k}}):l({token:b,meta:{blockchains:k}})},"updateToken"),E={source:ca.t("Source"),destination:ca.t("Destination")};return BE(()=>(la(w,g,T?.name)&&m(g,T?.name??void 0),()=>{d()}),[w.length,g,T?.name]),co.createElement(re,{header:{title:ca.t("Swap {type}",{type:E[e]})}},co.createElement(ie,null,co.createElement(Sc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{I(b)}}),co.createElement(Ch,{size:24}),co.createElement(xt,{value:g,autoFocus:!0,placeholder:ca.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:b=>S(b.target.value),suffix:la(w,g,T?.name)&&h?co.createElement(NE,{size:12,color:"secondary"}):void 0}),co.createElement(Ch,{size:16}),co.createElement(ur,{list:x,selectedBlockchain:C,searchedFor:g,type:e,onChange:b=>{A(b);let v=k.find(B=>b.blockchain===B.name);v&&I(v),n()}})))}i(pa,"SelectSwapItemsPage");import{i18n as bc}from"@lingui/core";import{Alert as iI,Button as aI,styled as sI}from"@rango-dev/ui";import _o from"react";import{useInRouterContext as lI,useSearchParams as cI}from"react-router-dom";import{i18n as xh}from"@lingui/core";import{Alert as DE,Divider as vc,InfoIcon as $E,SlippageIcon as FE,TextField as OE,Tooltip as UE,Typography as Eh}from"@rango-dev/ui";import De from"react";import{Chip as ME,styled as kr,TextField as PE}from"@rango-dev/ui";var Th=kr("div",{paddingTop:"$5",padding:"$10 $5"}),kh=kr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${PE}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),vh=kr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ua=kr("div",{maxWidth:"280px",padding:"$10"}),wh=kr(ME,{width:"61px",flexShrink:0});import{i18n as kc}from"@lingui/core";import{Typography as _E}from"@rango-dev/ui";import vr from"react";function bh(){return vr.createElement(ua,null,vr.createElement(_E,{variant:"label",size:"medium",color:"neutral700"},kc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),vr.createElement("br",null),vr.createElement("br",null),vr.createElement("b",null,kc.t("Warning")),":\xA0",kc.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(bh,"SlippageTooltipContent");function wc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y(),r=o!==null?Qp(o):null,a=i(c=>{let u=c.target.value,p=parseFloat(u);if(isNaN(p))return n(null);let m=p;p>Ln&&(m=Ln),n(m)},"onSlippageValueChange"),s=i(c=>{o!==null&&n(null),e(c)},"onClickSlippageChip"),l=i(c=>{let u=c.target,p=/^(0|[1-9]\d*)(\.\d{1,2})?$/,m=u.value;p.test(m)||(u.value=m.slice(0,-1))},"onInput");return De.createElement(Th,null,De.createElement(vh,null,De.createElement(FE,{size:16,color:"gray"}),De.createElement(vc,{direction:"horizontal",size:4}),De.createElement(Eh,{variant:"title",size:"xmedium"},xh.t("Slippage tolerance per swap")),De.createElement(vc,{direction:"horizontal",size:4}),De.createElement(UE,{container:N(),side:"top",sideOffset:4,content:De.createElement(bh,null)},De.createElement($E,{color:"gray"}))),De.createElement(kh,null,$p.map((c,u)=>{let p=`slippage-${u}`;return De.createElement(wh,{key:p,onClick:()=>s(c),selected:o===null&&c===t,label:`${c.toString()}%`})}),De.createElement(OE,{type:"number",min:"0.01",max:"30",step:"0.01",onInput:l,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&De.createElement(Eh,{variant:"body",size:"small"},"%"),placeholder:xh.t("Custom")})),r&&De.createElement(De.Fragment,null,De.createElement(vc,{size:10}),De.createElement(DE,{variant:"alarm",type:r.type,title:r.message})))}i(wc,"Slippage");import{i18n as St}from"@lingui/core";import{AutoThemeIcon as Ih,BridgesIcon as zE,ChevronRightIcon as ma,DarkModeIcon as Ah,Divider as wr,ExchangeIcon as HE,InfinityIcon as QE,InfoIcon as qE,LanguageIcon as GE,LightModeIcon as Nh,List as VE,ListItem as KE,ListItemButton as jE,Skeleton as XE,styled as YE,Switch as ZE,Tabs as JE,TargetIcon as RE,Tooltip as eI,Typography as tt}from"@rango-dev/ui";import $ from"react";import{useNavigate as tI}from"react-router-dom";var oI=YE("div",{width:"202px",height:"$40"}),nI=[{id:"light",icon:$.createElement(Nh,{color:"black",size:24}),tooltip:$.createElement(tt,{size:"xsmall",variant:"body"},St.t("Light"))},{id:"dark",icon:$.createElement(Ah,{color:"black",size:24}),tooltip:$.createElement(tt,{size:"xsmall",variant:"body"},St.t("Dark"))},{id:"auto",icon:$.createElement(Ih,{color:"black",size:24}),tooltip:$.createElement(tt,{size:"xsmall",variant:"body"},St.t("Auto"))}],rI=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return $.createElement(Ih,{...e});case"dark":return $.createElement(Ah,{...e});default:return $.createElement(Nh,{...e})}},"getThemeIcon");function Bh(){let t=tI(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=lo(),s=a.find(L=>L.local===r)?.label,l=y().fetchStatus,c=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:p}}=y(),m=y().customTokens(),h=Ze("theme",p),f=Ze("liquiditySource",p),d=Ze("language",p),g=Ze("customTokens",p),S=y().infiniteApprove,T=y().toggleInfiniteApprove,C=Vr(c,u),k=C.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),w=k.length,x=k.filter(L=>L.selected).length,I=C.filter(L=>L.type==="DEX"),A=I.length,E=I.filter(L=>L.selected).length,b=i((L,X)=>{switch(l){case"loading":return $.createElement(XE,{variant:"text",size:"medium",width:50});case"failed":return $.createElement(tt,{variant:"body",size:"medium",color:"$error500"},St.t("Loading failed"));default:return $.createElement(tt,{variant:"body",size:"medium"},`${L} / ${X}`)}},"handleSwapperEndItem"),v={id:"widget-setting-bridge-item-btn",title:$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Bridges")),end:$.createElement($.Fragment,null,b(x,w),$.createElement(wr,{direction:"horizontal",size:8}),$.createElement(ma,{color:"black"})),onClick:()=>t(F.bridges),start:$.createElement(zE,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Exchanges")),end:$.createElement($.Fragment,null,b(E,A),$.createElement(wr,{direction:"horizontal",size:8}),$.createElement(ma,{color:"black"})),start:$.createElement(HE,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Custom Tokens")),end:$.createElement($.Fragment,null,$.createElement(tt,{variant:"body",size:"medium"},`${m.length}`),$.createElement(wr,{direction:"horizontal",size:8}),$.createElement(ma,{color:"black"})),start:$.createElement(RE,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},_={id:"widget-setting-language-item-btn",title:$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Language")),start:$.createElement(GE,{color:"gray",size:16}),end:$.createElement($.Fragment,null,$.createElement(tt,{variant:"body",size:"medium"},s),$.createElement(wr,{direction:"horizontal",size:8}),$.createElement(ma,{color:"black"})),onClick:()=>t(F.languages)},V={id:"widget-setting-infinite-approval-item-btn",title:$.createElement($.Fragment,null,$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Infinite approval")),$.createElement(wr,{direction:"horizontal",size:4}),$.createElement(eI,{side:"top",sideOffset:4,container:N(),content:$.createElement(ua,null,$.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},$.createElement("b",null,St.t("Warning")),":\xA0",St.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},$.createElement(qE,{color:"gray"}))),start:$.createElement(QE,{color:"gray",size:16}),end:$.createElement(ZE,{checked:S}),onClick:T},ee={id:"widget-setting-theme-item-btn",type:$.createElement(KE,null),title:$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Theme")),end:$.createElement(oI,null,$.createElement(JE,{container:N(),items:nI,value:n,onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:rI(n)},j=f?[]:[v,B];return g||j.push(P),d||j.push(_),j.push(V),!e?.singleTheme&&!h&&j.push(ee),$.createElement(VE,{type:$.createElement(jE,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:j})}i(Bh,"SettingsLists");var pI=sI("div",{paddingLeft:"$8"});function Wh(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=cI(),r=lI(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return _o.createElement(re,{header:{title:bc.t("Settings")}},_o.createElement(ie,null,o&&_o.createElement(iI,{type:"info",variant:"alarm",title:bc.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:_o.createElement(pI,null,_o.createElement(aI,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},bc.t("Reset")))}),_o.createElement(wc,null),_o.createElement(Bh,null)))}i(Wh,"SettingsPage");import{i18n as eA}from"@lingui/core";import{cancelSwap as tA}from"@rango-dev/queue-manager-rango-preset";import{useManager as oA}from"@rango-dev/queue-manager-react";import{Alert as nA}from"@rango-dev/ui";import zc from"react";import{useParams as rA}from"react-router-dom";import{i18n as ut}from"@lingui/core";import{getCurrentNamespaceOfOrNull as _I,getCurrentStep as DI,getRelatedWalletOrNull as $I}from"@rango-dev/queue-manager-rango-preset";import{Button as dy,CopyIcon as FI,Divider as OI,DoneIcon as UI,IconButton as zI,QuoteCost as HI,RangoExplorerIcon as QI,StepDetails as qI,Tooltip as fy,Typography as Do,useCopyToClipboard as GI}from"@rango-dev/ui";import{useWallets as VI}from"@rango-dev/wallets-react";import gy from"bignumber.js";import{PendingSwapNetworkStatus as Ca}from"rango-types";import Z,{useEffect as hy,useRef as KI,useState as yy}from"react";import{useNavigate as jI}from"react-router-dom";import{i18n as po}from"@lingui/core";var uI=[po.t("Sunday"),po.t("Monday"),po.t("Tuesday"),po.t("Wednesday"),po.t("Thursday"),po.t("Friday"),po.t("Saturday")];function Lh(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?po.t("Today"):`${uI[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Lh,"timeSince");function Mh(t){return t.finishTime?Lh(parseInt(t.finishTime)):Lh(parseInt(t.creationTime))}i(Mh,"getSwapDate");import{PendingSwapNetworkStatus as ga}from"rango-types";import ha from"react";import{i18n as da}from"@lingui/core";import{Button as Ph,Divider as xc,MessageBox as mI}from"@rango-dev/ui";import uo from"react";var _h=i(({onCancel:t,onClose:e})=>uo.createElement(uo.Fragment,null,uo.createElement(xc,{size:20}),uo.createElement(mI,{type:"error",title:da.t("Cancel Swap"),description:da.t("Are you sure you want to cancel this swap?")}),uo.createElement(xc,{size:32}),uo.createElement(Ph,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},da.t("Yes, Cancel it")),uo.createElement(xc,{size:12}),uo.createElement(Ph,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},da.t("No, Continue"))),"CancelContent");import{i18n as fa}from"@lingui/core";import{Button as Dh,Divider as Ec,MessageBox as dI,Typography as fI}from"@rango-dev/ui";import jt from"react";var $h=i(({onDelete:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Ec,{size:20}),jt.createElement(dI,{type:"error",title:fa.t("Delete Transaction"),description:fa.t("Are you sure you want to delete this swap?")}),jt.createElement(Ec,{size:32}),jt.createElement(Dh,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},fa.t("Yes, Delete it")),jt.createElement(Ec,{size:12}),jt.createElement(Dh,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},jt.createElement(fI,{variant:"title",size:"medium",color:"primary"},fa.t("No, Cancel")))),"DeleteContent");import{i18n as Ic}from"@lingui/core";import{PendingSwapNetworkStatus as Ac}from"rango-types";var Nc={[Ac.WaitingForNetworkChange]:{type:"loading",title:Ic.t("Change Network")},[Ac.WaitingForConnectingWallet]:{type:"warning",title:Ic.t("Connect Wallet")},[Ac.NetworkChanged]:{type:"success",title:Ic.t("Network Changed")}};import{warn as gI}from"@rango-dev/logging-core";import{getCurrentStep as hI,getRelatedWalletOrNull as yI}from"@rango-dev/queue-manager-rango-preset";import{MessageBox as SI,Wallet as CI}from"@rango-dev/ui";import{useWallets as TI}from"@rango-dev/wallets-react";import kn,{useState as kI}from"react";import{styled as Bc}from"@rango-dev/ui";var Fh=Bc("div",{display:"flex",justifyContent:"center"}),i6=Bc("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Oh=Bc("img",{width:"100%"});var Uh=i(t=>{let{type:e,title:o,swap:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,c]=kI(),{getWalletInfo:u,state:p}=TI(),m=hI(n),h=m?yI(n,m):null,f=m?.fromBlockchain,d=h?.walletType,g=d?En(p(d)):null,S=d?u(d):null,T=a&&!!d&&!!g&&!!S,{list:C}=Ct(),k=i(()=>{if(d){let w=C.find(x=>x.type===d);w?c(w):gI(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${w}`))}},"handleWalletItemClick");return kn.createElement(kn.Fragment,null,kn.createElement(SI,{type:e,title:o,description:r}),T&&kn.createElement(Fh,null,kn.createElement(CI,{container:N(),title:S.name,image:S.img,type:d,state:g,link:S.installLink,disabled:s,onClick:k})),kn.createElement(ko,{wallet:l,onClose:()=>{c(void 0)},options:{defaultSelectedChains:f?[f]:void 0}}))},"WalletStateContent");function Wc(t){let{state:e,onClose:o,onDelete:n,onCancel:r,swap:a,message:s,walletButtonDisabled:l}=t,c=e===ga.WaitingForNetworkChange||e===ga.WaitingForConnectingWallet||e===ga.NetworkChanged;return ha.createElement(J,{open:!!e,onClose:o,container:document.getElementById(Ue.SWAP_BOX_ID)||document.body},c&&ha.createElement(Uh,{type:Nc[e].type,title:Nc[e].title,swap:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ga.WaitingForNetworkChange}),e==="delete"&&ha.createElement($h,{onClose:o,onDelete:n}),e==="cancel"&&ha.createElement(_h,{onClose:o,onCancel:r}))}i(Wc,"SwapDetailsModal");import{i18n as br}from"@lingui/core";import{Button as Lc,Divider as xr,MessageBox as Qh,TokenAmount as vI,Typography as qh}from"@rango-dev/ui";import ye from"react";import{Link as wI,useNavigate as bI}from"react-router-dom";var zh="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Hh="/profile";function Mc(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:c,chain:u,percentageChange:p,description:m,diagnosisUrl:h}=t,f=bI(),{showProfileBanner:d}=te();return ye.createElement(J,{open:e,onClose:o,container:document.getElementById(Ue.SWAP_BOX_ID)||document.body},n==="success"?ye.createElement(Qh,{type:"success",title:br.t("Swap Successful")},ye.createElement(vI,{direction:"vertical",tooltipContainer:N(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:c,chain:u,percentageChange:p}),ye.createElement(xr,{size:12}),ye.createElement(qh,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):ye.createElement(Qh,{type:"error",title:br.t("Transaction Failed"),description:m}),ye.createElement(xr,{size:30}),n==="success"&&ye.createElement(ye.Fragment,null,d&&ye.createElement(ye.Fragment,null,ye.createElement(wI,{to:Hh},ye.createElement(Oh,{src:zh,alt:"Profile Banner"})),ye.createElement(xr,{size:30})),ye.createElement(Lc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},br.t("Done"))),ye.createElement(xr,{size:12}),h&&ye.createElement(ye.Fragment,null,ye.createElement(Lc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},br.t("Diagnosis")),ye.createElement(xr,{size:12})),ye.createElement(Lc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ye.createElement(qh,{variant:"title",size:"medium",color:"primary"},br.t("See Details"))))}i(Mc,"SwapDetailsCompleteModal");import PI from"react";import{i18n as BI}from"@lingui/core";import{Alert as cy,IconButton as WI,LinkIcon as LI}from"@rango-dev/ui";import mo,{Fragment as MI}from"react";import{Alert as EI,ChevronDownIcon as II,IconButton as AI}from"@rango-dev/ui";import wn,{useState as NI}from"react";import{css as Er,darkTheme as Gh,styled as Pt,Typography as xI}from"@rango-dev/ui";var Vh=Pt(ie,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Gh} &`]:{color:"$secondary500"}}}}}),Kh=Pt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),jh=Pt("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Xh=Pt("div",{padding:"$0 $20 $20 $20"}),K6=Pt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Yh=Pt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),j6=Pt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),vn=Er({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Gh} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Zh=Er({padding:"$5 0"}),ya=Er({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Jh=Er({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Rh=Er({width:"100%",padding:"0 $20 $10"}),ey=Pt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),ty=Pt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Sa=Pt(xI,{wordBreak:"break-word"});import{styled as Pc}from"@rango-dev/ui";var oy=Pc("div",{display:"flex",flexDirection:"column",gap:"$10"}),ny=Pc("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),ry=Pc("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function iy(t){let{message:e}=t,[o,n]=NI(!1);return wn.createElement(EI,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&wn.createElement(AI,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},wn.createElement(ny,{rotated:o},wn.createElement(II,{size:12,color:"gray"}))),footer:wn.createElement(ry,{open:o},wn.createElement(Sa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(iy,"FailedAlert");import{i18n as ay}from"@lingui/core";import{Alert as _c,Button as sy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Dc}from"rango-types";import Ir from"react";function ly(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Ir.createElement(_c,{type:"warning",title:n.shortMessage,action:Ir.createElement(sy,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Dc.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},ay.t("Change"))}):r===Dc.WaitingForConnectingWallet?Ir.createElement(_c,{type:"warning",title:n.shortMessage,action:Ir.createElement(sy,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Dc.WaitingForConnectingWallet)}},ay.t("Connect"))}):Ir.createElement(_c,{type:"warning",title:n.shortMessage})}i(ly,"WarningAlert");function $c(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=qn(a),c=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,p=u&&!s||c&&!a.explorerUrl?.length;return mo.createElement(oy,null,a.explorerUrl?.map((m,h,f)=>{let d=h+m.url,g=h===f.length-1,S=(g&&u||c)&&!p,T=g&&a.status==="failed";return mo.createElement(MI,{key:d},mo.createElement(cy,{type:g&&(S&&"loading"||T&&"error")||"success",title:m.description?`${m.description} Tx`:BI.t("View transaction"),action:m.url&&mo.createElement(WI,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},mo.createElement(LI,{size:12}))}))}),p&&mo.createElement(cy,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&mo.createElement(ly,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&mo.createElement(iy,{message:r}))}i($c,"SwapDetailsAlerts");var py=2e3;var uy=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:dt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:dt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Bn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(c=>({from:{chain:{displayName:dt(c.fromBlockchain,e)??"",image:c.fromBlockchainLogo??""}},to:{chain:{displayName:dt(c.toBlockchain,e)??"",image:c.toBlockchainLogo??""}},swapper:{displayName:Bn(c.swapperId,o)??"",image:c.swapperLogo??"",type:c.swapperType}})):[],alerts:PI.createElement($c,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function my(t){if(qn(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(my,"getStepState");function Fc(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=VI(),c=y().blockchains(),u=y().swappers(),{findToken:p}=y(),m=O.use.retry(),h=te.use.isActiveTab(),f=jI(),[d,g]=GI(py),S=KI(null),[T,C]=yy(null),[k,w]=yy(null),x=i(()=>{r(),C(null)},"onCancel"),I=Ie.use.getNotifications(),A=Ie.use.removeNotification(),E=I(),b=DI(e),v=b?.networkStatus;hy(()=>{E.find(Oe=>Oe.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),A(e.requestId)):k&&w(null))},[e.status,e.requestId]),hy(()=>{L?C(Ca.WaitingForNetworkChange):v===Ca.WaitingForConnectingWallet||v===Ca.NetworkChanged?C(v):C(null)},[v]);let B=am(e),P=b?_I(e,b):null,_=b?$I(e,b):null,V=Mh(e),ee=sm(e),j=i(we=>!!l(we)?.mobileWallet,"isMobileWallet"),L=v===Ca.WaitingForNetworkChange&&!!P&&!!_?.walletType&&(j(_.walletType)||a(_.walletType,P.network)),X=L?s.bind(null,_.walletType,[{namespace:P.namespace,network:P.network}]):void 0,se=im(e,b,l),z=uy({swap:e,switchNetwork:X,showNetworkModal:v,setNetworkModal:C,message:se,blockchains:c,swappers:u}),R=z.length,[le,me]=[e.steps[0],e.steps[R-1]],ce=me.outputAmount||me.expectedOutputAmountHumanReadable,mt=e.steps.reduce((we,Oe)=>we+parseFloat(Oe.feeInUsd||""),0),G=e.steps.find(we=>we.diagnosisUrl)?.diagnosisUrl,D=M(parseFloat(ce||"0")*(me.toUsdPrice||0),4,4),q=M(parseFloat(e.inputAmount)*(le.fromUsdPrice||0),4,4),K=ce?new gy(ce).multipliedBy(me.toUsdPrice||0).toString():"",Se=new gy(e.inputAmount).multipliedBy(le.fromUsdPrice||0).toString(),de=Ot(q,D),Fe=se.detailedMessage.content||se.shortMessage,Ye=e.status==="success"?ut.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(ce,6,6),token:z[R-1].to.token.displayName,conciseAddress:Oo(e.wallets[z[R-1].to.chain.displayName]?.address||""),chain:z[R-1].to.chain.displayName}}):Z.createElement(ty,null,Z.createElement(Do,{variant:"body",size:"medium",color:"neutral700",align:"center"},Fe?"":ut.t("Transaction was not sent."),B?`${ut.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),Fe&&Z.createElement(Sa,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",Fe));return Z.createElement(re,{header:{title:ut.t("Swap Details"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(eo,null,Z.createElement(dy,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},Z.createElement(Do,{size:"medium",variant:"label",color:"error"},ut.t("Delete"))))},footer:ee&&!k&&Z.createElement(dy,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let we=si(e,c,p);m(we),setTimeout(()=>{f("../../")},0)}},ut.t("Try again"))},Z.createElement(Vh,{compact:!0,ref:S},Z.createElement(jh,{className:vn()},Z.createElement(Do,{variant:"label",size:"large",color:"neutral700"},`${ut.t("Request ID")}`),Z.createElement("div",{className:ya()},Z.createElement(Do,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(fy,{container:N(),content:d?ut.t("Copied To Clipboard"):ut.t("Copy Request ID"),open:d||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(zI,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:g.bind(null,o||"")},d?Z.createElement(UI,{size:16,color:"secondary"}):Z.createElement(FI,{size:16,color:"gray"}))),Z.createElement(ey,{target:"_blank",href:`${Yc}/swap/${o}`},Z.createElement(fy,{container:N(),content:ut.t("View on Rango Explorer"),side:"bottom"},Z.createElement(QI,{size:20}))))),Z.createElement("div",{className:vn()},Z.createElement(Do,{variant:"label",size:"large",color:"neutral700"},e.finishTime?ut.t("Finished at"):ut.t("Created at")),Z.createElement(Do,{variant:"label",size:"small",color:"neutral700"},V)),Z.createElement("div",{className:Jh()},Z.createElement(HI,{fee:M(String(mt),2,2),time:bn(Pr(e.steps)),steps:R}),Z.createElement(tr,{from:{price:{value:M(e.inputAmount,6,6),usdValue:q,realUsdValue:Se,realValue:e.inputAmount},token:{displayName:z[0].from.token.displayName,image:z[0].from.token.image},chain:{image:z[0].from.chain.image,displayName:z[0].from.chain.displayName}},to:{price:{value:M(ce,6,6),usdValue:D,realUsdValue:K,realValue:ce||""},token:{displayName:z[R-1].to.token.displayName,image:z[R-1].to.token.image},chain:{image:z[R-1].to.chain.image,displayName:z[R-1].to.chain.displayName}},percentageChange:M(de,2,2),warningLevel:Ut(de??0)})),Z.createElement("div",{className:Rh()},Z.createElement(Do,{variant:"title",size:"small"},ut.t("Swaps steps"))),Z.createElement(OI,{size:8}),Z.createElement(Xh,null,z.map((we,Oe)=>{let Xt=Oe,fo=my(e.steps[Oe]),Gy=fo==="error"||fo==="in-progress"||fo==="warning"||fo==="completed"&&Oe===z.length-1;return Z.createElement(qI,{key:Xt,step:we,type:"swap-progress",ref:S,state:fo,hasSeparator:Oe!==0,tabIndex:Xt,isFocused:Gy,tooltipContainer:N()})}))),Z.createElement(Wc,{state:T,onClose:()=>C(null),onCancel:x,onDelete:n,message:se.detailedMessage.content,swap:e,walletButtonDisabled:!h}),Z.createElement(Mc,{open:!!k,diagnosisUrl:G,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(ce,6,6),usdValue:D,realUsdValue:K,realValue:ce||"",percentageChange:M(de,2,2),token:{displayName:z[R-1].to.token.displayName,image:z[R-1].to.token.image},chain:{image:z[R-1].to.chain.image},description:Ye}))}i(Fc,"SwapDetails");import{i18n as ka}from"@lingui/core";import{Divider as Ty,NotFound as RI,Skeleton as Nr,Typography as va}from"@rango-dev/ui";import Ee from"react";import{i18n as XI}from"@lingui/core";import{Divider as YI,Skeleton as ZI,Typography as JI}from"@rango-dev/ui";import xe from"react";import{css as It,styled as Oc}from"@rango-dev/ui";var Sy=Oc("div",{width:"100%",height:"100%",padding:"$10 $20"}),Ar=Oc("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ta=Oc("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),a3=It({display:"flex",justifyContent:"space-between",alignItems:"center"}),s3=It({display:"flex",justifyContent:"space-between",alignItems:"center"}),l3=It({paddingTop:"$15",display:"flex"}),c3=It({padding:"$15 $0"}),p3=It({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),u3=It({paddingBottom:"$10"}),m3=It({display:"flex",justifyContent:"start",alignItems:"center"}),d3=It({paddingTop:"$5",display:"flex",alignItems:"center"}),f3=It({display:"flex",alignItems:"center"}),g3=It({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Cy=It({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Uc(){return xe.createElement(Sy,null,xe.createElement(nr,{type:"swap-preview"}),xe.createElement("div",{className:"swaps-steps"},xe.createElement(JI,{variant:"title",size:"small"},XI.t("Swaps steps"))),xe.createElement(xe.Fragment,null,xe.createElement(Ar,null,xe.createElement(Lt,{separator:!1}),xe.createElement("div",{className:Cy()},xe.createElement(YI,{direction:"horizontal",size:20}),xe.createElement(ZI,{height:22,variant:"rectangular"}))),xe.createElement(Ta,null),xe.createElement(Ar,null,xe.createElement(Lt,{separator:!1})),xe.createElement(Ta,null),xe.createElement(Ar,null,xe.createElement(Lt,{separator:!1})),xe.createElement(Ta,null),xe.createElement(Ar,null,xe.createElement(Lt,{separator:!1}))))}i(Uc,"LoadingSwapDetails");function ky(t){let{requestId:e,showSkeleton:o}=t;return Ee.createElement(re,{header:{title:ka.t("Swap Details"),suffix:Ee.createElement(eo,null)}},o&&Ee.createElement(Kh,null,Ee.createElement("div",{className:vn()},Ee.createElement(va,{variant:"label",size:"large",color:"neutral700"},`${ka.t("Request ID")}`),Ee.createElement("div",{className:ya()},Ee.createElement(va,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Nr,{width:60,height:10,variant:"rounded"})),Ee.createElement(Ty,{direction:"horizontal",size:4}),Ee.createElement(Nr,{width:16,height:16,variant:"rectangular"}),Ee.createElement(Ty,{direction:"horizontal",size:4}),Ee.createElement(Nr,{width:16,height:16,variant:"rectangular"}))),Ee.createElement("div",{className:vn()},Ee.createElement(va,{className:Zh(),variant:"label",size:"large",color:"neutral700"},Ee.createElement(Nr,{width:60,height:10,variant:"rounded"})),Ee.createElement(va,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Nr,{width:60,height:10,variant:"rounded"}))),Ee.createElement(Uc,null)),!o&&Ee.createElement(Yh,null,Ee.createElement(RI,{title:ka.t("Not found"),description:ka.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(ky,"SwapDetailsPlaceholder");function vy(){let{manager:t,state:e}=oA(),o=!e.loadedFromPersistor,n=yt(t),{requestId:r}=rA(),a=He(),{fetchStatus:s}=y();if(!r)return zc.createElement(nA,{containerStyles:{margin:"20px"},type:"error",title:eA.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",c=r?n.find(({swap:h})=>h.requestId===r):void 0,u=i(()=>{if(c?.id){let h=t?.get(c.id);h&&tA(h)}},"onCancel"),p=i(async()=>{if(c?.id)try{t?.deleteQueue(c.id),a()}catch(h){console.log(h)}},"onDelete"),m=c?.swap;return!m||l?zc.createElement(ky,{requestId:r,showSkeleton:l}):zc.createElement(Fc,{swap:m,requestId:r,onCancel:u,onDelete:p})}i(vy,"SwapDetailsPage");import{i18n as wy}from"@lingui/core";import{Divider as iA,getCategoriesCount as aA,SelectableCategoryList as sA,styled as xy,Typography as lA,Wallet as cA,WalletState as pA}from"@rango-dev/ui";import{useWallets as uA}from"@rango-dev/wallets-react";import _t,{useState as by}from"react";var mA=xy("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),dA=xy(ie,{textAlign:"center"});function Ey(){let{fetchStatus:t}=y(),[e,o]=by("ALL"),n=y().blockchains(),{config:r}=y(),{state:a}=uA(),[s,l]=by(),c=te.use.isActiveTab(),{list:u}=Ct(),p=hp(u,n),h=aA(p)!==1,f=yp(u,e),d=i(g=>{ip(u,r.multiWallets)||l(g)},"handleWalletItemClick");return _t.createElement(re,{header:{title:wy.t("Connect Wallets")}},_t.createElement(dA,null,h&&_t.createElement(_t.Fragment,null,_t.createElement(sA,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),_t.createElement(iA,{size:24})),_t.createElement(lA,{variant:"title",size:"xmedium",align:"center"},wy.t("Choose a wallet to connect.")),_t.createElement(mA,null,f.map((g,S)=>{let C=a(g.type).namespaces,k=`wallet-${S}-${g.type}`,w=Nn(g,C);return _t.createElement(cA,{key:k,...g,state:w?pA.PARTIALLY_CONNECTED:g.state,container:N(),onClick:()=>d(g),isLoading:t==="loading",disabled:!c})}),_t.createElement(ko,{wallet:s,onClose:()=>{l(void 0)}}))))}i(Ey,"WalletsPage");function Iy(){return um(),Ts(),fA([{path:F.home,element:$e.createElement(Jg,null)},{path:F.routes,element:$e.createElement(nh,null)},{path:F.fromSwap,children:[{index:!0,element:$e.createElement(pa,{type:"source"})},{path:F.blockchains,element:$e.createElement(aa,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:$e.createElement(pa,{type:"destination"})},{path:F.blockchains,element:$e.createElement(aa,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:$e.createElement(Wh,null)},{path:F.languages,element:$e.createElement(eh,null)},{path:F.exchanges,element:$e.createElement(uc,{sourceType:"Exchanges"})},{path:F.bridges,element:$e.createElement(uc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:$e.createElement(lg,null)},{path:F.addCustomTokens,children:[{index:!0,element:$e.createElement(rd,null)},{path:F.blockchains,element:$e.createElement(aa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:$e.createElement(Ag,null)},{path:F.swapDetails,element:$e.createElement(vy,null)}]},{path:F.wallets,element:$e.createElement(Ey,null)},{path:F.confirmSwap,element:$e.createElement(jf,null)}])}i(Iy,"AppRoutes");import{useQueueManager as wA}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as bA}from"rango-sdk";import{useContext as xA,useEffect as Py,useState as _y}from"react";import{globalCss as gA}from"@rango-dev/ui";var Ay=i(()=>gA({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Ny(){let{setWatermark:t,setShowProfileBanner:e}=te();return{fetchApiConfig:i(async()=>{let n=await fetch(`${$t("BASE_URL")}/meta/dapp/config?apiKey=${$t("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(Ny,"useFetchApiConfig");import{useWallets as hA}from"@rango-dev/wallets-react";import{useEffect as yA,useRef as SA}from"react";function By(){let{connect:t,state:e}=hA(),o=SA({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);yA(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(By,"useForceAutoConnect");import{isApprovalTX as CA,RouteEventType as Wy,StepEventType as Ly,StepExecutionEventStatus as TA,WidgetEvents as wa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as My}from"react";function Hc(){let t=Ie.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=y();My(()=>{let r=i(a=>{let{event:s,step:l,route:c}=a;if(s.type===Ly.TX_EXECUTION&&s.status===TA.TX_SENT&&!CA(l)||s.type===Ly.SUCCEEDED){let p=[],m=c.wallets[l?.fromBlockchain];if(m){let h=e.find(f=>f.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&f.walletType===m.walletType&&f.chain===l?.fromBlockchain);h&&p.push(h)}if(l?.fromBlockchain!==l?.toBlockchain){let h=c.wallets[l?.toBlockchain];if(h){let f=e.find(d=>d.address?.toLocaleLowerCase()===h.address?.toLocaleLowerCase()&&d.walletType===h.walletType&&d.chain===l?.toBlockchain);f&&p.push(f)}}if(p.length>0){let h=n(),d=[{blockchain:l.fromBlockchain,address:l.fromSymbolAddress,symbol:l.fromSymbol},{blockchain:l.toBlockchain,address:l.toSymbolAddress,symbol:l.toSymbol}].filter(g=>h.some(S=>S.blockchain===g.blockchain&&S.address?.toLocaleLowerCase()===g.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===g.symbol?.toLocaleLowerCase()));o(p,{selectedCustomTokens:d,shouldFetchCustomTokens:d.length>0})}}t(s,c)},"handleStepEvent");return Ce.on(wa.StepEvent,r),()=>Ce.off(wa.StepEvent,r)},[Ce,e]),My(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Wy.FAILED||s.type===Wy.SUCCEEDED)&&t(s,l)},"handleRouteEvent");return Ce.on(wa.RouteEvent,r),()=>Ce.off(wa.RouteEvent,r)},[Ce])}i(Hc,"useSubscribeToWidgetEvents");import{useManager as kA}from"@rango-dev/queue-manager-react";import{useEffect as vA}from"react";function Qc(){let{isSynced:t,syncNotifications:e}=Ie(),{manager:o,state:n}=kA();vA(()=>{Ie.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(yt(o))},[Ie.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Qc,"useSyncNotifications");function qc(){By(),Ay(),Hc(),Qc();let t=y().blockchains(),{canSwitchNetworkTo:e}=Ai(),[o,n]=_y(null),[r,a]=_y(),s=xA(ni),l=t.filter(bA),{fetchApiConfig:c}=Ny();Py(()=>()=>pm(),[]),wA({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Py(()=>(Co.init(),Ie.persist.hasHydrated()||Ie.persist.rehydrate(),s.onConnectWallet(u=>{n(p=>{if(!p||p.walletType!==u.walletType)return u;let m={...p};return u.network&&(m.network=u.network),u.accounts&&(m.accounts=u.accounts),m})}),s.onDisconnectWallet(u=>{a(u),n(p=>u===p?.walletType?null:p)}),c().catch(console.log),Co.destroy),[])}i(qc,"useBootstrap");import{styled as EA}from"@rango-dev/ui";var Dy=EA("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function ba(){qc();let{config:t}=y(),{activeTheme:e}=pn(t?.theme||{}),{activeLanguage:o}=lo();return Gc.createElement(IA,{language:o},Gc.createElement(Dy,{id:"swap-container",className:e()},Gc.createElement(Iy,null)))}i(ba,"Main");import{setSolanaSignerConfig as KA}from"@rango-dev/signer-solana";import Kc,{useEffect as Hy,useMemo as jA}from"react";import{useState as AA}from"react";var NA=i(()=>{let[t,e]=AA(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=rp(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),$y=NA;import{checkWaitingForNetworkChange as BA,makeQueueDefinition as WA}from"@rango-dev/queue-manager-rango-preset";import{Provider as LA}from"@rango-dev/queue-manager-react";import{useWallets as MA}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as PA}from"@rango-dev/wallets-shared";import{isEvmBlockchain as _A}from"rango-types";import DA,{useMemo as $A}from"react";function FA(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=MA(),l=$A(()=>WA({API_KEY:t.apiKey||$t("API_KEY"),BASE_URL:$t("BASE_URL"),emitter:{emit:Ce.emit}}),[t.apiKey]),{blockchains:c,connectedWallets:u}=y(),p=c(),m={blockchains:u.map(w=>({accounts:[w],name:w.chain}))},h=i(async(w,x)=>a(w,x.network)?await r(w,[x]):void 0,"switchNetwork"),f=i(w=>!!s(w).mobileWallet,"isMobileWallet"),d=p.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),g=p.filter(_A),S=i(w=>{let{supportedChains:x}=s(w);return In(x)},"getSupportedChainNames"),T=e(),C={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:PA(g),getSupportedChainNames:S},getSigners:o,wallets:m,providers:T,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:f},k=te.use.isActiveTab();return DA.createElement(LA,{queuesDefs:[l],context:C,onPersistedDataLoaded:w=>{BA(w)},isPaused:!k},t.children)}i(FA,"QueueManager");var Fy=FA;import{useManager as QA}from"@rango-dev/queue-manager-react";import qA,{createContext as GA,useContext as VA}from"react";function Oy(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=O();return i(u=>{let{fromBlockchain:p,fromToken:m,toBlockchain:h,toToken:f,requestAmount:d}=u,g={blockchains:e,tokens:o};if(p!==void 0){let S=e.find(T=>T.name===p)??null;n(S)}if(m!==void 0){let S=m?t(m)??null:null;r({meta:g,token:S})}if(h!==void 0){let S=e.find(T=>T.name===h)??null;a(S)}if(f!==void 0){let S=f?t(f)??null:null;s({meta:g,token:S})}d!==void 0&&l(d)},"updateQuoteInputs")}i(Oy,"useUpdateQuoteInputs");import{cancelSwap as OA,getCurrentNamespaceOfOrNull as UA,getCurrentStep as zA,getRelatedWalletOrNull as HA}from"@rango-dev/queue-manager-rango-preset";var xa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return yt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=si(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&OA(o)}getCurrentStepInfo(e){let o=zA(e);return{step:o,wallet:o?HA(e,o):null,network:o?UA(e,o)?.network:null}}};var Uy=GA(void 0);function Vc(t){let{manager:e}=QA(),o=te.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:l}=y(),c=new xa(e,{retrySwap:n,findToken:r}),{fetchingWallets:u}=y(),p=pp(a()),m=y().blockchains(),h=y().tokens(),f=y().swappers(),d=y().fetchStatus,g=lo().resetLanguage,S=Ie().getNotifications(),T=Ie().clearNotifications,C=Oy(),{fromBlockchain:k,toBlockchain:w,fromToken:x,toToken:I,inputAmount:A}=O(),E={isActiveTab:o,setCurrentTabAsActive:Co.forceClaim,history:c,wallets:{isLoading:u,details:s(),totalBalance:p,refetch:async b=>l(b)},meta:{blockchains:m,tokens:h,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:S,clearAll:T},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:w?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:C}};return qA.createElement(Uy.Provider,{value:E},t.children)}i(Vc,"WidgetInfo");function zy(){let t=VA(Uy);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(zy,"useWidget");function Ea(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=$y();return Hy(()=>{n&&r(n)},[n]),jA(()=>{Mp({API_KEY:o?.apiKey||Br,BASE_URL:o?.apiUrl||Xc})},[o.apiKey,o.apiUrl]),Hy(()=>{t.config?.signers?.customSolanaRPC&&KA("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Kc.createElement(ri,{config:o,onUpdateState:e},Kc.createElement(Fy,{apiKey:o.apiKey},Kc.createElement(Vc,null,t.children)))}i(Ea,"WidgetProvider");function Qy(t){let e=t.config?.externalWallets;return Ia.createElement(Lu,null,e?Ia.createElement(ba,null):Ia.createElement(Ea,{config:t.config??Hr},Ia.createElement(ba,null)))}i(Qy,"Widget");function qy(){let{on:t,off:e}=Ce;return{on:t,off:e}}i(qy,"useWidgetEvents");var v9={DerivationPath:On,Namespaces:Dn,Detached:Fn,isOnDerivationPath:zn,isOnNamespace:Un,isOnDetached:Hn};export{j7 as EventSeverity,Go as MainEvents,r9 as Networks,s9 as PendingSwapNetworkStatus,Ha as QuoteEventTypes,X7 as RouteEventType,Aa as SUPPORTED_FONTS,v9 as StatefulConnect,Y7 as StepEventType,Z7 as StepExecutionBlockedEventStatus,J7 as StepExecutionEventStatus,Ue as UI_ID,qa as UiEventTypes,Qa as WalletEventTypes,o9 as WalletEvents,i9 as WalletTypes,Qy as Widget,Go as WidgetEvents,Ea as WidgetProvider,ri as WidgetWallets,_s as customizedThemeTokens,e9 as readAccountAddress,Uo as useStatefulConnect,Ct as useWalletList,Ai as useWallets,zy as useWidget,qy as useWidgetEvents,jS as widgetEventEmitter};
|
|
1
|
+
var Vy=Object.defineProperty;var i=(t,e)=>Vy(t,"name",{value:e,configurable:!0});import{EventSeverity as j7,RouteEventType as X7,StepEventType as Y7,StepExecutionBlockedEventStatus as Z7,StepExecutionEventStatus as J7}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as e9}from"@rango-dev/wallets-core/legacy";import{useWallets as Ai,Events as o9}from"@rango-dev/wallets-react";import{Networks as r9,WalletTypes as i9}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as s9}from"rango-types";import{Divider as nT}from"@rango-dev/ui";import Zt,{useEffect as rT,useRef as iT,useState as xu}from"react";import{WalletState as sS}from"@rango-dev/ui";import{useWallets as lS}from"@rango-dev/wallets-react";import{useReducer as cS}from"react";import{BlockchainCategories as eS,WalletState as nt}from"@rango-dev/ui";import{legacyReadAccountAddress as tS}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as oS,getCosmosExperimentalChainInfo as nS,isEvmAddress as rS,KEPLR_COMPATIBLE_WALLETS as S0,Networks as lp}from"@rango-dev/wallets-shared";import Fo from"bignumber.js";import{isCosmosBlockchain as iS}from"rango-types";import Ky from"bignumber.js";var pe=new Ky(0);import{WalletTypes as jy}from"@rango-dev/wallets-shared";var go="~",jc=[jy.LEAP];import{BlockchainCategories as Na,WalletState as Ry}from"@rango-dev/ui";import{TransactionType as Wr}from"rango-sdk";import{UI_ID as Xy}from"@rango-dev/ui";var Br="c6381a79-2817-4602-83bf-6a641a409e32",Xc="https://api.rango.exchange",Yc="https://explorer.rango.exchange",Ue={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Xy};var Zc="Roboto",Aa=[{name:"Roboto",value:"Roboto",url:""},{name:"Times New Roman",value:"Times New Roman",url:"https://fonts.cdnfonts.com/css/times-new-roman"},{name:"Arial",value:"Arial",url:""},{name:"Open Sans",value:"Open Sans",url:"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap"},{name:"Noto Sans",value:"Noto Sans",url:"https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Montserrat",value:"Montserrat",url:"https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Poppins",value:"Poppins",url:"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"},{name:"Roboto Condensed",value:"Roboto Condensed",url:"https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Roboto Mono",value:"Roboto Mono",url:"https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap"},{name:"Oswald",value:"Oswald",url:"https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"},{name:"Raleway",value:"Raleway",url:"https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap"},{name:"Sedan",value:"Sedan",url:"https://fonts.googleapis.com/css2?family=Sedan:ital@0;1&display=swap"},{name:"Inter",value:"Inter",url:"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"},{name:"Rubik",value:"Rubik",url:"https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap"},{name:"Lora",value:"Lora",url:"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap"},{name:"Barlow Condensed",value:"Barlow Condensed",url:"https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"}];function $o(t){return Array.from(new Set(t))}i($o,"removeDuplicateFrom");function Lr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Lr,"debounce");function ot(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(ot,"containsText");function ep(t,e){return t.toLowerCase()===e.toLowerCase()}i(ep,"exactText");function tp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(tp,"startWithText");var N=i(()=>document.getElementById(Ue.SWAP_BOX_ID),"getContainer"),ho=i(()=>document.getElementById(Ue.EXPANDED_BOX_ID),"getExpanded");function op(t,e,o){let n=!!e&&ep(e,t),r=!!o&&ep(o,t);return n!==r?n?-1:1:0}i(op,"compareExactMatchText");function Ba(t,e,o){let n=!!e&&ot(e,t),r=!!o&&ot(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ba,"compareContainsText");function Wa(t,e,o){let n=!!e&&tp(e,t),r=!!o&&tp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Wa,"compareStartWithText");function np(t,e,o){if(!o)return 0;let n=op(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=op(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Wa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ba(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Wa(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ba(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Wa(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ba(o,t.address,e.address);if(r!==0)return r}return 0}i(np,"compareWithSearchFor");var Mr=i((t,e)=>{switch(e){case Na.ALL:return!0;case Na.UTXO:return t===Wr.TRANSFER;case Na.OTHER:return t!==Wr.TRANSFER&&t!==Wr.COSMOS&&t!==Wr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),rp=i(t=>Aa.find(o=>o.value===t)?.url,"getFontUrlByName");function ip(t,e){let o=!!t.find(n=>n.state===Ry.CONNECTED);return e===!1&&o}i(ip,"isSingleWalletActive");function ap(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(ap,"memoizedResult");import{BigNumber as sp}from"bignumber.js";var bn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new sp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new sp(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Pr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var At=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),xn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function En(t){return t.connected?nt.CONNECTED:t.connecting?nt.CONNECTING:t.installed?nt.DISCONNECTED:nt.NOT_INSTALLED}i(En,"mapStatusToWalletState");function cp(t,e,o,n){return o.filter(r=>!jc.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:c}=t(r);return s&&(!l||!!n&&c!==n)?!1:n?!!a.find(p=>p.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:c,needsNamespace:u,supportedChains:p,needsDerivationPath:m,properties:h,isHub:f}=e(r),d=$o(p.map(S=>S.type)),g=En(t(r));return{title:a,image:s,link:oS(l),state:g,type:r,showOnMobile:c,needsNamespace:u,blockchainTypes:d,needsDerivationPath:m,properties:h,isHub:f}})}i(cp,"mapWalletTypesToWalletInfo");function In(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(In,"walletAndSupportedChainsNames");function Ma(t,e,o,n,r){let a=[];function s(c,u,p){if(!!!a.find(h=>h.chain===c)){let h={address:u,chain:c,walletType:t,isContractWallet:p??!1};a.push(h)}}i(s,"addAccount");let l=n||[];return e.forEach(c=>{let{address:u,network:p}=tS(c),m=l.length>0,h=l.includes(p),f=p===lp.Unknown;if(m&&!h&&!f)return;let g=p===lp.Unknown&&rS(u);if(f&&!g)return;o.includes(p)||g?r?s(p,u.toLowerCase(),r):l.filter(C=>o.includes(C)).forEach(C=>{s(C,u.toLowerCase())}):s(p,u)}),a}i(Ma,"prepareAccountsForWalletStore");function yo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:c}=r;c.forEach((u,p)=>{let m=u.from.blockchain,h=u.to.blockchain,f=a===o.swaps.length-1,d=p===c.length-1;(!f&&!d||f&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(h)})}e==="all"&&n.add(l)}),Array.from(n)}i(yo,"getQuoteChains");function An(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(An,"isAccountAndWalletMatched");var pp=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?La(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new Fo(pe));return aS(e.toString())},"calculateWalletUsdValue");function aS(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(aS,"numberWithThousandSeparator");var $r=i((t,e)=>{let o=nS(Object.entries(t).map(([,n])=>n).filter(iS));return o&&o[e]?.experimental},"isExperimentalChain");function La(t,e){return new Fo(t).shiftedBy(-e).toFixed()}i(La,"representAmountInNumber");function Fr(t){if(!t)return null;let e=La(t.amount,t.decimals),o=t.usdValue?La(t.usdValue,t.decimals):null,n=M(e,8,8),r=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Fr,"formatBalance");function up(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Fo(t.usdValue).shiftedBy(-t.decimals):pe,n=e&&e.usdValue?new Fo(e.usdValue).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Fo(t.amount).shiftedBy(-t.decimals):pe,n=e&&e.amount?new Fo(e.amount).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(up,"compareTokenBalance");function Dt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Dt,"areTokensEqual");function mp(t,e){return t.map(o=>({isPartiallyConnected:Nn(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===nt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===nt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===nt.CONNECTED)-+(o.state===nt.CONNECTED)||+(n.state===nt.DISCONNECTED||n.state===nt.CONNECTING)-+(o.state===nt.DISCONNECTED||o.state===nt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(mp,"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 dp({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(dp,"getAddress");var fp=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function gp(t){return t.map(e=>e.state).join("-")}i(gp,"hashWalletsState");function hp(t,e){let o=new Set;return t.forEach(r=>{r.blockchainTypes.forEach(a=>{o.add(a)})}),e.filter(r=>o.has(r.type))}i(hp,"filterBlockchainsByWalletTypes");function yp(t,e){return e===eS.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Mr(n,e))return!0;return!1})}i(yp,"filterWalletsByCategory");function Nn(t,e){return!t.isHub||!t.needsNamespace||t.state!==nt.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(Nn,"checkIsWalletPartiallyConnected");function Sp(t){return!!t.derivationPath}i(Sp,"isStateOnDerivationPathStep");function Cp(t){return!!t.namespace}i(Cp,"isStateOnNamespace");var Or={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Tp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Or;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Or;default:throw new Error("Action hasn't been defined.")}}i(Tp,"reducer");function Uo(){let{state:t,disconnect:e,connect:o}=lS(),[n,r]=cS(Tp,Or),a=i(async(p,m,h)=>{r({type:"reset"});try{let f=m?.map(d=>({...d,network:void 0}));return await o(p,f),{status:"connected"}}catch(f){let d=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:f})}},"runConnect"),s=i(async(p,m)=>{if(p.state===sS.DISCONNECTED){let f=!!p.isHub,d=p.properties?.find(g=>g.name==="detached")?.value;if(f&&!d?.length||!f&&!p.needsNamespace)return await a(p.type,void 0,m);if(f&&d?.length&&d.length>1||!f&&p.needsNamespace?.data.length&&p.needsNamespace.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:p,defaultSelectedChains:m?.defaultSelectedChains}}),{status:"namespace"};if(f&&d?.length===1||!f&&p.needsNamespace?.data.length===1){if(p.needsNamespace&&p.needsDerivationPath){let g=p.needsNamespace.data[0];return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:g.value}}),{status:"derivation-path"}}return await a(p.type,p.needsNamespace?.data.map(g=>({namespace:g.value})),m)}}if(p.isHub){let d=t(p.type).namespaces;if(Nn(p,d))return r({type:"detached",payload:{targetWallet:p,selectedNamespaces:null}}),{status:"Detached"}}return m?.disconnectIfConnected?(await u(p.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(p,m)=>{let h=p.needsNamespace?.selection==="single",f=p.needsDerivationPath,d=m[0];if(!d)throw new Error("To confirm a namespace, you should select at least one namespace.");if(h&&f)return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:d}}),{status:"derivation-path"};if(!Cp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let g=m.map(S=>({namespace:S}));return r({type:"detached",payload:{targetWallet:p,selectedNamespaces:g?.map(S=>S.namespace)||null}}),{status:"Detached"}},"handleNamespace"),c=i(async p=>{if(!p)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Sp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:p}];return await a(m,f)},"handleDerivationPath"),u=i(async p=>{let m=t(p);return m.connected||m.connecting?(await e(p),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:l,handleDerivationPath:c,getState:()=>n,resetState:p=>{r(p==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Uo,"useStatefulConnect");import{WalletState as Ya}from"@rango-dev/ui";import{useWallets as iC}from"@rango-dev/wallets-react";import{detectMobileScreens as aC,KEPLR_COMPATIBLE_WALLETS as sC,WalletTypes as Pn}from"@rango-dev/wallets-shared";import{useCallback as lC,useEffect as cC}from"react";import eC,{createContext as tC,useContext as oC,useEffect as nC,useRef as rC}from"react";import{create as JS}from"zustand";import{persist as RS}from"zustand/middleware";import{allProviders as pS}from"@rango-dev/provider-all";var Pa=class{static{i(this,"CacheService")}#e=new Map;get(e){return this.#e.get(e)}set(e,o){this.#e.set(e,o)}remove(e){this.#e.delete(e)}clear(){this.#e.clear()}},zo=new Pa;import{defineVersions as vp,pickVersion as wp,Provider as _a}from"@rango-dev/wallets-core";function bp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=xp(a);return s instanceof _a?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof _a?o.push(vp().version("1.0.0",n).build()):o.push(vp().version("0.0.0",n).build())}),o}return t}i(bp,"matchAndGenerateProviders");function xp(t){try{return wp(t,"1.0.0")[1]}catch{return wp(t,"0.0.0")[1]}}i(xp,"pickProviderVersionWithFallbackToLegacy");function Ep(t){return t.map(o=>xp(o)).map(o=>o instanceof _a?o.id:o.config.type)}i(Ep,"configWalletsToWalletName");function Ur(t,e){return e.find(o=>o.name===t)?.displayName}i(Ur,"getBlockchainDisplayNameFor");function dt(t,e){return e.find(o=>o.name===t)?.shortName}i(dt,"getBlockchainShortNameFor");function Ip(t,e){return e.find(o=>o.name===t)?.logo}i(Ip,"getBlockchainImage");function Bn(t,e){return e.find(o=>o.id===t)?.title}i(Bn,"getSwapperDisplayName");function So(t,e){return e.find(o=>o.name===t)??null}i(So,"findBlockchain");function Da(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(Da,"isTokenNative");function ft(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(ft,"createTokenHash");function Ho(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Ho,"isValidTokenAddress");function Wn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(c=>{typeof c!="string"&&(c=ft(c));let u=o.tokensMapByTokenHash.get(c);u&&(n[c]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(c=>{l.has(c)||a(o.tokensMapByBlockchainName[c])})}return s.forEach(l=>{let c=r[l];if(!c&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}c&&(c.isExcluded?(a(o.tokensMapByBlockchainName[l]),c.tokens.forEach(u=>{let p=ft(u);delete n[p]})):a(c.tokens))}),Object.values(n)}i(Wn,"matchTokensFromConfigWithMeta");function zr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(zr,"getSupportedBlockchainsFromConfig");function Np(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Np,"makeProvidersOptionsFromConfig");var Hr={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"}},uS={clientUrl:void 0},mS={liquiditySources:void 0};function Ap(t){let e=Np(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return pS(o).map(a=>a())}i(Ap,"generateProviders");var Bp=i((t,e,o)=>{let n=Ap({...Hr,...t});return{config:{...Hr,...t},iframe:uS,campaignMode:mS,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l}=o(),c=Wn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}}),u=Wn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}});zo.set("supportedSourceTokens",c),zo.set("supportedDestinationTokens",u),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=Ap(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Np(a);return bp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Wp}from"rango-types";var Lp=[Wp.EVM,Wp.SOLANA],Qr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as dS}from"rango-sdk";var $a={API_KEY:Br};function $t(t){return $a[t]||""}i($t,"getConfig");function Mp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),$a=e,$a}i(Mp,"initConfig");var Pp=20,_p=25,Fa="theme-widget",Oa=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Dt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Dt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Ua=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Dp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var qr,rt=i(()=>qr||(qr=new dS($t("API_KEY"),$t("BASE_URL")),qr),"httpService");import{i18n as Up}from"@lingui/core";var $p=[.5,1,3],Fp=1,Gr=5,Ln=30,Op=0;function Vr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return $o(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(c=>c===s.swapperGroup)),l&&s.types.map(c=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:c,selected:!e.includes(s.swapperGroup)})})}}),n}i(Vr,"getUniqueSwappersGroups");function zp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(zp,"sortLiquiditySourcesByGroupTitle");function Ze(t,e){return e?.[t]==="hidden"}i(Ze,"isFeatureHidden");function Qo(t,e){return e?.[t]==="enabled"}i(Qo,"isRoutingEnabled");var Hp=i((t,e,o)=>Ze("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function Qp(t){return t==Op?{type:"error",message:Up.t("Slippage must be greater than or equal to 0.01")}:t>Gr&&t<=Ln?{type:"warning",message:Up.t("Your transaction is at risk of being frontrun due to high slippage tolerance.")}:null}i(Qp,"getSlippageValidation");var qp=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let c=zr({config:a}),u=r;return c.length>0&&(u=u.filter(p=>c.includes(p.name))),u.filter(p=>Lp.includes(p.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(c=>!(s.length>0&&!s.includes(c.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),l=Array.from(n.values()),c=e()._blockchainsMapByName;if(!o||!o.type)return l;let u=o.type==="source"?"from":"to",p=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=zo.get(p);m?.length||(m=Wn({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),zo.set(p,m)),m=Hp(m,s,a.features);let h=e().blockchains({type:o.type});return m.filter(d=>o.blockchain&&d.blockchain!==o.blockchain||!h.some(g=>g.name===d.blockchain)?!1:o.searchFor?!!(ot(d.symbol,o.searchFor)||ot(d.address||"",o.searchFor)||ot(d.name||"",o.searchFor)):!0).sort((d,g)=>{let S=e().isTokenPinned(d,o.type),T=e().isTokenPinned(g,o.type);if(S!==T)return S?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(d),A=o.getBalanceFor(g),E=up(I,A);if(E!==0)return E}let C=c.get(d.blockchain),k=c.get(g.blockchain),w=Da(d,C),x=Da(g,k);if(w!==x)return w?-1:1;if(d.isPopular!==g.isPopular)return d.isPopular?-1:1;if(o.searchFor){let I=np(d,g,o.searchFor);if(I)return I}return d.isSecondaryCoin!==g.isSecondaryCoin?d.isSecondaryCoin?1:-1:C&&k?C.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=ft(o),s=n.get(a);return s||(s=r.find(l=>ft(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Dt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let p=a?.includes(u.swapperGroup);return s||!a||a.length===0?!p:p}).sort(zp)},fetch:async()=>{try{let{routing:o}=e().config,n=Qo("enableCentralizedSwappers",o),r=await rt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},c=[],u=r.popularTokens,p=r.swappers.filter(f=>f.enabled),m=new Set;r.tokens.forEach(f=>{m.add(f.blockchain),c.push(f)}),r.blockchains.sort((f,d)=>f.sort-d.sort).forEach(f=>{f.enabled&&m.has(f.name)&&a.set(f.name,f)}),c.forEach(f=>{let d=ft(f);l[f.blockchain]||(l[f.blockchain]=[]),s.set(d,f),l[f.blockchain].push(d)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:u,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as fS,Catalonia as gS,Chinese as Gp,Denmark as hS,English as yS,Finland as SS,French as CS,German as TS,Greece as kS,Hungary as vS,India as wS,Indonesian as bS,Italian as xS,Japanese as ES,Korea as IS,Lithuania as AS,Malay as NS,Netherlands as BS,Pakistan as WS,Philippines as LS,Poland as MS,Portuguese as PS,Russian as _S,SaudiArabia as DS,Serbia as $S,Slovakia as FS,SouthAfrica as OS,Spanish as US,Swahili as zS,Swedish as HS,Thai as QS,Turkish as qS,Ukrainian as GS,Vietnamese as VS}from"@rango-dev/ui";var Vp=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:OS},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:DS},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:fS},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:gS},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Gp},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Gp},{title:"Danish",label:"Dansk",local:"da",SVGFlag:hS},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:BS},{title:"English",label:"English",local:"en",SVGFlag:yS},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:LS},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:SS},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:CS},{title:"German",label:"Deutsch",local:"de",SVGFlag:TS},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:kS},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:wS},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:vS},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:bS},{title:"Italian",label:"Italiana",local:"it",SVGFlag:xS},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:ES},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:IS},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:AS},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:NS},{title:"Polish",label:"Polski",local:"pl",SVGFlag:MS},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:PS},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:_S},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:$S},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:FS},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:US},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:zS},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:HS},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:QS},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:qS},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:GS},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:WS},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:VS}],qo="en";var Kp=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Fp,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let c=s===o,u=l<=9;return c&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=$o(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Ze("theme",n),s=Ze("language",n),l=Ze("liquiditySource",n),c=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...c&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||qo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||qo}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=zr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Xa from"bignumber.js";import KS from"mitt";var Ce=KS(),jS={on:Ce.on,off:Ce.off};import{WidgetEvents as jp}from"@rango-dev/queue-manager-rango-preset";var Ha=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Ha||{}),Qa=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Qa||{}),qa=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(qa||{}),Go=(a=>(a[a.RouteEvent=jp.RouteEvent]="RouteEvent",a[a.StepEvent=jp.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Go||{});var Xp=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...l]=a;e(c=>({...typeof s=="function"?s(c):s,lastUpdatedAt:+new Date}),...l)},"modifedSet"),o,n),"keepLastUpdated");import Yp from"bignumber.js";function Ft(t){return`${t.blockchain}${go}${t.address}${go}${t.symbol}`}i(Ft,"createAssetKey");function Zp(t,e){return`${Ft(e)}${go}${t}`}i(Zp,"createBalanceKey");function Mn(t){let[e,o,n]=t.split(go);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Mn,"extractAssetFromBalanceKey");function Ga(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Ft(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Yp(r??pe).multipliedBy(o[s].amount).toString():""})})}),o}i(Ga,"computeNextBalancesWithNewPrices");function Va(t,e){let o={};return t.balances?.forEach(n=>{let r=Zp(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,l=n.price??e().findToken(n.asset)?.usdPrice,c=l?new Yp(l??pe).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:c};o[r]=u}),o}i(Va,"createBalanceStateForNewAccount");function Ka(t,e){for(let o in e){let n=Mn(o),r=Ft(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(Ka,"updateAggregatedBalanceStateForNewAccount");function XS(t,e){let o=Mn(e),n=Ft(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(XS,"removeBalanceFromAggregatedBalance");function ja(t,e,o){let n=t.connectedWallets.filter(c=>c.walletType===e);t.connectedWallets.forEach(c=>{c.walletType!==e&&(n=n.filter(u=>!(u.chain===c.chain&&u.address===c.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(c=>o.chains?.includes(c.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(c=>c.namespace?o.namespaces?.includes(c.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(c=>{let u=Mn(c);!!n.find(m=>Zp(m.address,{address:u.address,blockchain:m.chain,symbol:u.symbol})===c)?a=XS(a,c):r[c]=s[c]}),{_balances:r,_aggregatedBalances:a}}i(ja,"computeNextStateAfterWalletBalanceRemoval");function YS(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(YS,"matchWalletDetailsWithConnectedWallet");var ZS=ap(),Jp=Xp((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>An(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>An(s,a))?{...a,loading:!1,error:!1,explorerUrl:YS(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>An(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n)=>{let r=e().connectedWallets,a=o.filter(s=>!r.some(l=>An(s,l)));if(a.length>0){let s=a.map(l=>{let c=!r.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:c,namespace:n,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!s.some(p=>p.walletType===u.walletType&&p.chain===u.chain)),...s]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((c,u)=>((c[u.blockchain]||=[]).push(u),c),{}),s=new Set,l=r.reduce((c,u)=>{let p=`${u.address}-${u.chain}`;return s.has(p)||(s.add(p),a[u.chain]&&(c[u.address]||(c[u.address]=[]),c[u.address].push(...a[u.chain]))),c},{});Object.entries(l).forEach(async([c,u])=>{try{let{balances:p}=await rt().getMultipleTokenBalance({assets:u.map(({symbol:m,address:h,blockchain:f})=>({symbol:m,address:h,blockchain:f})),walletAddress:c});if(p){let m=e()._balances,h=e()._aggregatedBalances;p.forEach(f=>{if(parseFloat(f.amount.amount)===0)return;let d={blockChain:f.asset.blockchain,balances:[f],address:c},g={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};Ga(g,d,m);let S=Va(d,e);h=Ka(h,S),m={...m,...S}}),t(f=>({_balances:{...f._balances,...m},_aggregatedBalances:h}))}}catch(p){console.error(p)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n)=>{Ce.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ja(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(Ce.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(l=>a.includes(l.chain)?(a=a.filter(c=>c!==l.chain),{...l,selected:!0}):l);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(c=>({address:c.address,blockchain:c.chain})),s;try{s=await rt().getWalletsDetails(a)}catch(c){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${c}`);return}let l=s.wallets;if(l){let c=e()._balances,u=e()._aggregatedBalances;l.forEach(m=>{if(m.failed)return;let h={_balances:c,_aggregatedBalances:u,connectedWallets:e().connectedWallets,findToken:e().findToken};Ga(h,m,c);let{_balances:f,_aggregatedBalances:d}=ja(h,r,{chains:[m.blockChain]});if(u=d,c=f,!e().connectedWallets.find(S=>S.walletType===r&&S.address===m.address&&S.chain===m.blockChain))return;let g=Va(m,e);u=Ka(u,g),c={...c,...g}}),t(m=>({_balances:{...m._balances,...c},_aggregatedBalances:u})),e().setConnectedWalletRetrievedData(o,l);let{retryOnFailedBalances:p=!0}=n||{};if(p){let m=l.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));m.length>0&&await e().fetchMainTokensBalances(m,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Ft(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let c=a[0];return n[c]}let l=n[a[0]];return a.forEach(c=>{let u=n[c],p=new Xa(u.amount),m=new Xa(l.amount);p.isGreaterThan(m)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,l)=>{let c=n[l],[,,,u]=l.split(go);return u===o&&(s[l]=c),s},{})},getConnectedWalletsDetails:()=>ZS(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,l)=>{let c=r[l],u=Mn(l);if(u.blockchain===n.chain){let p=e().findToken(u),m=c.amount?new Xa(c.amount).shiftedBy(-c.decimals):pe;s.push({chain:n.chain,symbol:u.symbol,ticker:u.symbol,address:u.address,rawAmount:c.amount,decimal:c.decimals,amount:m.toString(),logo:p?.image||null,usdPrice:p?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Rp(t){return JS()(RS((...e)=>({...Jp(...e),...qp(...e),...Kp(...e),...Bp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,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}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Rp,"createAppStore");var eu=tC(null);function y(){let t=oC(eu);if(nC(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function tu(t){let e=rC();return e.current||(e.current=Rp(t.config)),eC.createElement(eu.Provider,{value:e.current},t.children)}i(tu,"AppStoreProvider");function Ct(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=y(),{state:r,getWalletInfo:a}=iC(),s=y().blockchains(),{handleDisconnect:l}=Uo(),c=Ep(n()),u=cp(r,a,c,e);u=aC()?u.filter(g=>g.showOnMobile!==!1&&r(g.type).installed):u;let p=mp(u,r),m=i(g=>!o.find(S=>S.walletType===g&&S.chain===e),"isExperimentalChainNotAdded"),h=lC(()=>{let g=u?.filter(S=>S.state===Ya.CONNECTING)||[];for(let S of g)l(S.type)},[gp(u)]);cC(()=>()=>{h()},[]);let f=i(g=>{let S=g.find(C=>C.type===Pn.DEFAULT);return!S||S.state===Ya.NOT_INSTALLED?!1:g.filter(C=>C.state!=Ya.NOT_INSTALLED&&![Pn.DEFAULT,Pn.WALLET_CONNECT_2,Pn.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i((g,S,T)=>$r(T,S)&&m(g)&&!sC.includes(g)||g==Pn.DEFAULT&&!f(u),"shouldExcludeWallet");return{list:p.filter(g=>!d(g.type,e??"",s)),terminateConnectingWallets:h}}i(Ct,"useWalletList");import{Modal as dC}from"@rango-dev/ui";import fC from"react";import{create as mC}from"zustand";var ou="rango-widget";var _n=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(ou),this.tabId=Math.trunc(Math.random()*1e5),this.events=e}static{i(this,"TabManager")}initEvents(){this.channel.addEventListener("message",this.handleMessageEvent),document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("resume",this.handleResume)}claimedByCurrentTab(e){let o=this.lastTryClaim&&this.lastTryClaim<e;if(this.isClaimed()||o){let n={name:"pong"};this.channel.postMessage(n);return}}alreadyClaimedByAnotherTab(){this.resetLastCheck()}async tryClaim(){return this.setLastCheck(),new Promise(e=>{setTimeout(()=>{this.check(),e()},300)})}check(){this.state==="not-initiated"&&this.events.onInit?.(),this.lastTryClaim?(this.claim(),this.resetLastCheck()):this.state="not-claimed"}claim(){this.state="claimed",this.events.onClaim?.()}setLastCheck(){this.lastTryClaim=Date.now();let e={name:"ping",pingAt:this.lastTryClaim};this.channel.postMessage(e)}resetLastCheck(){this.lastTryClaim=void 0}forceRelease(e){if(this.isClaimed()){this.state="not-claimed",this.events.onRelease?.();let o={name:"force-release",candidateId:e};this.channel.postMessage(o)}}};var uC=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"),Vo=uC;var te=Vo(mC()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Co=new _n({onInit:()=>te.setState({tabManagerInitiated:!0}),onClaim:()=>te.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>te.setState({isActiveTab:!1})});function J(t){let{watermark:e}=te();return fC.createElement(dC,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as Ro}from"@lingui/core";import{Alert as bC,Button as xC,Divider as Jr,Image as EC,MessageBox as IC,RadioRoot as AC}from"@rango-dev/ui";import ue,{useEffect as NC,useMemo as BC,useState as WC}from"react";import{Checkbox as TC,Radio as kC,Typography as vC}from"@rango-dev/ui";import Yt from"react";function Ko(t,e){return t.find(o=>o.name===e)?.logo}i(Ko,"getBlockchainLogo");import{Button as gC,darkTheme as hC,Image as yC,styled as Tt,Typography as SC}from"@rango-dev/ui";var Kr=Tt("ul",{padding:0,paddingTop:"$10",paddingBottom:"$20",margin:0}),jo=Tt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100 ",[`.${hC} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),Xo=Tt("div",{display:"flex",gap:"$8",alignItems:"center"}),jr=Tt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),ru=Tt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Yo=Tt(yC,{variants:{disabled:{true:{opacity:"0.5"}}}}),Zo=Tt(gC,{minHeight:"$40"}),iu=Tt(SC,{maxWidth:"100px"}),au=Tt("div",{paddingLeft:"48px"}),su=Tt("div",{display:"flex",gap:"2px",cursor:"pointer",alignItems:"center",width:"fit-content"}),lu=Tt("div",{display:"flex",gap:"6px",alignItems:"center"});import{Image as pu,Tooltip as uu,Typography as CC}from"@rango-dev/ui";import Nt from"react";import{styled as cu}from"@rango-dev/ui";var Za=cu("div",{display:"flex",alignItems:"center",padding:0,margin:0}),Xr=cu("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var Ja=3;function Yr(t){let{chains:e}=t;return Nt.createElement(Za,null,e.slice(0,Ja).map((o,n)=>Nt.createElement(uu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Nt.createElement(Xr,{firstItem:n===0},Nt.createElement(pu,{src:o.logo,size:15})))),e.length>Ja&&Nt.createElement(uu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Nt.createElement(Za,null,e.map((o,n)=>Nt.createElement(Xr,{key:o.name,firstItem:n===0},Nt.createElement(pu,{src:o.logo,size:15}))))},Nt.createElement(Xr,null,Nt.createElement(CC,{variant:"body",size:"xsmall"},"+",e.length-Ja))))}i(Yr,"SupportedChainsList");function mu(t){let{onClick:e,type:o,namespace:n}=t,r=y().blockchains(),a=n.chains.length>1;return Yt.createElement(jo,{onClick:e,clickable:!0},Yt.createElement(Xo,null,Yt.createElement(Yo,{src:Ko(r,n.id),size:40}),Yt.createElement(jr,{showSupportedChains:a},Yt.createElement(vC,{variant:"label",size:"large"},n.label),a&&Yt.createElement(Yr,{chains:n.chains})),o==="radio"?Yt.createElement(kC,{value:n.value}):Yt.createElement(TC,{checked:t.value})))}i(mu,"NamespaceListItem");import{i18n as wC}from"@lingui/core";import{Typography as du}from"@rango-dev/ui";import Jo from"react";function Zr(t){let{namespace:e}=t,o=y().blockchains();return Jo.createElement(jo,{unsupported:!0},Jo.createElement(Xo,null,Jo.createElement(Yo,{src:Ko(o,e.id),size:40,disabled:!0}),Jo.createElement(ru,null,Jo.createElement(du,{variant:"label",size:"large"},e.label),Jo.createElement(du,{variant:"body",size:"xsmall"},wC.t("(Currently not supported)")))))}i(Zr,"NamespaceUnsupportedItem");function Dn(t){let{targetWallet:e}=t.value,o=e.needsNamespace?.selection==="single",n=e.image,[r,a]=WC([]),s=BC(()=>e.needsNamespace?.data.filter(m=>!m.unsupported),[e?.type]),l=i(m=>{a(o?[m]:h=>h.includes(m)?h.filter(f=>f!==m):h.concat(m))},"onSelect"),c=s?.length===r.length,u=i(()=>{if(o)throw new Error("onSelectAll should not be called on single selection mode.");c?a([]):s&&a(s.map(m=>m.value))},"onSelectAll"),p=i(m=>o?ue.createElement(AC,{value:r?.[0]},m):ue.createElement(ue.Fragment,null,m),"wrapRadioRoot");return NC(()=>{if(!o&&s)if(t.value.defaultSelectedChains?.length){let m=s.filter(h=>h.chains.some(f=>t.value.defaultSelectedChains?.includes(f.name)));a(m.map(h=>h.value))}else a(s.map(m=>m.value))},[]),ue.createElement(ue.Fragment,null,ue.createElement(IC,{type:"info",title:Ro.t("Connect {wallet}",{wallet:e.title}),description:Ro.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ue.createElement(EC,{src:n,size:45})}),o?ue.createElement(ue.Fragment,null,ue.createElement(Jr,{size:20}),ue.createElement(bC,{variant:"alarm",type:"info",title:Ro.t("This wallet can only connect to one chain at a time. ")})):ue.createElement(ue.Fragment,null,ue.createElement(Jr,{size:30}),ue.createElement(xC,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:u},c?Ro.t("Deselect all"):Ro.t("Select all"))),ue.createElement(Kr,null,p(ue.createElement(ue.Fragment,null,e.needsNamespace?.data.map((m,h,f)=>ue.createElement(ue.Fragment,{key:m.id},m.unsupported?ue.createElement(Zr,{namespace:m}):ue.createElement(mu,{value:r.includes(m.value),namespace:m,type:o?"radio":"checkbox",onClick:()=>l(m.value)}),h!==f.length-1&&ue.createElement(Jr,{size:10})))))),ue.createElement(Jr,{size:20}),ue.createElement(Zo,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},Ro.t("Connect")))}i(Dn,"Namespaces");import{i18n as Ra}from"@lingui/core";import{Divider as es,Image as UC,MessageBox as zC}from"@rango-dev/ui";import it from"react";import{i18n as en}from"@lingui/core";import{Button as LC,ChevronDownIcon as MC,ChevronUpIcon as PC,Divider as _C,Spinner as DC,Typography as $n}from"@rango-dev/ui";import{useWallets as $C}from"@rango-dev/wallets-react";import Te,{useEffect as FC,useLayoutEffect as OC,useState as fu}from"react";var gu=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,a=y().blockchains(),{connect:s,disconnect:l,state:c}=$C(),[u,p]=fu(null),[m,h]=fu(!1),d=c(o).namespaces?.get(n.value),g=d.accounts?.[0]?.split(":");FC(()=>h(!1),[u]),OC(()=>{r&&S(o,n.value)},[]);let S=i(async(k,w)=>{try{await s(k,[{namespace:w,network:""}])}catch(x){p(x)}},"handleConnectNamespace"),T=i(async k=>{p(null),k.connected?await l(o,[n.value]):S(o,n.value)},"handleButtonClick"),C=i(()=>d.connected?en.t("Disconnect"):u?en.t("Try again"):en.t("Connect"),"getButtonText");return Te.createElement(jo,{hasError:!!u},Te.createElement(Xo,null,Te.createElement(Yo,{src:Ko(a,n.id),size:40}),Te.createElement(jr,null,Te.createElement(lu,null,Te.createElement($n,{variant:"label",size:"large"},n.label),d.connected&&Te.createElement($n,{variant:"body",size:"small",color:"success500"},en.t("Connected")),!d.connected&&!!u&&Te.createElement($n,{variant:"body",size:"small",color:"error500"},en.t("Connection failed"))),d.connected&&Te.createElement(iu,{variant:"body",size:"small",color:"neutral700"},Oo(g?.[g?.length-1])),!d.connected&&u&&Te.createElement(su,{onClick:()=>h(k=>!k)},Te.createElement($n,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},en.t("See why")),m?Te.createElement(PC,{size:12,color:"gray"}):Te.createElement(MC,{size:12,color:"gray"})),!d.connected&&!u&&n.chains.length>1&&Te.createElement(Yr,{chains:n.chains})),d.connecting?Te.createElement(DC,{color:"info"}):Te.createElement(LC,{id:"widget-name-space-connect-btn",variant:"ghost",type:d.connected?"error":"primary",size:"small",onClick:async()=>T(d)},C())),!d.connected&&!!u&&m&&Te.createElement(Te.Fragment,null,Te.createElement(_C,{size:4}),Te.createElement(au,null,Te.createElement($n,{variant:"body",size:"small",color:"neutral700"},u.cause?.message||u.message))))},"NamespaceDetachedItem");function Fn(t){let{selectedNamespaces:e,value:o}=t,{targetWallet:n}=o;return it.createElement(it.Fragment,null,it.createElement(zC,{type:"info",title:Ra.t("Connect {wallet}",{wallet:n.type}),description:Ra.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:it.createElement(UC,{src:n.image,size:45})}),it.createElement(es,{size:20}),it.createElement(Kr,null,n.needsNamespace?.data.map((r,a,s)=>it.createElement(it.Fragment,{key:r.id},r.unsupported?it.createElement(Zr,{namespace:r}):it.createElement(gu,{walletType:n.type,namespace:r,initialConnect:e?.includes(r.value)}),a!==s.length-1&&it.createElement(es,{size:10})))),it.createElement(es,{size:20}),it.createElement(Zo,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},Ra.t("Done")))}i(Fn,"Detached");import{i18n as tn}from"@lingui/core";import{Divider as yu,Image as GC,MessageBox as VC,Select as KC,TextField as jC}from"@rango-dev/ui";import gt,{useEffect as XC,useState as Su}from"react";import{namespaces as HC}from"@rango-dev/wallets-shared";var Rr={id:"custom",label:"Custom",generateDerivationPath:t=>t};function ts(t){let e=t?HC[t].derivationPaths:null;return e?[...e,Rr]:[]}i(ts,"getDerivationPaths");import{Button as QC,styled as os,Typography as qC}from"@rango-dev/ui";var hu=os("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),ns=os(qC,{paddingLeft:"$10"}),rs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},fL=os(QC,{minHeight:"$40"});var Cu="0";function On(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Su(null),[l,c]=Su(Cu),u=a===Rr.id,p=ts(o),m=i(({value:f})=>{let d=p?.find(g=>g.id===f);d&&(a===Rr.id&&Number.isNaN(Number(l))&&c(Cu),s(d.id))},"handleDerivationPathItemClick"),h=i(()=>{let f=p.find(d=>d.id===a);if(f)e(f.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return XC(()=>{s(ts(o)[0]?.id||null)},[o]),gt.createElement(gt.Fragment,null,gt.createElement(yu,{size:20}),gt.createElement(VC,{type:"info",title:tn.t("Select Derivation Path"),description:tn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:gt.createElement(GC,{src:n,size:45})}),gt.createElement(hu,null,gt.createElement(ns,{variant:"body",size:"xsmall",color:"$neutral600"},tn.t("Choose Derivation Path Template")),gt.createElement(KC,{value:a||"",options:p.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:m,styles:{trigger:rs}}),gt.createElement(yu,{size:20}),gt.createElement(ns,{variant:"body",size:"xsmall",color:"$neutral600"},u?tn.t("Enter Path"):tn.t("Enter Index")),gt.createElement(jC,{type:u?"text":"number",variant:"contained",value:l,onChange:f=>c(f.target.value),style:rs})),gt.createElement(Zo,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!p||!a||!l},tn.t("Confirm")))}i(On,"DerivationPath");import{i18n as on}from"@lingui/core";import{Image as JC,MessageBox as is,WalletState as RC}from"@rango-dev/ui";import{useWallets as eT}from"@rango-dev/wallets-react";import To from"react";import{keyframes as YC,styled as ei}from"@rango-dev/ui";var xL=ei("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Tu=ei("div",{position:"relative"}),ZC=YC({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ku=ei("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ZC} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),vu=ei("div",{"& img":{borderRadius:"50%"}});function as(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=eT();return En(a(n))===RC.CONNECTED?To.createElement(is,{type:"success",title:on.t("Wallet Connected"),description:on.t("Your wallet is connected, you can use it to swap.")}):o?To.createElement(is,{type:"error",title:on.t("Failed to Connect"),description:o||on.t("Your wallet is not connected. Please try again.")}):To.createElement(is,{type:"loading",title:on.t("Connecting to your wallet"),description:on.t("Click connect in your wallet popup."),icon:To.createElement(Tu,null,To.createElement(vu,null,To.createElement(JC,{src:r,size:45})),To.createElement(ku,null))})}i(as,"ConnectStatus");import{i18n as ss}from"@lingui/core";import{Button as tT,Divider as wu,MessageBox as oT}from"@rango-dev/ui";import ti from"react";function ls(t){let{displayName:e,onConfirm:o}=t;return ti.createElement(oT,{title:ss.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:ss.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},ti.createElement(wu,{size:18}),ti.createElement(wu,{size:32}),ti.createElement(tT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},ss.t("Confirm")))}i(ls,"ExperimentalChain");function bu(t,e){return t().status==="init"&&!!e}i(bu,"isOnStatus");function Un(t){return t().status==="namespace"}i(Un,"isOnNamespace");function zn(t){return t().status==="derivationPath"}i(zn,"isOnDerivationPath");function Hn(t){return t().status==="detached"}i(Hn,"isOnDetached");var aT=3e3,sT=300;function ko(t){let e=iT(),[o,n]=xu(!1),[r,a]=xu(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=Ct(),{handleConnect:c,handleDerivationPath:u,handleNamespace:p,getState:m,resetState:h}=Uo(),f=i(k=>{p(t.wallet,k).then(C).catch(s)},"handleConfirmNamespaces"),d=i(()=>{S()},"handleDetachedConfirm"),g=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(k).then(C).catch(s)},"handleDerivationPathConfirm"),S=i(()=>{n(!1)},"handleClosingModal"),T=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),C=i((k,w)=>{let x=k.status==="connected",I=["disconnected","disconnected-unhandled"].includes(k.status);x?(t.onConnect?.(),w||(e.current=setTimeout(S,aT))):I&&S()},"afterConnected");return rT(()=>{if(t.wallet){T();let k=!1,w=!0;i(()=>{setTimeout(()=>{w=!1,k||n(!0)},sT)},"beforeConnecting")(),c(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(k=!0),C(I,w)}).catch(s)}},[t.wallet]),Zt.createElement(J,{open:o,onClose:S,onExit:()=>{T(),l(),t.onClose&&t.onClose()},container:N()},bu(m,t.wallet)&&Zt.createElement(Zt.Fragment,null,Zt.createElement(as,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),Zt.createElement(nT,{direction:"vertical",size:32})),Un(m)&&Zt.createElement(Dn,{onConfirm:f,value:m().namespace}),zn(m)&&Zt.createElement(On,{onConfirm:g,value:m().derivationPath}),Hn(m)&&Zt.createElement(Fn,{onConfirm:d,value:m().namespace,selectedNamespaces:m().selectedNamespaces}))}i(ko,"StatefulConnectModal");import{Provider as mT}from"@rango-dev/wallets-react";import oi,{createContext as dT,useEffect as Bu,useMemo as fT,useRef as Wu}from"react";import{useEffect as lT}from"react";function Eu(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Eu,"hashProviders");function cs(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=y(),a=n();return lT(()=>{o(),r()},[Eu(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(cs,"useWalletProviders");import{legacyFormatAddressWithNetwork as cT,legacyReadAccountAddress as Iu}from"@rango-dev/wallets-core/legacy";import{Events as nn}from"@rango-dev/wallets-react";import{isEvmBlockchain as pT}from"rango-sdk";function Au(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=y(),{onConnectWalletHandler:l,onDisconnectWalletHandler:c}=t,u=s().filter(pT).map(g=>g.name),p=i((g,S)=>{let[T,,C,k,w]=g,x={walletType:T,network:k.network??void 0,accounts:C};l.current?l.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=Ma(T,C,u,S.supportedChainNames,w.isContractWallet);I.length&&e(I,w.namespace)},"onAccountsEvent"),m=i((g,S,T,C,k)=>{if(S===nn.ACCOUNTS){let w=In(k.supportedBlockchains);T&&p([g,S,T,C,k],{supportedChainNames:w})}S===nn.PROVIDER_DISCONNECTED&&(o(g),c.current?c.current(g):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===nn.NAMESPACE_DISCONNECTED&&n(g,T)},"handleUpdatesForHub"),h=i((g,S,T,C,k)=>{if(S===nn.ACCOUNTS){let w=In(k.supportedBlockchains),x=[],I=[];if(T?.forEach(E=>{let{network:b}=Iu(E);u.includes(b)?x.push(E):I.push(E)}),r.filter(E=>E.walletType===g).map(E=>cT(E.address,E.chain)).length>0){if(x.length>0){let E=Ma(g,x,u,w,k.isContractWallet);a(g,{chains:E.map(b=>b.chain)})}I.length>0&&a(g,{chains:I.map(E=>{let{network:b}=Iu(E);return b})})}T?p([g,S,T,C,k],{supportedChainNames:w}):(o(g),c.current?c.current(g):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),f=i((g,S,T,C,k)=>{if(S===nn.CONNECTED&&T){let w={walletType:g,network:C.network??void 0,accounts:C.accounts??void 0};l.current?l.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===nn.NETWORK&&T){let w={walletType:g,network:T,accounts:C.accounts??void 0};l.current?l.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((g,S,T,C,k)=>{k.isHub?m(g,S,T,C,k):h(g,S,T,C,k),f(g,S,T,C,k)},"handler")}}i(Au,"useUpdates");import{LegacyEvents as uT}from"@rango-dev/wallets-core/legacy";function Nu(t,e){let[o,n,r,a,s]=e;n!==uT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(Nu,"propagateEvents");var ni=dT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function gT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=y(),a=y().blockchains(),s=y().config,l={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:c}=cs(s.wallets,l),u=Wu(),p=Wu(),{handler:m}=Au({onConnectWalletHandler:u,onDisconnectWalletHandler:p});Bu(()=>{n().catch(console.log)},[]),Bu(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let h=te.use.isActiveTab(),f=fT(()=>({onConnectWallet:d=>{u.current=d},onDisconnectWallet:d=>{p.current=d}}),[]);return oi.createElement(ni.Provider,{value:f},oi.createElement(mT,{allBlockChains:a,providers:c,onUpdateState:(d,g,S,T,C)=>{let k=[d,g,S,T,C];m(...k),t.onUpdateState&&Nu(t.onUpdateState,k)},autoConnect:!!h,configs:{wallets:s.wallets}},t.children))}i(gT,"Main");function ri(t){let{config:e,...o}=t;return oi.createElement(tu,{config:e},oi.createElement(gT,{...o,config:e}))}i(ri,"WidgetWallets");import Ia from"react";import hT,{Fragment as yT}from"react";import{MemoryRouter as ST,useInRouterContext as CT}from"react-router";function Lu({children:t}){let o=CT()?yT:ST;return hT.createElement(o,null,t)}i(Lu,"AppRouter");import{I18nManager as IA}from"@rango-dev/ui";import Gc from"react";import $e from"react";import{useRoutes as fA}from"react-router-dom";var F={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",customTokens:"custom-tokens",addCustomTokens:"add-custom-tokens",liquiditySources:"liquidity-sources",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId",routes:"routes"};import{useEffect as an,useRef as di}from"react";import Je from"bignumber.js";import{create as wT}from"zustand";import{subscribeWithSelector as bT}from"zustand/middleware";import{i18n as kt}from"@lingui/core";import{getRelatedWalletOrNull as vT,RouteEventType as gP}from"@rango-dev/queue-manager-rango-preset";import qe from"bignumber.js";import{PendingSwapNetworkStatus as ui}from"rango-types";import{i18n as ze}from"@lingui/core";var oe=i(()=>({genericServerError:ze.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:ze.t("Please reset your liquidity sources."),description:ze.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:ze.t("No Routes Found."),description:ze.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:ze.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:ze.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:ze.t("High Price Impact"),title:ze.t("Price impact is too high!"),description:ze.t("The price impact is significantly higher than the allowed amount."),confirmMessage:ze.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:ze.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:ze.t("USD Price Unknown"),title:ze.t("USD Price Unknown, Cannot calculate Price Impact."),description:ze.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:ze.t("Confirm USD Price Unknown")}}),"errorMessages");function Mu(t){return t.type===0?t.diagnosisMessage??oe().noResultError.title:t.type===1?t.diagnosisMessage??oe().genericServerError:""}i(Mu,"getQuoteErrorMessage");import{i18n as ii}from"@lingui/core";var vo=i(()=>({connectWallet:ii.t("Connect Wallet"),swap:ii.t("Swap"),swapAnyway:ii.t("Swap anyway"),ethWarning:ii.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ps(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(ps,"getFeeLabel");var us=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Pu=100,_u=30,Du=15,$u=60;var Fu=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Ou=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as kT}from"@rango-dev/queue-manager-rango-preset";import tP from"bignumber.js";function zu(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(zu,"getRequiredBalanceOfWallet");function Ut(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Ut,"getPriceImpactLevel");function si(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=kT(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=So(a?a.toBlockchain:n.fromBlockchain,e),c=So(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),p=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:c,toToken:p,inputAmount:m}}i(si,"createRetryQuote");function rn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Qn(o),s=ht(o);if(o&&a&&s){let u=Ot(a.toString(),s.toString());if(!!u&&Vu(a,u)){let m=ci(o?.swaps,n),h=Ut(u);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:u,totalFee:m,warningLevel:h}}}if(e&&Xu(e,o))return{type:4,usdValueChange:M(ht(o)?.minus(ht(e)??0).toString()??"0",null,2),percentageChange:M(Ot(ht(e)??"1",ht(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let l=pi(o.swaps),c=r>Gr;if(ju(t.userSlippage.toString(),l)){if(c&&parseFloat(l??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Ku(o,r),minRequiredSlippage:l};return null}i(rn,"generateQuoteWarnings");function Hu(t){return![4].includes(t.type)}i(Hu,"isQuoteWarningConfirmationRequired");function Ot(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:ms(t.toString(),e.toString());return n&&n<0?n:null}i(Ot,"getPriceImpact");var Qu=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),li=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(p=>p.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),c=n.requestId.toLowerCase();return l.localeCompare(c)}),"sortQuotesBy"),qu=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),Gu=i(t=>{let e=i((o,n)=>{let r=us.indexOf(o.value),a=us.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Vu(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Fu.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new qe(r)))}i(Vu,"hasHighValueLoss");function Yu(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new qe(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(Yu,"hasLimitError");function Zu(t){let e=(t||[]).filter(l=>{let c=l.fromAmountMinValue?new qe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new qe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?c?.gte(l.fromAmount)||u?.lte(l.fromAmount):c?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new qe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=kt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=kt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=kt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=kt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Zu,"getLimitErrorMessage");function Ju(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:c}=t;return e!=="success"?{title:vo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:vo().swap,action:"confirm-swap",disabled:!0}:s?{title:vo().swapAnyway,action:"confirm-warning",disabled:!1}:c?{title:vo().ethWarning,action:"confirm-warning",disabled:!1}:{title:vo().swap,action:"confirm-swap",disabled:!1}:{title:vo().connectWallet,action:"connect-wallet",disabled:!1}}i(Ju,"getSwapButtonState");function ds(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}i(ds,"canComputePriceImpact");function fs(t,e){let o=pe;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new qe(r.amount).multipliedBy(a||0))}return o}i(fs,"getUsdFeeOfStep");function ci(t,e){return t.reduce((o,n)=>o.plus(fs(n,e)),pe)}i(ci,"getTotalFeeInUsd");function gs(t){let e=pe;return e=e.plus(new qe(t.amount).multipliedBy(t.price||0)),e}i(gs,"getUsdFee");function Ru(t){return t.reduce((e,o)=>e.plus(gs(o)),pe)}i(Ru,"getTotalFeesInUsd");function em(t){return t.reduce((e,o)=>{for(let n of o.fee){let r=n.name,a=n.expenseType!=="DECREASE_FROM_OUTPUT"?e.payable:e.nonePayable;a[r]=[...a[r]||[],n]}return e},{payable:{},nonePayable:{}})}i(em,"getFeesGroup");function tm(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(tm,"checkSlippageErrors");function Ku(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(Ku,"checkSlippageWarnings");function pi(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(pi,"getMinRequiredSlippage");function ju(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(ju,"hasProperSlippage");function om(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:c,slippage:u,affiliateRef:p,affiliatePercent:m,affiliateWallets:h,destination:f,contractCall:d}=t,g=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:p??void 0,affiliatePercent:m??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:g??{},slippage:u.toString(),contractCall:d,...f&&{destination:f},...c&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!c&&{swapperGroups:l?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(om,"createQuoteRequestBody");function nm(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(nm,"getWalletsForNewSwap");function Qn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new qe(e).multipliedBy(o)}i(Qn,"getUsdInputFrom");function ht(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new qe(e).multipliedBy(o)}i(ht,"getUsdOutputFrom");function ms(t,e){return new qe(e).div(new qe(t)).minus(1).multipliedBy(Pu).toNumber()}i(ms,"getPercentageChange");function Xu(t,e){let o=Qn(t),n=ht(t),r=ht(e);if(!o||!n||!r)return!1;let a=ms(n.toString(),r.toString());return Ou.some(({threshold:s,minInput:l})=>a<=s&&o.isGreaterThanOrEqualTo(l))}i(Xu,"isOutputAmountChangedExcessively");function rm(t,e,o){let n=t.validationStatus,r=yo({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>zu(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,c=M(new qe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new qe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),p="";return s.reason==="FEE"&&(p=kt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(p=kt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(p=kt.t(" for input and network fee")),kt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:p,currentAmount:c,blockchain:dt(s.asset.blockchain,o)}})})}i(rm,"generateBalanceWarnings");function qn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==ui.NetworkChanged}i(qn,"isNetworkStatusInWarningState");function im(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),qn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let u=(e?vT(t,e):null)?.walletType,p=u?o?.(u)?.name:null;switch(e?.networkStatus){case ui.WaitingForConnectingWallet:r=p?kt.t("Connect {wallet}",{wallet:p}):r;break;case ui.WaitingForQueue:r=r||kt.t("Waiting for other running tasks to be finished");break;case ui.WaitingForNetworkChange:r=r||kt.t("Waiting for changing wallet network");break;default:r=r||"";break}}a=a||"",r=r||"";let l=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:l}}}i(im,"getSwapMessages");function am(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(am,"getLastConvertedTokenInFailedSwap");function sm(t){return t.status==="failed"}i(sm,"shouldRetrySwap");function lm(t,e,o,n,r,a){if(!n||t)return!0;let s=yo({filter:"all",quote:n}),l=yo({filter:"required",quote:n}),c=s.every(m=>r.some(h=>h.chain===m)),u=l.every(m=>r.some(h=>h.chain===m)),p=o&&a?Ho(a,o):!1;return!e&&!c||e&&!o||e&&!!o&&(!p||!u)}i(lm,"isConfirmSwapDisabled");function cm(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(cm,"isTokensIdentical");var mi=i((t,e)=>t?.usdPrice?new Je(e||pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Vo(wT()(bT(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Je(0),outputUsdValue:new Je(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=pe,a=o.inputUsdValue;return xn(o.inputAmount)?(e&&(n=e?.outputAmount?new Je(e?.outputAmount):null,a=Qn(e)??pe,r=ht(e)??pe),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Je(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Je(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Je(0)}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:mi(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{selectedQuote:null,toToken:null,outputAmount:null,outputUsdValue:new Je(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:null,outputUsdValue:new Je(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:mi(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:mi(n??null,s),outputUsdValue:new Je(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?mi(e.toToken,e.outputAmount?.toString()||""):new Je(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Je(0),inputUsdValue:new Je(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Je(0),selectedQuote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})})))),pm=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Ce.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&Ce.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function um(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:c,toBlockchain:u}=O(),p=y().config,m=y().fetchStatus,h=y().blockchains(),{findToken:f}=y(),{setAffiliateRef:d,setAffiliatePercent:g,setAffiliateWallets:S}=y(),T=p?.from?.tokens,C=p?.from?.blockchains,k=p?.to?.tokens,w=p?.to?.blockchains,x=di(void 0),I=di(void 0),A=di(void 0),E=di(void 0);an(()=>{typeof p.amount<"u"&&t(p.amount.toString())},[p?.amount]),an(()=>{if(m==="success"){r();let b=h.find(P=>P.name===p?.from?.blockchain),v=p?.from?.token,B=v&&f(v);(b||!b&&A.current)&&n(b??null),B?a({token:B,meta:{blockchains:h}}):!B&&x.current&&a({token:null}),A.current=p?.from?.blockchain,x.current=p?.from?.token}},[p?.from?.token?.symbol,p?.from?.token?.address,p?.from?.token?.blockchain,p?.from?.blockchain,m]),an(()=>{Oa(s,T)&&a({token:null}),Ua(c,C)&&n(null)},[T,C]),an(()=>{Oa(l,k)&&a({token:null}),Ua(u,w)&&o(null)},[k,w]),an(()=>{if(m==="success"){r();let b=h.find(P=>P.name===p?.to?.blockchain),v=p?.to?.token,B=v&&f(v);(b||!b&&E.current)&&o(b??null),B?e({token:B,meta:{blockchains:h}}):!B&&I.current&&e({token:null}),E.current=p?.to?.blockchain,I.current=p?.to?.token}},[p?.to?.token?.symbol,p?.to?.token?.address,p?.to?.token?.blockchain,p?.to?.blockchain,m]),an(()=>{d(p?.affiliate?.ref??null),g(p?.affiliate?.percent??null),S(p?.affiliate?.wallets??null)},[p?.affiliate?.ref,p?.affiliate?.percent,p?.affiliate?.wallets])}i(um,"useSyncStoresWithConfig");import{useEffect as Ss,useRef as xT}from"react";import{useInRouterContext as ET,useLocation as IT,useSearchParams as AT}from"react-router-dom";function hs(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(hs,"convertTokenSearchParamToAsset");function ys(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(ys,"tokenToSearchParam");function Ts(){let t=IT(),[e,o]=AT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:c,setToBlockchain:u,setFromToken:p,setToToken:m,setInputAmount:h}=O(),f=y().fetchStatus,d=y().blockchains(),g=ET(),{updateIframe:S,updateCampaignMode:T}=y(),C=y().isInCampaignMode(),k=xT(),{findToken:w}=y(),x=i(()=>{let A={};for(let[L,X]of e.entries())L.startsWith("utm_")&&(A[L]=X);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),v=e.get("fromToken"),B=e.get("toBlockchain"),P=e.get("toToken"),_=e.get("autoConnect"),V=e.get("clientUrl"),ee=e.get("liquiditySources"),j=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:v,toBlockchain:B,toToken:P,autoConnect:_,clientUrl:V,liquiditySources:ee,utmQueryParams:A,blockchain:j}},"getUrlSearchParams"),I=i(A=>{for(let E in A)A[E]||delete A[E];o(A,{replace:!0})},"updateUrlSearchParams");Ss(()=>{let{autoConnect:A,clientUrl:E,utmQueryParams:b,blockchain:v}=x();g&&f==="success"&&I({fromBlockchain:n?.name,fromToken:ys(a),toBlockchain:r?.name,toToken:ys(s),fromAmount:l,autoConnect:A??void 0,clientUrl:E??void 0,blockchain:v??void 0,liquiditySources:C?k.current:void 0,...b})},[t.pathname,l,n,a,r,s,C]),Ss(()=>{if(!g)return;let A=x();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&h(A.fromAmount),f==="success"){let E=d.find(P=>P.name===A.fromBlockchain),b=A.fromToken&&E?w(hs(A.fromToken,E)):void 0,v=d.find(P=>P.name===A.toBlockchain),B=A.toToken&&v?w(hs(A.toToken,v)):void 0;E&&(c(E),b&&p({token:b,meta:{blockchains:d}})),v&&(u(v),B&&m({token:B,meta:{blockchains:d}}))}},[f]),Ss(()=>{let{clientUrl:A,liquiditySources:E}=x();S("clientUrl",A||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(Ts,"useSyncUrlAndStore");import{i18n as mn}from"@lingui/core";import{Alert as Yk,Button as Zk,darkTheme as Jk,Divider as Zs,DoneIcon as Rk,styled as ev,TextField as tv,Typography as ov}from"@rango-dev/ui";import Qe,{useState as nv}from"react";import{useNavigate as rv,useSearchParams as iv}from"react-router-dom";import{ChevronRightIcon as NT,Divider as hm,Image as BT,Typography as ym}from"@rango-dev/ui";import vt from"react";import{darkTheme as mm,styled as ks}from"@rango-dev/ui";var dm=ks("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${mm} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${mm} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),fm=ks("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),gm=ks("div",{display:"flex"});function vs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return vt.createElement(fm,null,vt.createElement(ym,{size:"large",variant:"label"},n),vt.createElement(hm,{size:10}),vt.createElement(dm,{onClick:s?void 0:e,disabled:s},vt.createElement(gm,null,r&&vt.createElement(vt.Fragment,null,vt.createElement(BT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),vt.createElement(hm,{size:4,direction:"horizontal"})),vt.createElement(ym,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),vt.createElement(NT,{size:12,color:"black"})))}i(vs,"BlockchainSelectorButton");import{i18n as Is}from"@lingui/core";import{Button as PT,Divider as km,MessageBox as _T}from"@rango-dev/ui";import Rt,{useEffect as vm,useState as As}from"react";import{i18n as fi}from"@lingui/core";import{Divider as wo,ExternalLinkIcon as LT,Image as MT,Typography as ln}from"@rango-dev/ui";import ke from"react";var Sm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Cm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Cm,"generateExplorerLink");import{Button as WT,darkTheme as sn,styled as ws}from"@rango-dev/ui";var bs=ws("a",{textDecoration:"none",color:"$colors$neutral700",[`.${sn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${sn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${sn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${sn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Tm=ws("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${sn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${sn} &`]:{color:"$colors$neutral900"}}}),xs=ws(WT,{minHeight:"$40"});function Es(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,l=Cm(n.address,s),c=i(()=>window.open(Sm,"_blank"),"onClickLearnMore");return ke.createElement(J,{open:e,dismissible:!0,onClose:o,onExit:r,container:N()},ke.createElement(Tm,null,ke.createElement(MT,{src:n.image===""?Qr:n.image,size:45,type:"circular"}),ke.createElement(wo,{size:4}),ke.createElement(ln,{variant:"title",size:"medium"},n.symbol),ke.createElement(ln,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ke.createElement(wo,{size:4}),ke.createElement(ln,{variant:"body",size:"medium"},l?ke.createElement(bs,{hasHover:!0,href:l,target:"_blank",rel:"nofollow noreferrer"},n.address,ke.createElement(LT,{size:12,color:"gray"})):ke.createElement(bs,null,n.address)),ke.createElement(wo,{size:4}),n.coinSource&&ke.createElement(ln,{className:"_coin-source",variant:"body",size:"xsmall"},fi.t("via")," ",ke.createElement(ln,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ke.createElement(wo,{size:"32"}),ke.createElement(ln,{size:"medium",variant:"body",className:"_custom-token-description"},fi.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),ke.createElement(wo,{size:40}),ke.createElement(wo,{size:10}),ke.createElement(xs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},fi.t("Import Anyway")),ke.createElement(wo,{size:10}),ke.createElement(xs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:c},fi.t("Learn More")))}i(Es,"CustomTokenModal");function Gn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:l,onExitErrorModal:c,onExitImportModal:u}=t,{setCustomToken:p}=y(),[m,h]=As(!1),[f,d]=As(!1),[g,S]=As(!1),T=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),h(!1)},"closeErrorModal"),k=i(()=>{S(!0),C()},"handleErrorModalButtonClick"),w=i(()=>{g&&n?.type==="network-error"&&(S(!1),T()),c()},"handleExit"),x=i(()=>{e&&(p(e),l())},"handleSubmit");return vm(()=>{n&&h(!0)},[n]),vm(()=>{o&&e&&d(!0)},[o,e]),Rt.createElement(Rt.Fragment,null,Rt.createElement(J,{open:m,dismissible:!0,onClose:C,onExit:w,container:N()},Rt.createElement(_T,{title:n?.title??"",type:"error",description:n?.message||Is.t("Failed Network, Please retry.")},Rt.createElement(km,{size:40}),Rt.createElement(km,{size:10}),Rt.createElement(PT,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?Is.t("Retry"):Is.t("Add another custom token")))),o&&e&&Rt.createElement(Es,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>d(!1),open:f,onExit:u}))}i(Gn,"ImportCustomToken");import{useManager as qk}from"@rango-dev/queue-manager-react";import{BottomLogo as Gk,Divider as Rm,Header as Vk}from"@rango-dev/ui";import Ae,{useEffect as ki,useLayoutEffect as Kk,useRef as ed,useState as td}from"react";import{useRef as DT}from"react";function Vn(){return window.self!==window.top}i(Vn,"isAppLoadedIntoIframe");function Ns(){let t=DT(null),{iframe:e}=y(),o=Vn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let c of l)n({type:"widget_height",data:{height:c.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ns,"useIframe");import{useNavigate as $T}from"react-router-dom";function He(){let t=$T();return()=>t(-1)}i(He,"useNavigateBack");import{useLayoutEffect as FT,useState as Kn}from"react";var wm=480,bm=768,xm=1024,Em=1200,OT=i(()=>{let[t,e]=Kn(!1),[o,n]=Kn(!1),[r,a]=Kn(!1),[s,l]=Kn(!1),[c,u]=Kn(!1),p=i(()=>{e(window.innerWidth<=wm),n(window.innerWidth>wm&&window.innerWidth<=bm),a(window.innerWidth>bm&&window.innerWidth<=xm),l(window.innerWidth>xm&&window.innerWidth<=Em),u(window.innerWidth>Em)},"handleResize");return FT(()=>(p(),window.addEventListener("resize",p),()=>window.removeEventListener("resize",p)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:c}},"useScreenDetect"),cn=OT;import{createTheme as Ds,darkTheme as RT,lightTheme as ek}from"@rango-dev/ui";import{useEffect as tk,useState as ok}from"react";import{theme as ZT,darkColors as JT}from"@rango-dev/ui";import Ps from"react";function UT(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(UT,"expandShortHexColor");function zT(t){return/[0-9]+$/.test(t)}i(zT,"isOverridingColor");function HT(t,e){return t.padStart(e,"0")}i(HT,"pad");function Bs(t){let e=Math.min(Math.max(Math.round(t),0),255);return HT(e.toString(16),2)}i(Bs,"intToHex");function QT(t){return`#${Bs(t.red)}${Bs(t.green)}${Bs(t.blue)}`}i(QT,"rgbToHex");function qT(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(qT,"hexToRGB");function GT(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(GT,"generateShade");function VT(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(VT,"generateTint");function KT(t){return Im(t,GT)}i(KT,"calculateShades");function jT(t){return Im(t,VT)}i(jT,"calculateTints");function Im(t,e){let o=qT(t),n=[];for(let r=1;r<9;r++)n.push(QT(e(o,r)));return n}i(Im,"calculateColors");function Ws(t,e,o){let a=jT(t).reverse().concat(t),s=KT(t),l=a.concat(s),c={},u=l.length;for(let p=0;p<u;p++){let m=100+(o?u-1-p:p)*50;c[`${e}${m}`]=l[p]}return c}i(Ws,"createTintsAndShades");function Ls(t,e,o){let n={...t};for(let r in e){let a=e[r],s=r==="neutral"&&!!o?.reverseNeutralRange;if(!["background","foreground"].includes(r)&&!zT(r)){let c=UT(a);Object.assign(n,Ws(c,r,s))}}return{...n,...e}}i(Ls,"expandToGenerateThemeColors");var Am=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),XT=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Am(o%52)+e;return Am(o%52)+e},"toAlphabeticName"),YT=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ms=i(t=>XT(YT(5381,JSON.stringify(t))>>>0),"toHash");function _s(t){let e=ZT.colors,o={...e,...JT},n,r;if(t?.light){let s={colors:Ls(e,t.light)};n={id:`${Fa}-light-${Ms(s)}`,tokens:s}}if(t?.dark){let s={colors:Ls(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Fa}-dark-${Ms(s)}`,tokens:s}}return{light:n,dark:r}}i(_s,"customizedThemeTokens");function Nm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ps.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ps.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ps.cloneElement(e,{key:l}))}}),o}i(Nm,"joinList");function Bm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Bm,"doesWindowPreferDarkColorScheme");function pn(t){let{colors:e,fontFamily:o=Zc,borderRadius:n=Pp,secondaryBorderRadius:r=_p}=t,[a,s]=ok(Bm()?"dark":"light"),{theme:l}=y(),{dark:c,light:u}=_s(e),p=Ds({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[p.className,ek.className],h=[p.className,RT.className];if(u){let d=Ds(u.id,u.tokens);m.push(d.className)}if(c){let d=Ds(c.id,c.tokens);h.push(d.className)}return tk(()=>{let d=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return Bm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",d),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",d)}},[]),{activeTheme:i(()=>{let d=m.join(" "),g=h.join(" ");return l==="auto"?a==="dark"?g:d:l==="dark"?g:d},"getActiveTheme"),mode:l==="auto"?a:l}}i(pn,"useTheme");var yt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Wm}from"@lingui/core";import{Alert as nk,Button as rk}from"@rango-dev/ui";import Lm from"react";function $s(t){return Lm.createElement(nk,{action:Lm.createElement(rk,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Wm.t("Activate this tab")),type:"warning",variant:"alarm",title:Wm.t("Another tab is open and handles transactions.")})}i($s,"ActivateTabAlert");import{i18n as Fs}from"@lingui/core";import{Button as ik,Divider as ak,MessageBox as sk}from"@rango-dev/ui";import gi from"react";function Os(t){let{open:e,onClose:o,onConfirm:n}=t;return gi.createElement(J,{open:e,dismissible:!0,onClose:o,container:N()},gi.createElement(sk,{title:Fs.t("Activate current tab"),type:"warning",description:Fs.t("Currently, some transactions are running and being handled by other browser tab. If you activate this tab, all transactions that are already in the transaction sign step will expire.")},gi.createElement(ak,{size:20}),gi.createElement(ik,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Fs.t("Confirm"))))}i(Os,"ActivateTabModal");import{ChevronLeftIcon as pk}from"@rango-dev/ui";import Um from"react";import{css as lk,darkTheme as Mm,IconButton as ck,styled as bo}from"@rango-dev/ui";var Bt=bo(ck,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Mm} &`]:{backgroundColor:"$neutral"}}}),Pm=bo("div",{position:"absolute",background:"$secondary500",[`.${Mm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),eo=bo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),_m=bo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),Dm=bo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),$m=bo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Fm=lk({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Om=bo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Us(t){return Um.createElement(Bt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Um.createElement(pk,{color:"black",size:16}))}i(Us,"BackButton");import{i18n as uk}from"@lingui/core";import{Button as mk,Typography as dk}from"@rango-dev/ui";import zs from"react";function Hs(t){return zs.createElement(eo,null,zs.createElement(mk,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},zs.createElement(dk,{variant:"label",size:"medium",color:"error500"},uk.t("Cancel"))))}i(Hs,"CancelButton");import{i18n as fk}from"@lingui/core";import{Image as gk,Tooltip as hk,WalletIcon as yk}from"@rango-dev/ui";import xo from"react";function Qs(t){let{list:e}=Ct(),o=e.filter(r=>r.state==="connected"),n=o.length?xo.createElement("div",{className:Fm()},o.map(r=>xo.createElement(Om,{key:r.title},xo.createElement(gk,{src:r.image,size:14})))):fk.t("Connect Wallet");return xo.createElement(hk,{container:t.container,side:"bottom",content:n},xo.createElement(Bt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&xo.createElement(Pm,null),xo.createElement(yk,{size:18,color:"black"})))}i(Qs,"WalletButton");import{i18n as yi}from"@lingui/core";import{NotificationsIcon as Mk,Popover as Pk,SettingsIcon as _k,Tooltip as Si,TransactionIcon as Dk}from"@rango-dev/ui";import Me from"react";import{Notifications as kk}from"@rango-dev/ui";import vk from"react";import{useNavigate as wk}from"react-router-dom";import{create as Sk}from"zustand";import{persist as Ck,subscribeWithSelector as Tk}from"zustand/middleware";var Ie=Vo(Sk()(Ck(Tk((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(c=>c.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(c=>c.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function qs(){let t=wk(),{getNotifications:e,clearNotifications:o}=Ie(),n=e(),r=y().blockchains(),{findToken:a}=y();return vk.createElement(kk,{list:n,getBlockchainImage:l=>Ip(l,r),getTokenImage:l=>a(l)?.image,onClickItem:i(l=>{t(`${F.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(qs,"NotificationContent");import{useManager as bk}from"@rango-dev/queue-manager-react";import{InProgressIcon as xk}from"@rango-dev/ui";import zm from"react";var Ek=i(()=>{let{manager:t}=bk();return yt(t).map(({swap:o})=>o).find(o=>o.status==="running")?zm.createElement($m,null,zm.createElement(xk,{color:"info",size:6})):null},"InProgressTransactionBadge"),Hm=Ek;import{EventSeverity as Ik}from"@rango-dev/queue-manager-rango-preset";import{Typography as Ak}from"@rango-dev/ui";import Qm from"react";function qm(){let{getNotifications:t}=Ie(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Ik.WARNING);return o?Qm.createElement(_m,{isSever:n},Qm.createElement(Ak,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(qm,"NotificationsBadge");import{RefreshProgressButton as Nk}from"@rango-dev/ui";import Gs,{useEffect as Bk,useState as Gm}from"react";var Wk=1e3,Vm=60,Lk=100;function hi({onClick:t}){let[e,o]=Gm(0),[n,r]=Gm(!1),a=i(c=>{document.hidden&&c&&s(c)},"handleVisibilityChange");Bk(()=>{let c;return t?c=window.setInterval(()=>{o(u=>u+1),e===Vm&&l()},Wk):s(c),document.addEventListener("visibilitychange",()=>a(c)),()=>{document.removeEventListener("visibilitychange",()=>a(c)),c&&clearInterval(c)}},[e,t]);let s=i(c=>{c&&clearInterval(c),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return Gs.createElement(Bt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},Gs.createElement(Dm,{onTransitionEnd:()=>r(!1),isRefetched:n},Gs.createElement(Nk,{size:22,color:t?"black":"gray",progress:e/Vm*Lk})))}i(hi,"RefreshButton");function Eo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ze("notification",s)||r.includes("notifications");return Me.createElement(Me.Fragment,null,!r.includes("refresh")&&Me.createElement(Si,{container:a||N(),side:"top",content:yi.t("Refresh")},Me.createElement(hi,{onClick:e})),!l&&Me.createElement(Pk,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Me.createElement(qs,null)},Me.createElement("div",null,Me.createElement(Si,{container:N(),side:"top",content:yi.t("Notifications")},Me.createElement(Bt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Me.createElement(Mk,{size:18,color:"black"}),Me.createElement(qm,null))))),!r.includes("settings")&&Me.createElement(Si,{container:N(),side:"top",content:yi.t("Settings")},Me.createElement(Bt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Me.createElement(_k,{size:18,color:"black"}))),!r.includes("history")&&Me.createElement(Si,{container:N(),side:"top",content:yi.t("History")},Me.createElement(Bt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Me.createElement(Dk,{size:18,color:"black"}),Me.createElement(Hm,null))))}i(Eo,"HeaderButtons");import{i18n as Vs}from"@lingui/core";import{Divider as jm,MessageBox as Ok,RefreshIcon as Uk}from"@rango-dev/ui";import un from"react";import{Button as $k,styled as Fk}from"@rango-dev/ui";var Km=Fk($k,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Ks(t){let{open:e,onClose:o}=t;return un.createElement(J,{open:e,dismissible:!0,onClose:o,container:N()},un.createElement(Ok,{title:Vs.t("Something went wrong"),type:"error",description:Vs.t("Something went wrong. Please refresh the app.")},un.createElement(jm,{size:30}),un.createElement(Km,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},un.createElement(Uk,{size:20,color:"primary"}),un.createElement(jm,{size:4,direction:"horizontal"}),Vs.t("Refresh"))))}i(Ks,"RefreshModal");function js(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(js,"onScrollContentAttachStatusToContainer");import{css as Hk,styled as Ci}from"@rango-dev/ui";var Ti=Hk({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Xm=Ci("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Ym=Ci("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Zm=Ci("div",{padding:"0 $20 $10","& .footer__alert":{paddingTop:"$10"},"& .footer__logo":{opacity:0,transition:"opacity 1s ease-in-out","&.logo__show":{opacity:1},"&.logo__hidden":{visibility:"hidden"}}}),Jm=Ci("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function re(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ns(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:c,config:{__UNSTABLE_OR_INTERNAL__:u}}=y(),[p,m]=td(!1),{config:{features:h,theme:f}}=y(),{watermark:d,setShowCompactTokenSelector:g}=te(),S=d==="FULL",{activeTheme:T}=pn(f||{}),[C,k]=td(!1),w=Ze("connectWalletButton",h),{isActiveTab:x,tabManagerInitiated:I,showActivateTabModal:A,setShowActivateTabModal:E,activateCurrentTab:b}=te(),v=He(),{manager:B}=qk(),{isTablet:P,isMobile:_}=cn(),ee=yt(B).map(({swap:R})=>R).some(R=>R.status==="running"),j=i(()=>b(Co.forceClaim,ee),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),X=typeof r.hasBackButton>"u"||r.hasBackButton,se=ed(null),z=ed(null);return ki(()=>{let R=(u?.swapBoxBanner?.routes?.length??0)===0,le=!!u?.swapBoxBanner?.routes?.some(me=>location.pathname.endsWith(me));k(!!u?.swapBoxBanner&&(R||le))},[u?.swapBoxBanner?.routes?.toString(),location.pathname]),ki(()=>(Vn()&&z.current&&e(z.current),()=>{o()}),[]),ki(()=>(se.current?.addEventListener("scroll",js),()=>{se.current?.removeEventListener("scroll",js)}),[]),ki(()=>{m(l==="failed")},[l]),Kk(()=>{let R=s==="auto"||!z.current||Vn(),le=_||P,me=i(()=>{R||(le?z.current.style.height=`${window.innerHeight-z.current.offsetTop}px`:z.current.style.height=`${700}px`,g(parseFloat(z.current.style.height)<640))},"handler");return me(),window.addEventListener("resize",me),()=>window.removeEventListener("resize",me)},[s,_,P]),Ae.createElement(Xm,{height:s,id:Ue.SWAP_BOX_ID,className:`${T()} ${Ti()}`,ref:z,showBanner:C},Ae.createElement(Vk,{prefix:X?Ae.createElement(Us,{onClick:()=>{v(),r.onBack?.()}}):null,title:r.title,suffix:Ae.createElement(Ae.Fragment,null,r.suffix,r.onWallet&&!w&&Ae.createElement(Qs,{container:N(),onClick:L,isConnected:!!c?.length}),r.onCancel&&Ae.createElement(Hs,{onClick:r.onCancel}))}),Ae.createElement(Ym,{ref:se},n),Ae.createElement(Os,{open:A,onClose:()=>E(!1),onConfirm:j}),Ae.createElement(Zm,null,Ae.createElement("div",{className:"footer__content"},I&&!x&&Ae.createElement("div",{className:"footer__alert"},Ae.createElement($s,{onActivateTab:j}),Ae.createElement(Rm,{size:10})),a),Ae.createElement(Rm,{size:12}),Ae.createElement("div",{className:`footer__logo ${S?"logo__show":"logo__hidden"}`},Ae.createElement(Gk,null))),C&&Ae.createElement(Jm,null,u?.swapBoxBanner?.element),Ae.createElement(Ks,{open:p,onClose:()=>m(!1)}))}i(re,"Layout");import{styled as jk}from"@rango-dev/ui";var od="$20 $20 $10 $20",Xs=jk("div",{padding:od,overflowY:"auto",flexGrow:1});import{styled as Xk}from"@rango-dev/ui";var ie=Xk("div",{display:"flex",flexDirection:"column",padding:"20px 20px 10px",flexGrow:1,variants:{view:{true:{flexGrow:1,overflow:"hidden"}},compact:{true:{padding:0}}}});import{i18n as to}from"@lingui/core";import{useState as Ys}from"react";function nd(){let[t,e]=Ys(!1),[o,n]=Ys(null),[r,a]=Ys(null),{findToken:s}=y(),l=y().customTokens(),c=i(()=>{a(null),e(!1),n(null)},"resetState");function u(m,h){switch(m){case"duplicated":return{type:m,title:to.t("Duplicate Token"),message:to.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:to.t("Token Already Exists"),message:to.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:m,title:to.t("Token Not Found"),message:to.t({id:"Sorry, no token was found on {blockchain} chain with the provided address. please make sure you have entered the right token address.",values:{blockchain:h}})};case"network-error":return{type:m,title:to.t("Network error"),message:to.t("An error occurred while retrieving token data.")}}}return i(u,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:m,tokenAddress:h})=>{e(!0);try{if(l.some(T=>T.address?.toLowerCase()===h.toLowerCase())){let T=u("duplicated");n(T);return}let d=await rt().getCustomToken({blockchain:m,address:h});if(!d||!d.token||d.error){let T=u("not-found",m);n(T);return}let g=d.token;if(s({blockchain:g.blockchain,address:g.address,symbol:g.symbol})){let T=u("token-exist");n(T);return}return a({...g,warning:!0})}catch(f){if(f.code==="ERR_BAD_REQUEST"){let d=u("not-found",m);n(d);return}n(u("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:c}}i(nd,"useFetchCustomToken");var av=ev("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Jk} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function rd(){let t=rv(),[e]=iv(),o=He(),n=y().blockchains(),r=e.get("blockchain")||"",a=So(r,n),[s,l]=nv(""),{fetchCustomToken:c,token:u,loading:p,error:m,resetState:h}=nd(),f=!!a&&Ho(a,s),d=!a||!s||!f,g=i(()=>{a&&c({blockchain:r,tokenAddress:s})},"getCustomToken");return Qe.createElement(re,{header:{title:mn.t("Add Custom Token")}},Qe.createElement(ie,null,Qe.createElement(av,null,Qe.createElement("div",null,Qe.createElement(vs,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:mn.t("Select chain"),placeholder:mn.t("Select chain")}),Qe.createElement(Zs,{size:"24"}),Qe.createElement(ov,{size:"large",variant:"label"},mn.t("Enter Address")),Qe.createElement(Zs,{size:10}),Qe.createElement(tv,{fullWidth:!0,disabled:!a,variant:"contained",placeholder:mn.t("Enter token address"),size:"large",value:s,suffix:!!s&&f&&Qe.createElement(Rk,{color:"success",size:12}),onChange:S=>l(S.target.value)}),!f&&!!s&&Qe.createElement(Qe.Fragment,null,Qe.createElement(Zs,{size:4}),Qe.createElement(Yk,{type:"error",variant:"alarm",title:"Invalid Address"}))),Qe.createElement(Zk,{id:"widget-add-custom-token-import-btn",disabled:d,type:"primary",variant:"contained",loading:p,size:"large",onClick:g},mn.t("Import"))),Qe.createElement(Gn,{token:u,blockchain:a??void 0,address:s,error:m??void 0,fetchCustomToken:c,onCloseErrorModal:()=>{m?.type!=="network-error"&&l("")},onImport:o,onExitErrorModal:h,onExitImportModal:h})))}i(rd,"AddCustomTokenPage");import{i18n as Il}from"@lingui/core";import{useManager as Hw}from"@rango-dev/queue-manager-react";import{Alert as Qw,Button as qw,css as Nl,Divider as Al,IconButton as Kf,styled as Gw,Typography as Vw,WalletIcon as Kw}from"@rango-dev/ui";import _e,{useEffect as Xi,useLayoutEffect as jw,useRef as Xw,useState as ar}from"react";import{useNavigate as Yw}from"react-router-dom";import{i18n as Io}from"@lingui/core";import{Alert as Lv,BalanceErrors as Mv,Button as Bd,ChevronLeftIcon as Pv,Divider as il,MessageBox as _v,Typography as al}from"@rango-dev/ui";import ne,{useCallback as Dv,useEffect as Wd,useMemo as $v,useState as gn}from"react";import{useNavigate as Fv}from"react-router-dom";import{i18n as tl}from"@lingui/core";import{Alert as uv,ChevronDownIcon as mv,CloseIcon as dv,Divider as ud,IconButton as md,PasteIcon as fv,Typography as gv,WalletIcon as hv}from"@rango-dev/ui";import Pe,{useEffect as yv,useRef as Sv}from"react";import xi,{useRef as cv}from"react";import*as dn from"@radix-ui/react-collapsible";import{keyframes as id,styled as vi}from"@rango-dev/ui";var Js=300,sv=id({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),lv=id({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),ad=vi(dn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Rs=vi(dn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),wi=vi(dn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${sv} ${Js}ms ease-out`},false:{animation:`${lv} ${Js}ms ease-out`}}}}),bi=vi("div",{transition:`all ${Js}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Ei(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,c=cv(null);return xi.createElement(ad,{ref:c,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&xi.createElement(Rs,{className:"collapsible_trigger",onClick:a},s),xi.createElement(wi,{className:"collapsible_content",open:e},r),l==="bottom"&&xi.createElement(Rs,{className:"collapsible_trigger",onClick:a},s))}i(Ei,"CustomCollapsible");import{darkTheme as sd,styled as el,TextField as pv}from"@rango-dev/ui";var ld=el("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),cd=el(pv,{backgroundColor:"$neutral100",padding:"$15"}),pd=el("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${sd} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${sd} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function dd(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=y(),l=y().blockchains(),c=Ur(e.name,l),u=Sv(null),p=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!Ho(e,r),d=i(()=>{a("")},"handleClear"),g=i(async T=>{if(T.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),u?.current?.focus()}},"handlePaste"),S=i(()=>r?Pe.createElement(md,{id:"widget-custom-destination-close-icon-btn",onClick:d,variant:"ghost"},Pe.createElement(dv,{size:12,color:"gray"})):m?null:Pe.createElement(md,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Pe.createElement(fv,{size:16})),"renderSuffix");return yv(()=>{!!p&&r===null&&(a(p),o(!0))},[p]),Pe.createElement(ld,null,Pe.createElement(Ei,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Pe.createElement(pd,null,Pe.createElement("div",{className:"button__content"},Pe.createElement(hv,{size:18,color:"info"}),Pe.createElement(ud,{size:4,direction:"horizontal"}),Pe.createElement(gv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},tl.t("Send to a different address"))),Pe.createElement(bi,{orientation:n?"up":"down"},Pe.createElement(mv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Pe.createElement(cd,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:tl.t("Enter {blockchainName} address",{blockchainName:c}),value:r||"",suffix:S(),onChange:T=>{let C=T.target.value;a(C)}})),f&&Pe.createElement(Pe.Fragment,null,Pe.createElement(ud,{size:4}),Pe.createElement(uv,{variant:"alarm",type:"error",title:tl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(dd,"CustomDestination");import{css as Cv,IconButton as Tv,SelectableWalletButton as kv,styled as oo}from"@rango-dev/ui";var fd=oo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),gd=oo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),hd=oo(kv,{justifyContent:"center"}),yd=oo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Sd=oo(Tv,{position:"absolute",left:"$20"}),Cd=oo("div",{paddingTop:"$20"}),Td=Cv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),kd=oo("div",{display:"flex"}),vd=oo("div",{overflow:"visible",width:"100%"});import{i18n as nl}from"@lingui/core";import{warn as Ev}from"@rango-dev/logging-core";import{Divider as Iv,makeInfo as Av,SelectableWallet as Nv,Typography as Ad,WalletState as Ii}from"@rango-dev/ui";import Re,{useEffect as Nd,useState as Yn}from"react";import{Image as bv,MessageBox as xv}from"@rango-dev/ui";import Xn from"react";import{keyframes as vv,styled as ol}from"@rango-dev/ui";var wd=ol("div",{position:"relative"}),wv=vv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),bd=ol("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${wv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),xd=ol("div",{"& img":{borderRadius:"50%"}});import{i18n as fn}from"@lingui/core";function Ed(t,e){switch(t){case"in-progress":return{type:"loading",title:fn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:fn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:fn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:fn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:fn.t("Request Rejected"),description:fn.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(Ed,"generateMessageByStatus");function Id(t){let{status:e,displayName:o,image:n}=t,r=Ed(e,o),a=e=="in-progress";return Xn.createElement(xv,{type:r.type,title:r.title,description:r.description,icon:a?Xn.createElement(wd,null,Xn.createElement(xd,null,Xn.createElement(bv,{src:n,size:45})),Xn.createElement(bd,null)):void 0})}i(Id,"ExperimentalChainStatus");var Bv=7,Wv=3e3;function rl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,l=te.use.isActiveTab(),{blockchains:c,connectedWallets:u}=y(),[p,m]=Yn(),[h,f]=Yn(null),[d,g]=Yn(!1),[S,T]=Yn(null),{suggestAndConnect:C}=Ai(),{list:k}=Ct({chain:e}),[w,x]=Yn(k),I=k.length,A=a&&I-a>0,E=i(async v=>{g(!1),T("in-progress");try{await C(v.walletType,v.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain");Nd(()=>{x(v=>{let B=k.findIndex(P=>n(P.type,e));return A&&B>1?[k[B]].concat(k.filter((P,_)=>_!==B)):v.map(P=>k.find(_=>_.type===P.type)??P)})},[JSON.stringify(k)]);let b=document.getElementById(Ue.SWAP_BOX_ID);return Nd(()=>{let v=null;return(S==="completed"||S==="rejected")&&(v=setTimeout(()=>T(null),Wv)),()=>{v&&clearTimeout(v)}},[S]),Re.createElement(Re.Fragment,null,w.slice(0,a).map(v=>{let B=dp({connectedWallets:u,walletType:v.type,chain:e}),P=v.state===Ii.CONNECTED,_=B?Oo(B,Bv):"",V=(P&&v.isHub||!!v.needsNamespace)&&!_,ee=$r(c(),e),j=!u.find(me=>me.walletType===v.type&&me.chain===e),L=ee&&j&&v.state===Ii.CONNECTED,X=i(async()=>{v.state===Ii.DISCONNECTED||V?m(v):L?(f({walletType:v.type,chain:e,address:B??""}),g(!0)):r({walletType:v.type,chain:e,address:B??""})},"onSelectableWalletClick"),se=Av(v.state),z=i(()=>L?nl.t({id:"Add {chain} chain",values:{chain:e}}):V?nl.t("Chain not connected"):_||se.description,"getWalletDescription"),R=i(()=>v.state===Ii.CONNECTED?V?"neutral600":"neutral700":se.color,"getWalletDescriptionColor"),le=h?.chain?Ur(h.chain,c()):void 0;return Re.createElement(Re.Fragment,{key:`${v.title}_${le}`},!!h&&Re.createElement(J,{open:!!h&&d,container:b,onClose:()=>{f(null)}},Re.createElement(ls,{displayName:le,onConfirm:()=>{E(h)}})),S&&Re.createElement(J,{open:!!S,onClose:T.bind(null,null),container:b},Re.createElement(Id,{status:S,displayName:le,image:v.image}),Re.createElement(Iv,{direction:"vertical",size:32})),Re.createElement(Nv,{key:v.type,description:z(),descriptionColor:R(),onClick:X,selected:n(v.type,e),disabled:!l,...v}))}),Re.createElement(ko,{wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{m(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):Ev(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&Re.createElement(hd,{selected:!1,onClick:s},Re.createElement(Ad,{variant:"label",size:"medium"},nl.t("Show more wallets"),Re.createElement(Ad,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(rl,"WalletList");var Ov=2;function Ld(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Fv(),l=y().blockchains(),{selectedQuote:c,setSelectedWallets:u,quoteWalletsConfirmed:p,setQuoteWalletConfirmed:m,customDestination:h,setCustomDestination:f}=O(),{config:d,connectedWallets:g,setWalletsAsSelected:S}=y(),[T,C]=gn(""),[k,w]=gn([]),[x,I]=gn(""),[A,E]=gn(!!h),b=$v(()=>yo({filter:"all",quote:c}),[c]),v=yo({filter:"required",quote:c}),B=l.find(D=>D.name===c?.swaps[c?.swaps.length-1].to.blockchain),P=i(D=>v.includes(D),"isWalletRequiredFor"),_=Dv(()=>g.filter(D=>D.selected&&b.includes(D.chain)),[g,b]),[V,ee]=gn(_()),[j,L]=gn([]),X=i((D,q)=>L(K=>K.concat({blockchain:D,walletType:q})),"addNextSelectedWallets"),se=k.length>0,z=i((D,q)=>!!V.find(K=>K.walletType===D&&K.chain===q&&K.selected&&(P(q)||!P(q)&&!h)),"isSelected"),R=i((D,q,K)=>{let Se=!1;return D.map(de=>{if(de.chain===q){let Fe=de.selected;return!Se&&K?(Se=!0,Fe=!0):K||(Fe=!1),{...de,selected:Fe}}return de})},"updateSelectableWallets"),le=i(D=>{E(D),D?P(B?.name??"")||ee(q=>R(q,B?.name||"",!1)):(f(""),ee(q=>R(q,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),me=i(D=>{if(T&&C(""),z(D.walletType,D.chain))return;let K=g.find(Se=>Se.walletType===D.walletType&&Se.chain===D.chain);K&&(n(),D.chain===B?.name&&A&&!P(B.name)&&(E(!1),f(null)),ee(Se=>Se.filter(de=>de.chain!==D.chain).concat({...K,selected:!0})))},"onChange"),ce=i(()=>{let D=V.filter(q=>q.selected);S(D),u(D),m(!0),o()},"onConfirmBalance"),mt=i(async()=>{w([]),I("");let D=await r?.({selectedWallets:V.filter(K=>K.selected),customDestination:h}),q=D.warnings;q?.balance?.messages&&w(q.balance.messages),D.error&&I(Mu(D.error)),!D.error&&!q?.balance?.messages.length?ce():w(q?.balance?.messages??[])},"onConfirmWallets");Wd(()=>{ee(D=>{let q=[];return D.forEach(K=>{!g.some(de=>de.chain===K.chain&&de.walletType===K.walletType&&de.address===K.address)||q.push(K)}),q=q.concat(g.filter(K=>!!!q.find(de=>de.chain===K.chain)&&K.selected&&b.includes(K.chain))),q})},[g,b]),Wd(()=>{let D=[];j.length>0&&(j.forEach(q=>{let K=g.find(Se=>Se.chain===q.blockchain&&Se.walletType===q.walletType);K?me(K):D.push(q)}),L(D))},[g,j]);let G=document.getElementById(Ue.SWAP_BOX_ID);return ne.createElement(J,{open:e,onClose:()=>{p||s("../",{replace:!0}),o()},dismissible:!T,container:G,...!T&&{styles:{container:{height:"100%"}},footer:ne.createElement(kd,null,ne.createElement(Bd,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:lm(a,A,h,c,V,B),onClick:mt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Io.t("Confirm")))},...T&&{styles:{container:{height:"100%",padding:"$0"}},header:ne.createElement(yd,null,ne.createElement(Sd,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ne.createElement(Pv,{size:16})),ne.createElement(al,{variant:"headline",size:"small"},Io.t({id:"Your {blockchainName} wallets",values:{blockchainName:dt(T,l)}})))},anchor:"center"},ne.createElement(J,{open:se,onClose:w.bind(null,[]),container:G},ne.createElement(_v,{title:Io.t("Insufficient account balance"),type:"error",description:ne.createElement(Mv,{messages:k??[]})},ne.createElement(Bd,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ce},Io.t("Proceed anyway")))),T&&ne.createElement(Cd,null,ne.createElement("div",{className:Td()},ne.createElement(rl,{chain:T,quoteChains:b,isSelected:z,selectWallet:me,onShowMore:()=>C(T),onConnect:D=>{X(T,D)}}))),!T&&ne.createElement(ne.Fragment,null,x&&ne.createElement(ne.Fragment,null,ne.createElement(Lv,{variant:"alarm",type:"error",title:Io.t(x)}),ne.createElement(il,{size:12})),ne.createElement(vd,null,b.map((D,q)=>{let K=l.find(Ye=>Ye.name===D),Se=`wallet-${q}`,de=q===b.length-1,Fe=de&&B&&d?.customDestination!==!1;return ne.createElement("div",{key:Se},ne.createElement(fd,null,ne.createElement(al,{variant:"title",size:"xmedium"},Io.t({id:"Your {blockchainName} wallets",values:{blockchainName:K?.shortName}})),ne.createElement(al,{variant:"label",color:"$neutral700",size:"medium"},Io.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:K?.shortName}}))),ne.createElement(il,{size:24}),ne.createElement(gd,null,ne.createElement(rl,{chain:D,quoteChains:b,isSelected:z,selectWallet:me,limit:Ov,onShowMore:()=>C(K?.name??""),onConnect:Ye=>{X(D,Ye)}})),!de&&ne.createElement(il,{size:32}),Fe&&ne.createElement(dd,{blockchain:B,open:A,handleOpenChange:le}))}))))}i(Ld,"ConfirmWalletsModal");import{i18n as rw}from"@lingui/core";import{Alert as iw,Button as aw,InfoIcon as sw}from"@rango-dev/ui";import st from"react";import{Alert as Hv,Button as Qv,Divider as cl,NoRouteIcon as qv,RefreshIcon as Gv,Typography as Od}from"@rango-dev/ui";import at from"react";import{i18n as Md}from"@lingui/core";var Uv=24,zv=60;function Pd(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:Md.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Md.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(Pd,"makeInfo");var sl=(o=>(o[o.small=Uv]="small",o[o.large=zv]="large",o))(sl||{}),ll=(o=>(o.small="small",o.large="medium",o))(ll||{});import{styled as Ni}from"@rango-dev/ui";var _d=Ni("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Dd=Ni("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),$d=Ni("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Fd=Ni("div",{padding:"$6 $0"});function Zn(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Pd(o,r,()=>a(s,!0),e);return at.createElement(_d,null,at.createElement(qv,{size:sl[n],color:"gray"}),at.createElement(cl,{size:4}),at.createElement(Od,{variant:"title",size:ll[n]},oe().noResultError.title),n==="large"&&at.createElement(cl,{size:4}),!!l.description&&at.createElement(Dd,{size:n},at.createElement(Od,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),at.createElement(cl,{size:n==="large"?"24":"4"}),!!l.alert&&at.createElement($d,{size:n},at.createElement(Hv,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&at.createElement(Qv,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:at.createElement(Fd,null,at.createElement(Gv,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Zn,"NoResult");import{i18n as Jn}from"@lingui/core";import{Button as Kv,Divider as jv,MessageBox as Xv,Typography as Yv,WarningIcon as Zv}from"@rango-dev/ui";import zt from"react";import{Typography as Qd}from"@rango-dev/ui";import ul from"react";import{darkTheme as Vv,styled as Bi}from"@rango-dev/ui";var Ud=Bi("div",{width:"100%"}),pl=Bi("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),zd=Bi("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Vv} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Hd=Bi("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function qd(t){let{title:e,value:o,valueColor:n}=t;return ul.createElement(zd,null,ul.createElement(Qd,{size:"medium",variant:"label",className:"_title"},e),ul.createElement(Qd,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(qd,"QuoteErrorsModalItem");function Gd(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Jn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:Jn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:Jn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:Jn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return zt.createElement(J,{footer:zt.createElement(Kv,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:zt.createElement(Zv,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},zt.createElement(Xv,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),zt.createElement(pl,null,zt.createElement(jv,{size:"4"}),zt.createElement(Yv,{size:"small",variant:"title"},Jn.t("Details")),zt.createElement(pl,null,l.map((c,u)=>zt.createElement(qd,{key:u,...c})))))}i(Gd,"HighValueLossWarningModal");import{i18n as Wi}from"@lingui/core";function Vd(t,e){let o={alertType:"warning",title:"",action:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Wi.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o;if(t){switch(t.type){case 0:{Ut(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title;break}case 4:{o.title=Wi.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=oe().unknownPriceError.title;break}case 2:{o.title=Wi.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings";break}case 3:{o.title=Wi.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Vd,"makeAlerts");import{i18n as hn}from"@lingui/core";import{Button as Kd,Divider as jd,MessageBox as Jv,Typography as Rv}from"@rango-dev/ui";import Ao from"react";import{useNavigate as ew}from"react-router-dom";function Xd(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,c=ew(),u=e??o;return Ao.createElement(J,{anchor:"bottom",open:n,prefix:Ao.createElement(Kd,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>c("../"+F.settings)},Ao.createElement(Rv,{variant:"label",size:"medium",color:"$neutral900"},hn.t("Change settings"))),container:N(),onClose:r},Ao.createElement(Jv,{type:"warning",title:s.type===3?hn.t("High slippage"):hn.t("Low slippage"),description:s.type===3?hn.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):hn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},Ao.createElement(jd,{size:18}),Ao.createElement(jd,{size:32}),Ao.createElement(Kd,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},hn.t("Confirm anyway"))))}i(Xd,"SlippageWarningModal");import{Button as tw,MessageBox as ow,WarningIcon as nw}from"@rango-dev/ui";import Li from"react";function Yd(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Li.createElement(J,{footer:Li.createElement(tw,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Li.createElement(nw,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Li.createElement(ow,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Yd,"UnknownPriceWarningModal");function Rn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:c,onConfirmWarningModal:u,onChangeSettings:p}=t,m={confirmationDisabled:a,open:r,onClose:c,onConfirm:u},h=o?.type===0||o?.type===1,f=Vd(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),st.createElement(st.Fragment,null,h&&st.createElement(Zn,{error:o,fetch:s}),!!f&&st.createElement(Ud,null,st.createElement(iw,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:st.createElement(Hd,{onClick:l},st.createElement(sw,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:st.createElement(aw,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:p},rw.t("Change"))}})),e&&st.createElement(st.Fragment,null,e.type===0&&st.createElement(Gd,{...m,warning:e}),(e.type===3||e.type===2)&&st.createElement(Xd,{...m,warning:e}),e.type===1&&st.createElement(Yd,{...m,warning:e})))}i(Rn,"QuoteWarningsAndErrors");import Dw from"bignumber.js";import Gi from"react";import{i18n as No}from"@lingui/core";import{Alert as ww,Divider as Sn,FullExpandedQuote as bw,InfoIcon as xw,NumericTooltip as xf,QuoteTag as Ew,StepDetails as Iw,TokenAmount as Aw,Typography as Cn}from"@rango-dev/ui";import Tl from"bignumber.js";import U,{useRef as Nw,useState as Bw}from"react";import{styled as ml}from"@rango-dev/ui";var dl=ml("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Zd=ml("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Jd=ml("div",{width:"100%",display:"flex"});import*as Mi from"@radix-ui/react-collapsible";import{Button as lw,css as er,darkTheme as Ne,Image as Rd,styled as Ge,Typography as cw}from"@rango-dev/ui";var pw=300,ef=Ge(Mi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ne} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ne} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ne} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),tf=er({padding:"$10 $15"}),of=Ge(lw,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Ne} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Ne} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Ne} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),nf=Ge("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${Ne} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Ne} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Ne} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Ne} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Ne} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Ne} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Ne} &`]:{backgroundColor:"$neutral400"}}}}]}),rf=er({width:"100%",padding:"$15 $15 $10 $15"}),af=er({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),yn=er({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),sf=er({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ne} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lf=Ge(Mi.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:{[`& ${Rd}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Rd}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Ne} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Ne} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Ne} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),cf=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),pf=Ge(wi,{width:"100%",background:"inherit"}),fl=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${pw}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),iz=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),uf=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ne} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),mf=Ge("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),gl=Ge(cw,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),df=Ge("div",{display:"flex",flexWrap:"wrap"}),hl=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ff=Ge("div",{display:"flex"}),Pi=Ge("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Ne} &`]:{borderTopColor:"$neutral800"}});import{i18n as Wt}from"@lingui/core";import{ChevronDownIcon as mw,CloseIcon as dw,Divider as $i,IconButton as fw,NumericTooltip as gw,QuoteCost as hw,Typography as wt}from"@rango-dev/ui";import Y,{useState as Sf}from"react";import{css as uw,styled as _i}from"@rango-dev/ui";var Di=_i("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),yl=_i("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),gf=_i("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),hf=_i("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),yf=uw({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var yw=i(t=>t.fee.isZero()?null:Y.createElement(Di,null,Y.createElement(wt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(wt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Sl(t){let[e,o]=Sf(!1),[n,r]=Sf(!1),{steps:a,quote:s,fee:l,time:c,feeWarning:u,timeWarning:p,showModalFee:m,fullExpandedMode:h=!1}=t,f=s?.swaps??[],d=h?ho():N(),g=em(f);return Y.createElement(Y.Fragment,null,Y.createElement(hw,{onClickFee:m?S=>{S.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,timeWarning:p,time:c,steps:a,tooltipGas:m?Wt.t("View more info"):void 0,tooltipContainer:d}),Y.createElement(J,{container:d,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Y.createElement(hf,{style:{textAlign:h?"left":"center"}},Y.createElement(wt,{variant:"title",size:"medium"},Wt.t("Gas & Fee Explanation")),Y.createElement(fw,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(dw,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(gf,null,Y.createElement(wt,{variant:"title",size:"small"},Wt.t("Details")),Y.createElement($i,{size:10}),Object.entries(g.payable).flatMap(([S,T])=>T.map((C,k)=>{let w=`payable-fee-${k}`,x=gs(C);return Y.createElement(Di,{key:w},Y.createElement(wt,{variant:"label",size:"medium",color:"neutral600"},ps(S,Wt.t)),Y.createElement(gw,{content:C.amount,container:d},Y.createElement(wt,{variant:"label",size:"medium"},M(C.amount,2,2)," ",C.asset.symbol," ($",M(x,4,4),")")))})),Y.createElement(Di,{className:"total_payable_fee"},Y.createElement(wt,{variant:"label",size:"medium"},Wt.t("Total Payable Fee")),Y.createElement(wt,{variant:"label",size:"medium"},"$",M(l,4,4))),Y.createElement(yl,null),Object.keys(g.nonePayable).length&&Y.createElement(Ei,{triggerAnchor:"bottom",onClickTrigger:()=>r(S=>!S),trigger:Y.createElement("div",{className:yf()},Y.createElement(wt,{size:"small",variant:"body",color:"neutral700"},n?Wt.t("Hide non-payable fees"):Wt.t("Show non-payable fees")),Y.createElement($i,{size:4,direction:"horizontal"}),Y.createElement(bi,{orientation:n?"up":"down"},Y.createElement(mw,{size:12,color:"gray"}))),open:n},Y.createElement(wt,{size:"small",variant:"title"},Wt.t("Description")),Y.createElement($i,{size:4}),Y.createElement(wt,{size:"small",variant:"body",color:"neutral700"},Wt.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),Y.createElement($i,{size:10}),Object.entries(g.nonePayable).map(([S,T],C)=>{let k=Ru(T),w=ps(S,Wt.t),x=`non-payable-fee-${C}`;return Y.createElement(yw,{key:x,fee:k,label:w})}),Y.createElement(yl,null)))))}i(Sl,"QuoteCostDetails");import{i18n as kf}from"@lingui/core";import{TokenAmount as vf}from"@rango-dev/ui";import Fi from"react";import{css as Sw,styled as Cw}from"@rango-dev/ui";var Cf=Cw("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Tf=Sw({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function tr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Fi.createElement(Cf,null,Fi.createElement(vf,{direction:"horizontal",label:kf.t("Swap input"),type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Fi.createElement("div",{className:Tf()}),Fi.createElement(vf,{direction:"horizontal",tooltipContainer:N(),label:kf.t("Estimated output"),type:"output",price:{value:o.price.value,usdValue:o.price.usdValue,realValue:o.price.realValue,realUsdValue:o.price.realUsdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(tr,"QuoteSummary");import{i18n as wf}from"@lingui/core";import{ChevronDownIcon as Tw,ChevronRightIcon as kw,Divider as Cl,Image as vw,Tooltip as Hi,Typography as Oi}from"@rango-dev/ui";import H from"react";var Ui=4,zi=6,or=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||N();return H.createElement(Hi,{container:l,side:"bottom",sideOffset:4,open:r,content:e},H.createElement(cf,{className:n,state:a},H.createElement(vw,{src:o,size:16})))},"ImageComponent");function bf(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,c=l||N(),u=r.length,p=Qu(r),{isTablet:m,isMobile:h}=cn();return H.createElement(lf,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(d=>!d)}},H.createElement("div",{className:yn()},H.createElement(Oi,{variant:"body",size:"xsmall"},wf.t("Via:")),H.createElement(Cl,{direction:"horizontal",size:4}),r.map((f,d)=>{let g=`item-${d}`,S=H.createElement(fl,null,H.createElement(kw,{size:12,color:"black"}));return h||m?H.createElement(H.Fragment,{key:g},H.createElement(or,{content:f.swapper.displayName,src:f.swapper.image??"",state:f.state,container:l}),d!==u-1&&H.createElement(H.Fragment,null,S)):H.createElement(H.Fragment,{key:g},u<=Ui||u>Ui&&d<Ui-1?H.createElement(H.Fragment,null,H.createElement(or,{content:f.swapper.displayName,src:f.swapper.image??"",state:f.state,container:l}),d!==u-1&&H.createElement(H.Fragment,null,S)):d===Ui-1&&H.createElement(Hi,{container:c,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:yn()},S,r.map((T,C)=>{let k=`image-${C}`;return C>=d&&H.createElement(H.Fragment,{key:k},H.createElement(or,{content:T.swapper.displayName,src:T.swapper.image??"",state:T.state,open:!1}),C!==u-1&&H.createElement(H.Fragment,null,S))}))},H.createElement(hl,{state:r.find((T,C)=>C>=d&&(T.state==="error"||T.state==="warning"))?.state},H.createElement(Oi,{size:"xsmall",variant:"body"},"+",u-d))))})),H.createElement("div",{className:yn()},H.createElement("div",{className:"blockchains_section"},H.createElement("div",{className:yn()},H.createElement(Oi,{variant:"body",size:"xsmall"},wf.t("Chains:")),H.createElement(Cl,{direction:"horizontal",size:4}),p.map((f,d)=>H.createElement(H.Fragment,{key:f.displayName},p.length<=zi||p.length>zi&&d<zi-1?H.createElement(Hi,{container:c,side:"bottom",content:f.displayName,sideOffset:4},H.createElement(or,{content:"",src:f.image??"",open:!1,className:d!==0?"blockchainImage":""})):d===zi-1&&H.createElement(Hi,{container:c,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:yn()},p.map((g,S)=>S>=d&&H.createElement(or,{key:g.displayName,content:"",src:g.image??"",open:!1,className:S>d?"blockchainImage":"",container:l})))},H.createElement(hl,{className:"blockchainImage"},H.createElement(Oi,{size:"xsmall",variant:"body"},"+",p.length-d))))),H.createElement(Cl,{direction:"horizontal",size:32}))),H.createElement(fl,{orientation:a?"up":"down"},H.createElement(Tw,{size:12,color:"black"}))))}i(bf,"QuoteTrigger");function kl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:c=!0,showModalFee:u=!0,onClickAllRoutes:p,fullExpandedMode:m=!1,container:h}=t,f=y().blockchains(),{findToken:d}=y(),g=y().swappers(),{customSlippage:S,slippage:T}=y(),C=S||T,[k,w]=Bw(t.expanded),x=Nw(null),I=M(o.value,6,6),A=M(n.value,6,6),E=n.usdValue?M(n.usdValue,4,4):"",b=Ot(o.usdValue,n.usdValue??null),v=M(b,2,2),B=Ut(b??0),P=i((ce,mt)=>ce.map((G,D)=>{let q,K=r?.type===3&&r.swap.swapperId===G.swapperId,Se=r?.type===4&&r.recommendedSlippages?.has(D),de=a?.type===2&&a.recommendedSlippages?.has(D),Fe=K||Se,Ye=de;Fe?q="error":Ye&&(q="warning");let we=Fe?No.t("Slippage Error"):No.t("Slippage Warning");return K&&(we=No.t("Bridge Limit Error")),{swapper:{displayName:Bn(G.swapperId,g)??"",image:G.swapperLogo},from:{token:{displayName:G.from.symbol,image:G.from.logo},chain:{displayName:dt(G.from.blockchain,f)??"",image:G.from.blockchainLogo},price:{value:D===0&&!mt?M(o.value,6,6):M(G.fromAmount,6,6),usdValue:M((G.from.usdPrice??0)*parseFloat(G.fromAmount),4,4),realValue:D===0?o.value:G.fromAmount,realUsdValue:new Tl(G.from.usdPrice??0).multipliedBy(G.fromAmount).toString()}},to:{token:{displayName:G.to.symbol,image:G.to.logo},chain:{displayName:dt(G.to.blockchain,f)||"",image:G.to.blockchainLogo},price:{value:M(G.toAmount,6,6),usdValue:M((G.to.usdPrice??0)*parseFloat(G.toAmount),4,4),realValue:G.toAmount,realUsdValue:new Tl(G.to.usdPrice??0).multipliedBy(G.toAmount).toString()}},state:q,alerts:Fe||Ye?U.createElement(Zd,{dense:m},U.createElement(ww,{variant:"alarm",type:Fe?"error":"warning",title:we,footer:U.createElement(Jd,null,K&&U.createElement("div",null,U.createElement(Cn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(Sn,{direction:"vertical",size:2}),U.createElement(Cn,{size:"xsmall",variant:"body",color:"neutral900"},No.t({id:"Yours: {amount} {symbol}",values:{amount:M(G.fromAmount,6,6),symbol:G?.from.symbol}}))),(Se||de)&&!K&&U.createElement("div",null,U.createElement(Cn,{size:"xsmall",variant:"body",color:"neutral900"},No.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(D)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(D)}}})),U.createElement(Sn,{direction:"vertical",size:2}),U.createElement(Cn,{size:"xsmall",variant:"body",color:"neutral900"},No.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:bn(G.estimatedTimeInSeconds),fee:M(fs(G,d),2,2),internalSwaps:G.internalSwaps?P(G.internalSwaps):void 0}}),"getQuoteSteps"),_=P(e?.swaps??[]),V=_.length,ee=h||N(),j=Gu(t.quote.tags||[]),L=!!p,X=Pr(e?.swaps),se=bn(X),z=ci(e?.swaps??[],d),R=M(z,2,2),le=z.gte(new Tl(_u)),me=X/$u>=Du;return m?U.createElement(bw,{selected:l,fee:R,time:se,tooltipContainer:ho(),steps:_,tags:j,quoteCost:U.createElement(Sl,{quote:e,fullExpandedMode:!0,time:se,fee:R,feeWarning:le,timeWarning:me,showModalFee:u,steps:V}),percentageChange:v,warningLevel:B,outputPrice:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(nf,{selected:l,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:rf()},!c&&j.length?U.createElement(U.Fragment,null,U.createElement(ff,null,j.map((ce,mt)=>{let G=`${ce.value}_${mt}`;return U.createElement(U.Fragment,{key:G},U.createElement(Ew,{label:ce.label,value:ce.value}),U.createElement(Sn,{size:4,direction:"horizontal"}))})),U.createElement(Pi,null),!L&&U.createElement(Sn,{size:4})):null,U.createElement("div",{id:"portal-root",className:af()},U.createElement(Sl,{quote:e,time:se,fee:R,feeWarning:le,timeWarning:me,showModalFee:u,steps:V}),L&&U.createElement(of,{onClick:ce=>{ce.stopPropagation(),p()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(Cn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},No.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:sf()},U.createElement(mf,null,U.createElement(xw,{size:12,color:"gray"})),U.createElement(df,null,U.createElement(gl,{size:"small",variant:"body"},`${I} ${_[0].from.token.displayName} = `),U.createElement(xf,{content:n.value,container:ee,open:n.value?void 0:!1},U.createElement(gl,{size:"small",variant:"body"},"\xA0",`${A} ${_[_.length-1].to.token.displayName}`))),U.createElement(xf,{content:n.usdValue,container:ee},U.createElement(Sn,{size:2,direction:"horizontal"}),U.createElement(Cn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(Aw,{tooltipContainer:ee,type:"output",direction:"vertical",price:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:_[V-1].to.token.displayName,image:_[V-1].to.token.image},chain:{image:_[V-1].to.chain.image},percentageChange:v,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(tr,{from:_[0].from,to:_[V-1].to,percentageChange:v,warningLevel:B}),U.createElement(Sn,{size:4}))),U.createElement(ef,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},U.createElement(bf,{type:s,quoteRef:x,selected:l,setExpanded:w,container:ee,expanded:k,steps:_}),U.createElement(pf,{open:k},U.createElement(uf,null),U.createElement("div",{className:tf()},_.map((ce,mt)=>{let G=`item-${mt}`;return U.createElement(Iw,{type:"quote-details",key:G,tooltipContainer:ee,step:ce,hasSeparator:mt!==_.length-1,state:ce.state})})))))}i(kl,"Quote");import{Divider as Pw,Skeleton as _w}from"@rango-dev/ui";import Qt from"react";import{darkTheme as Ww,styled as Qi}from"@rango-dev/ui";var Ef=Qi("div",{$$color:"$colors$neutral100",[`.${Ww} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),If=Qi("div",{paddingTop:"$2"}),Af=Qi("div",{paddingLeft:"$8"}),Nf=Qi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Of,Divider as bt,Skeleton as lt}from"@rango-dev/ui";import Q from"react";import{css as Lw,styled as Ht}from"@rango-dev/ui";var vl=Ht("div",{display:"flex"}),Bf=Ht("div",{padding:"$10 $0 $20"}),Wf=Ht("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Lf=Ht("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Mf=Ht("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Pf=Ht("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),_f=Ht("div",{width:"65%",display:"flex",justifyContent:"start"}),Df=Ht("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),$f=Ht("div",{padding:"$15 $0 $15 $0"}),Ff=Lw({display:"flex",justifyContent:"space-between",alignItems:"center"});function nr(t){let{type:e,tagHidden:o=!0}=t,n=Q.createElement(Mf,null,Q.createElement(_f,null,Q.createElement(Of,{loading:!0,size:"medium"}),Q.createElement(bt,{size:8,direction:"horizontal"}),Q.createElement(Df,null,Q.createElement(lt,{height:10,width:60,variant:"rounded"}),Q.createElement(bt,{size:4}),Q.createElement(lt,{height:15,variant:"rounded"}))),Q.createElement(lt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return Q.createElement("div",null,!o&&Q.createElement(Q.Fragment,null,Q.createElement(vl,null,Q.createElement(lt,{width:65,height:20,variant:"rounded"}),Q.createElement(bt,{size:4,direction:"horizontal"}),Q.createElement(lt,{width:65,height:20,variant:"rounded"}),Q.createElement(bt,{size:4,direction:"horizontal"}),Q.createElement(lt,{width:65,height:20,variant:"rounded"})),Q.createElement(Pi,null),!r&&Q.createElement(bt,{size:4})),Q.createElement("div",{className:Ff()},Q.createElement(vl,null,Q.createElement(lt,{width:60,height:10,variant:"rounded"}),Q.createElement(bt,{size:4,direction:"horizontal"}),Q.createElement(lt,{width:60,height:10,variant:"rounded"}),Q.createElement(bt,{size:4,direction:"horizontal"}),Q.createElement(lt,{width:60,height:10,variant:"rounded"})),r&&Q.createElement(lt,{width:85,height:24,variant:"rounded"})),e==="basic"&&Q.createElement(Bf,null,Q.createElement(lt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&Q.createElement(Wf,null,Q.createElement(Lf,null,Q.createElement(Of,{loading:!0,size:"medium"}),Q.createElement(bt,{direction:"horizontal",size:4}),Q.createElement(lt,{height:15,width:150,variant:"rounded"})),Q.createElement(bt,{size:10}),Q.createElement(lt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&Q.createElement(Q.Fragment,null,Q.createElement(bt,{size:4}),Q.createElement($f,null,n,Q.createElement(Pf,null),n),Q.createElement(bt,{size:12})))}i(nr,"QuoteSummarySkeleton");import{ChainToken as qf,Divider as bl,NextIcon as Mw,Skeleton as qi}from"@rango-dev/ui";import Be from"react";import{styled as rr}from"@rango-dev/ui";var Uf=rr("div",{display:"flex",alignItems:"start"}),zf=rr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),wl=rr("div",{display:"flex",alignItems:"center",flexGrow:1}),Hf=rr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Qf=rr("div",{display:"flex",alignItems:"center"});function Lt(t){let{separator:e=!0}=t;return Be.createElement(Be.Fragment,null,Be.createElement(Qf,null,Be.createElement(qi,{height:22,width:22,variant:"circular"}),Be.createElement(bl,{direction:"horizontal",size:8}),Be.createElement(qi,{height:15,width:148,variant:"rounded"})),Be.createElement(Uf,null,Be.createElement(Nf,{hideSeparator:!e}),Be.createElement(zf,{extraSpace:e},Be.createElement(wl,null,Be.createElement(qf,{size:"small",loading:!0}),Be.createElement(bl,{direction:"horizontal",size:8}),Be.createElement(qi,{height:12,variant:"rounded"})),Be.createElement(Hf,null,Be.createElement(Mw,{color:"gray",size:16})),Be.createElement(wl,null,Be.createElement(qf,{size:"small",loading:!0}),Be.createElement(bl,{direction:"horizontal",size:8}),Be.createElement(qi,{height:12,variant:"rounded"})))))}i(Lt,"StepSkeleton");function ir(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Qt.createElement(Ef,{expanded:o,rounded:e!=="basic"},Qt.createElement(nr,{type:e,tagHidden:n}),Qt.createElement(If,null,Qt.createElement(_w,{height:15,variant:"rounded"})),o&&Qt.createElement(Af,null,Qt.createElement(Pw,{size:24}),Qt.createElement(Lt,null),Qt.createElement(Lt,null),Qt.createElement(Lt,{separator:!1})))}i(ir,"QuoteSkeleton");function Bo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:c,showModalFee:u,selected:p,onClickAllRoutes:m,fullExpandedMode:h=!1,container:f}=t,{inputAmount:d,inputUsdValue:g}=O(),S=e?.outputAmount?new Dw(e?.outputAmount):null,T=e?ht(e):null,k=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Gi.createElement(dl,null,Gi.createElement(ir,{tagHidden:l,type:o,expanded:s})):k?Gi.createElement(dl,{onClick:()=>c?.(e)},Gi.createElement(kl,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:p,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:h,input:{value:d,usdValue:g?.toString()??""},output:{value:S?.toString()??"",usdValue:T?.toString()??""}})):null}i(Bo,"QuoteInfo");import{calculatePendingSwap as Uw}from"@rango-dev/queue-manager-rango-preset";import{useEffect as zw}from"react";import{useRef as $w,useState as Fw}from"react";var Ow=2e3;function Vi({request:t}){let[e,o]=Fw(!1),n=$w(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(c=>setTimeout(c,Ow)),await s(l,!1)),"retryFetch"),s=i(async(l,c=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(c)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Vi,"useFetch");function Gf(){let{fetch:t,loading:e,cancelFetch:o}=Vi({request:async(n,r)=>await rt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Gf,"useFetchConfirmQuote");function Ki(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=xl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ki,"throwErrorIfResponseIsNotValid");function xl(t){if(Yu(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Zu(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=tm(t);if(o){let n=pi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(xl,"getQuoteError");function Vf(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,l={quote:null,balance:null},c=rn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});c&&(l.quote=c);let u=rm(e,r,n.blockchains);return u.length===0||(l.balance={messages:u}),l}i(Vf,"generateWarnings");function ji(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1,diagnosisMessage:t.message},warnings:null}}i(ji,"handleQuoteErrors");function El(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:l}=O(),{slippage:c,customSlippage:u}=y(),p=y().getDisabledLiquiditySources(),m=y().blockchains(),h=y().tokens(),{findToken:f}=y(),d=u||c,{fetch:g,cancelFetch:S,loading:T}=Gf();return zw(()=>S,[]),{loading:T,fetch:i(async k=>{let w=k.selectedWallets,x=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=w.reduce((E,b)=>(E[b.chain]=b.address,E),{}),A={requestId:a?.requestId||"",selectedWallets:I,destination:x||void 0};try{return await g(A,!0).then(E=>{let{result:b}=E;if(!b)throw new Error(E.error??"Error fetching updated quote");Ki({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let v={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(v);let B={slippage:d.toString(),disabledSwappersGroups:p},P=Vf({previousQuote:a??void 0,currentQuote:v,meta:{blockchains:m},selectedWallets:w,userSlippage:d,inputUsdValue:n,findToken:f});l();let _=!!P.balance,V=Uw(o.toString(),b,nm(w),B,!_,{blockchains:m,tokens:h});return{quote:v,swap:V,error:null,warnings:P}})}catch(E){return ji(E)}},"fetch"),cancelFetch:S}}i(El,"useConfirmSwap");var Zw=Gw("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Kf}`]:{width:"$48",height:"$48"}}),Jw=Nl({flexGrow:1,paddingRight:"$10"}),Rw=Nl({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),eb=Nl({display:"flex",justifyContent:"space-between",alignItems:"center"});function jf(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=Yw(),[l,c]=ar(""),u=!n,[p,m]=ar(!1),[h,f]=ar(!1),{isActiveTab:d}=te(),g=y().getDisabledLiquiditySources(),S=Xw(g),{manager:T}=Hw(),{fetch:C,loading:k,cancelFetch:w}=El(),[x,I]=ar({swap:null,error:null,warnings:null}),[A,E]=ar(!1),b=i(async({selectedWallets:L,customDestination:X})=>{let se=await C?.({selectedWallets:L,customDestination:X});return I(se),se},"onConfirmSwap"),v=i(async()=>{if(x.swap&&n)try{await T?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let L=`../${F.swaps}/${x.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){c("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{f(!0),await v(),f(!1)},"onConfirm"),P=i(async()=>{x.warnings?.quote&&Hu(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),_=i(async()=>{I({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(L=>{I(L)}).catch(L=>console.error(L))},"onRefresh");Xi(()=>{!!S.current.length&&!g.length&&_(),S.current=g},[g.length]),Xi(()=>{u&&w()},[u]),Xi(()=>{u&&m(u)},[u]),Xi(()=>{u||C({selectedWallets:o,customDestination:r}).then(L=>I(L)).catch(L=>console.error(L))},[]),jw(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let V=x.warnings?.quote??null,ee=x.error,j=[];if(l&&j.push(_e.createElement(Qw,{type:"error",variant:"alarm",title:l})),V||ee){let L=`../${F.settings}`;j.push(_e.createElement(Rn,{warning:V,error:ee,couldChangeSettings:!1,refetchQuote:_,showWarningModal:A,confirmationDisabled:!d,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await v()},onChangeSettings:()=>s(L)}))}return _e.createElement(re,{header:{title:Il.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:_e.createElement(Zw,null,_e.createElement("div",{className:Jw()},_e.createElement(qw,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||h,disabled:!!x.error||!d,onClick:P},Il.t("Start Swap"))),_e.createElement(Kf,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||h,disabled:!d,onClick:m.bind(null,!0)},_e.createElement(Kw,{size:24})))},p&&_e.createElement(Ld,{open:p,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:b}),_e.createElement(ie,null,_e.createElement("div",{className:eb()},_e.createElement(Vw,{variant:"title",size:"small"},Il.t("You get")),_e.createElement("div",{className:Rw()},_e.createElement(hi,{onClick:!k&&!p&&!A?_:void 0}))),_e.createElement(Al,{size:"12"}),Nm(j.map((L,X)=>({element:L,key:`alert-${X}`})),_e.createElement(Al,{size:10})),j.length>0?_e.createElement(Al,{size:10}):null,_e.createElement(Bo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:x.error,loading:k,warning:x.warnings?.quote??null})))}i(jf,"ConfirmSwapPage");import{i18n as Gt}from"@lingui/core";import{Button as zl,CustomTokensZeroStateDarkIcon as kb,CustomTokensZeroStateIcon as vb,DeleteIcon as wb,Divider as mr,IconButton as bb,MessageBox as xb,NotFound as Eb,styled as Ql}from"@rango-dev/ui";import he,{useState as Hl}from"react";import{useNavigate as Ib}from"react-router-dom";import{CloseIcon as ob,IconButton as nb,SearchIcon as rb,TextField as ib}from"@rango-dev/ui";import sr from"react";import{styled as tb}from"@rango-dev/ui";var Xf=tb("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function xt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:c,suffix:u,...p}=t,m=s.length?sr.createElement(nb,{variant:"ghost",onClick:()=>c?.(""),size:"small"},sr.createElement(ob,{color:"gray",size:10})):null;return u&&(m=u),sr.createElement(ib,{prefix:sr.createElement(Xf,null,sr.createElement(rb,{color:"black"})),suffix:m,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...p})}i(xt,"SearchInput");import{i18n as Ul}from"@lingui/core";import{Button as cb,CustomTokenWarning as pb,darkTheme as sg,Divider as qt,ExternalLinkIcon as ub,Image as mb,ListItem as db,NotFound as fb,PinIcon as gb,Skeleton as Wo,Typography as pr,VirtualizedList as hb}from"@rango-dev/ui";import W,{useState as yb}from"react";import{useTranslation as Sb}from"react-i18next";import{Divider as ig,ListItem as lb,Skeleton as cr}from"@rango-dev/ui";import Et from"react";import{css as Tn,darkTheme as Bl,ImageContainer as ab,ListItemButton as sb,styled as et,Typography as Yf}from"@rango-dev/ui";var Wl=Tn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ll=Tn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Ml=Tn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Pl=Tn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Bl} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),_l=Tn({}),Dl=Tn(),Zf=et("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),$l=et("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Yi=et("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ll}`]:{[`& .${Pl}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${_l}`]:{bottom:"-15px"},[`& .${Wl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Ml}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Jf=et(sb,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),Fl=et("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Ol=et(Yf,{}),Rf=et("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Dl}`]:{$$color:"$colors$neutral600",[`.${Bl} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lr=et("div",{display:"flex",alignItems:"end",flexDirection:"column"}),YQ=et("div",{display:"flex",alignItems:"center"}),eg=et("div",{position:"relative",[`& ${ab}`]:{borderRadius:"$xm",overflow:"hidden"}}),tg=et("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),og=et(Yf,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),ng=et("a",{"& svg:hover":{color:"$colors$info"}}),rg=et("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${Bl} &`]:{color:"$foreground"}}}});function ag(t){return Et.createElement(Yi,null,Array.from(Array(t.size),e=>Et.createElement(lb,{key:e,hasDivider:!0,start:Et.createElement(cr,{variant:"circular",width:35,height:35}),end:Et.createElement(lr,null,Et.createElement(cr,{variant:"text",size:"large",width:70}),Et.createElement(ig,{size:4}),Et.createElement(cr,{variant:"text",size:"medium",width:50})),title:Et.createElement("div",null,Et.createElement(cr,{variant:"text",size:"large",width:90}),Et.createElement(ig,{size:4}),Et.createElement(cr,{variant:"text",size:"medium",width:90}))})))}i(ag,"LoadingTokenList");var Cb=20,Tb=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return W.createElement("div",{className:Ll()},o?W.createElement("div",{className:Wl()},o):W.createElement($l,{className:Ml()},W.createElement(pr,{variant:"title",size:"xmedium"},r.symbol),W.createElement(qt,{direction:"horizontal",size:4}),W.createElement(Fl,{css:a},W.createElement(Ol,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&W.createElement("div",{className:`${Pl()} ${!o&&_l()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",W.createElement(qt,{size:4,direction:"horizontal"}),W.createElement(ng,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:c=>c.stopPropagation()},W.createElement(ub,{size:12}))))},"renderDesc");function ur(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:l,showWarning:c=!0}=t,u=y().fetchStatus,p=y().blockchains(),{getBalanceFor:m,fetchingWallets:h}=y(),{isTokenPinned:f}=y(),{setFromToken:d,setToToken:g}=O(),{t:S}=Sb(),T=He(),[C,k]=yb(null),w=i(()=>{l==="source"?d({token:C,meta:{blockchains:p}}):g({token:C,meta:{blockchains:p}})},"updateToken"),x=i(()=>{w(),T()},"handleImportToken"),I=i(b=>{if(b.customToken){let{customToken:B,...P}=b;return W.createElement(cb,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(V=>{V.stopPropagation(),k({...P,warning:!0})},"handleClick")},W.createElement(pr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let v=Fr(m(b));return s?s(b):h?W.createElement(lr,null,W.createElement(Wo,{variant:"text",size:"large",width:70}),W.createElement(qt,{size:4}),W.createElement(Wo,{variant:"text",size:"medium",width:50})):v&&W.createElement(Rf,null,W.createElement(og,{variant:"title",size:"small"},v.amount),W.createElement("div",null),v.usdValue&&W.createElement(pr,{variant:"body",className:Dl(),size:"xsmall"},`$${v.usdValue}`))},"endRenderer"),A=i(()=>W.createElement(hb,{itemContent:b=>{let v=e[b];if(v==="skeleton")return W.createElement(db,{hasDivider:!0,start:W.createElement(Wo,{variant:"circular",width:35,height:35}),end:W.createElement(lr,null,W.createElement(Wo,{variant:"text",size:"large",width:70}),W.createElement(qt,{size:4}),W.createElement(Wo,{variant:"text",size:"medium",width:50})),title:W.createElement("div",null,W.createElement(Wo,{variant:"text",size:"large",width:90}),W.createElement(qt,{size:4}),W.createElement(Wo,{variant:"text",size:"medium",width:90}))});let B=v.address||"",P=p.find(L=>L.name===v.blockchain);if(!P)return null;let _=Ws(P.color,"main"),V={$$color:_.main150,[`.${sg} &`]:{$$color:_.main750},backgroundColor:"$$color"},ee={$$color:_.main750,[`.${sg} &`]:{$$color:_.main150},color:"$$color"},j=i(()=>{typeof v!="string"&&!v.customToken&&n?.(v)},"handleClick");return W.createElement(rg,null,W.createElement(Jf,{"tab-index":b,key:`${v.symbol}${v.address}`,id:`${v.symbol}${v.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:v.customToken,onClick:j,start:W.createElement(eg,null,W.createElement(mb,{src:v.image===""?Qr:v.image,size:30}),t.type!=="custom-token"&&f(v,t.type)&&W.createElement(tg,null,W.createElement(gb,{size:12,color:"gray"}))),title:P?.type==="COSMOS"||v.name||!v.name&&!B?W.createElement($l,null,W.createElement(pr,{variant:"title",size:"xmedium"},v.symbol),W.createElement(qt,{direction:"horizontal",size:4}),W.createElement(Fl,{css:V},W.createElement(Ol,{variant:"body",size:"xsmall",css:ee},v.blockchain)),c&&v.warning&&W.createElement(W.Fragment,null,W.createElement(qt,{direction:"horizontal",size:4}),W.createElement(pb,{container:N()}))):void 0,description:typeof v!="string"&&P?.info&&B&&P.type!=="COSMOS"?Tb({address:B,token:v,customCssForTag:V,customCssForTagTitle:ee,name:v.name,url:P.info.addressUrl.split("{wallet}").join(B)}):v.name||void 0,end:I(v)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=C?So(C?.blockchain,p):null;return W.createElement(W.Fragment,null,a&&W.createElement(W.Fragment,null,W.createElement(pr,{variant:"label",size:"large"},Ul.t("Select Token")),W.createElement(qt,{size:4})),W.createElement(Zf,null,W.createElement(qt,{size:4}),u==="loading"&&W.createElement(ag,{size:Cb}),u==="success"&&(e.length?W.createElement(W.Fragment,null,W.createElement(Gn,{token:C,address:C?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),W.createElement(Yi,{as:"ul"},A())):!!o&&W.createElement(fb,{title:Ul.t("No results found"),description:Ul.t("Try using different keywords")}))))}i(ur,"TokenList");var Ab=Ql("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Nb=Ql("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Bb=Ql(bb,{"&:hover":{"& svg":{color:"$secondary550"}}});function lg(){let[t,e]=Hl(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=O(),{mode:c}=pn({}),u=Ib(),[p,m]=Hl(!1),[h,f]=Hl(),d=i(C=>{let k=C.target.value;e(k)},"handleSearch"),g=c==="dark",S=n.filter(C=>ot(C.symbol,t)||ot(C.address||"",t)||ot(C.name||"",t)),T=i(()=>{if(h){let C=a?ft(a):null,k=r?ft(r):null,w=ft(h);C===w?l({token:null}):k===w&&s({token:null}),o(h)}m(!1)},"handleDeleteCustomToken");return he.createElement(re,{header:{title:Gt.t("Custom Tokens")}},he.createElement(ie,null,he.createElement(Ab,null,n.length?he.createElement(he.Fragment,null,he.createElement(xt,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Gt.t("Search Token"),onChange:d}),he.createElement(mr,{size:16}),he.createElement(ur,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>he.createElement(Bb,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),f(C)}},he.createElement(wb,{size:12,color:"gray"}))})):he.createElement(Nb,null,he.createElement(Eb,{icon:g?he.createElement(kb,{size:200}):he.createElement(vb,{size:200}),title:Gt.t("No custom tokens"),description:Gt.t("press the button to add your custom token")})),he.createElement(mr,{size:20}),he.createElement(zl,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u(F.addCustomTokens)},Gt.t("Add Custom Token"))),he.createElement(J,{open:p,dismissible:!0,onClose:()=>m(!1),container:N()},he.createElement(xb,{title:Gt.t("Delete Custom Token"),type:"error",description:Gt.t("Are you sure you want to Delete this Token?")},he.createElement(mr,{size:40}),he.createElement(mr,{size:10}),he.createElement(zl,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:T},Gt.t("Yes, Delete it")),he.createElement(mr,{size:12}),he.createElement(zl,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},Gt.t("No, Continue"))))))}i(lg,"CustomTokensPage");import{i18n as Ke}from"@lingui/core";import{useManager as Yb}from"@rango-dev/queue-manager-react";import{Button as Yl,darkTheme as Zb,Divider as Mo,MessageBox as Jb,NotFound as Rb,styled as Zl,Typography as Ri}from"@rango-dev/ui";import{TransactionStatus as gr}from"rango-types";import ae,{useMemo as Ig,useState as ea}from"react";import{useNavigate as ex}from"react-router-dom";import{FilterIcon as $b,Popover as Fb}from"@rango-dev/ui";import Lo from"react";import{css as Wb,darkTheme as Zi,IconButton as Lb,styled as dr}from"@rango-dev/ui";var ql=dr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Zi} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),cg=dr(Lb,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Zi} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Zi} &`]:{backgroundColor:"$neutral"},[`& ${ql}::before`]:{backgroundColor:"$secondary100",[`.${Zi} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),pg=dr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),ug=dr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),mg=Wb({display:"flex",justifyContent:"space-between",alignItems:"center"}),dg=dr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as fg}from"@lingui/core";import{Button as Mb,Divider as gg,ListItemButton as Pb,Radio as _b,RadioRoot as Db,Typography as hg}from"@rango-dev/ui";import ct from"react";function yg(t){let{filterBy:e,onClickItem:o}=t;return ct.createElement(ug,null,ct.createElement("div",{className:mg()},ct.createElement(hg,{size:"small",variant:"body"},fg.t("Status")),ct.createElement(Mb,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},fg.t("Reset"))),ct.createElement(gg,{size:10}),ct.createElement(Db,{value:e},ct.createElement(dg,null,t.list.map((n,r)=>ct.createElement(Pb,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ct.createElement(ct.Fragment,null,ct.createElement(gg,{direction:"horizontal",size:4}),ct.createElement(hg,{size:"medium",variant:"body"},n.title)),start:ct.createElement(_b,{value:n.id}),onClick:o})))))}i(yg,"FilterSelectorContent");function Gl(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Lo.createElement("div",null,Lo.createElement(Fb,{open:a,align:"end",onOpenChange:o,container:N(),content:Lo.createElement(yg,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Lo.createElement(cg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Lo.createElement(ql,{isSelect:!!n},Lo.createElement($b,{size:16,color:"black"}),!!n&&Lo.createElement(pg,null)))))}i(Gl,"FilterSelector");import{i18n as zb}from"@lingui/core";import{getCurrentStep as Hb}from"@rango-dev/queue-manager-rango-preset";import{Divider as vg,GroupedVirtualizedList as Qb,Skeleton as qb,SwapListItem as wg,Typography as Gb}from"@rango-dev/ui";import Ve,{useCallback as bg,useEffect as Vb,useRef as Kb,useState as jb}from"react";function Sg(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(Sg,"calculateGroupsSoFar");import{css as Ob,darkTheme as Ub,styled as fr}from"@rango-dev/ui";var Vl=Ob(),Cg=fr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Kl=fr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Vl}`]:{$$color:"$colors$neutral600",[`.${Ub} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),jl=fr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Tg=fr("div",{gap:"$10",display:"flex",flexDirection:"column"}),kg=fr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Xb=10;function Xl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=jb([]),l=Kb(0),{swaps:c,groupCounts:u,groups:p}=n(e),m=bg(Sg,[]),h=bg(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,Xb),s(m(u,l.current)))},[e.length]);if(Vb(()=>{r||h()},[r,h]),r){let f=[1,2];return Ve.createElement(Ve.Fragment,null,[f,f].map((g,S)=>Ve.createElement(Kl,{key:S},Ve.createElement(jl,null,Ve.createElement(qb,{variant:"text",width:60,size:"small"}),Ve.createElement(vg,{size:16})),Ve.createElement(vg,{size:4}),Ve.createElement(Tg,null,g.map((C,k)=>Ve.createElement(wg,{isLoading:!0,key:k}))))))}return Ve.createElement(Qb,{endReached:()=>{l.current<e.length&&h()},groupCounts:a,groupContent:f=>Ve.createElement(Kl,null,Ve.createElement(jl,null,Ve.createElement(Gb,{variant:"label",size:"medium",className:Vl()},p[f]))),itemContent:(f,d)=>{let g=c[f],S=Hb(g);if(!g)return null;let T=g.steps[0],C=g.steps[g.steps.length-1];return Ve.createElement(Cg,{key:g.requestId},Ve.createElement(wg,{requestId:g.requestId,creationTime:g.creationTime,status:g.status,onClick:o,currentStep:S,tooltipContainer:N(),onlyShowTime:p[d]===zb.t("Today"),swapTokenData:{from:{token:{image:T.fromLogo,displayName:T.fromSymbol},blockchain:{image:T.fromBlockchainLogo||""},amount:M(g.inputAmount,6,6),realAmount:g.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:M(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(Xl,"HistoryGroupedList");import{i18n as Ji}from"@lingui/core";import xg from"dayjs";var Eg=i(t=>{let e=new Map([["today",{title:Ji.t("Today"),swaps:[]}],["week",{title:Ji.t("This week"),swaps:[]}],["month",{title:Ji.t("This month"),swaps:[]}],["year",{title:Ji.t("This year"),swaps:[]}]]);function o(c,u){e.has(c)||e.set(c,{title:c,swaps:[]}),e.get(c)?.swaps.push(u)}i(o,"addYearsToOutput");let n=xg();t.forEach(c=>{let u=Number(c.creationTime),p=xg(u);if(n.isSame(p,"day"))e.get("today")?.swaps.push(c);else if(n.isSame(p,"week"))e.get("week")?.swaps.push(c);else if(n.isSame(p,"month"))e.get("month")?.swaps.push(c);else if(n.isSame(p,"year"))e.get("year")?.swaps.push(c);else{let m=new Date(u).getFullYear().toString();o(m,c)}});let r=Array.from(e.values()).filter(c=>c.swaps.length>0),a=r.flatMap(c=>c.swaps),s=r.map(c=>c.swaps.length),l=r.map(c=>c.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var tx=Zl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),ox=Zl("div",{display:"flex",justifyContent:"center",alignItems:"center"}),nx=Zl("div",{"._typography":{color:"$neutral700",[`.${Zb}&`]:{color:"$neutral900"}}}),rx=[{id:gr.SUCCESS,title:Ke.t("Complete")},{id:gr.RUNNING,title:Ke.t("Running")},{id:gr.FAILED,title:Ke.t("Failed")}],ix=i((t,e)=>t?.length?t.filter(o=>At(o.fromBlockchain,e)||At(o.toBlockchain,e)||At(o.toSymbol,e)||At(o.fromSymbol,e)).length:!1,"isStepContainsText");function Ag(){let t=ex(),{manager:e,state:o}=Yb(),n=yt(e).map(({swap:k})=>k),[r,a]=ea(""),[s,l]=ea(!1),c=!o.loadedFromPersistor,[u,p]=ea(""),[m,h]=ea(!1),f=i(k=>{let w=k.target.value;a(w)},"handleSearch"),d=Ig(()=>!r&&!u?n:n.filter(k=>{let{inputAmount:w,status:x,steps:I,requestId:A}=k;return(!r||At(w,r)||At(x,r)||ix(I,r)||At(A,r))&&(!u||u===x)}),[n,r,u]),g=!d?.length&&!c,S=i(()=>h(!1),"onCloseModal"),T=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(k){console.log(k)}},"onClear"),C=Ig(()=>!n.some(k=>k.status===gr.SUCCESS||k.status===gr.FAILED),[n]);return ae.createElement(re,{header:{title:Ke.t("History"),suffix:ae.createElement(eo,null,ae.createElement(Yl,{id:"widget-history-clear-btn",disabled:C,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},ae.createElement(Ri,{size:"medium",variant:"label",color:"error"},Ke.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(ox,null,ae.createElement(xt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ke.t("Search Transaction"),autoFocus:!0,onChange:f,style:{height:36},value:r}),ae.createElement(Mo,{size:10,direction:"horizontal"}),ae.createElement(Gl,{filterBy:u,open:s,onOpenChange:k=>l(k),onClickItem:k=>p(k),list:rx})),ae.createElement(Mo,{size:"16"}),ae.createElement(tx,null,g&&ae.createElement(kg,null,ae.createElement(Mo,{size:32}),ae.createElement(Rb,{title:r?Ke.t("No results found"):Ke.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ke.t("Try using different keywords"):Ke.t("Your transaction history is stored locally and will appear here after you start a swap")})),!g&&ae.createElement(Xl,{list:d,onSwapClick:t,groupBy:Eg,isLoading:c}))),ae.createElement(J,{open:m,onClose:S,container:N()},ae.createElement(Mo,{size:20}),ae.createElement(Jb,{type:"warning",title:Ke.t("Clear Transaction History"),description:ae.createElement(nx,null,ae.createElement(Ri,{variant:"body",size:"medium"},Ke.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(Mo,{size:"24"}),ae.createElement(Ri,{variant:"body",size:"small"},Ke.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(Mo,{size:30}),ae.createElement(Yl,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:T},Ke.t("Yes, Clear the history")),ae.createElement(Mo,{size:10}),ae.createElement(Yl,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:S},ae.createElement(Ri,{variant:"title",size:"medium",color:"primary"},Ke.t("No, Cancel")))))}i(Ag,"HistoryPage");import{i18n as Nx}from"@lingui/core";import{Button as Bx,Divider as Xg,styled as Wx,WarningIcon as Lx}from"@rango-dev/ui";import Mx from"bignumber.js";import je,{useEffect as Yg,useState as Zg}from"react";import{useNavigate as Px}from"react-router-dom";import{i18n as Bg}from"@lingui/core";import{Alert as sx,Divider as Jl,NoRouteIcon as lx,Typography as cx}from"@rango-dev/ui";import Po from"react";import{styled as ax}from"@rango-dev/ui";var Ng=ax("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Rl(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Dt(t,e)?Po.createElement(Ng,null,Po.createElement(Jl,{size:10}),Po.createElement(lx,{size:24,color:"gray"}),Po.createElement(Jl,{size:4}),Po.createElement(cx,{variant:"title",size:"small"},Bg.t("No Routes Found")),Po.createElement(Jl,{size:4}),Po.createElement(sx,{title:Bg.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Rl,"SameTokensWarning");import{i18n as gx}from"@lingui/core";import{Header as hx}from"@rango-dev/ui";import so,{useEffect as yx,useState as Sx}from"react";import{i18n as ux}from"@lingui/core";import{Divider as tc,FullExpandedQuote as mx,Typography as dx}from"@rango-dev/ui";import ve from"react";import{styled as ec}from"@rango-dev/ui";var Wg=ec("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Lg=ec("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Mg=ec("div",{width:"146px"});import{i18n as hr}from"@lingui/core";import{Select as px}from"@rango-dev/ui";import Pg from"react";function ta(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:hr.t("Smart Routing")},{value:"FEE",label:hr.t("Lowest Fee")},{value:"SPEED",label:hr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:hr.t("Maximum Return")},{value:"PRICE",label:hr.t("Maximum Output")}];return Pg.createElement(Mg,null,Pg.createElement(px,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ta,"SelectStrategy");var _g=3;function yr(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:c,quotes:u,updateQuotePartialState:p,fromToken:m,toToken:h,sortStrategy:f,error:d}=O(),{slippage:g,customSlippage:S}=y(),{findToken:T}=y(),C=l||N(),k=!!u&&u.results.length,w=S??g,x=i(E=>{if(!m||!h||!u)return null;let b={requestAmount:u.requestAmount,validationStatus:null,...E};return rn({currentQuote:b,userSlippage:w,findToken:T})},"getQuoteWarning"),I=d?.type===0||d?.type===1,A=u?.results?li(f,u?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(Lg,null,ve.createElement(dx,{size:"xmedium",variant:"title"},ux.t("Sort by")),ve.createElement(ta,{container:C})),ve.createElement(tc,{size:"10"})),e&&Array.from({length:_g},(E,b)=>ve.createElement(ve.Fragment,{key:b},s?ve.createElement(mx,{loading:!0}):ve.createElement(ir,{tagHidden:!1,type:"list-item",expanded:!1}),b!==_g-1&&ve.createElement(tc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,k?A.map((E,b)=>{let v=x(E),B=xl(E.swaps),P=A.length-1===b;return ve.createElement(ve.Fragment,{key:E.requestId},ve.createElement(Bo,{showModalFee:r,container:C,selected:c?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:u.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:v,fullExpandedMode:s,onClick:_=>{B||p("warning",v),p("error",B?.options||null),o(_)},type:"list-item"}),!P&&ve.createElement(tc,{size:16}))}):I&&ve.createElement(Wg,null,ve.createElement(Zn,{size:s?"large":"small",error:d,fetch:n}))))}i(yr,"Quotes");import{darkTheme as fx,styled as Dg}from"@rango-dev/ui";var $g=Dg("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${fx} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Fg=Dg("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var Cx=100;function oc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=Sx(!1),c=s?"":"is-hidden",{config:u}=y(),p=u?.variant==="full-expanded",m=ho();return yx(()=>{let h=null;return a?h=setTimeout(()=>{l(!0)},Cx):(l(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),so.createElement($g,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${c} ${Ti()}`,id:Ue.EXPANDED_BOX_ID},so.createElement(hx,{title:gx.t("Routes"),suffix:so.createElement(so.Fragment,null,so.createElement(ta,{container:m}),so.createElement(Eo,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),so.createElement(Fg,null,so.createElement(yr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:ho(),onClickOnQuote:n,fullExpandedMode:p})))}i(oc,"ExpandedQuotes");import{i18n as Gg}from"@lingui/core";import{SwapInput as Vg}from"@rango-dev/ui";import wx from"bignumber.js";import Sr from"react";import{ReverseIcon as vx}from"@rango-dev/ui";import rc from"react";import{keyframes as Tx,styled as Og}from"@rango-dev/ui";var nc=450,kx=Tx({"0%":{transform:"rotateX(0deg) rotateY(0deg) rotateZ(0deg)"},"33%":{transform:"rotateX(0deg) rotateZ(78deg) rotateY(66deg)"},"66%":{transform:"rotateX(0deg) rotateZ(163deg) rotateY(66deg)"},"100%":{transform:"rotateX(0deg) rotateZ(180deg) rotateY(0deg)"}}),Ug=Og("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),zg=Og("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${kx} ${nc}ms ease-in-out forwards`}},"&:hover":{color:"$secondary500",transform:"translateY(1px) scale(1.04)",boxShadow:"1px 1px 1px 1px rgba(0, 0, 0, 0.05)"}});function ic(){let t=O.use.switchFromAndTo();return rc.createElement(Ug,null,rc.createElement(zg,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},nc),t()}},rc.createElement(vx,{size:12})))}i(ic,"SwitchFromAndToButton");import{styled as Hg}from"@rango-dev/ui";var Qg=Hg("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),qg=Hg("div",{position:"relative"});function ac(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:c,setInputAmount:u,inputAmount:p,inputUsdValue:m,outputAmount:h,outputUsdValue:f,selectedQuote:d}=O(),{connectedWallets:g,getBalanceFor:S}=y(),T=a?S(a):null,C=Fr(T)?.amount??"0",k=T?new wx(T.amount).shiftedBy(-T.decimals):pe,w=!!s&&fp(g,s.name),x=!ds(d,p,m),I=!ds(d,p,f),A=!m||!f||!f.gt(0)?null:Ot(m.toString(),f.toString());return Sr.createElement(Qg,null,Sr.createElement(qg,null,Sr.createElement(Vg,{label:Gg.t("From"),mode:"From",onInputChange:u,balance:C,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:p,usdValue:x?void 0:M(m,4,4),realUsdValue:x?void 0:m?.toString(),error:x?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:N(),onSelectMaxBalance:()=>{let E=M(k,T?.decimals),b=T?.amount?E.split(",").join(""):"";u(b)},anyWalletConnected:g.length>0}),Sr.createElement(ic,null)),Sr.createElement(Vg,{sharpBottomStyle:!r&&(!!d||e),label:Gg.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:c?.displayName||"",image:c?.logo},token:{displayName:l?.symbol||"",image:l?.image,securityWarning:!!l?.warning},percentageChange:M(Ot(m,f),2,2),warningLevel:Ut(A??0),price:{value:M(h,6,6),usdValue:I?void 0:M(f,4,4),realValue:h?.toString(),realUsdValue:I?void 0:f?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(ac,"Inputs");import{useCallback as bx,useEffect as xx,useRef as Ex,useState as Ix}from"react";function Kg(){let{fetch:t,loading:e,cancelFetch:o}=Vi({request:async(n,r)=>await rt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Kg,"useFetchAllQuotes");var Ax=600;function oa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Kg(),{excludeLiquiditySources:n,routing:r}=y().config,{connectedWallets:a}=y(),l=a.some(le=>le.isContractWallet),{fromToken:c,toToken:u,inputAmount:p,inputUsdValue:m,selectedQuote:h,sortStrategy:f,resetQuote:d,error:g,warning:S,setSelectedQuote:T,updateQuotePartialState:C}=O(),{slippage:k,customSlippage:w,affiliatePercent:x,affiliateRef:I,affiliateWallets:A,fetchStatus:E}=y(),b=y().getLiquiditySources(),v=y().getDisabledLiquiditySources(),B=y().excludeLiquiditySources(),{findToken:P}=y(),[_,V]=Ix(!0),ee=Ex(p),j=w??k,X=!c||!u||Dt(c,u)||!xn(p),se=i(le=>{V(le)},"resetState"),z=i(le=>{let{fromToken:me,toToken:ce,inputAmount:mt,liquiditySources:G,excludeLiquiditySources:D,disabledLiquiditySources:q,slippage:K,affiliateRef:Se,affiliatePercent:de,affiliateWallets:Fe}=le;if(_||se(!0),!X&&me&&ce){d();let Ye=om({fromToken:me,toToken:ce,inputAmount:mt,liquiditySources:G,excludeLiquiditySources:D,disabledLiquiditySources:q,wallets:a,slippage:K,affiliateRef:Se,affiliatePercent:de,affiliateWallets:Fe,contractCall:l});Qo("experimental",r)&&(Ye.experimental=!0),Qo("avoidNativeFee",r)&&(Ye.avoidNativeFee=!0),Qo("enableCentralizedSwappers",r)&&(Ye.enableCentralizedSwappers=!0),r?.maxLength&&(Ye.maxLength=r.maxLength),e(Ye).then(we=>{let Oe=li(f,we.results),Xt=qu(h,Oe,we.requestAmount);V(!1),C("quotes",we),T(Xt),Ki({diagnosisMessages:we.diagnosisMessages,requestId:Xt?.requestId||"",swaps:Xt?.swaps});let fo=Xt&&rn({currentQuote:Xt,userSlippage:j,findToken:P});C("warning",fo)}).catch(we=>{let{error:Oe}=ji(we);(Oe?.type===0||Oe?.type===1)&&d(),Oe?.type!==2&&(C("error",Oe),V(!1))})}},"fetch"),R=bx(Lr(le=>{z(le)},Ax),[X]);return xx(()=>{if(!t){V(!1);return}if(E!=="success")return;if(X){V(!1),(h||g||S)&&d();return}if(!xn(p)||m?.eq(0)){se(!1),o();return}d(),se(!0);let le=z;return ee.current&&ee.current!=p&&(le=R),ee.current=p,le({inputAmount:p,fromToken:c,toToken:u,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:v,slippage:j,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:l}),o},[E,p,c?.symbol,c?.address,c?.blockchain,u?.symbol,u?.address,u?.blockchain,X,b?.length,n,v.length,j,I,x,l,JSON.stringify(A)]),{fetch:()=>z({inputAmount:p,fromToken:c,toToken:u,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:v,slippage:j,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:l}),loading:_}}i(oa,"useSwapInput");function jg(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Ce.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(jg,"emitPreventableEvent");var _x=Wx("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Dx=300;function Jg(){let t=Px(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:c,setSelectedQuote:u,resetQuoteWallets:p,setQuoteWarningsConfirmed:m,updateQuotePartialState:h}=O(),[f,d]=Zg(!1),{isLargeScreen:g,isExtraLargeScreen:S}=cn(),{fetch:T,loading:C}=oa({refetchQuote:a}),{config:k,fetchStatus:w,connectedWallets:x}=y(),{isActiveTab:I}=te(),[A,E]=Zg(!1),v=Ju({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),B=Dp(g,S,k?.variant),P=!!n&&!!e&&!!o&&new Mx(n).gt(0)&&!cm(e,o),_=P&&w==="success"&&C,j=(!B||B&&c?.results.length)&&(l||s);Yg(()=>{p(),h("refetchQuote",!0)},[]),Yg(()=>{d(P)},[P]);let L=(r||s)&&!A?T:void 0,X=i(z=>{B&&f?(d(!1),setTimeout(()=>{t(z)},Dx)):t(z)},"onHandleNavigation"),se=i(z=>{r?.requestId!==z.requestId&&(E(!1),u(z))},"onClickOnQuote");return je.createElement(_x,null,je.createElement(re,{height:"auto",footer:je.createElement(Bx,{id:`widget-swap-${v.action}-btn`,type:"primary",size:"large",disabled:v.disabled||!I,prefix:v.action==="confirm-warning"&&je.createElement(Lx,null),fullWidth:!0,onClick:()=>{v.action==="connect-wallet"?jg({type:"clickConnectWallet"},()=>X(F.wallets)):v.action==="confirm-warning"?E(!0):X(F.confirmSwap)}},v.title),header:{onWallet:()=>{X(F.wallets)},hasBackButton:!1,title:k.title||Nx.t("Swap"),suffix:je.createElement(Eo,{hidden:B?["refresh"]:void 0,onClickRefresh:L,onClickHistory:()=>X(F.swaps),onClickSettings:()=>{X(F.settings)}})}},je.createElement(ie,null,je.createElement(ac,{fetchingQuote:_,fetchMetaStatus:w,isExpandable:B,onClickToken:z=>{X(z==="from"?F.fromSwap:F.toSwap)}}),je.createElement(Xg,{size:"2"}),B?null:je.createElement(Bo,{quote:r,loading:_,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:c&&c.results.length>1?()=>{h("refetchQuote",!1),X(F.routes)}:void 0}),j?je.createElement(je.Fragment,null,je.createElement(Xg,{size:"10"}),je.createElement(Rn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:T,showWarningModal:A,confirmationDisabled:!I,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:()=>{E(!1),m(!0),X(F.confirmSwap)},onChangeSettings:()=>X(F.settings)})):null,je.createElement(Rl,null))),B?je.createElement(oc,{loading:_,onClickOnQuote:se,fetch:T,onClickRefresh:L,isVisible:f}):null)}i(Jg,"Home");import{i18n as Rg}from"@lingui/core";import{Alert as $x,Divider as Fx,List as Ox,ListItemButton as Ux,Radio as zx,RadioRoot as Hx,Typography as Qx}from"@rango-dev/ui";import Mt from"react";function lo(){let{setLanguage:t,language:e,config:o}=y(),n=Vp,r=o?.language||qo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||qo),resetLanguage:()=>t(null)}}i(lo,"useLanguage");function eh(){let{activeLanguage:t,changeLanguage:e,languages:o}=lo(),n=He(),r=o.map(a=>{let{local:s,label:l,SVGFlag:c}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Mt.createElement(Qx,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Mt.createElement(zx,{value:s}),start:Mt.createElement(c,null)}});return Mt.createElement(re,{header:{title:Rg.t("Language")}},Mt.createElement(ie,null,Mt.createElement($x,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Mt.createElement(Fx,{size:"8"}),Mt.createElement(Hx,{value:t},Mt.createElement(Ox,{type:Mt.createElement(Ux,{title:Rg.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(eh,"LanguagePage");import{i18n as Vt}from"@lingui/core";import{Button as jx,Checkbox as Xx,Image as Yx,ListItemButton as Zx,NotFound as Jx,Typography as Rx}from"@rango-dev/ui";import Xe,{useState as eE}from"react";import{Checkbox as Vx,Skeleton as oh}from"@rango-dev/ui";import Tr from"react";import{styled as sc}from"@rango-dev/ui";var Cr=sc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),lc=sc("div",{width:80,display:"flex",justifyContent:"flex-end"}),cc=sc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as qx,styled as Gx}from"@rango-dev/ui";var th=Gx(qx,{height:61});var Kx=30;function pc(){return Tr.createElement(Cr,null,Array.from(Array(Kx),(t,e)=>Tr.createElement(th,{hasDivider:!0,key:e,start:Tr.createElement(oh,{variant:"circular",width:35,height:35}),title:Tr.createElement(oh,{variant:"text",size:"large",width:90}),end:Tr.createElement(Vx,{checked:!1})})))}i(pc,"LoadingLiquiditySourceList");function uc({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=eE(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),c=Vr(o,n),u={Exchanges:Vt.t("Exchanges"),Bridges:Vt.t("Bridges")},p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&p.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=c.filter(T=>p.includes(T.type)),h=m.length===m.filter(T=>T.selected).length,f=i(()=>{m.forEach(T=>{h?s(T.groupTitle):T.selected||s(T.groupTitle)})},"toggleAllSources"),d=m.map(T=>{let{selected:C,groupTitle:k,logo:w,id:x,...I}=T;return{id:`widget-setting-liquidity-source-${x.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:Xe.createElement(Yx,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Xe.createElement(Xx,{checked:C,disabled:l}),title:Xe.createElement(Rx,{variant:"title",size:"xmedium"},Vt.t(k)),selected:C,groupTitle:k,logo:w,...I}}),g=i(T=>{let C=T.target.value;a(C)},"handleSearch"),S=d;return r&&(S=d.filter(T=>At(T.groupTitle,r))),Xe.createElement(re,{header:{title:Vt.t(t),suffix:Xe.createElement(lc,null,Xe.createElement(jx,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:f},h?Vt.t("Deselect all"):Vt.t("Select all")))}},Xe.createElement(ie,{view:!0},Xe.createElement(xt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Vt.t("Search {sourceType}",{sourceType:u[t]}),onChange:g}),e==="loading"&&Xe.createElement(pc,null),!S.length&&r?Xe.createElement(cc,null,Xe.createElement(Jx,{title:Vt.t("No results found"),description:Vt.t("Try using different keywords")})):e==="success"&&Xe.createElement(Cr,{disabled:l},S.map(T=>{let{groupTitle:C,...k}=T;return Xe.createElement(Xe.Fragment,{key:T.id},Xe.createElement(Zx,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(uc,"LiquiditySourcePage");import{i18n as tE}from"@lingui/core";import na from"react";import{useNavigate as oE}from"react-router-dom";function nh(){let t=oE(),e=He(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:l,loading:c}=oa({refetchQuote:n}),u=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),p=`../${F.settings}`,m=`../${F.wallets}`;return na.createElement(re,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:tE.t("Routes"),suffix:na.createElement(Eo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(p),a("refetchQuote",!0)}})}},na.createElement(ie,null,na.createElement(yr,{fetch:l,loading:c,onClickOnQuote:u})))}i(nh,"RoutesPage");import{i18n as ph}from"@lingui/core";import{Divider as uh,getCategoriesCount as mE,SelectableCategoryList as dE}from"@rango-dev/ui";import Kt,{useState as mh}from"react";import{useNavigate as fE}from"react-router-dom";import{i18n as mc}from"@lingui/core";import{Divider as aE,Image as sE,ListItemButton as lE,NotFound as cE,Typography as ch}from"@rango-dev/ui";import pt,{useEffect as pE,useState as uE}from"react";var rh=i((t,e,o)=>t.filter(n=>Mr(n.type,o)).filter(n=>ot(n.name,e)||ot(n.displayName,e)),"filterBlockchains");import{ImageContainer as nE,styled as ih}from"@rango-dev/ui";var ah=ih("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ra=ih(Xs,{padding:0,margin:0,listStyle:"none",[`& ${nE}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as rE,Skeleton as sh}from"@rango-dev/ui";import ia from"react";var iE=20;function lh(){return ia.createElement(ra,null,Array.from(Array(iE),t=>ia.createElement(rE,{key:t,hasDivider:!0,start:ia.createElement(sh,{variant:"circular",width:35,height:35}),title:ia.createElement(sh,{variant:"text",size:"large",width:90})})))}i(lh,"LoadingBlockchainList");function dc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=uE(e),{fetchStatus:c}=y();pE(()=>{l([...rh(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?pt.createElement(cE,{title:mc.t("No results found"),description:mc.t("Try using different keywords")}):pt.createElement(ra,{as:"ul",key:`${r}-${o}`},s.map(p=>pt.createElement(lE,{key:`${p.name}-${p.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(p),start:pt.createElement(sE,{src:p.logo,size:30}),title:pt.createElement(ch,{variant:"title",size:"medium"},p.displayName),id:p.name}))),"renderList");return pt.createElement(pt.Fragment,null,a&&pt.createElement(pt.Fragment,null,pt.createElement(ch,{variant:"label",size:"large"},mc.t("Select Chain")),pt.createElement(aE,{size:4})),pt.createElement(ah,null,c==="loading"&&pt.createElement(lh,null),c==="success"&&u()))}i(dc,"BlockchainList");function aa(t){let{type:e}=t,o=He(),[n,r]=mh(""),[a,s]=mh("ALL"),l=O.use.setToBlockchain(),c=O.use.setFromBlockchain(),{fetchStatus:u}=y(),p=fE(),m=y().blockchains({type:e}),h=mE(m),f=!t.hideCategory&&h!==1;return Kt.createElement(re,{header:{title:ph.t("Select Chain")}},Kt.createElement(ie,{view:!0},f&&Kt.createElement(Kt.Fragment,null,Kt.createElement(dE,{setCategory:s,category:a,blockchains:m,isLoading:u==="loading"}),Kt.createElement(uh,{size:24})),Kt.createElement(xt,{value:n,autoFocus:!0,placeholder:ph.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),Kt.createElement(uh,{size:16}),Kt.createElement(dc,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:d=>{e==="custom-token"?p(`..?blockchain=${d.name}`,{replace:!0}):(e==="source"?c(d):l(d),o())}})))}i(aa,"SelectBlockchainPage");import{i18n as ca}from"@lingui/core";import{Divider as Ch,Spinner as NE}from"@rango-dev/ui";import co,{useEffect as BE,useState as WE}from"react";import{useNavigate as LE}from"react-router-dom";import{i18n as hc}from"@lingui/core";import{BlockchainsChip as sa,Divider as hh,Image as yh,Skeleton as TE,Tooltip as kE,Typography as yc}from"@rango-dev/ui";import be from"react";import{useEffect as yE}from"react";var dh=["ETH","COSMOS","OSMOSIS"];function fc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(gE),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let c=0;c<=l;c++){let u=n[c];s=s.filter(p=>u.name!==p)}}n.sort(hE(s)),r=n.splice(a)}return{list:n,more:r}}i(fc,"prepare");function gE(t,e){let o=dh,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(gE,"sortByMostUsedBlockchains");function hE(t){return i(function(o,n){let r=t.findIndex(c=>c===o.name),a=t.findIndex(c=>c===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(hE,"generateSortByPreferredBlockchainsFor");function fh(t,e){return!!e.list.find(o=>o.name===t)}i(fh,"isInVisibleList");function gc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();yE(()=>{if(e?.selected){let a=fc(t,o,e);fh(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=fc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(gc,"usePrepareBlockchainList");import{styled as SE}from"@rango-dev/ui";var gh=SE("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var vE=6,wE=12;function Sc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=te(),l=gc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:c}=y(),u=O.use.resetToBlockchain(),p=O.use.resetFromBlockchain(),m=l.more.length>0,h=l.more.length===1,f=!h&&m;return be.createElement(be.Fragment,null,!s&&be.createElement(be.Fragment,null,be.createElement(hh,{size:12}),be.createElement(yc,{variant:"label",size:"large"},hc.t("Select Chain"))),be.createElement(hh,{size:12}),be.createElement(gh,null,c==="loading"&&Array.from(Array(s?vE:wE),(d,g)=>be.createElement(TE,{key:g,variant:"rounded",height:50})),c==="success"&&be.createElement(be.Fragment,null,be.createElement(sa,{selected:!n,onClick:()=>{o==="from"?p():u()}},be.createElement(yc,{variant:"body",size:"xsmall",color:"secondary500"},hc.t("All"))),l.list.map(d=>be.createElement(kE,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:N()},be.createElement(sa,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},be.createElement(yh,{src:d.logo,size:30})))),h?be.createElement(sa,{key:l.more[0].name,selected:!!n&&n.name===l.more[0].name,onClick:()=>r(l.more[0])},be.createElement(yh,{src:l.more[0].logo,size:30})):null,f?be.createElement(sa,{onClick:a,key:"more-blockchains"},be.createElement(yc,{variant:"body",size:"xsmall",color:"secondary500"},hc._("More +{count}",{count:l.more.length}))):null)))}i(Sc,"BlockchainsSection");import{useCallback as xE,useRef as EE,useState as Cc}from"react";function Tc(){let t=y().blockchains(),e=EE(null),{customTokens:o}=y(),[n,r]=Cc(!1),[a,s]=Cc([]),[l,c]=Cc(null),u=i(async(h,f)=>{c(null),r(!0),s([]);try{let d=await rt().searchCustomTokens({query:h,blockchain:f},{signal:e.current?.signal}),g=new Set(o().map(C=>Ft(C))),S=new Set(t.map(C=>C.name)),T=d.tokens.filter(C=>S.has(C.blockchain)&&!g.has(Ft(C)));s(T),r(!1)}catch(d){c(d instanceof Error?d.message:"something went wrong"),s([]),d?.name!=="CanceledError"&&r(!1)}},"fetch"),p=xE(Lr((h,f)=>{e.current?.signal.aborted||u(h,f)},600),[t.length]);return{fetch:(h,f)=>{e.current=new AbortController,s([]),r(!0),p(h,f)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:l}}i(Tc,"useSearchCustomTokens");function la(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(la,"shouldSearchForCustomTokens");function Sh(t,e,o,n,r){let a=[...t];return la(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(Sh,"prepareTokensList");function pa(t){let{type:e}=t,o=LE(),n=He(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:c,setToBlockchain:u}=O(),{getBalanceFor:p}=y(),{fetch:m,loading:h,tokens:f,cancel:d}=Tc(),[g,S]=WE(""),T=e==="source"?r:a,C=T?.name??"",k=y().blockchains({type:e}),w=y().tokens({type:e,blockchain:C,searchFor:g,getBalanceFor:p}),x=Sh(w,f,g,h,T?.name),I=i(b=>{e==="source"?c(b):u(b)},"updateBlockchain"),A=i(b=>{e==="source"?s({token:b,meta:{blockchains:k}}):l({token:b,meta:{blockchains:k}})},"updateToken"),E={source:ca.t("Source"),destination:ca.t("Destination")};return BE(()=>(la(w,g,T?.name)&&m(g,T?.name??void 0),()=>{d()}),[w.length,g,T?.name]),co.createElement(re,{header:{title:ca.t("Swap {type}",{type:E[e]})}},co.createElement(ie,null,co.createElement(Sc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{I(b)}}),co.createElement(Ch,{size:24}),co.createElement(xt,{value:g,autoFocus:!0,placeholder:ca.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:b=>S(b.target.value),suffix:la(w,g,T?.name)&&h?co.createElement(NE,{size:12,color:"secondary"}):void 0}),co.createElement(Ch,{size:16}),co.createElement(ur,{list:x,selectedBlockchain:C,searchedFor:g,type:e,onChange:b=>{A(b);let v=k.find(B=>b.blockchain===B.name);v&&I(v),n()}})))}i(pa,"SelectSwapItemsPage");import{i18n as bc}from"@lingui/core";import{Alert as iI,Button as aI,styled as sI}from"@rango-dev/ui";import _o from"react";import{useInRouterContext as lI,useSearchParams as cI}from"react-router-dom";import{i18n as xh}from"@lingui/core";import{Alert as DE,Divider as vc,InfoIcon as $E,SlippageIcon as FE,TextField as OE,Tooltip as UE,Typography as Eh}from"@rango-dev/ui";import De from"react";import{Chip as ME,styled as kr,TextField as PE}from"@rango-dev/ui";var Th=kr("div",{paddingTop:"$5",padding:"$10 $5"}),kh=kr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${PE}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),vh=kr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ua=kr("div",{maxWidth:"280px",padding:"$10"}),wh=kr(ME,{width:"61px",flexShrink:0});import{i18n as kc}from"@lingui/core";import{Typography as _E}from"@rango-dev/ui";import vr from"react";function bh(){return vr.createElement(ua,null,vr.createElement(_E,{variant:"label",size:"medium",color:"neutral700"},kc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),vr.createElement("br",null),vr.createElement("br",null),vr.createElement("b",null,kc.t("Warning")),":\xA0",kc.t("This setting is applied to each step (e.g. 1Inch, Thorchain, etc.), meaning only that specific step will be reverted, not the entire route.")))}i(bh,"SlippageTooltipContent");function wc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y(),r=o!==null?Qp(o):null,a=i(c=>{let u=c.target.value,p=parseFloat(u);if(isNaN(p))return n(null);let m=p;p>Ln&&(m=Ln),n(m)},"onSlippageValueChange"),s=i(c=>{o!==null&&n(null),e(c)},"onClickSlippageChip"),l=i(c=>{let u=c.target,p=/^(0|[1-9]\d*)(\.\d{1,2})?$/,m=u.value;p.test(m)||(u.value=m.slice(0,-1))},"onInput");return De.createElement(Th,null,De.createElement(vh,null,De.createElement(FE,{size:16,color:"gray"}),De.createElement(vc,{direction:"horizontal",size:4}),De.createElement(Eh,{variant:"title",size:"xmedium"},xh.t("Slippage tolerance per swap")),De.createElement(vc,{direction:"horizontal",size:4}),De.createElement(UE,{container:N(),side:"top",sideOffset:4,content:De.createElement(bh,null)},De.createElement($E,{color:"gray"}))),De.createElement(kh,null,$p.map((c,u)=>{let p=`slippage-${u}`;return De.createElement(wh,{key:p,onClick:()=>s(c),selected:o===null&&c===t,label:`${c.toString()}%`})}),De.createElement(OE,{type:"number",min:"0.01",max:"30",step:"0.01",onInput:l,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&De.createElement(Eh,{variant:"body",size:"small"},"%"),placeholder:xh.t("Custom")})),r&&De.createElement(De.Fragment,null,De.createElement(vc,{size:10}),De.createElement(DE,{variant:"alarm",type:r.type,title:r.message})))}i(wc,"Slippage");import{i18n as St}from"@lingui/core";import{AutoThemeIcon as Ih,BridgesIcon as zE,ChevronRightIcon as ma,DarkModeIcon as Ah,Divider as wr,ExchangeIcon as HE,InfinityIcon as QE,InfoIcon as qE,LanguageIcon as GE,LightModeIcon as Nh,List as VE,ListItem as KE,ListItemButton as jE,Skeleton as XE,styled as YE,Switch as ZE,Tabs as JE,TargetIcon as RE,Tooltip as eI,Typography as tt}from"@rango-dev/ui";import $ from"react";import{useNavigate as tI}from"react-router-dom";var oI=YE("div",{width:"202px",height:"$40"}),nI=[{id:"light",icon:$.createElement(Nh,{color:"black",size:24}),tooltip:$.createElement(tt,{size:"xsmall",variant:"body"},St.t("Light"))},{id:"dark",icon:$.createElement(Ah,{color:"black",size:24}),tooltip:$.createElement(tt,{size:"xsmall",variant:"body"},St.t("Dark"))},{id:"auto",icon:$.createElement(Ih,{color:"black",size:24}),tooltip:$.createElement(tt,{size:"xsmall",variant:"body"},St.t("Auto"))}],rI=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return $.createElement(Ih,{...e});case"dark":return $.createElement(Ah,{...e});default:return $.createElement(Nh,{...e})}},"getThemeIcon");function Bh(){let t=tI(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=lo(),s=a.find(L=>L.local===r)?.label,l=y().fetchStatus,c=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:p}}=y(),m=y().customTokens(),h=Ze("theme",p),f=Ze("liquiditySource",p),d=Ze("language",p),g=Ze("customTokens",p),S=y().infiniteApprove,T=y().toggleInfiniteApprove,C=Vr(c,u),k=C.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),w=k.length,x=k.filter(L=>L.selected).length,I=C.filter(L=>L.type==="DEX"),A=I.length,E=I.filter(L=>L.selected).length,b=i((L,X)=>{switch(l){case"loading":return $.createElement(XE,{variant:"text",size:"medium",width:50});case"failed":return $.createElement(tt,{variant:"body",size:"medium",color:"$error500"},St.t("Loading failed"));default:return $.createElement(tt,{variant:"body",size:"medium"},`${L} / ${X}`)}},"handleSwapperEndItem"),v={id:"widget-setting-bridge-item-btn",title:$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Bridges")),end:$.createElement($.Fragment,null,b(x,w),$.createElement(wr,{direction:"horizontal",size:8}),$.createElement(ma,{color:"black"})),onClick:()=>t(F.bridges),start:$.createElement(zE,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Exchanges")),end:$.createElement($.Fragment,null,b(E,A),$.createElement(wr,{direction:"horizontal",size:8}),$.createElement(ma,{color:"black"})),start:$.createElement(HE,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Custom Tokens")),end:$.createElement($.Fragment,null,$.createElement(tt,{variant:"body",size:"medium"},`${m.length}`),$.createElement(wr,{direction:"horizontal",size:8}),$.createElement(ma,{color:"black"})),start:$.createElement(RE,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},_={id:"widget-setting-language-item-btn",title:$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Language")),start:$.createElement(GE,{color:"gray",size:16}),end:$.createElement($.Fragment,null,$.createElement(tt,{variant:"body",size:"medium"},s),$.createElement(wr,{direction:"horizontal",size:8}),$.createElement(ma,{color:"black"})),onClick:()=>t(F.languages)},V={id:"widget-setting-infinite-approval-item-btn",title:$.createElement($.Fragment,null,$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Infinite approval")),$.createElement(wr,{direction:"horizontal",size:4}),$.createElement(eI,{side:"top",sideOffset:4,container:N(),content:$.createElement(ua,null,$.createElement(tt,{variant:"label",size:"medium",color:"neutral700"},$.createElement("b",null,St.t("Warning")),":\xA0",St.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},$.createElement(qE,{color:"gray"}))),start:$.createElement(QE,{color:"gray",size:16}),end:$.createElement(ZE,{checked:S}),onClick:T},ee={id:"widget-setting-theme-item-btn",type:$.createElement(KE,null),title:$.createElement(tt,{variant:"title",size:"xmedium"},St.t("Theme")),end:$.createElement(oI,null,$.createElement(JE,{container:N(),items:nI,value:n,onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:rI(n)},j=f?[]:[v,B];return g||j.push(P),d||j.push(_),j.push(V),!e?.singleTheme&&!h&&j.push(ee),$.createElement(VE,{type:$.createElement(jE,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:j})}i(Bh,"SettingsLists");var pI=sI("div",{paddingLeft:"$8"});function Wh(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=cI(),r=lI(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return _o.createElement(re,{header:{title:bc.t("Settings")}},_o.createElement(ie,null,o&&_o.createElement(iI,{type:"info",variant:"alarm",title:bc.t("Currently, you're in campaign mode with restrictions on liquidity sources. Would you like to switch out of this mode and make use of all available liquidity sources?"),action:_o.createElement(pI,null,_o.createElement(aI,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},bc.t("Reset")))}),_o.createElement(wc,null),_o.createElement(Bh,null)))}i(Wh,"SettingsPage");import{i18n as eA}from"@lingui/core";import{cancelSwap as tA}from"@rango-dev/queue-manager-rango-preset";import{useManager as oA}from"@rango-dev/queue-manager-react";import{Alert as nA}from"@rango-dev/ui";import zc from"react";import{useParams as rA}from"react-router-dom";import{i18n as ut}from"@lingui/core";import{getCurrentNamespaceOfOrNull as _I,getCurrentStep as DI,getRelatedWalletOrNull as $I}from"@rango-dev/queue-manager-rango-preset";import{Button as dy,CopyIcon as FI,Divider as OI,DoneIcon as UI,IconButton as zI,QuoteCost as HI,RangoExplorerIcon as QI,StepDetails as qI,Tooltip as fy,Typography as Do,useCopyToClipboard as GI}from"@rango-dev/ui";import{useWallets as VI}from"@rango-dev/wallets-react";import gy from"bignumber.js";import{PendingSwapNetworkStatus as Ca}from"rango-types";import Z,{useEffect as hy,useRef as KI,useState as yy}from"react";import{useNavigate as jI}from"react-router-dom";import{i18n as po}from"@lingui/core";var uI=[po.t("Sunday"),po.t("Monday"),po.t("Tuesday"),po.t("Wednesday"),po.t("Thursday"),po.t("Friday"),po.t("Saturday")];function Lh(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?po.t("Today"):`${uI[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Lh,"timeSince");function Mh(t){return t.finishTime?Lh(parseInt(t.finishTime)):Lh(parseInt(t.creationTime))}i(Mh,"getSwapDate");import{PendingSwapNetworkStatus as ga}from"rango-types";import ha from"react";import{i18n as da}from"@lingui/core";import{Button as Ph,Divider as xc,MessageBox as mI}from"@rango-dev/ui";import uo from"react";var _h=i(({onCancel:t,onClose:e})=>uo.createElement(uo.Fragment,null,uo.createElement(xc,{size:20}),uo.createElement(mI,{type:"error",title:da.t("Cancel Swap"),description:da.t("Are you sure you want to cancel this swap?")}),uo.createElement(xc,{size:32}),uo.createElement(Ph,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},da.t("Yes, Cancel it")),uo.createElement(xc,{size:12}),uo.createElement(Ph,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},da.t("No, Continue"))),"CancelContent");import{i18n as fa}from"@lingui/core";import{Button as Dh,Divider as Ec,MessageBox as dI,Typography as fI}from"@rango-dev/ui";import jt from"react";var $h=i(({onDelete:t,onClose:e})=>jt.createElement(jt.Fragment,null,jt.createElement(Ec,{size:20}),jt.createElement(dI,{type:"error",title:fa.t("Delete Transaction"),description:fa.t("Are you sure you want to delete this swap?")}),jt.createElement(Ec,{size:32}),jt.createElement(Dh,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},fa.t("Yes, Delete it")),jt.createElement(Ec,{size:12}),jt.createElement(Dh,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},jt.createElement(fI,{variant:"title",size:"medium",color:"primary"},fa.t("No, Cancel")))),"DeleteContent");import{i18n as Ic}from"@lingui/core";import{PendingSwapNetworkStatus as Ac}from"rango-types";var Nc={[Ac.WaitingForNetworkChange]:{type:"loading",title:Ic.t("Change Network")},[Ac.WaitingForConnectingWallet]:{type:"warning",title:Ic.t("Connect Wallet")},[Ac.NetworkChanged]:{type:"success",title:Ic.t("Network Changed")}};import{warn as gI}from"@rango-dev/logging-core";import{getCurrentStep as hI,getRelatedWalletOrNull as yI}from"@rango-dev/queue-manager-rango-preset";import{MessageBox as SI,Wallet as CI}from"@rango-dev/ui";import{useWallets as TI}from"@rango-dev/wallets-react";import kn,{useState as kI}from"react";import{styled as Bc}from"@rango-dev/ui";var Fh=Bc("div",{display:"flex",justifyContent:"center"}),i6=Bc("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Oh=Bc("img",{width:"100%"});var Uh=i(t=>{let{type:e,title:o,swap:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,c]=kI(),{getWalletInfo:u,state:p}=TI(),m=hI(n),h=m?yI(n,m):null,f=m?.fromBlockchain,d=h?.walletType,g=d?En(p(d)):null,S=d?u(d):null,T=a&&!!d&&!!g&&!!S,{list:C}=Ct(),k=i(()=>{if(d){let w=C.find(x=>x.type===d);w?c(w):gI(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${w}`))}},"handleWalletItemClick");return kn.createElement(kn.Fragment,null,kn.createElement(SI,{type:e,title:o,description:r}),T&&kn.createElement(Fh,null,kn.createElement(CI,{container:N(),title:S.name,image:S.img,type:d,state:g,link:S.installLink,disabled:s,onClick:k})),kn.createElement(ko,{wallet:l,onClose:()=>{c(void 0)},options:{defaultSelectedChains:f?[f]:void 0}}))},"WalletStateContent");function Wc(t){let{state:e,onClose:o,onDelete:n,onCancel:r,swap:a,message:s,walletButtonDisabled:l}=t,c=e===ga.WaitingForNetworkChange||e===ga.WaitingForConnectingWallet||e===ga.NetworkChanged;return ha.createElement(J,{open:!!e,onClose:o,container:document.getElementById(Ue.SWAP_BOX_ID)||document.body},c&&ha.createElement(Uh,{type:Nc[e].type,title:Nc[e].title,swap:a,message:s,walletButtonDisabled:l,showWalletButton:e!==ga.WaitingForNetworkChange}),e==="delete"&&ha.createElement($h,{onClose:o,onDelete:n}),e==="cancel"&&ha.createElement(_h,{onClose:o,onCancel:r}))}i(Wc,"SwapDetailsModal");import{i18n as br}from"@lingui/core";import{Button as Lc,Divider as xr,MessageBox as Qh,TokenAmount as vI,Typography as qh}from"@rango-dev/ui";import ye from"react";import{Link as wI,useNavigate as bI}from"react-router-dom";var zh="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Hh="/profile";function Mc(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:c,chain:u,percentageChange:p,description:m,diagnosisUrl:h}=t,f=bI(),{showProfileBanner:d}=te();return ye.createElement(J,{open:e,onClose:o,container:document.getElementById(Ue.SWAP_BOX_ID)||document.body},n==="success"?ye.createElement(Qh,{type:"success",title:br.t("Swap Successful")},ye.createElement(vI,{direction:"vertical",tooltipContainer:N(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:c,chain:u,percentageChange:p}),ye.createElement(xr,{size:12}),ye.createElement(qh,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):ye.createElement(Qh,{type:"error",title:br.t("Transaction Failed"),description:m}),ye.createElement(xr,{size:30}),n==="success"&&ye.createElement(ye.Fragment,null,d&&ye.createElement(ye.Fragment,null,ye.createElement(wI,{to:Hh},ye.createElement(Oh,{src:zh,alt:"Profile Banner"})),ye.createElement(xr,{size:30})),ye.createElement(Lc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},br.t("Done"))),ye.createElement(xr,{size:12}),h&&ye.createElement(ye.Fragment,null,ye.createElement(Lc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},br.t("Diagnosis")),ye.createElement(xr,{size:12})),ye.createElement(Lc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ye.createElement(qh,{variant:"title",size:"medium",color:"primary"},br.t("See Details"))))}i(Mc,"SwapDetailsCompleteModal");import PI from"react";import{i18n as BI}from"@lingui/core";import{Alert as cy,IconButton as WI,LinkIcon as LI}from"@rango-dev/ui";import mo,{Fragment as MI}from"react";import{Alert as EI,ChevronDownIcon as II,IconButton as AI}from"@rango-dev/ui";import wn,{useState as NI}from"react";import{css as Er,darkTheme as Gh,styled as Pt,Typography as xI}from"@rango-dev/ui";var Vh=Pt(ie,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Gh} &`]:{color:"$secondary500"}}}}}),Kh=Pt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),jh=Pt("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Xh=Pt("div",{padding:"$0 $20 $20 $20"}),K6=Pt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Yh=Pt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),j6=Pt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),vn=Er({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Gh} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Zh=Er({padding:"$5 0"}),ya=Er({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Jh=Er({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Rh=Er({width:"100%",padding:"0 $20 $10"}),ey=Pt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),ty=Pt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Sa=Pt(xI,{wordBreak:"break-word"});import{styled as Pc}from"@rango-dev/ui";var oy=Pc("div",{display:"flex",flexDirection:"column",gap:"$10"}),ny=Pc("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),ry=Pc("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function iy(t){let{message:e}=t,[o,n]=NI(!1);return wn.createElement(EI,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&wn.createElement(AI,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},wn.createElement(ny,{rotated:o},wn.createElement(II,{size:12,color:"gray"}))),footer:wn.createElement(ry,{open:o},wn.createElement(Sa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(iy,"FailedAlert");import{i18n as ay}from"@lingui/core";import{Alert as _c,Button as sy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Dc}from"rango-types";import Ir from"react";function ly(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Ir.createElement(_c,{type:"warning",title:n.shortMessage,action:Ir.createElement(sy,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Dc.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},ay.t("Change"))}):r===Dc.WaitingForConnectingWallet?Ir.createElement(_c,{type:"warning",title:n.shortMessage,action:Ir.createElement(sy,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Dc.WaitingForConnectingWallet)}},ay.t("Connect"))}):Ir.createElement(_c,{type:"warning",title:n.shortMessage})}i(ly,"WarningAlert");function $c(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=qn(a),c=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,p=u&&!s||c&&!a.explorerUrl?.length;return mo.createElement(oy,null,a.explorerUrl?.map((m,h,f)=>{let d=h+m.url,g=h===f.length-1,S=(g&&u||c)&&!p,T=g&&a.status==="failed";return mo.createElement(MI,{key:d},mo.createElement(cy,{type:g&&(S&&"loading"||T&&"error")||"success",title:m.description?`${m.description} Tx`:BI.t("View transaction"),action:m.url&&mo.createElement(WI,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},mo.createElement(LI,{size:12}))}))}),p&&mo.createElement(cy,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&mo.createElement(ly,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&mo.createElement(iy,{message:r}))}i($c,"SwapDetailsAlerts");var py=2e3;var uy=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:dt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:dt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Bn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(c=>({from:{chain:{displayName:dt(c.fromBlockchain,e)??"",image:c.fromBlockchainLogo??""}},to:{chain:{displayName:dt(c.toBlockchain,e)??"",image:c.toBlockchainLogo??""}},swapper:{displayName:Bn(c.swapperId,o)??"",image:c.swapperLogo??"",type:c.swapperType}})):[],alerts:PI.createElement($c,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function my(t){if(qn(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(my,"getStepState");function Fc(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=VI(),c=y().blockchains(),u=y().swappers(),{findToken:p}=y(),m=O.use.retry(),h=te.use.isActiveTab(),f=jI(),[d,g]=GI(py),S=KI(null),[T,C]=yy(null),[k,w]=yy(null),x=i(()=>{r(),C(null)},"onCancel"),I=Ie.use.getNotifications(),A=Ie.use.removeNotification(),E=I(),b=DI(e),v=b?.networkStatus;hy(()=>{E.find(Oe=>Oe.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),A(e.requestId)):k&&w(null))},[e.status,e.requestId]),hy(()=>{L?C(Ca.WaitingForNetworkChange):v===Ca.WaitingForConnectingWallet||v===Ca.NetworkChanged?C(v):C(null)},[v]);let B=am(e),P=b?_I(e,b):null,_=b?$I(e,b):null,V=Mh(e),ee=sm(e),j=i(we=>!!l(we)?.mobileWallet,"isMobileWallet"),L=v===Ca.WaitingForNetworkChange&&!!P&&!!_?.walletType&&(j(_.walletType)||a(_.walletType,P.network)),X=L?s.bind(null,_.walletType,[{namespace:P.namespace,network:P.network}]):void 0,se=im(e,b,l),z=uy({swap:e,switchNetwork:X,showNetworkModal:v,setNetworkModal:C,message:se,blockchains:c,swappers:u}),R=z.length,[le,me]=[e.steps[0],e.steps[R-1]],ce=me.outputAmount||me.expectedOutputAmountHumanReadable,mt=e.steps.reduce((we,Oe)=>we+parseFloat(Oe.feeInUsd||""),0),G=e.steps.find(we=>we.diagnosisUrl)?.diagnosisUrl,D=M(parseFloat(ce||"0")*(me.toUsdPrice||0),4,4),q=M(parseFloat(e.inputAmount)*(le.fromUsdPrice||0),4,4),K=ce?new gy(ce).multipliedBy(me.toUsdPrice||0).toString():"",Se=new gy(e.inputAmount).multipliedBy(le.fromUsdPrice||0).toString(),de=Ot(q,D),Fe=se.detailedMessage.content||se.shortMessage,Ye=e.status==="success"?ut.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(ce,6,6),token:z[R-1].to.token.displayName,conciseAddress:Oo(e.wallets[z[R-1].to.chain.displayName]?.address||""),chain:z[R-1].to.chain.displayName}}):Z.createElement(ty,null,Z.createElement(Do,{variant:"body",size:"medium",color:"neutral700",align:"center"},Fe?"":ut.t("Transaction was not sent."),B?`${ut.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),Fe&&Z.createElement(Sa,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",Fe));return Z.createElement(re,{header:{title:ut.t("Swap Details"),onCancel:e.status==="running"?()=>C("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(eo,null,Z.createElement(dy,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>C("delete")},Z.createElement(Do,{size:"medium",variant:"label",color:"error"},ut.t("Delete"))))},footer:ee&&!k&&Z.createElement(dy,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let we=si(e,c,p);m(we),setTimeout(()=>{f("../../")},0)}},ut.t("Try again"))},Z.createElement(Vh,{compact:!0,ref:S},Z.createElement(jh,{className:vn()},Z.createElement(Do,{variant:"label",size:"large",color:"neutral700"},`${ut.t("Request ID")}`),Z.createElement("div",{className:ya()},Z.createElement(Do,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(fy,{container:N(),content:d?ut.t("Copied To Clipboard"):ut.t("Copy Request ID"),open:d||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(zI,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:g.bind(null,o||"")},d?Z.createElement(UI,{size:16,color:"secondary"}):Z.createElement(FI,{size:16,color:"gray"}))),Z.createElement(ey,{target:"_blank",href:`${Yc}/swap/${o}`},Z.createElement(fy,{container:N(),content:ut.t("View on Rango Explorer"),side:"bottom"},Z.createElement(QI,{size:20}))))),Z.createElement("div",{className:vn()},Z.createElement(Do,{variant:"label",size:"large",color:"neutral700"},e.finishTime?ut.t("Finished at"):ut.t("Created at")),Z.createElement(Do,{variant:"label",size:"small",color:"neutral700"},V)),Z.createElement("div",{className:Jh()},Z.createElement(HI,{fee:M(String(mt),2,2),time:bn(Pr(e.steps)),steps:R}),Z.createElement(tr,{from:{price:{value:M(e.inputAmount,6,6),usdValue:q,realUsdValue:Se,realValue:e.inputAmount},token:{displayName:z[0].from.token.displayName,image:z[0].from.token.image},chain:{image:z[0].from.chain.image,displayName:z[0].from.chain.displayName}},to:{price:{value:M(ce,6,6),usdValue:D,realUsdValue:K,realValue:ce||""},token:{displayName:z[R-1].to.token.displayName,image:z[R-1].to.token.image},chain:{image:z[R-1].to.chain.image,displayName:z[R-1].to.chain.displayName}},percentageChange:M(de,2,2),warningLevel:Ut(de??0)})),Z.createElement("div",{className:Rh()},Z.createElement(Do,{variant:"title",size:"small"},ut.t("Swaps steps"))),Z.createElement(OI,{size:8}),Z.createElement(Xh,null,z.map((we,Oe)=>{let Xt=Oe,fo=my(e.steps[Oe]),Gy=fo==="error"||fo==="in-progress"||fo==="warning"||fo==="completed"&&Oe===z.length-1;return Z.createElement(qI,{key:Xt,step:we,type:"swap-progress",ref:S,state:fo,hasSeparator:Oe!==0,tabIndex:Xt,isFocused:Gy,tooltipContainer:N()})}))),Z.createElement(Wc,{state:T,onClose:()=>C(null),onCancel:x,onDelete:n,message:se.detailedMessage.content,swap:e,walletButtonDisabled:!h}),Z.createElement(Mc,{open:!!k,diagnosisUrl:G,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(ce,6,6),usdValue:D,realUsdValue:K,realValue:ce||"",percentageChange:M(de,2,2),token:{displayName:z[R-1].to.token.displayName,image:z[R-1].to.token.image},chain:{image:z[R-1].to.chain.image},description:Ye}))}i(Fc,"SwapDetails");import{i18n as ka}from"@lingui/core";import{Divider as Ty,NotFound as RI,Skeleton as Nr,Typography as va}from"@rango-dev/ui";import Ee from"react";import{i18n as XI}from"@lingui/core";import{Divider as YI,Skeleton as ZI,Typography as JI}from"@rango-dev/ui";import xe from"react";import{css as It,styled as Oc}from"@rango-dev/ui";var Sy=Oc("div",{width:"100%",height:"100%",padding:"$10 $20"}),Ar=Oc("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ta=Oc("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),a3=It({display:"flex",justifyContent:"space-between",alignItems:"center"}),s3=It({display:"flex",justifyContent:"space-between",alignItems:"center"}),l3=It({paddingTop:"$15",display:"flex"}),c3=It({padding:"$15 $0"}),p3=It({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),u3=It({paddingBottom:"$10"}),m3=It({display:"flex",justifyContent:"start",alignItems:"center"}),d3=It({paddingTop:"$5",display:"flex",alignItems:"center"}),f3=It({display:"flex",alignItems:"center"}),g3=It({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Cy=It({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Uc(){return xe.createElement(Sy,null,xe.createElement(nr,{type:"swap-preview"}),xe.createElement("div",{className:"swaps-steps"},xe.createElement(JI,{variant:"title",size:"small"},XI.t("Swaps steps"))),xe.createElement(xe.Fragment,null,xe.createElement(Ar,null,xe.createElement(Lt,{separator:!1}),xe.createElement("div",{className:Cy()},xe.createElement(YI,{direction:"horizontal",size:20}),xe.createElement(ZI,{height:22,variant:"rectangular"}))),xe.createElement(Ta,null),xe.createElement(Ar,null,xe.createElement(Lt,{separator:!1})),xe.createElement(Ta,null),xe.createElement(Ar,null,xe.createElement(Lt,{separator:!1})),xe.createElement(Ta,null),xe.createElement(Ar,null,xe.createElement(Lt,{separator:!1}))))}i(Uc,"LoadingSwapDetails");function ky(t){let{requestId:e,showSkeleton:o}=t;return Ee.createElement(re,{header:{title:ka.t("Swap Details"),suffix:Ee.createElement(eo,null)}},o&&Ee.createElement(Kh,null,Ee.createElement("div",{className:vn()},Ee.createElement(va,{variant:"label",size:"large",color:"neutral700"},`${ka.t("Request ID")}`),Ee.createElement("div",{className:ya()},Ee.createElement(va,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Nr,{width:60,height:10,variant:"rounded"})),Ee.createElement(Ty,{direction:"horizontal",size:4}),Ee.createElement(Nr,{width:16,height:16,variant:"rectangular"}),Ee.createElement(Ty,{direction:"horizontal",size:4}),Ee.createElement(Nr,{width:16,height:16,variant:"rectangular"}))),Ee.createElement("div",{className:vn()},Ee.createElement(va,{className:Zh(),variant:"label",size:"large",color:"neutral700"},Ee.createElement(Nr,{width:60,height:10,variant:"rounded"})),Ee.createElement(va,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Nr,{width:60,height:10,variant:"rounded"}))),Ee.createElement(Uc,null)),!o&&Ee.createElement(Yh,null,Ee.createElement(RI,{title:ka.t("Not found"),description:ka.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(ky,"SwapDetailsPlaceholder");function vy(){let{manager:t,state:e}=oA(),o=!e.loadedFromPersistor,n=yt(t),{requestId:r}=rA(),a=He(),{fetchStatus:s}=y();if(!r)return zc.createElement(nA,{containerStyles:{margin:"20px"},type:"error",title:eA.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",c=r?n.find(({swap:h})=>h.requestId===r):void 0,u=i(()=>{if(c?.id){let h=t?.get(c.id);h&&tA(h)}},"onCancel"),p=i(async()=>{if(c?.id)try{t?.deleteQueue(c.id),a()}catch(h){console.log(h)}},"onDelete"),m=c?.swap;return!m||l?zc.createElement(ky,{requestId:r,showSkeleton:l}):zc.createElement(Fc,{swap:m,requestId:r,onCancel:u,onDelete:p})}i(vy,"SwapDetailsPage");import{i18n as wy}from"@lingui/core";import{Divider as iA,getCategoriesCount as aA,SelectableCategoryList as sA,styled as xy,Typography as lA,Wallet as cA,WalletState as pA}from"@rango-dev/ui";import{useWallets as uA}from"@rango-dev/wallets-react";import _t,{useState as by}from"react";var mA=xy("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),dA=xy(ie,{textAlign:"center"});function Ey(){let{fetchStatus:t}=y(),[e,o]=by("ALL"),n=y().blockchains(),{config:r}=y(),{state:a}=uA(),[s,l]=by(),c=te.use.isActiveTab(),{list:u}=Ct(),p=hp(u,n),h=aA(p)!==1,f=yp(u,e),d=i(g=>{ip(u,r.multiWallets)||l(g)},"handleWalletItemClick");return _t.createElement(re,{header:{title:wy.t("Connect Wallets")}},_t.createElement(dA,null,h&&_t.createElement(_t.Fragment,null,_t.createElement(sA,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),_t.createElement(iA,{size:24})),_t.createElement(lA,{variant:"title",size:"xmedium",align:"center"},wy.t("Choose a wallet to connect.")),_t.createElement(mA,null,f.map((g,S)=>{let C=a(g.type).namespaces,k=`wallet-${S}-${g.type}`,w=Nn(g,C);return _t.createElement(cA,{key:k,...g,state:w?pA.PARTIALLY_CONNECTED:g.state,container:N(),onClick:()=>d(g),isLoading:t==="loading",disabled:!c})}),_t.createElement(ko,{wallet:s,onClose:()=>{l(void 0)}}))))}i(Ey,"WalletsPage");function Iy(){return um(),Ts(),fA([{path:F.home,element:$e.createElement(Jg,null)},{path:F.routes,element:$e.createElement(nh,null)},{path:F.fromSwap,children:[{index:!0,element:$e.createElement(pa,{type:"source"})},{path:F.blockchains,element:$e.createElement(aa,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:$e.createElement(pa,{type:"destination"})},{path:F.blockchains,element:$e.createElement(aa,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:$e.createElement(Wh,null)},{path:F.languages,element:$e.createElement(eh,null)},{path:F.exchanges,element:$e.createElement(uc,{sourceType:"Exchanges"})},{path:F.bridges,element:$e.createElement(uc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:$e.createElement(lg,null)},{path:F.addCustomTokens,children:[{index:!0,element:$e.createElement(rd,null)},{path:F.blockchains,element:$e.createElement(aa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:$e.createElement(Ag,null)},{path:F.swapDetails,element:$e.createElement(vy,null)}]},{path:F.wallets,element:$e.createElement(Ey,null)},{path:F.confirmSwap,element:$e.createElement(jf,null)}])}i(Iy,"AppRoutes");import{useQueueManager as wA}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as bA}from"rango-sdk";import{useContext as xA,useEffect as Py,useState as _y}from"react";import{globalCss as gA}from"@rango-dev/ui";var Ay=i(()=>gA({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Ny(){let{setWatermark:t,setShowProfileBanner:e}=te();return{fetchApiConfig:i(async()=>{let n=await fetch(`${$t("BASE_URL")}/meta/dapp/config?apiKey=${$t("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(Ny,"useFetchApiConfig");import{useWallets as hA}from"@rango-dev/wallets-react";import{useEffect as yA,useRef as SA}from"react";function By(){let{connect:t,state:e}=hA(),o=SA({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);yA(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(By,"useForceAutoConnect");import{isApprovalTX as CA,RouteEventType as Wy,StepEventType as Ly,StepExecutionEventStatus as TA,WidgetEvents as wa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as My}from"react";function Hc(){let t=Ie.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=y();My(()=>{let r=i(a=>{let{event:s,step:l,route:c}=a;if(s.type===Ly.TX_EXECUTION&&s.status===TA.TX_SENT&&!CA(l)||s.type===Ly.SUCCEEDED){let p=[],m=c.wallets[l?.fromBlockchain];if(m){let h=e.find(f=>f.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&f.walletType===m.walletType&&f.chain===l?.fromBlockchain);h&&p.push(h)}if(l?.fromBlockchain!==l?.toBlockchain){let h=c.wallets[l?.toBlockchain];if(h){let f=e.find(d=>d.address?.toLocaleLowerCase()===h.address?.toLocaleLowerCase()&&d.walletType===h.walletType&&d.chain===l?.toBlockchain);f&&p.push(f)}}if(p.length>0){let h=n(),d=[{blockchain:l.fromBlockchain,address:l.fromSymbolAddress,symbol:l.fromSymbol},{blockchain:l.toBlockchain,address:l.toSymbolAddress,symbol:l.toSymbol}].filter(g=>h.some(S=>S.blockchain===g.blockchain&&S.address?.toLocaleLowerCase()===g.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===g.symbol?.toLocaleLowerCase()));o(p,{selectedCustomTokens:d,shouldFetchCustomTokens:d.length>0})}}t(s,c)},"handleStepEvent");return Ce.on(wa.StepEvent,r),()=>Ce.off(wa.StepEvent,r)},[Ce,e]),My(()=>{let r=i(a=>{let{event:s,route:l}=a;(s.type===Wy.FAILED||s.type===Wy.SUCCEEDED)&&t(s,l)},"handleRouteEvent");return Ce.on(wa.RouteEvent,r),()=>Ce.off(wa.RouteEvent,r)},[Ce])}i(Hc,"useSubscribeToWidgetEvents");import{useManager as kA}from"@rango-dev/queue-manager-react";import{useEffect as vA}from"react";function Qc(){let{isSynced:t,syncNotifications:e}=Ie(),{manager:o,state:n}=kA();vA(()=>{Ie.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(yt(o))},[Ie.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Qc,"useSyncNotifications");function qc(){By(),Ay(),Hc(),Qc();let t=y().blockchains(),{canSwitchNetworkTo:e}=Ai(),[o,n]=_y(null),[r,a]=_y(),s=xA(ni),l=t.filter(bA),{fetchApiConfig:c}=Ny();Py(()=>()=>pm(),[]),wA({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Py(()=>(Co.init(),Ie.persist.hasHydrated()||Ie.persist.rehydrate(),s.onConnectWallet(u=>{n(p=>{if(!p||p.walletType!==u.walletType)return u;let m={...p};return u.network&&(m.network=u.network),u.accounts&&(m.accounts=u.accounts),m})}),s.onDisconnectWallet(u=>{a(u),n(p=>u===p?.walletType?null:p)}),c().catch(console.log),Co.destroy),[])}i(qc,"useBootstrap");import{styled as EA}from"@rango-dev/ui";var Dy=EA("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function ba(){qc();let{config:t}=y(),{activeTheme:e}=pn(t?.theme||{}),{activeLanguage:o}=lo();return Gc.createElement(IA,{language:o},Gc.createElement(Dy,{id:"swap-container",className:e()},Gc.createElement(Iy,null)))}i(ba,"Main");import{setSolanaSignerConfig as KA}from"@rango-dev/signer-solana";import Kc,{useEffect as Hy,useMemo as jA}from"react";import{useState as AA}from"react";var NA=i(()=>{let[t,e]=AA(null),o=i(a=>{let s=document.createElement("link");return s.href=a,s.rel="stylesheet",document.head.appendChild(s),s},"loadFont"),n=i(()=>{t&&(document.head.removeChild(t),e(null))},"unloadFont");return{handleLoadCustomFont:i(a=>{n();let s=rp(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),$y=NA;import{checkWaitingForNetworkChange as BA,makeQueueDefinition as WA}from"@rango-dev/queue-manager-rango-preset";import{Provider as LA}from"@rango-dev/queue-manager-react";import{useWallets as MA}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as PA}from"@rango-dev/wallets-shared";import{isEvmBlockchain as _A}from"rango-types";import DA,{useMemo as $A}from"react";function FA(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=MA(),l=$A(()=>WA({API_KEY:t.apiKey||$t("API_KEY"),BASE_URL:$t("BASE_URL"),emitter:{emit:Ce.emit}}),[t.apiKey]),{blockchains:c,connectedWallets:u}=y(),p=c(),m={blockchains:u.map(w=>({accounts:[w],name:w.chain}))},h=i(async(w,x)=>a(w,x.network)?await r(w,[x]):void 0,"switchNetwork"),f=i(w=>!!s(w).mobileWallet,"isMobileWallet"),d=p.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),g=p.filter(_A),S=i(w=>{let{supportedChains:x}=s(w);return In(x)},"getSupportedChainNames"),T=e(),C={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:PA(g),getSupportedChainNames:S},getSigners:o,wallets:m,providers:T,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:f},k=te.use.isActiveTab();return DA.createElement(LA,{queuesDefs:[l],context:C,onPersistedDataLoaded:w=>{BA(w)},isPaused:!k},t.children)}i(FA,"QueueManager");var Fy=FA;import{useManager as QA}from"@rango-dev/queue-manager-react";import qA,{createContext as GA,useContext as VA}from"react";function Oy(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=O();return i(u=>{let{fromBlockchain:p,fromToken:m,toBlockchain:h,toToken:f,requestAmount:d}=u,g={blockchains:e,tokens:o};if(p!==void 0){let S=e.find(T=>T.name===p)??null;n(S)}if(m!==void 0){let S=m?t(m)??null:null;r({meta:g,token:S})}if(h!==void 0){let S=e.find(T=>T.name===h)??null;a(S)}if(f!==void 0){let S=f?t(f)??null:null;s({meta:g,token:S})}d!==void 0&&l(d)},"updateQuoteInputs")}i(Oy,"useUpdateQuoteInputs");import{cancelSwap as OA,getCurrentNamespaceOfOrNull as UA,getCurrentStep as zA,getRelatedWalletOrNull as HA}from"@rango-dev/queue-manager-rango-preset";var xa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return yt(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=si(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&OA(o)}getCurrentStepInfo(e){let o=zA(e);return{step:o,wallet:o?HA(e,o):null,network:o?UA(e,o)?.network:null}}};var Uy=GA(void 0);function Vc(t){let{manager:e}=QA(),o=te.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:l}=y(),c=new xa(e,{retrySwap:n,findToken:r}),{fetchingWallets:u}=y(),p=pp(a()),m=y().blockchains(),h=y().tokens(),f=y().swappers(),d=y().fetchStatus,g=lo().resetLanguage,S=Ie().getNotifications(),T=Ie().clearNotifications,C=Oy(),{fromBlockchain:k,toBlockchain:w,fromToken:x,toToken:I,inputAmount:A}=O(),E={isActiveTab:o,setCurrentTabAsActive:Co.forceClaim,history:c,wallets:{isLoading:u,details:s(),totalBalance:p,refetch:async b=>l(b)},meta:{blockchains:m,tokens:h,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:S,clearAll:T},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:w?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:C}};return qA.createElement(Uy.Provider,{value:E},t.children)}i(Vc,"WidgetInfo");function zy(){let t=VA(Uy);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(zy,"useWidget");function Ea(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=$y();return Hy(()=>{n&&r(n)},[n]),jA(()=>{Mp({API_KEY:o?.apiKey||Br,BASE_URL:o?.apiUrl||Xc})},[o.apiKey,o.apiUrl]),Hy(()=>{t.config?.signers?.customSolanaRPC&&KA("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Kc.createElement(ri,{config:o,onUpdateState:e},Kc.createElement(Fy,{apiKey:o.apiKey},Kc.createElement(Vc,null,t.children)))}i(Ea,"WidgetProvider");function Qy(t){let e=t.config?.externalWallets;return Ia.createElement(Lu,null,e?Ia.createElement(ba,null):Ia.createElement(Ea,{config:t.config??Hr},Ia.createElement(ba,null)))}i(Qy,"Widget");function qy(){let{on:t,off:e}=Ce;return{on:t,off:e}}i(qy,"useWidgetEvents");var v9={DerivationPath:On,Namespaces:Dn,Detached:Fn,isOnDerivationPath:zn,isOnNamespace:Un,isOnDetached:Hn};export{j7 as EventSeverity,Go as MainEvents,r9 as Networks,s9 as PendingSwapNetworkStatus,Ha as QuoteEventTypes,X7 as RouteEventType,Aa as SUPPORTED_FONTS,v9 as StatefulConnect,Y7 as StepEventType,Z7 as StepExecutionBlockedEventStatus,J7 as StepExecutionEventStatus,Ue as UI_ID,qa as UiEventTypes,Qa as WalletEventTypes,o9 as WalletEvents,i9 as WalletTypes,Qy as Widget,Go as WidgetEvents,Ea as WidgetProvider,ri as WidgetWallets,_s as customizedThemeTokens,e9 as readAccountAddress,Uo as useStatefulConnect,Ct as useWalletList,Ai as useWallets,zy as useWidget,qy as useWidgetEvents,jS as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|