@rango-dev/widget-embedded 0.40.2-next.10 → 0.40.2-next.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var ay=Object.defineProperty;var i=(t,e)=>ay(t,"name",{value:e,configurable:!0});import{EventSeverity as MX,RouteEventType as PX,StepEventType as _X,StepExecutionBlockedEventStatus as DX,StepExecutionEventStatus as $X}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as OX}from"@rango-dev/wallets-core/legacy";import{useWallets as ri,Events as zX}from"@rango-dev/wallets-react";import{Networks as HX,WalletTypes as qX}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as VX}from"rango-types";import{Divider as tC}from"@rango-dev/ui";import yo,{useEffect as oC,useRef as nC,useState as Hp}from"react";import{WalletState as sy}from"@rango-dev/ui";import{useWallets as ly}from"@rango-dev/wallets-react";import{useReducer as cy}from"react";function hc(t){return!!t.derivationPath}i(hc,"isStateOnDerivationPathStep");function yc(t){return!!t.namespace}i(yc,"isStateOnNamespace");var ur={status:"init",namespace:null,derivationPath:null};function Sc(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"reset":return ur;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:ur;default:throw new Error("Action hasn't been defined.")}}i(Sc,"reducer");function Vt(){let{state:t,disconnect:e,connect:o}=ly(),[n,r]=cy(Sc,ur),a=i(async(u,m,h)=>{r({type:"reset"});try{let d=m?.map(f=>({...f,network:void 0}));return await o(u,d),{status:"connected"}}catch(d){let f=d?.message?`Error: ${d.message}`:"An unknown error happened during connecting wallet.";throw new Error(f,{cause:d})}},"runConnect"),s=i(async(u,m)=>{if(u.state===sy.DISCONNECTED){if(!!u.isHub&&u.properties?.find(S=>S.name==="detached")&&u.state!=="connected")return r({type:"needsNamespace",payload:{targetWallet:u}}),{status:"namespace"};if(!u.needsNamespace)return await a(u.type,void 0,m);let f=u.needsNamespace.data.length>1,g=u.needsDerivationPath;if(f)return r({type:"needsNamespace",payload:{targetWallet:u}}),{status:"namespace"};if(g){let k=u.needsNamespace.data[0];return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:k.value}}),{status:"derivation-path"}}return await a(u.type,u.needsNamespace?.data.map(k=>({namespace:k.value})),m)}return m?.disconnectIfConnected?(await p(u.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(u,m)=>{let h=u.needsNamespace?.selection==="single",d=u.needsDerivationPath,f=m[0];if(!f)throw new Error("To confirm a namespace, you should select at least one namespace.");if(h&&d)return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:f}}),{status:"derivation-path"};if(!yc(n))throw new Error("Something went wrong on handling namespace. Please retry.");let g=n.namespace.targetWallet.type,k=m.map(C=>({namespace:C}));return await a(g,k)},"handleNamespace"),c=i(async u=>{if(!u)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!hc(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,d=[{namespace:n.derivationPath.namespace,derivationPath:u}];return await a(m,d)},"handleDerivationPath"),p=i(async u=>{let m=t(u);return m.connected||m.connecting?(await e(u),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:p,handleNamespace:l,handleDerivationPath:c,getState:()=>n,resetState:u=>{r(u==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Vt,"useStatefulConnect");import{WalletState as xa}from"@rango-dev/ui";import{useWallets as CS}from"@rango-dev/wallets-react";import{detectMobileScreens as kS,KEPLR_COMPATIBLE_WALLETS as TS,WalletTypes as Cn}from"@rango-dev/wallets-shared";import{useCallback as vS,useEffect as wS}from"react";import fS,{createContext as gS,useContext as hS,useEffect as yS,useRef as SS}from"react";import{create as mS}from"zustand";import{persist as dS}from"zustand/middleware";import{allProviders as py}from"@rango-dev/provider-all";var aa=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()}},Po=new aa;import{defineVersions as kc,pickVersion as Tc,Provider as sa}from"@rango-dev/wallets-core";function vc({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=wc(a);return s instanceof sa?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 sa?o.push(kc().version("1.0.0",n).build()):o.push(kc().version("0.0.0",n).build())}),o}return t}i(vc,"matchAndGenerateProviders");function wc(t){try{return Tc(t,"1.0.0")[1]}catch{return Tc(t,"0.0.0")[1]}}i(wc,"pickProviderVersionWithFallbackToLegacy");function bc(t){return t.map(o=>wc(o)).map(o=>o instanceof sa?o.id:o.config.type)}i(bc,"configWalletsToWalletName");function mr(t,e){return e.find(o=>o.name===t)?.displayName}i(mr,"getBlockchainDisplayNameFor");function pt(t,e){return e.find(o=>o.name===t)?.shortName}i(pt,"getBlockchainShortNameFor");function xc(t,e){return e.find(o=>o.name===t)?.logo}i(xc,"getBlockchainImage");function un(t,e){return e.find(o=>o.id===t)?.title}i(un,"getSwapperDisplayName");function co(t,e){return e.find(o=>o.name===t)??null}i(co,"findBlockchain");function la(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(la,"isTokenNative");function ut(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(ut,"createTokenHash");function _o(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(_o,"isValidTokenAddress");function mn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(c=>{typeof c!="string"&&(c=ut(c));let p=o.tokensMapByTokenHash.get(c);p&&(n[c]=p)})},"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(p=>{let u=ut(p);delete n[u]})):a(c.tokens))}),Object.values(n)}i(mn,"matchTokensFromConfigWithMeta");function dr(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(dr,"getSupportedBlockchainsFromConfig");function Ic(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Ic,"makeProvidersOptionsFromConfig");var fr={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"}},uy={clientUrl:void 0},my={liquiditySources:void 0};function Ec(t){let e=Ic(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 py(o).map(a=>a())}i(Ec,"generateProviders");var Ac=i((t,e,o)=>{let n=Ec({...fr,...t});return{config:{...fr,...t},iframe:uy,campaignMode:my,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=mn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}}),p=mn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}});Po.set("supportedSourceTokens",c),Po.set("supportedDestinationTokens",p),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=Ec(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Ic(a);return vc({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Nc}from"rango-types";var Wc=[Nc.EVM,Nc.SOLANA],gr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as Iy}from"rango-sdk";import{UI_ID as dy}from"@rango-dev/ui";var hr="c6381a79-2817-4602-83bf-6a641a409e32",Bc="https://api.rango.exchange",Lc="https://explorer.rango.exchange",$e={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...dy};import{BlockchainCategories as ky,WalletState as xt}from"@rango-dev/ui";import{legacyReadAccountAddress as Ty}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as vy,getCosmosExperimentalChainInfo as wy,isEvmAddress as by,KEPLR_COMPATIBLE_WALLETS as OA,Networks as Gc}from"@rango-dev/wallets-shared";import $o from"bignumber.js";import{isCosmosBlockchain as xy}from"rango-types";import fy from"bignumber.js";var ce=new fy(0);import{WalletTypes as gy}from"@rango-dev/wallets-shared";var po="~",Mc=[gy.LEAP];import{BlockchainCategories as pa,WalletState as Cy}from"@rango-dev/ui";import{TransactionType as yr}from"rango-sdk";var Pc="Roboto",ca=[{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 Do(t){return Array.from(new Set(t))}i(Do,"removeDuplicateFrom");function Sr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Sr,"debounce");function tt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(tt,"containsText");function $c(t,e){return t.toLowerCase()===e.toLowerCase()}i($c,"exactText");function Fc(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Fc,"startWithText");var N=i(()=>document.getElementById($e.SWAP_BOX_ID),"getContainer"),uo=i(()=>document.getElementById($e.EXPANDED_BOX_ID),"getExpanded");function Oc(t,e,o){let n=!!e&&$c(e,t),r=!!o&&$c(o,t);return n!==r?n?-1:1:0}i(Oc,"compareExactMatchText");function ua(t,e,o){let n=!!e&&tt(e,t),r=!!o&&tt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ua,"compareContainsText");function ma(t,e,o){let n=!!e&&Fc(e,t),r=!!o&&Fc(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ma,"compareStartWithText");function Uc(t,e,o){if(!o)return 0;let n=Oc(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Oc(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ma(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ua(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ma(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ua(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ma(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ua(o,t.address,e.address);if(r!==0)return r}return 0}i(Uc,"compareWithSearchFor");var Cr=i((t,e)=>{switch(e){case pa.ALL:return!0;case pa.UTXO:return t===yr.TRANSFER;case pa.OTHER:return t!==yr.TRANSFER&&t!==yr.COSMOS&&t!==yr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),zc=i(t=>ca.find(o=>o.value===t)?.url,"getFontUrlByName");function Qc(t,e){let o=!!t.find(n=>n.state===Cy.CONNECTED);return e===!1&&o}i(Qc,"isSingleWalletActive");function Hc(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(Hc,"memoizedResult");import{BigNumber as qc}from"bignumber.js";var dn=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"),P=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new qc(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new qc(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 kr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var bt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),fn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function gn(t){switch(!0){case t.connected:return xt.CONNECTED;case t.connecting:return xt.CONNECTING;case!t.installed:return xt.NOT_INSTALLED;default:return xt.DISCONNECTED}}i(gn,"mapStatusToWalletState");function Vc(t,e,o,n){return o.filter(r=>!Mc.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(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:c,needsNamespace:p,supportedChains:u,needsDerivationPath:m,properties:h,isHub:d}=e(r),f=Do(u.map(k=>k.type)),g=gn(t(r));return{title:a,image:s,link:vy(l),state:g,type:r,showOnMobile:c,needsNamespace:p,blockchainTypes:f,needsDerivationPath:m,properties:h,isHub:d}})}i(Vc,"mapWalletTypesToWalletInfo");function hn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(hn,"walletAndSupportedChainsNames");function fa(t,e,o,n,r){let a=[];function s(c,p,u){if(!!!a.find(h=>h.chain===c)){let h={address:p,chain:c,walletType:t,isContractWallet:u??!1};a.push(h)}}i(s,"addAccount");let l=n||[];return e.forEach(c=>{let{address:p,network:u}=Ty(c),m=l.length>0,h=l.includes(u),d=u===Gc.Unknown;if(m&&!h&&!d)return;let g=u===Gc.Unknown&&by(p);if(d&&!g)return;o.includes(u)||g?r?s(u,p.toLowerCase(),r):l.filter(S=>o.includes(S)).forEach(S=>{s(S,p.toLowerCase())}):s(u,p)}),a}i(fa,"prepareAccountsForWalletStore");function mo(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((p,u)=>{let m=p.from.blockchain,h=p.to.blockchain,d=a===o.swaps.length-1,f=u===c.length-1;(!d&&!f||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(h)})}e==="all"&&n.add(l)}),Array.from(n)}i(mo,"getQuoteWallets");function yn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(yn,"isAccountAndWalletMatched");var Kc=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?da(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new $o(ce));return Ey(e.toString())},"calculateWalletUsdValue");function Ey(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Ey,"numberWithThousandSeparator");var wr=i((t,e)=>{let o=wy(Object.entries(t).map(([,n])=>n).filter(xy));return o&&o[e]?.experimental},"isExperimentalChain");function da(t,e){return new $o(t).shiftedBy(-e).toFixed()}i(da,"representAmountInNumber");function br(t){if(!t)return null;let e=da(t.amount,t.decimals),o=t.usdValue?da(t.usdValue,t.decimals):null,n=P(e,8,8),r=o?P(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(br,"formatBalance");function jc(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new $o(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new $o(e.usdValue).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new $o(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new $o(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(jc,"compareTokenBalance");function Bt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Bt,"areTokensEqual");function Xc(t){return t.sort((e,o)=>+(o.state===xt.CONNECTED)-+(e.state===xt.CONNECTED)||+(o.state===xt.DISCONNECTED||o.state===xt.CONNECTING)-+(e.state===xt.DISCONNECTED||e.state===xt.CONNECTING))}i(Xc,"sortWalletsBasedOnConnectionState");function xr(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(xr,"getConciseAddress");function Yc({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Yc,"getAddress");var Zc=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Jc(t){return t.map(e=>e.state).join("-")}i(Jc,"hashWalletsState");function Rc(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(Rc,"filterBlockchainsByWalletTypes");function ep(t,e){return e===ky.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Cr(n,e))return!0;return!1})}i(ep,"filterWalletsByCategory");var ga={API_KEY:hr};function Lt(t){return ga[t]||""}i(Lt,"getConfig");function tp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ga=e,ga}i(tp,"initConfig");var op=20,np=25,ha="theme-widget",ya=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Bt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Bt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Sa=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),rp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Er,mt=i(()=>Er||(Er=new Iy(Lt("API_KEY"),Lt("BASE_URL")),Er),"httpService");function Ir(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Do(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(Ir,"getUniqueSwappersGroups");function ip(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(ip,"sortLiquiditySourcesByGroupTitle");function Ye(t,e){return e?.[t]==="hidden"}i(Ye,"isFeatureHidden");function Fo(t,e){return e?.[t]==="enabled"}i(Fo,"isRoutingEnabled");var ap=i((t,e,o)=>Ye("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var sp=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=dr({config:a}),p=r;return c.length>0&&(p=p.filter(u=>c.includes(u.name))),p.filter(u=>Wc.includes(u.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 p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=Po.get(u);m?.length||(m=mn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Po.set(u,m)),m=ap(m,s,a.features);let h=e().blockchains({type:o.type});return m.filter(f=>o.blockchain&&f.blockchain!==o.blockchain||!h.some(g=>g.name===f.blockchain)?!1:o.searchFor?!!(tt(f.symbol,o.searchFor)||tt(f.address||"",o.searchFor)||tt(f.name||"",o.searchFor)):!0).sort((f,g)=>{let k=e().isTokenPinned(f,o.type),C=e().isTokenPinned(g,o.type);if(k!==C)return k?-1:1;if(o.getBalanceFor){let W=o.getBalanceFor(f),A=o.getBalanceFor(g),x=jc(W,A);if(x!==0)return x}let S=c.get(f.blockchain),T=c.get(g.blockchain),w=la(f,S),E=la(g,T);if(w!==E)return w?-1:1;if(f.isPopular!==g.isPopular)return f.isPopular?-1:1;if(o.searchFor){let W=Uc(f,g,o.searchFor);if(W)return W}return f.isSecondaryCoin!==g.isSecondaryCoin?f.isSecondaryCoin?1:-1:S&&T?S.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=ut(o),s=n.get(a);return s||(s=r.find(l=>ut(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Bt(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(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(ip)},fetch:async()=>{try{let{routing:o}=e().config,n=Fo("enableCentralizedSwappers",o),r=await mt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},c=[],p=r.popularTokens,u=r.swappers.filter(d=>d.enabled),m=new Set;r.tokens.forEach(d=>{m.add(d.blockchain),c.push(d)}),r.blockchains.sort((d,f)=>d.sort-f.sort).forEach(d=>{d.enabled&&m.has(d.name)&&a.set(d.name,d)}),c.forEach(d=>{let f=ut(d);l[d.blockchain]||(l[d.blockchain]=[]),s.set(f,d),l[d.blockchain].push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as Ay,Catalonia as Ny,Chinese as lp,Denmark as Wy,English as By,Finland as Ly,French as My,German as Py,Greece as _y,Hungary as Dy,India as $y,Indonesian as Fy,Italian as Oy,Japanese as Uy,Korea as zy,Lithuania as Qy,Malay as Hy,Netherlands as qy,Pakistan as Gy,Philippines as Vy,Poland as Ky,Portuguese as jy,Russian as Xy,SaudiArabia as Yy,Serbia as Zy,Slovakia as Jy,SouthAfrica as Ry,Spanish as eS,Swahili as tS,Swedish as oS,Thai as nS,Turkish as rS,Ukrainian as iS,Vietnamese as aS}from"@rango-dev/ui";var cp=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:Ry},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:Yy},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:Ay},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:Ny},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:lp},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:lp},{title:"Danish",label:"Dansk",local:"da",SVGFlag:Wy},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:qy},{title:"English",label:"English",local:"en",SVGFlag:By},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:Vy},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Ly},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:My},{title:"German",label:"Deutsch",local:"de",SVGFlag:Py},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:_y},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:$y},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:Dy},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:Fy},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Oy},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Uy},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:zy},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:Qy},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:Hy},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Ky},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:jy},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Xy},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:Zy},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:Jy},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:eS},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:tS},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:oS},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:nS},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:rS},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:iS},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:Gy},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:aS}],Oo="en";var pp=[.5,1,3],up=1,mp=5,dp=100,fp=0;var gp=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:up,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,p=l<=9;return c&&p}))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=Do(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=Ye("theme",n),s=Ye("language",n),l=Ye("liquiditySource",n),c=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...c&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Oo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||Oo}})},setCustomToken:o=>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=dr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ba from"bignumber.js";import sS from"mitt";var he=sS(),lS={on:he.on,off:he.off};import{WidgetEvents as hp}from"@rango-dev/queue-manager-rango-preset";var ka=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ka||{}),Ta=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Ta||{}),va=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(va||{}),Uo=(a=>(a[a.RouteEvent=hp.RouteEvent]="RouteEvent",a[a.StepEvent=hp.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Uo||{});var yp=i(t=>(e,o,n)=>t(i((...a)=>{e(s=>({...s,lastUpdatedAt:+new Date})),e(...a)},"modifedSet"),o,n),"keepLastUpdated");import cS from"bignumber.js";function Kt(t){return`${t.blockchain}${po}${t.address}${po}${t.symbol}`}i(Kt,"createAssetKey");function wa(t,e){return`${Kt(e)}${po}${t}`}i(wa,"createBalanceKey");function Sn(t){let[e,o,n]=t.split(po);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Sn,"extractAssetFromBalanceKey");function Sp(t,e){let o={};return t.balances?.forEach(n=>{let r=wa(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,l=e().findToken(n.asset)?.usdPrice,c=l?new cS(l??ce).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:c};o[r]=p}),o}i(Sp,"createBalanceStateForNewAccount");function Cp(t,e){for(let o in e){let n=Sn(o),r=Kt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(Cp,"updateAggregatedBalanceStateForNewAccount");function kp(t,e){let o=Sn(e),n=Kt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(kp,"removeBalanceFromAggregatedBalance");function pS(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(pS,"matchWalletDetailsWithConnectedWallet");var uS=Hc(),Tp=yp((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>yn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>yn(s,a))?{...a,loading:!1,error:!1,explorerUrl:pS(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>yn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n)=>{let r=e().connectedWallets,a=o.filter(s=>!r.some(l=>yn(s,l)));if(a.length>0){let s=a.map(l=>{let c=!r.some(p=>p.chain===l.chain&&p.selected&&p.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(p=>!s.some(u=>u.walletType===p.walletType&&u.chain===p.chain)),...s]}))}},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)=>{he.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r=e().connectedWallets.filter(p=>p.walletType===o);e().connectedWallets.forEach(p=>{p.walletType!==o&&(r=r.filter(u=>!(u.chain===p.chain&&u.address===p.address)))}),n?.chains&&n.chains.length>0&&(r=r.filter(p=>n.chains?.includes(p.chain))),n?.namespaces&&n.namespaces.length>0&&(r=r.filter(p=>p.namespace?n.namespaces?.includes(p.namespace):!1));let a={},s=e()._aggregatedBalances,l=e()._balances;Object.keys(l).forEach(p=>{let u=Sn(p);!!r.find(h=>wa(h.address,{address:u.address,blockchain:h.chain,symbol:u.symbol})===p)?s=kp(s,p):a[p]=l[p]}),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(he.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 r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(c=>({address:c.address,blockchain:c.chain})),s;try{s=await mt().getWalletsDetails(a)}catch(c){throw e().setConnectedWalletHasError(o),new Error("Request for fetching balances failed.",{cause:c})}let l=s.wallets;if(l){let{retryOnFailedBalances:c=!0}=n||{};if(c){let m=l.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));m.length>0&&e().fetchBalances(m,{retryOnFailedBalances:!1})}let p={},u=e()._aggregatedBalances;l.forEach(m=>{if(m.failed||(e().removeBalancesForWallet(r,{chains:[m.blockChain]}),!e().connectedWallets.find(d=>d.walletType===r&&d.address===m.address&&d.chain===m.blockChain)))return;let h=Sp(m,e);u=Cp(u,h),p={...p,...h}}),t(m=>({_balances:{...m._balances,...p},_aggregatedBalances:u})),e().setConnectedWalletRetrievedData(o,l)}else throw e().setConnectedWalletHasError(o),new 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=Kt(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 p=n[c],u=new ba(p.amount),m=new ba(l.amount);u.isGreaterThan(m)&&(l=p)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,l)=>{let c=n[l],[,,,p]=l.split(po);return p===o&&(s[l]=c),s},{})},getConnectedWalletsDetails:()=>uS(()=>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],p=Sn(l);if(p.blockchain===n.chain){let u=e().findToken(p),m=c.amount?new ba(c.amount).shiftedBy(-c.decimals):ce;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:c.amount,decimal:c.decimals,amount:m.toString(),logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function vp(t){return mS()(dS((...e)=>({...Tp(...e),...sp(...e),...gp(...e),...Ac(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(vp,"createAppStore");var wp=gS(null);function y(){let t=hS(wp);if(yS(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function bp(t){let e=SS();return e.current||(e.current=vp(t.config)),fS.createElement(wp.Provider,{value:e.current},t.children)}i(bp,"AppStoreProvider");function ht(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=y(),{state:r,getWalletInfo:a}=CS(),s=y().blockchains(),{handleDisconnect:l}=Vt(),c=bc(n()),p=Vc(r,a,c,e);p=kS()?p.filter(g=>g.showOnMobile!==!1&&r(g.type).installed):p;let u=Xc(p),m=i(g=>!o.find(k=>k.walletType===g&&k.chain===e),"isExperimentalChainNotAdded"),h=vS(()=>{let g=p?.filter(k=>k.state===xa.CONNECTING)||[];for(let k of g)l(k.type)},[Jc(p)]);wS(()=>()=>{h()},[]);let d=i(g=>{let k=g.find(S=>S.type===Cn.DEFAULT);return!k||k.state===xa.NOT_INSTALLED?!1:g.filter(S=>S.state!=xa.NOT_INSTALLED&&![Cn.DEFAULT,Cn.WALLET_CONNECT_2,Cn.LEDGER].includes(S.type)&&a(S.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),f=i((g,k,C)=>wr(C,k)&&m(g)&&!TS.includes(g)||g==Cn.DEFAULT&&!d(p),"shouldExcludeWallet");return{list:u.filter(g=>!f(g.type,e??"",s)),terminateConnectingWallets:h}}i(ht,"useWalletList");import{Modal as IS}from"@rango-dev/ui";import AS from"react";import{create as ES}from"zustand";var xp="rango-widget";var kn=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(xp),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 xS=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"),zo=xS;var ne=zo(ES()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})}}))),fo=new kn({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});function R(t){let{watermark:e}=ne();return AS.createElement(IS,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as Ea}from"@lingui/core";import{Button as PS,Checkbox as _S,Divider as DS,Image as _p,ListItemButton as $S,MessageBox as FS,Radio as OS,RadioRoot as US}from"@rango-dev/ui";import ve,{useState as zS}from"react";import{css as NS,darkTheme as Ip,IconButton as WS,styled as go}from"@rango-dev/ui";var Et=go(WS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Ip} &`]:{backgroundColor:"$neutral"}}}),Ap=go("div",{position:"absolute",background:"$secondary500",[`.${Ip} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),jt=go("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Np=go("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"}}}}),Wp=go("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Bp=go("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Lp=NS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Ar=go("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as BS,styled as Nr}from"@rango-dev/ui";var jN=Nr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Qo=Nr("div",{position:"relative"}),LS=BS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ho=Nr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${LS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Wr=Nr("div",{"& img":{borderRadius:"50%"}});function Mp(t,e){return t.find(o=>o.name===e)?.logo}i(Mp,"getBlockchainLogo");import{styled as MS}from"@rango-dev/ui";var Pp=MS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function Tn(t){let{targetWallet:e}=t.value,o=e.needsNamespace?.selection==="single",n=e.image,[r,a]=zS([]),s=y().blockchains(),l=i(p=>{a(o?[p]:u=>u.includes(p)?u.filter(m=>m!==p):u.concat(p))},"onSelect"),c=i(p=>o?ve.createElement(US,{value:r?.[0]},p):ve.createElement(ve.Fragment,null,p),"wrapRadioRoot");return ve.createElement(ve.Fragment,null,ve.createElement(DS,{size:20}),ve.createElement(FS,{type:"info",title:Ea.t("Select chain types"),description:Ea.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:ve.createElement(Qo,null,ve.createElement(Ar,null,ve.createElement(_p,{src:n,size:45})),ve.createElement(Ho,null))}),ve.createElement(Pp,null,c(ve.createElement(ve.Fragment,null,e.needsNamespace?.data.map(p=>ve.createElement($S,{key:p.id,id:p.id,title:p.label,hasDivider:!0,style:{height:60},onClick:()=>l(p.value),start:ve.createElement(_p,{src:Mp(s,p.id),size:22}),end:o?ve.createElement(OS,{value:p.value}):ve.createElement(_S,{checked:r.includes(p.value)})}))))),ve.createElement(PS,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},Ea.t("Confirm")))}i(Tn,"Namespaces");import{i18n as qo}from"@lingui/core";import{Button as qS,Divider as Fp,Image as GS,MessageBox as VS,Select as KS,TextField as jS}from"@rango-dev/ui";import ze,{useEffect as XS,useState as Op}from"react";import{namespaces as QS}from"@rango-dev/wallets-shared";var Br={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ia(t){let e=t?QS[t].derivationPaths:null;return e?[...e,Br]:[]}i(Ia,"getDerivationPaths");import{styled as Dp,Typography as HS}from"@rango-dev/ui";var $p=Dp("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Aa=Dp(HS,{paddingLeft:"$10"}),Na={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Up="0";function vn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Op(null),[l,c]=Op(Up),p=a===Br.id,u=Ia(o),m=i(({value:d})=>{let f=u?.find(g=>g.id===d);f&&(a===Br.id&&Number.isNaN(Number(l))&&c(Up),s(f.id))},"handleDerivationPathItemClick"),h=i(()=>{let d=u.find(f=>f.id===a);if(d)e(d.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return XS(()=>{s(Ia(o)[0]?.id||null)},[o]),ze.createElement(ze.Fragment,null,ze.createElement(Fp,{size:20}),ze.createElement(VS,{type:"info",title:qo.t("Select Derivation Path"),description:qo.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:ze.createElement(Qo,null,ze.createElement(Wr,null,ze.createElement(GS,{src:n,size:45})),ze.createElement(Ho,null))}),ze.createElement($p,null,ze.createElement(Aa,{variant:"body",size:"xsmall",color:"$neutral600"},qo.t("Choose Derivation Path Template")),ze.createElement(KS,{value:a||"",options:u.map(d=>({value:d.id,label:d.label})),variant:"filled",handleItemClick:m,styles:{trigger:Na}}),ze.createElement(Fp,{size:20}),ze.createElement(Aa,{variant:"body",size:"xsmall",color:"$neutral600"},p?qo.t("Enter Path"):qo.t("Enter Index")),ze.createElement(jS,{type:p?"text":"number",variant:"contained",value:l,onChange:d=>c(d.target.value),style:Na})),ze.createElement(qS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!u||!a||!l},qo.t("Confirm")))}i(vn,"DerivationPath");import{i18n as Go}from"@lingui/core";import{Image as YS,MessageBox as Wa,WalletState as ZS}from"@rango-dev/ui";import{useWallets as JS}from"@rango-dev/wallets-react";import ho from"react";function Ba(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=JS();return gn(a(n))===ZS.CONNECTED?ho.createElement(Wa,{type:"success",title:Go.t("Wallet Connected"),description:Go.t("Your wallet is connected, you can use it to swap.")}):o?ho.createElement(Wa,{type:"error",title:Go.t("Failed to Connect"),description:o||Go.t("Your wallet is not connected. Please try again.")}):ho.createElement(Wa,{type:"loading",title:Go.t("Connecting to your wallet"),description:Go.t("Click connect in your wallet popup."),icon:ho.createElement(Qo,null,ho.createElement(Wr,null,ho.createElement(YS,{src:r,size:45})),ho.createElement(Ho,null))})}i(Ba,"ConnectStatus");import{i18n as La}from"@lingui/core";import{Button as RS,Divider as zp,MessageBox as eC}from"@rango-dev/ui";import Lr from"react";function Ma(t){let{displayName:e,onConfirm:o}=t;return Lr.createElement(eC,{title:La.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:La.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},Lr.createElement(zp,{size:18}),Lr.createElement(zp,{size:32}),Lr.createElement(RS,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},La.t("Confirm")))}i(Ma,"ExperimentalChain");function Qp(t,e){return t().status==="init"&&!!e}i(Qp,"isOnStatus");function wn(t){return t().status==="namespace"}i(wn,"isOnNamespace");function bn(t){return t().status==="derivationPath"}i(bn,"isOnDerivationPath");var rC=3e3,iC=300;function So(t){let e=nC(),[o,n]=Hp(!1),[r,a]=Hp(),s=i(S=>{a(S.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=ht(),{handleConnect:c,handleDerivationPath:p,handleNamespace:u,getState:m,resetState:h}=Vt(),d=i(S=>{u(t.wallet,S).then(C).catch(s)},"handleConfirmNamespaces"),f=i(S=>{if(!S)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(S).then(C).catch(s)},"handleDerivationPathConfirm"),g=i(()=>{n(!1)},"handleClosingModal"),k=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),C=i((S,T)=>{let w=S.status==="connected",E=["disconnected","disconnected-unhandled"].includes(S.status);w?(t.onConnect?.(),T||(e.current=setTimeout(g,rC))):E&&g()},"afterConnected");return oC(()=>{if(t.wallet){k();let S=!1,T=!0;i(()=>{setTimeout(()=>{T=!1,S||n(!0)},iC)},"beforeConnecting")(),c(t.wallet,{disconnectIfConnected:!0}).then(E=>{["namespace","derivation-path"].includes(E.status)||(S=!0),C(E,T)}).catch(s)}},[t.wallet]),yo.createElement(R,{open:o,onClose:g,onExit:()=>{k(),l(),t.onClose&&t.onClose()},container:N()},Qp(m,t.wallet)&&yo.createElement(yo.Fragment,null,yo.createElement(Ba,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),yo.createElement(tC,{direction:"vertical",size:32})),wn(m)&&yo.createElement(Tn,{onConfirm:d,value:m().namespace}),bn(m)&&yo.createElement(vn,{onConfirm:f,value:m().derivationPath}))}i(So,"StatefulConnectModal");import{Provider as pC}from"@rango-dev/wallets-react";import Mr,{createContext as uC,useEffect as jp,useMemo as mC,useRef as Xp}from"react";import{useEffect as aC}from"react";function qp(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(qp,"hashProviders");function Pa(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=y(),a=n();return aC(()=>{o(),r()},[qp(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Pa,"useWalletProviders");import{legacyFormatAddressWithNetwork as sC,legacyReadAccountAddress as Gp}from"@rango-dev/wallets-core/legacy";import{Events as Co}from"@rango-dev/wallets-react";import{isEvmBlockchain as lC}from"rango-sdk";function Vp(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=y(),{onConnectWalletHandler:l,onDisconnectWalletHandler:c}=t,p=s().filter(lC).map(g=>g.name),u=i((g,k)=>{let[C,,S,,T]=g,w=fa(C,S,p,k.supportedChainNames,T.isContractWallet);w.length&&e(w,T.namespace)},"onAccountsEvent"),m=i((g,k,C,S,T)=>{if(k===Co.ACCOUNTS){let w=hn(T.supportedBlockchains);C&&u([g,k,C,S,T],{supportedChainNames:w})}if(k===Co.CONNECTED){let w=`${g}-${S.network}-${C}`;l.current?l.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}k===Co.PROVIDER_DISCONNECTED&&(o(g),c.current?c.current(g):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),k===Co.NAMESPACE_DISCONNECTED&&n(g,C)},"handleUpdatesForHub"),h=i((g,k,C,S,T)=>{if(k===Co.ACCOUNTS){let w=hn(T.supportedBlockchains),E=[],W=[];if(C?.forEach(x=>{let{network:b}=Gp(x);p.includes(b)?E.push(x):W.push(x)}),r.filter(x=>x.walletType===g).map(x=>sC(x.address,x.chain)).length>0){if(E.length>0){let x=fa(g,E,p,w,T.isContractWallet);a(g,{chains:x.map(b=>b.chain)})}W.length>0&&a(g,{chains:W.map(x=>{let{network:b}=Gp(x);return b})})}C?u([g,k,C,S,T],{supportedChainNames:w}):(o(g),c.current?c.current(g):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}if(k===Co.ACCOUNTS&&S.connected){let w=`${g}-${S.network}-${C}`;l.current?l.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForLegacy"),d=i((g,k,C,S,T)=>{if(k===Co.NETWORK&&S.network){let w=`${g}-${S.network}`;l.current?l.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((g,k,C,S,T)=>{T.isHub?m(g,k,C,S,T):h(g,k,C,S,T),d(g,k,C,S,T)},"handler")}}i(Vp,"useUpdates");import{LegacyEvents as cC}from"@rango-dev/wallets-core/legacy";function Kp(t,e){let[o,n,r,a,s]=e;n!==cC.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(Kp,"propagateEvents");var Pr=uC({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function dC(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}=Pa(s.wallets,l),p=Xp(),u=Xp(),{handler:m}=Vp({onConnectWalletHandler:p,onDisconnectWalletHandler:u});jp(()=>{n().catch(console.log)},[]),jp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let h=ne.use.isActiveTab(),d=mC(()=>({onConnectWallet:f=>{p.current=f},onDisconnectWallet:f=>{u.current=f}}),[]);return Mr.createElement(Pr.Provider,{value:d},Mr.createElement(pC,{allBlockChains:a,providers:c,onUpdateState:(f,g,k,C,S)=>{let T=[f,g,k,C,S];m(...T),t.onUpdateState&&Kp(t.onUpdateState,T)},autoConnect:!!h,configs:{wallets:s.wallets}},t.children))}i(dC,"Main");function _r(t){let{config:e,...o}=t;return Mr.createElement(bp,{config:e},Mr.createElement(dC,{...o,config:e}))}i(_r,"WidgetWallets");import ia from"react";import fC,{Fragment as gC}from"react";import{MemoryRouter as hC,useInRouterContext as yC}from"react-router";function Yp({children:t}){let o=yC()?gC:hC;return fC.createElement(o,null,t)}i(Yp,"AppRouter");import{I18nManager as mI}from"@rango-dev/ui";import dc from"react";import Pe from"react";import{useRoutes as JE}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 Ko,useRef as qr}from"react";import Ze from"bignumber.js";import{create as kC}from"zustand";import{subscribeWithSelector as TC}from"zustand/middleware";import{i18n as yt}from"@lingui/core";import{RouteEventType as cL}from"@rango-dev/queue-manager-rango-preset";import Qe from"bignumber.js";import{PendingSwapNetworkStatus as Qr}from"rango-types";import{i18n as Fe}from"@lingui/core";var ee=i(()=>({genericServerError:Fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Fe.t("Please reset your liquidity sources."),description:Fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Fe.t("No Routes Found."),description:Fe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Fe.t("High Price Impact"),title:Fe.t("Price impact is too high!"),description:Fe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Fe.t("USD Price Unknown"),title:Fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:Fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Fe.t("Confirm USD Price Unknown")}}),"errorMessages");function Zp(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(Zp,"getQuoteErrorMessage");import{i18n as Dr}from"@lingui/core";var ko=i(()=>({connectWallet:Dr.t("Connect Wallet"),swap:Dr.t("Swap"),swapAnyway:Dr.t("Swap anyway"),ethWarning:Dr.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function _a(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(_a,"getFeeLabel");var Da=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Jp=100,Rp=30,eu=15,tu=60;var ou=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],nu=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as CC}from"@rango-dev/queue-manager-rango-preset";import XB from"bignumber.js";function iu(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(iu,"getRequiredBalanceOfWallet");function Pt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Pt,"getPriceImpactLevel");function Fr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=CC(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=co(a?a.toBlockchain:n.fromBlockchain,e),c=co(r.toBlockchain,e),p=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:p,toBlockchain:c,toToken:u,inputAmount:m}}i(Fr,"createRetryQuote");function Vo(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=xn(o),s=dt(o);if(o&&a&&s){let p=Mt(a.toString(),s.toString());if(!!p&&pu(a,p)){let m=Ur(o?.swaps,n),h=Pt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:m,warningLevel:h}}}if(e&&du(e,o))return{type:4,usdValueChange:P(dt(o)?.minus(dt(e)??0).toString()??"0",null,2),percentageChange:P(Mt(dt(e)??"1",dt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let l=zr(o.swaps),c=r>mp;if(mu(t.userSlippage.toString(),l)){if(c&&parseFloat(l??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:uu(o,r),minRequiredSlippage:l};return null}i(Vo,"generateQuoteWarnings");function au(t){return![4].includes(t.type)}i(au,"isQuoteWarningConfirmationRequired");function Mt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:$a(t.toString(),e.toString());return n&&n<0?n:null}i(Mt,"getPriceImpact");var su=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"),Or=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),c=n.requestId.toLowerCase();return l.localeCompare(c)}),"sortQuotesBy"),lu=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"),cu=i(t=>{let e=i((o,n)=>{let r=Da.indexOf(o.value),a=Da.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function pu(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return ou.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Qe(r)))}i(pu,"hasHighValueLoss");function fu(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(fu,"hasLimitError");function gu(t){let e=(t||[]).filter(l=>{let c=l.fromAmountMinValue?new Qe(l.fromAmountMinValue):null,p=l.fromAmountMaxValue?new Qe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?c?.gte(l.fromAmount)||p?.lte(l.fromAmount):c?.gt(l.fromAmount)||p?.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=yt.t({id:"Required: >= {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=yt.t({id:"Required: > {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=yt.t({id:"Required: <= {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=yt.t({id:"Required: < {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(gu,"getLimitErrorMessage");function hu(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:c}=t;return e!=="success"?{title:ko().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:ko().swap,action:"confirm-swap",disabled:!0}:s?{title:ko().swapAnyway,action:"confirm-warning",disabled:!1}:c?{title:ko().ethWarning,action:"confirm-warning",disabled:!1}:{title:ko().swap,action:"confirm-swap",disabled:!1}:{title:ko().connectWallet,action:"connect-wallet",disabled:!1}}i(hu,"getSwapButtonState");function Fa(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(Fa,"canComputePriceImpact");function Oa(t,e){let o=ce;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(Oa,"getUsdFeeOfStep");function Ur(t,e){return t.reduce((o,n)=>o.plus(Oa(n,e)),ce)}i(Ur,"getTotalFeeInUsd");function Ua(t){let e=ce;return e=e.plus(new Qe(t.amount).multipliedBy(t.price||0)),e}i(Ua,"getUsdFee");function yu(t){return t.reduce((e,o)=>e.plus(Ua(o)),ce)}i(yu,"getTotalFeesInUsd");function Su(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(Su,"getFeesGroup");function Cu(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(Cu,"checkSlippageErrors");function uu(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(uu,"checkSlippageWarnings");function zr(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(zr,"getMinRequiredSlippage");function mu(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(mu,"hasProperSlippage");function ku(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:c,slippage:p,affiliateRef:u,affiliatePercent:m,affiliateWallets:h,destination:d,contractCall:f}=t,g=a?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),k=[];return r?.forEach(S=>{k.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??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:k,selectedWallets:g??{},slippage:p.toString(),contractCall:f,...d&&{destination:d},...c&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!c&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(ku,"createQuoteRequestBody");function Tu(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Tu,"getWalletsForNewSwap");function xn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Qe(e).multipliedBy(o)}i(xn,"getUsdInputFrom");function dt(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(dt,"getUsdOutputFrom");function $a(t,e){return new Qe(e).div(new Qe(t)).minus(1).multipliedBy(Jp).toNumber()}i($a,"getPercentageChange");function du(t,e){let o=xn(t),n=dt(t),r=dt(e);if(!o||!n||!r)return!1;let a=$a(n.toString(),r.toString());return nu.some(({threshold:s,minInput:l})=>a<=s&&o.isGreaterThanOrEqualTo(l))}i(du,"isOutputAmountChangedExcessively");function vu(t,e,o){let n=t.validationStatus,r=mo({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>iu(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,c=P(new Qe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=P(new Qe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=yt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=yt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=yt.t(" for input and network fee")),yt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:l,reason:u,currentAmount:c,blockchain:pt(s.asset.blockchain,o)}})})}i(vu,"generateBalanceWarnings");function En(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Qr.NetworkChanged}i(En,"isNetworkStatusInWarningState");function wu(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),En(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Qr.WaitingForConnectingWallet:n=n||yt.t("Waiting for connecting wallet");break;case Qr.WaitingForQueue:n=n||yt.t("Waiting for other running tasks to be finished");break;case Qr.WaitingForNetworkChange:n=n||yt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(wu,"getSwapMessages");function bu(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(bu,"getLastConvertedTokenInFailedSwap");function xu(t){return t.status==="failed"}i(xu,"shouldRetrySwap");function Eu(t,e,o,n,r,a){if(!n||t)return!0;let s=mo({filter:"all",quote:n}),l=mo({filter:"required",quote:n}),c=s.every(m=>r.some(h=>h.chain===m)),p=l.every(m=>r.some(h=>h.chain===m)),u=o&&a?_o(a,o):!1;return!e&&!c||e&&!o||e&&!!o&&(!u||!p)}i(Eu,"isConfirmSwapDisabled");function Iu(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Iu,"isTokensIdentical");var Hr=i((t,e)=>t?.usdPrice?new Ze(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=zo(kC()(TC(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Ze(0),outputUsdValue:new Ze(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=ce,a=o.inputUsdValue;return fn(o.inputAmount)?(e&&(n=e?.outputAmount?new Ze(e?.outputAmount):null,a=xn(e)??ce,r=dt(e)??ce),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Ze(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Ze(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Ze(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:Hr(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 Ze(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 Ze(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Hr(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:Hr(n??null,s),outputUsdValue:new Ze(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?Hr(e.toToken,e.outputAmount?.toString()||""):new Ze(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Ze(0),inputUsdValue:new Ze(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Ze(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})})))),Au=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&he.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&&he.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 Nu(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:c,toBlockchain:p}=O(),u=y().config,m=y().fetchStatus,h=y().blockchains(),{findToken:d}=y(),{setAffiliateRef:f,setAffiliatePercent:g,setAffiliateWallets:k}=y(),C=u?.from?.tokens,S=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,E=qr(void 0),W=qr(void 0),A=qr(void 0),x=qr(void 0);Ko(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Ko(()=>{if(m==="success"){r();let b=h.find(M=>M.name===u?.from?.blockchain),v=u?.from?.token,I=v&&d(v);(b||!b&&A.current)&&n(b??null),I?a({token:I,meta:{blockchains:h}}):!I&&E.current&&a({token:null}),A.current=u?.from?.blockchain,E.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),Ko(()=>{ya(s,C)&&a({token:null}),Sa(c,S)&&n(null)},[C,S]),Ko(()=>{ya(l,T)&&a({token:null}),Sa(p,w)&&o(null)},[T,w]),Ko(()=>{if(m==="success"){r();let b=h.find(M=>M.name===u?.to?.blockchain),v=u?.to?.token,I=v&&d(v);(b||!b&&x.current)&&o(b??null),I?e({token:I,meta:{blockchains:h}}):!I&&W.current&&e({token:null}),x.current=u?.to?.blockchain,W.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),Ko(()=>{f(u?.affiliate?.ref??null),g(u?.affiliate?.percent??null),k(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Nu,"useSyncStoresWithConfig");import{useEffect as Ha,useRef as vC}from"react";import{useInRouterContext as wC,useLocation as bC,useSearchParams as xC}from"react-router-dom";function za(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(za,"convertTokenSearchParamToAsset");function Qa(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Qa,"tokenToSearchParam");function Ga(){let t=bC(),[e,o]=xC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:c,setToBlockchain:p,setFromToken:u,setToToken:m,setInputAmount:h}=O(),d=y().fetchStatus,f=y().blockchains(),g=wC(),{updateIframe:k,updateCampaignMode:C}=y(),S=y().isInCampaignMode(),T=vC(),{findToken:w}=y(),E=i(()=>{let A={};for(let[B,X]of e.entries())B.startsWith("utm_")&&(A[B]=X);let x=e.get("fromAmount"),b=e.get("fromBlockchain"),v=e.get("fromToken"),I=e.get("toBlockchain"),M=e.get("toToken"),$=e.get("autoConnect"),q=e.get("clientUrl"),Z=e.get("liquiditySources"),j=e.get("blockchain");return{fromAmount:x,fromBlockchain:b,fromToken:v,toBlockchain:I,toToken:M,autoConnect:$,clientUrl:q,liquiditySources:Z,utmQueryParams:A,blockchain:j}},"getUrlSearchParams"),W=i(A=>{for(let x in A)A[x]||delete A[x];o(A,{replace:!0})},"updateUrlSearchParams");Ha(()=>{let{autoConnect:A,clientUrl:x,utmQueryParams:b,blockchain:v}=E();g&&d==="success"&&W({fromBlockchain:n?.name,fromToken:Qa(a),toBlockchain:r?.name,toToken:Qa(s),fromAmount:l,autoConnect:A??void 0,clientUrl:x??void 0,blockchain:v??void 0,liquiditySources:S?T.current:void 0,...b})},[t.pathname,l,n,a,r,s,S]),Ha(()=>{if(!g)return;let A=E();if(!T.current&&A.liquiditySources&&(T.current=A.liquiditySources),A.fromAmount&&h(A.fromAmount),d==="success"){let x=f.find(M=>M.name===A.fromBlockchain),b=A.fromToken&&x?w(za(A.fromToken,x)):void 0,v=f.find(M=>M.name===A.toBlockchain),I=A.toToken&&v?w(za(A.toToken,v)):void 0;x&&(c(x),b&&u({token:b,meta:{blockchains:f}})),v&&(p(v),I&&m({token:I,meta:{blockchains:f}}))}},[d]),Ha(()=>{let{clientUrl:A,liquiditySources:x}=E();k("clientUrl",A||void 0),C("liquiditySources",x?.split(",")??void 0)},[])}i(Ga,"useSyncUrlAndStore");import{i18n as Jo}from"@lingui/core";import{Alert as zk,Button as Qk,darkTheme as Hk,Divider as ks,DoneIcon as qk,styled as Gk,TextField as Vk,Typography as Kk}from"@rango-dev/ui";import Ue,{useState as jk}from"react";import{useNavigate as Xk,useSearchParams as Yk}from"react-router-dom";import{ChevronRightIcon as EC,Divider as Pu,Image as IC,Typography as _u}from"@rango-dev/ui";import St from"react";import{darkTheme as Wu,styled as Va}from"@rango-dev/ui";var Bu=Va("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Wu} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Wu} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Lu=Va("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Mu=Va("div",{display:"flex"});function Ka(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return St.createElement(Lu,null,St.createElement(_u,{size:"large",variant:"label"},n),St.createElement(Pu,{size:10}),St.createElement(Bu,{onClick:s?void 0:e,disabled:s},St.createElement(Mu,null,r&&St.createElement(St.Fragment,null,St.createElement(IC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),St.createElement(Pu,{size:4,direction:"horizontal"})),St.createElement(_u,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),St.createElement(EC,{size:12,color:"black"})))}i(Ka,"BlockchainSelectorButton");import{i18n as Ya}from"@lingui/core";import{Button as WC,Divider as zu,MessageBox as BC}from"@rango-dev/ui";import Yt,{useEffect as Qu,useState as Za}from"react";import{i18n as Gr}from"@lingui/core";import{Button as Uu,Divider as To,ExternalLinkIcon as AC,Image as NC,Typography as Xo}from"@rango-dev/ui";import ye from"react";var Du="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function $u(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i($u,"generateExplorerLink");import{darkTheme as jo,styled as Fu}from"@rango-dev/ui";var ja=Fu("a",{textDecoration:"none",color:"$colors$neutral700",[`.${jo} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${jo} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${jo} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${jo} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Ou=Fu("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${jo} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${jo} &`]:{color:"$colors$neutral900"}}});function Xa(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,l=$u(n.address,s),c=i(()=>window.open(Du,"_blank"),"onClickLearnMore");return ye.createElement(R,{open:e,dismissible:!0,onClose:o,onExit:r,container:N()},ye.createElement(Ou,null,ye.createElement(NC,{src:n.image===""?gr:n.image,size:45,type:"circular"}),ye.createElement(To,{size:4}),ye.createElement(Xo,{variant:"title",size:"medium"},n.symbol),ye.createElement(Xo,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ye.createElement(To,{size:4}),ye.createElement(Xo,{variant:"body",size:"medium"},l?ye.createElement(ja,{hasHover:!0,href:l,target:"_blank",rel:"nofollow noreferrer"},n.address,ye.createElement(AC,{size:12,color:"gray"})):ye.createElement(ja,null,n.address)),ye.createElement(To,{size:4}),n.coinSource&&ye.createElement(Xo,{className:"_coin-source",variant:"body",size:"xsmall"},Gr.t("via")," ",ye.createElement(Xo,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ye.createElement(To,{size:"32"}),ye.createElement(Xo,{size:"medium",variant:"body",className:"_custom-token-description"},Gr.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."))),ye.createElement(To,{size:40}),ye.createElement(To,{size:10}),ye.createElement(Uu,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Gr.t("Import Anyway")),ye.createElement(To,{size:10}),ye.createElement(Uu,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:c},Gr.t("Learn More")))}i(Xa,"CustomTokenModal");function In(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:l,onExitErrorModal:c,onExitImportModal:p}=t,{setCustomToken:u}=y(),[m,h]=Za(!1),[d,f]=Za(!1),[g,k]=Za(!1),C=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),h(!1)},"closeErrorModal"),T=i(()=>{k(!0),S()},"handleErrorModalButtonClick"),w=i(()=>{g&&n?.type==="network-error"&&(k(!1),C()),c()},"handleExit"),E=i(()=>{e&&(u(e),l())},"handleSubmit");return Qu(()=>{n&&h(!0)},[n]),Qu(()=>{o&&e&&f(!0)},[o,e]),Yt.createElement(Yt.Fragment,null,Yt.createElement(R,{open:m,dismissible:!0,onClose:S,onExit:w,container:N()},Yt.createElement(BC,{title:n?.title??"",type:"error",description:n?.message||Ya.t("Failed Network, Please retry.")},Yt.createElement(zu,{size:40}),Yt.createElement(zu,{size:10}),Yt.createElement(WC,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:T},n?.type==="network-error"?Ya.t("Retry"):Ya.t("Add another custom token")))),o&&e&&Yt.createElement(Xa,{blockchain:o,token:e,onSubmitClick:E,onClose:()=>f(!1),open:d,onExit:p}))}i(In,"ImportCustomToken");import{useManager as Pk}from"@rango-dev/queue-manager-react";import{BottomLogo as _k,Divider as cm,Header as Dk}from"@rango-dev/ui";import be,{useEffect as Ss,useMemo as $k,useRef as pm,useState as Fk}from"react";import{useRef as LC}from"react";function Vr(){return window.self!==window.top}i(Vr,"isAppLoadedIntoIframe");function Ja(){let t=LC(null),{iframe:e}=y(),o=Vr()&&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(Ja,"useIframe");import{useNavigate as MC}from"react-router-dom";function Oe(){let t=MC();return()=>t(-1)}i(Oe,"useNavigateBack");import{createTheme as is,darkTheme as KC,lightTheme as jC}from"@rango-dev/ui";import{useEffect as XC,useState as YC}from"react";import{theme as GC,darkColors as VC}from"@rango-dev/ui";import ns from"react";function PC(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(PC,"expandShortHexColor");function _C(t){return/[0-9]+$/.test(t)}i(_C,"isOverridingColor");function DC(t,e){return t.padStart(e,"0")}i(DC,"pad");function Ra(t){let e=Math.min(Math.max(Math.round(t),0),255);return DC(e.toString(16),2)}i(Ra,"intToHex");function $C(t){return`#${Ra(t.red)}${Ra(t.green)}${Ra(t.blue)}`}i($C,"rgbToHex");function FC(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(FC,"hexToRGB");function OC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(OC,"generateShade");function UC(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(UC,"generateTint");function zC(t){return Hu(t,OC)}i(zC,"calculateShades");function QC(t){return Hu(t,UC)}i(QC,"calculateTints");function Hu(t,e){let o=FC(t),n=[];for(let r=1;r<9;r++)n.push($C(e(o,r)));return n}i(Hu,"calculateColors");function es(t,e,o){let a=QC(t).reverse().concat(t),s=zC(t),l=a.concat(s),c={},p=l.length;for(let u=0;u<p;u++){let m=100+(o?p-1-u:u)*50;c[`${e}${m}`]=l[u]}return c}i(es,"createTintsAndShades");function ts(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)&&!_C(r)){let c=PC(a);Object.assign(n,es(c,r,s))}}return{...n,...e}}i(ts,"expandToGenerateThemeColors");var qu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),HC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=qu(o%52)+e;return qu(o%52)+e},"toAlphabeticName"),qC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),os=i(t=>HC(qC(5381,JSON.stringify(t))>>>0),"toHash");function rs(t){let e=GC.colors,o={...e,...VC},n,r;if(t?.light){let s={colors:ts(e,t.light)};n={id:`${ha}-light-${os(s)}`,tokens:s}}if(t?.dark){let s={colors:ts(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ha}-dark-${os(s)}`,tokens:s}}return{light:n,dark:r}}i(rs,"customizedThemeTokens");function Gu(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ns.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ns.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ns.cloneElement(e,{key:l}))}}),o}i(Gu,"joinList");function Vu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Vu,"doesWindowPreferDarkColorScheme");function Yo(t){let{colors:e,fontFamily:o=Pc,borderRadius:n=op,secondaryBorderRadius:r=np}=t,[a,s]=YC(Vu()?"dark":"light"),{theme:l}=y(),{dark:c,light:p}=rs(e),u=is({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[u.className,jC.className],h=[u.className,KC.className];if(p){let f=is(p.id,p.tokens);m.push(f.className)}if(c){let f=is(c.id,c.tokens);h.push(f.className)}return XC(()=>{let f=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return Vu()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=m.join(" "),g=h.join(" ");return l==="auto"?a==="dark"?g:f:l==="dark"?g:f},"getActiveTheme"),mode:l==="auto"?a:l}}i(Yo,"useTheme");var ft=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 Ku}from"@lingui/core";import{Alert as ZC,Button as JC}from"@rango-dev/ui";import ju from"react";function as(t){return ju.createElement(ZC,{action:ju.createElement(JC,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Ku.t("Activate this tab")),type:"warning",variant:"alarm",title:Ku.t("Another tab is open and handles transactions.")})}i(as,"ActivateTabAlert");import{i18n as ss}from"@lingui/core";import{Button as RC,Divider as ek,MessageBox as tk}from"@rango-dev/ui";import Kr from"react";function ls(t){let{open:e,onClose:o,onConfirm:n}=t;return Kr.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Kr.createElement(tk,{title:ss.t("Activate current tab"),type:"warning",description:ss.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.")},Kr.createElement(ek,{size:20}),Kr.createElement(RC,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ss.t("Confirm"))))}i(ls,"ActivateTabModal");import{ChevronLeftIcon as ok}from"@rango-dev/ui";import Xu from"react";function cs(t){return Xu.createElement(Et,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Xu.createElement(ok,{color:"black",size:16}))}i(cs,"BackButton");import{i18n as nk}from"@lingui/core";import{Button as rk,Typography as ik}from"@rango-dev/ui";import ps from"react";function us(t){return ps.createElement(jt,null,ps.createElement(rk,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ps.createElement(ik,{variant:"label",size:"medium",color:"error500"},nk.t("Cancel"))))}i(us,"CancelButton");import{i18n as ak}from"@lingui/core";import{Image as sk,Tooltip as lk,WalletIcon as ck}from"@rango-dev/ui";import vo from"react";function ms(t){let{list:e}=ht(),o=e.filter(r=>r.state==="connected"),n=o.length?vo.createElement("div",{className:Lp()},o.map(r=>vo.createElement(Ar,{key:r.title},vo.createElement(sk,{src:r.image,size:14})))):ak.t("Connect Wallet");return vo.createElement(lk,{container:t.container,side:"bottom",content:n},vo.createElement(Et,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&vo.createElement(Ap,null),vo.createElement(ck,{size:18,color:"black"})))}i(ms,"WalletButton");import{i18n as Xr}from"@lingui/core";import{NotificationsIcon as xk,Popover as Ek,SettingsIcon as Ik,Tooltip as Yr,TransactionIcon as Ak}from"@rango-dev/ui";import We from"react";import{Notifications as dk}from"@rango-dev/ui";import fk from"react";import{useNavigate as gk}from"react-router-dom";import{create as pk}from"zustand";import{persist as uk,subscribeWithSelector as mk}from"zustand/middleware";var we=zo(pk()(uk(mk((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 ds(){let t=gk(),{getNotifications:e,clearNotifications:o}=we(),n=e(),r=y().blockchains(),{findToken:a}=y();return fk.createElement(dk,{list:n,getBlockchainImage:l=>xc(l,r),getTokenImage:l=>a(l)?.image,onClickItem:i(l=>{t(`${F.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(ds,"NotificationContent");import{useManager as hk}from"@rango-dev/queue-manager-react";import{InProgressIcon as yk}from"@rango-dev/ui";import Yu from"react";var Sk=i(()=>{let{manager:t}=hk();return ft(t).map(({swap:o})=>o).find(o=>o.status==="running")?Yu.createElement(Bp,null,Yu.createElement(yk,{color:"info",size:6})):null},"InProgressTransactionBadge"),Zu=Sk;import{EventSeverity as Ck}from"@rango-dev/queue-manager-rango-preset";import{Typography as kk}from"@rango-dev/ui";import Ju from"react";function Ru(){let{getNotifications:t}=we(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Ck.WARNING);return o?Ju.createElement(Np,{isSever:n},Ju.createElement(kk,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Ru,"NotificationsBadge");import{RefreshProgressButton as Tk}from"@rango-dev/ui";import fs,{useEffect as vk,useState as em}from"react";var wk=1e3,tm=60,bk=100;function jr({onClick:t}){let[e,o]=em(0),[n,r]=em(!1),a=i(c=>{document.hidden&&c&&s(c)},"handleVisibilityChange");vk(()=>{let c;return t?c=window.setInterval(()=>{o(p=>p+1),e===tm&&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 fs.createElement(Et,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},fs.createElement(Wp,{onTransitionEnd:()=>r(!1),isRefetched:n},fs.createElement(Tk,{size:22,color:t?"black":"gray",progress:e/tm*bk})))}i(jr,"RefreshButton");function wo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ye("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Yr,{container:a||N(),side:"top",content:Xr.t("Refresh")},We.createElement(jr,{onClick:e})),!l&&We.createElement(Ek,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:We.createElement(ds,null)},We.createElement("div",null,We.createElement(Yr,{container:N(),side:"top",content:Xr.t("Notifications")},We.createElement(Et,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},We.createElement(xk,{size:18,color:"black"}),We.createElement(Ru,null))))),!r.includes("settings")&&We.createElement(Yr,{container:N(),side:"top",content:Xr.t("Settings")},We.createElement(Et,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},We.createElement(Ik,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Yr,{container:N(),side:"top",content:Xr.t("History")},We.createElement(Et,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},We.createElement(Ak,{size:18,color:"black"}),We.createElement(Zu,null))))}i(wo,"HeaderButtons");import{i18n as gs}from"@lingui/core";import{Divider as nm,MessageBox as Bk,RefreshIcon as Lk}from"@rango-dev/ui";import Zo from"react";import{Button as Nk,styled as Wk}from"@rango-dev/ui";var om=Wk(Nk,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function hs(t){let{open:e,onClose:o}=t;return Zo.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Zo.createElement(Bk,{title:gs.t("Something went wrong"),type:"error",description:gs.t("Something went wrong. Please refresh the app.")},Zo.createElement(nm,{size:30}),Zo.createElement(om,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Zo.createElement(Lk,{size:20,color:"primary"}),Zo.createElement(nm,{size:4,direction:"horizontal"}),gs.t("Refresh"))))}i(hs,"RefreshModal");function ys(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(ys,"onScrollContentAttachStatusToContainer");import{css as Mk,styled as Zr}from"@rango-dev/ui";var rm="700px",Jr=Mk({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),im=Zr("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:rm},fixed:{height:rm}},showBanner:{true:{overflow:"visible"}}}}),am=Zr("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),sm=Zr("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"}}}),lm=Zr("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)"});function oe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ja(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:c,config:{__UNSTABLE_OR_INTERNAL__:p}}=y(),[u,m]=Fk(!1),{config:{features:h,theme:d}}=y(),{watermark:f}=ne(),g=f==="FULL",{activeTheme:k}=Yo(d||{}),C=Ye("connectWalletButton",h),{isActiveTab:S,tabManagerInitiated:T,showActivateTabModal:w,setShowActivateTabModal:E,activateCurrentTab:W}=ne(),A=Oe(),{manager:x}=Pk(),v=ft(x).map(({swap:B})=>B).some(B=>B.status==="running"),I=i(()=>W(fo.forceClaim,v),"onActivateTab"),M=i(()=>{r.onWallet?.()},"onConnectWallet"),$=typeof r.hasBackButton>"u"||r.hasBackButton,q=pm(null),Z=pm(null),j=$k(()=>{let B=(p?.swapBoxBanner?.routes?.length??0)===0,X=!!p?.swapBoxBanner?.routes?.some(ae=>location.pathname.endsWith(ae));return p?.swapBoxBanner&&(B||X)},[p?.swapBoxBanner?.routes?.length,location.pathname]);return Ss(()=>(Vr()&&Z.current&&e(Z.current),()=>{o()}),[]),Ss(()=>(q.current?.addEventListener("scroll",ys),()=>{q.current?.removeEventListener("scroll",ys)}),[]),Ss(()=>{m(l==="failed")},[l]),be.createElement(im,{height:s,id:$e.SWAP_BOX_ID,className:`${k()} ${Jr()}`,ref:Z,showBanner:j},be.createElement(Dk,{prefix:$?be.createElement(cs,{onClick:()=>{A(),r.onBack?.()}}):null,title:r.title,suffix:be.createElement(be.Fragment,null,r.suffix,r.onWallet&&!C&&be.createElement(ms,{container:N(),onClick:M,isConnected:!!c?.length}),r.onCancel&&be.createElement(us,{onClick:r.onCancel}))}),be.createElement(am,{ref:q},n),be.createElement(ls,{open:w,onClose:()=>E(!1),onConfirm:I}),be.createElement(sm,null,be.createElement("div",{className:"footer__content"},T&&!S&&be.createElement("div",{className:"footer__alert"},be.createElement(as,{onActivateTab:I}),be.createElement(cm,{size:10})),a),be.createElement(cm,{size:12}),be.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},be.createElement(_k,null))),j&&be.createElement(lm,null,p?.swapBoxBanner?.element),be.createElement(hs,{open:u,onClose:()=>m(!1)}))}i(oe,"Layout");import{styled as Ok}from"@rango-dev/ui";var um="$20 $20 $10 $20",An=Ok("div",{padding:um,overflowY:"auto",flexGrow:1});import{styled as Uk}from"@rango-dev/ui";var re=Uk("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 Zt}from"@lingui/core";import{useState as Cs}from"react";function mm(){let[t,e]=Cs(!1),[o,n]=Cs(null),[r,a]=Cs(null),{findToken:s}=y(),l=y().customTokens(),c=i(()=>{a(null),e(!1),n(null)},"resetState");function p(m,h){switch(m){case"duplicated":return{type:m,title:Zt.t("Duplicate Token"),message:Zt.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:Zt.t("Token Already Exists"),message:Zt.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:Zt.t("Token Not Found"),message:Zt.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:Zt.t("Network error"),message:Zt.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:m,tokenAddress:h})=>{e(!0);try{if(l.some(C=>C.address?.toLowerCase()===h.toLowerCase())){let C=p("duplicated");n(C);return}let f=await mt().getCustomToken({blockchain:m,address:h});if(!f||!f.token||f.error){let C=p("not-found",m);n(C);return}let g=f.token;if(s({blockchain:g.blockchain,address:g.address,symbol:g.symbol})){let C=p("token-exist");n(C);return}return a({...g,warning:!0})}catch(d){if(d.code==="ERR_BAD_REQUEST"){let f=p("not-found",m);n(f);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:c}}i(mm,"useFetchCustomToken");var Zk=Gk("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Hk} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function dm(){let t=Xk(),[e]=Yk(),o=Oe(),n=y().blockchains(),r=e.get("blockchain")||"",a=co(r,n),[s,l]=jk(""),{fetchCustomToken:c,token:p,loading:u,error:m,resetState:h}=mm(),d=!!a&&_o(a,s),f=!a||!s||!d,g=i(()=>{a&&c({blockchain:r,tokenAddress:s})},"getCustomToken");return Ue.createElement(oe,{header:{title:Jo.t("Add Custom Token")}},Ue.createElement(re,null,Ue.createElement(Zk,null,Ue.createElement("div",null,Ue.createElement(Ka,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:Jo.t("Select chain"),placeholder:Jo.t("Select chain")}),Ue.createElement(ks,{size:"24"}),Ue.createElement(Kk,{size:"large",variant:"label"},Jo.t("Enter Address")),Ue.createElement(ks,{size:10}),Ue.createElement(Vk,{fullWidth:!0,disabled:!a,variant:"contained",placeholder:Jo.t("Enter token address"),size:"large",value:s,suffix:!!s&&d&&Ue.createElement(qk,{color:"success",size:12}),onChange:k=>l(k.target.value)}),!d&&!!s&&Ue.createElement(Ue.Fragment,null,Ue.createElement(ks,{size:4}),Ue.createElement(zk,{type:"error",variant:"alarm",title:"Invalid Address"}))),Ue.createElement(Qk,{id:"widget-add-custom-token-import-btn",disabled:f,type:"primary",variant:"contained",loading:u,size:"large",onClick:g},Jo.t("Import"))),Ue.createElement(In,{token:p,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(dm,"AddCustomTokenPage");import{i18n as Ys}from"@lingui/core";import{useManager as Pv}from"@rango-dev/queue-manager-react";import{Alert as _v,Button as Dv,css as Js,Divider as Zs,IconButton as lf,styled as $v,Typography as Fv,WalletIcon as Ov}from"@rango-dev/ui";import Le,{useEffect as Ei,useLayoutEffect as Uv,useRef as zv,useState as zn}from"react";import{useNavigate as Qv}from"react-router-dom";import{i18n as bo}from"@lingui/core";import{Alert as vT,BalanceErrors as wT,Button as zm,ChevronLeftIcon as bT,Divider as As,MessageBox as xT,Typography as Ns}from"@rango-dev/ui";import te,{useCallback as ET,useEffect as Qm,useMemo as IT,useState as tn}from"react";import{useNavigate as AT}from"react-router-dom";import{i18n as bs}from"@lingui/core";import{Alert as oT,ChevronDownIcon as nT,CloseIcon as rT,Divider as km,IconButton as Tm,PasteIcon as iT,Typography as aT,WalletIcon as sT}from"@rango-dev/ui";import Be,{useEffect as lT,useRef as cT}from"react";import oi,{useRef as eT}from"react";import*as Ro from"@radix-ui/react-collapsible";import{keyframes as fm,styled as Rr}from"@rango-dev/ui";var Ts=300,Jk=fm({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Rk=fm({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),gm=Rr(Ro.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),vs=Rr(Ro.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),ei=Rr(Ro.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Jk} ${Ts}ms ease-out`},false:{animation:`${Rk} ${Ts}ms ease-out`}}}}),ti=Rr("div",{transition:`all ${Ts}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ni(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,c=eT(null);return oi.createElement(gm,{ref:c,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&oi.createElement(vs,{className:"collapsible_trigger",onClick:a},s),oi.createElement(ei,{className:"collapsible_content",open:e},r),l==="bottom"&&oi.createElement(vs,{className:"collapsible_trigger",onClick:a},s))}i(ni,"CustomCollapsible");import{darkTheme as hm,styled as ws,TextField as tT}from"@rango-dev/ui";var ym=ws("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Sm=ws(tT,{backgroundColor:"$neutral100",padding:"$15"}),Cm=ws("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${hm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${hm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function vm(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=y(),l=y().blockchains(),c=mr(e.name,l),p=cT(null),u=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),d=n&&!!r&&e&&!_o(e,r),f=i(()=>{a("")},"handleClear"),g=i(async C=>{if(C.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),p?.current?.focus()}},"handlePaste"),k=i(()=>r?Be.createElement(Tm,{id:"widget-custom-destination-close-icon-btn",onClick:f,variant:"ghost"},Be.createElement(rT,{size:12,color:"gray"})):m?null:Be.createElement(Tm,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Be.createElement(iT,{size:16})),"renderSuffix");return lT(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Be.createElement(ym,null,Be.createElement(ni,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Be.createElement(Cm,null,Be.createElement("div",{className:"button__content"},Be.createElement(sT,{size:18,color:"info"}),Be.createElement(km,{size:4,direction:"horizontal"}),Be.createElement(aT,{variant:"label",size:"medium",color:n?"$neutral600":void 0},bs.t("Send to a different address"))),Be.createElement(ti,{orientation:n?"up":"down"},Be.createElement(nT,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Be.createElement(Sm,{ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:bs.t("Enter {blockchainName} address",{blockchainName:c}),value:r||"",suffix:k(),onChange:C=>{let S=C.target.value;a(S)}})),d&&Be.createElement(Be.Fragment,null,Be.createElement(km,{size:4}),Be.createElement(oT,{variant:"alarm",type:"error",title:bs.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(vm,"CustomDestination");import{css as pT,darkTheme as xs,IconButton as uT,styled as _t}from"@rango-dev/ui";var wm=_t("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),bm=_t("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),mT=_t("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${xs} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${xs} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${xs} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),xm=_t(mT,{alignSelf:"stretch",minHeight:"93px"}),Em=_t("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Im=_t(uT,{position:"absolute",left:"$20"}),Am=_t("div",{paddingTop:"$20"}),Nm=pT({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Wm=_t("div",{display:"flex"}),Bm=_t("div",{overflow:"visible",width:"100%"});import{i18n as $m}from"@lingui/core";import{warn as yT}from"@rango-dev/logging-core";import{Divider as ST,SelectableWallet as CT,Typography as Fm,WalletState as Om}from"@rango-dev/ui";import Je,{useEffect as Um,useState as Wn}from"react";import{Image as gT,MessageBox as hT}from"@rango-dev/ui";import Nn from"react";import{keyframes as dT,styled as Es}from"@rango-dev/ui";var Lm=Es("div",{position:"relative"}),fT=dT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Mm=Es("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${fT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Pm=Es("div",{"& img":{borderRadius:"50%"}});import{i18n as en}from"@lingui/core";function _m(t,e){switch(t){case"in-progress":return{type:"loading",title:en.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:en.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:en.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:en.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:en.t("Request Rejected"),description:en.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(_m,"generateMessageByStatus");function Dm(t){let{status:e,displayName:o,image:n}=t,r=_m(e,o),a=e=="in-progress";return Nn.createElement(hT,{type:r.type,title:r.title,description:r.description,icon:a?Nn.createElement(Lm,null,Nn.createElement(Pm,null,Nn.createElement(gT,{src:n,size:45})),Nn.createElement(Mm,null)):void 0})}i(Dm,"ExperimentalChainStatus");var kT=7,TT=3e3;function Is(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=ne.use.isActiveTab(),{blockchains:l,connectedWallets:c}=y(),[p,u]=Wn(),[m,h]=Wn(null),[d,f]=Wn(!1),[g,k]=Wn(null),{suggestAndConnect:C}=ri(),{handleDisconnect:S}=Vt(),{list:T}=ht({chain:e}),[w,E]=Wn(T),W=T.length,A=r&&W-r>0,x=i(async v=>{f(!1),k("in-progress");try{await C(v.walletType,v.chain),k("completed")}catch{k("rejected")}},"addExperimentalChain");Um(()=>{E(v=>{let I=T.findIndex(M=>o(M.type,e));return A&&I>1?[T[I]].concat(T.filter((M,$)=>$!==I)):v.map(M=>T.find($=>$.type===M.type)??M)})},[JSON.stringify(T)]);let b=document.getElementById($e.SWAP_BOX_ID);return Um(()=>{let v=null;return(g==="completed"||g==="rejected")&&(v=setTimeout(()=>k(null),TT)),()=>{v&&clearTimeout(v)}},[g]),Je.createElement(Je.Fragment,null,w.slice(0,r).map(v=>{let I=Yc({connectedWallets:c,walletType:v.type,chain:e}),M=I?xr(I,kT):"",$=wr(l(),e),q=!c.find(ae=>ae.walletType===v.type&&ae.chain===e),Z=$&&q&&v.state===Om.CONNECTED,j=Z?$m.t({id:"Add {chain} chain",values:{chain:e}}):M,B=i(async()=>{let ae=v.state===Om.DISCONNECTED,K=(v.isHub||!!v.needsNamespace)&&!M;ae?u(v):K?(await S(v.type),u(v)):Z?(h({walletType:v.type,chain:e,address:I??""}),f(!0)):n({walletType:v.type,chain:e,address:I??""})},"onSelectableWalletClick"),X=m?.chain?mr(m.chain,l()):void 0;return Je.createElement(Je.Fragment,{key:`${v.title}_${X}`},!!m&&Je.createElement(R,{open:!!m&&d,container:b,onClose:()=>{h(null)}},Je.createElement(Ma,{displayName:X,onConfirm:()=>{x(m)}})),g&&Je.createElement(R,{open:!!g,onClose:k.bind(null,null),container:b},Je.createElement(Dm,{status:g,displayName:X,image:v.image}),Je.createElement(ST,{direction:"vertical",size:32})),Je.createElement(CT,{key:v.type,description:j,onClick:B,selected:o(v.type,e),disabled:!s,...v}))}),Je.createElement(So,{wallet:p,onClose:()=>{u(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):yT(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&Je.createElement(xm,{selected:!1,onClick:a},Je.createElement(Fm,{variant:"label",size:"medium"},$m.t("Show more wallets"),Je.createElement(Fm,{variant:"label",size:"medium",color:"$primary"},"\xA0+",W-(r??0)))))}i(Is,"WalletList");var NT=2;function Hm(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=AT(),l=y().blockchains(),{selectedQuote:c,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:h,setCustomDestination:d}=O(),{config:f,connectedWallets:g,setWalletsAsSelected:k}=y(),[C,S]=tn(""),[T,w]=tn([]),[E,W]=tn(""),[A,x]=tn(!!h),b=IT(()=>mo({filter:"all",quote:c}),[c]),v=mo({filter:"required",quote:c}),I=l.find(_=>_.name===c?.swaps[c?.swaps.length-1].to.blockchain),M=i(_=>v.includes(_),"isWalletRequiredFor"),$=ET(()=>g.filter(_=>_.selected&&b.includes(_.chain)),[g,b]),[q,Z]=tn($()),[j,B]=tn([]),X=i((_,H)=>B(V=>V.concat({blockchain:_,walletType:H})),"addNextSelectedWallets"),ae=T.length>0,K=i((_,H)=>!!q.find(V=>V.walletType===_&&V.chain===H&&V.selected&&(M(H)||!M(H)&&!h)),"isSelected"),fe=i((_,H,V)=>{let ge=!1;return _.map(le=>{if(le.chain===H){let _e=le.selected;return!ge&&V?(ge=!0,_e=!0):V||(_e=!1),{...le,selected:_e}}return le})},"updateSelectableWallets"),Ie=i(_=>{x(_),_?M(I?.name??"")||Z(H=>fe(H,I?.name||"",!1)):(d(""),Z(H=>fe(H,I?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),je=i(_=>{if(C&&S(""),K(_.walletType,_.chain))return;let V=g.find(ge=>ge.walletType===_.walletType&&ge.chain===_.chain);V&&(n(),_.chain===I?.name&&A&&!M(I.name)&&(x(!1),d(null)),Z(ge=>ge.filter(le=>le.chain!==_.chain).concat({...V,selected:!0})))},"onChange"),se=i(()=>{let _=q.filter(H=>H.selected);k(_),p(_),m(!0),o()},"onConfirmBalance"),ct=i(async()=>{w([]),W("");let _=await r?.({selectedWallets:q.filter(V=>V.selected),customDestination:h}),H=_.warnings;H?.balance?.messages&&w(H.balance.messages),_.error&&W(Zp(_.error)),!_.error&&!H?.balance?.messages.length?se():w(H?.balance?.messages??[])},"onConfirmWallets");Qm(()=>{Z(_=>{let H=[];return _.forEach(V=>{!g.some(le=>le.chain===V.chain&&le.walletType===V.walletType&&le.address===V.address)||H.push(V)}),H=H.concat(g.filter(V=>!!!H.find(le=>le.chain===V.chain)&&V.selected&&b.includes(V.chain))),H})},[g,b]),Qm(()=>{let _=[];j.length>0&&(j.forEach(H=>{let V=g.find(ge=>ge.chain===H.blockchain&&ge.walletType===H.walletType);V?je(V):_.push(H)}),B(_))},[g,j]);let G=document.getElementById($e.SWAP_BOX_ID);return te.createElement(R,{open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!C,container:G,...!C&&{styles:{container:{height:"100%"}},footer:te.createElement(Wm,null,te.createElement(zm,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Eu(a,A,h,c,q,I),onClick:ct,variant:"contained",type:"primary",fullWidth:!0,size:"large"},bo.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:te.createElement(Em,null,te.createElement(Im,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},te.createElement(bT,{size:16})),te.createElement(Ns,{variant:"headline",size:"small"},bo.t({id:"Your {blockchainName} wallets",values:{blockchainName:pt(C,l)}})))},anchor:"center"},te.createElement(R,{open:ae,onClose:w.bind(null,[]),container:G},te.createElement(xT,{title:bo.t("Insufficient account balance"),type:"error",description:te.createElement(wT,{messages:T??[]})},te.createElement(zm,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:se},bo.t("Proceed anyway")))),C&&te.createElement(Am,null,te.createElement("div",{className:Nm()},te.createElement(Is,{chain:C,isSelected:K,selectWallet:je,onShowMore:()=>S(C),onConnect:_=>{X(C,_)}}))),!C&&te.createElement(te.Fragment,null,E&&te.createElement(te.Fragment,null,te.createElement(vT,{variant:"alarm",type:"error",title:bo.t(E)}),te.createElement(As,{size:12})),te.createElement(Bm,null,b.map((_,H)=>{let V=l.find(Xe=>Xe.name===_),ge=`wallet-${H}`,le=H===b.length-1,_e=le&&I&&f?.customDestination!==!1;return te.createElement("div",{key:ge},te.createElement(wm,null,te.createElement(Ns,{variant:"title",size:"xmedium"},bo.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),te.createElement(Ns,{variant:"label",color:"$neutral700",size:"medium"},bo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),te.createElement(As,{size:24}),te.createElement(bm,null,te.createElement(Is,{chain:_,isSelected:K,selectWallet:je,limit:NT,onShowMore:()=>S(V?.name??""),onConnect:Xe=>{X(_,Xe)}})),!le&&te.createElement(As,{size:32}),_e&&te.createElement(vm,{blockchain:I,open:A,handleOpenChange:Ie}))}))))}i(Hm,"ConfirmWalletsModal");import{i18n as jT}from"@lingui/core";import{Alert as XT,Button as YT,InfoIcon as ZT}from"@rango-dev/ui";import nt from"react";import{Alert as LT,Button as MT,Divider as Ls,NoRouteIcon as PT,RefreshIcon as _T,Typography as Ym}from"@rango-dev/ui";import ot from"react";import{i18n as qm}from"@lingui/core";var WT=24,BT=60;function Gm(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:qm.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:qm.t("Reset")}},description:ee().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ee().noResultError.description}}i(Gm,"makeInfo");var Ws=(o=>(o[o.small=WT]="small",o[o.large=BT]="large",o))(Ws||{}),Bs=(o=>(o.small="small",o.large="medium",o))(Bs||{});import{styled as ii}from"@rango-dev/ui";var Vm=ii("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Km=ii("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),jm=ii("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Xm=ii("div",{padding:"$6 $0"});function Bn(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Gm(o,r,()=>a(s,!0),e);return ot.createElement(Vm,null,ot.createElement(PT,{size:Ws[n],color:"gray"}),ot.createElement(Ls,{size:4}),ot.createElement(Ym,{variant:"title",size:Bs[n]},ee().noResultError.title),n==="large"&&ot.createElement(Ls,{size:4}),!!l.description&&ot.createElement(Km,{size:n},ot.createElement(Ym,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),ot.createElement(Ls,{size:n==="large"?"24":"4"}),!!l.alert&&ot.createElement(jm,{size:n},ot.createElement(LT,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&ot.createElement(MT,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:ot.createElement(Xm,null,ot.createElement(_T,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Bn,"NoResult");import{i18n as Ln}from"@lingui/core";import{Button as $T,Divider as FT,MessageBox as OT,Typography as UT,WarningIcon as zT}from"@rango-dev/ui";import Dt from"react";import{Typography as ed}from"@rango-dev/ui";import Ps from"react";import{darkTheme as DT,styled as ai}from"@rango-dev/ui";var Zm=ai("div",{width:"100%"}),Ms=ai("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Jm=ai("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${DT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rm=ai("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function td(t){let{title:e,value:o,valueColor:n}=t;return Ps.createElement(Jm,null,Ps.createElement(ed,{size:"medium",variant:"label",className:"_title"},e),Ps.createElement(ed,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(td,"QuoteErrorsModalItem");function od(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Ln.t("Swapping"),value:P(r.inputUsdValue,4,4)},{title:Ln.t("Gas cost"),value:P(r.totalFee,2,2)},{title:Ln.t("Receiving"),value:P(r.outputUsdValue,4,4)},{title:Ln.t("Price impact"),value:P(r.priceImpact,2,2),valueColor:`${s}500`}];return Dt.createElement(R,{footer:Dt.createElement($T,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Dt.createElement(zT,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Dt.createElement(OT,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),Dt.createElement(Ms,null,Dt.createElement(FT,{size:"4"}),Dt.createElement(UT,{size:"small",variant:"title"},Ln.t("Details")),Dt.createElement(Ms,null,l.map((c,p)=>Dt.createElement(td,{key:p,...c})))))}i(od,"HighValueLossWarningModal");import{i18n as si}from"@lingui/core";function nd(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=si.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:{Pt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ee().highValueLossError.title;break}case 4:{o.title=si.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ee().unknownPriceError.title;break}case 2:{o.title=si.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=si.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(nd,"makeAlerts");import{i18n as on}from"@lingui/core";import{Button as rd,Divider as id,MessageBox as QT,Typography as HT}from"@rango-dev/ui";import xo from"react";import{useNavigate as qT}from"react-router-dom";function ad(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,c=qT(),p=e??o;return xo.createElement(R,{anchor:"bottom",open:n,prefix:xo.createElement(rd,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>c("../"+F.settings)},xo.createElement(HT,{variant:"label",size:"medium",color:"$neutral900"},on.t("Change settings"))),container:N(),onClose:r},xo.createElement(QT,{type:"warning",title:s.type===3?on.t("High slippage"):on.t("Low slippage"),description:s.type===3?on.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):on.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},xo.createElement(id,{size:18}),xo.createElement(id,{size:32}),xo.createElement(rd,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},on.t("Confirm anyway"))))}i(ad,"SlippageWarningModal");import{Button as GT,MessageBox as VT,WarningIcon as KT}from"@rango-dev/ui";import li from"react";function sd(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return li.createElement(R,{footer:li.createElement(GT,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:li.createElement(KT,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},li.createElement(VT,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(sd,"UnknownPriceWarningModal");function Mn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:c,onConfirmWarningModal:p,onChangeSettings:u}=t,m={confirmationDisabled:a,open:r,onClose:c,onConfirm:p},h=o?.type===0||o?.type===1,d=nd(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),nt.createElement(nt.Fragment,null,h&&nt.createElement(Bn,{error:o,fetch:s}),!!d&&nt.createElement(Zm,null,nt.createElement(XT,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:nt.createElement(Rm,{onClick:l},nt.createElement(ZT,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:nt.createElement(YT,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:u},jT.t("Change"))}})),e&&nt.createElement(nt.Fragment,null,e.type===0&&nt.createElement(od,{...m,warning:e}),(e.type===3||e.type===2)&&nt.createElement(ad,{...m,warning:e}),e.type===1&&nt.createElement(sd,{...m,warning:e})))}i(Mn,"QuoteWarningsAndErrors");import Av from"bignumber.js";import vi from"react";import{i18n as Eo}from"@lingui/core";import{Alert as gv,Divider as rn,FullExpandedQuote as hv,InfoIcon as yv,NumericTooltip as Od,QuoteTag as Sv,StepDetails as Cv,TokenAmount as kv,Typography as an}from"@rango-dev/ui";import Hs from"bignumber.js";import U,{useRef as Tv,useState as vv}from"react";import{styled as _s}from"@rango-dev/ui";var Ds=_s("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),ld=_s("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),cd=_s("div",{width:"100%",display:"flex"});import*as ci from"@radix-ui/react-collapsible";import{Button as JT,css as Pn,darkTheme as xe,Image as pd,styled as He,Typography as RT}from"@rango-dev/ui";var ev=300,ud=He(ci.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),md=Pn({padding:"$10 $15"}),dd=He(JT,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${xe} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${xe} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${xe} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),fd=He("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",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${xe} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}}}}]}),gd=Pn({width:"100%",padding:"$15 $15 $10 $15"}),hd=Pn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),nn=Pn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),yd=Pn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${xe} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Sd=He(ci.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:{[`& ${pd}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${pd}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Cd=He("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"}}}}),kd=He(ei,{width:"100%",background:"inherit"}),$s=He("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${ev}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),G1=He("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Td=He("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${xe} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),vd=He("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Fs=He(RT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),wd=He("div",{display:"flex",flexWrap:"wrap"}),Os=He("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"}}}}),bd=He("div",{display:"flex"}),pi=He("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${xe} &`]:{borderTopColor:"$neutral800"}});import{i18n as It}from"@lingui/core";import{ChevronDownIcon as ov,CloseIcon as nv,Divider as di,IconButton as rv,NumericTooltip as iv,QuoteCost as av,Typography as Ct}from"@rango-dev/ui";import J,{useState as Ad}from"react";import{css as tv,styled as ui}from"@rango-dev/ui";var mi=ui("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Us=ui("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),xd=ui("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Ed=ui("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Id=tv({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var sv=i(t=>t.fee.isZero()?null:J.createElement(mi,null,J.createElement(Ct,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(Ct,{variant:"label",size:"medium"},"$",P(t.fee,4,4))),"NonPayableFee");function zs(t){let[e,o]=Ad(!1),[n,r]=Ad(!1),{steps:a,quote:s,fee:l,time:c,feeWarning:p,timeWarning:u,showModalFee:m,fullExpandedMode:h=!1}=t,d=s?.swaps??[],f=h?uo():N(),g=Su(d);return J.createElement(J.Fragment,null,J.createElement(av,{onClickFee:m?k=>{k.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:p,timeWarning:u,time:c,steps:a,tooltipGas:m?It.t("View more info"):void 0,tooltipContainer:f}),J.createElement(R,{container:f,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:J.createElement(Ed,{style:{textAlign:h?"left":"center"}},J.createElement(Ct,{variant:"title",size:"medium"},It.t("Gas & Fee Explanation")),J.createElement(rv,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},J.createElement(nv,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(xd,null,J.createElement(Ct,{variant:"title",size:"small"},It.t("Details")),J.createElement(di,{size:10}),Object.entries(g.payable).flatMap(([k,C])=>C.map((S,T)=>{let w=`payable-fee-${T}`,E=Ua(S);return J.createElement(mi,{key:w},J.createElement(Ct,{variant:"label",size:"medium",color:"neutral600"},_a(k,It.t)),J.createElement(iv,{content:S.amount,container:f},J.createElement(Ct,{variant:"label",size:"medium"},P(S.amount,2,2)," ",S.asset.symbol," ($",P(E,4,4),")")))})),J.createElement(mi,{className:"total_payable_fee"},J.createElement(Ct,{variant:"label",size:"medium"},It.t("Total Payable Fee")),J.createElement(Ct,{variant:"label",size:"medium"},"$",P(l,4,4))),J.createElement(Us,null),Object.keys(g.nonePayable).length&&J.createElement(ni,{triggerAnchor:"bottom",onClickTrigger:()=>r(k=>!k),trigger:J.createElement("div",{className:Id()},J.createElement(Ct,{size:"small",variant:"body",color:"neutral700"},n?It.t("Hide non-payable fees"):It.t("Show non-payable fees")),J.createElement(di,{size:4,direction:"horizontal"}),J.createElement(ti,{orientation:n?"up":"down"},J.createElement(ov,{size:12,color:"gray"}))),open:n},J.createElement(Ct,{size:"small",variant:"title"},It.t("Description")),J.createElement(di,{size:4}),J.createElement(Ct,{size:"small",variant:"body",color:"neutral700"},It.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),J.createElement(di,{size:10}),Object.entries(g.nonePayable).map(([k,C],S)=>{let T=yu(C),w=_a(k,It.t),E=`non-payable-fee-${S}`;return J.createElement(sv,{key:E,fee:T,label:w})}),J.createElement(Us,null)))))}i(zs,"QuoteCostDetails");import{i18n as Bd}from"@lingui/core";import{TokenAmount as Ld}from"@rango-dev/ui";import fi from"react";import{css as lv,styled as cv}from"@rango-dev/ui";var Nd=cv("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Wd=lv({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function _n(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return fi.createElement(Nd,null,fi.createElement(Ld,{direction:"horizontal",label:Bd.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:Wd()}),fi.createElement(Ld,{direction:"horizontal",tooltipContainer:N(),label:Bd.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(_n,"QuoteSummary");import{i18n as $d}from"@lingui/core";import{ChevronDownIcon as mv,ChevronRightIcon as dv,Divider as Qs,Image as fv,Tooltip as Ci,Typography as hi}from"@rango-dev/ui";import z from"react";import{useLayoutEffect as pv,useState as Dn}from"react";var Md=480,Pd=768,_d=1024,Dd=1200,uv=i(()=>{let[t,e]=Dn(!1),[o,n]=Dn(!1),[r,a]=Dn(!1),[s,l]=Dn(!1),[c,p]=Dn(!1),u=i(()=>{e(window.innerWidth<=Md),n(window.innerWidth>Md&&window.innerWidth<=Pd),a(window.innerWidth>Pd&&window.innerWidth<=_d),l(window.innerWidth>_d&&window.innerWidth<=Dd),p(window.innerWidth>Dd)},"handleResize");return pv(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:c}},"useScreenDetect"),gi=uv;var yi=4,Si=6,$n=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||N();return z.createElement(Ci,{container:l,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(Cd,{className:n,state:a},z.createElement(fv,{src:o,size:16})))},"ImageComponent");function Fd(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,c=l||N(),p=r.length,u=su(r),{isTablet:m,isMobile:h}=gi();return z.createElement(Sd,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(f=>!f)}},z.createElement("div",{className:nn()},z.createElement(hi,{variant:"body",size:"xsmall"},$d.t("Via:")),z.createElement(Qs,{direction:"horizontal",size:4}),r.map((d,f)=>{let g=`item-${f}`,k=z.createElement($s,null,z.createElement(dv,{size:12,color:"black"}));return h||m?z.createElement(z.Fragment,{key:g},z.createElement($n,{content:d.swapper.displayName,src:d.swapper.image??"",state:d.state,container:l}),f!==p-1&&z.createElement(z.Fragment,null,k)):z.createElement(z.Fragment,{key:g},p<=yi||p>yi&&f<yi-1?z.createElement(z.Fragment,null,z.createElement($n,{content:d.swapper.displayName,src:d.swapper.image??"",state:d.state,container:l}),f!==p-1&&z.createElement(z.Fragment,null,k)):f===yi-1&&z.createElement(Ci,{container:c,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:nn()},k,r.map((C,S)=>{let T=`image-${S}`;return S>=f&&z.createElement(z.Fragment,{key:T},z.createElement($n,{content:C.swapper.displayName,src:C.swapper.image??"",state:C.state,open:!1}),S!==p-1&&z.createElement(z.Fragment,null,k))}))},z.createElement(Os,{state:r.find((C,S)=>S>=f&&(C.state==="error"||C.state==="warning"))?.state},z.createElement(hi,{size:"xsmall",variant:"body"},"+",p-f))))})),z.createElement("div",{className:nn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:nn()},z.createElement(hi,{variant:"body",size:"xsmall"},$d.t("Chains:")),z.createElement(Qs,{direction:"horizontal",size:4}),u.map((d,f)=>z.createElement(z.Fragment,{key:d.displayName},u.length<=Si||u.length>Si&&f<Si-1?z.createElement(Ci,{container:c,side:"bottom",content:d.displayName,sideOffset:4},z.createElement($n,{content:"",src:d.image??"",open:!1,className:f!==0?"blockchainImage":""})):f===Si-1&&z.createElement(Ci,{container:c,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:nn()},u.map((g,k)=>k>=f&&z.createElement($n,{key:g.displayName,content:"",src:g.image??"",open:!1,className:k>f?"blockchainImage":"",container:l})))},z.createElement(Os,{className:"blockchainImage"},z.createElement(hi,{size:"xsmall",variant:"body"},"+",u.length-f))))),z.createElement(Qs,{direction:"horizontal",size:32}))),z.createElement($s,{orientation:a?"up":"down"},z.createElement(mv,{size:12,color:"black"}))))}i(Fd,"QuoteTrigger");function qs(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:c=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:m=!1,container:h}=t,d=y().blockchains(),{findToken:f}=y(),g=y().swappers(),{customSlippage:k,slippage:C}=y(),S=k||C,[T,w]=vv(t.expanded),E=Tv(null),W=P(o.value,6,6),A=P(n.value,6,6),x=n.usdValue?P(n.usdValue,4,4):"",b=Mt(o.usdValue,n.usdValue??null),v=P(b,2,2),I=Pt(b??0),M=i((se,ct)=>se.map((G,_)=>{let H,V=r?.type===3&&r.swap.swapperId===G.swapperId,ge=r?.type===4&&r.recommendedSlippages?.has(_),le=a?.type===2&&a.recommendedSlippages?.has(_),_e=V||ge,Xe=le;_e?H="error":Xe&&(H="warning");let ke=_e?Eo.t("Slippage Error"):Eo.t("Slippage Warning");return V&&(ke=Eo.t("Bridge Limit Error")),{swapper:{displayName:un(G.swapperId,g)??"",image:G.swapperLogo},from:{token:{displayName:G.from.symbol,image:G.from.logo},chain:{displayName:pt(G.from.blockchain,d)??"",image:G.from.blockchainLogo},price:{value:_===0&&!ct?P(o.value,6,6):P(G.fromAmount,6,6),usdValue:P((G.from.usdPrice??0)*parseFloat(G.fromAmount),4,4),realValue:_===0?o.value:G.fromAmount,realUsdValue:new Hs(G.from.usdPrice??0).multipliedBy(G.fromAmount).toString()}},to:{token:{displayName:G.to.symbol,image:G.to.logo},chain:{displayName:pt(G.to.blockchain,d)||"",image:G.to.blockchainLogo},price:{value:P(G.toAmount,6,6),usdValue:P((G.to.usdPrice??0)*parseFloat(G.toAmount),4,4),realValue:G.toAmount,realUsdValue:new Hs(G.to.usdPrice??0).multipliedBy(G.toAmount).toString()}},state:H,alerts:_e||Xe?U.createElement(ld,{dense:m},U.createElement(gv,{variant:"alarm",type:_e?"error":"warning",title:ke,footer:U.createElement(cd,null,V&&U.createElement("div",null,U.createElement(an,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(rn,{direction:"vertical",size:2}),U.createElement(an,{size:"xsmall",variant:"body",color:"neutral900"},Eo.t({id:"Yours: {amount} {symbol}",values:{amount:P(G.fromAmount,6,6),symbol:G?.from.symbol}}))),(ge||le)&&!V&&U.createElement("div",null,U.createElement(an,{size:"xsmall",variant:"body",color:"neutral900"},Eo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(_)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(_)}}})),U.createElement(rn,{direction:"vertical",size:2}),U.createElement(an,{size:"xsmall",variant:"body",color:"neutral900"},Eo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:dn(G.estimatedTimeInSeconds),fee:P(Oa(G,f),2,2),internalSwaps:G.internalSwaps?M(G.internalSwaps):void 0}}),"getQuoteSteps"),$=M(e?.swaps??[]),q=$.length,Z=h||N(),j=cu(t.quote.tags||[]),B=!!u,X=kr(e?.swaps),ae=dn(X),K=Ur(e?.swaps??[],f),fe=P(K,2,2),Ie=K.gte(new Hs(Rp)),je=X/tu>=eu;return m?U.createElement(hv,{selected:l,fee:fe,time:ae,tooltipContainer:uo(),steps:$,tags:j,quoteCost:U.createElement(zs,{quote:e,fullExpandedMode:!0,time:ae,fee:fe,feeWarning:Ie,timeWarning:je,showModalFee:p,steps:q}),percentageChange:v,warningLevel:I,outputPrice:{value:A,usdValue:x,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(fd,{selected:l,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:gd()},!c&&j.length?U.createElement(U.Fragment,null,U.createElement(bd,null,j.map((se,ct)=>{let G=`${se.value}_${ct}`;return U.createElement(U.Fragment,{key:G},U.createElement(Sv,{label:se.label,value:se.value}),U.createElement(rn,{size:4,direction:"horizontal"}))})),U.createElement(pi,null),!B&&U.createElement(rn,{size:4})):null,U.createElement("div",{id:"portal-root",className:hd()},U.createElement(zs,{quote:e,time:ae,fee:fe,feeWarning:Ie,timeWarning:je,showModalFee:p,steps:q}),B&&U.createElement(dd,{onClick:se=>{se.stopPropagation(),u()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(an,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Eo.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:yd()},U.createElement(vd,null,U.createElement(yv,{size:12,color:"gray"})),U.createElement(wd,null,U.createElement(Fs,{size:"small",variant:"body"},`${W} ${$[0].from.token.displayName} = `),U.createElement(Od,{content:n.value,container:Z,open:n.value?void 0:!1},U.createElement(Fs,{size:"small",variant:"body"},"\xA0",`${A} ${$[$.length-1].to.token.displayName}`))),U.createElement(Od,{content:n.usdValue,container:Z},U.createElement(rn,{size:2,direction:"horizontal"}),U.createElement(an,{color:"$neutral600",size:"xsmall",variant:"body"},`($${x})`))),s==="list-item"&&U.createElement(kv,{tooltipContainer:Z,type:"output",direction:"vertical",price:{value:A,usdValue:x,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:$[q-1].to.token.displayName,image:$[q-1].to.token.image},chain:{image:$[q-1].to.chain.image},percentageChange:v,warningLevel:I}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(_n,{from:$[0].from,to:$[q-1].to,percentageChange:v,warningLevel:I}),U.createElement(rn,{size:4}))),U.createElement(ud,{selected:l,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},U.createElement(Fd,{type:s,quoteRef:E,selected:l,setExpanded:w,container:Z,expanded:T,steps:$}),U.createElement(kd,{open:T},U.createElement(Td,null),U.createElement("div",{className:md()},$.map((se,ct)=>{let G=`item-${ct}`;return U.createElement(Cv,{type:"quote-details",key:G,tooltipContainer:Z,step:se,hasSeparator:ct!==$.length-1,state:se.state})})))))}i(qs,"Quote");import{Divider as Ev,Skeleton as Iv}from"@rango-dev/ui";import Ft from"react";import{darkTheme as wv,styled as ki}from"@rango-dev/ui";var Ud=ki("div",{$$color:"$colors$neutral100",[`.${wv} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),zd=ki("div",{paddingTop:"$2"}),Qd=ki("div",{paddingLeft:"$8"}),Hd=ki("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Rd,Divider as kt,Skeleton as rt}from"@rango-dev/ui";import Q from"react";import{css as bv,styled as $t}from"@rango-dev/ui";var Gs=$t("div",{display:"flex"}),qd=$t("div",{padding:"$10 $0 $20"}),Gd=$t("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Vd=$t("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Kd=$t("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),jd=$t("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Xd=$t("div",{width:"65%",display:"flex",justifyContent:"start"}),Yd=$t("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Zd=$t("div",{padding:"$15 $0 $15 $0"}),Jd=bv({display:"flex",justifyContent:"space-between",alignItems:"center"});function Fn(t){let{type:e,tagHidden:o=!0}=t,n=Q.createElement(Kd,null,Q.createElement(Xd,null,Q.createElement(Rd,{loading:!0,size:"medium"}),Q.createElement(kt,{size:8,direction:"horizontal"}),Q.createElement(Yd,null,Q.createElement(rt,{height:10,width:60,variant:"rounded"}),Q.createElement(kt,{size:4}),Q.createElement(rt,{height:15,variant:"rounded"}))),Q.createElement(rt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return Q.createElement("div",null,!o&&Q.createElement(Q.Fragment,null,Q.createElement(Gs,null,Q.createElement(rt,{width:65,height:20,variant:"rounded"}),Q.createElement(kt,{size:4,direction:"horizontal"}),Q.createElement(rt,{width:65,height:20,variant:"rounded"}),Q.createElement(kt,{size:4,direction:"horizontal"}),Q.createElement(rt,{width:65,height:20,variant:"rounded"})),Q.createElement(pi,null),!r&&Q.createElement(kt,{size:4})),Q.createElement("div",{className:Jd()},Q.createElement(Gs,null,Q.createElement(rt,{width:60,height:10,variant:"rounded"}),Q.createElement(kt,{size:4,direction:"horizontal"}),Q.createElement(rt,{width:60,height:10,variant:"rounded"}),Q.createElement(kt,{size:4,direction:"horizontal"}),Q.createElement(rt,{width:60,height:10,variant:"rounded"})),r&&Q.createElement(rt,{width:85,height:24,variant:"rounded"})),e==="basic"&&Q.createElement(qd,null,Q.createElement(rt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&Q.createElement(Gd,null,Q.createElement(Vd,null,Q.createElement(Rd,{loading:!0,size:"medium"}),Q.createElement(kt,{direction:"horizontal",size:4}),Q.createElement(rt,{height:15,width:150,variant:"rounded"})),Q.createElement(kt,{size:10}),Q.createElement(rt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&Q.createElement(Q.Fragment,null,Q.createElement(kt,{size:4}),Q.createElement(Zd,null,n,Q.createElement(jd,null),n),Q.createElement(kt,{size:12})))}i(Fn,"QuoteSummarySkeleton");import{ChainToken as rf,Divider as Ks,NextIcon as xv,Skeleton as Ti}from"@rango-dev/ui";import Ee from"react";import{styled as On}from"@rango-dev/ui";var ef=On("div",{display:"flex",alignItems:"start"}),tf=On("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Vs=On("div",{display:"flex",alignItems:"center",flexGrow:1}),of=On("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),nf=On("div",{display:"flex",alignItems:"center"});function At(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(nf,null,Ee.createElement(Ti,{height:22,width:22,variant:"circular"}),Ee.createElement(Ks,{direction:"horizontal",size:8}),Ee.createElement(Ti,{height:15,width:148,variant:"rounded"})),Ee.createElement(ef,null,Ee.createElement(Hd,{hideSeparator:!e}),Ee.createElement(tf,{extraSpace:e},Ee.createElement(Vs,null,Ee.createElement(rf,{size:"small",loading:!0}),Ee.createElement(Ks,{direction:"horizontal",size:8}),Ee.createElement(Ti,{height:12,variant:"rounded"})),Ee.createElement(of,null,Ee.createElement(xv,{color:"gray",size:16})),Ee.createElement(Vs,null,Ee.createElement(rf,{size:"small",loading:!0}),Ee.createElement(Ks,{direction:"horizontal",size:8}),Ee.createElement(Ti,{height:12,variant:"rounded"})))))}i(At,"StepSkeleton");function Un(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Ft.createElement(Ud,{expanded:o,rounded:e!=="basic"},Ft.createElement(Fn,{type:e,tagHidden:n}),Ft.createElement(zd,null,Ft.createElement(Iv,{height:15,variant:"rounded"})),o&&Ft.createElement(Qd,null,Ft.createElement(Ev,{size:24}),Ft.createElement(At,null),Ft.createElement(At,null),Ft.createElement(At,{separator:!1})))}i(Un,"QuoteSkeleton");function Io(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:c,showModalFee:p,selected:u,onClickAllRoutes:m,fullExpandedMode:h=!1,container:d}=t,{inputAmount:f,inputUsdValue:g}=O(),k=e?.outputAmount?new Av(e?.outputAmount):null,C=e?dt(e):null,T=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?vi.createElement(Ds,null,vi.createElement(Un,{tagHidden:l,type:o,expanded:s})):T?vi.createElement(Ds,{onClick:()=>c?.(e)},vi.createElement(qs,{quote:e,error:r,container:d,showModalFee:p,warning:a,tagHidden:l,selected:u,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:h,input:{value:f,usdValue:g?.toString()??""},output:{value:k?.toString()??"",usdValue:C?.toString()??""}})):null}i(Io,"QuoteInfo");import{calculatePendingSwap as Lv}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Mv}from"react";import{useRef as Nv,useState as Wv}from"react";var Bv=2e3;function wi({request:t}){let[e,o]=Wv(!1),n=Nv(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(c=>setTimeout(c,Bv)),await s(l,!1)),"retryFetch"),s=i(async(l,c=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(l,{signal:n.current.signal});return n.current=null,p}catch(p){if(c)return await a(l);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(wi,"useFetch");function af(){let{fetch:t,loading:e,cancelFetch:o}=wi({request:async(n,r)=>await mt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(af,"useFetchConfirmQuote");function bi(t){if(!t.swaps)throw new Error(ee().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=js(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(bi,"throwErrorIfResponseIsNotValid");function js(t){if(fu(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=gu(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Cu(t);if(o){let n=zr(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(js,"getQuoteError");function sf(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,l={quote:null,balance:null},c=Vo({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});c&&(l.quote=c);let p=vu(e,r,n.blockchains);return p.length===0||(l.balance={messages:p}),l}i(sf,"generateWarnings");function xi(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(xi,"handleQuoteErrors");function Xs(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:l}=O(),{slippage:c,customSlippage:p}=y(),u=y().getDisabledLiquiditySources(),m=y().blockchains(),h=y().tokens(),{findToken:d}=y(),f=p||c,{fetch:g,cancelFetch:k,loading:C}=af();return Mv(()=>k,[]),{loading:C,fetch:i(async T=>{let w=T.selectedWallets,E=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let W=w.reduce((x,b)=>(x[b.chain]=b.address,x),{}),A={requestId:a?.requestId||"",selectedWallets:W,destination:E||void 0};try{return await g(A,!0).then(x=>{let{result:b}=x;if(!b)throw new Error("Error fetching updated route");bi({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 I={slippage:f.toString(),disabledSwappersGroups:u},M=sf({previousQuote:a??void 0,currentQuote:v,meta:{blockchains:m},selectedWallets:w,userSlippage:f,inputUsdValue:n,findToken:d});l();let $=!!M.balance,q=Lv(o.toString(),b,Tu(w),I,!$,{blockchains:m,tokens:h});return{quote:v,swap:q,error:null,warnings:M}})}catch(x){return xi(x)}},"fetch"),cancelFetch:k}}i(Xs,"useConfirmSwap");var Hv=$v("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${lf}`]:{width:"$48",height:"$48"}}),qv=Js({flexGrow:1,paddingRight:"$10"}),Gv=Js({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Vv=Js({display:"flex",justifyContent:"space-between",alignItems:"center"});function cf(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=Qv(),[l,c]=zn(""),p=!n,[u,m]=zn(!1),[h,d]=zn(!1),{isActiveTab:f}=ne(),g=y().getDisabledLiquiditySources(),k=zv(g),{manager:C}=Pv(),{fetch:S,loading:T,cancelFetch:w}=Xs(),[E,W]=zn({swap:null,error:null,warnings:null}),[A,x]=zn(!1),b=i(async({selectedWallets:B,customDestination:X})=>{let ae=await S?.({selectedWallets:B,customDestination:X});return W(ae),ae},"onConfirmSwap"),v=i(async()=>{if(E.swap&&n)try{await C?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let B=`../${F.swaps}/${E.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){c("Error: "+B?.message)}},"addNewSwap"),I=i(async()=>{d(!0),await v(),d(!1)},"onConfirm"),M=i(async()=>{E.warnings?.quote&&au(E.warnings.quote)&&!a?x(!0):await I()},"onStartConfirmSwap"),$=i(async()=>{W({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(B=>{W(B)}).catch(B=>console.error(B))},"onRefresh");Ei(()=>{!!k.current.length&&!g.length&&$(),k.current=g},[g.length]),Ei(()=>{p&&w()},[p]),Ei(()=>{p&&m(p)},[p]),Ei(()=>{p||S({selectedWallets:o,customDestination:r}).then(B=>W(B)).catch(B=>console.error(B))},[]),Uv(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=E.warnings?.quote??null,Z=E.error,j=[];if(l&&j.push(Le.createElement(_v,{type:"error",variant:"alarm",title:l})),q||Z){let B=`../${F.settings}`;j.push(Le.createElement(Mn,{warning:q,error:Z,couldChangeSettings:!1,refetchQuote:$,showWarningModal:A,confirmationDisabled:!f,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:async()=>{x(!1),await v()},onChangeSettings:()=>s(B)}))}return Le.createElement(oe,{header:{title:Ys.t("Confirm Swap"),onWallet:()=>{let B=`../${F.wallets}`;s(B)}},footer:Le.createElement(Hv,null,Le.createElement("div",{className:qv()},Le.createElement(Dv,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||h,disabled:!!E.error||!f,onClick:M},Ys.t("Start Swap"))),Le.createElement(lf,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||h,disabled:!f,onClick:m.bind(null,!0)},Le.createElement(Ov,{size:24})))},u&&Le.createElement(Hm,{open:u,onClose:()=>m(!1),onCancel:w,loading:T,onCheckBalance:b}),Le.createElement(re,null,Le.createElement("div",{className:Vv()},Le.createElement(Fv,{variant:"title",size:"small"},Ys.t("You get")),Le.createElement("div",{className:Gv()},Le.createElement(jr,{onClick:!T&&!u&&!A?$:void 0}))),Le.createElement(Zs,{size:"12"}),Gu(j.map((B,X)=>({element:B,key:`alert-${X}`})),Le.createElement(Zs,{size:10})),j.length>0?Le.createElement(Zs,{size:10}):null,Le.createElement(Io,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:T,warning:E.warnings?.quote??null})))}i(cf,"ConfirmSwapPage");import{i18n as Ut}from"@lingui/core";import{Button as pl,CustomTokensZeroStateDarkIcon as dw,CustomTokensZeroStateIcon as fw,DeleteIcon as gw,Divider as Kn,IconButton as hw,MessageBox as yw,NotFound as Sw,styled as ml}from"@rango-dev/ui";import me,{useState as ul}from"react";import{useNavigate as Cw}from"react-router-dom";import{CloseIcon as jv,IconButton as Xv,SearchIcon as Yv,TextField as Zv}from"@rango-dev/ui";import Qn from"react";import{styled as Kv}from"@rango-dev/ui";var pf=Kv("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Tt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:c,suffix:p,...u}=t,m=s.length?Qn.createElement(Xv,{variant:"ghost",onClick:()=>c?.(""),size:"small"},Qn.createElement(jv,{color:"gray",size:10})):null;return p&&(m=p),Qn.createElement(Zv,{prefix:Qn.createElement(pf,null,Qn.createElement(Yv,{color:"black"})),suffix:m,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...u})}i(Tt,"SearchInput");import{i18n as cl}from"@lingui/core";import{Button as tw,CustomTokenWarning as ow,darkTheme as vf,Divider as Ot,ExternalLinkIcon as nw,Image as rw,ListItem as iw,NotFound as aw,PinIcon as sw,Skeleton as Ao,Typography as Gn,VirtualizedList as lw}from"@rango-dev/ui";import L,{useState as cw}from"react";import{useTranslation as pw}from"react-i18next";import{Divider as kf,ListItem as ew,Skeleton as qn}from"@rango-dev/ui";import vt from"react";import{css as sn,darkTheme as Rs,ImageContainer as Jv,ListItemButton as Rv,styled as Re,Typography as uf}from"@rango-dev/ui";var el=sn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),tl=sn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ol=sn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),nl=sn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Rs} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),rl=sn({}),il=sn(),mf=Re("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),al=Re("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Ii=Re("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${tl}`]:{[`& .${nl}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${rl}`]:{bottom:"-15px"},[`& .${el}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ol}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),df=Re(Rv,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),sl=Re("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ll=Re(uf,{}),ff=Re("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${il}`]:{$$color:"$colors$neutral600",[`.${Rs} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Hn=Re("div",{display:"flex",alignItems:"end",flexDirection:"column"}),Oz=Re("div",{display:"flex",alignItems:"center"}),gf=Re("div",{position:"relative",[`& ${Jv}`]:{borderRadius:"$xm",overflow:"hidden"}}),hf=Re("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),yf=Re(uf,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Sf=Re("a",{"& svg:hover":{color:"$colors$info"}}),Cf=Re("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":{[`.${Rs} &`]:{color:"$foreground"}}}});function Tf(t){return vt.createElement(Ii,null,Array.from(Array(t.size),e=>vt.createElement(ew,{key:e,hasDivider:!0,start:vt.createElement(qn,{variant:"circular",width:35,height:35}),end:vt.createElement(Hn,null,vt.createElement(qn,{variant:"text",size:"large",width:70}),vt.createElement(kf,{size:4}),vt.createElement(qn,{variant:"text",size:"medium",width:50})),title:vt.createElement("div",null,vt.createElement(qn,{variant:"text",size:"large",width:90}),vt.createElement(kf,{size:4}),vt.createElement(qn,{variant:"text",size:"medium",width:90}))})))}i(Tf,"LoadingTokenList");var uw=20,mw=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return L.createElement("div",{className:tl()},o?L.createElement("div",{className:el()},o):L.createElement(al,{className:ol()},L.createElement(Gn,{variant:"title",size:"xmedium"},r.symbol),L.createElement(Ot,{direction:"horizontal",size:4}),L.createElement(sl,{css:a},L.createElement(ll,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&L.createElement("div",{className:`${nl()} ${!o&&rl()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",L.createElement(Ot,{size:4,direction:"horizontal"}),L.createElement(Sf,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:c=>c.stopPropagation()},L.createElement(nw,{size:12}))))},"renderDesc");function Vn(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:l,showWarning:c=!0}=t,p=y().fetchStatus,u=y().blockchains(),{getBalanceFor:m,fetchingWallets:h}=y(),{isTokenPinned:d}=y(),{setFromToken:f,setToToken:g}=O(),{t:k}=pw(),C=Oe(),[S,T]=cw(null),w=i(()=>{l==="source"?f({token:S,meta:{blockchains:u}}):g({token:S,meta:{blockchains:u}})},"updateToken"),E=i(()=>{w(),C()},"handleImportToken"),W=i(b=>{if(b.customToken){let{customToken:I,...M}=b;return L.createElement(tw,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),T({...M,warning:!0})},"handleClick")},L.createElement(Gn,{variant:"body",size:"xsmall",color:"background"},k("import")))}let v=br(m(b));return s?s(b):h?L.createElement(Hn,null,L.createElement(Ao,{variant:"text",size:"large",width:70}),L.createElement(Ot,{size:4}),L.createElement(Ao,{variant:"text",size:"medium",width:50})):v&&L.createElement(ff,null,L.createElement(yf,{variant:"title",size:"small"},v.amount),L.createElement("div",null),v.usdValue&&L.createElement(Gn,{variant:"body",className:il(),size:"xsmall"},`$${v.usdValue}`))},"endRenderer"),A=i(()=>L.createElement(lw,{itemContent:b=>{let v=e[b];if(v==="skeleton")return L.createElement(iw,{hasDivider:!0,start:L.createElement(Ao,{variant:"circular",width:35,height:35}),end:L.createElement(Hn,null,L.createElement(Ao,{variant:"text",size:"large",width:70}),L.createElement(Ot,{size:4}),L.createElement(Ao,{variant:"text",size:"medium",width:50})),title:L.createElement("div",null,L.createElement(Ao,{variant:"text",size:"large",width:90}),L.createElement(Ot,{size:4}),L.createElement(Ao,{variant:"text",size:"medium",width:90}))});let I=v.address||"",M=u.find(B=>B.name===v.blockchain);if(!M)return null;let $=es(M.color,"main"),q={$$color:$.main150,[`.${vf} &`]:{$$color:$.main750},backgroundColor:"$$color"},Z={$$color:$.main750,[`.${vf} &`]:{$$color:$.main150},color:"$$color"},j=i(()=>{typeof v!="string"&&!v.customToken&&n?.(v)},"handleClick");return L.createElement(Cf,null,L.createElement(df,{"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:L.createElement(gf,null,L.createElement(rw,{src:v.image===""?gr:v.image,size:30}),t.type!=="custom-token"&&d(v,t.type)&&L.createElement(hf,null,L.createElement(sw,{size:12,color:"gray"}))),title:M?.type==="COSMOS"||v.name||!v.name&&!I?L.createElement(al,null,L.createElement(Gn,{variant:"title",size:"xmedium"},v.symbol),L.createElement(Ot,{direction:"horizontal",size:4}),L.createElement(sl,{css:q},L.createElement(ll,{variant:"body",size:"xsmall",css:Z},v.blockchain)),c&&v.warning&&L.createElement(L.Fragment,null,L.createElement(Ot,{direction:"horizontal",size:4}),L.createElement(ow,{container:N()}))):void 0,description:typeof v!="string"&&M?.info&&I&&M.type!=="COSMOS"?mw({address:I,token:v,customCssForTag:q,customCssForTagTitle:Z,name:v.name,url:M.info.addressUrl.split("{wallet}").join(I)}):v.name||void 0,end:W(v)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),x=S?co(S?.blockchain,u):null;return L.createElement(L.Fragment,null,a&&L.createElement(L.Fragment,null,L.createElement(Gn,{variant:"label",size:"large"},cl.t("Select Token")),L.createElement(Ot,{size:4})),L.createElement(mf,null,L.createElement(Ot,{size:4}),p==="loading"&&L.createElement(Tf,{size:uw}),p==="success"&&(e.length?L.createElement(L.Fragment,null,L.createElement(In,{token:S,address:S?.address??"",blockchain:x??void 0,onImport:E,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),L.createElement(Ii,{as:"ul"},A())):!!o&&L.createElement(aw,{title:cl.t("No results found"),description:cl.t("Try using different keywords")}))))}i(Vn,"TokenList");var kw=ml("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Tw=ml("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),vw=ml(hw,{"&:hover":{"& svg":{color:"$secondary550"}}});function wf(){let[t,e]=ul(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=O(),{mode:c}=Yo({}),p=Cw(),[u,m]=ul(!1),[h,d]=ul(),f=i(S=>{let T=S.target.value;e(T)},"handleSearch"),g=c==="dark",k=n.filter(S=>tt(S.symbol,t)||tt(S.address||"",t)||tt(S.name||"",t)),C=i(()=>{if(h){let S=a?ut(a):null,T=r?ut(r):null,w=ut(h);S===w?l({token:null}):T===w&&s({token:null}),o(h)}m(!1)},"handleDeleteCustomToken");return me.createElement(oe,{header:{title:Ut.t("Custom Tokens")}},me.createElement(re,null,me.createElement(kw,null,n.length?me.createElement(me.Fragment,null,me.createElement(Tt,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Ut.t("Search Token"),onChange:f}),me.createElement(Kn,{size:16}),me.createElement(Vn,{list:k,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>me.createElement(vw,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),d(S)}},me.createElement(gw,{size:12,color:"gray"}))})):me.createElement(Tw,null,me.createElement(Sw,{icon:g?me.createElement(dw,{size:200}):me.createElement(fw,{size:200}),title:Ut.t("No custom tokens"),description:Ut.t("press the button to add your custom token")})),me.createElement(Kn,{size:20}),me.createElement(pl,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},Ut.t("Add Custom Token"))),me.createElement(R,{open:u,dismissible:!0,onClose:()=>m(!1),container:N()},me.createElement(yw,{title:Ut.t("Delete Custom Token"),type:"error",description:Ut.t("Are you sure you want to Delete this Token?")},me.createElement(Kn,{size:40}),me.createElement(Kn,{size:10}),me.createElement(pl,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Ut.t("Yes, Delete it")),me.createElement(Kn,{size:12}),me.createElement(pl,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},Ut.t("No, Continue"))))))}i(wf,"CustomTokensPage");import{i18n as Ge}from"@lingui/core";import{useManager as zw}from"@rango-dev/queue-manager-react";import{Button as Cl,darkTheme as Qw,Divider as Wo,MessageBox as Hw,NotFound as qw,styled as kl,Typography as Wi}from"@rango-dev/ui";import{TransactionStatus as Yn}from"rango-types";import ie,{useMemo as Qf,useState as Bi}from"react";import{useNavigate as Gw}from"react-router-dom";import{FilterIcon as Nw,Popover as Ww}from"@rango-dev/ui";import No from"react";import{css as ww,darkTheme as Ai,IconButton as bw,styled as jn}from"@rango-dev/ui";var dl=jn("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Ai} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),bf=jn(bw,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Ai} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Ai} &`]:{backgroundColor:"$neutral"},[`& ${dl}::before`]:{backgroundColor:"$secondary100",[`.${Ai} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),xf=jn("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Ef=jn("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),If=ww({display:"flex",justifyContent:"space-between",alignItems:"center"}),Af=jn("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Nf}from"@lingui/core";import{Button as xw,Divider as Wf,ListItemButton as Ew,Radio as Iw,RadioRoot as Aw,Typography as Bf}from"@rango-dev/ui";import it from"react";function Lf(t){let{filterBy:e,onClickItem:o}=t;return it.createElement(Ef,null,it.createElement("div",{className:If()},it.createElement(Bf,{size:"small",variant:"body"},Nf.t("Status")),it.createElement(xw,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Nf.t("Reset"))),it.createElement(Wf,{size:10}),it.createElement(Aw,{value:e},it.createElement(Af,null,t.list.map((n,r)=>it.createElement(Ew,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:it.createElement(it.Fragment,null,it.createElement(Wf,{direction:"horizontal",size:4}),it.createElement(Bf,{size:"medium",variant:"body"},n.title)),start:it.createElement(Iw,{value:n.id}),onClick:o})))))}i(Lf,"FilterSelectorContent");function fl(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return No.createElement("div",null,No.createElement(Ww,{open:a,align:"end",onOpenChange:o,container:N(),content:No.createElement(Lf,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},No.createElement(bf,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},No.createElement(dl,{isSelect:!!n},No.createElement(Nw,{size:16,color:"black"}),!!n&&No.createElement(xf,null)))))}i(fl,"FilterSelector");import{i18n as Mw}from"@lingui/core";import{Divider as $f,GroupedVirtualizedList as Pw,Skeleton as _w,SwapListItem as Ff,Typography as Dw}from"@rango-dev/ui";import qe,{useCallback as Of,useEffect as $w,useRef as Fw,useState as Ow}from"react";function Mf(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(Mf,"calculateGroupsSoFar");import{css as Bw,darkTheme as Lw,styled as Xn}from"@rango-dev/ui";var gl=Bw(),Pf=Xn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),hl=Xn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${gl}`]:{$$color:"$colors$neutral600",[`.${Lw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),yl=Xn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),_f=Xn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Df=Xn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Uw=10;function Sl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Ow([]),l=Fw(0),{swaps:c,groupCounts:p,groups:u}=n(e),m=Of(Mf,[]),h=Of(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,Uw),s(m(p,l.current)))},[e.length]);if($w(()=>{r||h()},[r,h]),r){let d=[1,2];return qe.createElement(qe.Fragment,null,[d,d].map((g,k)=>qe.createElement(hl,{key:k},qe.createElement(yl,null,qe.createElement(_w,{variant:"text",width:60,size:"small"}),qe.createElement($f,{size:16})),qe.createElement($f,{size:4}),qe.createElement(_f,null,g.map((S,T)=>qe.createElement(Ff,{isLoading:!0,key:T}))))))}return qe.createElement(Pw,{endReached:()=>{l.current<e.length&&h()},groupCounts:a,groupContent:d=>qe.createElement(hl,null,qe.createElement(yl,null,qe.createElement(Dw,{variant:"label",size:"medium",className:gl()},u[d]))),itemContent:(d,f)=>{let g=c[d];if(!g)return null;let k=g.steps[0],C=g.steps[g.steps.length-1];return qe.createElement(Pf,{key:g.requestId},qe.createElement(Ff,{requestId:g.requestId,creationTime:g.creationTime,status:g.status,onClick:o,tooltipContainer:N(),onlyShowTime:u[f]===Mw.t("Today"),swapTokenData:{from:{token:{image:k.fromLogo,displayName:k.fromSymbol},blockchain:{image:k.fromBlockchainLogo||""},amount:P(g.inputAmount,6,6),realAmount:g.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:P(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(Sl,"HistoryGroupedList");import{i18n as Ni}from"@lingui/core";import Uf from"dayjs";var zf=i(t=>{let e=new Map([["today",{title:Ni.t("Today"),swaps:[]}],["week",{title:Ni.t("This week"),swaps:[]}],["month",{title:Ni.t("This month"),swaps:[]}],["year",{title:Ni.t("This year"),swaps:[]}]]);function o(c,p){e.has(c)||e.set(c,{title:c,swaps:[]}),e.get(c)?.swaps.push(p)}i(o,"addYearsToOutput");let n=Uf();t.forEach(c=>{let p=Number(c.creationTime),u=Uf(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(c);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(c);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(c);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(c);else{let m=new Date(p).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 Vw=kl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Kw=kl("div",{display:"flex",justifyContent:"center",alignItems:"center"}),jw=kl("div",{"._typography":{color:"$neutral700",[`.${Qw}&`]:{color:"$neutral900"}}}),Xw=[{id:Yn.SUCCESS,title:Ge.t("Complete")},{id:Yn.RUNNING,title:Ge.t("Running")},{id:Yn.FAILED,title:Ge.t("Failed")}],Yw=i((t,e)=>t?.length?t.filter(o=>bt(o.fromBlockchain,e)||bt(o.toBlockchain,e)||bt(o.toSymbol,e)||bt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Hf(){let t=Gw(),{manager:e,state:o}=zw(),n=ft(e).map(({swap:T})=>T),[r,a]=Bi(""),[s,l]=Bi(!1),c=!o.loadedFromPersistor,[p,u]=Bi(""),[m,h]=Bi(!1),d=i(T=>{let w=T.target.value;a(w)},"handleSearch"),f=Qf(()=>!r&&!p?n:n.filter(T=>{let{inputAmount:w,status:E,steps:W,requestId:A}=T;return(!r||bt(w,r)||bt(E,r)||Yw(W,r)||bt(A,r))&&(!p||p===E)}),[n,r,p]),g=!f?.length&&!c,k=i(()=>h(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(T){console.log(T)}},"onClear"),S=Qf(()=>!n.some(T=>T.status===Yn.SUCCESS||T.status===Yn.FAILED),[n]);return ie.createElement(oe,{header:{title:Ge.t("History"),suffix:ie.createElement(jt,null,ie.createElement(Cl,{id:"widget-history-clear-btn",disabled:S,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},ie.createElement(Wi,{size:"medium",variant:"label",color:"error"},Ge.t("Clear"))))}},ie.createElement(re,null,ie.createElement(Kw,null,ie.createElement(Tt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ge.t("Search Transaction"),autoFocus:!0,onChange:d,style:{height:36},value:r}),ie.createElement(Wo,{size:10,direction:"horizontal"}),ie.createElement(fl,{filterBy:p,open:s,onOpenChange:T=>l(T),onClickItem:T=>u(T),list:Xw})),ie.createElement(Wo,{size:"16"}),ie.createElement(Vw,null,g&&ie.createElement(Df,null,ie.createElement(Wo,{size:32}),ie.createElement(qw,{title:r?Ge.t("No results found"):Ge.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ge.t("Try using different keywords"):Ge.t("Your transaction history is stored locally and will appear here after you start a swap")})),!g&&ie.createElement(Sl,{list:f,onSwapClick:t,groupBy:zf,isLoading:c}))),ie.createElement(R,{open:m,onClose:k,container:N()},ie.createElement(Wo,{size:20}),ie.createElement(Hw,{type:"warning",title:Ge.t("Clear Transaction History"),description:ie.createElement(jw,null,ie.createElement(Wi,{variant:"body",size:"medium"},Ge.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ie.createElement(Wo,{size:"24"}),ie.createElement(Wi,{variant:"body",size:"small"},Ge.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ie.createElement(Wo,{size:30}),ie.createElement(Cl,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Ge.t("Yes, Clear the history")),ie.createElement(Wo,{size:10}),ie.createElement(Cl,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:k},ie.createElement(Wi,{variant:"title",size:"medium",color:"primary"},Ge.t("No, Cancel")))))}i(Hf,"HistoryPage");import{i18n as kb}from"@lingui/core";import{Button as Tb,Divider as pg,styled as vb,WarningIcon as wb}from"@rango-dev/ui";import bb from"bignumber.js";import Ve,{useEffect as ug,useState as mg}from"react";import{useNavigate as xb}from"react-router-dom";import{i18n as Gf}from"@lingui/core";import{Alert as Jw,Divider as Tl,NoRouteIcon as Rw,Typography as eb}from"@rango-dev/ui";import Bo from"react";import{styled as Zw}from"@rango-dev/ui";var qf=Zw("div",{display:"flex",flexDirection:"column",alignItems:"center"});function vl(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Bt(t,e)?Bo.createElement(qf,null,Bo.createElement(Tl,{size:10}),Bo.createElement(Rw,{size:24,color:"gray"}),Bo.createElement(Tl,{size:4}),Bo.createElement(eb,{variant:"title",size:"small"},Gf.t("No Routes Found")),Bo.createElement(Tl,{size:4}),Bo.createElement(Jw,{title:Gf.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(vl,"SameTokensWarning");import{i18n as ab}from"@lingui/core";import{Header as sb}from"@rango-dev/ui";import oo,{useEffect as lb,useState as cb}from"react";import{i18n as ob}from"@lingui/core";import{Divider as bl,FullExpandedQuote as nb,Typography as rb}from"@rango-dev/ui";import Se from"react";import{styled as wl}from"@rango-dev/ui";var Vf=wl("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Kf=wl("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),jf=wl("div",{width:"146px"});import{i18n as Zn}from"@lingui/core";import{Select as tb}from"@rango-dev/ui";import Xf from"react";function Li(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:Zn.t("Smart Routing")},{value:"FEE",label:Zn.t("Lowest Fee")},{value:"SPEED",label:Zn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Zn.t("Maximum Return")},{value:"PRICE",label:Zn.t("Maximum Output")}];return Xf.createElement(jf,null,Xf.createElement(tb,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Li,"SelectStrategy");var Yf=3;function Jn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:c,quotes:p,updateQuotePartialState:u,fromToken:m,toToken:h,sortStrategy:d,error:f}=O(),{slippage:g,customSlippage:k}=y(),{findToken:C}=y(),S=l||N(),T=!!p&&p.results.length,w=k??g,E=i(x=>{if(!m||!h||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...x};return Vo({currentQuote:b,userSlippage:w,findToken:C})},"getQuoteWarning"),W=f?.type===0||f?.type===1,A=p?.results?Or(d,p?.results):[];return Se.createElement(Se.Fragment,null,a&&Se.createElement(Se.Fragment,null,Se.createElement(Kf,null,Se.createElement(rb,{size:"xmedium",variant:"title"},ob.t("Sort by")),Se.createElement(Li,{container:S})),Se.createElement(bl,{size:"10"})),e&&Array.from({length:Yf},(x,b)=>Se.createElement(Se.Fragment,{key:b},s?Se.createElement(nb,{loading:!0}):Se.createElement(Un,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Yf-1&&Se.createElement(bl,{size:16}))),!e&&Se.createElement(Se.Fragment,null,T?A.map((x,b)=>{let v=E(x),I=js(x.swaps),M=A.length-1===b;return Se.createElement(Se.Fragment,{key:x.requestId},Se.createElement(Io,{showModalFee:r,container:S,selected:c?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:I?.options||null,warning:v,fullExpandedMode:s,onClick:$=>{I||u("warning",v),u("error",I?.options||null),o($)},type:"list-item"}),!M&&Se.createElement(bl,{size:16}))}):W&&Se.createElement(Vf,null,Se.createElement(Bn,{size:s?"large":"small",error:f,fetch:n}))))}i(Jn,"Quotes");import{darkTheme as ib,styled as Zf}from"@rango-dev/ui";var Jf=Zf("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${ib} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Rf=Zf("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var pb=100;function xl(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=cb(!1),c=s?"":"is-hidden",{config:p}=y(),u=p?.variant==="full-expanded",m=uo();return lb(()=>{let h=null;return a?h=setTimeout(()=>{l(!0)},pb):(l(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),oo.createElement(Jf,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${c} ${Jr()}`,id:$e.EXPANDED_BOX_ID},oo.createElement(sb,{title:ab.t("Routes"),suffix:oo.createElement(oo.Fragment,null,oo.createElement(Li,{container:m}),oo.createElement(wo,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),oo.createElement(Rf,null,oo.createElement(Jn,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:uo(),onClickOnQuote:n,fullExpandedMode:u})))}i(xl,"ExpandedQuotes");import{i18n as ag}from"@lingui/core";import{SwapInput as sg}from"@rango-dev/ui";import fb from"bignumber.js";import Rn from"react";import{ReverseIcon as db}from"@rango-dev/ui";import Il from"react";import{keyframes as ub,styled as eg}from"@rango-dev/ui";var El=450,mb=ub({"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)"}}),tg=eg("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),og=eg("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${mb} ${El}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 Al(){let t=O.use.switchFromAndTo();return Il.createElement(tg,null,Il.createElement(og,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},El),t()}},Il.createElement(db,{size:12})))}i(Al,"SwitchFromAndToButton");import{styled as ng}from"@rango-dev/ui";var rg=ng("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),ig=ng("div",{position:"relative"});function Nl(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:c,setInputAmount:p,inputAmount:u,inputUsdValue:m,outputAmount:h,outputUsdValue:d,selectedQuote:f}=O(),{connectedWallets:g,getBalanceFor:k}=y(),C=a?k(a):null,S=br(C)?.amount??"0",T=C?new fb(C.amount).shiftedBy(-C.decimals):ce,w=!!s&&Zc(g,s.name),E=!Fa(f,u,m),W=!Fa(f,u,d),A=!m||!d||!d.gt(0)?null:Mt(m.toString(),d.toString());return Rn.createElement(rg,null,Rn.createElement(ig,null,Rn.createElement(sg,{label:ag.t("From"),mode:"From",onInputChange:p,balance:S,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:u,usdValue:E?void 0:P(m,4,4),realUsdValue:E?void 0:m?.toString(),error:E?ee().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:N(),onSelectMaxBalance:()=>{let x=P(T,C?.decimals),b=C?.amount?x.split(",").join(""):"";p(b)},anyWalletConnected:g.length>0}),Rn.createElement(Al,null)),Rn.createElement(sg,{sharpBottomStyle:!r&&(!!f||e),label:ag.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:c?.displayName||"",image:c?.logo},token:{displayName:l?.symbol||"",image:l?.image,securityWarning:!!l?.warning},percentageChange:P(Mt(m,d),2,2),warningLevel:Pt(A??0),price:{value:P(h,6,6),usdValue:W?void 0:P(d,4,4),realValue:h?.toString(),realUsdValue:W?void 0:d?.toString(),error:W?ee().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Nl,"Inputs");import{useCallback as gb,useEffect as hb,useRef as yb,useState as Sb}from"react";function lg(){let{fetch:t,loading:e,cancelFetch:o}=wi({request:async(n,r)=>await mt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(lg,"useFetchAllQuotes");var Cb=600;function Mi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=lg(),{excludeLiquiditySources:n,routing:r}=y().config,{connectedWallets:a}=y(),l=a.some(Ie=>Ie.isContractWallet),{fromToken:c,toToken:p,inputAmount:u,inputUsdValue:m,selectedQuote:h,sortStrategy:d,resetQuote:f,error:g,warning:k,setSelectedQuote:C,updateQuotePartialState:S}=O(),{slippage:T,customSlippage:w,affiliatePercent:E,affiliateRef:W,affiliateWallets:A,fetchStatus:x}=y(),b=y().getLiquiditySources(),v=y().getDisabledLiquiditySources(),I=y().excludeLiquiditySources(),{findToken:M}=y(),[$,q]=Sb(!0),Z=yb(u),j=w??T,X=!c||!p||Bt(c,p)||!fn(u),ae=i(Ie=>{q(Ie)},"resetState"),K=i(Ie=>{let{fromToken:je,toToken:se,inputAmount:ct,liquiditySources:G,excludeLiquiditySources:_,disabledLiquiditySources:H,slippage:V,affiliateRef:ge,affiliatePercent:le,affiliateWallets:_e}=Ie;if($||ae(!0),!X&&je&&se){f();let Xe=ku({fromToken:je,toToken:se,inputAmount:ct,liquiditySources:G,excludeLiquiditySources:_,disabledLiquiditySources:H,wallets:a,slippage:V,affiliateRef:ge,affiliatePercent:le,affiliateWallets:_e,contractCall:l});Fo("experimental",r)&&(Xe.experimental=!0),Fo("avoidNativeFee",r)&&(Xe.avoidNativeFee=!0),Fo("enableCentralizedSwappers",r)&&(Xe.enableCentralizedSwappers=!0),r?.maxLength&&(Xe.maxLength=r.maxLength),e(Xe).then(ke=>{let De=Or(d,ke.results),Gt=lu(h,De,ke.requestAmount);q(!1),S("quotes",ke),C(Gt),bi({diagnosisMessages:ke.diagnosisMessages,requestId:Gt?.requestId||"",swaps:Gt?.swaps});let lo=Gt&&Vo({currentQuote:Gt,userSlippage:j,findToken:M});S("warning",lo)}).catch(ke=>{let{error:De}=xi(ke);(De?.type===0||De?.type===1)&&f(),De?.type!==2&&(S("error",De),q(!1))})}},"fetch"),fe=gb(Sr(Ie=>{K(Ie)},Cb),[X]);return hb(()=>{if(!t){q(!1);return}if(x!=="success")return;if(X){q(!1),(h||g||k)&&f();return}if(!fn(u)||m?.eq(0)){ae(!1),o();return}f(),ae(!0);let Ie=K;return Z.current&&Z.current!=u&&(Ie=fe),Z.current=u,Ie({inputAmount:u,fromToken:c,toToken:p,liquiditySources:b,excludeLiquiditySources:I,disabledLiquiditySources:v,slippage:j,affiliateRef:W,affiliatePercent:E,affiliateWallets:A,contractCall:l}),o},[x,u,c?.symbol,c?.address,c?.blockchain,p?.symbol,p?.address,p?.blockchain,X,b?.length,n,v.length,j,W,E,l,JSON.stringify(A)]),{fetch:()=>K({inputAmount:u,fromToken:c,toToken:p,liquiditySources:b,excludeLiquiditySources:I,disabledLiquiditySources:v,slippage:j,affiliateRef:W,affiliatePercent:E,affiliateWallets:A,contractCall:l}),loading:$}}i(Mi,"useSwapInput");function cg(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};he.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(cg,"emitPreventableEvent");var Eb=vb("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Ib=300;function dg(){let t=xb(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:c,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:m,updateQuotePartialState:h}=O(),[d,f]=mg(!1),{isLargeScreen:g,isExtraLargeScreen:k}=gi(),{fetch:C,loading:S}=Mi({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:E}=y(),{isActiveTab:W}=ne(),[A,x]=mg(!1),v=hu({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),I=rp(g,k,T?.variant),M=!!n&&!!e&&!!o&&new bb(n).gt(0)&&!Iu(e,o),$=M&&w==="success"&&S,j=(!I||I&&c?.results.length)&&(l||s);ug(()=>{u(),h("refetchQuote",!0)},[]),ug(()=>{f(M)},[M]);let B=(r||s)&&!A?C:void 0,X=i(K=>{I&&d?(f(!1),setTimeout(()=>{t(K)},Ib)):t(K)},"onHandleNavigation"),ae=i(K=>{r?.requestId!==K.requestId&&(x(!1),p(K))},"onClickOnQuote");return Ve.createElement(Eb,null,Ve.createElement(oe,{height:"auto",footer:Ve.createElement(Tb,{id:`widget-swap-${v.action}-btn`,type:"primary",size:"large",disabled:v.disabled||!W,prefix:v.action==="confirm-warning"&&Ve.createElement(wb,null),fullWidth:!0,onClick:()=>{v.action==="connect-wallet"?cg({type:"clickConnectWallet"},()=>X(F.wallets)):v.action==="confirm-warning"?x(!0):X(F.confirmSwap)}},v.title),header:{onWallet:()=>{X(F.wallets)},hasBackButton:!1,title:T.title||kb.t("Swap"),suffix:Ve.createElement(wo,{hidden:I?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>X(F.swaps),onClickSettings:()=>{X(F.settings)}})}},Ve.createElement(re,null,Ve.createElement(Nl,{fetchingQuote:$,fetchMetaStatus:w,isExpandable:I,onClickToken:K=>{X(K==="from"?F.fromSwap:F.toSwap)}}),Ve.createElement(pg,{size:"2"}),I?null:Ve.createElement(Io,{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?Ve.createElement(Ve.Fragment,null,Ve.createElement(pg,{size:"10"}),Ve.createElement(Mn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:C,showWarningModal:A,confirmationDisabled:!W,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),m(!0),X(F.confirmSwap)},onChangeSettings:()=>X(F.settings)})):null,Ve.createElement(vl,null))),I?Ve.createElement(xl,{loading:$,onClickOnQuote:ae,fetch:C,onClickRefresh:B,isVisible:d}):null)}i(dg,"Home");import{i18n as fg}from"@lingui/core";import{Alert as Ab,Divider as Nb,List as Wb,ListItemButton as Bb,Radio as Lb,RadioRoot as Mb,Typography as Pb}from"@rango-dev/ui";import Nt from"react";function no(){let{setLanguage:t,language:e,config:o}=y(),n=cp,r=o?.language||Oo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Oo),resetLanguage:()=>t(null)}}i(no,"useLanguage");function gg(){let{activeLanguage:t,changeLanguage:e,languages:o}=no(),n=Oe(),r=o.map(a=>{let{local:s,label:l,SVGFlag:c}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Nt.createElement(Pb,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Nt.createElement(Lb,{value:s}),start:Nt.createElement(c,null)}});return Nt.createElement(oe,{header:{title:fg.t("Language")}},Nt.createElement(re,null,Nt.createElement(Ab,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Nt.createElement(Nb,{size:"8"}),Nt.createElement(Mb,{value:t},Nt.createElement(Wb,{type:Nt.createElement(Bb,{title:fg.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(gg,"LanguagePage");import{i18n as zt}from"@lingui/core";import{Button as Ob,Checkbox as Ub,Image as zb,ListItemButton as Qb,NotFound as Hb,Typography as qb}from"@rango-dev/ui";import Ke,{useState as Gb}from"react";import{Checkbox as $b,Skeleton as yg}from"@rango-dev/ui";import tr from"react";import{styled as Wl}from"@rango-dev/ui";var er=Wl("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Bl=Wl("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ll=Wl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as _b,styled as Db}from"@rango-dev/ui";var hg=Db(_b,{height:61});var Fb=30;function Ml(){return tr.createElement(er,null,Array.from(Array(Fb),(t,e)=>tr.createElement(hg,{hasDivider:!0,key:e,start:tr.createElement(yg,{variant:"circular",width:35,height:35}),title:tr.createElement(yg,{variant:"text",size:"large",width:90}),end:tr.createElement($b,{checked:!1})})))}i(Ml,"LoadingLiquiditySourceList");function Pl({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=Gb(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),c=Ir(o,n),p={Exchanges:zt.t("Exchanges"),Bridges:zt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=c.filter(C=>u.includes(C.type)),h=m.length===m.filter(C=>C.selected).length,d=i(()=>{m.forEach(C=>{h?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),f=m.map(C=>{let{selected:S,groupTitle:T,logo:w,id:E,...W}=C;return{id:`widget-setting-liquidity-source-${E.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:Ke.createElement(zb,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(T)},end:Ke.createElement(Ub,{checked:S,disabled:l}),title:Ke.createElement(qb,{variant:"title",size:"xmedium"},zt.t(T)),selected:S,groupTitle:T,logo:w,...W}}),g=i(C=>{let S=C.target.value;a(S)},"handleSearch"),k=f;return r&&(k=f.filter(C=>bt(C.groupTitle,r))),Ke.createElement(oe,{header:{title:zt.t(t),suffix:Ke.createElement(Bl,null,Ke.createElement(Ob,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:d},h?zt.t("Deselect all"):zt.t("Select all")))}},Ke.createElement(re,{view:!0},Ke.createElement(Tt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:zt.t("Search {sourceType}",{sourceType:p[t]}),onChange:g}),e==="loading"&&Ke.createElement(Ml,null),!k.length&&r?Ke.createElement(Ll,null,Ke.createElement(Hb,{title:zt.t("No results found"),description:zt.t("Try using different keywords")})):e==="success"&&Ke.createElement(er,{disabled:l},k.map(C=>{let{groupTitle:S,...T}=C;return Ke.createElement(Ke.Fragment,{key:C.id},Ke.createElement(Qb,{style:{height:"61px"},...T,selected:!1,hasDivider:!0}))}))))}i(Pl,"LiquiditySourcePage");import{i18n as Vb}from"@lingui/core";import Pi from"react";import{useNavigate as Kb}from"react-router-dom";function Sg(){let t=Kb(),e=Oe(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:l,loading:c}=Mi({refetchQuote:n}),p=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,m=`../${F.wallets}`;return Pi.createElement(oe,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Vb.t("Routes"),suffix:Pi.createElement(wo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Pi.createElement(re,null,Pi.createElement(Jn,{fetch:l,loading:c,onClickOnQuote:p})))}i(Sg,"RoutesPage");import{i18n as xg}from"@lingui/core";import{Divider as Eg,getCategoriesCount as nx,SelectableCategoryList as rx}from"@rango-dev/ui";import Qt,{useState as Ig}from"react";import{useNavigate as ix}from"react-router-dom";import{i18n as _l}from"@lingui/core";import{Divider as Zb,Image as Jb,ListItemButton as Rb,NotFound as ex,Typography as bg}from"@rango-dev/ui";import at,{useEffect as tx,useState as ox}from"react";var Cg=i((t,e,o)=>t.filter(n=>Cr(n.type,o)).filter(n=>tt(n.name,e)||tt(n.displayName,e)),"filterBlockchains");import{ImageContainer as jb,styled as kg}from"@rango-dev/ui";var Tg=kg("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),_i=kg(An,{padding:0,margin:0,listStyle:"none",[`& ${jb}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Xb,Skeleton as vg}from"@rango-dev/ui";import Di from"react";var Yb=20;function wg(){return Di.createElement(_i,null,Array.from(Array(Yb),t=>Di.createElement(Xb,{key:t,hasDivider:!0,start:Di.createElement(vg,{variant:"circular",width:35,height:35}),title:Di.createElement(vg,{variant:"text",size:"large",width:90})})))}i(wg,"LoadingBlockchainList");function Dl(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=ox(e),{fetchStatus:c}=y();tx(()=>{l([...Cg(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?at.createElement(ex,{title:_l.t("No results found"),description:_l.t("Try using different keywords")}):at.createElement(_i,{as:"ul",key:`${r}-${o}`},s.map(u=>at.createElement(Rb,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:at.createElement(Jb,{src:u.logo,size:30}),title:at.createElement(bg,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return at.createElement(at.Fragment,null,a&&at.createElement(at.Fragment,null,at.createElement(bg,{variant:"label",size:"large"},_l.t("Select Chain")),at.createElement(Zb,{size:4})),at.createElement(Tg,null,c==="loading"&&at.createElement(wg,null),c==="success"&&p()))}i(Dl,"BlockchainList");function $i(t){let{type:e}=t,o=Oe(),[n,r]=Ig(""),[a,s]=Ig("ALL"),l=O.use.setToBlockchain(),c=O.use.setFromBlockchain(),{fetchStatus:p}=y(),u=ix(),m=y().blockchains({type:e}),h=nx(m),d=!t.hideCategory&&h!==1;return Qt.createElement(oe,{header:{title:xg.t("Select Chain")}},Qt.createElement(re,{view:!0},d&&Qt.createElement(Qt.Fragment,null,Qt.createElement(rx,{setCategory:s,category:a,blockchains:m,isLoading:p==="loading"}),Qt.createElement(Eg,{size:24})),Qt.createElement(Tt,{value:n,autoFocus:!0,placeholder:xg.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Qt.createElement(Eg,{size:16}),Qt.createElement(Dl,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:f=>{e==="custom-token"?u(`..?blockchain=${f.name}`,{replace:!0}):(e==="source"?c(f):l(f),o())}})))}i($i,"SelectBlockchainPage");import{i18n as Ui}from"@lingui/core";import{Divider as Pg,Spinner as Sx}from"@rango-dev/ui";import ro,{useEffect as Cx,useState as kx}from"react";import{useNavigate as Tx}from"react-router-dom";import{i18n as Ol}from"@lingui/core";import{BlockchainsChip as Fi,Divider as Bg,Image as Lg,Skeleton as px,Tooltip as ux,Typography as Ul}from"@rango-dev/ui";import Me from"react";import{useEffect as lx}from"react";var Ag=["ETH","COSMOS","OSMOSIS"];function $l(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ax),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 p=n[c];s=s.filter(u=>p.name!==u)}}n.sort(sx(s)),r=n.splice(a)}return{list:n,more:r}}i($l,"prepare");function ax(t,e){let o=Ag,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(ax,"sortByMostUsedBlockchains");function sx(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(sx,"generateSortByPreferredBlockchainsFor");function Ng(t,e){return!!e.list.find(o=>o.name===t)}i(Ng,"isInVisibleList");function Fl(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();lx(()=>{if(e?.selected){let a=$l(t,o,e);Ng(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=$l(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Fl,"usePrepareBlockchainList");import{styled as cx}from"@rango-dev/ui";var Wg=cx("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var mx=12;function zl(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Fl(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),c=O.use.resetToBlockchain(),p=O.use.resetFromBlockchain(),u=s.more.length>0,m=s.more.length===1,h=!m&&u;return Me.createElement(Me.Fragment,null,Me.createElement(Bg,{size:12}),Me.createElement(Ul,{variant:"label",size:"large"},Ol.t("Select Chain")),Me.createElement(Bg,{size:12}),Me.createElement(Wg,null,l==="loading"&&Array.from(Array(mx),d=>Me.createElement(px,{key:d,variant:"rounded",height:50})),l==="success"&&Me.createElement(Me.Fragment,null,Me.createElement(Fi,{selected:!n,onClick:()=>{o==="from"?p():c()}},Me.createElement(Ul,{variant:"body",size:"xsmall",color:"secondary500"},Ol.t("All"))),s.list.map(d=>Me.createElement(ux,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:N()},Me.createElement(Fi,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Me.createElement(Lg,{src:d.logo,size:30})))),m?Me.createElement(Fi,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Me.createElement(Lg,{src:s.more[0].logo,size:30})):null,h?Me.createElement(Fi,{onClick:a,key:"more-blockchains"},Me.createElement(Ul,{variant:"body",size:"xsmall",color:"secondary500"},Ol._("More +{count}",{count:s.more.length}))):null)))}i(zl,"BlockchainsSection");import{useCallback as fx,useRef as gx,useState as Ql}from"react";function Hl(){let t=y().blockchains(),e=gx(null),{customTokens:o}=y(),[n,r]=Ql(!1),[a,s]=Ql([]),[l,c]=Ql(null),p=i(async(h,d)=>{c(null),r(!0),s([]);try{let f=await mt().searchCustomTokens({query:h,blockchain:d},{signal:e.current?.signal}),g=new Set(o().map(S=>Kt(S))),k=new Set(t.map(S=>S.name)),C=f.tokens.filter(S=>k.has(S.blockchain)&&!g.has(Kt(S)));s(C),r(!1)}catch(f){c(f instanceof Error?f.message:"something went wrong"),s([]),f?.name!=="CanceledError"&&r(!1)}},"fetch"),u=fx(Sr((h,d)=>{e.current?.signal.aborted||p(h,d)},600),[t.length]);return{fetch:(h,d)=>{e.current=new AbortController,s([]),r(!0),u(h,d)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:l}}i(Hl,"useSearchCustomTokens");function Oi(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(Oi,"shouldSearchForCustomTokens");function Mg(t,e,o,n,r){let a=[...t];return Oi(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(Mg,"prepareTokensList");function zi(t){let{type:e}=t,o=Tx(),n=Oe(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:c,setToBlockchain:p}=O(),{getBalanceFor:u}=y(),{fetch:m,loading:h,tokens:d,cancel:f}=Hl(),[g,k]=kx(""),C=e==="source"?r:a,S=C?.name??"",T=y().blockchains({type:e}),w=y().tokens({type:e,blockchain:S,searchFor:g,getBalanceFor:u}),E=Mg(w,d,g,h,C?.name),W=i(b=>{e==="source"?c(b):p(b)},"updateBlockchain"),A=i(b=>{e==="source"?s({token:b,meta:{blockchains:T}}):l({token:b,meta:{blockchains:T}})},"updateToken"),x={source:Ui.t("Source"),destination:Ui.t("Destination")};return Cx(()=>(Oi(w,g,C?.name)&&m(g,C?.name??void 0),()=>{f()}),[w.length,g,C?.name]),ro.createElement(oe,{header:{title:Ui.t("Swap {type}",{type:x[e]})}},ro.createElement(re,null,ro.createElement(zl,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{W(b)}}),ro.createElement(Pg,{size:24}),ro.createElement(Tt,{value:g,autoFocus:!0,placeholder:Ui.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>k(""),onChange:b=>k(b.target.value),suffix:Oi(w,g,C?.name)&&h?ro.createElement(Sx,{size:12,color:"secondary"}):void 0}),ro.createElement(Pg,{size:16}),ro.createElement(Vn,{list:E,selectedBlockchain:S,searchedFor:g,type:e,onChange:b=>{A(b);let v=T.find(I=>b.blockchain===I.name);v&&W(v),n()}})))}i(zi,"SelectSwapItemsPage");import{i18n as Vl}from"@lingui/core";import{Alert as Kx,Button as jx,styled as Xx}from"@rango-dev/ui";import Lo from"react";import{useInRouterContext as Yx,useSearchParams as Zx}from"react-router-dom";import{i18n as Ug}from"@lingui/core";import{Divider as zg,InfoIcon as xx,SlippageIcon as Ex,TextField as Ix,Tooltip as Ax,Typography as Qg}from"@rango-dev/ui";import st from"react";import{Chip as vx,styled as or,TextField as wx}from"@rango-dev/ui";var _g=or("div",{paddingTop:"$5",padding:"$10 $5"}),Dg=or("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${wx}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),$g=or("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Qi=or("div",{maxWidth:"280px",padding:"$10"}),Fg=or(vx,{width:"61px",flexShrink:0});import{i18n as ql}from"@lingui/core";import{Typography as bx}from"@rango-dev/ui";import nr from"react";function Og(){return nr.createElement(Qi,null,nr.createElement(bx,{variant:"label",size:"medium",color:"neutral700"},ql.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),nr.createElement("br",null),nr.createElement("br",null),nr.createElement("b",null,ql.t("Warning")),":\xA0",ql.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(Og,"SlippageTooltipContent");function Gl(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return st.createElement(_g,null,st.createElement($g,null,st.createElement(Ex,{size:16,color:"gray"}),st.createElement(zg,{direction:"horizontal",size:4}),st.createElement(Qg,{variant:"title",size:"xmedium"},Ug.t("Slippage tolerance per swap")),st.createElement(zg,{direction:"horizontal",size:4}),st.createElement(Ax,{container:N(),side:"top",sideOffset:4,content:st.createElement(Og,null)},st.createElement(xx,{color:"gray"}))),st.createElement(Dg,null,pp.map((r,a)=>{let s=`slippage-${a}`;return st.createElement(Fg,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),st.createElement(Ix,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=fp&&s<=dp?n(s):n(null)},suffix:o&&st.createElement(Qg,{variant:"body",size:"small"},"%"),placeholder:Ug.t("Custom")})))}i(Gl,"Slippage");import{i18n as gt}from"@lingui/core";import{AutoThemeIcon as Hg,BridgesIcon as Nx,ChevronRightIcon as Hi,DarkModeIcon as qg,Divider as rr,ExchangeIcon as Wx,InfinityIcon as Bx,InfoIcon as Lx,LanguageIcon as Mx,LightModeIcon as Gg,List as Px,ListItem as _x,ListItemButton as Dx,Skeleton as $x,styled as Fx,Switch as Ox,Tabs as Ux,TargetIcon as zx,Tooltip as Qx,Typography as et}from"@rango-dev/ui";import D from"react";import{useNavigate as Hx}from"react-router-dom";var qx=Fx("div",{width:"202px",height:"$40"}),Gx=[{id:"light",icon:D.createElement(Gg,{color:"black",size:24}),tooltip:D.createElement(et,{size:"xsmall",variant:"body"},gt.t("Light"))},{id:"dark",icon:D.createElement(qg,{color:"black",size:24}),tooltip:D.createElement(et,{size:"xsmall",variant:"body"},gt.t("Dark"))},{id:"auto",icon:D.createElement(Hg,{color:"black",size:24}),tooltip:D.createElement(et,{size:"xsmall",variant:"body"},gt.t("Auto"))}],Vx=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(Hg,{...e});case"dark":return D.createElement(qg,{...e});default:return D.createElement(Gg,{...e})}},"getThemeIcon");function Vg(){let t=Hx(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=no(),s=a.find(B=>B.local===r)?.label,l=y().fetchStatus,c=y().swappers(),p=y().getDisabledLiquiditySources(),{config:{features:u}}=y(),m=y().customTokens(),h=Ye("theme",u),d=Ye("liquiditySource",u),f=Ye("language",u),g=Ye("customTokens",u),k=y().infiniteApprove,C=y().toggleInfiniteApprove,S=Ir(c,p),T=S.filter(B=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(B.type)),w=T.length,E=T.filter(B=>B.selected).length,W=S.filter(B=>B.type==="DEX"),A=W.length,x=W.filter(B=>B.selected).length,b=i((B,X)=>{switch(l){case"loading":return D.createElement($x,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(et,{variant:"body",size:"medium",color:"$error500"},gt.t("Loading failed"));default:return D.createElement(et,{variant:"body",size:"medium"},`${B} / ${X}`)}},"handleSwapperEndItem"),v={id:"widget-setting-bridge-item-btn",title:D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Bridges")),end:D.createElement(D.Fragment,null,b(E,w),D.createElement(rr,{direction:"horizontal",size:8}),D.createElement(Hi,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(Nx,{color:"gray",size:16})},I={id:"widget-setting-exchange-item-btn",title:D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Exchanges")),end:D.createElement(D.Fragment,null,b(x,A),D.createElement(rr,{direction:"horizontal",size:8}),D.createElement(Hi,{color:"black"})),start:D.createElement(Wx,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},M={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(et,{variant:"body",size:"medium"},`${m.length}`),D.createElement(rr,{direction:"horizontal",size:8}),D.createElement(Hi,{color:"black"})),start:D.createElement(zx,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},$={id:"widget-setting-language-item-btn",title:D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Language")),start:D.createElement(Mx,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(et,{variant:"body",size:"medium"},s),D.createElement(rr,{direction:"horizontal",size:8}),D.createElement(Hi,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Infinite approval")),D.createElement(rr,{direction:"horizontal",size:4}),D.createElement(Qx,{side:"top",sideOffset:4,container:N(),content:D.createElement(Qi,null,D.createElement(et,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,gt.t("Warning")),":\xA0",gt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(Lx,{color:"gray"}))),start:D.createElement(Bx,{color:"gray",size:16}),end:D.createElement(Ox,{checked:k}),onClick:C},Z={id:"widget-setting-theme-item-btn",type:D.createElement(_x,null),title:D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Theme")),end:D.createElement(qx,null,D.createElement(Ux,{container:N(),items:Gx,value:n,onChange:B=>o(B.id),type:"primary",borderRadius:"small"})),start:Vx(n)},j=d?[]:[v,I];return g||j.push(M),f||j.push($),j.push(q),!e?.singleTheme&&!h&&j.push(Z),D.createElement(Px,{type:D.createElement(Dx,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:j})}i(Vg,"SettingsLists");var Jx=Xx("div",{paddingLeft:"$8"});function Kg(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=Zx(),r=Yx(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Lo.createElement(oe,{header:{title:Vl.t("Settings")}},Lo.createElement(re,null,o&&Lo.createElement(Kx,{type:"info",variant:"alarm",title:Vl.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:Lo.createElement(Jx,null,Lo.createElement(jx,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Vl.t("Reset")))}),Lo.createElement(Gl,null),Lo.createElement(Vg,null)))}i(Kg,"SettingsPage");import{i18n as UE}from"@lingui/core";import{cancelSwap as zE}from"@rango-dev/queue-manager-rango-preset";import{useManager as QE}from"@rango-dev/queue-manager-react";import{Alert as HE}from"@rango-dev/ui";import cc from"react";import{useParams as qE}from"react-router-dom";import{i18n as lt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as TE,getCurrentStep as vE,getRelatedWalletOrNull as wE}from"@rango-dev/queue-manager-rango-preset";import{Button as Ih,CopyIcon as bE,Divider as xE,DoneIcon as EE,IconButton as IE,QuoteCost as AE,RangoExplorerIcon as NE,StepDetails as WE,Tooltip as Ah,Typography as Mo,useCopyToClipboard as BE}from"@rango-dev/ui";import{useWallets as LE}from"@rango-dev/wallets-react";import Nh from"bignumber.js";import{PendingSwapNetworkStatus as Zi}from"rango-types";import Y,{useEffect as Wh,useRef as ME,useState as Bh}from"react";import{useNavigate as PE}from"react-router-dom";import{i18n as io}from"@lingui/core";var Rx=[io.t("Sunday"),io.t("Monday"),io.t("Tuesday"),io.t("Wednesday"),io.t("Thursday"),io.t("Friday"),io.t("Saturday")];function jg(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?io.t("Today"):`${Rx[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(jg,"timeSince");function Xg(t){return t.finishTime?jg(parseInt(t.finishTime)):jg(parseInt(t.creationTime))}i(Xg,"getSwapDate");import{PendingSwapNetworkStatus as Vi}from"rango-types";import Ki from"react";import{i18n as qi}from"@lingui/core";import{Button as Yg,Divider as Kl,MessageBox as eE}from"@rango-dev/ui";import ao from"react";var Zg=i(({onCancel:t,onClose:e})=>ao.createElement(ao.Fragment,null,ao.createElement(Kl,{size:20}),ao.createElement(eE,{type:"error",title:qi.t("Cancel Swap"),description:qi.t("Are you sure you want to cancel this swap?")}),ao.createElement(Kl,{size:32}),ao.createElement(Yg,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},qi.t("Yes, Cancel it")),ao.createElement(Kl,{size:12}),ao.createElement(Yg,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},qi.t("No, Continue"))),"CancelContent");import{i18n as Gi}from"@lingui/core";import{Button as Jg,Divider as jl,MessageBox as tE,Typography as oE}from"@rango-dev/ui";import Ht from"react";var Rg=i(({onDelete:t,onClose:e})=>Ht.createElement(Ht.Fragment,null,Ht.createElement(jl,{size:20}),Ht.createElement(tE,{type:"error",title:Gi.t("Delete Transaction"),description:Gi.t("Are you sure you want to delete this swap?")}),Ht.createElement(jl,{size:32}),Ht.createElement(Jg,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Gi.t("Yes, Delete it")),Ht.createElement(jl,{size:12}),Ht.createElement(Jg,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Ht.createElement(oE,{variant:"title",size:"medium",color:"primary"},Gi.t("No, Cancel")))),"DeleteContent");import{i18n as Xl}from"@lingui/core";import{PendingSwapNetworkStatus as Yl}from"rango-types";var Zl={[Yl.WaitingForNetworkChange]:{type:"loading",title:Xl.t("Change Network")},[Yl.WaitingForConnectingWallet]:{type:"warning",title:Xl.t("Connect Wallet")},[Yl.NetworkChanged]:{type:"success",title:Xl.t("Network Changed")}};import{warn as nE}from"@rango-dev/logging-core";import{MessageBox as rE,Wallet as iE}from"@rango-dev/ui";import{useWallets as aE}from"@rango-dev/wallets-react";import ln,{useState as sE}from"react";import{styled as Jl}from"@rango-dev/ui";var eh=Jl("div",{display:"flex",justifyContent:"center"}),GK=Jl("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),th=Jl("img",{width:"100%"});var oh=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,c]=sE(),{getWalletInfo:p,state:u}=aE(),m=n?.walletType,h=m?gn(u(m)):null,d=m?p(m):null,f=a&&!!m&&!!h&&!!d,{list:g}=ht(),k=i(()=>{if(m){let C=g.find(S=>S.type===m);C?c(C):nE(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${C}`))}},"handleWalletItemClick");return ln.createElement(ln.Fragment,null,ln.createElement(rE,{type:e,title:o,description:r}),f&&ln.createElement(eh,null,ln.createElement(iE,{container:N(),title:d.name,image:d.img,type:m,state:h,link:d.installLink,disabled:s,onClick:k})),ln.createElement(So,{wallet:l,onClose:()=>{c(void 0)}}))},"WalletStateContent");function Rl(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,c=e===Vi.WaitingForNetworkChange||e===Vi.WaitingForConnectingWallet||e===Vi.NetworkChanged;return Ki.createElement(R,{open:!!e,onClose:o,container:document.getElementById($e.SWAP_BOX_ID)||document.body},c&&Ki.createElement(oh,{type:Zl[e].type,title:Zl[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==Vi.WaitingForNetworkChange}),e==="delete"&&Ki.createElement(Rg,{onClose:o,onDelete:n}),e==="cancel"&&Ki.createElement(Zg,{onClose:o,onCancel:r}))}i(Rl,"SwapDetailsModal");import{i18n as ir}from"@lingui/core";import{Button as ec,Divider as ar,MessageBox as ih,TokenAmount as lE,Typography as ah}from"@rango-dev/ui";import de from"react";import{Link as cE,useNavigate as pE}from"react-router-dom";var nh="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",rh="/profile";function tc(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:c,chain:p,percentageChange:u,description:m,diagnosisUrl:h}=t,d=pE(),{showProfileBanner:f}=ne();return de.createElement(R,{open:e,onClose:o,container:document.getElementById($e.SWAP_BOX_ID)||document.body},n==="success"?de.createElement(ih,{type:"success",title:ir.t("Swap Successful")},de.createElement(lE,{direction:"vertical",tooltipContainer:N(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:c,chain:p,percentageChange:u}),de.createElement(ar,{size:12}),de.createElement(ah,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):de.createElement(ih,{type:"error",title:ir.t("Transaction Failed"),description:m}),de.createElement(ar,{size:30}),n==="success"&&de.createElement(de.Fragment,null,f&&de.createElement(de.Fragment,null,de.createElement(cE,{to:rh},de.createElement(th,{src:nh,alt:"Profile Banner"})),de.createElement(ar,{size:30})),de.createElement(ec,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},ir.t("Done"))),de.createElement(ar,{size:12}),h&&de.createElement(de.Fragment,null,de.createElement(ec,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},ir.t("Diagnosis")),de.createElement(ar,{size:12})),de.createElement(ec,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},de.createElement(ah,{variant:"title",size:"medium",color:"primary"},ir.t("See Details"))))}i(tc,"SwapDetailsCompleteModal");import kE from"react";import{i18n as hE}from"@lingui/core";import{Alert as wh,IconButton as yE,LinkIcon as SE}from"@rango-dev/ui";import so,{Fragment as CE}from"react";import{Alert as mE,ChevronDownIcon as dE,IconButton as fE}from"@rango-dev/ui";import pn,{useState as gE}from"react";import{css as sr,darkTheme as sh,styled as qt,Typography as uE}from"@rango-dev/ui";var lh=qt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ji=qt("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${sh} &`]:{color:"$secondary500"}}}}}),ch=qt(An,{padding:"$0 $20 $20 $20"}),L4=qt("div",{display:"flex",flexDirection:"column",gap:"$10"}),ph=qt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),M4=qt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),cn=sr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${sh} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),uh=sr({padding:"$5 0"}),Xi=sr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),mh=sr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),dh=sr({width:"100%",padding:"0 $20 $10"}),fh=qt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),gh=qt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Yi=qt(uE,{wordBreak:"break-word"});import{styled as oc}from"@rango-dev/ui";var hh=oc("div",{display:"flex",flexDirection:"column",gap:"$10"}),yh=oc("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Sh=oc("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Ch(t){let{message:e}=t,[o,n]=gE(!1);return pn.createElement(mE,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&pn.createElement(fE,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},pn.createElement(yh,{rotated:o},pn.createElement(dE,{size:12,color:"gray"}))),footer:pn.createElement(Sh,{open:o},pn.createElement(Yi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Ch,"FailedAlert");import{i18n as kh}from"@lingui/core";import{Alert as nc,Button as Th}from"@rango-dev/ui";import{PendingSwapNetworkStatus as rc}from"rango-types";import lr from"react";function vh(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?lr.createElement(nc,{type:"warning",title:n.shortMessage,action:lr.createElement(Th,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(rc.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},kh.t("Change"))}):r===rc.WaitingForConnectingWallet?lr.createElement(nc,{type:"warning",title:n.shortMessage,action:lr.createElement(Th,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(rc.WaitingForConnectingWallet)}},kh.t("Connect"))}):lr.createElement(nc,{type:"warning",title:n.shortMessage})}i(vh,"WarningAlert");function ic(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=En(a),c=a.status==="waitingForApproval"&&!l,p=a.status==="running"&&!l,u=p&&!s||c&&!a.explorerUrl?.length;return so.createElement(hh,null,a.explorerUrl?.map((m,h,d)=>{let f=h+m.url,g=h===d.length-1,k=(g&&p||c)&&!u,C=g&&a.status==="failed";return so.createElement(CE,{key:f},so.createElement(wh,{type:g&&(k&&"loading"||C&&"error")||"success",title:m.description?`${m.description} Tx`:hE.t("View transaction"),action:m.url&&so.createElement(yE,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},so.createElement(SE,{size:12}))}))}),u&&so.createElement(wh,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&so.createElement(vh,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&so.createElement(Ch,{message:r}))}i(ic,"SwapDetailsAlerts");var bh=2e3;var xh=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:pt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:P(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:pt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:P(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:un(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(c=>({from:{chain:{displayName:pt(c.fromBlockchain,e)??"",image:c.fromBlockchainLogo??""}},to:{chain:{displayName:pt(c.toBlockchain,e)??"",image:c.toBlockchainLogo??""}},swapper:{displayName:un(c.swapperId,o)??"",image:c.swapperLogo??"",type:c.swapperType}})):[],alerts:kE.createElement(ic,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Eh(t){if(En(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(Eh,"getStepState");function ac(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=LE(),c=y().blockchains(),p=y().swappers(),{findToken:u}=y(),m=O.use.retry(),h=ne.use.isActiveTab(),d=PE(),[f,g]=BE(bh),k=ME(null),[C,S]=Bh(null),[T,w]=Bh(null),E=i(()=>{r(),S(null)},"onCancel"),W=we.use.getNotifications(),A=we.use.removeNotification(),x=W(),b=vE(e),v=b?.networkStatus;Wh(()=>{x.find(De=>De.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),A(e.requestId)):T&&w(null))},[e.status,e.requestId]),Wh(()=>{B?S(Zi.WaitingForNetworkChange):v===Zi.WaitingForConnectingWallet||v===Zi.NetworkChanged?S(v):S(null)},[v]);let I=bu(e),M=b?TE(e,b):null,$=b?wE(e,b):null,q=Xg(e),Z=xu(e),j=i(ke=>!!l(ke)?.mobileWallet,"isMobileWallet"),B=v===Zi.WaitingForNetworkChange&&!!M&&!!$?.walletType&&(j($.walletType)||a($.walletType,M.network)),X=B?s.bind(null,$.walletType,[{namespace:M.namespace,network:M.network}]):void 0,ae=wu(e,b),K=xh({swap:e,switchNetwork:X,showNetworkModal:v,setNetworkModal:S,message:ae,blockchains:c,swappers:p}),fe=K.length,[Ie,je]=[e.steps[0],e.steps[fe-1]],se=je.outputAmount||je.expectedOutputAmountHumanReadable,ct=e.steps.reduce((ke,De)=>ke+parseFloat(De.feeInUsd||""),0),G=e.steps.find(ke=>ke.diagnosisUrl)?.diagnosisUrl,_=P(parseFloat(se||"0")*(je.toUsdPrice||0),4,4),H=P(parseFloat(e.inputAmount)*(Ie.fromUsdPrice||0),4,4),V=se?new Nh(se).multipliedBy(je.toUsdPrice||0).toString():"",ge=new Nh(e.inputAmount).multipliedBy(Ie.fromUsdPrice||0).toString(),le=Mt(H,_),_e=ae.detailedMessage.content||ae.shortMessage,Xe=e.status==="success"?lt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:P(se,6,6),token:K[fe-1].to.token.displayName,conciseAddress:xr(e.wallets[K[fe-1].to.chain.displayName]?.address||""),chain:K[fe-1].to.chain.displayName}}):Y.createElement(gh,null,Y.createElement(Mo,{variant:"body",size:"medium",color:"neutral700",align:"center"},_e?"":lt.t("Transaction was not sent."),I?`${lt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:I.outputAmount,symbol:I.symbol,blockchain:I.blockchain}})}`:""),_e&&Y.createElement(Yi,{align:"center",variant:"body",size:"medium",color:"neutral700"},Y.createElement("b",null,"Reason:")," ",_e));return Y.createElement(oe,{header:{title:lt.t("Swap Details"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&Y.createElement(jt,null,Y.createElement(Ih,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},Y.createElement(Mo,{size:"medium",variant:"label",color:"error"},lt.t("Delete"))))},footer:Z&&!T&&Y.createElement(Ih,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let ke=Fr(e,c,u);m(ke),setTimeout(()=>{d("../../")},0)}},lt.t("Try again"))},Y.createElement(re,{compact:!0,view:!0},Y.createElement(ji,null,Y.createElement("div",{className:cn()},Y.createElement(Mo,{variant:"label",size:"large",color:"neutral700"},`${lt.t("Request ID")}`),Y.createElement("div",{className:Xi()},Y.createElement(Mo,{variant:"label",size:"small",color:"neutral700"},o),Y.createElement(Ah,{container:N(),content:f?lt.t("Copied To Clipboard"):lt.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},Y.createElement(IE,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:g.bind(null,o||"")},f?Y.createElement(EE,{size:16,color:"secondary"}):Y.createElement(bE,{size:16,color:"gray"}))),Y.createElement(fh,{target:"_blank",href:`${Lc}/swap/${o}`},Y.createElement(Ah,{container:N(),content:lt.t("View on Rango Explorer"),side:"bottom"},Y.createElement(NE,{size:20}))))),Y.createElement("div",{className:cn()},Y.createElement(Mo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?lt.t("Finished at"):lt.t("Created at")),Y.createElement(Mo,{variant:"label",size:"small",color:"neutral700"},q))),Y.createElement("div",{className:mh()},Y.createElement(AE,{fee:P(String(ct),2,2),time:dn(kr(e.steps)),steps:fe}),Y.createElement(_n,{from:{price:{value:P(e.inputAmount,6,6),usdValue:H,realUsdValue:ge,realValue:e.inputAmount},token:{displayName:K[0].from.token.displayName,image:K[0].from.token.image},chain:{image:K[0].from.chain.image,displayName:K[0].from.chain.displayName}},to:{price:{value:P(se,6,6),usdValue:_,realUsdValue:V,realValue:se||""},token:{displayName:K[fe-1].to.token.displayName,image:K[fe-1].to.token.image},chain:{image:K[fe-1].to.chain.image,displayName:K[fe-1].to.chain.displayName}},percentageChange:P(le,2,2),warningLevel:Pt(le??0)})),Y.createElement("div",{className:dh()},Y.createElement(Mo,{variant:"title",size:"small"},lt.t("Swaps steps"))),Y.createElement(xE,{size:8}),Y.createElement(ch,{ref:k},K.map((ke,De)=>{let Gt=De,lo=Eh(e.steps[De]),iy=lo==="error"||lo==="in-progress"||lo==="warning"||lo==="completed"&&De===K.length-1;return Y.createElement(WE,{key:Gt,step:ke,type:"swap-progress",ref:k,state:lo,hasSeparator:De!==0,tabIndex:Gt,isFocused:iy,tooltipContainer:N()})}))),Y.createElement(Rl,{state:C,onClose:()=>S(null),onCancel:E,onDelete:n,message:ae.detailedMessage.content,currentStepWallet:$,walletButtonDisabled:!h}),Y.createElement(tc,{open:!!T,diagnosisUrl:G,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:P(se,6,6),usdValue:_,realUsdValue:V,realValue:se||"",percentageChange:P(le,2,2),token:{displayName:K[fe-1].to.token.displayName,image:K[fe-1].to.token.image},chain:{image:K[fe-1].to.chain.image},description:Xe}))}i(ac,"SwapDetails");import{i18n as Ri}from"@lingui/core";import{Divider as Ph,NotFound as OE,Skeleton as pr,Typography as ea}from"@rango-dev/ui";import Ce from"react";import{i18n as _E}from"@lingui/core";import{Divider as DE,Skeleton as $E,Typography as FE}from"@rango-dev/ui";import Te from"react";import{css as wt,styled as sc}from"@rango-dev/ui";var Lh=sc("div",{width:"100%",height:"100%",padding:"$10 $20"}),cr=sc("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ji=sc("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),G8=wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),V8=wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),K8=wt({paddingTop:"$15",display:"flex"}),j8=wt({padding:"$15 $0"}),X8=wt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),Y8=wt({paddingBottom:"$10"}),Z8=wt({display:"flex",justifyContent:"start",alignItems:"center"}),J8=wt({paddingTop:"$5",display:"flex",alignItems:"center"}),R8=wt({display:"flex",alignItems:"center"}),e6=wt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Mh=wt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function lc(){return Te.createElement(Lh,null,Te.createElement(Fn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(FE,{variant:"title",size:"small"},_E.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(cr,null,Te.createElement(At,{separator:!1}),Te.createElement("div",{className:Mh()},Te.createElement(DE,{direction:"horizontal",size:20}),Te.createElement($E,{height:22,variant:"rectangular"}))),Te.createElement(Ji,null),Te.createElement(cr,null,Te.createElement(At,{separator:!1})),Te.createElement(Ji,null),Te.createElement(cr,null,Te.createElement(At,{separator:!1})),Te.createElement(Ji,null),Te.createElement(cr,null,Te.createElement(At,{separator:!1}))))}i(lc,"LoadingSwapDetails");function _h(t){let{requestId:e,showSkeleton:o}=t;return Ce.createElement(oe,{header:{title:Ri.t("Swap Details"),suffix:Ce.createElement(jt,null)}},o&&Ce.createElement(lh,null,Ce.createElement(ji,null,Ce.createElement("div",{className:cn()},Ce.createElement(ea,{variant:"label",size:"large",color:"neutral700"},`${Ri.t("Request ID")}`),Ce.createElement("div",{className:Xi()},Ce.createElement(ea,{variant:"label",size:"small",color:"neutral700"},Ce.createElement(pr,{width:60,height:10,variant:"rounded"})),Ce.createElement(Ph,{direction:"horizontal",size:4}),Ce.createElement(pr,{width:16,height:16,variant:"rectangular"}),Ce.createElement(Ph,{direction:"horizontal",size:4}),Ce.createElement(pr,{width:16,height:16,variant:"rectangular"}))),Ce.createElement("div",{className:cn()},Ce.createElement(ea,{className:uh(),variant:"label",size:"large",color:"neutral700"},Ce.createElement(pr,{width:60,height:10,variant:"rounded"})),Ce.createElement(ea,{variant:"label",size:"small",color:"neutral700"},Ce.createElement(pr,{width:60,height:10,variant:"rounded"})))),Ce.createElement(lc,null)),!o&&Ce.createElement(ph,null,Ce.createElement(OE,{title:Ri.t("Not found"),description:Ri.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(_h,"SwapDetailsPlaceholder");function Dh(){let{manager:t,state:e}=QE(),o=!e.loadedFromPersistor,n=ft(t),{requestId:r}=qE(),a=Oe(),{fetchStatus:s}=y();if(!r)return cc.createElement(HE,{containerStyles:{margin:"20px"},type:"error",title:UE.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,p=i(()=>{if(c?.id){let h=t?.get(c.id);h&&zE(h)}},"onCancel"),u=i(async()=>{if(c?.id)try{t?.deleteQueue(c.id),a()}catch(h){console.log(h)}},"onDelete"),m=c?.swap;return!m||l?cc.createElement(_h,{requestId:r,showSkeleton:l}):cc.createElement(ac,{swap:m,requestId:r,onCancel:p,onDelete:u})}i(Dh,"SwapDetailsPage");import{i18n as $h}from"@lingui/core";import{Divider as GE,getCategoriesCount as VE,SelectableCategoryList as KE,styled as Oh,Typography as jE,Wallet as XE}from"@rango-dev/ui";import Wt,{useState as Fh}from"react";var YE=Oh("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),ZE=Oh(re,{textAlign:"center"});function Uh(){let{fetchStatus:t}=y(),[e,o]=Fh("ALL"),n=y().blockchains(),{config:r}=y(),[a,s]=Fh(),l=ne.use.isActiveTab(),{list:c}=ht(),p=Rc(c,n),m=VE(p)!==1,h=ep(c,e),d=i(f=>{Qc(c,r.multiWallets)||s(f)},"handleWalletItemClick");return Wt.createElement(oe,{header:{title:$h.t("Connect Wallets")}},Wt.createElement(ZE,null,m&&Wt.createElement(Wt.Fragment,null,Wt.createElement(KE,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),Wt.createElement(GE,{size:24})),Wt.createElement(jE,{variant:"title",size:"xmedium",align:"center"},$h.t("Choose a wallet to connect.")),Wt.createElement(YE,null,h.map((f,g)=>{let k=`wallet-${g}-${f.type}`;return Wt.createElement(XE,{key:k,...f,container:N(),onClick:()=>d(f),isLoading:t==="loading",disabled:!l})}),Wt.createElement(So,{wallet:a,onClose:()=>{s(void 0)}}))))}i(Uh,"WalletsPage");function zh(){return Nu(),Ga(),JE([{path:F.home,element:Pe.createElement(dg,null)},{path:F.routes,element:Pe.createElement(Sg,null)},{path:F.fromSwap,children:[{index:!0,element:Pe.createElement(zi,{type:"source"})},{path:F.blockchains,element:Pe.createElement($i,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:Pe.createElement(zi,{type:"destination"})},{path:F.blockchains,element:Pe.createElement($i,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:Pe.createElement(Kg,null)},{path:F.languages,element:Pe.createElement(gg,null)},{path:F.exchanges,element:Pe.createElement(Pl,{sourceType:"Exchanges"})},{path:F.bridges,element:Pe.createElement(Pl,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:Pe.createElement(wf,null)},{path:F.addCustomTokens,children:[{index:!0,element:Pe.createElement(dm,null)},{path:F.blockchains,element:Pe.createElement($i,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:Pe.createElement(Hf,null)},{path:F.swapDetails,element:Pe.createElement(Dh,null)}]},{path:F.wallets,element:Pe.createElement(Uh,null)},{path:F.confirmSwap,element:Pe.createElement(cf,null)}])}i(zh,"AppRoutes");import{useQueueManager as sI}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as lI}from"@rango-dev/wallets-shared";import{isEvmBlockchain as cI}from"rango-sdk";import{useContext as pI,useEffect as jh,useState as Xh}from"react";import{globalCss as RE}from"@rango-dev/ui";var Qh=i(()=>RE({"@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 Hh(){let{setWatermark:t,setShowProfileBanner:e}=ne();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Lt("BASE_URL")}/meta/dapp/config?apiKey=${Lt("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(Hh,"useFetchApiConfig");import{useWallets as eI}from"@rango-dev/wallets-react";import{useEffect as tI,useRef as oI}from"react";function qh(){let{connect:t,state:e}=eI(),o=oI({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);tI(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(qh,"useForceAutoConnect");import{isApprovalTX as nI,RouteEventType as Gh,StepEventType as Vh,StepExecutionEventStatus as rI,WidgetEvents as ta}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Kh}from"react";function pc(){let t=we.use.setNotification(),{connectedWallets:e,fetchBalances:o}=y();Kh(()=>{let n=i(r=>{let{event:a,step:s,route:l}=r;if(a.type===Vh.TX_EXECUTION&&a.status===rI.TX_SENT&&!nI(s)||a.type===Vh.SUCCEEDED){let p=l.wallets[s?.fromBlockchain],u=e.find(m=>m.address?.toLocaleLowerCase()===p.address?.toLocaleLowerCase()&&m.walletType===p.walletType&&m.chain===s?.fromBlockchain);if(u&&o([u]),s?.fromBlockchain!==s?.toBlockchain){let m=l.wallets[s?.toBlockchain],h=e.find(d=>d.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&d.walletType===m.walletType&&d.chain===s?.toBlockchain);h&&o([h])}}t(a,l)},"handleStepEvent");return he.on(ta.StepEvent,n),()=>he.off(ta.StepEvent,n)},[he,e]),Kh(()=>{let n=i(r=>{let{event:a,route:s}=r;(a.type===Gh.FAILED||a.type===Gh.SUCCEEDED)&&t(a,s)},"handleRouteEvent");return he.on(ta.RouteEvent,n),()=>he.off(ta.RouteEvent,n)},[he])}i(pc,"useSubscribeToWidgetEvents");import{useManager as iI}from"@rango-dev/queue-manager-react";import{useEffect as aI}from"react";function uc(){let{isSynced:t,syncNotifications:e}=we(),{manager:o,state:n}=iI();aI(()=>{we.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ft(o))},[we.persist.hasHydrated(),n.loadedFromPersistor,t])}i(uc,"useSyncNotifications");function mc(){qh(),Qh(),pc(),uc();let t=y().blockchains(),{canSwitchNetworkTo:e}=ri(),[o,n]=Xh(""),[r,a]=Xh(),s=pI(Pr),l=t.filter(cI),{fetchApiConfig:c}=Hh();jh(()=>()=>Au(),[]),sI({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),jh(()=>(fo.init(),we.persist.hasHydrated()||we.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(p=>{a(p),p===lI(o)?.[0]&&n("")}),c().catch(console.log),fo.destroy),[])}i(mc,"useBootstrap");import{styled as uI}from"@rango-dev/ui";var Yh=uI("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function oa(){mc();let{config:t}=y(),{activeTheme:e}=Yo(t?.theme||{}),{activeLanguage:o}=no();return dc.createElement(mI,{language:o},dc.createElement(Yh,{id:"swap-container",className:e()},dc.createElement(zh,null)))}i(oa,"Main");import{setSolanaSignerConfig as LI}from"@rango-dev/signer-solana";import gc,{useEffect as oy,useMemo as MI}from"react";import{useState as dI}from"react";var fI=i(()=>{let[t,e]=dI(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=zc(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Zh=fI;import{checkWaitingForNetworkChange as gI,makeQueueDefinition as hI}from"@rango-dev/queue-manager-rango-preset";import{Provider as yI}from"@rango-dev/queue-manager-react";import{useWallets as SI}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as CI}from"@rango-dev/wallets-shared";import{isEvmBlockchain as kI}from"rango-types";import TI,{useMemo as vI}from"react";function wI(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=SI(),l=vI(()=>hI({API_KEY:t.apiKey||Lt("API_KEY"),BASE_URL:Lt("BASE_URL"),emitter:{emit:he.emit}}),[t.apiKey]),{blockchains:c,connectedWallets:p}=y(),u=c(),m={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},h=i(async(w,E)=>a(w,E.network)?await r(w,[E]):void 0,"switchNetwork"),d=i(w=>!!s(w).mobileWallet,"isMobileWallet"),f=u.filter(w=>w.enabled).reduce((w,E)=>(w[E.name]=E,w),{}),g=u.filter(kI),k=i(w=>{let{supportedChains:E}=s(w);return hn(E)},"getSupportedChainNames"),C=e(),S={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:CI(g),getSupportedChainNames:k},getSigners:o,wallets:m,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:d},T=ne.use.isActiveTab();return TI.createElement(yI,{queuesDefs:[l],context:S,onPersistedDataLoaded:w=>{gI(w)},isPaused:!T},t.children)}i(wI,"QueueManager");var Jh=wI;import{useManager as AI}from"@rango-dev/queue-manager-react";import NI,{createContext as WI,useContext as BI}from"react";function Rh(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=O();return i(p=>{let{fromBlockchain:u,fromToken:m,toBlockchain:h,toToken:d,requestAmount:f}=p,g={blockchains:e,tokens:o};if(u!==void 0){let k=e.find(C=>C.name===u)??null;n(k)}if(m!==void 0){let k=m?t(m)??null:null;r({meta:g,token:k})}if(h!==void 0){let k=e.find(C=>C.name===h)??null;a(k)}if(d!==void 0){let k=d?t(d)??null:null;s({meta:g,token:k})}f!==void 0&&l(f)},"updateQuoteInputs")}i(Rh,"useUpdateQuoteInputs");import{cancelSwap as bI,getCurrentNamespaceOfOrNull as xI,getCurrentStep as EI,getRelatedWalletOrNull as II}from"@rango-dev/queue-manager-rango-preset";var na=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return ft(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=Fr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&bI(o)}getCurrentStepInfo(e){let o=EI(e);return{step:o,wallet:o?II(e,o):null,network:o?xI(e,o)?.network:null}}};var ey=WI(void 0);function fc(t){let{manager:e}=AI(),o=ne.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:l}=y(),c=new na(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=y(),u=Kc(a()),m=y().blockchains(),h=y().tokens(),d=y().swappers(),f=y().fetchStatus,g=no().resetLanguage,k=we().getNotifications(),C=we().clearNotifications,S=Rh(),{fromBlockchain:T,toBlockchain:w,fromToken:E,toToken:W,inputAmount:A}=O(),x={isActiveTab:o,setCurrentTabAsActive:fo.forceClaim,history:c,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async b=>l(b)},meta:{blockchains:m,tokens:h,swappers:d,loadingStatus:f,findToken:r},resetLanguage:g,notifications:{list:k,clearAll:C},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:E?{symbol:E.symbol,blockchain:E.blockchain,address:E.address}:null,toBlockchain:w?.name??null,toToken:W?{symbol:W.symbol,blockchain:W.blockchain,address:W.address}:null,requestAmount:A},updateQuoteInputs:S}};return NI.createElement(ey.Provider,{value:x},t.children)}i(fc,"WidgetInfo");function ty(){let t=BI(ey);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(ty,"useWidget");function ra(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Zh();return oy(()=>{n&&r(n)},[n]),MI(()=>{tp({API_KEY:o?.apiKey||hr,BASE_URL:o?.apiUrl||Bc})},[o.apiKey,o.apiUrl]),oy(()=>{t.config?.signers?.customSolanaRPC&&LI("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),gc.createElement(_r,{config:o,onUpdateState:e},gc.createElement(Jh,{apiKey:o.apiKey},gc.createElement(fc,null,t.children)))}i(ra,"WidgetProvider");function ny(t){let e=t.config?.externalWallets;return ia.createElement(Yp,null,e?ia.createElement(oa,null):ia.createElement(ra,{config:t.config??fr},ia.createElement(oa,null)))}i(ny,"Widget");function ry(){let{on:t,off:e}=he;return{on:t,off:e}}i(ry,"useWidgetEvents");var sY={DerivationPath:vn,Namespaces:Tn,isOnDerivationPath:bn,isOnNamespace:wn};export{MX as EventSeverity,Uo as MainEvents,HX as Networks,VX as PendingSwapNetworkStatus,ka as QuoteEventTypes,PX as RouteEventType,ca as SUPPORTED_FONTS,sY as StatefulConnect,_X as StepEventType,DX as StepExecutionBlockedEventStatus,$X as StepExecutionEventStatus,$e as UI_ID,va as UiEventTypes,Ta as WalletEventTypes,zX as WalletEvents,qX as WalletTypes,ny as Widget,Uo as WidgetEvents,ra as WidgetProvider,_r as WidgetWallets,rs as customizedThemeTokens,OX as readAccountAddress,Vt as useStatefulConnect,ht as useWalletList,ri as useWallets,ty as useWidget,ry as useWidgetEvents,lS as widgetEventEmitter};
1
+ var ly=Object.defineProperty;var i=(t,e)=>ly(t,"name",{value:e,configurable:!0});import{EventSeverity as PX,RouteEventType as _X,StepEventType as DX,StepExecutionBlockedEventStatus as $X,StepExecutionEventStatus as FX}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as UX}from"@rango-dev/wallets-core/legacy";import{useWallets as ri,Events as QX}from"@rango-dev/wallets-react";import{Networks as qX,WalletTypes as GX}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as KX}from"rango-types";import{Divider as oC}from"@rango-dev/ui";import yo,{useEffect as nC,useRef as rC,useState as Gp}from"react";import{WalletState as cy}from"@rango-dev/ui";import{useWallets as py}from"@rango-dev/wallets-react";import{useReducer as uy}from"react";function Cc(t){return!!t.derivationPath}i(Cc,"isStateOnDerivationPathStep");function kc(t){return!!t.namespace}i(kc,"isStateOnNamespace");var ur={status:"init",namespace:null,derivationPath:null};function Tc(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"reset":return ur;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:ur;default:throw new Error("Action hasn't been defined.")}}i(Tc,"reducer");function Kt(){let{state:t,disconnect:e,connect:o}=py(),[n,r]=uy(Tc,ur),a=i(async(u,m,h)=>{r({type:"reset"});try{let d=m?.map(f=>({...f,network:void 0}));return await o(u,d),{status:"connected"}}catch(d){let f=d?.message?`Error: ${d.message}`:"An unknown error happened during connecting wallet.";throw new Error(f,{cause:d})}},"runConnect"),s=i(async(u,m)=>{if(u.state===cy.DISCONNECTED){if(!!u.isHub&&u.properties?.find(S=>S.name==="detached")&&u.state!=="connected")return r({type:"needsNamespace",payload:{targetWallet:u}}),{status:"namespace"};if(!u.needsNamespace)return await a(u.type,void 0,m);let f=u.needsNamespace.data.length>1,g=u.needsDerivationPath;if(f)return r({type:"needsNamespace",payload:{targetWallet:u}}),{status:"namespace"};if(g){let k=u.needsNamespace.data[0];return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:k.value}}),{status:"derivation-path"}}return await a(u.type,u.needsNamespace?.data.map(k=>({namespace:k.value})),m)}return m?.disconnectIfConnected?(await p(u.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(u,m)=>{let h=u.needsNamespace?.selection==="single",d=u.needsDerivationPath,f=m[0];if(!f)throw new Error("To confirm a namespace, you should select at least one namespace.");if(h&&d)return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:f}}),{status:"derivation-path"};if(!kc(n))throw new Error("Something went wrong on handling namespace. Please retry.");let g=n.namespace.targetWallet.type,k=m.map(C=>({namespace:C}));return await a(g,k)},"handleNamespace"),c=i(async u=>{if(!u)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Cc(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,d=[{namespace:n.derivationPath.namespace,derivationPath:u}];return await a(m,d)},"handleDerivationPath"),p=i(async u=>{let m=t(u);return m.connected||m.connecting?(await e(u),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:p,handleNamespace:l,handleDerivationPath:c,getState:()=>n,resetState:u=>{r(u==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Kt,"useStatefulConnect");import{WalletState as Aa}from"@rango-dev/ui";import{useWallets as kS}from"@rango-dev/wallets-react";import{detectMobileScreens as TS,KEPLR_COMPATIBLE_WALLETS as vS,WalletTypes as Cn}from"@rango-dev/wallets-shared";import{useCallback as wS,useEffect as bS}from"react";import gS,{createContext as hS,useContext as yS,useEffect as SS,useRef as CS}from"react";import{create as dS}from"zustand";import{persist as fS}from"zustand/middleware";import{allProviders as my}from"@rango-dev/provider-all";var aa=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()}},Po=new aa;import{defineVersions as wc,pickVersion as bc,Provider as sa}from"@rango-dev/wallets-core";function xc({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=Ec(a);return s instanceof sa?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 sa?o.push(wc().version("1.0.0",n).build()):o.push(wc().version("0.0.0",n).build())}),o}return t}i(xc,"matchAndGenerateProviders");function Ec(t){try{return bc(t,"1.0.0")[1]}catch{return bc(t,"0.0.0")[1]}}i(Ec,"pickProviderVersionWithFallbackToLegacy");function Ic(t){return t.map(o=>Ec(o)).map(o=>o instanceof sa?o.id:o.config.type)}i(Ic,"configWalletsToWalletName");function mr(t,e){return e.find(o=>o.name===t)?.displayName}i(mr,"getBlockchainDisplayNameFor");function ut(t,e){return e.find(o=>o.name===t)?.shortName}i(ut,"getBlockchainShortNameFor");function Ac(t,e){return e.find(o=>o.name===t)?.logo}i(Ac,"getBlockchainImage");function un(t,e){return e.find(o=>o.id===t)?.title}i(un,"getSwapperDisplayName");function co(t,e){return e.find(o=>o.name===t)??null}i(co,"findBlockchain");function la(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(la,"isTokenNative");function mt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(mt,"createTokenHash");function _o(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(_o,"isValidTokenAddress");function mn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(c=>{typeof c!="string"&&(c=mt(c));let p=o.tokensMapByTokenHash.get(c);p&&(n[c]=p)})},"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(p=>{let u=mt(p);delete n[u]})):a(c.tokens))}),Object.values(n)}i(mn,"matchTokensFromConfigWithMeta");function dr(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(dr,"getSupportedBlockchainsFromConfig");function Wc(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Wc,"makeProvidersOptionsFromConfig");var fr={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"}},dy={clientUrl:void 0},fy={liquiditySources:void 0};function Nc(t){let e=Wc(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 my(o).map(a=>a())}i(Nc,"generateProviders");var Bc=i((t,e,o)=>{let n=Nc({...fr,...t});return{config:{...fr,...t},iframe:dy,campaignMode:fy,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=mn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}}),p=mn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}});Po.set("supportedSourceTokens",c),Po.set("supportedDestinationTokens",p),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=Nc(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Wc(a);return xc({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Lc}from"rango-types";var Mc=[Lc.EVM,Lc.SOLANA],gr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as Ny}from"rango-sdk";import{UI_ID as gy}from"@rango-dev/ui";var hr="c6381a79-2817-4602-83bf-6a641a409e32",Pc="https://api.rango.exchange",_c="https://explorer.rango.exchange",$e={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...gy};import{BlockchainCategories as vy,WalletState as xt}from"@rango-dev/ui";import{legacyReadAccountAddress as wy}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as by,getCosmosExperimentalChainInfo as xy,isEvmAddress as Ey,KEPLR_COMPATIBLE_WALLETS as UA,Networks as jc}from"@rango-dev/wallets-shared";import $o from"bignumber.js";import{isCosmosBlockchain as Iy}from"rango-types";import hy from"bignumber.js";var le=new hy(0);import{WalletTypes as yy}from"@rango-dev/wallets-shared";var po="~",Dc=[yy.LEAP];import{BlockchainCategories as pa,WalletState as Ty}from"@rango-dev/ui";import{TransactionType as yr}from"rango-sdk";var $c="Roboto",ca=[{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 Do(t){return Array.from(new Set(t))}i(Do,"removeDuplicateFrom");function Sr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Sr,"debounce");function tt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(tt,"containsText");function Uc(t,e){return t.toLowerCase()===e.toLowerCase()}i(Uc,"exactText");function zc(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(zc,"startWithText");var N=i(()=>document.getElementById($e.SWAP_BOX_ID),"getContainer"),uo=i(()=>document.getElementById($e.EXPANDED_BOX_ID),"getExpanded");function Qc(t,e,o){let n=!!e&&Uc(e,t),r=!!o&&Uc(o,t);return n!==r?n?-1:1:0}i(Qc,"compareExactMatchText");function ua(t,e,o){let n=!!e&&tt(e,t),r=!!o&&tt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ua,"compareContainsText");function ma(t,e,o){let n=!!e&&zc(e,t),r=!!o&&zc(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ma,"compareStartWithText");function Hc(t,e,o){if(!o)return 0;let n=Qc(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Qc(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ma(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ua(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ma(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ua(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ma(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ua(o,t.address,e.address);if(r!==0)return r}return 0}i(Hc,"compareWithSearchFor");var Cr=i((t,e)=>{switch(e){case pa.ALL:return!0;case pa.UTXO:return t===yr.TRANSFER;case pa.OTHER:return t!==yr.TRANSFER&&t!==yr.COSMOS&&t!==yr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),qc=i(t=>ca.find(o=>o.value===t)?.url,"getFontUrlByName");function Gc(t,e){let o=!!t.find(n=>n.state===Ty.CONNECTED);return e===!1&&o}i(Gc,"isSingleWalletActive");function Vc(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(Vc,"memoizedResult");import{BigNumber as Kc}from"bignumber.js";var dn=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"),P=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Kc(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Kc(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 kr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var bt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),fn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function gn(t){switch(!0){case t.connected:return xt.CONNECTED;case t.connecting:return xt.CONNECTING;case!t.installed:return xt.NOT_INSTALLED;default:return xt.DISCONNECTED}}i(gn,"mapStatusToWalletState");function Xc(t,e,o,n){return o.filter(r=>!Dc.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(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:c,needsNamespace:p,supportedChains:u,needsDerivationPath:m,properties:h,isHub:d}=e(r),f=Do(u.map(k=>k.type)),g=gn(t(r));return{title:a,image:s,link:by(l),state:g,type:r,showOnMobile:c,needsNamespace:p,blockchainTypes:f,needsDerivationPath:m,properties:h,isHub:d}})}i(Xc,"mapWalletTypesToWalletInfo");function hn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(hn,"walletAndSupportedChainsNames");function fa(t,e,o,n,r){let a=[];function s(c,p,u){if(!!!a.find(h=>h.chain===c)){let h={address:p,chain:c,walletType:t,isContractWallet:u??!1};a.push(h)}}i(s,"addAccount");let l=n||[];return e.forEach(c=>{let{address:p,network:u}=wy(c),m=l.length>0,h=l.includes(u),d=u===jc.Unknown;if(m&&!h&&!d)return;let g=u===jc.Unknown&&Ey(p);if(d&&!g)return;o.includes(u)||g?r?s(u,p.toLowerCase(),r):l.filter(S=>o.includes(S)).forEach(S=>{s(S,p.toLowerCase())}):s(u,p)}),a}i(fa,"prepareAccountsForWalletStore");function mo(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((p,u)=>{let m=p.from.blockchain,h=p.to.blockchain,d=a===o.swaps.length-1,f=u===c.length-1;(!d&&!f||d&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(h)})}e==="all"&&n.add(l)}),Array.from(n)}i(mo,"getQuoteWallets");function yn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(yn,"isAccountAndWalletMatched");var Yc=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?da(n.usdValue,n.decimals):le.toFixed();return o.plus(r)},new $o(le));return Ay(e.toString())},"calculateWalletUsdValue");function Ay(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Ay,"numberWithThousandSeparator");var wr=i((t,e)=>{let o=xy(Object.entries(t).map(([,n])=>n).filter(Iy));return o&&o[e]?.experimental},"isExperimentalChain");function da(t,e){return new $o(t).shiftedBy(-e).toFixed()}i(da,"representAmountInNumber");function br(t){if(!t)return null;let e=da(t.amount,t.decimals),o=t.usdValue?da(t.usdValue,t.decimals):null,n=P(e,8,8),r=o?P(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(br,"formatBalance");function Zc(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new $o(t.usdValue).shiftedBy(-t.decimals):le,n=e&&e.usdValue?new $o(e.usdValue).shiftedBy(-e.decimals):le;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new $o(t.amount).shiftedBy(-t.decimals):le,n=e&&e.amount?new $o(e.amount).shiftedBy(-e.decimals):le;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Zc,"compareTokenBalance");function Bt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Bt,"areTokensEqual");function Jc(t){return t.sort((e,o)=>+(o.state===xt.CONNECTED)-+(e.state===xt.CONNECTED)||+(o.state===xt.DISCONNECTED||o.state===xt.CONNECTING)-+(e.state===xt.DISCONNECTED||e.state===xt.CONNECTING))}i(Jc,"sortWalletsBasedOnConnectionState");function xr(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(xr,"getConciseAddress");function Rc({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Rc,"getAddress");var ep=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function tp(t){return t.map(e=>e.state).join("-")}i(tp,"hashWalletsState");function op(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(op,"filterBlockchainsByWalletTypes");function np(t,e){return e===vy.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Cr(n,e))return!0;return!1})}i(np,"filterWalletsByCategory");var ga={API_KEY:hr};function Lt(t){return ga[t]||""}i(Lt,"getConfig");function rp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ga=e,ga}i(rp,"initConfig");var ip=20,ap=25,ha="theme-widget",ya=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Bt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Bt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Sa=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),sp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Er,ot=i(()=>Er||(Er=new Ny(Lt("API_KEY"),Lt("BASE_URL")),Er),"httpService");function Ir(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Do(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(Ir,"getUniqueSwappersGroups");function lp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(lp,"sortLiquiditySourcesByGroupTitle");function Ye(t,e){return e?.[t]==="hidden"}i(Ye,"isFeatureHidden");function Fo(t,e){return e?.[t]==="enabled"}i(Fo,"isRoutingEnabled");var cp=i((t,e,o)=>Ye("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var pp=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=dr({config:a}),p=r;return c.length>0&&(p=p.filter(u=>c.includes(u.name))),p.filter(u=>Mc.includes(u.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 p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=Po.get(u);m?.length||(m=mn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Po.set(u,m)),m=cp(m,s,a.features);let h=e().blockchains({type:o.type});return m.filter(f=>o.blockchain&&f.blockchain!==o.blockchain||!h.some(g=>g.name===f.blockchain)?!1:o.searchFor?!!(tt(f.symbol,o.searchFor)||tt(f.address||"",o.searchFor)||tt(f.name||"",o.searchFor)):!0).sort((f,g)=>{let k=e().isTokenPinned(f,o.type),C=e().isTokenPinned(g,o.type);if(k!==C)return k?-1:1;if(o.getBalanceFor){let W=o.getBalanceFor(f),A=o.getBalanceFor(g),x=Zc(W,A);if(x!==0)return x}let S=c.get(f.blockchain),T=c.get(g.blockchain),w=la(f,S),E=la(g,T);if(w!==E)return w?-1:1;if(f.isPopular!==g.isPopular)return f.isPopular?-1:1;if(o.searchFor){let W=Hc(f,g,o.searchFor);if(W)return W}return f.isSecondaryCoin!==g.isSecondaryCoin?f.isSecondaryCoin?1:-1:S&&T?S.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=mt(o),s=n.get(a);return s||(s=r.find(l=>mt(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Bt(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(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(lp)},fetch:async()=>{try{let{routing:o}=e().config,n=Fo("enableCentralizedSwappers",o),r=await ot().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},c=[],p=r.popularTokens,u=r.swappers.filter(d=>d.enabled),m=new Set;r.tokens.forEach(d=>{m.add(d.blockchain),c.push(d)}),r.blockchains.sort((d,f)=>d.sort-f.sort).forEach(d=>{d.enabled&&m.has(d.name)&&a.set(d.name,d)}),c.forEach(d=>{let f=mt(d);l[d.blockchain]||(l[d.blockchain]=[]),s.set(f,d),l[d.blockchain].push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as Wy,Catalonia as By,Chinese as up,Denmark as Ly,English as My,Finland as Py,French as _y,German as Dy,Greece as $y,Hungary as Fy,India as Oy,Indonesian as Uy,Italian as zy,Japanese as Qy,Korea as Hy,Lithuania as qy,Malay as Gy,Netherlands as Vy,Pakistan as Ky,Philippines as jy,Poland as Xy,Portuguese as Yy,Russian as Zy,SaudiArabia as Jy,Serbia as Ry,Slovakia as eS,SouthAfrica as tS,Spanish as oS,Swahili as nS,Swedish as rS,Thai as iS,Turkish as aS,Ukrainian as sS,Vietnamese as lS}from"@rango-dev/ui";var mp=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:tS},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:Jy},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:Wy},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:By},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:up},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:up},{title:"Danish",label:"Dansk",local:"da",SVGFlag:Ly},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Vy},{title:"English",label:"English",local:"en",SVGFlag:My},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:jy},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:Py},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:_y},{title:"German",label:"Deutsch",local:"de",SVGFlag:Dy},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:$y},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:Oy},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:Fy},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:Uy},{title:"Italian",label:"Italiana",local:"it",SVGFlag:zy},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Qy},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:Hy},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:qy},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:Gy},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Xy},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Yy},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Zy},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:Ry},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:eS},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:oS},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:nS},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:rS},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:iS},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:aS},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:sS},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:Ky},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:lS}],Oo="en";var dp=[.5,1,3],fp=1,gp=5,hp=100,yp=0;var Sp=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:fp,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let c=s===o,p=l<=9;return c&&p}))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=Do(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=Ye("theme",n),s=Ye("language",n),l=Ye("liquiditySource",n),c=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...c&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Oo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||Oo}})},setCustomToken:o=>{e().fetchCustomTokensBalance({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=dr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Ia from"bignumber.js";import cS from"mitt";var he=cS(),pS={on:he.on,off:he.off};import{WidgetEvents as Cp}from"@rango-dev/queue-manager-rango-preset";var ka=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ka||{}),Ta=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Ta||{}),va=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(va||{}),Uo=(a=>(a[a.RouteEvent=Cp.RouteEvent]="RouteEvent",a[a.StepEvent=Cp.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Uo||{});var kp=i(t=>(e,o,n)=>t(i((...a)=>{e(s=>({...s,lastUpdatedAt:+new Date})),e(...a)},"modifedSet"),o,n),"keepLastUpdated");import Tp from"bignumber.js";function Mt(t){return`${t.blockchain}${po}${t.address}${po}${t.symbol}`}i(Mt,"createAssetKey");function wa(t,e){return`${Mt(e)}${po}${t}`}i(wa,"createBalanceKey");function Sn(t){let[e,o,n]=t.split(po);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Sn,"extractAssetFromBalanceKey");function ba(t,e,o){return t.balances?.forEach(n=>{let r=n.price??o().findToken(n.asset)?.usdPrice;o()._aggregatedBalances[Mt(n.asset)]?.forEach(s=>{e[s]&&(e[s]={...e[s],usdValue:r?new Tp(r??le).multipliedBy(e[s].amount).toString():""})})}),e}i(ba,"updateBalancesWithNewPrices");function xa(t,e){let o={};return t.balances?.forEach(n=>{let r=wa(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,l=n.price??e().findToken(n.asset)?.usdPrice,c=l?new Tp(l??le).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:c};o[r]=p}),o}i(xa,"createBalanceStateForNewAccount");function Ea(t,e){for(let o in e){let n=Sn(o),r=Mt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(Ea,"updateAggregatedBalanceStateForNewAccount");function vp(t,e){let o=Sn(e),n=Mt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(vp,"removeBalanceFromAggregatedBalance");function uS(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(uS,"matchWalletDetailsWithConnectedWallet");var mS=Vc(),wp=kp((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>yn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>yn(s,a))?{...a,loading:!1,error:!1,explorerUrl:uS(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>yn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n)=>{let r=e().connectedWallets,a=o.filter(s=>!r.some(l=>yn(s,l)));if(a.length>0){let s=a.map(l=>{let c=!r.some(p=>p.chain===l.chain&&p.selected&&p.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(p=>!s.some(u=>u.walletType===p.walletType&&u.chain===p.chain)),...s]}))}},fetchCustomTokensBalance:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((c,p)=>((c[p.blockchain]||=[]).push(p),c),{}),s=new Set,l=r.reduce((c,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(c[p.address]||(c[p.address]=[]),c[p.address].push(...a[p.chain]))),c},{});Object.entries(l).forEach(async([c,p])=>{try{let{balances:u}=await ot().getMultipleTokenBalance({assets:p.map(({symbol:m,address:h,blockchain:d})=>({symbol:m,address:h,blockchain:d})),walletAddress:c});if(u){let m=e()._balances,h=e()._aggregatedBalances;u.forEach(d=>{if(parseFloat(d.amount.amount)===0)return;let f={blockChain:d.asset.blockchain,balances:[d],address:c};ba(f,m,e);let g=xa(f,e);h=Ea(h,g),m={...m,...g}}),t(d=>({_balances:{...d._balances,...m},_aggregatedBalances:h}))}}catch(u){console.error(u)}})},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)=>{he.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n),e().fetchBalances(o),e().fetchCustomTokensBalance({tokens:e().customTokens(),connectedWallets:o})},removeBalancesForWallet:(o,n)=>{let r=e().connectedWallets.filter(p=>p.walletType===o);e().connectedWallets.forEach(p=>{p.walletType!==o&&(r=r.filter(u=>!(u.chain===p.chain&&u.address===p.address)))}),n?.chains&&n.chains.length>0&&(r=r.filter(p=>n.chains?.includes(p.chain))),n?.namespaces&&n.namespaces.length>0&&(r=r.filter(p=>p.namespace?n.namespaces?.includes(p.namespace):!1));let a={},s=e()._aggregatedBalances,l=e()._balances;Object.keys(l).forEach(p=>{let u=Sn(p);!!r.find(h=>wa(h.address,{address:u.address,blockchain:h.chain,symbol:u.symbol})===p)?s=vp(s,p):a[p]=l[p]}),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(he.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 r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(c=>({address:c.address,blockchain:c.chain})),s;try{s=await ot().getWalletsDetails(a)}catch(c){throw e().setConnectedWalletHasError(o),new Error("Request for fetching balances failed.",{cause:c})}let l=s.wallets;if(l){let{retryOnFailedBalances:c=!0}=n||{};if(c){let m=l.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));m.length>0&&e().fetchBalances(m,{retryOnFailedBalances:!1})}let p=e()._balances,u=e()._aggregatedBalances;l.forEach(m=>{if(m.failed||(ba(m,p,e),e().removeBalancesForWallet(r,{chains:[m.blockChain]}),!e().connectedWallets.find(d=>d.walletType===r&&d.address===m.address&&d.chain===m.blockChain)))return;let h=xa(m,e);u=Ea(u,h),p={...p,...h}}),t(m=>({_balances:{...m._balances,...p},_aggregatedBalances:u})),e().setConnectedWalletRetrievedData(o,l)}else throw e().setConnectedWalletHasError(o),new 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=Mt(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 p=n[c],u=new Ia(p.amount),m=new Ia(l.amount);u.isGreaterThan(m)&&(l=p)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,l)=>{let c=n[l],[,,,p]=l.split(po);return p===o&&(s[l]=c),s},{})},getConnectedWalletsDetails:()=>mS(()=>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],p=Sn(l);if(p.blockchain===n.chain){let u=e().findToken(p),m=c.amount?new Ia(c.amount).shiftedBy(-c.decimals):le;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:c.amount,decimal:c.decimals,amount:m.toString(),logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function bp(t){return dS()(fS((...e)=>({...wp(...e),...pp(...e),...Sp(...e),...Bc(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(bp,"createAppStore");var xp=hS(null);function y(){let t=yS(xp);if(SS(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function Ep(t){let e=CS();return e.current||(e.current=bp(t.config)),gS.createElement(xp.Provider,{value:e.current},t.children)}i(Ep,"AppStoreProvider");function ht(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=y(),{state:r,getWalletInfo:a}=kS(),s=y().blockchains(),{handleDisconnect:l}=Kt(),c=Ic(n()),p=Xc(r,a,c,e);p=TS()?p.filter(g=>g.showOnMobile!==!1&&r(g.type).installed):p;let u=Jc(p),m=i(g=>!o.find(k=>k.walletType===g&&k.chain===e),"isExperimentalChainNotAdded"),h=wS(()=>{let g=p?.filter(k=>k.state===Aa.CONNECTING)||[];for(let k of g)l(k.type)},[tp(p)]);bS(()=>()=>{h()},[]);let d=i(g=>{let k=g.find(S=>S.type===Cn.DEFAULT);return!k||k.state===Aa.NOT_INSTALLED?!1:g.filter(S=>S.state!=Aa.NOT_INSTALLED&&![Cn.DEFAULT,Cn.WALLET_CONNECT_2,Cn.LEDGER].includes(S.type)&&a(S.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),f=i((g,k,C)=>wr(C,k)&&m(g)&&!vS.includes(g)||g==Cn.DEFAULT&&!d(p),"shouldExcludeWallet");return{list:u.filter(g=>!f(g.type,e??"",s)),terminateConnectingWallets:h}}i(ht,"useWalletList");import{Modal as AS}from"@rango-dev/ui";import NS from"react";import{create as IS}from"zustand";var Ip="rango-widget";var kn=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(Ip),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 ES=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"),zo=ES;var ne=zo(IS()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})}}))),fo=new kn({onInit:()=>ne.setState({tabManagerInitiated:!0}),onClaim:()=>ne.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ne.setState({isActiveTab:!1})});function R(t){let{watermark:e}=ne();return NS.createElement(AS,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as Na}from"@lingui/core";import{Button as _S,Checkbox as DS,Divider as $S,Image as $p,ListItemButton as FS,MessageBox as OS,Radio as US,RadioRoot as zS}from"@rango-dev/ui";import ve,{useState as QS}from"react";import{css as WS,darkTheme as Np,IconButton as BS,styled as go}from"@rango-dev/ui";var Et=go(BS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Np} &`]:{backgroundColor:"$neutral"}}}),Wp=go("div",{position:"absolute",background:"$secondary500",[`.${Np} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),jt=go("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Bp=go("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"}}}}),Lp=go("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Mp=go("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Pp=WS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Ar=go("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as LS,styled as Nr}from"@rango-dev/ui";var XN=Nr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Qo=Nr("div",{position:"relative"}),MS=LS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ho=Nr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${MS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Wr=Nr("div",{"& img":{borderRadius:"50%"}});function _p(t,e){return t.find(o=>o.name===e)?.logo}i(_p,"getBlockchainLogo");import{styled as PS}from"@rango-dev/ui";var Dp=PS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function Tn(t){let{targetWallet:e}=t.value,o=e.needsNamespace?.selection==="single",n=e.image,[r,a]=QS([]),s=y().blockchains(),l=i(p=>{a(o?[p]:u=>u.includes(p)?u.filter(m=>m!==p):u.concat(p))},"onSelect"),c=i(p=>o?ve.createElement(zS,{value:r?.[0]},p):ve.createElement(ve.Fragment,null,p),"wrapRadioRoot");return ve.createElement(ve.Fragment,null,ve.createElement($S,{size:20}),ve.createElement(OS,{type:"info",title:Na.t("Select chain types"),description:Na.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:ve.createElement(Qo,null,ve.createElement(Ar,null,ve.createElement($p,{src:n,size:45})),ve.createElement(Ho,null))}),ve.createElement(Dp,null,c(ve.createElement(ve.Fragment,null,e.needsNamespace?.data.map(p=>ve.createElement(FS,{key:p.id,id:p.id,title:p.label,hasDivider:!0,style:{height:60},onClick:()=>l(p.value),start:ve.createElement($p,{src:_p(s,p.id),size:22}),end:o?ve.createElement(US,{value:p.value}):ve.createElement(DS,{checked:r.includes(p.value)})}))))),ve.createElement(_S,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},Na.t("Confirm")))}i(Tn,"Namespaces");import{i18n as qo}from"@lingui/core";import{Button as GS,Divider as Up,Image as VS,MessageBox as KS,Select as jS,TextField as XS}from"@rango-dev/ui";import ze,{useEffect as YS,useState as zp}from"react";import{namespaces as HS}from"@rango-dev/wallets-shared";var Br={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Wa(t){let e=t?HS[t].derivationPaths:null;return e?[...e,Br]:[]}i(Wa,"getDerivationPaths");import{styled as Fp,Typography as qS}from"@rango-dev/ui";var Op=Fp("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ba=Fp(qS,{paddingLeft:"$10"}),La={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Qp="0";function vn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=zp(null),[l,c]=zp(Qp),p=a===Br.id,u=Wa(o),m=i(({value:d})=>{let f=u?.find(g=>g.id===d);f&&(a===Br.id&&Number.isNaN(Number(l))&&c(Qp),s(f.id))},"handleDerivationPathItemClick"),h=i(()=>{let d=u.find(f=>f.id===a);if(d)e(d.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return YS(()=>{s(Wa(o)[0]?.id||null)},[o]),ze.createElement(ze.Fragment,null,ze.createElement(Up,{size:20}),ze.createElement(KS,{type:"info",title:qo.t("Select Derivation Path"),description:qo.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:ze.createElement(Qo,null,ze.createElement(Wr,null,ze.createElement(VS,{src:n,size:45})),ze.createElement(Ho,null))}),ze.createElement(Op,null,ze.createElement(Ba,{variant:"body",size:"xsmall",color:"$neutral600"},qo.t("Choose Derivation Path Template")),ze.createElement(jS,{value:a||"",options:u.map(d=>({value:d.id,label:d.label})),variant:"filled",handleItemClick:m,styles:{trigger:La}}),ze.createElement(Up,{size:20}),ze.createElement(Ba,{variant:"body",size:"xsmall",color:"$neutral600"},p?qo.t("Enter Path"):qo.t("Enter Index")),ze.createElement(XS,{type:p?"text":"number",variant:"contained",value:l,onChange:d=>c(d.target.value),style:La})),ze.createElement(GS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!u||!a||!l},qo.t("Confirm")))}i(vn,"DerivationPath");import{i18n as Go}from"@lingui/core";import{Image as ZS,MessageBox as Ma,WalletState as JS}from"@rango-dev/ui";import{useWallets as RS}from"@rango-dev/wallets-react";import ho from"react";function Pa(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=RS();return gn(a(n))===JS.CONNECTED?ho.createElement(Ma,{type:"success",title:Go.t("Wallet Connected"),description:Go.t("Your wallet is connected, you can use it to swap.")}):o?ho.createElement(Ma,{type:"error",title:Go.t("Failed to Connect"),description:o||Go.t("Your wallet is not connected. Please try again.")}):ho.createElement(Ma,{type:"loading",title:Go.t("Connecting to your wallet"),description:Go.t("Click connect in your wallet popup."),icon:ho.createElement(Qo,null,ho.createElement(Wr,null,ho.createElement(ZS,{src:r,size:45})),ho.createElement(Ho,null))})}i(Pa,"ConnectStatus");import{i18n as _a}from"@lingui/core";import{Button as eC,Divider as Hp,MessageBox as tC}from"@rango-dev/ui";import Lr from"react";function Da(t){let{displayName:e,onConfirm:o}=t;return Lr.createElement(tC,{title:_a.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:_a.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},Lr.createElement(Hp,{size:18}),Lr.createElement(Hp,{size:32}),Lr.createElement(eC,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},_a.t("Confirm")))}i(Da,"ExperimentalChain");function qp(t,e){return t().status==="init"&&!!e}i(qp,"isOnStatus");function wn(t){return t().status==="namespace"}i(wn,"isOnNamespace");function bn(t){return t().status==="derivationPath"}i(bn,"isOnDerivationPath");var iC=3e3,aC=300;function So(t){let e=rC(),[o,n]=Gp(!1),[r,a]=Gp(),s=i(S=>{a(S.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=ht(),{handleConnect:c,handleDerivationPath:p,handleNamespace:u,getState:m,resetState:h}=Kt(),d=i(S=>{u(t.wallet,S).then(C).catch(s)},"handleConfirmNamespaces"),f=i(S=>{if(!S)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(S).then(C).catch(s)},"handleDerivationPathConfirm"),g=i(()=>{n(!1)},"handleClosingModal"),k=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),C=i((S,T)=>{let w=S.status==="connected",E=["disconnected","disconnected-unhandled"].includes(S.status);w?(t.onConnect?.(),T||(e.current=setTimeout(g,iC))):E&&g()},"afterConnected");return nC(()=>{if(t.wallet){k();let S=!1,T=!0;i(()=>{setTimeout(()=>{T=!1,S||n(!0)},aC)},"beforeConnecting")(),c(t.wallet,{disconnectIfConnected:!0}).then(E=>{["namespace","derivation-path"].includes(E.status)||(S=!0),C(E,T)}).catch(s)}},[t.wallet]),yo.createElement(R,{open:o,onClose:g,onExit:()=>{k(),l(),t.onClose&&t.onClose()},container:N()},qp(m,t.wallet)&&yo.createElement(yo.Fragment,null,yo.createElement(Pa,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),yo.createElement(oC,{direction:"vertical",size:32})),wn(m)&&yo.createElement(Tn,{onConfirm:d,value:m().namespace}),bn(m)&&yo.createElement(vn,{onConfirm:f,value:m().derivationPath}))}i(So,"StatefulConnectModal");import{Provider as uC}from"@rango-dev/wallets-react";import Mr,{createContext as mC,useEffect as Yp,useMemo as dC,useRef as Zp}from"react";import{useEffect as sC}from"react";function Vp(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Vp,"hashProviders");function $a(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=y(),a=n();return sC(()=>{o(),r()},[Vp(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i($a,"useWalletProviders");import{legacyFormatAddressWithNetwork as lC,legacyReadAccountAddress as Kp}from"@rango-dev/wallets-core/legacy";import{Events as Co}from"@rango-dev/wallets-react";import{isEvmBlockchain as cC}from"rango-sdk";function jp(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=y(),{onConnectWalletHandler:l,onDisconnectWalletHandler:c}=t,p=s().filter(cC).map(g=>g.name),u=i((g,k)=>{let[C,,S,,T]=g,w=fa(C,S,p,k.supportedChainNames,T.isContractWallet);w.length&&e(w,T.namespace)},"onAccountsEvent"),m=i((g,k,C,S,T)=>{if(k===Co.ACCOUNTS){let w=hn(T.supportedBlockchains);C&&u([g,k,C,S,T],{supportedChainNames:w})}if(k===Co.CONNECTED){let w=`${g}-${S.network}-${C}`;l.current?l.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}k===Co.PROVIDER_DISCONNECTED&&(o(g),c.current?c.current(g):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),k===Co.NAMESPACE_DISCONNECTED&&n(g,C)},"handleUpdatesForHub"),h=i((g,k,C,S,T)=>{if(k===Co.ACCOUNTS){let w=hn(T.supportedBlockchains),E=[],W=[];if(C?.forEach(x=>{let{network:b}=Kp(x);p.includes(b)?E.push(x):W.push(x)}),r.filter(x=>x.walletType===g).map(x=>lC(x.address,x.chain)).length>0){if(E.length>0){let x=fa(g,E,p,w,T.isContractWallet);a(g,{chains:x.map(b=>b.chain)})}W.length>0&&a(g,{chains:W.map(x=>{let{network:b}=Kp(x);return b})})}C?u([g,k,C,S,T],{supportedChainNames:w}):(o(g),c.current?c.current(g):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}if(k===Co.ACCOUNTS&&S.connected){let w=`${g}-${S.network}-${C}`;l.current?l.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForLegacy"),d=i((g,k,C,S,T)=>{if(k===Co.NETWORK&&S.network){let w=`${g}-${S.network}`;l.current?l.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((g,k,C,S,T)=>{T.isHub?m(g,k,C,S,T):h(g,k,C,S,T),d(g,k,C,S,T)},"handler")}}i(jp,"useUpdates");import{LegacyEvents as pC}from"@rango-dev/wallets-core/legacy";function Xp(t,e){let[o,n,r,a,s]=e;n!==pC.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(Xp,"propagateEvents");var Pr=mC({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function fC(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}=$a(s.wallets,l),p=Zp(),u=Zp(),{handler:m}=jp({onConnectWalletHandler:p,onDisconnectWalletHandler:u});Yp(()=>{n().catch(console.log)},[]),Yp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let h=ne.use.isActiveTab(),d=dC(()=>({onConnectWallet:f=>{p.current=f},onDisconnectWallet:f=>{u.current=f}}),[]);return Mr.createElement(Pr.Provider,{value:d},Mr.createElement(uC,{allBlockChains:a,providers:c,onUpdateState:(f,g,k,C,S)=>{let T=[f,g,k,C,S];m(...T),t.onUpdateState&&Xp(t.onUpdateState,T)},autoConnect:!!h,configs:{wallets:s.wallets}},t.children))}i(fC,"Main");function _r(t){let{config:e,...o}=t;return Mr.createElement(Ep,{config:e},Mr.createElement(fC,{...o,config:e}))}i(_r,"WidgetWallets");import ia from"react";import gC,{Fragment as hC}from"react";import{MemoryRouter as yC,useInRouterContext as SC}from"react-router";function Jp({children:t}){let o=SC()?hC:yC;return gC.createElement(o,null,t)}i(Jp,"AppRouter");import{I18nManager as dI}from"@rango-dev/ui";import hc from"react";import Pe from"react";import{useRoutes as RE}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 Ko,useRef as qr}from"react";import Ze from"bignumber.js";import{create as TC}from"zustand";import{subscribeWithSelector as vC}from"zustand/middleware";import{i18n as yt}from"@lingui/core";import{RouteEventType as pL}from"@rango-dev/queue-manager-rango-preset";import Qe from"bignumber.js";import{PendingSwapNetworkStatus as Qr}from"rango-types";import{i18n as Fe}from"@lingui/core";var ee=i(()=>({genericServerError:Fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Fe.t("Please reset your liquidity sources."),description:Fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Fe.t("No Routes Found."),description:Fe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:Fe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Fe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Fe.t("High Price Impact"),title:Fe.t("Price impact is too high!"),description:Fe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Fe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Fe.t("USD Price Unknown"),title:Fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:Fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Fe.t("Confirm USD Price Unknown")}}),"errorMessages");function Rp(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(Rp,"getQuoteErrorMessage");import{i18n as Dr}from"@lingui/core";var ko=i(()=>({connectWallet:Dr.t("Connect Wallet"),swap:Dr.t("Swap"),swapAnyway:Dr.t("Swap anyway"),ethWarning:Dr.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Fa(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(Fa,"getFeeLabel");var Oa=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],eu=100,tu=30,ou=15,nu=60;var ru=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],iu=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as kC}from"@rango-dev/queue-manager-rango-preset";import YB from"bignumber.js";function su(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(su,"getRequiredBalanceOfWallet");function _t(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(_t,"getPriceImpactLevel");function Fr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=kC(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=co(a?a.toBlockchain:n.fromBlockchain,e),c=co(r.toBlockchain,e),p=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:p,toBlockchain:c,toToken:u,inputAmount:m}}i(Fr,"createRetryQuote");function Vo(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=xn(o),s=dt(o);if(o&&a&&s){let p=Pt(a.toString(),s.toString());if(!!p&&mu(a,p)){let m=Ur(o?.swaps,n),h=_t(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:m,warningLevel:h}}}if(e&&gu(e,o))return{type:4,usdValueChange:P(dt(o)?.minus(dt(e)??0).toString()??"0",null,2),percentageChange:P(Pt(dt(e)??"1",dt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let l=zr(o.swaps),c=r>gp;if(fu(t.userSlippage.toString(),l)){if(c&&parseFloat(l??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:du(o,r),minRequiredSlippage:l};return null}i(Vo,"generateQuoteWarnings");function lu(t){return![4].includes(t.type)}i(lu,"isQuoteWarningConfirmationRequired");function Pt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ua(t.toString(),e.toString());return n&&n<0?n:null}i(Pt,"getPriceImpact");var cu=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"),Or=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),c=n.requestId.toLowerCase();return l.localeCompare(c)}),"sortQuotesBy"),pu=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"),uu=i(t=>{let e=i((o,n)=>{let r=Oa.indexOf(o.value),a=Oa.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function mu(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return ru.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Qe(r)))}i(mu,"hasHighValueLoss");function hu(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(hu,"hasLimitError");function yu(t){let e=(t||[]).filter(l=>{let c=l.fromAmountMinValue?new Qe(l.fromAmountMinValue):null,p=l.fromAmountMaxValue?new Qe(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?c?.gte(l.fromAmount)||p?.lte(l.fromAmount):c?.gt(l.fromAmount)||p?.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=yt.t({id:"Required: >= {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=yt.t({id:"Required: > {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=yt.t({id:"Required: <= {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=yt.t({id:"Required: < {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(yu,"getLimitErrorMessage");function Su(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:c}=t;return e!=="success"?{title:ko().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:ko().swap,action:"confirm-swap",disabled:!0}:s?{title:ko().swapAnyway,action:"confirm-warning",disabled:!1}:c?{title:ko().ethWarning,action:"confirm-warning",disabled:!1}:{title:ko().swap,action:"confirm-swap",disabled:!1}:{title:ko().connectWallet,action:"connect-wallet",disabled:!1}}i(Su,"getSwapButtonState");function za(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(le))&&e&&e!=="0"&&n!==0)}i(za,"canComputePriceImpact");function Qa(t,e){let o=le;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Qe(r.amount).multipliedBy(a||0))}return o}i(Qa,"getUsdFeeOfStep");function Ur(t,e){return t.reduce((o,n)=>o.plus(Qa(n,e)),le)}i(Ur,"getTotalFeeInUsd");function Ha(t){let e=le;return e=e.plus(new Qe(t.amount).multipliedBy(t.price||0)),e}i(Ha,"getUsdFee");function Cu(t){return t.reduce((e,o)=>e.plus(Ha(o)),le)}i(Cu,"getTotalFeesInUsd");function ku(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(ku,"getFeesGroup");function Tu(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(Tu,"checkSlippageErrors");function du(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(du,"checkSlippageWarnings");function zr(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(zr,"getMinRequiredSlippage");function fu(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(fu,"hasProperSlippage");function vu(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:c,slippage:p,affiliateRef:u,affiliatePercent:m,affiliateWallets:h,destination:d,contractCall:f}=t,g=a?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),k=[];return r?.forEach(S=>{k.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??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:k,selectedWallets:g??{},slippage:p.toString(),contractCall:f,...d&&{destination:d},...c&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!c&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(vu,"createQuoteRequestBody");function wu(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(wu,"getWalletsForNewSwap");function xn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Qe(e).multipliedBy(o)}i(xn,"getUsdInputFrom");function dt(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(dt,"getUsdOutputFrom");function Ua(t,e){return new Qe(e).div(new Qe(t)).minus(1).multipliedBy(eu).toNumber()}i(Ua,"getPercentageChange");function gu(t,e){let o=xn(t),n=dt(t),r=dt(e);if(!o||!n||!r)return!1;let a=Ua(n.toString(),r.toString());return iu.some(({threshold:s,minInput:l})=>a<=s&&o.isGreaterThanOrEqualTo(l))}i(gu,"isOutputAmountChangedExcessively");function bu(t,e,o){let n=t.validationStatus,r=mo({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>su(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,c=P(new Qe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=P(new Qe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=yt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=yt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=yt.t(" for input and network fee")),yt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:l,reason:u,currentAmount:c,blockchain:ut(s.asset.blockchain,o)}})})}i(bu,"generateBalanceWarnings");function En(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Qr.NetworkChanged}i(En,"isNetworkStatusInWarningState");function xu(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),En(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Qr.WaitingForConnectingWallet:n=n||yt.t("Waiting for connecting wallet");break;case Qr.WaitingForQueue:n=n||yt.t("Waiting for other running tasks to be finished");break;case Qr.WaitingForNetworkChange:n=n||yt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(xu,"getSwapMessages");function Eu(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(Eu,"getLastConvertedTokenInFailedSwap");function Iu(t){return t.status==="failed"}i(Iu,"shouldRetrySwap");function Au(t,e,o,n,r,a){if(!n||t)return!0;let s=mo({filter:"all",quote:n}),l=mo({filter:"required",quote:n}),c=s.every(m=>r.some(h=>h.chain===m)),p=l.every(m=>r.some(h=>h.chain===m)),u=o&&a?_o(a,o):!1;return!e&&!c||e&&!o||e&&!!o&&(!u||!p)}i(Au,"isConfirmSwapDisabled");function Nu(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Nu,"isTokensIdentical");var Hr=i((t,e)=>t?.usdPrice?new Ze(e||le).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=zo(TC()(vC(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Ze(0),outputUsdValue:new Ze(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=le,a=o.inputUsdValue;return fn(o.inputAmount)?(e&&(n=e?.outputAmount?new Ze(e?.outputAmount):null,a=xn(e)??le,r=dt(e)??le),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Ze(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Ze(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Ze(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:Hr(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 Ze(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 Ze(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Hr(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:Hr(n??null,s),outputUsdValue:new Ze(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?Hr(e.toToken,e.outputAmount?.toString()||""):new Ze(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Ze(0),inputUsdValue:new Ze(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Ze(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})})))),Wu=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&he.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&&he.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 Bu(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:c,toBlockchain:p}=O(),u=y().config,m=y().fetchStatus,h=y().blockchains(),{findToken:d}=y(),{setAffiliateRef:f,setAffiliatePercent:g,setAffiliateWallets:k}=y(),C=u?.from?.tokens,S=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,E=qr(void 0),W=qr(void 0),A=qr(void 0),x=qr(void 0);Ko(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Ko(()=>{if(m==="success"){r();let b=h.find(M=>M.name===u?.from?.blockchain),v=u?.from?.token,I=v&&d(v);(b||!b&&A.current)&&n(b??null),I?a({token:I,meta:{blockchains:h}}):!I&&E.current&&a({token:null}),A.current=u?.from?.blockchain,E.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),Ko(()=>{ya(s,C)&&a({token:null}),Sa(c,S)&&n(null)},[C,S]),Ko(()=>{ya(l,T)&&a({token:null}),Sa(p,w)&&o(null)},[T,w]),Ko(()=>{if(m==="success"){r();let b=h.find(M=>M.name===u?.to?.blockchain),v=u?.to?.token,I=v&&d(v);(b||!b&&x.current)&&o(b??null),I?e({token:I,meta:{blockchains:h}}):!I&&W.current&&e({token:null}),x.current=u?.to?.blockchain,W.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),Ko(()=>{f(u?.affiliate?.ref??null),g(u?.affiliate?.percent??null),k(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Bu,"useSyncStoresWithConfig");import{useEffect as Va,useRef as wC}from"react";import{useInRouterContext as bC,useLocation as xC,useSearchParams as EC}from"react-router-dom";function qa(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(qa,"convertTokenSearchParamToAsset");function Ga(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ga,"tokenToSearchParam");function ja(){let t=xC(),[e,o]=EC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:c,setToBlockchain:p,setFromToken:u,setToToken:m,setInputAmount:h}=O(),d=y().fetchStatus,f=y().blockchains(),g=bC(),{updateIframe:k,updateCampaignMode:C}=y(),S=y().isInCampaignMode(),T=wC(),{findToken:w}=y(),E=i(()=>{let A={};for(let[B,X]of e.entries())B.startsWith("utm_")&&(A[B]=X);let x=e.get("fromAmount"),b=e.get("fromBlockchain"),v=e.get("fromToken"),I=e.get("toBlockchain"),M=e.get("toToken"),$=e.get("autoConnect"),q=e.get("clientUrl"),Z=e.get("liquiditySources"),j=e.get("blockchain");return{fromAmount:x,fromBlockchain:b,fromToken:v,toBlockchain:I,toToken:M,autoConnect:$,clientUrl:q,liquiditySources:Z,utmQueryParams:A,blockchain:j}},"getUrlSearchParams"),W=i(A=>{for(let x in A)A[x]||delete A[x];o(A,{replace:!0})},"updateUrlSearchParams");Va(()=>{let{autoConnect:A,clientUrl:x,utmQueryParams:b,blockchain:v}=E();g&&d==="success"&&W({fromBlockchain:n?.name,fromToken:Ga(a),toBlockchain:r?.name,toToken:Ga(s),fromAmount:l,autoConnect:A??void 0,clientUrl:x??void 0,blockchain:v??void 0,liquiditySources:S?T.current:void 0,...b})},[t.pathname,l,n,a,r,s,S]),Va(()=>{if(!g)return;let A=E();if(!T.current&&A.liquiditySources&&(T.current=A.liquiditySources),A.fromAmount&&h(A.fromAmount),d==="success"){let x=f.find(M=>M.name===A.fromBlockchain),b=A.fromToken&&x?w(qa(A.fromToken,x)):void 0,v=f.find(M=>M.name===A.toBlockchain),I=A.toToken&&v?w(qa(A.toToken,v)):void 0;x&&(c(x),b&&u({token:b,meta:{blockchains:f}})),v&&(p(v),I&&m({token:I,meta:{blockchains:f}}))}},[d]),Va(()=>{let{clientUrl:A,liquiditySources:x}=E();k("clientUrl",A||void 0),C("liquiditySources",x?.split(",")??void 0)},[])}i(ja,"useSyncUrlAndStore");import{i18n as Jo}from"@lingui/core";import{Alert as Qk,Button as Hk,darkTheme as qk,Divider as ws,DoneIcon as Gk,styled as Vk,TextField as Kk,Typography as jk}from"@rango-dev/ui";import Ue,{useState as Xk}from"react";import{useNavigate as Yk,useSearchParams as Zk}from"react-router-dom";import{ChevronRightIcon as IC,Divider as Du,Image as AC,Typography as $u}from"@rango-dev/ui";import St from"react";import{darkTheme as Lu,styled as Xa}from"@rango-dev/ui";var Mu=Xa("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Lu} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Lu} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Pu=Xa("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),_u=Xa("div",{display:"flex"});function Ya(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return St.createElement(Pu,null,St.createElement($u,{size:"large",variant:"label"},n),St.createElement(Du,{size:10}),St.createElement(Mu,{onClick:s?void 0:e,disabled:s},St.createElement(_u,null,r&&St.createElement(St.Fragment,null,St.createElement(AC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),St.createElement(Du,{size:4,direction:"horizontal"})),St.createElement($u,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),St.createElement(IC,{size:12,color:"black"})))}i(Ya,"BlockchainSelectorButton");import{i18n as Ra}from"@lingui/core";import{Button as BC,Divider as Hu,MessageBox as LC}from"@rango-dev/ui";import Yt,{useEffect as qu,useState as es}from"react";import{i18n as Gr}from"@lingui/core";import{Button as Qu,Divider as To,ExternalLinkIcon as NC,Image as WC,Typography as Xo}from"@rango-dev/ui";import ye from"react";var Fu="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Ou(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Ou,"generateExplorerLink");import{darkTheme as jo,styled as Uu}from"@rango-dev/ui";var Za=Uu("a",{textDecoration:"none",color:"$colors$neutral700",[`.${jo} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${jo} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${jo} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${jo} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),zu=Uu("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${jo} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${jo} &`]:{color:"$colors$neutral900"}}});function Ja(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,l=Ou(n.address,s),c=i(()=>window.open(Fu,"_blank"),"onClickLearnMore");return ye.createElement(R,{open:e,dismissible:!0,onClose:o,onExit:r,container:N()},ye.createElement(zu,null,ye.createElement(WC,{src:n.image===""?gr:n.image,size:45,type:"circular"}),ye.createElement(To,{size:4}),ye.createElement(Xo,{variant:"title",size:"medium"},n.symbol),ye.createElement(Xo,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ye.createElement(To,{size:4}),ye.createElement(Xo,{variant:"body",size:"medium"},l?ye.createElement(Za,{hasHover:!0,href:l,target:"_blank",rel:"nofollow noreferrer"},n.address,ye.createElement(NC,{size:12,color:"gray"})):ye.createElement(Za,null,n.address)),ye.createElement(To,{size:4}),n.coinSource&&ye.createElement(Xo,{className:"_coin-source",variant:"body",size:"xsmall"},Gr.t("via")," ",ye.createElement(Xo,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ye.createElement(To,{size:"32"}),ye.createElement(Xo,{size:"medium",variant:"body",className:"_custom-token-description"},Gr.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."))),ye.createElement(To,{size:40}),ye.createElement(To,{size:10}),ye.createElement(Qu,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Gr.t("Import Anyway")),ye.createElement(To,{size:10}),ye.createElement(Qu,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:c},Gr.t("Learn More")))}i(Ja,"CustomTokenModal");function In(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:l,onExitErrorModal:c,onExitImportModal:p}=t,{setCustomToken:u}=y(),[m,h]=es(!1),[d,f]=es(!1),[g,k]=es(!1),C=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),h(!1)},"closeErrorModal"),T=i(()=>{k(!0),S()},"handleErrorModalButtonClick"),w=i(()=>{g&&n?.type==="network-error"&&(k(!1),C()),c()},"handleExit"),E=i(()=>{e&&(u(e),l())},"handleSubmit");return qu(()=>{n&&h(!0)},[n]),qu(()=>{o&&e&&f(!0)},[o,e]),Yt.createElement(Yt.Fragment,null,Yt.createElement(R,{open:m,dismissible:!0,onClose:S,onExit:w,container:N()},Yt.createElement(LC,{title:n?.title??"",type:"error",description:n?.message||Ra.t("Failed Network, Please retry.")},Yt.createElement(Hu,{size:40}),Yt.createElement(Hu,{size:10}),Yt.createElement(BC,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:T},n?.type==="network-error"?Ra.t("Retry"):Ra.t("Add another custom token")))),o&&e&&Yt.createElement(Ja,{blockchain:o,token:e,onSubmitClick:E,onClose:()=>f(!1),open:d,onExit:p}))}i(In,"ImportCustomToken");import{useManager as _k}from"@rango-dev/queue-manager-react";import{BottomLogo as Dk,Divider as um,Header as $k}from"@rango-dev/ui";import be,{useEffect as Ts,useMemo as Fk,useRef as mm,useState as Ok}from"react";import{useRef as MC}from"react";function Vr(){return window.self!==window.top}i(Vr,"isAppLoadedIntoIframe");function ts(){let t=MC(null),{iframe:e}=y(),o=Vr()&&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(ts,"useIframe");import{useNavigate as PC}from"react-router-dom";function Oe(){let t=PC();return()=>t(-1)}i(Oe,"useNavigateBack");import{createTheme as ls,darkTheme as jC,lightTheme as XC}from"@rango-dev/ui";import{useEffect as YC,useState as ZC}from"react";import{theme as VC,darkColors as KC}from"@rango-dev/ui";import as from"react";function _C(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(_C,"expandShortHexColor");function DC(t){return/[0-9]+$/.test(t)}i(DC,"isOverridingColor");function $C(t,e){return t.padStart(e,"0")}i($C,"pad");function os(t){let e=Math.min(Math.max(Math.round(t),0),255);return $C(e.toString(16),2)}i(os,"intToHex");function FC(t){return`#${os(t.red)}${os(t.green)}${os(t.blue)}`}i(FC,"rgbToHex");function OC(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(OC,"hexToRGB");function UC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(UC,"generateShade");function zC(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(zC,"generateTint");function QC(t){return Gu(t,UC)}i(QC,"calculateShades");function HC(t){return Gu(t,zC)}i(HC,"calculateTints");function Gu(t,e){let o=OC(t),n=[];for(let r=1;r<9;r++)n.push(FC(e(o,r)));return n}i(Gu,"calculateColors");function ns(t,e,o){let a=HC(t).reverse().concat(t),s=QC(t),l=a.concat(s),c={},p=l.length;for(let u=0;u<p;u++){let m=100+(o?p-1-u:u)*50;c[`${e}${m}`]=l[u]}return c}i(ns,"createTintsAndShades");function rs(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)&&!DC(r)){let c=_C(a);Object.assign(n,ns(c,r,s))}}return{...n,...e}}i(rs,"expandToGenerateThemeColors");var Vu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),qC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Vu(o%52)+e;return Vu(o%52)+e},"toAlphabeticName"),GC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),is=i(t=>qC(GC(5381,JSON.stringify(t))>>>0),"toHash");function ss(t){let e=VC.colors,o={...e,...KC},n,r;if(t?.light){let s={colors:rs(e,t.light)};n={id:`${ha}-light-${is(s)}`,tokens:s}}if(t?.dark){let s={colors:rs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ha}-dark-${is(s)}`,tokens:s}}return{light:n,dark:r}}i(ss,"customizedThemeTokens");function Ku(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>as.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(as.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(as.cloneElement(e,{key:l}))}}),o}i(Ku,"joinList");function ju(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(ju,"doesWindowPreferDarkColorScheme");function Yo(t){let{colors:e,fontFamily:o=$c,borderRadius:n=ip,secondaryBorderRadius:r=ap}=t,[a,s]=ZC(ju()?"dark":"light"),{theme:l}=y(),{dark:c,light:p}=ss(e),u=ls({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[u.className,XC.className],h=[u.className,jC.className];if(p){let f=ls(p.id,p.tokens);m.push(f.className)}if(c){let f=ls(c.id,c.tokens);h.push(f.className)}return YC(()=>{let f=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return ju()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",f),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",f)}},[]),{activeTheme:i(()=>{let f=m.join(" "),g=h.join(" ");return l==="auto"?a==="dark"?g:f:l==="dark"?g:f},"getActiveTheme"),mode:l==="auto"?a:l}}i(Yo,"useTheme");var ft=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 Xu}from"@lingui/core";import{Alert as JC,Button as RC}from"@rango-dev/ui";import Yu from"react";function cs(t){return Yu.createElement(JC,{action:Yu.createElement(RC,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Xu.t("Activate this tab")),type:"warning",variant:"alarm",title:Xu.t("Another tab is open and handles transactions.")})}i(cs,"ActivateTabAlert");import{i18n as ps}from"@lingui/core";import{Button as ek,Divider as tk,MessageBox as ok}from"@rango-dev/ui";import Kr from"react";function us(t){let{open:e,onClose:o,onConfirm:n}=t;return Kr.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Kr.createElement(ok,{title:ps.t("Activate current tab"),type:"warning",description:ps.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.")},Kr.createElement(tk,{size:20}),Kr.createElement(ek,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},ps.t("Confirm"))))}i(us,"ActivateTabModal");import{ChevronLeftIcon as nk}from"@rango-dev/ui";import Zu from"react";function ms(t){return Zu.createElement(Et,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Zu.createElement(nk,{color:"black",size:16}))}i(ms,"BackButton");import{i18n as rk}from"@lingui/core";import{Button as ik,Typography as ak}from"@rango-dev/ui";import ds from"react";function fs(t){return ds.createElement(jt,null,ds.createElement(ik,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ds.createElement(ak,{variant:"label",size:"medium",color:"error500"},rk.t("Cancel"))))}i(fs,"CancelButton");import{i18n as sk}from"@lingui/core";import{Image as lk,Tooltip as ck,WalletIcon as pk}from"@rango-dev/ui";import vo from"react";function gs(t){let{list:e}=ht(),o=e.filter(r=>r.state==="connected"),n=o.length?vo.createElement("div",{className:Pp()},o.map(r=>vo.createElement(Ar,{key:r.title},vo.createElement(lk,{src:r.image,size:14})))):sk.t("Connect Wallet");return vo.createElement(ck,{container:t.container,side:"bottom",content:n},vo.createElement(Et,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&vo.createElement(Wp,null),vo.createElement(pk,{size:18,color:"black"})))}i(gs,"WalletButton");import{i18n as Xr}from"@lingui/core";import{NotificationsIcon as Ek,Popover as Ik,SettingsIcon as Ak,Tooltip as Yr,TransactionIcon as Nk}from"@rango-dev/ui";import We from"react";import{Notifications as fk}from"@rango-dev/ui";import gk from"react";import{useNavigate as hk}from"react-router-dom";import{create as uk}from"zustand";import{persist as mk,subscribeWithSelector as dk}from"zustand/middleware";var we=zo(uk()(mk(dk((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 hs(){let t=hk(),{getNotifications:e,clearNotifications:o}=we(),n=e(),r=y().blockchains(),{findToken:a}=y();return gk.createElement(fk,{list:n,getBlockchainImage:l=>Ac(l,r),getTokenImage:l=>a(l)?.image,onClickItem:i(l=>{t(`${F.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(hs,"NotificationContent");import{useManager as yk}from"@rango-dev/queue-manager-react";import{InProgressIcon as Sk}from"@rango-dev/ui";import Ju from"react";var Ck=i(()=>{let{manager:t}=yk();return ft(t).map(({swap:o})=>o).find(o=>o.status==="running")?Ju.createElement(Mp,null,Ju.createElement(Sk,{color:"info",size:6})):null},"InProgressTransactionBadge"),Ru=Ck;import{EventSeverity as kk}from"@rango-dev/queue-manager-rango-preset";import{Typography as Tk}from"@rango-dev/ui";import em from"react";function tm(){let{getNotifications:t}=we(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===kk.WARNING);return o?em.createElement(Bp,{isSever:n},em.createElement(Tk,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(tm,"NotificationsBadge");import{RefreshProgressButton as vk}from"@rango-dev/ui";import ys,{useEffect as wk,useState as om}from"react";var bk=1e3,nm=60,xk=100;function jr({onClick:t}){let[e,o]=om(0),[n,r]=om(!1),a=i(c=>{document.hidden&&c&&s(c)},"handleVisibilityChange");wk(()=>{let c;return t?c=window.setInterval(()=>{o(p=>p+1),e===nm&&l()},bk):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 ys.createElement(Et,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ys.createElement(Lp,{onTransitionEnd:()=>r(!1),isRefetched:n},ys.createElement(vk,{size:22,color:t?"black":"gray",progress:e/nm*xk})))}i(jr,"RefreshButton");function wo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ye("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Yr,{container:a||N(),side:"top",content:Xr.t("Refresh")},We.createElement(jr,{onClick:e})),!l&&We.createElement(Ik,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:We.createElement(hs,null)},We.createElement("div",null,We.createElement(Yr,{container:N(),side:"top",content:Xr.t("Notifications")},We.createElement(Et,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},We.createElement(Ek,{size:18,color:"black"}),We.createElement(tm,null))))),!r.includes("settings")&&We.createElement(Yr,{container:N(),side:"top",content:Xr.t("Settings")},We.createElement(Et,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},We.createElement(Ak,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Yr,{container:N(),side:"top",content:Xr.t("History")},We.createElement(Et,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},We.createElement(Nk,{size:18,color:"black"}),We.createElement(Ru,null))))}i(wo,"HeaderButtons");import{i18n as Ss}from"@lingui/core";import{Divider as im,MessageBox as Lk,RefreshIcon as Mk}from"@rango-dev/ui";import Zo from"react";import{Button as Wk,styled as Bk}from"@rango-dev/ui";var rm=Bk(Wk,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Cs(t){let{open:e,onClose:o}=t;return Zo.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Zo.createElement(Lk,{title:Ss.t("Something went wrong"),type:"error",description:Ss.t("Something went wrong. Please refresh the app.")},Zo.createElement(im,{size:30}),Zo.createElement(rm,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Zo.createElement(Mk,{size:20,color:"primary"}),Zo.createElement(im,{size:4,direction:"horizontal"}),Ss.t("Refresh"))))}i(Cs,"RefreshModal");function ks(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(ks,"onScrollContentAttachStatusToContainer");import{css as Pk,styled as Zr}from"@rango-dev/ui";var am="700px",Jr=Pk({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),sm=Zr("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:am},fixed:{height:am}},showBanner:{true:{overflow:"visible"}}}}),lm=Zr("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),cm=Zr("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"}}}),pm=Zr("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)"});function oe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ts(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:c,config:{__UNSTABLE_OR_INTERNAL__:p}}=y(),[u,m]=Ok(!1),{config:{features:h,theme:d}}=y(),{watermark:f}=ne(),g=f==="FULL",{activeTheme:k}=Yo(d||{}),C=Ye("connectWalletButton",h),{isActiveTab:S,tabManagerInitiated:T,showActivateTabModal:w,setShowActivateTabModal:E,activateCurrentTab:W}=ne(),A=Oe(),{manager:x}=_k(),v=ft(x).map(({swap:B})=>B).some(B=>B.status==="running"),I=i(()=>W(fo.forceClaim,v),"onActivateTab"),M=i(()=>{r.onWallet?.()},"onConnectWallet"),$=typeof r.hasBackButton>"u"||r.hasBackButton,q=mm(null),Z=mm(null),j=Fk(()=>{let B=(p?.swapBoxBanner?.routes?.length??0)===0,X=!!p?.swapBoxBanner?.routes?.some(ae=>location.pathname.endsWith(ae));return p?.swapBoxBanner&&(B||X)},[p?.swapBoxBanner?.routes?.length,location.pathname]);return Ts(()=>(Vr()&&Z.current&&e(Z.current),()=>{o()}),[]),Ts(()=>(q.current?.addEventListener("scroll",ks),()=>{q.current?.removeEventListener("scroll",ks)}),[]),Ts(()=>{m(l==="failed")},[l]),be.createElement(sm,{height:s,id:$e.SWAP_BOX_ID,className:`${k()} ${Jr()}`,ref:Z,showBanner:j},be.createElement($k,{prefix:$?be.createElement(ms,{onClick:()=>{A(),r.onBack?.()}}):null,title:r.title,suffix:be.createElement(be.Fragment,null,r.suffix,r.onWallet&&!C&&be.createElement(gs,{container:N(),onClick:M,isConnected:!!c?.length}),r.onCancel&&be.createElement(fs,{onClick:r.onCancel}))}),be.createElement(lm,{ref:q},n),be.createElement(us,{open:w,onClose:()=>E(!1),onConfirm:I}),be.createElement(cm,null,be.createElement("div",{className:"footer__content"},T&&!S&&be.createElement("div",{className:"footer__alert"},be.createElement(cs,{onActivateTab:I}),be.createElement(um,{size:10})),a),be.createElement(um,{size:12}),be.createElement("div",{className:`footer__logo ${g?"logo__show":"logo__hidden"}`},be.createElement(Dk,null))),j&&be.createElement(pm,null,p?.swapBoxBanner?.element),be.createElement(Cs,{open:u,onClose:()=>m(!1)}))}i(oe,"Layout");import{styled as Uk}from"@rango-dev/ui";var dm="$20 $20 $10 $20",An=Uk("div",{padding:dm,overflowY:"auto",flexGrow:1});import{styled as zk}from"@rango-dev/ui";var re=zk("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 Zt}from"@lingui/core";import{useState as vs}from"react";function fm(){let[t,e]=vs(!1),[o,n]=vs(null),[r,a]=vs(null),{findToken:s}=y(),l=y().customTokens(),c=i(()=>{a(null),e(!1),n(null)},"resetState");function p(m,h){switch(m){case"duplicated":return{type:m,title:Zt.t("Duplicate Token"),message:Zt.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:Zt.t("Token Already Exists"),message:Zt.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:Zt.t("Token Not Found"),message:Zt.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:Zt.t("Network error"),message:Zt.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:m,tokenAddress:h})=>{e(!0);try{if(l.some(C=>C.address?.toLowerCase()===h.toLowerCase())){let C=p("duplicated");n(C);return}let f=await ot().getCustomToken({blockchain:m,address:h});if(!f||!f.token||f.error){let C=p("not-found",m);n(C);return}let g=f.token;if(s({blockchain:g.blockchain,address:g.address,symbol:g.symbol})){let C=p("token-exist");n(C);return}return a({...g,warning:!0})}catch(d){if(d.code==="ERR_BAD_REQUEST"){let f=p("not-found",m);n(f);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:c}}i(fm,"useFetchCustomToken");var Jk=Vk("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${qk} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function gm(){let t=Yk(),[e]=Zk(),o=Oe(),n=y().blockchains(),r=e.get("blockchain")||"",a=co(r,n),[s,l]=Xk(""),{fetchCustomToken:c,token:p,loading:u,error:m,resetState:h}=fm(),d=!!a&&_o(a,s),f=!a||!s||!d,g=i(()=>{a&&c({blockchain:r,tokenAddress:s})},"getCustomToken");return Ue.createElement(oe,{header:{title:Jo.t("Add Custom Token")}},Ue.createElement(re,null,Ue.createElement(Jk,null,Ue.createElement("div",null,Ue.createElement(Ya,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:Jo.t("Select chain"),placeholder:Jo.t("Select chain")}),Ue.createElement(ws,{size:"24"}),Ue.createElement(jk,{size:"large",variant:"label"},Jo.t("Enter Address")),Ue.createElement(ws,{size:10}),Ue.createElement(Kk,{fullWidth:!0,disabled:!a,variant:"contained",placeholder:Jo.t("Enter token address"),size:"large",value:s,suffix:!!s&&d&&Ue.createElement(Gk,{color:"success",size:12}),onChange:k=>l(k.target.value)}),!d&&!!s&&Ue.createElement(Ue.Fragment,null,Ue.createElement(ws,{size:4}),Ue.createElement(Qk,{type:"error",variant:"alarm",title:"Invalid Address"}))),Ue.createElement(Hk,{id:"widget-add-custom-token-import-btn",disabled:f,type:"primary",variant:"contained",loading:u,size:"large",onClick:g},Jo.t("Import"))),Ue.createElement(In,{token:p,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(gm,"AddCustomTokenPage");import{i18n as Rs}from"@lingui/core";import{useManager as _v}from"@rango-dev/queue-manager-react";import{Alert as Dv,Button as $v,css as tl,Divider as el,IconButton as pf,styled as Fv,Typography as Ov,WalletIcon as Uv}from"@rango-dev/ui";import Le,{useEffect as Ei,useLayoutEffect as zv,useRef as Qv,useState as zn}from"react";import{useNavigate as Hv}from"react-router-dom";import{i18n as bo}from"@lingui/core";import{Alert as wT,BalanceErrors as bT,Button as Hm,ChevronLeftIcon as xT,Divider as Bs,MessageBox as ET,Typography as Ls}from"@rango-dev/ui";import te,{useCallback as IT,useEffect as qm,useMemo as AT,useState as tn}from"react";import{useNavigate as NT}from"react-router-dom";import{i18n as Is}from"@lingui/core";import{Alert as nT,ChevronDownIcon as rT,CloseIcon as iT,Divider as vm,IconButton as wm,PasteIcon as aT,Typography as sT,WalletIcon as lT}from"@rango-dev/ui";import Be,{useEffect as cT,useRef as pT}from"react";import oi,{useRef as tT}from"react";import*as Ro from"@radix-ui/react-collapsible";import{keyframes as hm,styled as Rr}from"@rango-dev/ui";var bs=300,Rk=hm({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),eT=hm({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),ym=Rr(Ro.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),xs=Rr(Ro.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),ei=Rr(Ro.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Rk} ${bs}ms ease-out`},false:{animation:`${eT} ${bs}ms ease-out`}}}}),ti=Rr("div",{transition:`all ${bs}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function ni(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,c=tT(null);return oi.createElement(ym,{ref:c,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&oi.createElement(xs,{className:"collapsible_trigger",onClick:a},s),oi.createElement(ei,{className:"collapsible_content",open:e},r),l==="bottom"&&oi.createElement(xs,{className:"collapsible_trigger",onClick:a},s))}i(ni,"CustomCollapsible");import{darkTheme as Sm,styled as Es,TextField as oT}from"@rango-dev/ui";var Cm=Es("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),km=Es(oT,{backgroundColor:"$neutral100",padding:"$15"}),Tm=Es("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Sm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Sm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function bm(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=y(),l=y().blockchains(),c=mr(e.name,l),p=pT(null),u=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),d=n&&!!r&&e&&!_o(e,r),f=i(()=>{a("")},"handleClear"),g=i(async C=>{if(C.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),p?.current?.focus()}},"handlePaste"),k=i(()=>r?Be.createElement(wm,{id:"widget-custom-destination-close-icon-btn",onClick:f,variant:"ghost"},Be.createElement(iT,{size:12,color:"gray"})):m?null:Be.createElement(wm,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Be.createElement(aT,{size:16})),"renderSuffix");return cT(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Be.createElement(Cm,null,Be.createElement(ni,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Be.createElement(Tm,null,Be.createElement("div",{className:"button__content"},Be.createElement(lT,{size:18,color:"info"}),Be.createElement(vm,{size:4,direction:"horizontal"}),Be.createElement(sT,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Is.t("Send to a different address"))),Be.createElement(ti,{orientation:n?"up":"down"},Be.createElement(rT,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Be.createElement(km,{ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Is.t("Enter {blockchainName} address",{blockchainName:c}),value:r||"",suffix:k(),onChange:C=>{let S=C.target.value;a(S)}})),d&&Be.createElement(Be.Fragment,null,Be.createElement(vm,{size:4}),Be.createElement(nT,{variant:"alarm",type:"error",title:Is.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(bm,"CustomDestination");import{css as uT,darkTheme as As,IconButton as mT,styled as Dt}from"@rango-dev/ui";var xm=Dt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Em=Dt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),dT=Dt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${As} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${As} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${As} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Im=Dt(dT,{alignSelf:"stretch",minHeight:"93px"}),Am=Dt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Nm=Dt(mT,{position:"absolute",left:"$20"}),Wm=Dt("div",{paddingTop:"$20"}),Bm=uT({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Lm=Dt("div",{display:"flex"}),Mm=Dt("div",{overflow:"visible",width:"100%"});import{i18n as Om}from"@lingui/core";import{warn as ST}from"@rango-dev/logging-core";import{Divider as CT,SelectableWallet as kT,Typography as Um,WalletState as zm}from"@rango-dev/ui";import Je,{useEffect as Qm,useState as Wn}from"react";import{Image as hT,MessageBox as yT}from"@rango-dev/ui";import Nn from"react";import{keyframes as fT,styled as Ns}from"@rango-dev/ui";var Pm=Ns("div",{position:"relative"}),gT=fT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),_m=Ns("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${gT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Dm=Ns("div",{"& img":{borderRadius:"50%"}});import{i18n as en}from"@lingui/core";function $m(t,e){switch(t){case"in-progress":return{type:"loading",title:en.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:en.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:en.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:en.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:en.t("Request Rejected"),description:en.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($m,"generateMessageByStatus");function Fm(t){let{status:e,displayName:o,image:n}=t,r=$m(e,o),a=e=="in-progress";return Nn.createElement(yT,{type:r.type,title:r.title,description:r.description,icon:a?Nn.createElement(Pm,null,Nn.createElement(Dm,null,Nn.createElement(hT,{src:n,size:45})),Nn.createElement(_m,null)):void 0})}i(Fm,"ExperimentalChainStatus");var TT=7,vT=3e3;function Ws(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=ne.use.isActiveTab(),{blockchains:l,connectedWallets:c}=y(),[p,u]=Wn(),[m,h]=Wn(null),[d,f]=Wn(!1),[g,k]=Wn(null),{suggestAndConnect:C}=ri(),{handleDisconnect:S}=Kt(),{list:T}=ht({chain:e}),[w,E]=Wn(T),W=T.length,A=r&&W-r>0,x=i(async v=>{f(!1),k("in-progress");try{await C(v.walletType,v.chain),k("completed")}catch{k("rejected")}},"addExperimentalChain");Qm(()=>{E(v=>{let I=T.findIndex(M=>o(M.type,e));return A&&I>1?[T[I]].concat(T.filter((M,$)=>$!==I)):v.map(M=>T.find($=>$.type===M.type)??M)})},[JSON.stringify(T)]);let b=document.getElementById($e.SWAP_BOX_ID);return Qm(()=>{let v=null;return(g==="completed"||g==="rejected")&&(v=setTimeout(()=>k(null),vT)),()=>{v&&clearTimeout(v)}},[g]),Je.createElement(Je.Fragment,null,w.slice(0,r).map(v=>{let I=Rc({connectedWallets:c,walletType:v.type,chain:e}),M=I?xr(I,TT):"",$=wr(l(),e),q=!c.find(ae=>ae.walletType===v.type&&ae.chain===e),Z=$&&q&&v.state===zm.CONNECTED,j=Z?Om.t({id:"Add {chain} chain",values:{chain:e}}):M,B=i(async()=>{let ae=v.state===zm.DISCONNECTED,K=(v.isHub||!!v.needsNamespace)&&!M;ae?u(v):K?(await S(v.type),u(v)):Z?(h({walletType:v.type,chain:e,address:I??""}),f(!0)):n({walletType:v.type,chain:e,address:I??""})},"onSelectableWalletClick"),X=m?.chain?mr(m.chain,l()):void 0;return Je.createElement(Je.Fragment,{key:`${v.title}_${X}`},!!m&&Je.createElement(R,{open:!!m&&d,container:b,onClose:()=>{h(null)}},Je.createElement(Da,{displayName:X,onConfirm:()=>{x(m)}})),g&&Je.createElement(R,{open:!!g,onClose:k.bind(null,null),container:b},Je.createElement(Fm,{status:g,displayName:X,image:v.image}),Je.createElement(CT,{direction:"vertical",size:32})),Je.createElement(kT,{key:v.type,description:j,onClick:B,selected:o(v.type,e),disabled:!s,...v}))}),Je.createElement(So,{wallet:p,onClose:()=>{u(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):ST(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&Je.createElement(Im,{selected:!1,onClick:a},Je.createElement(Um,{variant:"label",size:"medium"},Om.t("Show more wallets"),Je.createElement(Um,{variant:"label",size:"medium",color:"$primary"},"\xA0+",W-(r??0)))))}i(Ws,"WalletList");var WT=2;function Gm(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=NT(),l=y().blockchains(),{selectedQuote:c,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:h,setCustomDestination:d}=O(),{config:f,connectedWallets:g,setWalletsAsSelected:k}=y(),[C,S]=tn(""),[T,w]=tn([]),[E,W]=tn(""),[A,x]=tn(!!h),b=AT(()=>mo({filter:"all",quote:c}),[c]),v=mo({filter:"required",quote:c}),I=l.find(_=>_.name===c?.swaps[c?.swaps.length-1].to.blockchain),M=i(_=>v.includes(_),"isWalletRequiredFor"),$=IT(()=>g.filter(_=>_.selected&&b.includes(_.chain)),[g,b]),[q,Z]=tn($()),[j,B]=tn([]),X=i((_,H)=>B(V=>V.concat({blockchain:_,walletType:H})),"addNextSelectedWallets"),ae=T.length>0,K=i((_,H)=>!!q.find(V=>V.walletType===_&&V.chain===H&&V.selected&&(M(H)||!M(H)&&!h)),"isSelected"),fe=i((_,H,V)=>{let ge=!1;return _.map(ce=>{if(ce.chain===H){let _e=ce.selected;return!ge&&V?(ge=!0,_e=!0):V||(_e=!1),{...ce,selected:_e}}return ce})},"updateSelectableWallets"),Ie=i(_=>{x(_),_?M(I?.name??"")||Z(H=>fe(H,I?.name||"",!1)):(d(""),Z(H=>fe(H,I?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),je=i(_=>{if(C&&S(""),K(_.walletType,_.chain))return;let V=g.find(ge=>ge.walletType===_.walletType&&ge.chain===_.chain);V&&(n(),_.chain===I?.name&&A&&!M(I.name)&&(x(!1),d(null)),Z(ge=>ge.filter(ce=>ce.chain!==_.chain).concat({...V,selected:!0})))},"onChange"),se=i(()=>{let _=q.filter(H=>H.selected);k(_),p(_),m(!0),o()},"onConfirmBalance"),pt=i(async()=>{w([]),W("");let _=await r?.({selectedWallets:q.filter(V=>V.selected),customDestination:h}),H=_.warnings;H?.balance?.messages&&w(H.balance.messages),_.error&&W(Rp(_.error)),!_.error&&!H?.balance?.messages.length?se():w(H?.balance?.messages??[])},"onConfirmWallets");qm(()=>{Z(_=>{let H=[];return _.forEach(V=>{!g.some(ce=>ce.chain===V.chain&&ce.walletType===V.walletType&&ce.address===V.address)||H.push(V)}),H=H.concat(g.filter(V=>!!!H.find(ce=>ce.chain===V.chain)&&V.selected&&b.includes(V.chain))),H})},[g,b]),qm(()=>{let _=[];j.length>0&&(j.forEach(H=>{let V=g.find(ge=>ge.chain===H.blockchain&&ge.walletType===H.walletType);V?je(V):_.push(H)}),B(_))},[g,j]);let G=document.getElementById($e.SWAP_BOX_ID);return te.createElement(R,{open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!C,container:G,...!C&&{styles:{container:{height:"100%"}},footer:te.createElement(Lm,null,te.createElement(Hm,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Au(a,A,h,c,q,I),onClick:pt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},bo.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:te.createElement(Am,null,te.createElement(Nm,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},te.createElement(xT,{size:16})),te.createElement(Ls,{variant:"headline",size:"small"},bo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ut(C,l)}})))},anchor:"center"},te.createElement(R,{open:ae,onClose:w.bind(null,[]),container:G},te.createElement(ET,{title:bo.t("Insufficient account balance"),type:"error",description:te.createElement(bT,{messages:T??[]})},te.createElement(Hm,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:se},bo.t("Proceed anyway")))),C&&te.createElement(Wm,null,te.createElement("div",{className:Bm()},te.createElement(Ws,{chain:C,isSelected:K,selectWallet:je,onShowMore:()=>S(C),onConnect:_=>{X(C,_)}}))),!C&&te.createElement(te.Fragment,null,E&&te.createElement(te.Fragment,null,te.createElement(wT,{variant:"alarm",type:"error",title:bo.t(E)}),te.createElement(Bs,{size:12})),te.createElement(Mm,null,b.map((_,H)=>{let V=l.find(Xe=>Xe.name===_),ge=`wallet-${H}`,ce=H===b.length-1,_e=ce&&I&&f?.customDestination!==!1;return te.createElement("div",{key:ge},te.createElement(xm,null,te.createElement(Ls,{variant:"title",size:"xmedium"},bo.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),te.createElement(Ls,{variant:"label",color:"$neutral700",size:"medium"},bo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),te.createElement(Bs,{size:24}),te.createElement(Em,null,te.createElement(Ws,{chain:_,isSelected:K,selectWallet:je,limit:WT,onShowMore:()=>S(V?.name??""),onConnect:Xe=>{X(_,Xe)}})),!ce&&te.createElement(Bs,{size:32}),_e&&te.createElement(bm,{blockchain:I,open:A,handleOpenChange:Ie}))}))))}i(Gm,"ConfirmWalletsModal");import{i18n as XT}from"@lingui/core";import{Alert as YT,Button as ZT,InfoIcon as JT}from"@rango-dev/ui";import rt from"react";import{Alert as MT,Button as PT,Divider as _s,NoRouteIcon as _T,RefreshIcon as DT,Typography as Jm}from"@rango-dev/ui";import nt from"react";import{i18n as Vm}from"@lingui/core";var BT=24,LT=60;function Km(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:Vm.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Vm.t("Reset")}},description:ee().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ee().noResultError.description}}i(Km,"makeInfo");var Ms=(o=>(o[o.small=BT]="small",o[o.large=LT]="large",o))(Ms||{}),Ps=(o=>(o.small="small",o.large="medium",o))(Ps||{});import{styled as ii}from"@rango-dev/ui";var jm=ii("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Xm=ii("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Ym=ii("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Zm=ii("div",{padding:"$6 $0"});function Bn(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Km(o,r,()=>a(s,!0),e);return nt.createElement(jm,null,nt.createElement(_T,{size:Ms[n],color:"gray"}),nt.createElement(_s,{size:4}),nt.createElement(Jm,{variant:"title",size:Ps[n]},ee().noResultError.title),n==="large"&&nt.createElement(_s,{size:4}),!!l.description&&nt.createElement(Xm,{size:n},nt.createElement(Jm,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),nt.createElement(_s,{size:n==="large"?"24":"4"}),!!l.alert&&nt.createElement(Ym,{size:n},nt.createElement(MT,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&nt.createElement(PT,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:nt.createElement(Zm,null,nt.createElement(DT,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Bn,"NoResult");import{i18n as Ln}from"@lingui/core";import{Button as FT,Divider as OT,MessageBox as UT,Typography as zT,WarningIcon as QT}from"@rango-dev/ui";import $t from"react";import{Typography as od}from"@rango-dev/ui";import $s from"react";import{darkTheme as $T,styled as ai}from"@rango-dev/ui";var Rm=ai("div",{width:"100%"}),Ds=ai("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),ed=ai("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${$T} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),td=ai("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function nd(t){let{title:e,value:o,valueColor:n}=t;return $s.createElement(ed,null,$s.createElement(od,{size:"medium",variant:"label",className:"_title"},e),$s.createElement(od,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(nd,"QuoteErrorsModalItem");function rd(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:Ln.t("Swapping"),value:P(r.inputUsdValue,4,4)},{title:Ln.t("Gas cost"),value:P(r.totalFee,2,2)},{title:Ln.t("Receiving"),value:P(r.outputUsdValue,4,4)},{title:Ln.t("Price impact"),value:P(r.priceImpact,2,2),valueColor:`${s}500`}];return $t.createElement(R,{footer:$t.createElement(FT,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:$t.createElement(QT,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},$t.createElement(UT,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),$t.createElement(Ds,null,$t.createElement(OT,{size:"4"}),$t.createElement(zT,{size:"small",variant:"title"},Ln.t("Details")),$t.createElement(Ds,null,l.map((c,p)=>$t.createElement(nd,{key:p,...c})))))}i(rd,"HighValueLossWarningModal");import{i18n as si}from"@lingui/core";function id(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=si.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:{_t(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ee().highValueLossError.title;break}case 4:{o.title=si.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ee().unknownPriceError.title;break}case 2:{o.title=si.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=si.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(id,"makeAlerts");import{i18n as on}from"@lingui/core";import{Button as ad,Divider as sd,MessageBox as HT,Typography as qT}from"@rango-dev/ui";import xo from"react";import{useNavigate as GT}from"react-router-dom";function ld(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,c=GT(),p=e??o;return xo.createElement(R,{anchor:"bottom",open:n,prefix:xo.createElement(ad,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>c("../"+F.settings)},xo.createElement(qT,{variant:"label",size:"medium",color:"$neutral900"},on.t("Change settings"))),container:N(),onClose:r},xo.createElement(HT,{type:"warning",title:s.type===3?on.t("High slippage"):on.t("Low slippage"),description:s.type===3?on.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):on.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},xo.createElement(sd,{size:18}),xo.createElement(sd,{size:32}),xo.createElement(ad,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},on.t("Confirm anyway"))))}i(ld,"SlippageWarningModal");import{Button as VT,MessageBox as KT,WarningIcon as jT}from"@rango-dev/ui";import li from"react";function cd(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return li.createElement(R,{footer:li.createElement(VT,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:li.createElement(jT,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},li.createElement(KT,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(cd,"UnknownPriceWarningModal");function Mn(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:c,onConfirmWarningModal:p,onChangeSettings:u}=t,m={confirmationDisabled:a,open:r,onClose:c,onConfirm:p},h=o?.type===0||o?.type===1,d=id(e,o?.type===3||o?.type===4?o:null);return d&&!n&&(d.action=null),rt.createElement(rt.Fragment,null,h&&rt.createElement(Bn,{error:o,fetch:s}),!!d&&rt.createElement(Rm,null,rt.createElement(YT,{title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:rt.createElement(td,{onClick:l},rt.createElement(JT,{size:12,color:"gray"}))},...d.action==="change-settings"&&{action:rt.createElement(ZT,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:u},XT.t("Change"))}})),e&&rt.createElement(rt.Fragment,null,e.type===0&&rt.createElement(rd,{...m,warning:e}),(e.type===3||e.type===2)&&rt.createElement(ld,{...m,warning:e}),e.type===1&&rt.createElement(cd,{...m,warning:e})))}i(Mn,"QuoteWarningsAndErrors");import Nv from"bignumber.js";import vi from"react";import{i18n as Eo}from"@lingui/core";import{Alert as hv,Divider as rn,FullExpandedQuote as yv,InfoIcon as Sv,NumericTooltip as zd,QuoteTag as Cv,StepDetails as kv,TokenAmount as Tv,Typography as an}from"@rango-dev/ui";import Vs from"bignumber.js";import U,{useRef as vv,useState as wv}from"react";import{styled as Fs}from"@rango-dev/ui";var Os=Fs("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),pd=Fs("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),ud=Fs("div",{width:"100%",display:"flex"});import*as ci from"@radix-ui/react-collapsible";import{Button as RT,css as Pn,darkTheme as xe,Image as md,styled as He,Typography as ev}from"@rango-dev/ui";var tv=300,dd=He(ci.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),fd=Pn({padding:"$10 $15"}),gd=He(RT,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${xe} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${xe} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${xe} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),hd=He("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",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${xe} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}}}}]}),yd=Pn({width:"100%",padding:"$15 $15 $10 $15"}),Sd=Pn({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),nn=Pn({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Cd=Pn({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${xe} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),kd=He(ci.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:{[`& ${md}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${md}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Td=He("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"}}}}),vd=He(ei,{width:"100%",background:"inherit"}),Us=He("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${tv}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),V1=He("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),wd=He("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${xe} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),bd=He("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),zs=He(ev,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),xd=He("div",{display:"flex",flexWrap:"wrap"}),Qs=He("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"}}}}),Ed=He("div",{display:"flex"}),pi=He("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${xe} &`]:{borderTopColor:"$neutral800"}});import{i18n as It}from"@lingui/core";import{ChevronDownIcon as nv,CloseIcon as rv,Divider as di,IconButton as iv,NumericTooltip as av,QuoteCost as sv,Typography as Ct}from"@rango-dev/ui";import J,{useState as Wd}from"react";import{css as ov,styled as ui}from"@rango-dev/ui";var mi=ui("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Hs=ui("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Id=ui("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Ad=ui("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Nd=ov({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var lv=i(t=>t.fee.isZero()?null:J.createElement(mi,null,J.createElement(Ct,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(Ct,{variant:"label",size:"medium"},"$",P(t.fee,4,4))),"NonPayableFee");function qs(t){let[e,o]=Wd(!1),[n,r]=Wd(!1),{steps:a,quote:s,fee:l,time:c,feeWarning:p,timeWarning:u,showModalFee:m,fullExpandedMode:h=!1}=t,d=s?.swaps??[],f=h?uo():N(),g=ku(d);return J.createElement(J.Fragment,null,J.createElement(sv,{onClickFee:m?k=>{k.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:p,timeWarning:u,time:c,steps:a,tooltipGas:m?It.t("View more info"):void 0,tooltipContainer:f}),J.createElement(R,{container:f,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:J.createElement(Ad,{style:{textAlign:h?"left":"center"}},J.createElement(Ct,{variant:"title",size:"medium"},It.t("Gas & Fee Explanation")),J.createElement(iv,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},J.createElement(rv,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(Id,null,J.createElement(Ct,{variant:"title",size:"small"},It.t("Details")),J.createElement(di,{size:10}),Object.entries(g.payable).flatMap(([k,C])=>C.map((S,T)=>{let w=`payable-fee-${T}`,E=Ha(S);return J.createElement(mi,{key:w},J.createElement(Ct,{variant:"label",size:"medium",color:"neutral600"},Fa(k,It.t)),J.createElement(av,{content:S.amount,container:f},J.createElement(Ct,{variant:"label",size:"medium"},P(S.amount,2,2)," ",S.asset.symbol," ($",P(E,4,4),")")))})),J.createElement(mi,{className:"total_payable_fee"},J.createElement(Ct,{variant:"label",size:"medium"},It.t("Total Payable Fee")),J.createElement(Ct,{variant:"label",size:"medium"},"$",P(l,4,4))),J.createElement(Hs,null),Object.keys(g.nonePayable).length&&J.createElement(ni,{triggerAnchor:"bottom",onClickTrigger:()=>r(k=>!k),trigger:J.createElement("div",{className:Nd()},J.createElement(Ct,{size:"small",variant:"body",color:"neutral700"},n?It.t("Hide non-payable fees"):It.t("Show non-payable fees")),J.createElement(di,{size:4,direction:"horizontal"}),J.createElement(ti,{orientation:n?"up":"down"},J.createElement(nv,{size:12,color:"gray"}))),open:n},J.createElement(Ct,{size:"small",variant:"title"},It.t("Description")),J.createElement(di,{size:4}),J.createElement(Ct,{size:"small",variant:"body",color:"neutral700"},It.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),J.createElement(di,{size:10}),Object.entries(g.nonePayable).map(([k,C],S)=>{let T=Cu(C),w=Fa(k,It.t),E=`non-payable-fee-${S}`;return J.createElement(lv,{key:E,fee:T,label:w})}),J.createElement(Hs,null)))))}i(qs,"QuoteCostDetails");import{i18n as Md}from"@lingui/core";import{TokenAmount as Pd}from"@rango-dev/ui";import fi from"react";import{css as cv,styled as pv}from"@rango-dev/ui";var Bd=pv("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Ld=cv({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function _n(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return fi.createElement(Bd,null,fi.createElement(Pd,{direction:"horizontal",label:Md.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:Ld()}),fi.createElement(Pd,{direction:"horizontal",tooltipContainer:N(),label:Md.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(_n,"QuoteSummary");import{i18n as Od}from"@lingui/core";import{ChevronDownIcon as dv,ChevronRightIcon as fv,Divider as Gs,Image as gv,Tooltip as Ci,Typography as hi}from"@rango-dev/ui";import z from"react";import{useLayoutEffect as uv,useState as Dn}from"react";var _d=480,Dd=768,$d=1024,Fd=1200,mv=i(()=>{let[t,e]=Dn(!1),[o,n]=Dn(!1),[r,a]=Dn(!1),[s,l]=Dn(!1),[c,p]=Dn(!1),u=i(()=>{e(window.innerWidth<=_d),n(window.innerWidth>_d&&window.innerWidth<=Dd),a(window.innerWidth>Dd&&window.innerWidth<=$d),l(window.innerWidth>$d&&window.innerWidth<=Fd),p(window.innerWidth>Fd)},"handleResize");return uv(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:c}},"useScreenDetect"),gi=mv;var yi=4,Si=6,$n=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||N();return z.createElement(Ci,{container:l,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(Td,{className:n,state:a},z.createElement(gv,{src:o,size:16})))},"ImageComponent");function Ud(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,c=l||N(),p=r.length,u=cu(r),{isTablet:m,isMobile:h}=gi();return z.createElement(kd,{listItem:s==="list-item",ref:d=>e.current=d,selected:o,onClick:d=>{d.stopPropagation(),n(f=>!f)}},z.createElement("div",{className:nn()},z.createElement(hi,{variant:"body",size:"xsmall"},Od.t("Via:")),z.createElement(Gs,{direction:"horizontal",size:4}),r.map((d,f)=>{let g=`item-${f}`,k=z.createElement(Us,null,z.createElement(fv,{size:12,color:"black"}));return h||m?z.createElement(z.Fragment,{key:g},z.createElement($n,{content:d.swapper.displayName,src:d.swapper.image??"",state:d.state,container:l}),f!==p-1&&z.createElement(z.Fragment,null,k)):z.createElement(z.Fragment,{key:g},p<=yi||p>yi&&f<yi-1?z.createElement(z.Fragment,null,z.createElement($n,{content:d.swapper.displayName,src:d.swapper.image??"",state:d.state,container:l}),f!==p-1&&z.createElement(z.Fragment,null,k)):f===yi-1&&z.createElement(Ci,{container:c,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:nn()},k,r.map((C,S)=>{let T=`image-${S}`;return S>=f&&z.createElement(z.Fragment,{key:T},z.createElement($n,{content:C.swapper.displayName,src:C.swapper.image??"",state:C.state,open:!1}),S!==p-1&&z.createElement(z.Fragment,null,k))}))},z.createElement(Qs,{state:r.find((C,S)=>S>=f&&(C.state==="error"||C.state==="warning"))?.state},z.createElement(hi,{size:"xsmall",variant:"body"},"+",p-f))))})),z.createElement("div",{className:nn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:nn()},z.createElement(hi,{variant:"body",size:"xsmall"},Od.t("Chains:")),z.createElement(Gs,{direction:"horizontal",size:4}),u.map((d,f)=>z.createElement(z.Fragment,{key:d.displayName},u.length<=Si||u.length>Si&&f<Si-1?z.createElement(Ci,{container:c,side:"bottom",content:d.displayName,sideOffset:4},z.createElement($n,{content:"",src:d.image??"",open:!1,className:f!==0?"blockchainImage":""})):f===Si-1&&z.createElement(Ci,{container:c,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:nn()},u.map((g,k)=>k>=f&&z.createElement($n,{key:g.displayName,content:"",src:g.image??"",open:!1,className:k>f?"blockchainImage":"",container:l})))},z.createElement(Qs,{className:"blockchainImage"},z.createElement(hi,{size:"xsmall",variant:"body"},"+",u.length-f))))),z.createElement(Gs,{direction:"horizontal",size:32}))),z.createElement(Us,{orientation:a?"up":"down"},z.createElement(dv,{size:12,color:"black"}))))}i(Ud,"QuoteTrigger");function Ks(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:c=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:m=!1,container:h}=t,d=y().blockchains(),{findToken:f}=y(),g=y().swappers(),{customSlippage:k,slippage:C}=y(),S=k||C,[T,w]=wv(t.expanded),E=vv(null),W=P(o.value,6,6),A=P(n.value,6,6),x=n.usdValue?P(n.usdValue,4,4):"",b=Pt(o.usdValue,n.usdValue??null),v=P(b,2,2),I=_t(b??0),M=i((se,pt)=>se.map((G,_)=>{let H,V=r?.type===3&&r.swap.swapperId===G.swapperId,ge=r?.type===4&&r.recommendedSlippages?.has(_),ce=a?.type===2&&a.recommendedSlippages?.has(_),_e=V||ge,Xe=ce;_e?H="error":Xe&&(H="warning");let ke=_e?Eo.t("Slippage Error"):Eo.t("Slippage Warning");return V&&(ke=Eo.t("Bridge Limit Error")),{swapper:{displayName:un(G.swapperId,g)??"",image:G.swapperLogo},from:{token:{displayName:G.from.symbol,image:G.from.logo},chain:{displayName:ut(G.from.blockchain,d)??"",image:G.from.blockchainLogo},price:{value:_===0&&!pt?P(o.value,6,6):P(G.fromAmount,6,6),usdValue:P((G.from.usdPrice??0)*parseFloat(G.fromAmount),4,4),realValue:_===0?o.value:G.fromAmount,realUsdValue:new Vs(G.from.usdPrice??0).multipliedBy(G.fromAmount).toString()}},to:{token:{displayName:G.to.symbol,image:G.to.logo},chain:{displayName:ut(G.to.blockchain,d)||"",image:G.to.blockchainLogo},price:{value:P(G.toAmount,6,6),usdValue:P((G.to.usdPrice??0)*parseFloat(G.toAmount),4,4),realValue:G.toAmount,realUsdValue:new Vs(G.to.usdPrice??0).multipliedBy(G.toAmount).toString()}},state:H,alerts:_e||Xe?U.createElement(pd,{dense:m},U.createElement(hv,{variant:"alarm",type:_e?"error":"warning",title:ke,footer:U.createElement(ud,null,V&&U.createElement("div",null,U.createElement(an,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(rn,{direction:"vertical",size:2}),U.createElement(an,{size:"xsmall",variant:"body",color:"neutral900"},Eo.t({id:"Yours: {amount} {symbol}",values:{amount:P(G.fromAmount,6,6),symbol:G?.from.symbol}}))),(ge||ce)&&!V&&U.createElement("div",null,U.createElement(an,{size:"xsmall",variant:"body",color:"neutral900"},Eo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(_)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(_)}}})),U.createElement(rn,{direction:"vertical",size:2}),U.createElement(an,{size:"xsmall",variant:"body",color:"neutral900"},Eo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:dn(G.estimatedTimeInSeconds),fee:P(Qa(G,f),2,2),internalSwaps:G.internalSwaps?M(G.internalSwaps):void 0}}),"getQuoteSteps"),$=M(e?.swaps??[]),q=$.length,Z=h||N(),j=uu(t.quote.tags||[]),B=!!u,X=kr(e?.swaps),ae=dn(X),K=Ur(e?.swaps??[],f),fe=P(K,2,2),Ie=K.gte(new Vs(tu)),je=X/nu>=ou;return m?U.createElement(yv,{selected:l,fee:fe,time:ae,tooltipContainer:uo(),steps:$,tags:j,quoteCost:U.createElement(qs,{quote:e,fullExpandedMode:!0,time:ae,fee:fe,feeWarning:Ie,timeWarning:je,showModalFee:p,steps:q}),percentageChange:v,warningLevel:I,outputPrice:{value:A,usdValue:x,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(hd,{selected:l,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:yd()},!c&&j.length?U.createElement(U.Fragment,null,U.createElement(Ed,null,j.map((se,pt)=>{let G=`${se.value}_${pt}`;return U.createElement(U.Fragment,{key:G},U.createElement(Cv,{label:se.label,value:se.value}),U.createElement(rn,{size:4,direction:"horizontal"}))})),U.createElement(pi,null),!B&&U.createElement(rn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Sd()},U.createElement(qs,{quote:e,time:ae,fee:fe,feeWarning:Ie,timeWarning:je,showModalFee:p,steps:q}),B&&U.createElement(gd,{onClick:se=>{se.stopPropagation(),u()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(an,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Eo.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Cd()},U.createElement(bd,null,U.createElement(Sv,{size:12,color:"gray"})),U.createElement(xd,null,U.createElement(zs,{size:"small",variant:"body"},`${W} ${$[0].from.token.displayName} = `),U.createElement(zd,{content:n.value,container:Z,open:n.value?void 0:!1},U.createElement(zs,{size:"small",variant:"body"},"\xA0",`${A} ${$[$.length-1].to.token.displayName}`))),U.createElement(zd,{content:n.usdValue,container:Z},U.createElement(rn,{size:2,direction:"horizontal"}),U.createElement(an,{color:"$neutral600",size:"xsmall",variant:"body"},`($${x})`))),s==="list-item"&&U.createElement(Tv,{tooltipContainer:Z,type:"output",direction:"vertical",price:{value:A,usdValue:x,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:$[q-1].to.token.displayName,image:$[q-1].to.token.image},chain:{image:$[q-1].to.chain.image},percentageChange:v,warningLevel:I}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(_n,{from:$[0].from,to:$[q-1].to,percentageChange:v,warningLevel:I}),U.createElement(rn,{size:4}))),U.createElement(dd,{selected:l,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},U.createElement(Ud,{type:s,quoteRef:E,selected:l,setExpanded:w,container:Z,expanded:T,steps:$}),U.createElement(vd,{open:T},U.createElement(wd,null),U.createElement("div",{className:fd()},$.map((se,pt)=>{let G=`item-${pt}`;return U.createElement(kv,{type:"quote-details",key:G,tooltipContainer:Z,step:se,hasSeparator:pt!==$.length-1,state:se.state})})))))}i(Ks,"Quote");import{Divider as Iv,Skeleton as Av}from"@rango-dev/ui";import Ot from"react";import{darkTheme as bv,styled as ki}from"@rango-dev/ui";var Qd=ki("div",{$$color:"$colors$neutral100",[`.${bv} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Hd=ki("div",{paddingTop:"$2"}),qd=ki("div",{paddingLeft:"$8"}),Gd=ki("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as tf,Divider as kt,Skeleton as it}from"@rango-dev/ui";import Q from"react";import{css as xv,styled as Ft}from"@rango-dev/ui";var js=Ft("div",{display:"flex"}),Vd=Ft("div",{padding:"$10 $0 $20"}),Kd=Ft("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),jd=Ft("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Xd=Ft("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Yd=Ft("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Zd=Ft("div",{width:"65%",display:"flex",justifyContent:"start"}),Jd=Ft("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Rd=Ft("div",{padding:"$15 $0 $15 $0"}),ef=xv({display:"flex",justifyContent:"space-between",alignItems:"center"});function Fn(t){let{type:e,tagHidden:o=!0}=t,n=Q.createElement(Xd,null,Q.createElement(Zd,null,Q.createElement(tf,{loading:!0,size:"medium"}),Q.createElement(kt,{size:8,direction:"horizontal"}),Q.createElement(Jd,null,Q.createElement(it,{height:10,width:60,variant:"rounded"}),Q.createElement(kt,{size:4}),Q.createElement(it,{height:15,variant:"rounded"}))),Q.createElement(it,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return Q.createElement("div",null,!o&&Q.createElement(Q.Fragment,null,Q.createElement(js,null,Q.createElement(it,{width:65,height:20,variant:"rounded"}),Q.createElement(kt,{size:4,direction:"horizontal"}),Q.createElement(it,{width:65,height:20,variant:"rounded"}),Q.createElement(kt,{size:4,direction:"horizontal"}),Q.createElement(it,{width:65,height:20,variant:"rounded"})),Q.createElement(pi,null),!r&&Q.createElement(kt,{size:4})),Q.createElement("div",{className:ef()},Q.createElement(js,null,Q.createElement(it,{width:60,height:10,variant:"rounded"}),Q.createElement(kt,{size:4,direction:"horizontal"}),Q.createElement(it,{width:60,height:10,variant:"rounded"}),Q.createElement(kt,{size:4,direction:"horizontal"}),Q.createElement(it,{width:60,height:10,variant:"rounded"})),r&&Q.createElement(it,{width:85,height:24,variant:"rounded"})),e==="basic"&&Q.createElement(Vd,null,Q.createElement(it,{height:15,width:148,variant:"rounded"})),e==="list-item"&&Q.createElement(Kd,null,Q.createElement(jd,null,Q.createElement(tf,{loading:!0,size:"medium"}),Q.createElement(kt,{direction:"horizontal",size:4}),Q.createElement(it,{height:15,width:150,variant:"rounded"})),Q.createElement(kt,{size:10}),Q.createElement(it,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&Q.createElement(Q.Fragment,null,Q.createElement(kt,{size:4}),Q.createElement(Rd,null,n,Q.createElement(Yd,null),n),Q.createElement(kt,{size:12})))}i(Fn,"QuoteSummarySkeleton");import{ChainToken as sf,Divider as Ys,NextIcon as Ev,Skeleton as Ti}from"@rango-dev/ui";import Ee from"react";import{styled as On}from"@rango-dev/ui";var of=On("div",{display:"flex",alignItems:"start"}),nf=On("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Xs=On("div",{display:"flex",alignItems:"center",flexGrow:1}),rf=On("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),af=On("div",{display:"flex",alignItems:"center"});function At(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(af,null,Ee.createElement(Ti,{height:22,width:22,variant:"circular"}),Ee.createElement(Ys,{direction:"horizontal",size:8}),Ee.createElement(Ti,{height:15,width:148,variant:"rounded"})),Ee.createElement(of,null,Ee.createElement(Gd,{hideSeparator:!e}),Ee.createElement(nf,{extraSpace:e},Ee.createElement(Xs,null,Ee.createElement(sf,{size:"small",loading:!0}),Ee.createElement(Ys,{direction:"horizontal",size:8}),Ee.createElement(Ti,{height:12,variant:"rounded"})),Ee.createElement(rf,null,Ee.createElement(Ev,{color:"gray",size:16})),Ee.createElement(Xs,null,Ee.createElement(sf,{size:"small",loading:!0}),Ee.createElement(Ys,{direction:"horizontal",size:8}),Ee.createElement(Ti,{height:12,variant:"rounded"})))))}i(At,"StepSkeleton");function Un(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Ot.createElement(Qd,{expanded:o,rounded:e!=="basic"},Ot.createElement(Fn,{type:e,tagHidden:n}),Ot.createElement(Hd,null,Ot.createElement(Av,{height:15,variant:"rounded"})),o&&Ot.createElement(qd,null,Ot.createElement(Iv,{size:24}),Ot.createElement(At,null),Ot.createElement(At,null),Ot.createElement(At,{separator:!1})))}i(Un,"QuoteSkeleton");function Io(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:c,showModalFee:p,selected:u,onClickAllRoutes:m,fullExpandedMode:h=!1,container:d}=t,{inputAmount:f,inputUsdValue:g}=O(),k=e?.outputAmount?new Nv(e?.outputAmount):null,C=e?dt(e):null,T=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?vi.createElement(Os,null,vi.createElement(Un,{tagHidden:l,type:o,expanded:s})):T?vi.createElement(Os,{onClick:()=>c?.(e)},vi.createElement(Ks,{quote:e,error:r,container:d,showModalFee:p,warning:a,tagHidden:l,selected:u,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:h,input:{value:f,usdValue:g?.toString()??""},output:{value:k?.toString()??"",usdValue:C?.toString()??""}})):null}i(Io,"QuoteInfo");import{calculatePendingSwap as Mv}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Pv}from"react";import{useRef as Wv,useState as Bv}from"react";var Lv=2e3;function wi({request:t}){let[e,o]=Bv(!1),n=Wv(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(c=>setTimeout(c,Lv)),await s(l,!1)),"retryFetch"),s=i(async(l,c=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(l,{signal:n.current.signal});return n.current=null,p}catch(p){if(c)return await a(l);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(wi,"useFetch");function lf(){let{fetch:t,loading:e,cancelFetch:o}=wi({request:async(n,r)=>await ot().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(lf,"useFetchConfirmQuote");function bi(t){if(!t.swaps)throw new Error(ee().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Zs(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(bi,"throwErrorIfResponseIsNotValid");function Zs(t){if(hu(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=yu(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Tu(t);if(o){let n=zr(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Zs,"getQuoteError");function cf(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,l={quote:null,balance:null},c=Vo({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});c&&(l.quote=c);let p=bu(e,r,n.blockchains);return p.length===0||(l.balance={messages:p}),l}i(cf,"generateWarnings");function xi(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(xi,"handleQuoteErrors");function Js(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:l}=O(),{slippage:c,customSlippage:p}=y(),u=y().getDisabledLiquiditySources(),m=y().blockchains(),h=y().tokens(),{findToken:d}=y(),f=p||c,{fetch:g,cancelFetch:k,loading:C}=lf();return Pv(()=>k,[]),{loading:C,fetch:i(async T=>{let w=T.selectedWallets,E=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let W=w.reduce((x,b)=>(x[b.chain]=b.address,x),{}),A={requestId:a?.requestId||"",selectedWallets:W,destination:E||void 0};try{return await g(A,!0).then(x=>{let{result:b}=x;if(!b)throw new Error("Error fetching updated route");bi({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 I={slippage:f.toString(),disabledSwappersGroups:u},M=cf({previousQuote:a??void 0,currentQuote:v,meta:{blockchains:m},selectedWallets:w,userSlippage:f,inputUsdValue:n,findToken:d});l();let $=!!M.balance,q=Mv(o.toString(),b,wu(w),I,!$,{blockchains:m,tokens:h});return{quote:v,swap:q,error:null,warnings:M}})}catch(x){return xi(x)}},"fetch"),cancelFetch:k}}i(Js,"useConfirmSwap");var qv=Fv("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${pf}`]:{width:"$48",height:"$48"}}),Gv=tl({flexGrow:1,paddingRight:"$10"}),Vv=tl({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Kv=tl({display:"flex",justifyContent:"space-between",alignItems:"center"});function uf(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=Hv(),[l,c]=zn(""),p=!n,[u,m]=zn(!1),[h,d]=zn(!1),{isActiveTab:f}=ne(),g=y().getDisabledLiquiditySources(),k=Qv(g),{manager:C}=_v(),{fetch:S,loading:T,cancelFetch:w}=Js(),[E,W]=zn({swap:null,error:null,warnings:null}),[A,x]=zn(!1),b=i(async({selectedWallets:B,customDestination:X})=>{let ae=await S?.({selectedWallets:B,customDestination:X});return W(ae),ae},"onConfirmSwap"),v=i(async()=>{if(E.swap&&n)try{await C?.create("swap",{swapDetails:E.swap},{id:E.swap.requestId});let B=`../${F.swaps}/${E.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){c("Error: "+B?.message)}},"addNewSwap"),I=i(async()=>{d(!0),await v(),d(!1)},"onConfirm"),M=i(async()=>{E.warnings?.quote&&lu(E.warnings.quote)&&!a?x(!0):await I()},"onStartConfirmSwap"),$=i(async()=>{W({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(B=>{W(B)}).catch(B=>console.error(B))},"onRefresh");Ei(()=>{!!k.current.length&&!g.length&&$(),k.current=g},[g.length]),Ei(()=>{p&&w()},[p]),Ei(()=>{p&&m(p)},[p]),Ei(()=>{p||S({selectedWallets:o,customDestination:r}).then(B=>W(B)).catch(B=>console.error(B))},[]),zv(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=E.warnings?.quote??null,Z=E.error,j=[];if(l&&j.push(Le.createElement(Dv,{type:"error",variant:"alarm",title:l})),q||Z){let B=`../${F.settings}`;j.push(Le.createElement(Mn,{warning:q,error:Z,couldChangeSettings:!1,refetchQuote:$,showWarningModal:A,confirmationDisabled:!f,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:async()=>{x(!1),await v()},onChangeSettings:()=>s(B)}))}return Le.createElement(oe,{header:{title:Rs.t("Confirm Swap"),onWallet:()=>{let B=`../${F.wallets}`;s(B)}},footer:Le.createElement(qv,null,Le.createElement("div",{className:Gv()},Le.createElement($v,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||h,disabled:!!E.error||!f,onClick:M},Rs.t("Start Swap"))),Le.createElement(pf,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||h,disabled:!f,onClick:m.bind(null,!0)},Le.createElement(Uv,{size:24})))},u&&Le.createElement(Gm,{open:u,onClose:()=>m(!1),onCancel:w,loading:T,onCheckBalance:b}),Le.createElement(re,null,Le.createElement("div",{className:Kv()},Le.createElement(Ov,{variant:"title",size:"small"},Rs.t("You get")),Le.createElement("div",{className:Vv()},Le.createElement(jr,{onClick:!T&&!u&&!A?$:void 0}))),Le.createElement(el,{size:"12"}),Ku(j.map((B,X)=>({element:B,key:`alert-${X}`})),Le.createElement(el,{size:10})),j.length>0?Le.createElement(el,{size:10}):null,Le.createElement(Io,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:E.error,loading:T,warning:E.warnings?.quote??null})))}i(uf,"ConfirmSwapPage");import{i18n as zt}from"@lingui/core";import{Button as dl,CustomTokensZeroStateDarkIcon as fw,CustomTokensZeroStateIcon as gw,DeleteIcon as hw,Divider as Kn,IconButton as yw,MessageBox as Sw,NotFound as Cw,styled as gl}from"@rango-dev/ui";import me,{useState as fl}from"react";import{useNavigate as kw}from"react-router-dom";import{CloseIcon as Xv,IconButton as Yv,SearchIcon as Zv,TextField as Jv}from"@rango-dev/ui";import Qn from"react";import{styled as jv}from"@rango-dev/ui";var mf=jv("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Tt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:c,suffix:p,...u}=t,m=s.length?Qn.createElement(Yv,{variant:"ghost",onClick:()=>c?.(""),size:"small"},Qn.createElement(Xv,{color:"gray",size:10})):null;return p&&(m=p),Qn.createElement(Jv,{prefix:Qn.createElement(mf,null,Qn.createElement(Zv,{color:"black"})),suffix:m,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...u})}i(Tt,"SearchInput");import{i18n as ml}from"@lingui/core";import{Button as ow,CustomTokenWarning as nw,darkTheme as bf,Divider as Ut,ExternalLinkIcon as rw,Image as iw,ListItem as aw,NotFound as sw,PinIcon as lw,Skeleton as Ao,Typography as Gn,VirtualizedList as cw}from"@rango-dev/ui";import L,{useState as pw}from"react";import{useTranslation as uw}from"react-i18next";import{Divider as vf,ListItem as tw,Skeleton as qn}from"@rango-dev/ui";import vt from"react";import{css as sn,darkTheme as ol,ImageContainer as Rv,ListItemButton as ew,styled as Re,Typography as df}from"@rango-dev/ui";var nl=sn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),rl=sn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),il=sn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),al=sn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ol} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),sl=sn({}),ll=sn(),ff=Re("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),cl=Re("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Ii=Re("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${rl}`]:{[`& .${al}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${sl}`]:{bottom:"-15px"},[`& .${nl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${il}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),gf=Re(ew,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),pl=Re("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),ul=Re(df,{}),hf=Re("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${ll}`]:{$$color:"$colors$neutral600",[`.${ol} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Hn=Re("div",{display:"flex",alignItems:"end",flexDirection:"column"}),Uz=Re("div",{display:"flex",alignItems:"center"}),yf=Re("div",{position:"relative",[`& ${Rv}`]:{borderRadius:"$xm",overflow:"hidden"}}),Sf=Re("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Cf=Re(df,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),kf=Re("a",{"& svg:hover":{color:"$colors$info"}}),Tf=Re("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":{[`.${ol} &`]:{color:"$foreground"}}}});function wf(t){return vt.createElement(Ii,null,Array.from(Array(t.size),e=>vt.createElement(tw,{key:e,hasDivider:!0,start:vt.createElement(qn,{variant:"circular",width:35,height:35}),end:vt.createElement(Hn,null,vt.createElement(qn,{variant:"text",size:"large",width:70}),vt.createElement(vf,{size:4}),vt.createElement(qn,{variant:"text",size:"medium",width:50})),title:vt.createElement("div",null,vt.createElement(qn,{variant:"text",size:"large",width:90}),vt.createElement(vf,{size:4}),vt.createElement(qn,{variant:"text",size:"medium",width:90}))})))}i(wf,"LoadingTokenList");var mw=20,dw=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return L.createElement("div",{className:rl()},o?L.createElement("div",{className:nl()},o):L.createElement(cl,{className:il()},L.createElement(Gn,{variant:"title",size:"xmedium"},r.symbol),L.createElement(Ut,{direction:"horizontal",size:4}),L.createElement(pl,{css:a},L.createElement(ul,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&L.createElement("div",{className:`${al()} ${!o&&sl()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",L.createElement(Ut,{size:4,direction:"horizontal"}),L.createElement(kf,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:c=>c.stopPropagation()},L.createElement(rw,{size:12}))))},"renderDesc");function Vn(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:l,showWarning:c=!0}=t,p=y().fetchStatus,u=y().blockchains(),{getBalanceFor:m,fetchingWallets:h}=y(),{isTokenPinned:d}=y(),{setFromToken:f,setToToken:g}=O(),{t:k}=uw(),C=Oe(),[S,T]=pw(null),w=i(()=>{l==="source"?f({token:S,meta:{blockchains:u}}):g({token:S,meta:{blockchains:u}})},"updateToken"),E=i(()=>{w(),C()},"handleImportToken"),W=i(b=>{if(b.customToken){let{customToken:I,...M}=b;return L.createElement(ow,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),T({...M,warning:!0})},"handleClick")},L.createElement(Gn,{variant:"body",size:"xsmall",color:"background"},k("import")))}let v=br(m(b));return s?s(b):h?L.createElement(Hn,null,L.createElement(Ao,{variant:"text",size:"large",width:70}),L.createElement(Ut,{size:4}),L.createElement(Ao,{variant:"text",size:"medium",width:50})):v&&L.createElement(hf,null,L.createElement(Cf,{variant:"title",size:"small"},v.amount),L.createElement("div",null),v.usdValue&&L.createElement(Gn,{variant:"body",className:ll(),size:"xsmall"},`$${v.usdValue}`))},"endRenderer"),A=i(()=>L.createElement(cw,{itemContent:b=>{let v=e[b];if(v==="skeleton")return L.createElement(aw,{hasDivider:!0,start:L.createElement(Ao,{variant:"circular",width:35,height:35}),end:L.createElement(Hn,null,L.createElement(Ao,{variant:"text",size:"large",width:70}),L.createElement(Ut,{size:4}),L.createElement(Ao,{variant:"text",size:"medium",width:50})),title:L.createElement("div",null,L.createElement(Ao,{variant:"text",size:"large",width:90}),L.createElement(Ut,{size:4}),L.createElement(Ao,{variant:"text",size:"medium",width:90}))});let I=v.address||"",M=u.find(B=>B.name===v.blockchain);if(!M)return null;let $=ns(M.color,"main"),q={$$color:$.main150,[`.${bf} &`]:{$$color:$.main750},backgroundColor:"$$color"},Z={$$color:$.main750,[`.${bf} &`]:{$$color:$.main150},color:"$$color"},j=i(()=>{typeof v!="string"&&!v.customToken&&n?.(v)},"handleClick");return L.createElement(Tf,null,L.createElement(gf,{"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:L.createElement(yf,null,L.createElement(iw,{src:v.image===""?gr:v.image,size:30}),t.type!=="custom-token"&&d(v,t.type)&&L.createElement(Sf,null,L.createElement(lw,{size:12,color:"gray"}))),title:M?.type==="COSMOS"||v.name||!v.name&&!I?L.createElement(cl,null,L.createElement(Gn,{variant:"title",size:"xmedium"},v.symbol),L.createElement(Ut,{direction:"horizontal",size:4}),L.createElement(pl,{css:q},L.createElement(ul,{variant:"body",size:"xsmall",css:Z},v.blockchain)),c&&v.warning&&L.createElement(L.Fragment,null,L.createElement(Ut,{direction:"horizontal",size:4}),L.createElement(nw,{container:N()}))):void 0,description:typeof v!="string"&&M?.info&&I&&M.type!=="COSMOS"?dw({address:I,token:v,customCssForTag:q,customCssForTagTitle:Z,name:v.name,url:M.info.addressUrl.split("{wallet}").join(I)}):v.name||void 0,end:W(v)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),x=S?co(S?.blockchain,u):null;return L.createElement(L.Fragment,null,a&&L.createElement(L.Fragment,null,L.createElement(Gn,{variant:"label",size:"large"},ml.t("Select Token")),L.createElement(Ut,{size:4})),L.createElement(ff,null,L.createElement(Ut,{size:4}),p==="loading"&&L.createElement(wf,{size:mw}),p==="success"&&(e.length?L.createElement(L.Fragment,null,L.createElement(In,{token:S,address:S?.address??"",blockchain:x??void 0,onImport:E,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),L.createElement(Ii,{as:"ul"},A())):!!o&&L.createElement(sw,{title:ml.t("No results found"),description:ml.t("Try using different keywords")}))))}i(Vn,"TokenList");var Tw=gl("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),vw=gl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),ww=gl(yw,{"&:hover":{"& svg":{color:"$secondary550"}}});function xf(){let[t,e]=fl(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=O(),{mode:c}=Yo({}),p=kw(),[u,m]=fl(!1),[h,d]=fl(),f=i(S=>{let T=S.target.value;e(T)},"handleSearch"),g=c==="dark",k=n.filter(S=>tt(S.symbol,t)||tt(S.address||"",t)||tt(S.name||"",t)),C=i(()=>{if(h){let S=a?mt(a):null,T=r?mt(r):null,w=mt(h);S===w?l({token:null}):T===w&&s({token:null}),o(h)}m(!1)},"handleDeleteCustomToken");return me.createElement(oe,{header:{title:zt.t("Custom Tokens")}},me.createElement(re,null,me.createElement(Tw,null,n.length?me.createElement(me.Fragment,null,me.createElement(Tt,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:zt.t("Search Token"),onChange:f}),me.createElement(Kn,{size:16}),me.createElement(Vn,{list:k,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>me.createElement(ww,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),d(S)}},me.createElement(hw,{size:12,color:"gray"}))})):me.createElement(vw,null,me.createElement(Cw,{icon:g?me.createElement(fw,{size:200}):me.createElement(gw,{size:200}),title:zt.t("No custom tokens"),description:zt.t("press the button to add your custom token")})),me.createElement(Kn,{size:20}),me.createElement(dl,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},zt.t("Add Custom Token"))),me.createElement(R,{open:u,dismissible:!0,onClose:()=>m(!1),container:N()},me.createElement(Sw,{title:zt.t("Delete Custom Token"),type:"error",description:zt.t("Are you sure you want to Delete this Token?")},me.createElement(Kn,{size:40}),me.createElement(Kn,{size:10}),me.createElement(dl,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},zt.t("Yes, Delete it")),me.createElement(Kn,{size:12}),me.createElement(dl,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},zt.t("No, Continue"))))))}i(xf,"CustomTokensPage");import{i18n as Ge}from"@lingui/core";import{useManager as Qw}from"@rango-dev/queue-manager-react";import{Button as vl,darkTheme as Hw,Divider as Wo,MessageBox as qw,NotFound as Gw,styled as wl,Typography as Wi}from"@rango-dev/ui";import{TransactionStatus as Yn}from"rango-types";import ie,{useMemo as qf,useState as Bi}from"react";import{useNavigate as Vw}from"react-router-dom";import{FilterIcon as Ww,Popover as Bw}from"@rango-dev/ui";import No from"react";import{css as bw,darkTheme as Ai,IconButton as xw,styled as jn}from"@rango-dev/ui";var hl=jn("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Ai} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Ef=jn(xw,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Ai} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Ai} &`]:{backgroundColor:"$neutral"},[`& ${hl}::before`]:{backgroundColor:"$secondary100",[`.${Ai} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),If=jn("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Af=jn("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),Nf=bw({display:"flex",justifyContent:"space-between",alignItems:"center"}),Wf=jn("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Bf}from"@lingui/core";import{Button as Ew,Divider as Lf,ListItemButton as Iw,Radio as Aw,RadioRoot as Nw,Typography as Mf}from"@rango-dev/ui";import at from"react";function Pf(t){let{filterBy:e,onClickItem:o}=t;return at.createElement(Af,null,at.createElement("div",{className:Nf()},at.createElement(Mf,{size:"small",variant:"body"},Bf.t("Status")),at.createElement(Ew,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Bf.t("Reset"))),at.createElement(Lf,{size:10}),at.createElement(Nw,{value:e},at.createElement(Wf,null,t.list.map((n,r)=>at.createElement(Iw,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:at.createElement(at.Fragment,null,at.createElement(Lf,{direction:"horizontal",size:4}),at.createElement(Mf,{size:"medium",variant:"body"},n.title)),start:at.createElement(Aw,{value:n.id}),onClick:o})))))}i(Pf,"FilterSelectorContent");function yl(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return No.createElement("div",null,No.createElement(Bw,{open:a,align:"end",onOpenChange:o,container:N(),content:No.createElement(Pf,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},No.createElement(Ef,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},No.createElement(hl,{isSelect:!!n},No.createElement(Ww,{size:16,color:"black"}),!!n&&No.createElement(If,null)))))}i(yl,"FilterSelector");import{i18n as Pw}from"@lingui/core";import{Divider as Of,GroupedVirtualizedList as _w,Skeleton as Dw,SwapListItem as Uf,Typography as $w}from"@rango-dev/ui";import qe,{useCallback as zf,useEffect as Fw,useRef as Ow,useState as Uw}from"react";function _f(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(_f,"calculateGroupsSoFar");import{css as Lw,darkTheme as Mw,styled as Xn}from"@rango-dev/ui";var Sl=Lw(),Df=Xn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Cl=Xn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Sl}`]:{$$color:"$colors$neutral600",[`.${Mw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),kl=Xn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),$f=Xn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Ff=Xn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var zw=10;function Tl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Uw([]),l=Ow(0),{swaps:c,groupCounts:p,groups:u}=n(e),m=zf(_f,[]),h=zf(()=>{let d=e.length-l.current;d&&(l.current+=Math.min(d,zw),s(m(p,l.current)))},[e.length]);if(Fw(()=>{r||h()},[r,h]),r){let d=[1,2];return qe.createElement(qe.Fragment,null,[d,d].map((g,k)=>qe.createElement(Cl,{key:k},qe.createElement(kl,null,qe.createElement(Dw,{variant:"text",width:60,size:"small"}),qe.createElement(Of,{size:16})),qe.createElement(Of,{size:4}),qe.createElement($f,null,g.map((S,T)=>qe.createElement(Uf,{isLoading:!0,key:T}))))))}return qe.createElement(_w,{endReached:()=>{l.current<e.length&&h()},groupCounts:a,groupContent:d=>qe.createElement(Cl,null,qe.createElement(kl,null,qe.createElement($w,{variant:"label",size:"medium",className:Sl()},u[d]))),itemContent:(d,f)=>{let g=c[d];if(!g)return null;let k=g.steps[0],C=g.steps[g.steps.length-1];return qe.createElement(Df,{key:g.requestId},qe.createElement(Uf,{requestId:g.requestId,creationTime:g.creationTime,status:g.status,onClick:o,tooltipContainer:N(),onlyShowTime:u[f]===Pw.t("Today"),swapTokenData:{from:{token:{image:k.fromLogo,displayName:k.fromSymbol},blockchain:{image:k.fromBlockchainLogo||""},amount:P(g.inputAmount,6,6),realAmount:g.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:P(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(Tl,"HistoryGroupedList");import{i18n as Ni}from"@lingui/core";import Qf from"dayjs";var Hf=i(t=>{let e=new Map([["today",{title:Ni.t("Today"),swaps:[]}],["week",{title:Ni.t("This week"),swaps:[]}],["month",{title:Ni.t("This month"),swaps:[]}],["year",{title:Ni.t("This year"),swaps:[]}]]);function o(c,p){e.has(c)||e.set(c,{title:c,swaps:[]}),e.get(c)?.swaps.push(p)}i(o,"addYearsToOutput");let n=Qf();t.forEach(c=>{let p=Number(c.creationTime),u=Qf(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(c);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(c);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(c);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(c);else{let m=new Date(p).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 Kw=wl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),jw=wl("div",{display:"flex",justifyContent:"center",alignItems:"center"}),Xw=wl("div",{"._typography":{color:"$neutral700",[`.${Hw}&`]:{color:"$neutral900"}}}),Yw=[{id:Yn.SUCCESS,title:Ge.t("Complete")},{id:Yn.RUNNING,title:Ge.t("Running")},{id:Yn.FAILED,title:Ge.t("Failed")}],Zw=i((t,e)=>t?.length?t.filter(o=>bt(o.fromBlockchain,e)||bt(o.toBlockchain,e)||bt(o.toSymbol,e)||bt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Gf(){let t=Vw(),{manager:e,state:o}=Qw(),n=ft(e).map(({swap:T})=>T),[r,a]=Bi(""),[s,l]=Bi(!1),c=!o.loadedFromPersistor,[p,u]=Bi(""),[m,h]=Bi(!1),d=i(T=>{let w=T.target.value;a(w)},"handleSearch"),f=qf(()=>!r&&!p?n:n.filter(T=>{let{inputAmount:w,status:E,steps:W,requestId:A}=T;return(!r||bt(w,r)||bt(E,r)||Zw(W,r)||bt(A,r))&&(!p||p===E)}),[n,r,p]),g=!f?.length&&!c,k=i(()=>h(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(T){console.log(T)}},"onClear"),S=qf(()=>!n.some(T=>T.status===Yn.SUCCESS||T.status===Yn.FAILED),[n]);return ie.createElement(oe,{header:{title:Ge.t("History"),suffix:ie.createElement(jt,null,ie.createElement(vl,{id:"widget-history-clear-btn",disabled:S,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},ie.createElement(Wi,{size:"medium",variant:"label",color:"error"},Ge.t("Clear"))))}},ie.createElement(re,null,ie.createElement(jw,null,ie.createElement(Tt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Ge.t("Search Transaction"),autoFocus:!0,onChange:d,style:{height:36},value:r}),ie.createElement(Wo,{size:10,direction:"horizontal"}),ie.createElement(yl,{filterBy:p,open:s,onOpenChange:T=>l(T),onClickItem:T=>u(T),list:Yw})),ie.createElement(Wo,{size:"16"}),ie.createElement(Kw,null,g&&ie.createElement(Ff,null,ie.createElement(Wo,{size:32}),ie.createElement(Gw,{title:r?Ge.t("No results found"):Ge.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Ge.t("Try using different keywords"):Ge.t("Your transaction history is stored locally and will appear here after you start a swap")})),!g&&ie.createElement(Tl,{list:f,onSwapClick:t,groupBy:Hf,isLoading:c}))),ie.createElement(R,{open:m,onClose:k,container:N()},ie.createElement(Wo,{size:20}),ie.createElement(qw,{type:"warning",title:Ge.t("Clear Transaction History"),description:ie.createElement(Xw,null,ie.createElement(Wi,{variant:"body",size:"medium"},Ge.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ie.createElement(Wo,{size:"24"}),ie.createElement(Wi,{variant:"body",size:"small"},Ge.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ie.createElement(Wo,{size:30}),ie.createElement(vl,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Ge.t("Yes, Clear the history")),ie.createElement(Wo,{size:10}),ie.createElement(vl,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:k},ie.createElement(Wi,{variant:"title",size:"medium",color:"primary"},Ge.t("No, Cancel")))))}i(Gf,"HistoryPage");import{i18n as Tb}from"@lingui/core";import{Button as vb,Divider as mg,styled as wb,WarningIcon as bb}from"@rango-dev/ui";import xb from"bignumber.js";import Ve,{useEffect as dg,useState as fg}from"react";import{useNavigate as Eb}from"react-router-dom";import{i18n as Kf}from"@lingui/core";import{Alert as Rw,Divider as bl,NoRouteIcon as eb,Typography as tb}from"@rango-dev/ui";import Bo from"react";import{styled as Jw}from"@rango-dev/ui";var Vf=Jw("div",{display:"flex",flexDirection:"column",alignItems:"center"});function xl(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Bt(t,e)?Bo.createElement(Vf,null,Bo.createElement(bl,{size:10}),Bo.createElement(eb,{size:24,color:"gray"}),Bo.createElement(bl,{size:4}),Bo.createElement(tb,{variant:"title",size:"small"},Kf.t("No Routes Found")),Bo.createElement(bl,{size:4}),Bo.createElement(Rw,{title:Kf.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(xl,"SameTokensWarning");import{i18n as sb}from"@lingui/core";import{Header as lb}from"@rango-dev/ui";import oo,{useEffect as cb,useState as pb}from"react";import{i18n as nb}from"@lingui/core";import{Divider as Il,FullExpandedQuote as rb,Typography as ib}from"@rango-dev/ui";import Se from"react";import{styled as El}from"@rango-dev/ui";var jf=El("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Xf=El("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Yf=El("div",{width:"146px"});import{i18n as Zn}from"@lingui/core";import{Select as ob}from"@rango-dev/ui";import Zf from"react";function Li(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:Zn.t("Smart Routing")},{value:"FEE",label:Zn.t("Lowest Fee")},{value:"SPEED",label:Zn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Zn.t("Maximum Return")},{value:"PRICE",label:Zn.t("Maximum Output")}];return Zf.createElement(Yf,null,Zf.createElement(ob,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Li,"SelectStrategy");var Jf=3;function Jn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:c,quotes:p,updateQuotePartialState:u,fromToken:m,toToken:h,sortStrategy:d,error:f}=O(),{slippage:g,customSlippage:k}=y(),{findToken:C}=y(),S=l||N(),T=!!p&&p.results.length,w=k??g,E=i(x=>{if(!m||!h||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...x};return Vo({currentQuote:b,userSlippage:w,findToken:C})},"getQuoteWarning"),W=f?.type===0||f?.type===1,A=p?.results?Or(d,p?.results):[];return Se.createElement(Se.Fragment,null,a&&Se.createElement(Se.Fragment,null,Se.createElement(Xf,null,Se.createElement(ib,{size:"xmedium",variant:"title"},nb.t("Sort by")),Se.createElement(Li,{container:S})),Se.createElement(Il,{size:"10"})),e&&Array.from({length:Jf},(x,b)=>Se.createElement(Se.Fragment,{key:b},s?Se.createElement(rb,{loading:!0}):Se.createElement(Un,{tagHidden:!1,type:"list-item",expanded:!1}),b!==Jf-1&&Se.createElement(Il,{size:16}))),!e&&Se.createElement(Se.Fragment,null,T?A.map((x,b)=>{let v=E(x),I=Zs(x.swaps),M=A.length-1===b;return Se.createElement(Se.Fragment,{key:x.requestId},Se.createElement(Io,{showModalFee:r,container:S,selected:c?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:I?.options||null,warning:v,fullExpandedMode:s,onClick:$=>{I||u("warning",v),u("error",I?.options||null),o($)},type:"list-item"}),!M&&Se.createElement(Il,{size:16}))}):W&&Se.createElement(jf,null,Se.createElement(Bn,{size:s?"large":"small",error:f,fetch:n}))))}i(Jn,"Quotes");import{darkTheme as ab,styled as Rf}from"@rango-dev/ui";var eg=Rf("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${ab} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),tg=Rf("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var ub=100;function Al(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=pb(!1),c=s?"":"is-hidden",{config:p}=y(),u=p?.variant==="full-expanded",m=uo();return cb(()=>{let h=null;return a?h=setTimeout(()=>{l(!0)},ub):(l(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),oo.createElement(eg,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${c} ${Jr()}`,id:$e.EXPANDED_BOX_ID},oo.createElement(lb,{title:sb.t("Routes"),suffix:oo.createElement(oo.Fragment,null,oo.createElement(Li,{container:m}),oo.createElement(wo,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),oo.createElement(tg,null,oo.createElement(Jn,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:uo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Al,"ExpandedQuotes");import{i18n as lg}from"@lingui/core";import{SwapInput as cg}from"@rango-dev/ui";import gb from"bignumber.js";import Rn from"react";import{ReverseIcon as fb}from"@rango-dev/ui";import Wl from"react";import{keyframes as mb,styled as og}from"@rango-dev/ui";var Nl=450,db=mb({"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)"}}),ng=og("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),rg=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:`${db} ${Nl}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 Bl(){let t=O.use.switchFromAndTo();return Wl.createElement(ng,null,Wl.createElement(rg,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Nl),t()}},Wl.createElement(fb,{size:12})))}i(Bl,"SwitchFromAndToButton");import{styled as ig}from"@rango-dev/ui";var ag=ig("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),sg=ig("div",{position:"relative"});function Ll(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:c,setInputAmount:p,inputAmount:u,inputUsdValue:m,outputAmount:h,outputUsdValue:d,selectedQuote:f}=O(),{connectedWallets:g,getBalanceFor:k}=y(),C=a?k(a):null,S=br(C)?.amount??"0",T=C?new gb(C.amount).shiftedBy(-C.decimals):le,w=!!s&&ep(g,s.name),E=!za(f,u,m),W=!za(f,u,d),A=!m||!d||!d.gt(0)?null:Pt(m.toString(),d.toString());return Rn.createElement(ag,null,Rn.createElement(sg,null,Rn.createElement(cg,{label:lg.t("From"),mode:"From",onInputChange:p,balance:S,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:u,usdValue:E?void 0:P(m,4,4),realUsdValue:E?void 0:m?.toString(),error:E?ee().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:w,tooltipContainer:N(),onSelectMaxBalance:()=>{let x=P(T,C?.decimals),b=C?.amount?x.split(",").join(""):"";p(b)},anyWalletConnected:g.length>0}),Rn.createElement(Bl,null)),Rn.createElement(cg,{sharpBottomStyle:!r&&(!!f||e),label:lg.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:c?.displayName||"",image:c?.logo},token:{displayName:l?.symbol||"",image:l?.image,securityWarning:!!l?.warning},percentageChange:P(Pt(m,d),2,2),warningLevel:_t(A??0),price:{value:P(h,6,6),usdValue:W?void 0:P(d,4,4),realValue:h?.toString(),realUsdValue:W?void 0:d?.toString(),error:W?ee().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Ll,"Inputs");import{useCallback as hb,useEffect as yb,useRef as Sb,useState as Cb}from"react";function pg(){let{fetch:t,loading:e,cancelFetch:o}=wi({request:async(n,r)=>await ot().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(pg,"useFetchAllQuotes");var kb=600;function Mi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=pg(),{excludeLiquiditySources:n,routing:r}=y().config,{connectedWallets:a}=y(),l=a.some(Ie=>Ie.isContractWallet),{fromToken:c,toToken:p,inputAmount:u,inputUsdValue:m,selectedQuote:h,sortStrategy:d,resetQuote:f,error:g,warning:k,setSelectedQuote:C,updateQuotePartialState:S}=O(),{slippage:T,customSlippage:w,affiliatePercent:E,affiliateRef:W,affiliateWallets:A,fetchStatus:x}=y(),b=y().getLiquiditySources(),v=y().getDisabledLiquiditySources(),I=y().excludeLiquiditySources(),{findToken:M}=y(),[$,q]=Cb(!0),Z=Sb(u),j=w??T,X=!c||!p||Bt(c,p)||!fn(u),ae=i(Ie=>{q(Ie)},"resetState"),K=i(Ie=>{let{fromToken:je,toToken:se,inputAmount:pt,liquiditySources:G,excludeLiquiditySources:_,disabledLiquiditySources:H,slippage:V,affiliateRef:ge,affiliatePercent:ce,affiliateWallets:_e}=Ie;if($||ae(!0),!X&&je&&se){f();let Xe=vu({fromToken:je,toToken:se,inputAmount:pt,liquiditySources:G,excludeLiquiditySources:_,disabledLiquiditySources:H,wallets:a,slippage:V,affiliateRef:ge,affiliatePercent:ce,affiliateWallets:_e,contractCall:l});Fo("experimental",r)&&(Xe.experimental=!0),Fo("avoidNativeFee",r)&&(Xe.avoidNativeFee=!0),Fo("enableCentralizedSwappers",r)&&(Xe.enableCentralizedSwappers=!0),r?.maxLength&&(Xe.maxLength=r.maxLength),e(Xe).then(ke=>{let De=Or(d,ke.results),Vt=pu(h,De,ke.requestAmount);q(!1),S("quotes",ke),C(Vt),bi({diagnosisMessages:ke.diagnosisMessages,requestId:Vt?.requestId||"",swaps:Vt?.swaps});let lo=Vt&&Vo({currentQuote:Vt,userSlippage:j,findToken:M});S("warning",lo)}).catch(ke=>{let{error:De}=xi(ke);(De?.type===0||De?.type===1)&&f(),De?.type!==2&&(S("error",De),q(!1))})}},"fetch"),fe=hb(Sr(Ie=>{K(Ie)},kb),[X]);return yb(()=>{if(!t){q(!1);return}if(x!=="success")return;if(X){q(!1),(h||g||k)&&f();return}if(!fn(u)||m?.eq(0)){ae(!1),o();return}f(),ae(!0);let Ie=K;return Z.current&&Z.current!=u&&(Ie=fe),Z.current=u,Ie({inputAmount:u,fromToken:c,toToken:p,liquiditySources:b,excludeLiquiditySources:I,disabledLiquiditySources:v,slippage:j,affiliateRef:W,affiliatePercent:E,affiliateWallets:A,contractCall:l}),o},[x,u,c?.symbol,c?.address,c?.blockchain,p?.symbol,p?.address,p?.blockchain,X,b?.length,n,v.length,j,W,E,l,JSON.stringify(A)]),{fetch:()=>K({inputAmount:u,fromToken:c,toToken:p,liquiditySources:b,excludeLiquiditySources:I,disabledLiquiditySources:v,slippage:j,affiliateRef:W,affiliatePercent:E,affiliateWallets:A,contractCall:l}),loading:$}}i(Mi,"useSwapInput");function ug(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};he.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(ug,"emitPreventableEvent");var Ib=wb("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Ab=300;function gg(){let t=Eb(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:c,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:m,updateQuotePartialState:h}=O(),[d,f]=fg(!1),{isLargeScreen:g,isExtraLargeScreen:k}=gi(),{fetch:C,loading:S}=Mi({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:E}=y(),{isActiveTab:W}=ne(),[A,x]=fg(!1),v=Su({fetchMetaStatus:w,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:E.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),I=sp(g,k,T?.variant),M=!!n&&!!e&&!!o&&new xb(n).gt(0)&&!Nu(e,o),$=M&&w==="success"&&S,j=(!I||I&&c?.results.length)&&(l||s);dg(()=>{u(),h("refetchQuote",!0)},[]),dg(()=>{f(M)},[M]);let B=(r||s)&&!A?C:void 0,X=i(K=>{I&&d?(f(!1),setTimeout(()=>{t(K)},Ab)):t(K)},"onHandleNavigation"),ae=i(K=>{r?.requestId!==K.requestId&&(x(!1),p(K))},"onClickOnQuote");return Ve.createElement(Ib,null,Ve.createElement(oe,{height:"auto",footer:Ve.createElement(vb,{id:`widget-swap-${v.action}-btn`,type:"primary",size:"large",disabled:v.disabled||!W,prefix:v.action==="confirm-warning"&&Ve.createElement(bb,null),fullWidth:!0,onClick:()=>{v.action==="connect-wallet"?ug({type:"clickConnectWallet"},()=>X(F.wallets)):v.action==="confirm-warning"?x(!0):X(F.confirmSwap)}},v.title),header:{onWallet:()=>{X(F.wallets)},hasBackButton:!1,title:T.title||Tb.t("Swap"),suffix:Ve.createElement(wo,{hidden:I?["refresh"]:void 0,onClickRefresh:B,onClickHistory:()=>X(F.swaps),onClickSettings:()=>{X(F.settings)}})}},Ve.createElement(re,null,Ve.createElement(Ll,{fetchingQuote:$,fetchMetaStatus:w,isExpandable:I,onClickToken:K=>{X(K==="from"?F.fromSwap:F.toSwap)}}),Ve.createElement(mg,{size:"2"}),I?null:Ve.createElement(Io,{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?Ve.createElement(Ve.Fragment,null,Ve.createElement(mg,{size:"10"}),Ve.createElement(Mn,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:C,showWarningModal:A,confirmationDisabled:!W,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:()=>{x(!1),m(!0),X(F.confirmSwap)},onChangeSettings:()=>X(F.settings)})):null,Ve.createElement(xl,null))),I?Ve.createElement(Al,{loading:$,onClickOnQuote:ae,fetch:C,onClickRefresh:B,isVisible:d}):null)}i(gg,"Home");import{i18n as hg}from"@lingui/core";import{Alert as Nb,Divider as Wb,List as Bb,ListItemButton as Lb,Radio as Mb,RadioRoot as Pb,Typography as _b}from"@rango-dev/ui";import Nt from"react";function no(){let{setLanguage:t,language:e,config:o}=y(),n=mp,r=o?.language||Oo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Oo),resetLanguage:()=>t(null)}}i(no,"useLanguage");function yg(){let{activeLanguage:t,changeLanguage:e,languages:o}=no(),n=Oe(),r=o.map(a=>{let{local:s,label:l,SVGFlag:c}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Nt.createElement(_b,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Nt.createElement(Mb,{value:s}),start:Nt.createElement(c,null)}});return Nt.createElement(oe,{header:{title:hg.t("Language")}},Nt.createElement(re,null,Nt.createElement(Nb,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Nt.createElement(Wb,{size:"8"}),Nt.createElement(Pb,{value:t},Nt.createElement(Bb,{type:Nt.createElement(Lb,{title:hg.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(yg,"LanguagePage");import{i18n as Qt}from"@lingui/core";import{Button as Ub,Checkbox as zb,Image as Qb,ListItemButton as Hb,NotFound as qb,Typography as Gb}from"@rango-dev/ui";import Ke,{useState as Vb}from"react";import{Checkbox as Fb,Skeleton as Cg}from"@rango-dev/ui";import tr from"react";import{styled as Ml}from"@rango-dev/ui";var er=Ml("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Pl=Ml("div",{width:80,display:"flex",justifyContent:"flex-end"}),_l=Ml("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as Db,styled as $b}from"@rango-dev/ui";var Sg=$b(Db,{height:61});var Ob=30;function Dl(){return tr.createElement(er,null,Array.from(Array(Ob),(t,e)=>tr.createElement(Sg,{hasDivider:!0,key:e,start:tr.createElement(Cg,{variant:"circular",width:35,height:35}),title:tr.createElement(Cg,{variant:"text",size:"large",width:90}),end:tr.createElement(Fb,{checked:!1})})))}i(Dl,"LoadingLiquiditySourceList");function $l({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=Vb(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),c=Ir(o,n),p={Exchanges:Qt.t("Exchanges"),Bridges:Qt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=c.filter(C=>u.includes(C.type)),h=m.length===m.filter(C=>C.selected).length,d=i(()=>{m.forEach(C=>{h?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),f=m.map(C=>{let{selected:S,groupTitle:T,logo:w,id:E,...W}=C;return{id:`widget-setting-liquidity-source-${E.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:Ke.createElement(Qb,{src:w,size:22,type:"circular"}),onClick:()=>{l||s(T)},end:Ke.createElement(zb,{checked:S,disabled:l}),title:Ke.createElement(Gb,{variant:"title",size:"xmedium"},Qt.t(T)),selected:S,groupTitle:T,logo:w,...W}}),g=i(C=>{let S=C.target.value;a(S)},"handleSearch"),k=f;return r&&(k=f.filter(C=>bt(C.groupTitle,r))),Ke.createElement(oe,{header:{title:Qt.t(t),suffix:Ke.createElement(Pl,null,Ke.createElement(Ub,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:d},h?Qt.t("Deselect all"):Qt.t("Select all")))}},Ke.createElement(re,{view:!0},Ke.createElement(Tt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Qt.t("Search {sourceType}",{sourceType:p[t]}),onChange:g}),e==="loading"&&Ke.createElement(Dl,null),!k.length&&r?Ke.createElement(_l,null,Ke.createElement(qb,{title:Qt.t("No results found"),description:Qt.t("Try using different keywords")})):e==="success"&&Ke.createElement(er,{disabled:l},k.map(C=>{let{groupTitle:S,...T}=C;return Ke.createElement(Ke.Fragment,{key:C.id},Ke.createElement(Hb,{style:{height:"61px"},...T,selected:!1,hasDivider:!0}))}))))}i($l,"LiquiditySourcePage");import{i18n as Kb}from"@lingui/core";import Pi from"react";import{useNavigate as jb}from"react-router-dom";function kg(){let t=jb(),e=Oe(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:l,loading:c}=Mi({refetchQuote:n}),p=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,m=`../${F.wallets}`;return Pi.createElement(oe,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Kb.t("Routes"),suffix:Pi.createElement(wo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Pi.createElement(re,null,Pi.createElement(Jn,{fetch:l,loading:c,onClickOnQuote:p})))}i(kg,"RoutesPage");import{i18n as Ig}from"@lingui/core";import{Divider as Ag,getCategoriesCount as rx,SelectableCategoryList as ix}from"@rango-dev/ui";import Ht,{useState as Ng}from"react";import{useNavigate as ax}from"react-router-dom";import{i18n as Fl}from"@lingui/core";import{Divider as Jb,Image as Rb,ListItemButton as ex,NotFound as tx,Typography as Eg}from"@rango-dev/ui";import st,{useEffect as ox,useState as nx}from"react";var Tg=i((t,e,o)=>t.filter(n=>Cr(n.type,o)).filter(n=>tt(n.name,e)||tt(n.displayName,e)),"filterBlockchains");import{ImageContainer as Xb,styled as vg}from"@rango-dev/ui";var wg=vg("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),_i=vg(An,{padding:0,margin:0,listStyle:"none",[`& ${Xb}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Yb,Skeleton as bg}from"@rango-dev/ui";import Di from"react";var Zb=20;function xg(){return Di.createElement(_i,null,Array.from(Array(Zb),t=>Di.createElement(Yb,{key:t,hasDivider:!0,start:Di.createElement(bg,{variant:"circular",width:35,height:35}),title:Di.createElement(bg,{variant:"text",size:"large",width:90})})))}i(xg,"LoadingBlockchainList");function Ol(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=nx(e),{fetchStatus:c}=y();ox(()=>{l([...Tg(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?st.createElement(tx,{title:Fl.t("No results found"),description:Fl.t("Try using different keywords")}):st.createElement(_i,{as:"ul",key:`${r}-${o}`},s.map(u=>st.createElement(ex,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:st.createElement(Rb,{src:u.logo,size:30}),title:st.createElement(Eg,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return st.createElement(st.Fragment,null,a&&st.createElement(st.Fragment,null,st.createElement(Eg,{variant:"label",size:"large"},Fl.t("Select Chain")),st.createElement(Jb,{size:4})),st.createElement(wg,null,c==="loading"&&st.createElement(xg,null),c==="success"&&p()))}i(Ol,"BlockchainList");function $i(t){let{type:e}=t,o=Oe(),[n,r]=Ng(""),[a,s]=Ng("ALL"),l=O.use.setToBlockchain(),c=O.use.setFromBlockchain(),{fetchStatus:p}=y(),u=ax(),m=y().blockchains({type:e}),h=rx(m),d=!t.hideCategory&&h!==1;return Ht.createElement(oe,{header:{title:Ig.t("Select Chain")}},Ht.createElement(re,{view:!0},d&&Ht.createElement(Ht.Fragment,null,Ht.createElement(ix,{setCategory:s,category:a,blockchains:m,isLoading:p==="loading"}),Ht.createElement(Ag,{size:24})),Ht.createElement(Tt,{value:n,autoFocus:!0,placeholder:Ig.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),Ht.createElement(Ag,{size:16}),Ht.createElement(Ol,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:f=>{e==="custom-token"?u(`..?blockchain=${f.name}`,{replace:!0}):(e==="source"?c(f):l(f),o())}})))}i($i,"SelectBlockchainPage");import{i18n as Ui}from"@lingui/core";import{Divider as Dg,Spinner as Cx}from"@rango-dev/ui";import ro,{useEffect as kx,useState as Tx}from"react";import{useNavigate as vx}from"react-router-dom";import{i18n as Ql}from"@lingui/core";import{BlockchainsChip as Fi,Divider as Mg,Image as Pg,Skeleton as ux,Tooltip as mx,Typography as Hl}from"@rango-dev/ui";import Me from"react";import{useEffect as cx}from"react";var Wg=["ETH","COSMOS","OSMOSIS"];function Ul(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(sx),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 p=n[c];s=s.filter(u=>p.name!==u)}}n.sort(lx(s)),r=n.splice(a)}return{list:n,more:r}}i(Ul,"prepare");function sx(t,e){let o=Wg,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(sx,"sortByMostUsedBlockchains");function lx(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(lx,"generateSortByPreferredBlockchainsFor");function Bg(t,e){return!!e.list.find(o=>o.name===t)}i(Bg,"isInVisibleList");function zl(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();cx(()=>{if(e?.selected){let a=Ul(t,o,e);Bg(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Ul(t,o,e);return{list:r.list,more:r.more,history:[]}}i(zl,"usePrepareBlockchainList");import{styled as px}from"@rango-dev/ui";var Lg=px("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var dx=12;function ql(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=zl(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),c=O.use.resetToBlockchain(),p=O.use.resetFromBlockchain(),u=s.more.length>0,m=s.more.length===1,h=!m&&u;return Me.createElement(Me.Fragment,null,Me.createElement(Mg,{size:12}),Me.createElement(Hl,{variant:"label",size:"large"},Ql.t("Select Chain")),Me.createElement(Mg,{size:12}),Me.createElement(Lg,null,l==="loading"&&Array.from(Array(dx),d=>Me.createElement(ux,{key:d,variant:"rounded",height:50})),l==="success"&&Me.createElement(Me.Fragment,null,Me.createElement(Fi,{selected:!n,onClick:()=>{o==="from"?p():c()}},Me.createElement(Hl,{variant:"body",size:"xsmall",color:"secondary500"},Ql.t("All"))),s.list.map(d=>Me.createElement(mx,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:N()},Me.createElement(Fi,{key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},Me.createElement(Pg,{src:d.logo,size:30})))),m?Me.createElement(Fi,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Me.createElement(Pg,{src:s.more[0].logo,size:30})):null,h?Me.createElement(Fi,{onClick:a,key:"more-blockchains"},Me.createElement(Hl,{variant:"body",size:"xsmall",color:"secondary500"},Ql._("More +{count}",{count:s.more.length}))):null)))}i(ql,"BlockchainsSection");import{useCallback as gx,useRef as hx,useState as Gl}from"react";function Vl(){let t=y().blockchains(),e=hx(null),{customTokens:o}=y(),[n,r]=Gl(!1),[a,s]=Gl([]),[l,c]=Gl(null),p=i(async(h,d)=>{c(null),r(!0),s([]);try{let f=await ot().searchCustomTokens({query:h,blockchain:d},{signal:e.current?.signal}),g=new Set(o().map(S=>Mt(S))),k=new Set(t.map(S=>S.name)),C=f.tokens.filter(S=>k.has(S.blockchain)&&!g.has(Mt(S)));s(C),r(!1)}catch(f){c(f instanceof Error?f.message:"something went wrong"),s([]),f?.name!=="CanceledError"&&r(!1)}},"fetch"),u=gx(Sr((h,d)=>{e.current?.signal.aborted||p(h,d)},600),[t.length]);return{fetch:(h,d)=>{e.current=new AbortController,s([]),r(!0),u(h,d)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:l}}i(Vl,"useSearchCustomTokens");function Oi(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(Oi,"shouldSearchForCustomTokens");function _g(t,e,o,n,r){let a=[...t];return Oi(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(_g,"prepareTokensList");function zi(t){let{type:e}=t,o=vx(),n=Oe(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:c,setToBlockchain:p}=O(),{getBalanceFor:u}=y(),{fetch:m,loading:h,tokens:d,cancel:f}=Vl(),[g,k]=Tx(""),C=e==="source"?r:a,S=C?.name??"",T=y().blockchains({type:e}),w=y().tokens({type:e,blockchain:S,searchFor:g,getBalanceFor:u}),E=_g(w,d,g,h,C?.name),W=i(b=>{e==="source"?c(b):p(b)},"updateBlockchain"),A=i(b=>{e==="source"?s({token:b,meta:{blockchains:T}}):l({token:b,meta:{blockchains:T}})},"updateToken"),x={source:Ui.t("Source"),destination:Ui.t("Destination")};return kx(()=>(Oi(w,g,C?.name)&&m(g,C?.name??void 0),()=>{f()}),[w.length,g,C?.name]),ro.createElement(oe,{header:{title:Ui.t("Swap {type}",{type:x[e]})}},ro.createElement(re,null,ro.createElement(ql,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{W(b)}}),ro.createElement(Dg,{size:24}),ro.createElement(Tt,{value:g,autoFocus:!0,placeholder:Ui.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>k(""),onChange:b=>k(b.target.value),suffix:Oi(w,g,C?.name)&&h?ro.createElement(Cx,{size:12,color:"secondary"}):void 0}),ro.createElement(Dg,{size:16}),ro.createElement(Vn,{list:E,selectedBlockchain:S,searchedFor:g,type:e,onChange:b=>{A(b);let v=T.find(I=>b.blockchain===I.name);v&&W(v),n()}})))}i(zi,"SelectSwapItemsPage");import{i18n as Xl}from"@lingui/core";import{Alert as jx,Button as Xx,styled as Yx}from"@rango-dev/ui";import Lo from"react";import{useInRouterContext as Zx,useSearchParams as Jx}from"react-router-dom";import{i18n as Qg}from"@lingui/core";import{Divider as Hg,InfoIcon as Ex,SlippageIcon as Ix,TextField as Ax,Tooltip as Nx,Typography as qg}from"@rango-dev/ui";import lt from"react";import{Chip as wx,styled as or,TextField as bx}from"@rango-dev/ui";var $g=or("div",{paddingTop:"$5",padding:"$10 $5"}),Fg=or("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${bx}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Og=or("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Qi=or("div",{maxWidth:"280px",padding:"$10"}),Ug=or(wx,{width:"61px",flexShrink:0});import{i18n as Kl}from"@lingui/core";import{Typography as xx}from"@rango-dev/ui";import nr from"react";function zg(){return nr.createElement(Qi,null,nr.createElement(xx,{variant:"label",size:"medium",color:"neutral700"},Kl.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),nr.createElement("br",null),nr.createElement("br",null),nr.createElement("b",null,Kl.t("Warning")),":\xA0",Kl.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(zg,"SlippageTooltipContent");function jl(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return lt.createElement($g,null,lt.createElement(Og,null,lt.createElement(Ix,{size:16,color:"gray"}),lt.createElement(Hg,{direction:"horizontal",size:4}),lt.createElement(qg,{variant:"title",size:"xmedium"},Qg.t("Slippage tolerance per swap")),lt.createElement(Hg,{direction:"horizontal",size:4}),lt.createElement(Nx,{container:N(),side:"top",sideOffset:4,content:lt.createElement(zg,null)},lt.createElement(Ex,{color:"gray"}))),lt.createElement(Fg,null,dp.map((r,a)=>{let s=`slippage-${a}`;return lt.createElement(Ug,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),lt.createElement(Ax,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=yp&&s<=hp?n(s):n(null)},suffix:o&&lt.createElement(qg,{variant:"body",size:"small"},"%"),placeholder:Qg.t("Custom")})))}i(jl,"Slippage");import{i18n as gt}from"@lingui/core";import{AutoThemeIcon as Gg,BridgesIcon as Wx,ChevronRightIcon as Hi,DarkModeIcon as Vg,Divider as rr,ExchangeIcon as Bx,InfinityIcon as Lx,InfoIcon as Mx,LanguageIcon as Px,LightModeIcon as Kg,List as _x,ListItem as Dx,ListItemButton as $x,Skeleton as Fx,styled as Ox,Switch as Ux,Tabs as zx,TargetIcon as Qx,Tooltip as Hx,Typography as et}from"@rango-dev/ui";import D from"react";import{useNavigate as qx}from"react-router-dom";var Gx=Ox("div",{width:"202px",height:"$40"}),Vx=[{id:"light",icon:D.createElement(Kg,{color:"black",size:24}),tooltip:D.createElement(et,{size:"xsmall",variant:"body"},gt.t("Light"))},{id:"dark",icon:D.createElement(Vg,{color:"black",size:24}),tooltip:D.createElement(et,{size:"xsmall",variant:"body"},gt.t("Dark"))},{id:"auto",icon:D.createElement(Gg,{color:"black",size:24}),tooltip:D.createElement(et,{size:"xsmall",variant:"body"},gt.t("Auto"))}],Kx=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(Gg,{...e});case"dark":return D.createElement(Vg,{...e});default:return D.createElement(Kg,{...e})}},"getThemeIcon");function jg(){let t=qx(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=no(),s=a.find(B=>B.local===r)?.label,l=y().fetchStatus,c=y().swappers(),p=y().getDisabledLiquiditySources(),{config:{features:u}}=y(),m=y().customTokens(),h=Ye("theme",u),d=Ye("liquiditySource",u),f=Ye("language",u),g=Ye("customTokens",u),k=y().infiniteApprove,C=y().toggleInfiniteApprove,S=Ir(c,p),T=S.filter(B=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(B.type)),w=T.length,E=T.filter(B=>B.selected).length,W=S.filter(B=>B.type==="DEX"),A=W.length,x=W.filter(B=>B.selected).length,b=i((B,X)=>{switch(l){case"loading":return D.createElement(Fx,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(et,{variant:"body",size:"medium",color:"$error500"},gt.t("Loading failed"));default:return D.createElement(et,{variant:"body",size:"medium"},`${B} / ${X}`)}},"handleSwapperEndItem"),v={id:"widget-setting-bridge-item-btn",title:D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Bridges")),end:D.createElement(D.Fragment,null,b(E,w),D.createElement(rr,{direction:"horizontal",size:8}),D.createElement(Hi,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(Wx,{color:"gray",size:16})},I={id:"widget-setting-exchange-item-btn",title:D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Exchanges")),end:D.createElement(D.Fragment,null,b(x,A),D.createElement(rr,{direction:"horizontal",size:8}),D.createElement(Hi,{color:"black"})),start:D.createElement(Bx,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},M={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(et,{variant:"body",size:"medium"},`${m.length}`),D.createElement(rr,{direction:"horizontal",size:8}),D.createElement(Hi,{color:"black"})),start:D.createElement(Qx,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},$={id:"widget-setting-language-item-btn",title:D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Language")),start:D.createElement(Px,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(et,{variant:"body",size:"medium"},s),D.createElement(rr,{direction:"horizontal",size:8}),D.createElement(Hi,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Infinite approval")),D.createElement(rr,{direction:"horizontal",size:4}),D.createElement(Hx,{side:"top",sideOffset:4,container:N(),content:D.createElement(Qi,null,D.createElement(et,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,gt.t("Warning")),":\xA0",gt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(Mx,{color:"gray"}))),start:D.createElement(Lx,{color:"gray",size:16}),end:D.createElement(Ux,{checked:k}),onClick:C},Z={id:"widget-setting-theme-item-btn",type:D.createElement(Dx,null),title:D.createElement(et,{variant:"title",size:"xmedium"},gt.t("Theme")),end:D.createElement(Gx,null,D.createElement(zx,{container:N(),items:Vx,value:n,onChange:B=>o(B.id),type:"primary",borderRadius:"small"})),start:Kx(n)},j=d?[]:[v,I];return g||j.push(M),f||j.push($),j.push(q),!e?.singleTheme&&!h&&j.push(Z),D.createElement(_x,{type:D.createElement($x,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:j})}i(jg,"SettingsLists");var Rx=Yx("div",{paddingLeft:"$8"});function Xg(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=Jx(),r=Zx(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Lo.createElement(oe,{header:{title:Xl.t("Settings")}},Lo.createElement(re,null,o&&Lo.createElement(jx,{type:"info",variant:"alarm",title:Xl.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:Lo.createElement(Rx,null,Lo.createElement(Xx,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Xl.t("Reset")))}),Lo.createElement(jl,null),Lo.createElement(jg,null)))}i(Xg,"SettingsPage");import{i18n as zE}from"@lingui/core";import{cancelSwap as QE}from"@rango-dev/queue-manager-rango-preset";import{useManager as HE}from"@rango-dev/queue-manager-react";import{Alert as qE}from"@rango-dev/ui";import mc from"react";import{useParams as GE}from"react-router-dom";import{i18n as ct}from"@lingui/core";import{getCurrentNamespaceOfOrNull as vE,getCurrentStep as wE,getRelatedWalletOrNull as bE}from"@rango-dev/queue-manager-rango-preset";import{Button as Nh,CopyIcon as xE,Divider as EE,DoneIcon as IE,IconButton as AE,QuoteCost as NE,RangoExplorerIcon as WE,StepDetails as BE,Tooltip as Wh,Typography as Mo,useCopyToClipboard as LE}from"@rango-dev/ui";import{useWallets as ME}from"@rango-dev/wallets-react";import Bh from"bignumber.js";import{PendingSwapNetworkStatus as Zi}from"rango-types";import Y,{useEffect as Lh,useRef as PE,useState as Mh}from"react";import{useNavigate as _E}from"react-router-dom";import{i18n as io}from"@lingui/core";var eE=[io.t("Sunday"),io.t("Monday"),io.t("Tuesday"),io.t("Wednesday"),io.t("Thursday"),io.t("Friday"),io.t("Saturday")];function Yg(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?io.t("Today"):`${eE[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Yg,"timeSince");function Zg(t){return t.finishTime?Yg(parseInt(t.finishTime)):Yg(parseInt(t.creationTime))}i(Zg,"getSwapDate");import{PendingSwapNetworkStatus as Vi}from"rango-types";import Ki from"react";import{i18n as qi}from"@lingui/core";import{Button as Jg,Divider as Yl,MessageBox as tE}from"@rango-dev/ui";import ao from"react";var Rg=i(({onCancel:t,onClose:e})=>ao.createElement(ao.Fragment,null,ao.createElement(Yl,{size:20}),ao.createElement(tE,{type:"error",title:qi.t("Cancel Swap"),description:qi.t("Are you sure you want to cancel this swap?")}),ao.createElement(Yl,{size:32}),ao.createElement(Jg,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},qi.t("Yes, Cancel it")),ao.createElement(Yl,{size:12}),ao.createElement(Jg,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},qi.t("No, Continue"))),"CancelContent");import{i18n as Gi}from"@lingui/core";import{Button as eh,Divider as Zl,MessageBox as oE,Typography as nE}from"@rango-dev/ui";import qt from"react";var th=i(({onDelete:t,onClose:e})=>qt.createElement(qt.Fragment,null,qt.createElement(Zl,{size:20}),qt.createElement(oE,{type:"error",title:Gi.t("Delete Transaction"),description:Gi.t("Are you sure you want to delete this swap?")}),qt.createElement(Zl,{size:32}),qt.createElement(eh,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Gi.t("Yes, Delete it")),qt.createElement(Zl,{size:12}),qt.createElement(eh,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},qt.createElement(nE,{variant:"title",size:"medium",color:"primary"},Gi.t("No, Cancel")))),"DeleteContent");import{i18n as Jl}from"@lingui/core";import{PendingSwapNetworkStatus as Rl}from"rango-types";var ec={[Rl.WaitingForNetworkChange]:{type:"loading",title:Jl.t("Change Network")},[Rl.WaitingForConnectingWallet]:{type:"warning",title:Jl.t("Connect Wallet")},[Rl.NetworkChanged]:{type:"success",title:Jl.t("Network Changed")}};import{warn as rE}from"@rango-dev/logging-core";import{MessageBox as iE,Wallet as aE}from"@rango-dev/ui";import{useWallets as sE}from"@rango-dev/wallets-react";import ln,{useState as lE}from"react";import{styled as tc}from"@rango-dev/ui";var oh=tc("div",{display:"flex",justifyContent:"center"}),VK=tc("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),nh=tc("img",{width:"100%"});var rh=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,c]=lE(),{getWalletInfo:p,state:u}=sE(),m=n?.walletType,h=m?gn(u(m)):null,d=m?p(m):null,f=a&&!!m&&!!h&&!!d,{list:g}=ht(),k=i(()=>{if(m){let C=g.find(S=>S.type===m);C?c(C):rE(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${C}`))}},"handleWalletItemClick");return ln.createElement(ln.Fragment,null,ln.createElement(iE,{type:e,title:o,description:r}),f&&ln.createElement(oh,null,ln.createElement(aE,{container:N(),title:d.name,image:d.img,type:m,state:h,link:d.installLink,disabled:s,onClick:k})),ln.createElement(So,{wallet:l,onClose:()=>{c(void 0)}}))},"WalletStateContent");function oc(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,c=e===Vi.WaitingForNetworkChange||e===Vi.WaitingForConnectingWallet||e===Vi.NetworkChanged;return Ki.createElement(R,{open:!!e,onClose:o,container:document.getElementById($e.SWAP_BOX_ID)||document.body},c&&Ki.createElement(rh,{type:ec[e].type,title:ec[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==Vi.WaitingForNetworkChange}),e==="delete"&&Ki.createElement(th,{onClose:o,onDelete:n}),e==="cancel"&&Ki.createElement(Rg,{onClose:o,onCancel:r}))}i(oc,"SwapDetailsModal");import{i18n as ir}from"@lingui/core";import{Button as nc,Divider as ar,MessageBox as sh,TokenAmount as cE,Typography as lh}from"@rango-dev/ui";import de from"react";import{Link as pE,useNavigate as uE}from"react-router-dom";var ih="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",ah="/profile";function rc(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:c,chain:p,percentageChange:u,description:m,diagnosisUrl:h}=t,d=uE(),{showProfileBanner:f}=ne();return de.createElement(R,{open:e,onClose:o,container:document.getElementById($e.SWAP_BOX_ID)||document.body},n==="success"?de.createElement(sh,{type:"success",title:ir.t("Swap Successful")},de.createElement(cE,{direction:"vertical",tooltipContainer:N(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:c,chain:p,percentageChange:u}),de.createElement(ar,{size:12}),de.createElement(lh,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):de.createElement(sh,{type:"error",title:ir.t("Transaction Failed"),description:m}),de.createElement(ar,{size:30}),n==="success"&&de.createElement(de.Fragment,null,f&&de.createElement(de.Fragment,null,de.createElement(pE,{to:ah},de.createElement(nh,{src:ih,alt:"Profile Banner"})),de.createElement(ar,{size:30})),de.createElement(nc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{d("../../")}},ir.t("Done"))),de.createElement(ar,{size:12}),h&&de.createElement(de.Fragment,null,de.createElement(nc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},ir.t("Diagnosis")),de.createElement(ar,{size:12})),de.createElement(nc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},de.createElement(lh,{variant:"title",size:"medium",color:"primary"},ir.t("See Details"))))}i(rc,"SwapDetailsCompleteModal");import TE from"react";import{i18n as yE}from"@lingui/core";import{Alert as xh,IconButton as SE,LinkIcon as CE}from"@rango-dev/ui";import so,{Fragment as kE}from"react";import{Alert as dE,ChevronDownIcon as fE,IconButton as gE}from"@rango-dev/ui";import pn,{useState as hE}from"react";import{css as sr,darkTheme as ch,styled as Gt,Typography as mE}from"@rango-dev/ui";var ph=Gt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),ji=Gt("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${ch} &`]:{color:"$secondary500"}}}}}),uh=Gt(An,{padding:"$0 $20 $20 $20"}),M4=Gt("div",{display:"flex",flexDirection:"column",gap:"$10"}),mh=Gt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),P4=Gt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),cn=sr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${ch} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),dh=sr({padding:"$5 0"}),Xi=sr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),fh=sr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),gh=sr({width:"100%",padding:"0 $20 $10"}),hh=Gt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),yh=Gt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Yi=Gt(mE,{wordBreak:"break-word"});import{styled as ic}from"@rango-dev/ui";var Sh=ic("div",{display:"flex",flexDirection:"column",gap:"$10"}),Ch=ic("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),kh=ic("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Th(t){let{message:e}=t,[o,n]=hE(!1);return pn.createElement(dE,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&pn.createElement(gE,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},pn.createElement(Ch,{rotated:o},pn.createElement(fE,{size:12,color:"gray"}))),footer:pn.createElement(kh,{open:o},pn.createElement(Yi,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Th,"FailedAlert");import{i18n as vh}from"@lingui/core";import{Alert as ac,Button as wh}from"@rango-dev/ui";import{PendingSwapNetworkStatus as sc}from"rango-types";import lr from"react";function bh(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?lr.createElement(ac,{type:"warning",title:n.shortMessage,action:lr.createElement(wh,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(sc.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},vh.t("Change"))}):r===sc.WaitingForConnectingWallet?lr.createElement(ac,{type:"warning",title:n.shortMessage,action:lr.createElement(wh,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(sc.WaitingForConnectingWallet)}},vh.t("Connect"))}):lr.createElement(ac,{type:"warning",title:n.shortMessage})}i(bh,"WarningAlert");function lc(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=En(a),c=a.status==="waitingForApproval"&&!l,p=a.status==="running"&&!l,u=p&&!s||c&&!a.explorerUrl?.length;return so.createElement(Sh,null,a.explorerUrl?.map((m,h,d)=>{let f=h+m.url,g=h===d.length-1,k=(g&&p||c)&&!u,C=g&&a.status==="failed";return so.createElement(kE,{key:f},so.createElement(xh,{type:g&&(k&&"loading"||C&&"error")||"success",title:m.description?`${m.description} Tx`:yE.t("View transaction"),action:m.url&&so.createElement(SE,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},so.createElement(CE,{size:12}))}))}),u&&so.createElement(xh,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&so.createElement(bh,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&so.createElement(Th,{message:r}))}i(lc,"SwapDetailsAlerts");var Eh=2e3;var Ih=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:ut(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:P(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ut(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:P(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:un(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(c=>({from:{chain:{displayName:ut(c.fromBlockchain,e)??"",image:c.fromBlockchainLogo??""}},to:{chain:{displayName:ut(c.toBlockchain,e)??"",image:c.toBlockchainLogo??""}},swapper:{displayName:un(c.swapperId,o)??"",image:c.swapperLogo??"",type:c.swapperType}})):[],alerts:TE.createElement(lc,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Ah(t){if(En(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(Ah,"getStepState");function cc(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=ME(),c=y().blockchains(),p=y().swappers(),{findToken:u}=y(),m=O.use.retry(),h=ne.use.isActiveTab(),d=_E(),[f,g]=LE(Eh),k=PE(null),[C,S]=Mh(null),[T,w]=Mh(null),E=i(()=>{r(),S(null)},"onCancel"),W=we.use.getNotifications(),A=we.use.removeNotification(),x=W(),b=wE(e),v=b?.networkStatus;Lh(()=>{x.find(De=>De.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),A(e.requestId)):T&&w(null))},[e.status,e.requestId]),Lh(()=>{B?S(Zi.WaitingForNetworkChange):v===Zi.WaitingForConnectingWallet||v===Zi.NetworkChanged?S(v):S(null)},[v]);let I=Eu(e),M=b?vE(e,b):null,$=b?bE(e,b):null,q=Zg(e),Z=Iu(e),j=i(ke=>!!l(ke)?.mobileWallet,"isMobileWallet"),B=v===Zi.WaitingForNetworkChange&&!!M&&!!$?.walletType&&(j($.walletType)||a($.walletType,M.network)),X=B?s.bind(null,$.walletType,[{namespace:M.namespace,network:M.network}]):void 0,ae=xu(e,b),K=Ih({swap:e,switchNetwork:X,showNetworkModal:v,setNetworkModal:S,message:ae,blockchains:c,swappers:p}),fe=K.length,[Ie,je]=[e.steps[0],e.steps[fe-1]],se=je.outputAmount||je.expectedOutputAmountHumanReadable,pt=e.steps.reduce((ke,De)=>ke+parseFloat(De.feeInUsd||""),0),G=e.steps.find(ke=>ke.diagnosisUrl)?.diagnosisUrl,_=P(parseFloat(se||"0")*(je.toUsdPrice||0),4,4),H=P(parseFloat(e.inputAmount)*(Ie.fromUsdPrice||0),4,4),V=se?new Bh(se).multipliedBy(je.toUsdPrice||0).toString():"",ge=new Bh(e.inputAmount).multipliedBy(Ie.fromUsdPrice||0).toString(),ce=Pt(H,_),_e=ae.detailedMessage.content||ae.shortMessage,Xe=e.status==="success"?ct.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:P(se,6,6),token:K[fe-1].to.token.displayName,conciseAddress:xr(e.wallets[K[fe-1].to.chain.displayName]?.address||""),chain:K[fe-1].to.chain.displayName}}):Y.createElement(yh,null,Y.createElement(Mo,{variant:"body",size:"medium",color:"neutral700",align:"center"},_e?"":ct.t("Transaction was not sent."),I?`${ct.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:I.outputAmount,symbol:I.symbol,blockchain:I.blockchain}})}`:""),_e&&Y.createElement(Yi,{align:"center",variant:"body",size:"medium",color:"neutral700"},Y.createElement("b",null,"Reason:")," ",_e));return Y.createElement(oe,{header:{title:ct.t("Swap Details"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&Y.createElement(jt,null,Y.createElement(Nh,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},Y.createElement(Mo,{size:"medium",variant:"label",color:"error"},ct.t("Delete"))))},footer:Z&&!T&&Y.createElement(Nh,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let ke=Fr(e,c,u);m(ke),setTimeout(()=>{d("../../")},0)}},ct.t("Try again"))},Y.createElement(re,{compact:!0,view:!0},Y.createElement(ji,null,Y.createElement("div",{className:cn()},Y.createElement(Mo,{variant:"label",size:"large",color:"neutral700"},`${ct.t("Request ID")}`),Y.createElement("div",{className:Xi()},Y.createElement(Mo,{variant:"label",size:"small",color:"neutral700"},o),Y.createElement(Wh,{container:N(),content:f?ct.t("Copied To Clipboard"):ct.t("Copy Request ID"),open:f||void 0,side:"bottom",alignOffset:-16,align:"end"},Y.createElement(AE,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:g.bind(null,o||"")},f?Y.createElement(IE,{size:16,color:"secondary"}):Y.createElement(xE,{size:16,color:"gray"}))),Y.createElement(hh,{target:"_blank",href:`${_c}/swap/${o}`},Y.createElement(Wh,{container:N(),content:ct.t("View on Rango Explorer"),side:"bottom"},Y.createElement(WE,{size:20}))))),Y.createElement("div",{className:cn()},Y.createElement(Mo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?ct.t("Finished at"):ct.t("Created at")),Y.createElement(Mo,{variant:"label",size:"small",color:"neutral700"},q))),Y.createElement("div",{className:fh()},Y.createElement(NE,{fee:P(String(pt),2,2),time:dn(kr(e.steps)),steps:fe}),Y.createElement(_n,{from:{price:{value:P(e.inputAmount,6,6),usdValue:H,realUsdValue:ge,realValue:e.inputAmount},token:{displayName:K[0].from.token.displayName,image:K[0].from.token.image},chain:{image:K[0].from.chain.image,displayName:K[0].from.chain.displayName}},to:{price:{value:P(se,6,6),usdValue:_,realUsdValue:V,realValue:se||""},token:{displayName:K[fe-1].to.token.displayName,image:K[fe-1].to.token.image},chain:{image:K[fe-1].to.chain.image,displayName:K[fe-1].to.chain.displayName}},percentageChange:P(ce,2,2),warningLevel:_t(ce??0)})),Y.createElement("div",{className:gh()},Y.createElement(Mo,{variant:"title",size:"small"},ct.t("Swaps steps"))),Y.createElement(EE,{size:8}),Y.createElement(uh,{ref:k},K.map((ke,De)=>{let Vt=De,lo=Ah(e.steps[De]),sy=lo==="error"||lo==="in-progress"||lo==="warning"||lo==="completed"&&De===K.length-1;return Y.createElement(BE,{key:Vt,step:ke,type:"swap-progress",ref:k,state:lo,hasSeparator:De!==0,tabIndex:Vt,isFocused:sy,tooltipContainer:N()})}))),Y.createElement(oc,{state:C,onClose:()=>S(null),onCancel:E,onDelete:n,message:ae.detailedMessage.content,currentStepWallet:$,walletButtonDisabled:!h}),Y.createElement(rc,{open:!!T,diagnosisUrl:G,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:P(se,6,6),usdValue:_,realUsdValue:V,realValue:se||"",percentageChange:P(ce,2,2),token:{displayName:K[fe-1].to.token.displayName,image:K[fe-1].to.token.image},chain:{image:K[fe-1].to.chain.image},description:Xe}))}i(cc,"SwapDetails");import{i18n as Ri}from"@lingui/core";import{Divider as Dh,NotFound as UE,Skeleton as pr,Typography as ea}from"@rango-dev/ui";import Ce from"react";import{i18n as DE}from"@lingui/core";import{Divider as $E,Skeleton as FE,Typography as OE}from"@rango-dev/ui";import Te from"react";import{css as wt,styled as pc}from"@rango-dev/ui";var Ph=pc("div",{width:"100%",height:"100%",padding:"$10 $20"}),cr=pc("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ji=pc("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),V8=wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),K8=wt({display:"flex",justifyContent:"space-between",alignItems:"center"}),j8=wt({paddingTop:"$15",display:"flex"}),X8=wt({padding:"$15 $0"}),Y8=wt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),Z8=wt({paddingBottom:"$10"}),J8=wt({display:"flex",justifyContent:"start",alignItems:"center"}),R8=wt({paddingTop:"$5",display:"flex",alignItems:"center"}),e6=wt({display:"flex",alignItems:"center"}),t6=wt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),_h=wt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function uc(){return Te.createElement(Ph,null,Te.createElement(Fn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(OE,{variant:"title",size:"small"},DE.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(cr,null,Te.createElement(At,{separator:!1}),Te.createElement("div",{className:_h()},Te.createElement($E,{direction:"horizontal",size:20}),Te.createElement(FE,{height:22,variant:"rectangular"}))),Te.createElement(Ji,null),Te.createElement(cr,null,Te.createElement(At,{separator:!1})),Te.createElement(Ji,null),Te.createElement(cr,null,Te.createElement(At,{separator:!1})),Te.createElement(Ji,null),Te.createElement(cr,null,Te.createElement(At,{separator:!1}))))}i(uc,"LoadingSwapDetails");function $h(t){let{requestId:e,showSkeleton:o}=t;return Ce.createElement(oe,{header:{title:Ri.t("Swap Details"),suffix:Ce.createElement(jt,null)}},o&&Ce.createElement(ph,null,Ce.createElement(ji,null,Ce.createElement("div",{className:cn()},Ce.createElement(ea,{variant:"label",size:"large",color:"neutral700"},`${Ri.t("Request ID")}`),Ce.createElement("div",{className:Xi()},Ce.createElement(ea,{variant:"label",size:"small",color:"neutral700"},Ce.createElement(pr,{width:60,height:10,variant:"rounded"})),Ce.createElement(Dh,{direction:"horizontal",size:4}),Ce.createElement(pr,{width:16,height:16,variant:"rectangular"}),Ce.createElement(Dh,{direction:"horizontal",size:4}),Ce.createElement(pr,{width:16,height:16,variant:"rectangular"}))),Ce.createElement("div",{className:cn()},Ce.createElement(ea,{className:dh(),variant:"label",size:"large",color:"neutral700"},Ce.createElement(pr,{width:60,height:10,variant:"rounded"})),Ce.createElement(ea,{variant:"label",size:"small",color:"neutral700"},Ce.createElement(pr,{width:60,height:10,variant:"rounded"})))),Ce.createElement(uc,null)),!o&&Ce.createElement(mh,null,Ce.createElement(UE,{title:Ri.t("Not found"),description:Ri.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i($h,"SwapDetailsPlaceholder");function Fh(){let{manager:t,state:e}=HE(),o=!e.loadedFromPersistor,n=ft(t),{requestId:r}=GE(),a=Oe(),{fetchStatus:s}=y();if(!r)return mc.createElement(qE,{containerStyles:{margin:"20px"},type:"error",title:zE.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,p=i(()=>{if(c?.id){let h=t?.get(c.id);h&&QE(h)}},"onCancel"),u=i(async()=>{if(c?.id)try{t?.deleteQueue(c.id),a()}catch(h){console.log(h)}},"onDelete"),m=c?.swap;return!m||l?mc.createElement($h,{requestId:r,showSkeleton:l}):mc.createElement(cc,{swap:m,requestId:r,onCancel:p,onDelete:u})}i(Fh,"SwapDetailsPage");import{i18n as Oh}from"@lingui/core";import{Divider as VE,getCategoriesCount as KE,SelectableCategoryList as jE,styled as zh,Typography as XE,Wallet as YE}from"@rango-dev/ui";import Wt,{useState as Uh}from"react";var ZE=zh("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),JE=zh(re,{textAlign:"center"});function Qh(){let{fetchStatus:t}=y(),[e,o]=Uh("ALL"),n=y().blockchains(),{config:r}=y(),[a,s]=Uh(),l=ne.use.isActiveTab(),{list:c}=ht(),p=op(c,n),m=KE(p)!==1,h=np(c,e),d=i(f=>{Gc(c,r.multiWallets)||s(f)},"handleWalletItemClick");return Wt.createElement(oe,{header:{title:Oh.t("Connect Wallets")}},Wt.createElement(JE,null,m&&Wt.createElement(Wt.Fragment,null,Wt.createElement(jE,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),Wt.createElement(VE,{size:24})),Wt.createElement(XE,{variant:"title",size:"xmedium",align:"center"},Oh.t("Choose a wallet to connect.")),Wt.createElement(ZE,null,h.map((f,g)=>{let k=`wallet-${g}-${f.type}`;return Wt.createElement(YE,{key:k,...f,container:N(),onClick:()=>d(f),isLoading:t==="loading",disabled:!l})}),Wt.createElement(So,{wallet:a,onClose:()=>{s(void 0)}}))))}i(Qh,"WalletsPage");function Hh(){return Bu(),ja(),RE([{path:F.home,element:Pe.createElement(gg,null)},{path:F.routes,element:Pe.createElement(kg,null)},{path:F.fromSwap,children:[{index:!0,element:Pe.createElement(zi,{type:"source"})},{path:F.blockchains,element:Pe.createElement($i,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:Pe.createElement(zi,{type:"destination"})},{path:F.blockchains,element:Pe.createElement($i,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:Pe.createElement(Xg,null)},{path:F.languages,element:Pe.createElement(yg,null)},{path:F.exchanges,element:Pe.createElement($l,{sourceType:"Exchanges"})},{path:F.bridges,element:Pe.createElement($l,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:Pe.createElement(xf,null)},{path:F.addCustomTokens,children:[{index:!0,element:Pe.createElement(gm,null)},{path:F.blockchains,element:Pe.createElement($i,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:Pe.createElement(Gf,null)},{path:F.swapDetails,element:Pe.createElement(Fh,null)}]},{path:F.wallets,element:Pe.createElement(Qh,null)},{path:F.confirmSwap,element:Pe.createElement(uf,null)}])}i(Hh,"AppRoutes");import{useQueueManager as lI}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as cI}from"@rango-dev/wallets-shared";import{isEvmBlockchain as pI}from"rango-sdk";import{useContext as uI,useEffect as Yh,useState as Zh}from"react";import{globalCss as eI}from"@rango-dev/ui";var qh=i(()=>eI({"@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 Gh(){let{setWatermark:t,setShowProfileBanner:e}=ne();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Lt("BASE_URL")}/meta/dapp/config?apiKey=${Lt("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(Gh,"useFetchApiConfig");import{useWallets as tI}from"@rango-dev/wallets-react";import{useEffect as oI,useRef as nI}from"react";function Vh(){let{connect:t,state:e}=tI(),o=nI({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);oI(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Vh,"useForceAutoConnect");import{isApprovalTX as rI,RouteEventType as Kh,StepEventType as jh,StepExecutionEventStatus as iI,WidgetEvents as ta}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Xh}from"react";function dc(){let t=we.use.setNotification(),{connectedWallets:e,fetchBalances:o}=y();Xh(()=>{let n=i(r=>{let{event:a,step:s,route:l}=r;if(a.type===jh.TX_EXECUTION&&a.status===iI.TX_SENT&&!rI(s)||a.type===jh.SUCCEEDED){let p=l.wallets[s?.fromBlockchain],u=e.find(m=>m.address?.toLocaleLowerCase()===p.address?.toLocaleLowerCase()&&m.walletType===p.walletType&&m.chain===s?.fromBlockchain);if(u&&o([u]),s?.fromBlockchain!==s?.toBlockchain){let m=l.wallets[s?.toBlockchain],h=e.find(d=>d.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&d.walletType===m.walletType&&d.chain===s?.toBlockchain);h&&o([h])}}t(a,l)},"handleStepEvent");return he.on(ta.StepEvent,n),()=>he.off(ta.StepEvent,n)},[he,e]),Xh(()=>{let n=i(r=>{let{event:a,route:s}=r;(a.type===Kh.FAILED||a.type===Kh.SUCCEEDED)&&t(a,s)},"handleRouteEvent");return he.on(ta.RouteEvent,n),()=>he.off(ta.RouteEvent,n)},[he])}i(dc,"useSubscribeToWidgetEvents");import{useManager as aI}from"@rango-dev/queue-manager-react";import{useEffect as sI}from"react";function fc(){let{isSynced:t,syncNotifications:e}=we(),{manager:o,state:n}=aI();sI(()=>{we.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ft(o))},[we.persist.hasHydrated(),n.loadedFromPersistor,t])}i(fc,"useSyncNotifications");function gc(){Vh(),qh(),dc(),fc();let t=y().blockchains(),{canSwitchNetworkTo:e}=ri(),[o,n]=Zh(""),[r,a]=Zh(),s=uI(Pr),l=t.filter(pI),{fetchApiConfig:c}=Gh();Yh(()=>()=>Wu(),[]),lI({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Yh(()=>(fo.init(),we.persist.hasHydrated()||we.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(p=>{a(p),p===cI(o)?.[0]&&n("")}),c().catch(console.log),fo.destroy),[])}i(gc,"useBootstrap");import{styled as mI}from"@rango-dev/ui";var Jh=mI("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function oa(){gc();let{config:t}=y(),{activeTheme:e}=Yo(t?.theme||{}),{activeLanguage:o}=no();return hc.createElement(dI,{language:o},hc.createElement(Jh,{id:"swap-container",className:e()},hc.createElement(Hh,null)))}i(oa,"Main");import{setSolanaSignerConfig as MI}from"@rango-dev/signer-solana";import Sc,{useEffect as ry,useMemo as PI}from"react";import{useState as fI}from"react";var gI=i(()=>{let[t,e]=fI(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=qc(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Rh=gI;import{checkWaitingForNetworkChange as hI,makeQueueDefinition as yI}from"@rango-dev/queue-manager-rango-preset";import{Provider as SI}from"@rango-dev/queue-manager-react";import{useWallets as CI}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as kI}from"@rango-dev/wallets-shared";import{isEvmBlockchain as TI}from"rango-types";import vI,{useMemo as wI}from"react";function bI(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=CI(),l=wI(()=>yI({API_KEY:t.apiKey||Lt("API_KEY"),BASE_URL:Lt("BASE_URL"),emitter:{emit:he.emit}}),[t.apiKey]),{blockchains:c,connectedWallets:p}=y(),u=c(),m={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},h=i(async(w,E)=>a(w,E.network)?await r(w,[E]):void 0,"switchNetwork"),d=i(w=>!!s(w).mobileWallet,"isMobileWallet"),f=u.filter(w=>w.enabled).reduce((w,E)=>(w[E.name]=E,w),{}),g=u.filter(TI),k=i(w=>{let{supportedChains:E}=s(w);return hn(E)},"getSupportedChainNames"),C=e(),S={meta:{blockchains:f,evmBasedChains:g,evmNetworkChainInfo:kI(g),getSupportedChainNames:k},getSigners:o,wallets:m,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:d},T=ne.use.isActiveTab();return vI.createElement(SI,{queuesDefs:[l],context:S,onPersistedDataLoaded:w=>{hI(w)},isPaused:!T},t.children)}i(bI,"QueueManager");var ey=bI;import{useManager as NI}from"@rango-dev/queue-manager-react";import WI,{createContext as BI,useContext as LI}from"react";function ty(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=O();return i(p=>{let{fromBlockchain:u,fromToken:m,toBlockchain:h,toToken:d,requestAmount:f}=p,g={blockchains:e,tokens:o};if(u!==void 0){let k=e.find(C=>C.name===u)??null;n(k)}if(m!==void 0){let k=m?t(m)??null:null;r({meta:g,token:k})}if(h!==void 0){let k=e.find(C=>C.name===h)??null;a(k)}if(d!==void 0){let k=d?t(d)??null:null;s({meta:g,token:k})}f!==void 0&&l(f)},"updateQuoteInputs")}i(ty,"useUpdateQuoteInputs");import{cancelSwap as xI,getCurrentNamespaceOfOrNull as EI,getCurrentStep as II,getRelatedWalletOrNull as AI}from"@rango-dev/queue-manager-rango-preset";var na=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return ft(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=Fr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&xI(o)}getCurrentStepInfo(e){let o=II(e);return{step:o,wallet:o?AI(e,o):null,network:o?EI(e,o)?.network:null}}};var oy=BI(void 0);function yc(t){let{manager:e}=NI(),o=ne.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:l}=y(),c=new na(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=y(),u=Yc(a()),m=y().blockchains(),h=y().tokens(),d=y().swappers(),f=y().fetchStatus,g=no().resetLanguage,k=we().getNotifications(),C=we().clearNotifications,S=ty(),{fromBlockchain:T,toBlockchain:w,fromToken:E,toToken:W,inputAmount:A}=O(),x={isActiveTab:o,setCurrentTabAsActive:fo.forceClaim,history:c,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async b=>l(b)},meta:{blockchains:m,tokens:h,swappers:d,loadingStatus:f,findToken:r},resetLanguage:g,notifications:{list:k,clearAll:C},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:E?{symbol:E.symbol,blockchain:E.blockchain,address:E.address}:null,toBlockchain:w?.name??null,toToken:W?{symbol:W.symbol,blockchain:W.blockchain,address:W.address}:null,requestAmount:A},updateQuoteInputs:S}};return WI.createElement(oy.Provider,{value:x},t.children)}i(yc,"WidgetInfo");function ny(){let t=LI(oy);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(ny,"useWidget");function ra(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Rh();return ry(()=>{n&&r(n)},[n]),PI(()=>{rp({API_KEY:o?.apiKey||hr,BASE_URL:o?.apiUrl||Pc})},[o.apiKey,o.apiUrl]),ry(()=>{t.config?.signers?.customSolanaRPC&&MI("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Sc.createElement(_r,{config:o,onUpdateState:e},Sc.createElement(ey,{apiKey:o.apiKey},Sc.createElement(yc,null,t.children)))}i(ra,"WidgetProvider");function iy(t){let e=t.config?.externalWallets;return ia.createElement(Jp,null,e?ia.createElement(oa,null):ia.createElement(ra,{config:t.config??fr},ia.createElement(oa,null)))}i(iy,"Widget");function ay(){let{on:t,off:e}=he;return{on:t,off:e}}i(ay,"useWidgetEvents");var lY={DerivationPath:vn,Namespaces:Tn,isOnDerivationPath:bn,isOnNamespace:wn};export{PX as EventSeverity,Uo as MainEvents,qX as Networks,KX as PendingSwapNetworkStatus,ka as QuoteEventTypes,_X as RouteEventType,ca as SUPPORTED_FONTS,lY as StatefulConnect,DX as StepEventType,$X as StepExecutionBlockedEventStatus,FX as StepExecutionEventStatus,$e as UI_ID,va as UiEventTypes,Ta as WalletEventTypes,QX as WalletEvents,GX as WalletTypes,iy as Widget,Uo as WidgetEvents,ra as WidgetProvider,_r as WidgetWallets,ss as customizedThemeTokens,UX as readAccountAddress,Kt as useStatefulConnect,ht as useWalletList,ri as useWallets,ny as useWidget,ay as useWidgetEvents,pS as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map