@rango-dev/widget-embedded 0.51.1-next.6 → 0.51.1-next.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var kC=Object.defineProperty;var i=(t,e)=>kC(t,"name",{value:e,configurable:!0});import{EventSeverity as Mee,RouteEventType as Pee,StepEventType as _ee,StepExecutionBlockedEventStatus as Dee,StepExecutionEventStatus as $ee}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as Oee}from"@rango-dev/wallets-core/legacy";import{useWallets as Ji,Events as zee}from"@rango-dev/wallets-react";import{Networks as Qee,WalletTypes as qee}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Vee}from"rango-types";import{Divider as QT}from"@rango-dev/ui";import po,{useEffect as qT,useRef as GT,useState as wd}from"react";import{WalletState as TC}from"@rango-dev/ui";import{useWallets as wC}from"@rango-dev/wallets-react";import{useReducer as vC}from"react";function zp(t){return!!t.derivationPath}i(zp,"isStateOnDerivationPathStep");function Hp(t){return!!t.namespace}i(Hp,"isStateOnNamespace");var ti={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Qp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return ti;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:ti;default:throw new Error("Action hasn't been defined.")}}i(Qp,"reducer");function Ro(){let{state:t,disconnect:e,connect:o}=wC(),[n,r]=vC(Qp,ti),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:g})}},"runConnect"),s=i(async(d,f)=>{if(d.state===TC.DISCONNECTED){let g=!!d.isHub,m=g?d.properties?.find(y=>y.name==="namespaces")?.value:d.needsNamespace,S=g?d.properties?.find(y=>y.name==="derivationPath")?.value:d.needsDerivationPath;if(!m?.data?.length)return await a(d.type,void 0,f);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1&&m.data[0]){if(S){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y.value}}),{status:"derivation-path"}}return await a(d.type,m?.data?.map(y=>({namespace:y.value})),f)}}if(d.isHub){let g=d.properties?.find(m=>m.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(d),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(d,f)=>{let h=!!d.isHub,g=h?d.properties?.find(T=>T.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(T=>T.name==="derivationPath")?.value:d.needsDerivationPath,S=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(S&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:y}}),{status:"derivation-path"};if(!Hp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:d,selectedNamespaces:C??null}}),{status:"Detached"}},"handleNamespace"),l=i(async(d,f)=>{if(!f)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!zp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let h=n.derivationPath.providerType,m=[{namespace:n.derivationPath.namespace,derivationPath:f}],y=!!d.isHub?d.properties?.find(C=>C.name==="namespaces")?.value:d.needsNamespace;return y?.data&&y.data.length>1?(r({type:"detached",payload:{targetWallet:d,selectedNamespaces:m??null,derivationPath:f}}),{status:"Detached"}):await a(h,m)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),Ao(p)?(r({type:"needsNamespace",payload:{targetWallet:d}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:d=>{r(d==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Ro,"useStatefulConnect");import{WalletState as As}from"@rango-dev/ui";import{useWallets as Dk}from"@rango-dev/wallets-react";import{detectMobileScreens as $k,KEPLR_COMPATIBLE_WALLETS as Fk,WalletTypes as Rn}from"@rango-dev/wallets-shared";import{useCallback as Ok,useEffect as Uk}from"react";import Nk,{createContext as Bk,useContext as Wk,useEffect as Lk,useRef as Mk}from"react";import{create as Ik}from"zustand";import{persist as Ak}from"zustand/middleware";import{allProviders as xC}from"@rango-dev/provider-all";var is=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()}},en=new is;import{defineVersions as Gp,pickVersion as Vp,Provider as as}from"@rango-dev/wallets-core";function Kp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=ss(a);return s instanceof as?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 as?o.push(Gp().version("1.0.0",n).build()):o.push(Gp().version("0.0.0",n).build())}),o}return t}i(Kp,"matchAndGenerateProviders");function ss(t){try{return Vp(t,"1.0.0")[1]}catch{return Vp(t,"0.0.0")[1]}}i(ss,"pickProviderVersionWithFallbackToLegacy");function jp(t){return t.map(o=>ss(o)).map(o=>o instanceof as?o.id:o.config.type)}i(jp,"configWalletsToWalletName");function oi(t,e){return e.find(o=>o.name===t)?.displayName}i(oi,"getBlockchainDisplayNameFor");function yt(t,e){return e.find(o=>o.name===t)?.shortName}i(yt,"getBlockchainShortNameFor");function Xp(t,e){return e.find(o=>o.name===t)?.logo}i(Xp,"getBlockchainImage");function qn(t,e){return e.find(o=>o.id===t)?.title}i(qn,"getSwapperDisplayName");function No(t,e){return e.find(o=>o.name===t)??null}i(No,"findBlockchain");function ls(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(ls,"isTokenNative");function St(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(St,"createTokenHash");function tn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(tn,"isValidTokenAddress");function Gn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=St(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=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 c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=St(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Gn,"matchTokensFromConfigWithMeta");function ni(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(ni,"getSupportedBlockchainsFromConfig");function Zp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Zp,"makeProvidersOptionsFromConfig");var on={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"}},bC={clientUrl:void 0},EC={liquiditySources:void 0};function Yp(t){let e=Zp(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 xC(o).map(a=>a())}i(Yp,"generateProviders");var Jp=i((t,e,o)=>{let n=Yp({...on,...t});return{config:{...on,...t},iframe:bC,campaignMode:EC,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:c}=o(),l=Gn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Gn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});en.set("supportedSourceTokens",l),en.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=Yp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Zp(a);return Kp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Rp}from"rango-types";var eu=[Rp.EVM,Rp.SOLANA],ri="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as HC}from"rango-sdk";import{UI_ID as IC}from"@rango-dev/ui";var ii="c6381a79-2817-4602-83bf-6a641a409e32",tu="https://api.rango.exchange",ou="https://explorer.rango.exchange",ot={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...IC};import{BlockchainCategories as PC,WalletState as pt}from"@rango-dev/ui";import{legacyReadAccountAddress as _C}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as DC,getCosmosExperimentalChainInfo as $C,isEvmAddress as FC,KEPLR_COMPATIBLE_WALLETS as LW,Networks as vu}from"@rango-dev/wallets-shared";import rn from"bignumber.js";import{isCosmosBlockchain as OC}from"rango-types";import AC from"bignumber.js";var de=new AC(0);import{WalletTypes as NC}from"@rango-dev/wallets-shared";var Bo="~",nu=[NC.LEAP];import{BlockchainCategories as ps,WalletState as MC}from"@rango-dev/ui";import{TransactionType as ai}from"rango-sdk";var ru="Roboto",cs=[{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 nn(t){return Array.from(new Set(t))}i(nn,"removeDuplicateFrom");function si(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(si,"debounce");function ct(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(ct,"containsText");function su(t,e){return t.toLowerCase()===e.toLowerCase()}i(su,"exactText");function lu(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(lu,"startWithText");var B=i(()=>document.getElementById(ot.SWAP_BOX_ID),"getContainer"),Wo=i(()=>document.getElementById(ot.EXPANDED_BOX_ID),"getExpanded");function cu(t,e,o){let n=!!e&&su(e,t),r=!!o&&su(o,t);return n!==r?n?-1:1:0}i(cu,"compareExactMatchText");function us(t,e,o){let n=!!e&&ct(e,t),r=!!o&&ct(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(us,"compareContainsText");function ds(t,e,o){let n=!!e&&lu(e,t),r=!!o&&lu(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ds,"compareStartWithText");function pu(t,e,o){if(!o)return 0;let n=cu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=cu(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ds(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=us(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ds(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=us(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ds(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=us(o,t.address,e.address);if(r!==0)return r}return 0}i(pu,"compareWithSearchFor");var li=i((t,e)=>{switch(e){case ps.ALL:return!0;case ps.UTXO:return t===ai.TRANSFER;case ps.OTHER:return t!==ai.TRANSFER&&t!==ai.COSMOS&&t!==ai.EVM;default:return t===e}},"isBlockchainTypeInCategory"),uu=i(t=>cs.find(o=>o.value===t)?.url,"getFontUrlByName");function du(t,e){let o=!!t.find(n=>n.state===MC.CONNECTED);return e===!1&&o}i(du,"isSingleWalletActive");function mu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(mu,"memoizedResult");import{BigNumber as Tu}from"bignumber.js";function fu(t){return t.replace(/^0+(?=\d)/g,"")}i(fu,"removeLeadingZeros");function gu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(gu,"ensureLeadingZeroForDecimal");function hu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(hu,"formatThousandsWithCommas");function yu(t){return t.replace(/\s+/g,"-")}i(yu,"replaceSpacesWithDash");function Su(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(Su,"stripTrailingZeros");function ci(t){return/^0+(?:\.0+)?$/.test(t)}i(ci,"isZeroValue");function Cu(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Cu,"isValidCurrencyFormat");function ku(t){return/\d+$/.test(t)}i(ku,"isColorKeyOverridden");var Vn=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 Tu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Tu(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 pi=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Pt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Kn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function wu(t){return ci(t)?"0":Su(t)}i(wu,"sanitizeInputAmount");function jn(t,e){return zC(t,e)?pt.PARTIALLY_CONNECTED:e.connected?pt.CONNECTED:e.connecting?pt.CONNECTING:e.installed?pt.DISCONNECTED:pt.NOT_INSTALLED}i(jn,"getWalletConnectionStatus");function xu(t,e,o,n){return o.filter(r=>!nu.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:d,properties:f,isHub:h}=e(r),g=nn(u.map(S=>S.type)),m=jn(e(r),t(r));return{title:a,image:s,link:DC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(xu,"mapWalletTypesToWalletInfo");function Xn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Xn,"walletAndSupportedChainsNames");function fs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=_C(l),d=c.length>0,f=c.includes(u),h=u===vu.Unknown;if(d&&!f&&!h)return;let m=u===vu.Unknown&&FC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(fs,"prepareAccountsForWalletStore");function Lo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let d=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==d||e==="all")&&n.add(d),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Lo,"getQuoteChains");function Yn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Yn,"isAccountAndWalletMatched");var bu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ms(n.usdValue,n.decimals):de.toFixed();return o.plus(r)},new rn(de));return UC(e.toString())},"calculateWalletUsdValue");function UC(t){let e=t.toString().split(".");return e[0]&&(e[0]=hu(e[0])),e.join(".")}i(UC,"numberWithThousandSeparator");var mi=i((t,e)=>{let o=$C(Object.entries(t).map(([,n])=>n).filter(OC));return o&&!!o[e]?.experimental},"isExperimentalChain");function ms(t,e){return new rn(t).shiftedBy(-e).toFixed()}i(ms,"representAmountInNumber");function fi(t){if(!t)return null;let e=ms(t.amount,t.decimals),o=t.usdValue?ms(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(fi,"formatBalance");function Eu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new rn(t.usdValue).shiftedBy(-t.decimals):de,n=e&&e.usdValue?new rn(e.usdValue).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new rn(t.amount).shiftedBy(-t.decimals):de,n=e&&e.amount?new rn(e.amount).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Eu,"compareTokenBalance");function qt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(qt,"areTokensEqual");function Iu(t){return t.sort((e,o)=>+(o.state===pt.CONNECTED)-+(e.state===pt.CONNECTED)||+(o.state===pt.PARTIALLY_CONNECTED)-+(e.state===pt.PARTIALLY_CONNECTED)||+(o.state===pt.DISCONNECTED||o.state===pt.CONNECTING)-+(e.state===pt.DISCONNECTED||e.state===pt.CONNECTING))}i(Iu,"sortWalletsBasedOnConnectionState");function lo(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(lo,"getConciseAddress");function Au({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Au,"getAddress");var Nu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Bu(t){return t.map(e=>e.state).join("-")}i(Bu,"hashWalletsState");function Wu(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(Wu,"filterBlockchainsByWalletTypes");function Lu(t,e){return e===PC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(li(n,e))return!0;return!1})}i(Lu,"filterWalletsByCategory");function zC(t,e){if(!t.isHub||!t.needsNamespace||!e.connected)return!1;let n=t.needsNamespace.data.filter(r=>!r.unsupported);return t.needsNamespace.selection==="multiple"&&n.some(r=>!e.namespaces?.get(r.value)?.connected)}i(zC,"checkIsWalletPartiallyConnected");var gs={API_KEY:ii};function Gt(t){return gs[t]||""}i(Gt,"getConfig");function Mu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),gs=e,gs}i(Mu,"initConfig");var Pu=20,_u=25,hs="theme-widget",ys=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>qt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>qt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),Ss=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Du=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var gi,ut=i(()=>gi||(gi=new HC(Gt("API_KEY"),Gt("BASE_URL")),gi),"httpService");import{i18n as Fu}from"@lingui/core";var hi=[.5,1,3],yi=1,an=5,Zn=30,Si=0;var Re=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Re||{});import{WidgetEvents as $u}from"@rango-dev/queue-manager-rango-preset";var Cs=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Cs||{}),ks=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ks||{}),Ts=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Ts||{}),sn=(a=>(a[a.RouteEvent=$u.RouteEvent]="RouteEvent",a[a.StepEvent=$u.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(sn||{});function Ci(t,e){let o=t.map(a=>a.swapperGroup),n=[];return nn(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(Ci,"getUniqueSwappersGroups");function Ou(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Ou,"sortLiquiditySourcesByGroupTitle");function nt(t,e){return e?.[t]==="hidden"}i(nt,"isFeatureHidden");function ln(t,e){return e?.[t]==="enabled"}i(ln,"isRoutingEnabled");var Uu=i((t,e,o)=>nt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function cn(t){return t==Si?{type:"error",message:Fu.t("Slippage must be greater than or equal to 0.01")}:t>an&&t<=Zn?{type:"warning",message:Fu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(cn,"getSlippageValidation");var zu=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 l=ni({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>eu.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=en.get(u);d?.length||(d=Gn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),en.set(u,d)),d=Uu(d,s,a.features);let f=e().blockchains({type:o.type});return d.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(m=>m.name===g.blockchain)?!1:o.searchFor?!!(ct(g.symbol,o.searchFor)||ct(g.address||"",o.searchFor)||ct(g.name||"",o.searchFor)):!0).sort((g,m)=>{let S=e().isTokenPinned(g,o.type),y=e().isTokenPinned(m,o.type);if(S!==y)return S?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(g),N=o.getBalanceFor(m),x=Eu(A,N);if(x!==0)return x}let C=l.get(g.blockchain),T=l.get(m.blockchain),w=ls(g,C),v=ls(m,T);if(w!==v)return w?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let A=pu(g,m,o.searchFor);if(A)return A}return g.isSecondaryCoin!==m.isSecondaryCoin?g.isSecondaryCoin?1:-1:C&&T?C.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=St(o),s=n.get(a);return s||(s=r.find(c=>St(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>qt(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(Ou)},fetch:async()=>{try{let{routing:o}=e().config,n=ln("enableCentralizedSwappers",o),r=await ut().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(h=>h.enabled),d=new Set;r.tokens.forEach(h=>{d.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&d.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=St(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(g,h),c[h.blockchain]?.push(g)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as QC,Catalonia as qC,Chinese as Hu,Denmark as GC,English as VC,Finland as KC,French as jC,German as XC,Greece as YC,Hungary as ZC,India as JC,Indonesian as RC,Italian as ek,Japanese as tk,Korea as ok,Lithuania as nk,Malay as rk,Netherlands as ik,Pakistan as ak,Philippines as sk,Poland as lk,Portuguese as ck,Russian as pk,SaudiArabia as uk,Serbia as dk,Slovakia as mk,SouthAfrica as fk,Spanish as gk,Swahili as hk,Swedish as yk,Thai as Sk,Turkish as Ck,Ukrainian as kk,Vietnamese as Tk}from"@rango-dev/ui";var Qu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:fk},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:uk},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:QC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:qC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Hu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Hu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:GC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:ik},{title:"English",label:"English",local:"en",SVGFlag:VC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:sk},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:KC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:jC},{title:"German",label:"Deutsch",local:"de",SVGFlag:XC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:YC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:JC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:ZC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:RC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:ek},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:tk},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:ok},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:nk},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:rk},{title:"Polish",label:"Polski",local:"pl",SVGFlag:lk},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:ck},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:pk},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:dk},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:mk},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:gk},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:hk},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:yk},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:Sk},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:Ck},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:kk},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:ak},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:Tk}],pn="en";var qu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:yi,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&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=nn(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=nt("theme",n),s=nt("language",n),c=nt("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||pn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||pn}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=ni({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Is from"bignumber.js";import wk from"mitt";var we=wk(),vk={on:we.on,off:we.off};var Gu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import Vu from"bignumber.js";function Vt(t){return`${t.blockchain}${Bo}${t.address}${Bo}${t.symbol}`}i(Vt,"createAssetKey");function Ku(t,e){return`${Vt(e)}${Bo}${t}`}i(Ku,"createBalanceKey");function Jn(t){let[e,o,n]=t.split(Bo);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Jn,"extractAssetFromBalanceKey");function vs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Vt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Vu(r??de).multipliedBy(o[s].amount).toString():""})})}),o}i(vs,"computeNextBalancesWithNewPrices");function xs(t,e){let o={};return t.balances?.forEach(n=>{let r=Ku(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Vu(c??de).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(xs,"createBalanceStateForNewAccount");function bs(t,e){for(let o in e){let n=Jn(o);if(n){let r=Vt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(bs,"updateAggregatedBalanceStateForNewAccount");function xk(t,e){let o=Jn(e);if(!o)return t;let n=Vt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(xk,"removeBalanceFromAggregatedBalance");function Es(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=Jn(l);if(!p)return;!!n.find(d=>Ku(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=xk(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(Es,"computeNextStateAfterWalletBalanceRemoval");function bk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(bk,"matchWalletDetailsWithConnectedWallet");var Ek=mu(),ju=Gu((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:bk(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,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Yn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(d=>d.walletType===u.walletType&&d.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address]?.push(...a[p.chain]||[]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await ut().getMultipleTokenBalance({assets:p.map(({symbol:d,address:f,blockchain:h})=>({symbol:d,address:f,blockchain:h})),walletAddress:l});if(u){let d=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},m={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};vs(m,g,d);let S=xs(g,e);f=bs(f,S),d={...d,...S}}),t(h=>({_balances:{...h._balances,...d},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{let a=o[0];a&&(we.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=Es(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(we.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(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await ut().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(d=>{if(d.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};vs(f,d,l);let{_balances:h,_aggregatedBalances:g}=Es(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(S=>S.walletType===r&&S.address===d.address&&S.chain===d.blockChain))return;let m=xs(d,e);p=bs(p,m),l={...l,...m}}),t(d=>({_balances:{...d._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let d=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));d.length>0&&await e().fetchMainTokensBalances(d,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Vt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let d=new Is(u.amount),f=new Is(l.amount);d.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Bo);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>Ek(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=Jn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new Is(l.amount).shiftedBy(-l.decimals):de;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:d.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Xu(t){return Ik()(Ak((...e)=>({...ju(...e),...zu(...e),...qu(...e),...Jp(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,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Xu,"createAppStore");var Yu=Bk(null);function k(){let t=Wk(Yu);if(Lk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Zu(t){let e=Mk();return e.current||(e.current=Xu(t.config)),Nk.createElement(Yu.Provider,{value:e.current},t.children)}i(Zu,"AppStoreProvider");import{useWallets as Pk}from"@rango-dev/wallets-react";import{detectMobileScreens as _k}from"@rango-dev/wallets-shared";function un(){let{getWalletInfo:t}=Pk(),{config:e}=k(),o=_k();function n(s){let c=t(s),l=e.deepLinking?.appHost,p=e.deepLinking?.targetUrl;if(!(!l||!p))return c.generateDeepLink?.({appHost:l,targetUrl:p})}i(n,"getWalletDeepLink");function r(s){let c=n(s);return c&&o?c:t(s).installLink}i(r,"getWalletLink");function a(s){return!!n(s)&&o}return i(a,"checkHasDeepLink"),{getWalletDeepLink:n,getWalletLink:r,checkHasDeepLink:a}}i(un,"useDeepLink");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=Dk(),s=k().blockchains(),{handleDisconnect:c}=Ro(),{checkHasDeepLink:l}=un(),p=jp(n()),u=xu(r,a,p,e);u=$k()?u.filter(S=>S.showOnMobile!==!1&&(r(S.type).installed||l(S.type))):u;let d=Iu(u),f=i(S=>!o.find(y=>y.walletType===S&&y.chain===e),"isExperimentalChainNotAdded"),h=Ok(()=>{let S=u?.filter(y=>y.state===As.CONNECTING)||[];for(let y of S)c(y)},[Bu(u)]);Uk(()=>()=>{h()},[]);let g=i(S=>{let y=S.find(T=>T.type===Rn.DEFAULT);return!y||y.state===As.NOT_INSTALLED?!1:S.filter(T=>T.state!=As.NOT_INSTALLED&&![Rn.DEFAULT,Rn.WALLET_CONNECT_2,Rn.LEDGER].includes(T.type)&&a(T.type).supportedChains.filter(w=>w.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((S,y,C)=>mi(C,y)&&f(S)&&!Fk.includes(S)||S==Rn.DEFAULT&&!g(u),"shouldExcludeWallet");return{list:d.filter(S=>!m(S.type,e??"",s)),terminateConnectingWallets:h}}i(vt,"useWalletList");import{Modal as qk}from"@rango-dev/ui";import Gk from"react";import{create as Qk}from"zustand";var Ju="rango-widget";var er=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(Ju),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 Hk=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"),co=Hk;var ne=co(Qk()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Po=new er({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 Gk.createElement(qk,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as fn}from"@lingui/core";import{Alert as iT,Button as aT,Divider as gn,Image as sT,MessageBox as lT,RadioRoot as cT,WalletImageContainer as pT}from"@rango-dev/ui";import ce,{useEffect as uT,useMemo as dT,useState as mT}from"react";import{i18n as Xk}from"@lingui/core";import{Typography as ad}from"@rango-dev/ui";import dn from"react";function ki(t,e){return t.find(o=>o.name===e)?.logo}i(ki,"getBlockchainLogo");import{darkTheme as Vk,Image as Kk,styled as Kt,Typography as jk}from"@rango-dev/ui";var Ti=Kt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${Vk} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),wi=Kt("div",{display:"flex",gap:"$8",alignItems:"center"}),ed=Kt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),td=Kt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),od=Kt("div",{display:"flex",gap:"$6",alignItems:"center"}),nd=Kt("div",{paddingLeft:"48px"}),rd=Kt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),id=Kt(jk,{maxWidth:"100px"}),vi=Kt(Kk,{variants:{disabled:{true:{opacity:"0.5"}}}});function xi(t){let{namespace:e}=t,o=k().blockchains();return dn.createElement(Ti,{unsupported:!0},dn.createElement(wi,null,dn.createElement(vi,{src:ki(o,e.id),size:40,disabled:!0}),dn.createElement(td,null,dn.createElement(ad,{variant:"label",size:"large"},e.label),dn.createElement(ad,{variant:"body",size:"xsmall"},Xk.t("(Currently not supported)")))))}i(xi,"NamespaceUnsupportedItem");import{Checkbox as oT,Radio as nT}from"@rango-dev/ui";import Ls from"react";import{i18n as Ws}from"@lingui/core";import{ChevronDownIcon as Zk,ChevronUpIcon as Jk,Divider as Rk,Typography as tr}from"@rango-dev/ui";import Ne,{useEffect as eT,useState as tT}from"react";import{Image as ld,Tooltip as cd,Typography as Yk}from"@rango-dev/ui";import _t from"react";import{styled as sd}from"@rango-dev/ui";var Ns=sd("div",{display:"flex",alignItems:"center",padding:0,margin:0}),bi=sd("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var Bs=3;function pd(t){let{chains:e}=t;return _t.createElement(Ns,{id:"widget-supported-chains-container"},e.slice(0,Bs).map((o,n)=>_t.createElement(cd,{key:o.name,container:B(),side:"bottom",align:"start",content:o.name,sideOffset:4},_t.createElement(bi,{firstItem:n===0},_t.createElement(ld,{src:o.logo,size:15})))),e.length>Bs&&_t.createElement(cd,{container:B(),side:"bottom",align:"start",sideOffset:4,content:_t.createElement(Ns,null,e.map((o,n)=>_t.createElement(bi,{key:o.name,firstItem:n===0},_t.createElement(ld,{src:o.logo,size:15}))))},_t.createElement(bi,null,_t.createElement(Yk,{variant:"body",size:"xsmall"},"+",e.length-Bs))))}i(pd,"SupportedChainsList");function _o(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=tT(!1),p=k().blockchains();eT(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ne.createElement(Ti,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(wi,null,Ne.createElement(vi,{src:ki(p,e.id),size:40}),Ne.createElement(ed,{showSupportedChains:d||r||!!o},Ne.createElement(od,null,Ne.createElement(tr,{variant:"label",size:"large"},e.label),r&&Ne.createElement(tr,{variant:"body",size:"small",color:"success500"},Ws.t("Connected")),!!o&&Ne.createElement(tr,{variant:"body",size:"small",color:"error500"},Ws.t("Connection failed"))),d&&Ne.createElement(pd,{chains:u}),r&&Ne.createElement(id,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(rd,{onClick:()=>l(f=>!f)},Ne.createElement(tr,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},Ws.t("See why")),c?Ne.createElement(Jk,{size:12,color:"gray"}):Ne.createElement(Zk,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(Rk,{size:4}),Ne.createElement(nd,null,Ne.createElement(tr,{variant:"body",size:"small",color:"neutral700"},o))))}i(_o,"NamespaceItem");function ud(t){let{onClick:e,type:o,namespace:n}=t;return Ls.createElement(_o,{namespace:n,onClick:e,suffix:o==="radio"?Ls.createElement(nT,{value:n.value}):Ls.createElement(oT,{checked:t.value})})}i(ud,"NamespaceListItem");import{Button as rT,styled as dd}from"@rango-dev/ui";var Ei=dd("ul",{padding:0,paddingBottom:"$20",margin:0}),mn=dd(rT,{minHeight:"$40"});function or(t){let{targetWallet:e}=t.value,o=e.properties?.find(m=>m.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=k().blockchains(),[l,p]=mT([]),u=dT(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:S=>S.includes(m)?S.filter(y=>y!==m):S.concat(m))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(m=>m.value))},"onSelectAll"),g=i(m=>r?ce.createElement(cT,{value:l?.[0]},m):ce.createElement(ce.Fragment,null,m),"wrapRadioRoot");return uT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(S=>S.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(m.map(S=>S.value))}else p(u.map(m=>m.value))},[]),ce.createElement(ce.Fragment,null,ce.createElement(lT,{type:"info",title:fn.t("Connect {wallet}",{wallet:e.title}),description:fn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ce.createElement(pT,null,ce.createElement(sT,{src:s,size:45}))}),r?ce.createElement(ce.Fragment,null,ce.createElement(gn,{size:20}),ce.createElement(iT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:fn.t("This wallet can only connect to one chain at a time. ")}),ce.createElement(gn,{size:30})):ce.createElement(ce.Fragment,null,ce.createElement(gn,{size:30}),ce.createElement(aT,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?fn.t("Deselect all"):fn.t("Select all")),ce.createElement(gn,{size:10})),ce.createElement(Ei,null,g(ce.createElement(ce.Fragment,null,a?.data.map((m,S,y)=>ce.createElement(ce.Fragment,{key:m.id},m.unsupported?ce.createElement(xi,{namespace:m}):ce.createElement(ud,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),S!==y.length-1&&ce.createElement(gn,{size:10})))))),ce.createElement(gn,{size:20}),ce.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},fn.t("Connect")))}i(or,"Namespaces");import{i18n as nr}from"@lingui/core";import{Alert as kT,Button as TT,Divider as hn,Image as wT,MessageBox as vT,WalletImageContainer as xT}from"@rango-dev/ui";import{useWallets as bT}from"@rango-dev/wallets-react";import me from"react";import{styled as fT}from"@rango-dev/ui";var md=fT("div",{display:"flex",justifyContent:"end"});import{i18n as Ms}from"@lingui/core";import{Button as gT,Spinner as hT}from"@rango-dev/ui";import Ps,{useLayoutEffect as yT,useRef as ST,useState as CT}from"react";function fd(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=CT(null),p=ST(!1);yT(()=>{o&&!p.current&&u()},[]);let u=i(async g=>{try{p.current=!0,await a(g)}catch(m){l(m)}finally{p.current=!1}},"handleConnectNamespace"),d=i(async()=>{l(null),r.connected?await s():u({shouldAskForDerivationPath:!0})},"handleButtonClick"),f=i(()=>{let g=r.accounts?.[0]?.split(":"),m=g?.[g.length-1];return!r.connected||!m?null:lo(m)},"getConnectedAddress"),h=i(()=>r.connected?Ms.t("Disconnect"):c?Ms.t("Try again"):Ms.t("Connect"),"getButtonText");return Ps.createElement(_o,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?Ps.createElement(hT,{color:"info"}):Ps.createElement(gT,{id:"widget-name-space-connect-btn",variant:"ghost",type:r.connected?"error":"primary",size:"xsmall",onClick:async()=>d(),disabled:n},h())})}i(fd,"NamespaceDetachedItem");function rr(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:r=nr.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s}=t,{targetWallet:c}=e,{connect:l,disconnect:p,state:u}=bT(),d=c.type,f=u(d),h=c.properties?.find(w=>w.name==="namespaces"),g=c.properties?.find(w=>w.name==="derivationPath"),m=h?.value.selection==="single",S=i(async(w,v)=>{m&&await p(d),g&&v?.shouldAskForDerivationPath?s(w):await l(d,[{namespace:w,network:"",derivationPath:v?.derivationPath??void 0}])},"handleConnectNamespace"),y=i(async w=>{await p(d,[w])},"handleDisconnectNamespace"),C=i(()=>m?me.createElement(me.Fragment,null,me.createElement(hn,{size:20}),me.createElement(kT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:nr.t("This wallet can only connect to one chain at a time.")}),me.createElement(hn,{size:30})):me.createElement(me.Fragment,null,me.createElement(hn,{size:30}),me.createElement(md,null,me.createElement(TT,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:f.connecting||!f.connected,onClick:a},nr.t("Disconnect wallet"))),me.createElement(hn,{size:16})),"renderNamespaceListHeader"),T=i(w=>{if(w.unsupported)return me.createElement(xi,{namespace:w});let v=o?.find(x=>x.namespace===w.value),A=f.namespaces?.get(w.value);if(!A)throw new Error(`State for ${w.value} was not found!`);let N=m&&f.connecting;return me.createElement(fd,{namespace:w,initialConnect:!!v,disabled:N,state:A,handleConnect:async x=>S(w.value,{derivationPath:v?.derivationPath,shouldAskForDerivationPath:x?.shouldAskForDerivationPath}),handleDisconnect:async()=>y(w.value)})},"renderNamespaceItem");return me.createElement(me.Fragment,null,me.createElement(vT,{type:"info",title:nr.t("Connect {wallet}",{wallet:c.type}),description:nr.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:me.createElement(xT,null,me.createElement(wT,{src:c.image,size:45}))}),C(),me.createElement(Ei,{id:"widget-detached-namespace-list"},c.needsNamespace?.data.map((w,v,A)=>me.createElement(me.Fragment,{key:w.id},T(w),v!==A.length-1&&me.createElement(hn,{size:10})))),me.createElement(hn,{size:20}),me.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},r))}i(rr,"Detached");import{i18n as yn}from"@lingui/core";import{Divider as NT,Image as BT,MessageBox as WT,Select as LT,TextField as MT}from"@rango-dev/ui";import xt,{useEffect as PT,useState as hd}from"react";import{namespaces as ET}from"@rango-dev/wallets-shared";var Ii={id:"custom",label:"Custom",generateDerivationPath:t=>t};function _s(t){let e=t?ET[t]?.derivationPaths:null;return e?[...e,Ii]:[]}i(_s,"getDerivationPaths");import{Button as IT,styled as Ds,Typography as AT}from"@rango-dev/ui";var gd=Ds("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),$s=Ds(AT,{paddingLeft:"$10"}),Fs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},p_=Ds(IT,{minHeight:"$40"});var yd="0";function ir(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=hd(null),[c,l]=hd(yd),p=a===Ii.id,u=_s(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===Ii.id&&Number.isNaN(Number(c))&&l(yd),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return PT(()=>{s(_s(o)[0]?.id||null)},[o]),xt.createElement(xt.Fragment,null,xt.createElement(WT,{type:"info",title:yn.t("Select Derivation Path"),description:yn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:xt.createElement(BT,{src:n,size:45})}),xt.createElement(gd,{className:"_derivation_path_inputs_container"},xt.createElement($s,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},yn.t("Choose Derivation Path Template")),xt.createElement(LT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Fs}}),xt.createElement(NT,{size:20}),xt.createElement($s,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},p?yn.t("Enter Path"):yn.t("Enter Index")),xt.createElement(MT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Fs})),xt.createElement(mn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},yn.t("Confirm")))}i(ir,"DerivationPath");import{i18n as Sn}from"@lingui/core";import{Image as $T,MessageBox as Us,WalletImageContainer as FT,WalletState as OT}from"@rango-dev/ui";import{useWallets as UT}from"@rango-dev/wallets-react";import Do from"react";import{keyframes as _T,styled as Os}from"@rango-dev/ui";var T_=Os("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Sd=Os("div",{position:"relative"}),DT=_T({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Cd=Os("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${DT} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function zs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a,getWalletInfo:s}=UT();return jn(s(n),a(n))===OT.CONNECTED?Do.createElement(Us,{type:"success",title:Sn.t("Wallet Connected"),description:Sn.t("Your wallet is connected, you can use it to swap.")}):o?Do.createElement(Us,{type:"error",title:Sn.t("Failed to Connect"),description:o||Sn.t("Your wallet is not connected. Please try again.")}):Do.createElement(Us,{type:"loading",title:Sn.t("Connecting to your wallet"),description:Sn.t("Click connect in your wallet popup."),icon:Do.createElement(Sd,null,Do.createElement(FT,null,Do.createElement($T,{src:r,size:45})),Do.createElement(Cd,null))})}i(zs,"ConnectStatus");import{i18n as Hs}from"@lingui/core";import{Button as zT,Divider as kd,MessageBox as HT}from"@rango-dev/ui";import Ai from"react";function Qs(t){let{displayName:e,onConfirm:o,id:n}=t;return Ai.createElement(HT,{id:n,title:Hs.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Hs.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},Ai.createElement(kd,{size:18}),Ai.createElement(kd,{size:32}),Ai.createElement(zT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Hs.t("Confirm")))}i(Qs,"ExperimentalChain");function Td(t,e){return t().status==="init"&&!!e}i(Td,"isOnStatus");function ar(t){return t().status==="namespace"}i(ar,"isOnNamespace");function sr(t){return t().status==="derivationPath"}i(sr,"isOnDerivationPath");function Ao(t){return t().status==="detached"}i(Ao,"isOnDetached");var VT=3e3,KT=300;function lr(t){let e=GT(),[o,n]=wd(!1),[r,a]=wd(),s=i(v=>{a(v.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=Ro(),g=i(v=>{u(t.wallet,v).then(T).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),S=i(v=>{if(!v)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,v).then(T).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((v,A)=>{let N=v.status==="connected",x=["disconnected","disconnected-unhandled"].includes(v.status);N?(t.onConnect?.(),A||(e.current=setTimeout(y,VT))):x&&y()},"afterConnected"),w=i(v=>{t.wallet?.needsDerivationPath&&u(t.wallet,[v])},"handleNavigateToDerivationPath");return qT(()=>{if(t.wallet){C();let v=!1,A=!0;i(()=>{setTimeout(()=>{A=!1,v||n(!0)},KT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(x=>{["namespace","Detached","derivation-path"].includes(x.status)||(v=!0),T(x,A)}).catch(s)}},[t.wallet]),po.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:B()},Td(d,t.wallet)&&po.createElement(po.Fragment,null,po.createElement(zs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),po.createElement(QT,{direction:"vertical",size:32})),ar(d)&&po.createElement(or,{onConfirm:g,value:d().namespace}),sr(d)&&po.createElement(ir,{onConfirm:S,value:d().derivationPath}),Ao(d)&&po.createElement(rr,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces,navigateToDerivationPath:w}))}i(lr,"StatefulConnectModal");import ts from"react";import jT,{Fragment as XT}from"react";import{MemoryRouter as YT,useInRouterContext as ZT}from"react-router";function Ni({children:t}){let o=ZT()?XT:YT;return jT.createElement(o,null,t)}i(Ni,"AppRouter");import{I18nManager as J0}from"@rango-dev/ui";import Dp from"react";import ze from"react";import{useRoutes as B0}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 kn,useRef as Di}from"react";import it from"bignumber.js";import{create as tm}from"zustand";import{subscribeWithSelector as om}from"zustand/middleware";import{createContext as JT,useContext as RT}from"react";var vd=JT({swapMode:"swap",isMultiMode:!1});function rt(){let{swapMode:t,isMultiMode:e}=RT(vd);return{swapMode:t,isMultiMode:e}}i(rt,"useSwapMode");import{i18n as kt}from"@lingui/core";import{getRelatedWalletOrNull as ow,RouteEventType as FD}from"@rango-dev/queue-manager-rango-preset";import qe from"bignumber.js";import{PendingSwapNetworkStatus as pr}from"rango-types";import{i18n as Qe}from"@lingui/core";var re=i(()=>({genericServerError:Qe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Qe.t("Please reset your liquidity sources."),description:Qe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Qe.t("No Routes Found."),description:Qe.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:Qe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Qe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Qe.t("High Price Impact"),title:Qe.t("Price impact is too high!"),description:Qe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Qe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Qe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Qe.t("USD Price Unknown"),title:Qe.t("USD Price Unknown, Cannot calculate Price Impact."),description:Qe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Qe.t("Confirm USD Price Unknown")}}),"errorMessages");function xd(t){return t.type===0?t.diagnosisMessage??re().noResultError.title:t.type===1?t.diagnosisMessage??re().genericServerError:""}i(xd,"getQuoteErrorMessage");import{i18n as Bi}from"@lingui/core";var $o=i(()=>({connectWallet:Bi.t("Connect Wallet"),swap:Bi.t("Swap"),swapAnyway:Bi.t("Swap anyway"),ethWarning:Bi.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function qs(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(qs,"getFeeLabel");var Gs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],bd=100,Ed=30,Id=15,Ad=60;var Nd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Bd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as tw}from"@rango-dev/queue-manager-rango-preset";import xD from"bignumber.js";function Ld(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(Ld,"getRequiredBalanceOfWallet");function Xt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Xt,"getPriceImpactLevel");function Wi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=tw(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=No(a?a.toBlockchain:n.fromBlockchain,e),l=No(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:d}}i(Wi,"createRetryQuote");function Cn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=cr(o),s=Ct(o);if(o&&a&&s){let p=jt(a.toString(),s.toString());if(!!p&&$d(a,p)){let d=Mi(o?.swaps,n),f=Xt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&Ud(e,o))return{type:4,usdValueChange:P(Ct(o)?.minus(Ct(e)??0).toString()??"0",null,2),percentageChange:P(jt(Ct(e)??"1",Ct(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Pi(o.swaps),l=r>an;if(Od(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Fd(o,r),minRequiredSlippage:c};return null}i(Cn,"generateQuoteWarnings");function Md(t){return![4].includes(t.type)}i(Md,"isQuoteWarningConfirmationRequired");function jt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Vs(t.toString(),e.toString());return n&&n<0?n:null}i(jt,"getPriceImpact");var Pd=i(t=>{let e=new Set,o=[];return t.forEach(n=>{e.has(n.from.chain.displayName)||(e.add(n.from.chain.displayName),o.push(n.from.chain)),e.has(n.to.chain.displayName)||(e.add(n.to.chain.displayName),o.push(n.to.chain))}),o},"getUniqueBlockchains"),Li=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),_d=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Dd=i(t=>{let e=i((o,n)=>{let r=Gs.indexOf(o.value),a=Gs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function $d(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Nd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new qe(r)))}i($d,"hasHighValueLoss");function zd(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(zd,"hasLimitError");function Hd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new qe(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new qe(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new qe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new qe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=kt.t({id:"Required: >= {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=kt.t({id:"Required: > {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=kt.t({id:"Required: <= {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=kt.t({id:"Required: < {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Hd,"getLimitErrorMessage");function Qd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:$o().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:$o().swap,action:"confirm-swap",disabled:!0}:s?{title:$o().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:$o().ethWarning,action:"confirm-warning",disabled:!1}:{title:$o().swap,action:"confirm-swap",disabled:!1}:{title:$o().connectWallet,action:"connect-wallet",disabled:!1}}i(Qd,"getSwapButtonState");function Ks(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(de))&&e&&e!=="0"&&n!==0)}i(Ks,"canComputePriceImpact");function js(t,e){let o=de;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||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(js,"getUsdFeeOfStep");function Mi(t,e){return t.reduce((o,n)=>o.plus(js(n,e)),de)}i(Mi,"getTotalFeeInUsd");function Xs(t){let e=de,o=new qe(t.price||0);return e=e.plus(new qe(t.amount).multipliedBy(o)),e}i(Xs,"getUsdFee");function qd(t){return t.reduce((e,o)=>e.plus(Xs(o)),de)}i(qd,"getTotalFeesInUsd");function Gd(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(Gd,"getFeesGroup");function Vd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(Vd,"checkSlippageErrors");function Fd(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?Object.fromEntries(o):null}i(Fd,"checkSlippageWarnings");function Pi(t){return t.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Pi,"getMinRequiredSlippage");function Od(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Od,"hasProperSlippage");function Kd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:d,affiliateWallets:f,destination:h,contractCall:g}=t,m=a?.reduce((C,T)=>(C[T.chain]=T.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:d??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:m??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Kd,"createQuoteRequestBody");function jd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(jd,"getWalletsForNewSwap");function cr(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new qe(e).multipliedBy(o)}i(cr,"getUsdInputFrom");function Ct(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(Ct,"getUsdOutputFrom");function Vs(t,e){return new qe(e).div(new qe(t)).minus(1).multipliedBy(bd).toNumber()}i(Vs,"getPercentageChange");function Ud(t,e){let o=cr(t),n=Ct(t),r=Ct(e);if(!o||!n||!r)return!1;let a=Vs(n.toString(),r.toString());return Bd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Ud,"isOutputAmountChangedExcessively");function Xd(t,e,o){let n=t.validationStatus,r=Lo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Ld(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=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=kt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=kt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=kt.t(" for input and network fee")),kt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:yt(s.asset.blockchain,o)}})})}i(Xd,"generateBalanceWarnings");function ur(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==pr.NetworkChanged}i(ur,"isNetworkStatusInWarningState");function Yd(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),ur(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?ow(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case pr.WaitingForConnectingWallet:r=u?kt.t("Connect {wallet}",{wallet:u}):r;break;case pr.WaitingForQueue:r=r||kt.t("Waiting for other running tasks to be finished");break;case pr.WaitingForNetworkChange:r=r||kt.t("Waiting for changing wallet network");break;case pr.NetworkChangeFailed:r=r||kt.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Yd,"getSwapMessages");function Zd(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(Zd,"getLastConvertedTokenInFailedSwap");function Jd(t){return t.status==="failed"}i(Jd,"shouldRetrySwap");function Rd(t,e,o,n,r,a){if(!n||t)return!0;let s=Lo({filter:"all",quote:n}),c=Lo({filter:"required",quote:n}),l=s.every(d=>r.some(f=>f.chain===d)),p=c.every(d=>r.some(f=>f.chain===d)),u=o&&a?tn(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Rd,"isConfirmSwapDisabled");function em(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(em,"isTokensIdentical");var _i=i((t,e)=>t?.usdPrice?new it(e||de).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),nm=i(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new it(0),outputUsdValue:new it(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=de,a=o.inputUsdValue;return Kn(o.inputAmount)?(e&&(n=e?.outputAmount?new it(e?.outputAmount):null,a=cr(e)??de,r=Ct(e)??de),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new it(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new it(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new it(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:_i(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 it(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=wu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;ci(e)||(o=fu(o),o=gu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new it(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:_i(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:_i(n??null,s),outputUsdValue:new it(0),toBlockchain:r,toToken:a,selectedQuote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:e.toToken?_i(e.toToken,e.outputAmount?.toString()||""):new it(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new it(0),inputUsdValue:new it(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new it(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})}),"initializer"),rm=tm()(om(nm)),im=tm()(om(nm)),nw=co(rm),rw=co(im);function H(){let{swapMode:t}=rt();return co(t==="refuel"?im:rm)}i(H,"useQuoteStore");var am=i((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&we.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&we.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})},"subscribeCallback"),sm=nw.subscribe(am),lm=rw.subscribe(am);function cm(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=H()(),u=k().config,d=k().fetchStatus,f=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:S}=k(),y=u?.from?.tokens,C=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,v=Di(void 0),A=Di(void 0),N=Di(void 0),x=Di(void 0);kn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),kn(()=>{if(d==="success"){r();let b=f.find(I=>I.name===u?.from?.blockchain),E=u?.from?.token,W=E&&h(E);(b||!b&&N.current)&&n(b??null),W?a({token:W,meta:{blockchains:f}}):!W&&v.current&&a({token:null}),N.current=u?.from?.blockchain,v.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),kn(()=>{ys(s,y)&&a({token:null}),Ss(l,C)&&n(null)},[y,C]),kn(()=>{ys(c,T)&&a({token:null}),Ss(p,w)&&o(null)},[T,w]),kn(()=>{if(d==="success"){r();let b=f.find(I=>I.name===u?.to?.blockchain),E=u?.to?.token,W=E&&h(E);(b||!b&&x.current)&&o(b??null),W?e({token:W,meta:{blockchains:f}}):!W&&A.current&&e({token:null}),x.current=u?.to?.blockchain,A.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,d]),kn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(cm,"useSyncStoresWithConfig");import{useEffect as Js,useRef as iw}from"react";import{useInRouterContext as aw,useLocation as sw,useSearchParams as lw}from"react-router-dom";function Ys(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Ys,"convertTokenSearchParamToAsset");function Zs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Zs,"tokenToSearchParam");function el(){let t=sw(),[e,o]=lw(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=H()(),h=k().fetchStatus,g=k().blockchains(),m=aw(),{updateIframe:S,updateCampaignMode:y}=k(),C=k().isInCampaignMode(),T=iw(),{findToken:w}=k(),v=i(()=>{let N={};for(let[L,ee]of e.entries())L.startsWith("utm_")&&(N[L]=ee);let x=e.get("fromAmount"),b=e.get("fromBlockchain"),E=e.get("fromToken"),W=e.get("toBlockchain"),I=e.get("toToken"),_=e.get("autoConnect"),U=e.get("clientUrl"),G=e.get("liquiditySources"),Y=e.get("blockchain");return{fromAmount:x,fromBlockchain:b,fromToken:E,toBlockchain:W,toToken:I,autoConnect:_,clientUrl:U,liquiditySources:G,utmQueryParams:N,blockchain:Y}},"getUrlSearchParams"),A=i(N=>{for(let x in N)N[x]||delete N[x];o(N,{replace:!0})},"updateUrlSearchParams");Js(()=>{let{autoConnect:N,clientUrl:x,utmQueryParams:b,blockchain:E}=v();m&&h==="success"&&A({fromBlockchain:n?.name,fromToken:Zs(a),toBlockchain:r?.name,toToken:Zs(s),fromAmount:c,autoConnect:N??void 0,clientUrl:x??void 0,blockchain:E??void 0,liquiditySources:C?T.current:void 0,...b})},[t.pathname,c,n,a,r,s,C,h]),Js(()=>{if(!m)return;let N=v();if(!T.current&&N.liquiditySources&&(T.current=N.liquiditySources),N.fromAmount&&f(N.fromAmount),h==="success"){let x=g.find(U=>U.name===N.fromBlockchain),b=N.fromToken&&x&&Ys(N.fromToken,x),E=b?w(b):void 0,W=g.find(U=>U.name===N.toBlockchain),I=N.toToken&&W&&Ys(N.toToken,W),_=I?w(I):void 0;x&&(l(x),E&&u({token:E,meta:{blockchains:g}})),W&&(p(W),_&&d({token:_,meta:{blockchains:g}}))}},[h]),Js(()=>{let{clientUrl:N,liquiditySources:x}=v();S("clientUrl",N||void 0),y("liquiditySources",x?.split(",")??void 0)},[])}i(el,"useSyncUrlAndStore");import{i18n as xn}from"@lingui/core";import{Alert as Mv,Button as Pv,darkTheme as _v,Divider as Bl,DoneIcon as Dv,styled as $v,TextField as Fv,Typography as Ov}from"@rango-dev/ui";import Ve,{useState as Uv}from"react";import{useNavigate as zv,useSearchParams as Hv}from"react-router-dom";import{ChevronRightIcon as cw,Divider as fm,Image as pw,Typography as gm}from"@rango-dev/ui";import bt from"react";import{darkTheme as pm,styled as tl}from"@rango-dev/ui";var um=tl("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${pm} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${pm} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),dm=tl("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),mm=tl("div",{display:"flex"});function ol(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return bt.createElement(dm,null,bt.createElement(gm,{size:"large",variant:"label"},n),bt.createElement(fm,{size:10}),bt.createElement(um,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},bt.createElement(mm,null,r&&bt.createElement(bt.Fragment,null,bt.createElement(pw,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),bt.createElement(fm,{size:4,direction:"horizontal"})),bt.createElement(gm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),bt.createElement(cw,{size:12,color:"black"})))}i(ol,"BlockchainSelectorButton");import{i18n as al}from"@lingui/core";import{Button as Sw,Divider as Tm,MessageBox as Cw}from"@rango-dev/ui";import uo,{useEffect as wm,useState as sl}from"react";import{i18n as $i}from"@lingui/core";import{Divider as Fo,ExternalLinkIcon as mw,Image as fw,InfoIcon as gw,Tooltip as hw,Typography as mr}from"@rango-dev/ui";import fe from"react";var hm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function ym(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(ym,"generateExplorerLink");import{Button as uw,darkTheme as Tn,styled as dr,Typography as dw}from"@rango-dev/ui";var nl=dr("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Tn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Tn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),Sm=dr("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Tn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"}}}),rl=dr(uw,{minHeight:"$40"}),Cm=dr(dw,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),km=dr("div",{display:"flex",justifyContent:"center",alignItems:"center"});var yw=9;function il(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=ym(n.address,s),l=i(()=>window.open(hm,"_blank"),"onClickLearnMore");return fe.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:B()},fe.createElement(Sm,null,fe.createElement(fw,{src:n.image===""?ri:n.image,size:45,type:"circular"}),fe.createElement(Fo,{size:4}),fe.createElement(km,null,fe.createElement(Cm,{variant:"title",size:"medium"},n.symbol),n.symbol.length>yw&&fe.createElement(hw,{content:n.symbol,container:B()},fe.createElement(gw,{size:12,color:"gray"}))),fe.createElement(mr,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),fe.createElement(Fo,{size:4}),fe.createElement(mr,{variant:"body",size:"medium"},c?fe.createElement(nl,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,fe.createElement(mw,{size:12,color:"gray"})):fe.createElement(nl,null,n.address)),fe.createElement(Fo,{size:4}),n.coinSource&&fe.createElement(mr,{className:"_coin-source",variant:"body",size:"xsmall"},$i.t("via")," ",fe.createElement(mr,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),fe.createElement(Fo,{size:"32"}),fe.createElement(mr,{size:"medium",variant:"body",className:"_custom-token-description"},$i.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."))),fe.createElement(Fo,{size:40}),fe.createElement(Fo,{size:10}),fe.createElement(rl,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},$i.t("Import Anyway")),fe.createElement(Fo,{size:10}),fe.createElement(rl,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},$i.t("Learn More")))}i(il,"CustomTokenModal");function fr(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[d,f]=sl(!1),[h,g]=sl(!1),[m,S]=sl(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),T=i(()=>{S(!0),C()},"handleErrorModalButtonClick"),w=i(()=>{m&&n?.type==="network-error"&&(S(!1),y()),l()},"handleExit"),v=i(()=>{e&&(u(e),c())},"handleSubmit");return wm(()=>{n&&f(!0)},[n]),wm(()=>{o&&e&&g(!0)},[o,e]),uo.createElement(uo.Fragment,null,uo.createElement(R,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:w,container:B()},uo.createElement(Cw,{title:n?.title??"",type:"error",description:n?.message||al.t("Failed Network, Please retry.")},uo.createElement(Tm,{size:40}),uo.createElement(Tm,{size:10}),uo.createElement(Sw,{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"?al.t("Retry"):al.t("Add another custom token")))),o&&e&&uo.createElement(il,{blockchain:o,token:e,onSubmitClick:v,onClose:()=>g(!1),open:h,onExit:p}))}i(fr,"ImportCustomToken");import{useManager as Iv}from"@rango-dev/queue-manager-react";import{BottomLogo as Av,Divider as tf,Header as Nv}from"@rango-dev/ui";import We,{useEffect as Vi,useLayoutEffect as Bv,useRef as of,useState as nf}from"react";import{useRef as kw}from"react";function gr(){return window.self!==window.top}i(gr,"isAppLoadedIntoIframe");function ll(){let t=kw(null),{iframe:e}=k(),o=gr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(ll,"useIframe");import{useNavigate as Tw}from"react-router-dom";function Ge(){let t=Tw();return()=>t(-1)}i(Ge,"useNavigateBack");import{useLayoutEffect as ww,useState as hr}from"react";var vm=480,xm=768,bm=1024,Em=1200,vw=i(()=>{let[t,e]=hr(!1),[o,n]=hr(!1),[r,a]=hr(!1),[s,c]=hr(!1),[l,p]=hr(!1),u=i(()=>{e(window.innerWidth<=vm),n(window.innerWidth>vm&&window.innerWidth<=xm),a(window.innerWidth>xm&&window.innerWidth<=bm),c(window.innerWidth>bm&&window.innerWidth<=Em),p(window.innerWidth>Em)},"handleResize");return ww(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),wn=vw;import{createTheme as gl,darkTheme as Dw,lightTheme as $w}from"@rango-dev/ui";import{useEffect as Fw,useState as Ow}from"react";import{theme as Pw,darkColors as _w}from"@rango-dev/ui";import ml from"react";var Fi=16,Oi=255,Im=.11;function xw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(xw,"expandShortHexColor");function bw(t,e){return t.padStart(e,"0")}i(bw,"pad");function cl(t){let e=Math.min(Math.max(Math.round(t),0),Oi);return bw(e.toString(Fi),2)}i(cl,"intToHex");function Ew(t){return`#${cl(t.red)}${cl(t.green)}${cl(t.blue)}`}i(Ew,"rgbToHex");function Iw(t){let e=parseInt(t.slice(1,3),Fi),o=parseInt(t.slice(3,5),Fi),n=parseInt(t.slice(5,7),Fi);return{red:e,green:o,blue:n}}i(Iw,"hexToRGB");function Aw(t,e){let o=1-Im*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(Aw,"generateShade");function Nw(t,e){let o=Im*e;return{red:t.red+(Oi-t.red)*o,green:t.green+(Oi-t.green)*o,blue:t.blue+(Oi-t.blue)*o}}i(Nw,"generateTint");function Bw(t){return Am(t,Aw)}i(Bw,"calculateShades");function Ww(t){return Am(t,Nw)}i(Ww,"calculateTints");function Am(t,e){let o=Iw(t),n=[];for(let r=1;r<9;r++)n.push(Ew(e(o,r)));return n}i(Am,"calculateColors");function pl(t,e,o){let a=Ww(t).reverse().concat(t),s=Bw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let d=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${d}`]=f)}return l}i(pl,"createTintsAndShades");function ul(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)&&!ku(r)){let l=xw(a);Object.assign(n,pl(l,r,s))}}return{...n,...e}}i(ul,"expandToGenerateThemeColors");var Nm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Lw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Nm(o%52)+e;return Nm(o%52)+e},"toAlphabeticName"),Mw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),dl=i(t=>Lw(Mw(5381,JSON.stringify(t))>>>0),"toHash");function fl(t){let e=Pw.colors,o={...e,..._w},n,r;if(t?.light){let s={colors:ul(e,t.light)};n={id:`${hs}-light-${dl(s)}`,tokens:s}}if(t?.dark){let s={colors:ul(o,t.dark,{reverseNeutralRange:!0})};r={id:`${hs}-dark-${dl(s)}`,tokens:s}}return{light:n,dark:r}}i(fl,"customizedThemeTokens");function Bm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ml.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ml.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(ml.cloneElement(e,{key:c}))}}),o}i(Bm,"joinList");function Wm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Wm,"doesWindowPreferDarkColorScheme");function mo(t){let{colors:e,fontFamily:o=ru,borderRadius:n=Pu,secondaryBorderRadius:r=_u}=t,[a,s]=Ow(Wm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=fl(e),u=gl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,$w.className],f=[u.className,Dw.className];if(p){let g=gl(p.id,p.tokens);d.push(g.className)}if(l){let g=gl(l.id,l.tokens);f.push(g.className)}return Fw(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return Wm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=d.join(" "),m=f.join(" ");return c==="auto"?a==="dark"?m:g:c==="dark"?m:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(mo,"useTheme");var Tt=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 Lm}from"@lingui/core";import{Alert as Uw,Button as zw}from"@rango-dev/ui";import Mm from"react";function hl(t){return Mm.createElement(Uw,{action:Mm.createElement(zw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Lm.t("Activate this tab")),type:"warning",variant:"alarm",title:Lm.t("Another tab is open and handles transactions.")})}i(hl,"ActivateTabAlert");import{i18n as yl}from"@lingui/core";import{Button as Hw,Divider as Qw,MessageBox as qw}from"@rango-dev/ui";import Ui from"react";function Sl(t){let{open:e,onClose:o,onConfirm:n}=t;return Ui.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:B()},Ui.createElement(qw,{title:yl.t("Activate current tab"),type:"warning",description:yl.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.")},Ui.createElement(Qw,{size:20}),Ui.createElement(Hw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},yl.t("Confirm"))))}i(Sl,"ActivateTabModal");import{ChevronLeftIcon as Kw}from"@rango-dev/ui";import zm from"react";import{css as Gw,darkTheme as Pm,IconButton as Vw,styled as Oo}from"@rango-dev/ui";var Dt=Oo(Vw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Pm} &`]:{backgroundColor:"$neutral"}}}),_m=Oo("div",{position:"absolute",background:"$secondary500",[`.${Pm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),fo=Oo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),Dm=Oo("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"}}}}),$m=Oo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Fm=Oo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Om=Gw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Um=Oo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Cl(t){return zm.createElement(Dt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},zm.createElement(Kw,{color:"black",size:16}))}i(Cl,"BackButton");import{i18n as jw}from"@lingui/core";import{Button as Xw,Typography as Yw}from"@rango-dev/ui";import kl from"react";function Tl(t){return kl.createElement(fo,null,kl.createElement(Xw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},kl.createElement(Yw,{variant:"label",size:"medium",color:"error500"},jw.t("Cancel"))))}i(Tl,"CancelButton");import{i18n as Zw}from"@lingui/core";import{Image as Jw,Tooltip as Rw,WalletIcon as ev,WalletState as Hm}from"@rango-dev/ui";import Uo from"react";function wl(t){let{list:e}=vt(),o=e.filter(r=>r.state===Hm.CONNECTED||r.state===Hm.PARTIALLY_CONNECTED),n=o.length?Uo.createElement("div",{className:Om()},o.map(r=>Uo.createElement(Um,{key:r.title},Uo.createElement(Jw,{src:r.image,size:14})))):Zw.t("Connect Wallet");return Uo.createElement(Rw,{container:t.container,side:"bottom",content:n},Uo.createElement(Dt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Uo.createElement(_m,null),Uo.createElement(ev,{size:18,color:"black"})))}i(wl,"WalletButton");import{i18n as Hi}from"@lingui/core";import{NotificationsIcon as hv,Popover as yv,SettingsIcon as Sv,Tooltip as Qi,TransactionIcon as Cv}from"@rango-dev/ui";import Pe from"react";import{Notifications as rv}from"@rango-dev/ui";import iv from"react";import{useNavigate as av}from"react-router-dom";import{create as tv}from"zustand";import{persist as ov,subscribeWithSelector as nv}from"zustand/middleware";var Be=co(tv()(ov(nv((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let 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}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,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(l=>l.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 vl(){let t=av(),{getNotifications:e,clearNotifications:o}=Be(),n=e(),r=k().blockchains(),{findToken:a}=k();return iv.createElement(rv,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Xp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(vl,"NotificationContent");import{useManager as sv}from"@rango-dev/queue-manager-react";import{InProgressIcon as lv}from"@rango-dev/ui";import Qm from"react";var cv=i(()=>{let{manager:t}=sv();return Tt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Qm.createElement(Fm,{id:"widget-header-history-badge-container"},Qm.createElement(lv,{color:"info",size:6})):null},"InProgressTransactionBadge"),qm=cv;import{EventSeverity as pv}from"@rango-dev/queue-manager-rango-preset";import{Typography as uv}from"@rango-dev/ui";import Gm from"react";function Vm(){let{getNotifications:t}=Be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===pv.WARNING);return o?Gm.createElement(Dm,{isSever:n},Gm.createElement(uv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Vm,"NotificationsBadge");import{RefreshProgressButton as dv}from"@rango-dev/ui";import xl,{useEffect as mv,useState as Km}from"react";var fv=1e3,jm=60,gv=100;function zi({onClick:t}){let[e,o]=Km(0),[n,r]=Km(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");mv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===jm&&c()},fv):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return xl.createElement(Dt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},xl.createElement($m,{onTransitionEnd:()=>r(!1),isRefetched:n},xl.createElement(dv,{size:22,color:t?"black":"gray",progress:e/jm*gv})))}i(zi,"RefreshButton");function zo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=nt("notification",s)||r.includes("notifications");return Pe.createElement(Pe.Fragment,null,!r.includes("refresh")&&Pe.createElement(Qi,{container:a||B(),side:"top",content:Hi.t("Refresh")},Pe.createElement(zi,{onClick:e})),!c&&Pe.createElement(yv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Pe.createElement(vl,null)},Pe.createElement("div",null,Pe.createElement(Qi,{container:B(),side:"top",content:Hi.t("Notifications")},Pe.createElement(Dt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Pe.createElement(hv,{size:18,color:"black"}),Pe.createElement(Vm,null))))),!r.includes("settings")&&Pe.createElement(Qi,{container:B(),side:"top",content:Hi.t("Settings")},Pe.createElement(Dt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Pe.createElement(Sv,{size:18,color:"black"}))),!r.includes("history")&&Pe.createElement(Qi,{container:B(),side:"top",content:Hi.t("History")},Pe.createElement(Dt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Pe.createElement(Cv,{size:18,color:"black"}),Pe.createElement(qm,null))))}i(zo,"HeaderButtons");import{i18n as bl}from"@lingui/core";import{Divider as Ym,MessageBox as wv,RefreshIcon as vv}from"@rango-dev/ui";import vn from"react";import{Button as kv,styled as Tv}from"@rango-dev/ui";var Xm=Tv(kv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function El(t){let{open:e,onClose:o}=t;return vn.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:B()},vn.createElement(wv,{title:bl.t("Something went wrong"),type:"error",description:bl.t("Something went wrong. Please refresh the app.")},vn.createElement(Ym,{size:30}),vn.createElement(Xm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},vn.createElement(vv,{size:20,color:"primary"}),vn.createElement(Ym,{size:4,direction:"horizontal"}),bl.t("Refresh"))))}i(El,"RefreshModal");function Il(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(Il,"onScrollContentAttachStatusToContainer");import{css as bv,styled as qi}from"@rango-dev/ui";var Gi=bv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Zm=qi("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Jm=qi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Rm=qi("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"}}}),ef=qi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ae(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=ll(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,d]=nf(!1),{config:{features:f,theme:h}}=k(),{watermark:g,setShowCompactTokenSelector:m}=ne(),S=g==="FULL",{activeTheme:y}=mo(h||{}),[C,T]=nf(!1),w=nt("connectWalletButton",f),{isActiveTab:v,tabManagerInitiated:A,showActivateTabModal:N,setShowActivateTabModal:x,activateCurrentTab:b}=ne(),E=Ge(),{manager:W}=Iv(),{isTablet:I,isMobile:_}=wn(),G=Tt(W).map(({swap:se})=>se).some(se=>se.status==="running"),Y=i(()=>b(Po.forceClaim,G),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),ee=typeof r.hasBackButton>"u"||r.hasBackButton,J=of(null),te=of(null);return Vi(()=>{let se=(p?.swapBoxBanner?.routes?.length??0)===0,je=!!p?.swapBoxBanner?.routes?.some(le=>location.pathname.endsWith(le));T(!!p?.swapBoxBanner&&(se||je))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Vi(()=>(gr()&&te.current&&e(te.current),()=>{o()}),[]),Vi(()=>(J.current?.addEventListener("scroll",Il),()=>{J.current?.removeEventListener("scroll",Il)}),[]),Vi(()=>{d(c==="failed")},[c]),Bv(()=>{let se=s==="auto"||!te.current||gr(),je=_||I,le=i(()=>{se||(je?te.current.style.height=`${window.innerHeight-te.current.offsetTop}px`:te.current.style.height=`${700}px`,m(parseFloat(te.current.style.height)<640))},"handler");return le(),window.addEventListener("resize",le),()=>window.removeEventListener("resize",le)},[s,_,I]),We.createElement(Zm,{height:s,id:ot.SWAP_BOX_ID,className:`${y()} ${Gi()}`,ref:te,showBanner:C},We.createElement(Nv,{prefix:ee?We.createElement(Cl,{onClick:()=>{E(),r.onBack?.()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!w&&We.createElement(wl,{container:B(),onClick:L,isConnected:!!l?.length}),r.onCancel&&We.createElement(Tl,{onClick:r.onCancel}))}),We.createElement(Jm,{ref:J},n),We.createElement(Sl,{open:N,onClose:()=>x(!1),onConfirm:Y}),We.createElement(Rm,null,We.createElement("div",{className:"footer__content"},A&&!v&&We.createElement("div",{className:"footer__alert"},We.createElement(hl,{onActivateTab:Y}),We.createElement(tf,{size:10})),a),We.createElement(tf,{size:12}),We.createElement("div",{className:`footer__logo ${S?"logo__show":"logo__hidden"}`},We.createElement(Av,null))),C&&We.createElement(ef,null,p?.swapBoxBanner?.element),We.createElement(El,{open:u,onClose:()=>d(!1)}))}i(ae,"Layout");import{styled as Wv}from"@rango-dev/ui";var rf="$20 $20 $10 $20",Al=Wv("div",{padding:rf,overflowY:"auto",flexGrow:1});import{styled as Lv}from"@rango-dev/ui";var ue=Lv("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 go}from"@lingui/core";import{useState as Nl}from"react";function af(){let[t,e]=Nl(!1),[o,n]=Nl(null),[r,a]=Nl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:go.t("Duplicate Token"),message:go.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:go.t("Token Already Exists"),message:go.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:d,title:go.t("Token Not Found"),message:go.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:f}})};case"network-error":return{type:d,title:go.t("Network error"),message:go.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:d,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await ut().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let y=p("not-found",d);n(y);return}let m=g.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let y=p("token-exist");n(y);return}return a({...m,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",d);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(af,"useFetchCustomToken");var Qv=$v("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${_v} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function sf(){let t=zv(),[e]=Hv(),o=Ge(),n=k().blockchains(),r=e.get("blockchain")||"",a=No(r,n),[s,c]=Uv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=af(),h=!!a&&tn(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ve.createElement(ae,{header:{title:xn.t("Add Custom Token")}},Ve.createElement(ue,null,Ve.createElement(Qv,null,Ve.createElement("div",null,Ve.createElement(ol,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:xn.t("Select chain"),placeholder:xn.t("Select chain")}),Ve.createElement(Bl,{size:"24"}),Ve.createElement(Ov,{size:"large",variant:"label"},xn.t("Enter Address")),Ve.createElement(Bl,{size:10}),Ve.createElement(Fv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:xn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ve.createElement(Dv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&Ve.createElement(Ve.Fragment,null,Ve.createElement(Bl,{size:4}),Ve.createElement(Mv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ve.createElement(Pv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},xn.t("Import"))),Ve.createElement(fr,{token:p,blockchain:a??void 0,address:s,error:d??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{d?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(sf,"AddCustomTokenPage");import{i18n as uc}from"@lingui/core";import{useManager as Bb}from"@rango-dev/queue-manager-react";import{Alert as Wb,Button as Lb,css as mc,Divider as dc,IconButton as Xg,styled as Mb,Typography as Pb,WalletIcon as _b}from"@rango-dev/ui";import $e,{useEffect as Ca,useLayoutEffect as Db,useRef as $b,useState as Ar}from"react";import{useNavigate as Fb}from"react-router-dom";import{i18n as Ho}from"@lingui/core";import{Alert as gx,BalanceErrors as hx,Button as Mf,ChevronLeftIcon as yx,Divider as Fl,MessageBox as Sx,Typography as Ol}from"@rango-dev/ui";import ie,{useCallback as Cx,useEffect as Pf,useMemo as kx,useState as An}from"react";import{useNavigate as Tx}from"react-router-dom";import{i18n as Pl}from"@lingui/core";import{Alert as jv,ChevronDownIcon as Xv,CloseIcon as Yv,Divider as ff,IconButton as gf,PasteIcon as Zv,Typography as Jv,WalletIcon as Rv}from"@rango-dev/ui";import _e,{useEffect as ex,useRef as tx}from"react";import Yi,{useRef as Vv}from"react";import*as bn from"@radix-ui/react-collapsible";import{keyframes as lf,styled as Ki}from"@rango-dev/ui";var Wl=300,qv=lf({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Gv=lf({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),cf=Ki(bn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Ll=Ki(bn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),ji=Ki(bn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${qv} ${Wl}ms ease-out`},false:{animation:`${Gv} ${Wl}ms ease-out`}}}}),Xi=Ki("div",{transition:`all ${Wl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Zi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Vv(null);return Yi.createElement(cf,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Yi.createElement(Ll,{className:"collapsible_trigger",onClick:a},s),Yi.createElement(ji,{className:"collapsible_content",open:e},r),c==="bottom"&&Yi.createElement(Ll,{className:"collapsible_trigger",onClick:a},s))}i(Zi,"CustomCollapsible");import{darkTheme as pf,styled as Ml,TextField as Kv}from"@rango-dev/ui";var uf=Ml("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),df=Ml(Kv,{backgroundColor:"$neutral100"}),mf=Ml("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${pf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${pf} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function hf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=H()(),{config:s}=k(),c=k().blockchains(),l=oi(e.name,c),p=tx(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!tn(e,r),g=i(()=>{a("")},"handleClear"),m=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),S=i(()=>r?_e.createElement(gf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},_e.createElement(Yv,{size:12,color:"gray"})):d?null:_e.createElement(gf,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},_e.createElement(Zv,{size:16})),"renderSuffix");return ex(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),_e.createElement(uf,null,_e.createElement(Zi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:_e.createElement(mf,{id:"widget-custom-destination-collapsible-btn"},_e.createElement("div",{className:"button__content"},_e.createElement(Rv,{size:18,color:"info"}),_e.createElement(ff,{size:4,direction:"horizontal"}),_e.createElement(Jv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Pl.t("Send to a different address"))),_e.createElement(Xi,{orientation:n?"up":"down"},_e.createElement(Xv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},_e.createElement(df,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Pl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let C=y.target.value;a(C)}})),h&&_e.createElement(_e.Fragment,null,_e.createElement(ff,{size:4}),_e.createElement(jv,{variant:"alarm",type:"error",title:Pl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(hf,"CustomDestination");import{css as ox,IconButton as nx,SelectableWalletButton as rx,styled as ho}from"@rango-dev/ui";var yf=ho("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Sf=ho("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Cf=ho(rx,{justifyContent:"center"}),kf=ho("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Tf=ho(nx,{position:"absolute",left:"$20"}),wf=ho("div",{paddingTop:"$20"}),vf=ox({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),xf=ho("div",{display:"flex"}),bf=ho("div",{overflow:"visible",width:"100%"});import{i18n as Dl}from"@lingui/core";import{warn as cx}from"@rango-dev/logging-core";import{Divider as px,makeInfo as ux,SelectableWallet as dx,Typography as Wf,WalletState as In}from"@rango-dev/ui";import at,{useEffect as Lf,useState as Cr}from"react";import{Image as sx,MessageBox as lx}from"@rango-dev/ui";import Sr from"react";import{keyframes as ix,styled as _l}from"@rango-dev/ui";var Ef=_l("div",{position:"relative"}),ax=ix({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),If=_l("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ax} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Af=_l("div",{"& img":{borderRadius:"50%"}});import{i18n as En}from"@lingui/core";function Nf(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(Nf,"generateMessageByStatus");function Bf(t){let{status:e,displayName:o,image:n}=t,r=Nf(e,o),a=e=="in-progress";return Sr.createElement(lx,{type:r.type,title:r.title,description:r.description,icon:a?Sr.createElement(Ef,null,Sr.createElement(Af,null,Sr.createElement(sx,{src:n,size:45})),Sr.createElement(If,null)):void 0})}i(Bf,"ExperimentalChainStatus");var mx=7,fx=3e3;function $l(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=ne.use.isActiveTab(),{checkHasDeepLink:l,getWalletLink:p}=un(),{blockchains:u,connectedWallets:d}=k(),[f,h]=Cr(),[g,m]=Cr(null),[S,y]=Cr(!1),[C,T]=Cr(null),{suggestAndConnect:w}=Ji(),{list:v}=vt({chain:e}),[A,N]=Cr(v),x=v.length,b=a&&x-a>0,E=i(async I=>{y(!1),T("in-progress");try{await w(I.walletType,I.chain),T("completed")}catch{T("rejected")}},"addExperimentalChain");Lf(()=>{N(I=>{let _=v.findIndex(U=>n(U.type,e));return b&&_>1?[v[_]].concat(v.filter((U,G)=>G!==_)):I.map(U=>v.find(G=>G.type===U.type)??U)})},[JSON.stringify(v)]);let W=document.getElementById(ot.SWAP_BOX_ID);return Lf(()=>{let I=null;return(C==="completed"||C==="rejected")&&(I=setTimeout(()=>T(null),fx)),()=>{I&&clearTimeout(I)}},[C]),at.createElement(at.Fragment,null,A.slice(0,a).map(I=>{let _=Au({connectedWallets:d,walletType:I.type,chain:e}),U=I.state===In.CONNECTED||I.state===In.PARTIALLY_CONNECTED,G=_?lo(_,mx):"",Y=U&&!!I.needsNamespace&&!G,L=mi(u(),e),ee=!d.find(He=>He.walletType===I.type&&He.chain===e),J=L&&ee&&I.state===In.CONNECTED,te=i(async()=>{I.state===In.DISCONNECTED||Y?h(I):J?(m({walletType:I.type,chain:e,address:_??""}),y(!0)):r({walletType:I.type,chain:e,address:_??""})},"onSelectableWalletClick"),se=ux(I.state,{hasDeepLink:l(I.type)}),je=i(()=>J?Dl.t({id:"Add {chain} chain",values:{chain:e}}):Y?Dl.t("Chain not connected"):G||se.description,"getWalletDescription"),le=i(()=>I.state===In.CONNECTED||I.state===In.PARTIALLY_CONNECTED?Y?"neutral600":"neutral700":se.color,"getWalletDescriptionColor"),Xe=g?.chain?oi(g.chain,u()):void 0;return at.createElement(at.Fragment,{key:`${I.title}_${Xe}`},!!g&&at.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!g&&S,container:W,onClose:()=>{m(null)}},at.createElement(Qs,{id:"widget-wallets-list-experimental-chain-container",displayName:Xe,onConfirm:()=>{E(g)}})),C&&at.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!C,onClose:T.bind(null,null),container:W},at.createElement(Bf,{status:C,displayName:Xe,image:I.image}),at.createElement(px,{direction:"vertical",size:32})),at.createElement(dx,{hasDeepLink:l(I.type),key:I.type,id:"widget-wallets-list-selectable-wallet-btn",description:je(),descriptionColor:le(),onClick:te,selected:n(I.type,e),disabled:!c,...I,link:p(I.type)}))}),at.createElement(lr,{id:"widget-wallets-list-stateful-connect-modal",wallet:f,options:{defaultSelectedChains:o||[e]},onClose:()=>{h(void 0)},onConnect:()=>{t.onConnect&&(f?.type?t.onConnect(f.type):cx(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),b&&at.createElement(Cf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},at.createElement(Wf,{variant:"label",size:"medium"},Dl.t("Show more wallets"),at.createElement(Wf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",x-(a??0)))))}i($l,"WalletList");var wx=2;function _f(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Tx(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=H()(),{config:g,connectedWallets:m,setWalletsAsSelected:S}=k(),[y,C]=An(""),[T,w]=An([]),[v,A]=An(""),[N,x]=An(!!f),b=kx(()=>Lo({filter:"all",quote:l}),[l]),E=Lo({filter:"required",quote:l}),W=c.find($=>$.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),I=i($=>E.includes($),"isWalletRequiredFor"),_=Cx(()=>m.filter($=>$.selected&&b.includes($.chain)),[m,b]),[U,G]=An(_()),[Y,L]=An([]),ee=i(($,z)=>L(V=>V.concat({blockchain:$,walletType:z})),"addNextSelectedWallets"),J=T.length>0,te=i(($,z)=>!!U.find(V=>V.walletType===$&&V.chain===z&&V.selected&&(I(z)||!I(z)&&!f)),"isSelected"),se=i(($,z,V)=>{let pe=!1;return $.map(Q=>{if(Q.chain===z){let X=Q.selected;return!pe&&V?(pe=!0,X=!0):V||(X=!1),{...Q,selected:X}}return Q})},"updateSelectableWallets"),je=i($=>{x($),$?I(W?.name??"")||G(z=>se(z,W?.name||"",!1)):(h(""),G(z=>se(z,W?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),le=i($=>{if(y&&C(""),te($.walletType,$.chain))return;let V=m.find(pe=>pe.walletType===$.walletType&&pe.chain===$.chain);V&&(n(),$.chain===W?.name&&N&&!I(W.name)&&(x(!1),h(null)),G(pe=>pe.filter(Q=>Q.chain!==$.chain).concat({...V,selected:!0})))},"onChange"),Xe=i(()=>{let $=U.filter(z=>z.selected);S($),p($),d(!0),o()},"onConfirmBalance"),He=i(async()=>{w([]),A("");let $=await r?.({selectedWallets:U.filter(V=>V.selected),customDestination:f}),z=$.warnings;z?.balance?.messages&&w(z.balance.messages),$.error&&A(xd($.error)),!$.error&&!z?.balance?.messages.length?Xe():w(z?.balance?.messages??[])},"onConfirmWallets");Pf(()=>{G($=>{let z=[];return $.forEach(V=>{!m.some(Q=>Q.chain===V.chain&&Q.walletType===V.walletType&&Q.address===V.address)||z.push(V)}),z=z.concat(m.filter(V=>!!!z.find(Q=>Q.chain===V.chain)&&V.selected&&b.includes(V.chain))),z})},[m,b]),Pf(()=>{let $=[];Y.length>0&&(Y.forEach(z=>{let V=m.find(pe=>pe.chain===z.blockchain&&pe.walletType===z.walletType);V?le(V):$.push(z)}),L($))},[m,Y]);let Wt=document.getElementById(ot.SWAP_BOX_ID);return ie.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Wt,...!y&&{styles:{container:{height:"100%"}},footer:ie.createElement(xf,null,ie.createElement(Mf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Rd(a,N,f,l,U,W),onClick:He,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Ho.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:ie.createElement(kf,null,ie.createElement(Tf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ie.createElement(yx,{size:16})),ie.createElement(Ol,{variant:"headline",size:"small"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:yt(y,c)}})))},anchor:"center"},ie.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:J,onClose:w.bind(null,[]),container:Wt},ie.createElement(Sx,{title:Ho.t("Insufficient account balance"),type:"error",description:ie.createElement(hx,{messages:T??[]})},ie.createElement(Mf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Xe},Ho.t("Proceed anyway")))),y&&ie.createElement(wf,null,ie.createElement("div",{className:vf()},ie.createElement($l,{chain:y,quoteChains:b,isSelected:te,selectWallet:le,onShowMore:()=>C(y),onConnect:$=>{ee(y,$)}}))),!y&&ie.createElement(ie.Fragment,null,v&&ie.createElement(ie.Fragment,null,ie.createElement(gx,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Ho.t(v)}),ie.createElement(Fl,{size:12})),ie.createElement(bf,null,b.map(($,z)=>{let V=c.find(j=>j.name===$),pe=`wallet-${z}`,Q=z===b.length-1,X=Q&&W&&g?.customDestination!==!1;return ie.createElement("div",{key:pe},ie.createElement(yf,null,ie.createElement(Ol,{variant:"title",size:"xmedium"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),ie.createElement(Ol,{variant:"label",color:"$neutral700",size:"medium"},Ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),ie.createElement(Fl,{size:24}),ie.createElement(Sf,null,ie.createElement($l,{chain:$,quoteChains:b,isSelected:te,selectWallet:le,limit:wx,onShowMore:()=>C(V?.name??""),onConnect:j=>{ee($,j)}})),!Q&&ie.createElement(Fl,{size:32}),X&&ie.createElement(hf,{blockchain:W,open:N,handleOpenChange:je}))}))))}i(_f,"ConfirmWalletsModal");import{i18n as jx}from"@lingui/core";import{Alert as Xx,Button as Yx,Divider as tg,InfoIcon as Zx}from"@rango-dev/ui";import Oe from"react";import{Alert as bx,Button as Ex,Divider as Hl,NoRouteIcon as Ix,RefreshIcon as Ax,Typography as Hf}from"@rango-dev/ui";import dt from"react";import{i18n as Df}from"@lingui/core";var vx=24,xx=60;function $f(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:re().genericServerError,action:{onClick:n,title:Df.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:re().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Df.t("Reset")}},description:re().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:re().noResultError.description}}i($f,"makeInfo");var Ul=(o=>(o[o.small=vx]="small",o[o.large=xx]="large",o))(Ul||{}),zl=(o=>(o.small="small",o.large="medium",o))(zl||{});import{styled as Ri}from"@rango-dev/ui";var Ff=Ri("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Of=Ri("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Uf=Ri("div",{variants:{size:{small:{width:"100%"},large:{}}}}),zf=Ri("div",{padding:"$6 $0"});function kr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=$f(o,a,()=>s(c,!0),e);return r&&(l.alert=null),dt.createElement(Ff,{id:"widget-no-result-container"},dt.createElement(Ix,{size:Ul[n],color:"gray"}),dt.createElement(Hl,{size:4}),dt.createElement(Hf,{variant:"title",size:zl[n]},re().noResultError.title),n==="large"&&dt.createElement(Hl,{size:4}),!!l.description&&dt.createElement(Of,{size:n},dt.createElement(Hf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),dt.createElement(Hl,{size:n==="large"?"24":"4"}),!!l.alert&&dt.createElement(Uf,{size:n},dt.createElement(bx,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&dt.createElement(Ex,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:dt.createElement(zf,null,dt.createElement(Ax,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(kr,"NoResult");import{i18n as Tr}from"@lingui/core";import{Button as Dx,Divider as $x,MessageBox as Fx,Typography as Ox,WarningIcon as Ux}from"@rango-dev/ui";import Yt from"react";import{InfoIcon as Lx,Tooltip as Mx,Typography as Px}from"@rango-dev/ui";import Nn from"react";import{Button as Nx,darkTheme as Bx,styled as Qo,Typography as Wx}from"@rango-dev/ui";var Qf=Qo("div",{width:"100%"}),Ql=Qo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),qf=Qo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Bx} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Gf=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),Vf=Qo(Wx,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),Kf=Qo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),jf=Qo(Nx,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var _x=35;function Xf(t){let{title:e,value:o,valueColor:n}=t,r=B();return Nn.createElement(qf,null,Nn.createElement(Px,{size:"medium",variant:"label",className:"_title"},e),Nn.createElement(Gf,null,Nn.createElement(Vf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>_x&&Nn.createElement(Mx,{content:o,container:r},Nn.createElement(Lx,{size:12,color:"gray"}))))}i(Xf,"QuoteErrorsModalItem");function Yf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:Tr.t("Swapping"),value:P(r.inputUsdValue)},{title:Tr.t("Gas cost"),value:P(r.totalFee,2,2)},{title:Tr.t("Receiving"),value:P(r.outputUsdValue)},{title:Tr.t("Price impact"),value:P(r.priceImpact,2,2),valueColor:`${s}500`}];return Yt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Yt.createElement(Dx,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Yt.createElement(Ux,null),fullWidth:!0,disabled:a,onClick:n},re().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},Yt.createElement(Fx,{type:s,title:re().highValueLossError.impactTitle,description:re().highValueLossError.description}),Yt.createElement(Ql,null,Yt.createElement($x,{size:"4"}),Yt.createElement(Ox,{size:"small",variant:"title"},Tr.t("Details")),Yt.createElement(Ql,null,c.map((l,p)=>Yt.createElement(Xf,{key:p,...l})))))}i(Yf,"HighValueLossWarningModal");import{i18n as Bn}from"@lingui/core";function Zf(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Bn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Bn.t("Increase")),o;if(t){switch(t.type){case 0:{Xt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=re().highValueLossError.title;break}case 4:{o.title=Bn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=re().unknownPriceError.title;break}case 2:{o.title=Bn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Bn.t("Increase");break}case 3:{o.title=Bn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Zf,"makeAlerts");function Jf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(Jf,"getRequiredSlippage");import{i18n as Wn}from"@lingui/core";import{Button as zx,Divider as ql,MessageBox as Hx,WarningIcon as Qx}from"@rango-dev/ui";import Co from"react";import{useNavigate as qx}from"react-router-dom";function Rf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=qx();return Co.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:B(),onClose:o},Co.createElement(Hx,{type:"warning",title:r.type===3?Wn.t("High slippage"):Wn.t("Low slippage"),description:r.type===3?Wn.t("Caution, your slippage is high. Your trade may be front run."):Wn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},Co.createElement(ql,{size:18}),Co.createElement(ql,{size:32}),Co.createElement(jf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},Co.createElement(Qx,{color:"white",size:16}),Wn.t("Swap anyway")),Co.createElement(ql,{size:10}),Co.createElement(zx,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},Wn.t("Change Slippage"))))}i(Rf,"SlippageWarningModal");import{Button as Gx,MessageBox as Vx,WarningIcon as Kx}from"@rango-dev/ui";import ea from"react";function eg(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return ea.createElement(R,{id:"widget-unknown-price-warning-modal",footer:ea.createElement(Gx,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:ea.createElement(Kx,null),fullWidth:!0,disabled:r,onClick:n},re().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},ea.createElement(Vx,{type:"warning",title:re().unknownPriceError.impactTitle,description:re().unknownPriceError.description}))}i(eg,"UnknownPriceWarningModal");function wr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:d,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,m=Zf(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let S=!!m&&!s,y=i(C=>{if(C==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,w=Jf(e,T);f?.(w)}else C==="change-settings"&&d()},"onclickActionButton");return Oe.createElement(Oe.Fragment,null,g&&Oe.createElement(Oe.Fragment,null,Oe.createElement(tg,{size:10}),Oe.createElement(kr,{skipAlerts:s,error:o,fetch:c})),S&&Oe.createElement(Qf,null,Oe.createElement(tg,{size:10}),Oe.createElement(Xx,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Oe.createElement(Kf,{onClick:l},Oe.createElement(Zx,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Oe.createElement(Yx,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>y(m.action)},m.actionButtonTitle||jx.t("Change"))}})),e&&Oe.createElement(Oe.Fragment,null,e.type===0&&Oe.createElement(Yf,{...h,warning:e}),(e.type===3||e.type===2)&&Oe.createElement(Rf,{...h,warning:e}),e.type===1&&Oe.createElement(eg,{...h,warning:e})))}i(wr,"QuoteWarningsAndErrors");import vb from"bignumber.js";import ga from"react";import{i18n as qo}from"@lingui/core";import{Alert as db,Divider as Mn,FullExpandedQuote as mb,InfoIcon as tc,NumericTooltip as oc,QuoteTag as fb,StepDetails as gb,TokenAmount as hb,Typography as Pn,useIsTruncated as nc}from"@rango-dev/ui";import rc from"bignumber.js";import O,{useRef as da,useState as yb}from"react";import{styled as Gl}from"@rango-dev/ui";var Vl=Gl("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),og=Gl("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),ng=Gl("div",{width:"100%",display:"flex"});import*as ta from"@radix-ui/react-collapsible";import{Button as Jx,css as oa,darkTheme as De,Image as rg,styled as Ke,Typography as Kl}from"@rango-dev/ui";var Rx=300,ig=Ke(ta.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),ag=oa({padding:"$10 $15"}),sg=Ke(Jx,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${De} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${De} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${De} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),lg=Ke("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",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${De} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}}}}]}),cg=oa({width:"100%",padding:"$15 $15 $10 $15"}),pg=oa({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Ln=oa({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),ug=Ke(ta.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:{[`& ${rg}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${rg}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),dg=Ke("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"}}}}),mg=Ke(ji,{width:"100%",background:"inherit"}),jl=Ke("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Rx}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),PQ=Ke("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),fg=Ke("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${De} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),gg=Ke("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),Xl=Ke(Kl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),Yl=Ke(Kl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),Zl=Ke("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"}}}}),hg=Ke("div",{display:"flex"}),na=Ke("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${De} &`]:{borderTopColor:"$neutral800"}}),yg=Ke(Kl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as $t}from"@lingui/core";import{ChevronDownIcon as tb,CloseIcon as ob,Divider as aa,IconButton as nb,NumericTooltip as rb,QuoteCost as ib,Typography as Et}from"@rango-dev/ui";import Z,{useState as Tg}from"react";import{css as eb,styled as ra}from"@rango-dev/ui";var ia=ra("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Jl=ra("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Sg=ra("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Cg=ra("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),kg=eb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var ab=i(t=>t.fee.isZero()?null:Z.createElement(ia,null,Z.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(Et,{variant:"label",size:"medium"},"$",P(t.fee,4,4))),"NonPayableFee");function Rl(t){let[e,o]=Tg(!1),[n,r]=Tg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?Wo():B(),m=Gd(h),S=P(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(ib,{onClickFee:d?y=>{y.stopPropagation(),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?$t.t("View more info"):void 0,tooltipContainer:g}),Z.createElement(R,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:Z.createElement(Cg,{style:{textAlign:f?"left":"center"}},Z.createElement(Et,{variant:"title",size:"medium"},$t.t("Gas & Fee Explanation")),Z.createElement(nb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(ob,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(Sg,null,Z.createElement(Et,{variant:"title",size:"small"},$t.t("Details")),Z.createElement(aa,{size:10}),Object.entries(m.payable).flatMap(([y,C])=>C.map((T,w)=>{let v=`payable-fee-${w}`,A=Xs(T);return Z.createElement(ia,{key:v},Z.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},qs(y,$t.t)),Z.createElement(rb,{content:T.amount,container:g},Z.createElement(Et,{variant:"label",size:"medium"},P(T.amount,2,2),T.asset.symbol," ($",P(A,4,4),")")))})),Z.createElement(ia,{className:"total_payable_fee"},Z.createElement(Et,{variant:"label",size:"medium"},$t.t("Total Payable Fee")),Z.createElement(Et,{variant:"label",size:"medium"},"$",P(c,4,4))),Z.createElement(Jl,null),!!Object.keys(m.nonePayable).length&&Z.createElement(Zi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Z.createElement("div",{className:kg()},Z.createElement(Et,{size:"small",variant:"body",color:"neutral700"},n?$t.t("Hide non-payable fees"):$t.t("Show non-payable fees")),Z.createElement(aa,{size:4,direction:"horizontal"}),Z.createElement(Xi,{orientation:n?"up":"down"},Z.createElement(tb,{size:12,color:"gray"}))),open:n},Z.createElement(Et,{size:"small",variant:"title"},$t.t("Description")),Z.createElement(aa,{size:4}),Z.createElement(Et,{size:"small",variant:"body",color:"neutral700"},$t.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),Z.createElement(aa,{size:10}),Object.entries(m.nonePayable).map(([y,C],T)=>{let w=qd(C),v=qs(y,$t.t),A=`non-payable-fee-${T}`;return Z.createElement(ab,{key:A,fee:w,label:v})}),Z.createElement(Jl,null)))))}i(Rl,"QuoteCostDetails");import{i18n as xg}from"@lingui/core";import{TokenAmount as bg}from"@rango-dev/ui";import sa from"react";import{css as sb,styled as lb}from"@rango-dev/ui";var wg=lb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),vg=sb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function vr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return sa.createElement(wg,null,sa.createElement(bg,{direction:"horizontal",label:xg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:B(),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}}),sa.createElement("div",{className:vg()}),sa.createElement(bg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:B(),label:xg.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(vr,"QuoteSummary");import{i18n as Eg}from"@lingui/core";import{ChevronDownIcon as cb,ChevronRightIcon as pb,Divider as ec,Image as ub,Tooltip as ua,Typography as la}from"@rango-dev/ui";import q from"react";var ca=4,pa=6,xr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||B();return q.createElement(ua,{container:c,side:"bottom",sideOffset:4,open:r,content:e},q.createElement(dg,{className:n,state:a},q.createElement(ub,{src:o,size:16})))},"ImageComponent");function Ig(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||B(),p=r.length,u=Pd(r),{isTablet:d,isMobile:f}=wn();return q.createElement(ug,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},q.createElement("div",{className:Ln()},q.createElement(la,{variant:"body",size:"xsmall"},Eg.t("Via:")),q.createElement(ec,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,S=q.createElement(jl,null,q.createElement(pb,{size:12,color:"black"}));return f||d?q.createElement(q.Fragment,{key:m},q.createElement(xr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,S)):q.createElement(q.Fragment,{key:m},p<=ca||p>ca&&g<ca-1?q.createElement(q.Fragment,null,q.createElement(xr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,S)):g===ca-1&&q.createElement(ua,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:Ln()},S,r.map((y,C)=>{let T=`image-${C}`;return C>=g&&q.createElement(q.Fragment,{key:T},q.createElement(xr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&q.createElement(q.Fragment,null,S))}))},q.createElement(Zl,{state:r.find((y,C)=>C>=g&&(y.state==="error"||y.state==="warning"))?.state},q.createElement(la,{size:"xsmall",variant:"body"},"+",p-g))))})),q.createElement("div",{className:Ln()},q.createElement("div",{className:"blockchains_section"},q.createElement("div",{className:Ln()},q.createElement(la,{variant:"body",size:"xsmall"},Eg.t("Chains:")),q.createElement(ec,{direction:"horizontal",size:4}),u.map((h,g)=>q.createElement(q.Fragment,{key:h.displayName},u.length<=pa||u.length>pa&&g<pa-1?q.createElement(ua,{container:l,side:"bottom",content:h.displayName,sideOffset:4},q.createElement(xr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===pa-1&&q.createElement(ua,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:Ln()},u.map((m,S)=>S>=g&&q.createElement(xr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:S>g?"blockchainImage":"",container:c})))},q.createElement(Zl,{className:"blockchainImage"},q.createElement(la,{size:"xsmall",variant:"body"},"+",u.length-g))))),q.createElement(ec,{direction:"horizontal",size:32}))),q.createElement(jl,{orientation:a?"up":"down"},q.createElement(cb,{size:12,color:"black"}))))}i(Ig,"QuoteTrigger");function ic(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:d=!1,container:f}=t,h=k().blockchains(),{findToken:g}=k(),m=k().swappers(),{customSlippage:S,slippage:y}=k(),C=S||y,[T,w]=yb(t.expanded),v=da(null),A=P(n.value,6,6),N=n.usdValue?P(n.usdValue,4,4):"",x=jt(o.usdValue,n.usdValue??null),b=P(x,2,2),E=Xt(x??0),W=i((Q,X)=>Q.map((j,Ie)=>{let Ae,Ye=r?.type===3&&r.swap.swapperId===j.swapperId,Lt=r?.type===4&&!!r.recommendedSlippages?.[Ie],so=a?.type===2&&!!a.recommendedSlippages?.[Ie],Io=Ye||Lt,Hn=so;Io?Ae="error":Hn&&(Ae="warning");let ei=Io?qo.t("Slippage Error"):qo.t("Slippage Warning");return Ye&&(ei=qo.t("Bridge Limit Error")),{swapper:{displayName:qn(j.swapperId,m)??"",image:j.swapperLogo},from:{token:{displayName:j.from.symbol,image:j.from.logo},chain:{displayName:yt(j.from.blockchain,h)??"",image:j.from.blockchainLogo},price:{value:Ie===0&&!X?P(o.value,6,6):P(j.fromAmount,6,6),usdValue:P((j.from.usdPrice??0)*parseFloat(j.fromAmount),4,4),realValue:Ie===0?o.value:j.fromAmount,realUsdValue:new rc(j.from.usdPrice??0).multipliedBy(j.fromAmount).toString()}},to:{token:{displayName:j.to.symbol,image:j.to.logo},chain:{displayName:yt(j.to.blockchain,h)||"",image:j.to.blockchainLogo},price:{value:P(j.toAmount,6,6),usdValue:P((j.to.usdPrice??0)*parseFloat(j.toAmount),4,4),realValue:j.toAmount,realUsdValue:new rc(j.to.usdPrice??0).multipliedBy(j.toAmount).toString()}},state:Ae,alerts:Io||Hn?O.createElement(og,{dense:d},O.createElement(db,{variant:"alarm",type:Io?"error":"warning",title:ei,id:"widget-quote-footer-step-alarm-alert",footer:O.createElement(ng,null,Ye&&O.createElement("div",null,O.createElement(Pn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),O.createElement(Mn,{direction:"vertical",size:2}),O.createElement(Pn,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},qo.t({id:"Yours: {amount} {symbol}",values:{amount:P(j.fromAmount,6,6),symbol:j?.from.symbol}}))),(Lt||so)&&!Ye&&O.createElement("div",null,O.createElement(Pn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[Ie]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[Ie]}}})),O.createElement(Mn,{direction:"vertical",size:2}),O.createElement(Pn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Vn(j.estimatedTimeInSeconds),fee:P(js(j,g),2,2),internalSwaps:j.internalSwaps?W(j.internalSwaps):void 0}}),"getQuoteSteps"),I=W(e?.swaps??[]),_=I.length,U=f||B(),G=Dd(t.quote.tags||[]),Y=!!u,L=pi(e?.swaps),ee=Vn(L),J=Mi(e?.swaps??[],g),te=P(J,2,2),se=J.gte(new rc(Ed)),je=L/Ad>=Id,le=da(null),Xe=nc(o.value,le),He=da(null),Wt=nc(n.value,He),$=da(null),z=nc(N,$),V=I[_-1],pe=I[0];return!pe||!V?null:d?O.createElement(mb,{selected:c,fee:te,time:ee,tooltipContainer:Wo(),steps:I,tags:G,id:"widget-quote-full-expanded-quote-container",quoteCost:O.createElement(Rl,{quote:e,fullExpandedMode:!0,time:ee,fee:J,feeWarning:se,timeWarning:je,showModalFee:p,steps:_}),percentageChange:b,warningLevel:E,outputPrice:{value:A,usdValue:N,realValue:n.value,realUsdValue:n.usdValue}}):O.createElement(lg,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},O.createElement("div",{className:cg()},!l&&G.length?O.createElement(O.Fragment,null,O.createElement(hg,null,G.map((Q,X)=>{let j=`${Q.value}_${X}`;return O.createElement(O.Fragment,{key:j},O.createElement(fb,{label:Q.label,value:Q.value}),O.createElement(Mn,{size:4,direction:"horizontal"}))})),O.createElement(na,null),!Y&&O.createElement(Mn,{size:4})):null,O.createElement("div",{id:"portal-root",className:pg()},O.createElement(Rl,{quote:e,time:ee,fee:J,feeWarning:se,timeWarning:je,showModalFee:p,steps:_}),Y&&O.createElement(sg,{onClick:Q=>{Q.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},O.createElement(Pn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},qo.t("See All Routes")))),s==="basic"&&O.createElement(gg,null,O.createElement(Yl,{ref:le,size:"small",variant:"body"},o.value),Xe&&O.createElement(oc,{content:o.value,container:U,open:o.value?void 0:!1},O.createElement(tc,{size:12,color:"gray"})),O.createElement(Xl,{size:"small",variant:"body"},I[0]?.from.token.displayName),O.createElement(Pn,{size:"small",variant:"body"},"="),O.createElement(Yl,{ref:He,size:"small",variant:"body"},n.value),Wt&&O.createElement(oc,{content:n.value,container:U,open:n.value?void 0:!1},O.createElement(tc,{size:12,color:"gray"})),O.createElement(Xl,{size:"small",variant:"body"},V?.to.token.displayName),O.createElement(Mn,{size:2,direction:"horizontal"}),O.createElement(yg,{ref:$,color:"$neutral600",size:"xsmall",variant:"body"},`($${N})`),z&&O.createElement(oc,{content:n.usdValue,container:U},O.createElement(tc,{size:12,color:"gray"}))),s==="list-item"&&O.createElement(hb,{id:"widget-quote-token-amount-container",tooltipContainer:U,type:"output",direction:"vertical",price:{value:A,usdValue:N,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:V.to.token.displayName,image:V.to.token.image},chain:{image:V.to.chain.image},percentageChange:b,warningLevel:E}),s==="swap-preview"&&O.createElement(O.Fragment,null,O.createElement(vr,{from:pe.from,to:V.to,percentageChange:b,warningLevel:E}),O.createElement(Mn,{size:4}))),O.createElement(ig,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},O.createElement(Ig,{type:s,quoteRef:v,selected:c,setExpanded:w,container:U,expanded:T,steps:I}),O.createElement(mg,{open:T},O.createElement(fg,null),O.createElement("div",{className:ag()},I.map((Q,X)=>{let j=`item-${X}`;return O.createElement(gb,{type:"quote-details",className:"widget-quote-step-details-container",key:j,tooltipContainer:U,step:Q,hasSeparator:X!==I.length-1,state:Q.state})})))))}i(ic,"Quote");import{Divider as Tb,Skeleton as wb}from"@rango-dev/ui";import eo from"react";import{darkTheme as Sb,styled as ma}from"@rango-dev/ui";var Ag=ma("div",{$$color:"$colors$neutral100",[`.${Sb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ng=ma("div",{paddingTop:"$2"}),Bg=ma("div",{paddingLeft:"$8"}),Wg=ma("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as zg,Divider as It,Skeleton as mt}from"@rango-dev/ui";import K from"react";import{css as Cb,styled as Rt}from"@rango-dev/ui";var ac=Rt("div",{display:"flex"}),Lg=Rt("div",{padding:"$10 $0 $20"}),Mg=Rt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Pg=Rt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),_g=Rt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Dg=Rt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),$g=Rt("div",{width:"65%",display:"flex",justifyContent:"start"}),Fg=Rt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Og=Rt("div",{padding:"$15 $0 $15 $0"}),Ug=Cb({display:"flex",justifyContent:"space-between",alignItems:"center"});function br(t){let{type:e,tagHidden:o=!0}=t,n=K.createElement(_g,null,K.createElement($g,null,K.createElement(zg,{loading:!0,size:"medium"}),K.createElement(It,{size:8,direction:"horizontal"}),K.createElement(Fg,null,K.createElement(mt,{height:10,width:60,variant:"rounded"}),K.createElement(It,{size:4}),K.createElement(mt,{height:15,variant:"rounded"}))),K.createElement(mt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return K.createElement("div",null,!o&&K.createElement(K.Fragment,null,K.createElement(ac,null,K.createElement(mt,{width:65,height:20,variant:"rounded"}),K.createElement(It,{size:4,direction:"horizontal"}),K.createElement(mt,{width:65,height:20,variant:"rounded"}),K.createElement(It,{size:4,direction:"horizontal"}),K.createElement(mt,{width:65,height:20,variant:"rounded"})),K.createElement(na,null),!r&&K.createElement(It,{size:4})),K.createElement("div",{className:Ug()},K.createElement(ac,null,K.createElement(mt,{width:60,height:10,variant:"rounded"}),K.createElement(It,{size:4,direction:"horizontal"}),K.createElement(mt,{width:60,height:10,variant:"rounded"}),K.createElement(It,{size:4,direction:"horizontal"}),K.createElement(mt,{width:60,height:10,variant:"rounded"})),r&&K.createElement(mt,{width:85,height:24,variant:"rounded"})),e==="basic"&&K.createElement(Lg,null,K.createElement(mt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&K.createElement(Mg,null,K.createElement(Pg,null,K.createElement(zg,{loading:!0,size:"medium"}),K.createElement(It,{direction:"horizontal",size:4}),K.createElement(mt,{height:15,width:150,variant:"rounded"})),K.createElement(It,{size:10}),K.createElement(mt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&K.createElement(K.Fragment,null,K.createElement(It,{size:4}),K.createElement(Og,null,n,K.createElement(Dg,null),n),K.createElement(It,{size:12})))}i(br,"QuoteSummarySkeleton");import{ChainToken as Vg,Divider as lc,NextIcon as kb,Skeleton as fa}from"@rango-dev/ui";import Le from"react";import{styled as Er}from"@rango-dev/ui";var Hg=Er("div",{display:"flex",alignItems:"start"}),Qg=Er("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),sc=Er("div",{display:"flex",alignItems:"center",flexGrow:1}),qg=Er("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Gg=Er("div",{display:"flex",alignItems:"center"});function Ft(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Gg,null,Le.createElement(fa,{height:22,width:22,variant:"circular"}),Le.createElement(lc,{direction:"horizontal",size:8}),Le.createElement(fa,{height:15,width:148,variant:"rounded"})),Le.createElement(Hg,null,Le.createElement(Wg,{hideSeparator:!e}),Le.createElement(Qg,{extraSpace:e},Le.createElement(sc,null,Le.createElement(Vg,{size:"small",loading:!0}),Le.createElement(lc,{direction:"horizontal",size:8}),Le.createElement(fa,{height:12,variant:"rounded"})),Le.createElement(qg,null,Le.createElement(kb,{color:"gray",size:16})),Le.createElement(sc,null,Le.createElement(Vg,{size:"small",loading:!0}),Le.createElement(lc,{direction:"horizontal",size:8}),Le.createElement(fa,{height:12,variant:"rounded"})))))}i(Ft,"StepSkeleton");function Ir(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return eo.createElement(Ag,{expanded:o,rounded:e!=="basic"},eo.createElement(br,{type:e,tagHidden:n}),eo.createElement(Ng,null,eo.createElement(wb,{height:15,variant:"rounded"})),o&&eo.createElement(Bg,null,eo.createElement(Tb,{size:24}),eo.createElement(Ft,null),eo.createElement(Ft,null),eo.createElement(Ft,{separator:!1})))}i(Ir,"QuoteSkeleton");function Go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:d,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:m,inputUsdValue:S}=H()(),y=e?.outputAmount?new vb(e?.outputAmount):null,C=e?Ct(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ga.createElement(Vl,null,ga.createElement(Ir,{tagHidden:c,type:o,expanded:s})):w?ga.createElement(Vl,{onClick:()=>l?.(e),id:d},ga.createElement(ic,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:m,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(Go,"QuoteInfo");import{warn as Ib}from"@rango-dev/logging-core";import{calculatePendingSwap as Ab}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Nb}from"react";import{useRef as xb,useState as bb}from"react";var Eb=2e3;function ha({request:t}){let[e,o]=bb(!1),n=xb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Eb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(ha,"useFetch");function Kg(){let{fetch:t,loading:e,cancelFetch:o}=ha({request:async(n,r)=>await ut().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Kg,"useFetchConfirmQuote");function ya(t){if(!t.swaps)throw new Error(re().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=cc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ya,"throwErrorIfResponseIsNotValid");function cc(t){if(zd(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Hd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=Vd(t);if(o){let n=Pi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(cc,"getQuoteError");function jg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=Cn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=Xd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(jg,"generateWarnings");function Sa(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}i(Sa,"handleQuoteErrors");function pc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=H()(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),d=k().blockchains(),f=k().tokens(),{findToken:h}=k(),{swapMode:g}=rt(),m=p||l,{fetch:S,cancelFetch:y,loading:C}=Kg();return Nb(()=>y,[]),{loading:C,fetch:i(async w=>{let v=w.selectedWallets,A=w?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let N=v.reduce((b,E)=>(b[E.chain]=E.address,b),{}),x={requestId:a?.requestId||"",selectedWallets:N,destination:A||void 0};try{return await S(x,!0).then(b=>{let{result:E}=b;if(!E)throw new Error(b.error??"Error fetching updated quote");ya({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let W={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};r(W);let I={slippage:m.toString(),disabledSwappersGroups:u},_=jg({previousQuote:a??void 0,currentQuote:W,meta:{blockchains:d},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:h});c();let U=!!_.balance,G=Ab({inputAmount:o.toString(),bestRoute:E,wallets:jd(v),settings:I,validateBalanceOrFee:!U,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:W,swap:G,error:null,warnings:_}})}catch(b){let E=Sa(b);return E.type!==2&&Ib(new Error("confirm swap error"),{tags:{...E,type:Re[E.type],initialQuote:a,requestBody:x}}),{swap:null,error:E,warnings:null}}},"fetch"),cancelFetch:y}}i(pc,"useConfirmSwap");var Ob=Mb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Xg}`]:{width:"$48",height:"$48"}}),Ub=mc({flexGrow:1,paddingRight:"$10"}),zb=mc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Hb=mc({display:"flex",justifyContent:"space-between",alignItems:"center"});function Yg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=H()(),s=Fb(),[c,l]=Ar(""),p=!n,[u,d]=Ar(!1),[f,h]=Ar(!1),{isActiveTab:g}=ne(),m=k().getDisabledLiquiditySources(),S=$b(m),{manager:y}=Bb(),{fetch:C,loading:T,cancelFetch:w}=pc(),[v,A]=Ar({swap:null,error:null,warnings:null}),[N,x]=Ar(!1),b=i(async({selectedWallets:L,customDestination:ee})=>{let J=await C?.({selectedWallets:L,customDestination:ee});return A(J),J},"onConfirmSwap"),E=i(async()=>{if(v.swap&&n)try{await y?.create("swap",{swapDetails:v.swap},{id:v.swap.requestId});let L=`../${F.swaps}/${v.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),W=i(async()=>{h(!0),await E(),h(!1)},"onConfirm"),I=i(async()=>{v.warnings?.quote&&Md(v.warnings.quote)&&!a?x(!0):await W()},"onStartConfirmSwap"),_=i(async()=>{A({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(L=>{A(L)}).catch(L=>console.error(L))},"onRefresh");Ca(()=>{!!S.current.length&&!m.length&&_(),S.current=m},[m.length]),Ca(()=>{p&&w()},[p]),Ca(()=>{p&&d(p)},[p]),Ca(()=>{p||C({selectedWallets:o,customDestination:r}).then(L=>A(L)).catch(L=>console.error(L))},[]),Db(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let U=v.warnings?.quote??null,G=v.error,Y=[];if(c&&Y.push($e.createElement(Wb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),U||G){let L=`../${F.settings}`;Y.push($e.createElement(wr,{warning:U,error:G,couldChangeSettings:!1,refetchQuote:_,skipAlerts:G?.type===4||U?.type===2,showWarningModal:N,confirmationDisabled:!g,onOpenWarningModal:()=>x(!0),onCloseWarningModal:()=>x(!1),onConfirmWarningModal:async()=>{x(!1),await E()},onChangeSettings:()=>s(L)}))}return $e.createElement(ae,{header:{title:uc.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:$e.createElement(Ob,null,$e.createElement("div",{className:Ub()},$e.createElement(Lb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||f,disabled:!!v.error||!g,onClick:I},uc.t("Start Swap"))),$e.createElement(Xg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||f,disabled:!g,onClick:d.bind(null,!0)},$e.createElement(_b,{size:24})))},u&&$e.createElement(_f,{open:u,onClose:()=>d(!1),onCancel:w,loading:T,onCheckBalance:b}),$e.createElement(ue,null,$e.createElement("div",{className:Hb()},$e.createElement(Pb,{variant:"title",size:"small"},uc.t("You get")),$e.createElement("div",{className:zb()},$e.createElement(zi,{onClick:!T&&!u&&!N?_:void 0}))),$e.createElement(dc,{size:"12"}),Bm(Y.map((L,ee)=>({element:L,key:`alert-${ee}`})),$e.createElement(dc,{size:10})),Y.length>0?$e.createElement(dc,{size:10}):null,$e.createElement(Go,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:v.error,loading:T,warning:v.warnings?.quote??null})))}i(Yg,"ConfirmSwapPage");import{i18n as oo}from"@lingui/core";import{Button as bc,CustomTokensZeroStateDarkIcon as lE,CustomTokensZeroStateIcon as cE,DeleteIcon as pE,Divider as Mr,IconButton as uE,MessageBox as dE,NotFound as mE,styled as Ic}from"@rango-dev/ui";import ye,{useState as Ec}from"react";import{useNavigate as fE}from"react-router-dom";import{CloseIcon as Qb,IconButton as qb,SearchIcon as Gb,TextField as Vb}from"@rango-dev/ui";import _n from"react";import{styled as Zg}from"@rango-dev/ui";var Jg=Zg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Rg=Zg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function At(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...d}=t,f=s.length?_n.createElement(qb,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},_n.createElement(Qb,{color:"gray",size:10})):null;return p&&(f=p),_n.createElement(Rg,null,_n.createElement(Vb,{prefix:_n.createElement(Jg,null,_n.createElement(Gb,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...d}))}i(At,"SearchInput");import{i18n as xc}from"@lingui/core";import{Button as Yb,CustomTokenWarning as Zb,darkTheme as uh,Divider as to,ExternalLinkIcon as Jb,Image as Rb,ListItem as eE,NotFound as tE,PinIcon as oE,Skeleton as Vo,Typography as Wr,VirtualizedList as nE}from"@rango-dev/ui";import M,{useState as rE}from"react";import{useTranslation as iE}from"react-i18next";import{Divider as ch,ListItem as Xb,Skeleton as Br}from"@rango-dev/ui";import Nt from"react";import{css as Dn,darkTheme as fc,ImageContainer as Kb,ListItemButton as jb,styled as st,Typography as eh}from"@rango-dev/ui";var gc=Dn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),hc=Dn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),yc=Dn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Sc=Dn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${fc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Cc=Dn({}),kc=Dn(),th=st("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Tc=st("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ka=st("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${hc}`]:{[`& .${Sc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Cc}`]:{bottom:"-15px"},[`& .${gc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${yc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),oh=st(jb,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),wc=st("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),vc=st(eh,{}),nh=st("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${kc}`]:{$$color:"$colors$neutral600",[`.${fc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Nr=st("div",{display:"flex",alignItems:"end",flexDirection:"column"}),NV=st("div",{display:"flex",alignItems:"center"}),rh=st("div",{position:"relative",[`& ${Kb}`]:{borderRadius:"$xm",overflow:"hidden"}}),ih=st("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),ah=st(eh,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),sh=st("a",{"& svg:hover":{color:"$colors$info"}}),lh=st("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":{[`.${fc} &`]:{color:"$foreground"}}}});function ph(t){return Nt.createElement(ka,null,Array.from(Array(t.size),e=>Nt.createElement(Xb,{key:e,hasDivider:!0,start:Nt.createElement(Br,{variant:"circular",width:35,height:35}),end:Nt.createElement(Nr,null,Nt.createElement(Br,{variant:"text",size:"large",width:70}),Nt.createElement(ch,{size:4}),Nt.createElement(Br,{variant:"text",size:"medium",width:50})),title:Nt.createElement("div",null,Nt.createElement(Br,{variant:"text",size:"large",width:90}),Nt.createElement(ch,{size:4}),Nt.createElement(Br,{variant:"text",size:"medium",width:90}))})))}i(ph,"LoadingTokenList");var aE=20,sE=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return M.createElement("div",{className:hc()},o?M.createElement("div",{className:gc()},o):M.createElement(Tc,{className:yc()},M.createElement(Wr,{variant:"title",size:"xmedium"},r.symbol),M.createElement(to,{direction:"horizontal",size:4}),M.createElement(wc,{css:a},M.createElement(vc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&M.createElement("div",{className:`${Sc()} ${!o&&Cc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",M.createElement(to,{size:4,direction:"horizontal"}),M.createElement(sh,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},M.createElement(Jb,{size:12}))))},"renderDesc");function Lr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=k().fetchStatus,u=k().blockchains(),{getBalanceFor:d,fetchingWallets:f}=k(),{isTokenPinned:h}=k(),{setFromToken:g,setToToken:m}=H()(),{t:S}=iE(),y=Ge(),[C,T]=rE(null),w=i(()=>{c==="source"?g({token:C,meta:{blockchains:u}}):m({token:C,meta:{blockchains:u}})},"updateToken"),v=i(()=>{w(),y()},"handleImportToken"),A=i(b=>{if(b.customToken){let{customToken:W,...I}=b;return M.createElement(Yb,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(U=>{U.stopPropagation(),T({...I,warning:!0})},"handleClick")},M.createElement(Wr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let E=fi(d(b));return s?s(b):f?M.createElement(Nr,null,M.createElement(Vo,{variant:"text",size:"large",width:70}),M.createElement(to,{size:4}),M.createElement(Vo,{variant:"text",size:"medium",width:50})):E&&M.createElement(nh,null,M.createElement(ah,{variant:"title",size:"small"},E.amount),M.createElement("div",null),E.usdValue&&M.createElement(Wr,{variant:"body",className:kc(),size:"xsmall"},`$${E.usdValue}`))},"endRenderer"),N=i(()=>M.createElement(nE,{itemContent:b=>{let E=e[b];if(E==="skeleton")return M.createElement(eE,{hasDivider:!0,start:M.createElement(Vo,{variant:"circular",width:35,height:35}),end:M.createElement(Nr,null,M.createElement(Vo,{variant:"text",size:"large",width:70}),M.createElement(to,{size:4}),M.createElement(Vo,{variant:"text",size:"medium",width:50})),title:M.createElement("div",null,M.createElement(Vo,{variant:"text",size:"large",width:90}),M.createElement(to,{size:4}),M.createElement(Vo,{variant:"text",size:"medium",width:90}))});let W=u.find(L=>L.name===E?.blockchain);if(!W||!E)return null;let I=E.address,_=pl(W.color,"main"),U={$$color:_.main150,[`.${uh} &`]:{$$color:_.main750},backgroundColor:"$$color"},G={$$color:_.main750,[`.${uh} &`]:{$$color:_.main150},color:"$$color"},Y=i(()=>{typeof E!="string"&&!E.customToken&&n?.(E)},"handleClick");return M.createElement(lh,null,M.createElement(oh,{"tab-index":b,key:`${E.symbol}${I}`,id:`${E.symbol}${I}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:E?.customToken,onClick:Y,start:M.createElement(rh,null,M.createElement(Rb,{src:E.image===""?ri:E.image,size:30}),t.type!=="custom-token"&&E&&h(E,t.type)&&M.createElement(ih,null,M.createElement(oE,{size:12,color:"gray"}))),title:W.type==="COSMOS"||E.name||!E.name&&!I?M.createElement(Tc,null,M.createElement(Wr,{variant:"title",size:"xmedium"},E.symbol),M.createElement(to,{direction:"horizontal",size:4}),M.createElement(wc,{css:U},M.createElement(vc,{variant:"body",size:"xsmall",css:G},E.blockchain)),l&&E.warning&&M.createElement(M.Fragment,null,M.createElement(to,{direction:"horizontal",size:4}),M.createElement(Zb,{container:B()}))):void 0,description:typeof E!="string"&&W.info&&I&&W.type!=="COSMOS"?sE({address:I,token:E,customCssForTag:U,customCssForTagTitle:G,name:E.name,url:W.info.addressUrl.split("{wallet}").join(I)}):E.name||void 0,end:A(E)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),x=C?No(C?.blockchain,u):null;return M.createElement(M.Fragment,null,a&&M.createElement(M.Fragment,null,M.createElement(Wr,{variant:"label",size:"large"},xc.t("Select Token")),M.createElement(to,{size:4})),M.createElement(th,null,M.createElement(to,{size:4}),p==="loading"&&M.createElement(ph,{size:aE}),p==="success"&&(e.length?M.createElement(M.Fragment,null,M.createElement(fr,{token:C,address:C?.address??"",blockchain:x??void 0,onImport:v,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),M.createElement(ka,{as:"ul"},N())):!!o&&M.createElement(tE,{title:xc.t("No results found"),description:xc.t("Try using different keywords")}))))}i(Lr,"TokenList");var gE=Ic("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),hE=Ic("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),yE=Ic(uE,{"&:hover":{"& svg":{color:"$secondary550"}}});function dh(){let[t,e]=Ec(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=H()(),{mode:l}=mo({}),p=fE(),[u,d]=Ec(!1),[f,h]=Ec(),g=i(C=>{let T=C.target.value;e(T)},"handleSearch"),m=l==="dark",S=n.filter(C=>ct(C.symbol,t)||ct(C.address||"",t)||ct(C.name||"",t)),y=i(()=>{if(f){let C=a?St(a):null,T=r?St(r):null,w=St(f);C===w?c({token:null}):T===w&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return ye.createElement(ae,{header:{title:oo.t("Custom Tokens")}},ye.createElement(ue,null,ye.createElement(gE,null,n.length?ye.createElement(ye.Fragment,null,ye.createElement(At,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search Token"),onChange:g}),ye.createElement(Mr,{size:16}),ye.createElement(Lr,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>ye.createElement(yE,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(C)}},ye.createElement(pE,{size:12,color:"gray"}))})):ye.createElement(hE,null,ye.createElement(mE,{icon:m?ye.createElement(lE,{size:200}):ye.createElement(cE,{size:200}),title:oo.t("No custom tokens"),description:oo.t("press the button to add your custom token")})),ye.createElement(Mr,{size:20}),ye.createElement(bc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},oo.t("Add Custom Token"))),ye.createElement(R,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:B()},ye.createElement(dE,{title:oo.t("Delete Custom Token"),type:"error",description:oo.t("Are you sure you want to Delete this Token?")},ye.createElement(Mr,{size:40}),ye.createElement(Mr,{size:10}),ye.createElement(bc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},oo.t("Yes, Delete it")),ye.createElement(Mr,{size:12}),ye.createElement(bc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},oo.t("No, Continue"))))))}i(dh,"CustomTokensPage");import{i18n as Fe}from"@lingui/core";import{useManager as $E}from"@rango-dev/queue-manager-react";import{Button as Pc,darkTheme as FE,Divider as ko,MessageBox as OE,NotFound as UE,styled as _c,Tabs as zE,Typography as va}from"@rango-dev/ui";import{TransactionStatus as Dr}from"rango-types";import oe,{useMemo as Wh,useState as $r}from"react";import{useNavigate as HE}from"react-router-dom";import{FilterIcon as xE,Popover as bE}from"@rango-dev/ui";import Ko from"react";import{css as SE,darkTheme as Ta,IconButton as CE,styled as Pr}from"@rango-dev/ui";var Ac=Pr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Ta} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),mh=Pr(CE,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Ta} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Ta} &`]:{backgroundColor:"$neutral"},[`& ${Ac}::before`]:{backgroundColor:"$secondary100",[`.${Ta} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),fh=Pr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),gh=Pr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),hh=SE({display:"flex",justifyContent:"space-between",alignItems:"center"}),yh=Pr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Sh}from"@lingui/core";import{Button as kE,Divider as Ch,ListItemButton as TE,Radio as wE,RadioRoot as vE,Typography as kh}from"@rango-dev/ui";import ft from"react";function Th(t){let{filterBy:e,onClickItem:o}=t;return ft.createElement(gh,null,ft.createElement("div",{className:hh()},ft.createElement(kh,{size:"small",variant:"body"},Sh.t("Status")),ft.createElement(kE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Sh.t("Reset"))),ft.createElement(Ch,{size:10}),ft.createElement(vE,{value:e},ft.createElement(yh,null,t.list.map((n,r)=>ft.createElement(TE,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ft.createElement(ft.Fragment,null,ft.createElement(Ch,{direction:"horizontal",size:4}),ft.createElement(kh,{size:"medium",variant:"body"},n.title)),start:ft.createElement(wE,{value:n.id}),onClick:o})))))}i(Th,"FilterSelectorContent");function Nc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Ko.createElement("div",null,Ko.createElement(bE,{open:a,align:"end",onOpenChange:o,container:B(),content:Ko.createElement(Th,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Ko.createElement(mh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Ko.createElement(Ac,{isSelect:!!n},Ko.createElement(xE,{size:16,color:"black"}),!!n&&Ko.createElement(fh,null)))))}i(Nc,"FilterSelector");import{i18n as AE}from"@lingui/core";import{getCurrentStep as NE}from"@rango-dev/queue-manager-rango-preset";import{Divider as Eh,GroupedVirtualizedList as BE,Skeleton as WE,SwapListItem as Ih,Typography as LE}from"@rango-dev/ui";import et,{useCallback as Ah,useEffect as ME,useRef as PE,useState as _E}from"react";function wh(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(wh,"calculateGroupsSoFar");import{css as EE,darkTheme as IE,styled as _r}from"@rango-dev/ui";var Bc=EE(),vh=_r("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Wc=_r("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Bc}`]:{$$color:"$colors$neutral600",[`.${IE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Lc=_r("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),xh=_r("div",{gap:"$10",display:"flex",flexDirection:"column"}),bh=_r("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var DE=10;function Mc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=_E([]),c=PE(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=Ah(wh,[]),f=Ah(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,DE),s(d(p,c.current)))},[e.length]);if(ME(()=>{r||f()},[r,f]),r){let h=[1,2];return et.createElement(et.Fragment,null,[h,h].map((m,S)=>et.createElement(Wc,{key:S},et.createElement(Lc,null,et.createElement(WE,{variant:"text",width:60,size:"small"}),et.createElement(Eh,{size:16})),et.createElement(Eh,{size:4}),et.createElement(xh,null,m.map((C,T)=>et.createElement(Ih,{isLoading:!0,key:T}))))))}return et.createElement(BE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>et.createElement(Wc,null,et.createElement(Lc,null,et.createElement(LE,{variant:"label",size:"medium",className:Bc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let S=NE(m),y=m.steps[0],C=m.steps[m.steps.length-1];return!y||!C?null:et.createElement(vh,{key:m.requestId},et.createElement(Ih,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:S,tooltipContainer:B(),onlyShowTime:u[g]===AE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:P(m.inputAmount,6,6),realAmount:m.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(Mc,"HistoryGroupedList");import{i18n as wa}from"@lingui/core";import Nh from"dayjs";var Bh=i(t=>{let e=new Map([["today",{title:wa.t("Today"),swaps:[]}],["week",{title:wa.t("This week"),swaps:[]}],["month",{title:wa.t("This month"),swaps:[]}],["year",{title:wa.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=Nh();t.forEach(l=>{let p=Number(l.creationTime),u=Nh(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let d=new Date(p).getFullYear().toString();o(d,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var QE=_c("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),qE=_c("div",{display:"flex",justifyContent:"center",alignItems:"center"}),GE=_c("div",{"._typography":{color:"$neutral700",[`.${FE}&`]:{color:"$neutral900"}}}),VE=i((t,e)=>t?.length?t.filter(o=>Pt(o.fromBlockchain,e)||Pt(o.toBlockchain,e)||Pt(o.toSymbol,e)||Pt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Lh(){let t=HE(),{manager:e,state:o}=$E(),n=Tt(e).map(({swap:x})=>x),[r,a]=$r(""),[s,c]=$r(!1),l=!o.loadedFromPersistor,[p,u]=$r(""),[d,f]=$r(!1),[h,g]=$r("all"),m=i(x=>{let b=x.target.value;a(b)},"handleSearch"),{isMultiMode:S}=rt(),y=[{id:Dr.SUCCESS,title:Fe.t("Complete")},{id:Dr.RUNNING,title:Fe.t("Running")},{id:Dr.FAILED,title:Fe.t("Failed")}],C=[{id:"all",title:Fe.t("All")},{id:"swap",title:Fe.t("Swap")},{id:"refuel",title:Fe.t("Refuel")}],T=Wh(()=>!r&&!p&&h==="all"?n:n.filter(x=>{let{inputAmount:b,status:E,steps:W,requestId:I,mode:_}=x;return(!r||Pt(b,r)||Pt(E,r)||VE(W,r)||Pt(I,r))&&(!p||p===E)&&(h==="all"?!0:h==="swap"?!_||_==="swap":h==="refuel"?_==="refuel":!1)}),[n,r,p,h]),w=!T?.length&&!l,v=i(()=>f(!1),"onCloseModal"),A=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(x){console.log(x)}},"onClear"),N=Wh(()=>!n.some(x=>x.status===Dr.SUCCESS||x.status===Dr.FAILED),[n]);return oe.createElement(ae,{header:{title:Fe.t("History"),suffix:oe.createElement(fo,null,oe.createElement(Pc,{id:"widget-history-clear-btn",disabled:N,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},oe.createElement(va,{size:"medium",variant:"label",color:"error"},Fe.t("Clear"))))}},oe.createElement(ue,null,oe.createElement(qE,null,oe.createElement(At,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Fe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),oe.createElement(ko,{size:10,direction:"horizontal"}),oe.createElement(Nc,{filterBy:p,open:s,onOpenChange:x=>c(x),onClickItem:x=>u(x),list:y})),oe.createElement(ko,{size:"16"}),S&&!l&&oe.createElement(oe.Fragment,null,oe.createElement(zE,{items:C,onChange:x=>g(x.id),value:h,type:"secondary"}),oe.createElement(ko,{size:"12"})),oe.createElement(QE,null,w&&oe.createElement(bh,null,oe.createElement(ko,{size:32}),oe.createElement(UE,{title:r?Fe.t("No results found"):Fe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Fe.t("Try using different keywords"):Fe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!w&&oe.createElement(Mc,{list:T,onSwapClick:t,groupBy:Bh,isLoading:l}))),oe.createElement(R,{open:d,onClose:v,id:"widget-history-clear-modal",container:B()},oe.createElement(ko,{size:20}),oe.createElement(OE,{type:"warning",title:Fe.t("Clear Transaction History"),description:oe.createElement(GE,null,oe.createElement(va,{variant:"body",size:"medium"},Fe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),oe.createElement(ko,{size:"24"}),oe.createElement(va,{variant:"body",size:"small"},Fe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),oe.createElement(ko,{size:30}),oe.createElement(Pc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:A},Fe.t("Yes, Clear the history")),oe.createElement(ko,{size:10}),oe.createElement(Pc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:v},oe.createElement(va,{variant:"title",size:"medium",color:"primary"},Fe.t("No, Cancel")))))}i(Lh,"HistoryPage");import{i18n as ly}from"@lingui/core";import{Button as AI,Divider as Xc,styled as NI,WarningIcon as BI}from"@rango-dev/ui";import WI from"bignumber.js";import Ce,{useEffect as cy,useState as py}from"react";import{useNavigate as LI}from"react-router-dom";import{i18n as Ph}from"@lingui/core";import{Alert as jE,Divider as Dc,NoRouteIcon as XE,Typography as YE}from"@rango-dev/ui";import jo from"react";import{styled as KE}from"@rango-dev/ui";var Mh=KE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function $c(){let{fromToken:t,toToken:e}=H()();return!!t&&!!e&&qt(t,e)?jo.createElement(Mh,null,jo.createElement(Dc,{size:10}),jo.createElement(XE,{size:24,color:"gray"}),jo.createElement(Dc,{size:4}),jo.createElement(YE,{variant:"title",size:"small"},Ph.t("No Routes Found")),jo.createElement(Dc,{size:4}),jo.createElement(jE,{title:Ph.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i($c,"SameTokensWarning");import{Alert as ZE,Button as JE}from"@rango-dev/ui";import Dh from"react";import{i18n as xa}from"@lingui/core";function _h(t){let e=null;return t===Si?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:xa.t("Reset"),title:xa.t("Slippage cannot be set lower than 0.01%.")},e):t>an?(e={alertType:"warning",action:"change-settings",actionButtonTitle:xa.t("Change"),title:xa.t("Caution, your slippage is high!")},e):null}i(_h,"makeAlerts");function $h(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=_h(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(yi),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Dh.createElement(ZE,{title:c.title,type:c.alertType,variant:"alarm",action:Dh.createElement(JE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i($h,"SlippageWarningsAndErrors");import{i18n as nI}from"@lingui/core";import{IconButton as rI,ReverseIcon as iI,Skeleton as aI,Tooltip as sI,Typography as Fr}from"@rango-dev/ui";import gt from"react";import ba from"bignumber.js";function Oh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}i(Oh,"getSlippageColor");function Uh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ba(e),r=new ba(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(Uh,"getUsdExchangeRate");function zh(t,e){let o=new ba(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ba.ROUND_DOWN).toFormat(2)}`}i(zh,"formatTokenValueInUsd");import{darkTheme as tI,styled as Oc,Typography as oI}from"@rango-dev/ui";var Hh=Oc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Qh=Oc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${tI} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Uc=Oc(oI,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function zc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=mo({}),h=cn(d),g=f==="dark",m=n==="default",S={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,w=m?C:T,v=m?T:C,A=Number(m?p?.outputAmount:p?.requestAmount),N=Number(m?p?.requestAmount:p?.outputAmount),x=A||w.usdPrice,b=N||v.usdPrice,{rawValue:E,displayValue:W}=Uh({toTokenUsdPrice:b,fromTokenUsdPrice:x});return gt.createElement(Hh,null,gt.createElement(Fr,{variant:S||y?"label":"body",size:S||y?"medium":"small",color:Oh({error:S,warning:y,isDarkTheme:g})},nI.t("Slippage:")," ",d,"%"),u?gt.createElement(aI,{height:16,width:104,variant:"rounded"}):x&&b&&gt.createElement(Qh,null,gt.createElement(Fr,{className:"rate-text",variant:"body",size:"small"},"1"),gt.createElement(Uc,{className:"rate-text",variant:"body",size:"small"},v.symbol),gt.createElement(rI,{id:"widget-home-page-change-rate-button",onClick:r},gt.createElement(iI,{size:14,color:"secondary"})),gt.createElement(sI,{container:B(),side:"top",sideOffset:4,content:gt.createElement(Fr,{className:"rate-text",variant:"body",size:"small"},E)},gt.createElement(Fr,{className:"rate-text",variant:"body",size:"small"},W)),gt.createElement(Uc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&gt.createElement(Fr,{color:"neutral600",variant:"body",size:"small"},"~",zh(Number(E),w.usdPrice))))}i(zc,"SwapMetrics");import{i18n as mI}from"@lingui/core";import{Header as fI}from"@rango-dev/ui";import To,{useEffect as gI,useState as hI}from"react";import{i18n as cI}from"@lingui/core";import{Divider as Qc,FullExpandedQuote as pI,Typography as uI}from"@rango-dev/ui";import ve from"react";import{styled as Hc}from"@rango-dev/ui";var qh=Hc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Gh=Hc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Vh=Hc("div",{width:"146px"});import{i18n as Or}from"@lingui/core";import{Select as lI}from"@rango-dev/ui";import Kh from"react";function Ea(t){let{updateQuotePartialState:e,sortStrategy:o}=H()(),n=[{value:"SMART",label:Or.t("Smart Routing")},{value:"FEE",label:Or.t("Lowest Fee")},{value:"SPEED",label:Or.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Or.t("Maximum Return")},{value:"PRICE",label:Or.t("Maximum Output")}];return Kh.createElement(Vh,null,Kh.createElement(lI,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Ea,"SelectStrategy");var jh=3;function Ur(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:d,toToken:f,sortStrategy:h,error:g}=H()(),{slippage:m,customSlippage:S}=k(),{findToken:y}=k(),C=c||B(),T=!!p&&p.results.length,w=S??m,v=i(x=>{if(!d||!f||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...x};return Cn({currentQuote:b,userSlippage:w,findToken:y})},"getQuoteWarning"),A=g?.type===0||g?.type===1,N=p?.results?Li(h,p?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(Gh,null,ve.createElement(uI,{size:"xmedium",variant:"title"},cI.t("Sort by")),ve.createElement(Ea,{container:C})),ve.createElement(Qc,{size:"10"})),e&&Array.from({length:jh},(x,b)=>ve.createElement(ve.Fragment,{key:b},s?ve.createElement(pI,{loading:!0}):ve.createElement(Ir,{tagHidden:!1,type:"list-item",expanded:!1}),b!==jh-1&&ve.createElement(Qc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,T?N.map((x,b)=>{let E=v(x),W=cc(x.swaps),I=N.length-1===b;return ve.createElement(ve.Fragment,{key:x.requestId},ve.createElement(Go,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===x.requestId,tagHidden:!1,quote:{...x,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:W?.options||null,warning:E,fullExpandedMode:s,onClick:_=>{W||u("warning",E),u("error",W?.options||null),o(_)},type:"list-item"}),!I&&ve.createElement(Qc,{size:16}))}):A&&ve.createElement(qh,null,ve.createElement(kr,{size:s?"large":"small",error:g,fetch:n}))))}i(Ur,"Quotes");import{darkTheme as dI,styled as Xh}from"@rango-dev/ui";var Yh=Xh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${dI} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Zh=Xh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var yI=100;function qc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=hI(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",d=Wo();return gI(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},yI):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),To.createElement(Yh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Gi()} widget-expanded-quotes-container`,id:ot.EXPANDED_BOX_ID},To.createElement(fI,{title:mI.t("Routes"),suffix:To.createElement(To.Fragment,null,To.createElement(Ea,{container:d}),To.createElement(zo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),To.createElement(Zh,null,To.createElement(Ur,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Wo(),onClickOnQuote:n,fullExpandedMode:u})))}i(qc,"ExpandedQuotes");import{i18n as ry}from"@lingui/core";import{SwapInput as iy}from"@rango-dev/ui";import TI from"bignumber.js";import zr from"react";import{ReverseIcon as kI}from"@rango-dev/ui";import Vc from"react";import{keyframes as SI,styled as Jh}from"@rango-dev/ui";var Gc=450,CI=SI({"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)"}}),Rh=Jh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),ey=Jh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${CI} ${Gc}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 Kc(){let t=H().use.switchFromAndTo();return Vc.createElement(Rh,null,Vc.createElement(ey,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Gc),t()}},Vc.createElement(kI,{size:12})))}i(Kc,"SwitchFromAndToButton");import{styled as ty}from"@rango-dev/ui";var oy=ty("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),ny=ty("div",{position:"relative"});function jc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:d,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:m}=H()(),{swapMode:S}=rt(),{connectedWallets:y,getBalanceFor:C}=k(),T=a?C(a):null,w=fi(T)?.amount??"0",v=T?new TI(T.amount).shiftedBy(-T.decimals):de,A=!!s&&Nu(y,s.name),N=!Ks(m,d,f),x=!Ks(m,d,g),b=!f||!g||!g.gt(0)?null:jt(f.toString(),g.toString());return zr.createElement(oy,null,zr.createElement(ny,null,zr.createElement(iy,{label:ry.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:w,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:N?void 0:P(f,4,4),realUsdValue:N?void 0:f?.toString(),error:N?re().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:A,tooltipContainer:B(),onSelectMaxBalance:()=>{let E=P(v,T?.decimals),W=T?.amount?E.split(",").join(""):"";p(W)},anyWalletConnected:y.length>0}),S==="swap"&&zr.createElement(Kc,null)),zr.createElement(iy,{selectionType:S==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:ry.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:P(jt(f,g),2,2),warningLevel:Xt(b??0),price:{value:P(h,6,6),usdValue:x?void 0:P(g,4,4),realValue:h?.toString(),realUsdValue:x?void 0:g?.toString(),error:x?re().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(jc,"Inputs");import{warn as wI}from"@rango-dev/logging-core";import{useCallback as vI,useEffect as xI,useRef as bI,useState as EI}from"react";function ay(){let{fetch:t,loading:e,cancelFetch:o}=ha({request:async(n,r)=>await ut().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(ay,"useFetchAllQuotes");var II=600;function Ia({refetchQuote:t}){let{fetch:e,cancelFetch:o}=ay(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(le=>le.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:S,setSelectedQuote:y,updateQuotePartialState:C}=H()(),{slippage:T,customSlippage:w,affiliatePercent:v,affiliateRef:A,affiliateWallets:N,fetchStatus:x}=k(),b=k().getLiquiditySources(),E=k().getDisabledLiquiditySources(),W=k().excludeLiquiditySources(),{findToken:I}=k(),{swapMode:_}=rt(),[U,G]=EI(!0),Y=bI(u),L=w??T,J=!l||!p||qt(l,p)||!Kn(u),te=i(le=>{G(le)},"resetState"),se=i(le=>{let{fromToken:Xe,toToken:He,inputAmount:Wt,liquiditySources:$,excludeLiquiditySources:z,disabledLiquiditySources:V,slippage:pe,affiliateRef:Q,affiliatePercent:X,affiliateWallets:j}=le;if(U||te(!0),!J&&Xe&&He){g();let Ie=Kd({fromToken:Xe,toToken:He,inputAmount:Wt,liquiditySources:$,excludeLiquiditySources:z,disabledLiquiditySources:V,wallets:a,slippage:pe,affiliateRef:Q,affiliatePercent:X,affiliateWallets:j,contractCall:c});ln("experimental",r)&&(Ie.experimental=!0),ln("avoidNativeFee",r)&&(Ie.avoidNativeFee=!0),ln("enableCentralizedSwappers",r)&&(Ie.enableCentralizedSwappers=!0),r?.maxLength&&(Ie.maxLength=r.maxLength),_==="refuel"&&(Ie.maxLength=1),e(Ie).then(Ae=>{let Ye=Li(h,Ae.results),Lt=_d(f,Ye,Ae.requestAmount);G(!1),C("quotes",Ae),y(Lt),ya({diagnosisMessages:Ae.diagnosisMessages,requestId:Lt?.requestId||"",swaps:Lt?.swaps});let so=Lt&&Cn({currentQuote:Lt,userSlippage:L,findToken:I});C("warning",so)}).catch(Ae=>{let Ye=Sa(Ae);(Ye.type===0||Ye.type===1)&&g(),Ye.type!==2&&(C("error",Ye),G(!1),wI(new Error("quote error"),{tags:{...Ye,type:Re[Ye.type],requestBody:Ie}}))})}},"fetch"),je=vI(si(le=>{se(le)},II),[J]);return xI(()=>{if(!t){G(!1);return}if(x!=="success")return;if(J){G(!1),(f||m||S)&&g();return}if(!Kn(u)&&d?.eq(0)){te(!1),o();return}g(),te(!0);let le=se;return Y.current&&Y.current!=u&&(le=je),Y.current=u,le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:W,disabledLiquiditySources:E,slippage:L,affiliateRef:A,affiliatePercent:v,affiliateWallets:N,contractCall:c}),o},[x,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,J,b?.length,n,E.length,L,A,v,c,JSON.stringify(N)]),{fetch:()=>se({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:W,disabledLiquiditySources:E,slippage:L,affiliateRef:A,affiliatePercent:v,affiliateWallets:N,contractCall:c}),loading:U}}i(Ia,"useSwapInput");function sy(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};we.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(sy,"emitPreventableEvent");var MI=NI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),PI=300;function uy(){let t=LI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=H()(),[h,g]=py(!1),{isLargeScreen:m,isExtraLargeScreen:S}=wn(),{fetch:y,loading:C}=Ia({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:v,customSlippage:A,slippage:N,setSlippage:x,setCustomSlippage:b}=k(),{isActiveTab:E}=ne(),[W,I]=py(!1),_=A!==null?A:N,{swapMode:U}=rt(),G=cn(_),L=Qd({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:v.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),ee=Du(m,S,T?.variant),J=!!n&&!!e&&!!o&&new WI(n).gt(0)&&!em(e,o),te=J&&w==="success"&&C,se=G?.quoteValidation||c,Xe=(!ee||ee&&l?.results.length)&&(se||s),He=!!e&&!!o,Wt=He&&!!G,$=(r||s)&&!W?y:void 0,z=i(X=>{ee&&h?(g(!1),setTimeout(()=>{t(X)},PI)):t(X)},"onHandleNavigation"),V=i(X=>{r?.requestId!==X.requestId&&(I(!1),p(X))},"onClickOnQuote"),pe=i(X=>{if(X){if(hi.includes(X)){x(X),b(null);return}b(X)}},"onChangeSlippage"),Q=i(X=>{z(X==="from"?F.fromSwap:U==="swap"?F.toSwap:F.toSwap+"/"+F.blockchains)},"handleInputTokenClick");return cy(()=>{u(),f("refetchQuote",!0)},[]),cy(()=>{g(J)},[J]),Ce.createElement(MI,null,Ce.createElement(ae,{height:"auto",footer:Ce.createElement(AI,{id:`widget-swap-${L.action}-btn`,type:"primary",size:"large",disabled:L.disabled||!E,prefix:L.action==="confirm-warning"&&Ce.createElement(BI,null),fullWidth:!0,onClick:()=>{L.action==="connect-wallet"?sy({type:"clickConnectWallet"},()=>z(F.wallets)):L.action==="confirm-warning"?I(!0):z(F.confirmSwap)}},L.title),header:{onWallet:()=>{z(F.wallets)},hasBackButton:!1,title:T.title||(U==="swap"?ly.t("Swap"):ly.t("Refuel")),suffix:Ce.createElement(zo,{hidden:ee?["refresh"]:void 0,onClickRefresh:$,onClickHistory:()=>z(F.swaps),onClickSettings:()=>{z(F.settings)}})}},Ce.createElement(ue,null,Ce.createElement(jc,{fetchingQuote:te,fetchMetaStatus:w,isExpandable:ee,onClickToken:Q}),Ce.createElement(Xc,{size:"2"}),ee?null:Ce.createElement(Go,{quote:r,loading:te,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:se,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),z(F.routes)}:void 0}),He&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Xc,{size:8}),Ce.createElement(zc,{quoteError:s,quoteWarning:se,fromToken:e,toToken:o,quote:r,loading:te})),Xe?Ce.createElement(Ce.Fragment,null,Ce.createElement(wr,{warning:se,error:s,skipAlerts:!!G,couldChangeSettings:!0,refetchQuote:y,showWarningModal:W,confirmationDisabled:!E,onOpenWarningModal:()=>I(!0),onCloseWarningModal:()=>I(!1),onChangeSlippage:pe,onConfirmWarningModal:()=>{I(!1),d(!0),z(F.confirmSwap)},onChangeSettings:()=>z(F.settings)})):null,Wt&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Xc,{size:"10"}),Ce.createElement($h,{onChangeSettings:()=>z(F.settings)})),Ce.createElement($c,null))),ee?Ce.createElement(qc,{loading:te,onClickOnQuote:V,fetch:y,onClickRefresh:$,isVisible:h}):null)}i(uy,"Home");import{i18n as dy}from"@lingui/core";import{Alert as _I,Divider as DI,List as $I,ListItemButton as FI,Radio as OI,RadioRoot as UI,Typography as zI}from"@rango-dev/ui";import Ot from"react";function wo(){let{setLanguage:t,language:e,config:o}=k(),n=Qu,r=o?.language||pn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||pn),resetLanguage:()=>t(null)}}i(wo,"useLanguage");function my(){let{activeLanguage:t,changeLanguage:e,languages:o}=wo(),n=Ge(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ot.createElement(zI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ot.createElement(OI,{value:s}),start:Ot.createElement(l,null)}});return Ot.createElement(ae,{header:{title:dy.t("Language")}},Ot.createElement(ue,null,Ot.createElement(_I,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ot.createElement(DI,{size:"8"}),Ot.createElement(UI,{value:t},Ot.createElement($I,{type:Ot.createElement(FI,{title:dy.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(my,"LanguagePage");import{i18n as no}from"@lingui/core";import{Button as VI,Checkbox as KI,Image as jI,ListItemButton as XI,NotFound as YI,Typography as ZI}from"@rango-dev/ui";import tt,{useState as JI}from"react";import{Checkbox as qI,Skeleton as gy}from"@rango-dev/ui";import Qr from"react";import{styled as Yc}from"@rango-dev/ui";var Hr=Yc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Zc=Yc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Jc=Yc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as HI,styled as QI}from"@rango-dev/ui";var fy=QI(HI,{height:61});var GI=30;function Rc(){return Qr.createElement(Hr,null,Array.from(Array(GI),(t,e)=>Qr.createElement(fy,{hasDivider:!0,key:e,start:Qr.createElement(gy,{variant:"circular",width:35,height:35}),title:Qr.createElement(gy,{variant:"text",size:"large",width:90}),end:Qr.createElement(qI,{checked:!1})})))}i(Rc,"LoadingLiquiditySourceList");function ep({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=JI(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=Ci(o,n),p={Exchanges:no.t("Exchanges"),Bridges:no.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(y=>u.includes(y.type)),f=d.length===d.filter(y=>y.selected).length,h=i(()=>{d.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=d.map(y=>{let{selected:C,groupTitle:T,logo:w,id:v,...A}=y;return{id:`widget-setting-liquidity-source-${yu(v.toLowerCase())}-item-btn`,start:tt.createElement(jI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:tt.createElement(KI,{checked:C,disabled:c}),title:tt.createElement(ZI,{variant:"title",size:"xmedium"},no.t(T)),selected:C,groupTitle:T,logo:w,...A}}),m=i(y=>{let C=y.target.value;a(C)},"handleSearch"),S=g;return r&&(S=g.filter(y=>Pt(y.groupTitle,r))),tt.createElement(ae,{header:{title:no.t(t),suffix:tt.createElement(Zc,null,tt.createElement(VI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?no.t("Deselect all"):no.t("Select all")))}},tt.createElement(ue,{view:!0},tt.createElement(At,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:no.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&tt.createElement(Rc,null),!S.length&&r?tt.createElement(Jc,null,tt.createElement(YI,{title:no.t("No results found"),description:no.t("Try using different keywords")})):e==="success"&&tt.createElement(Hr,{disabled:c,className:"widget-liquidity-source-list"},S.map(y=>{let{groupTitle:C,...T}=y;return tt.createElement(tt.Fragment,{key:y.id},tt.createElement(XI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(ep,"LiquiditySourcePage");import{i18n as RI}from"@lingui/core";import Aa from"react";import{useNavigate as eA}from"react-router-dom";function hy(){let t=eA(),e=Ge(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=H()(),{fetch:c,loading:l}=Ia({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,d=`../${F.wallets}`;return Aa.createElement(ae,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:RI.t("Routes"),suffix:Aa.createElement(zo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Aa.createElement(ue,null,Aa.createElement(Ur,{fetch:c,loading:l,onClickOnQuote:p})))}i(hy,"RoutesPage");import{i18n as vy}from"@lingui/core";import{Divider as xy,getCategoriesCount as pA,SelectableCategoryList as uA}from"@rango-dev/ui";import ro,{useState as by}from"react";import{useNavigate as dA}from"react-router-dom";import{i18n as tp}from"@lingui/core";import{Divider as rA,Image as iA,ListItemButton as aA,NotFound as sA,Typography as wy}from"@rango-dev/ui";import ht,{useEffect as lA,useState as cA}from"react";var yy=i((t,e,o)=>t.filter(n=>li(n.type,o)).filter(n=>ct(n.name,e)||ct(n.displayName,e)),"filterBlockchains");import{ImageContainer as tA,styled as Sy}from"@rango-dev/ui";var Cy=Sy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Na=Sy(Al,{padding:0,margin:0,listStyle:"none",[`& ${tA}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as oA,Skeleton as ky}from"@rango-dev/ui";import Ba from"react";var nA=20;function Ty(){return Ba.createElement(Na,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(nA),t=>Ba.createElement(oA,{key:t,hasDivider:!0,start:Ba.createElement(ky,{variant:"circular",width:35,height:35}),title:Ba.createElement(ky,{variant:"text",size:"large",width:90})})))}i(Ty,"LoadingBlockchainList");function op(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=cA(e),{fetchStatus:l}=k();lA(()=>{c([...yy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ht.createElement(sA,{title:tp.t("No results found"),description:tp.t("Try using different keywords")}):ht.createElement(Na,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ht.createElement(aA,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ht.createElement(iA,{src:u.logo,size:30}),title:ht.createElement(wy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ht.createElement(ht.Fragment,null,a&&ht.createElement(ht.Fragment,null,ht.createElement(wy,{variant:"label",size:"large"},tp.t("Select Chain")),ht.createElement(rA,{size:4})),ht.createElement(Cy,null,l==="loading"&&ht.createElement(Ty,null),l==="success"&&p()))}i(op,"BlockchainList");function Wa(t){let{type:e}=t,o=Ge(),[n,r]=by(""),[a,s]=by("ALL"),c=H().use.setToBlockchain(),l=H().use.setFromBlockchain(),p=H().use.setToToken(),{fetchStatus:u,findNativeToken:d}=k(),f=dA(),{swapMode:h}=rt(),g=k().blockchains({type:e}),m=pA(g),S=!t.hideCategory&&m!==1,y=i(C=>{if(e==="custom-token")f(`..?blockchain=${C.name}`,{replace:!0});else{if(e==="source")l(C);else if(h==="swap")c(C);else{let T=d(C);T&&p({token:T,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return ro.createElement(ae,{header:{title:vy.t("Select Chain")}},ro.createElement(ue,{view:!0},S&&ro.createElement(ro.Fragment,null,ro.createElement(uA,{setCategory:s,category:a,blockchains:g,isLoading:u==="loading"}),ro.createElement(xy,{size:24})),ro.createElement(At,{value:n,autoFocus:!0,placeholder:vy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:C=>r(C.target.value)}),ro.createElement(xy,{size:16}),ro.createElement(op,{list:g,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:y})))}i(Wa,"SelectBlockchainPage");import{i18n as Pa}from"@lingui/core";import{Divider as Ly,Spinner as IA}from"@rango-dev/ui";import vo,{useEffect as AA,useState as NA}from"react";import{useNavigate as BA}from"react-router-dom";import{i18n as ip}from"@lingui/core";import{BlockchainsChip as La,Divider as Ny,Image as By,Skeleton as SA,Tooltip as CA,Typography as ap}from"@rango-dev/ui";import xe from"react";import{useEffect as gA}from"react";var Ey=["ETH","COSMOS","OSMOSIS"];function np(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(mA),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p?.name!==u)}}n.sort(fA(s)),r=n.splice(a)}return{list:n,more:r}}i(np,"prepare");function mA(t,e){let o=Ey,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(mA,"sortByMostUsedBlockchains");function fA(t){return i(function(o,n){let r=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=r>-1,c=a>-1;return s&&c?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(fA,"generateSortByPreferredBlockchainsFor");function Iy(t,e){return!!e.list.find(o=>o.name===t)}i(Iy,"isInVisibleList");function rp(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();gA(()=>{if(e?.selected){let a=np(t,o,e);Iy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=np(t,o,e);return{list:r.list,more:r.more,history:[]}}i(rp,"usePrepareBlockchainList");import{styled as hA}from"@rango-dev/ui";var Ay=hA("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var kA=6,TA=12;function sp(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=ne(),c=rp(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=H().use.resetToBlockchain(),u=H().use.resetFromBlockchain(),d=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&d;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(Ny,{size:12}),xe.createElement(ap,{variant:"label",size:"large"},ip.t("Select Chain"))),xe.createElement(Ny,{size:12}),xe.createElement(Ay,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?kA:TA),(m,S)=>xe.createElement(SA,{key:S,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(La,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(ap,{variant:"body",size:"xsmall",color:"secondary500"},ip.t("All"))),c.list.map(m=>xe.createElement(CA,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:B()},xe.createElement(La,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(By,{src:m.logo,size:30})))),h?xe.createElement(La,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(By,{src:f.logo,size:30})):null,g?xe.createElement(La,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(ap,{variant:"body",size:"xsmall",color:"secondary500"},ip._("More +{count}",{count:c.more.length}))):null)))}i(sp,"BlockchainsSection");import{useCallback as vA,useRef as xA,useState as lp}from"react";function cp(){let t=k().blockchains(),e=xA(null),{customTokens:o}=k(),[n,r]=lp(!1),[a,s]=lp([]),[c,l]=lp(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await ut().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(C=>Vt(C))),S=new Set(t.map(C=>C.name)),y=g.tokens.filter(C=>S.has(C.blockchain)&&!m.has(Vt(C)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=vA(si((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(cp,"useSearchCustomTokens");function Ma(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(Ma,"shouldSearchForCustomTokens");function Wy(t,e,o,n,r){let a=[...t];return Ma(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(Wy,"prepareTokensList");function _a(t){let{type:e}=t,o=BA(),n=Ge(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=H()(),{getBalanceFor:u}=k(),{fetch:d,loading:f,tokens:h,cancel:g}=cp(),[m,S]=NA(""),y=e==="source"?r:a,C=y?.name??"",T=k().blockchains({type:e}),w=k().tokens({type:e,blockchain:C,searchFor:m,getBalanceFor:u}),v=Wy(w,h,m,f,y?.name),A=i(b=>{e==="source"?l(b):p(b)},"updateBlockchain"),N=i(b=>{e==="source"?s({token:b,meta:{blockchains:T}}):c({token:b,meta:{blockchains:T}})},"updateToken"),x={source:Pa.t("Source"),destination:Pa.t("Destination")};return AA(()=>(Ma(w,m,y?.name)&&d(m,y?.name??void 0),()=>{g()}),[w.length,m,y?.name]),vo.createElement(ae,{header:{title:Pa.t("Swap {type}",{type:x[e]})}},vo.createElement(ue,null,vo.createElement(sp,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{A(b)}}),vo.createElement(Ly,{size:24}),vo.createElement(At,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Pa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:b=>S(b.target.value),suffix:Ma(w,m,y?.name)&&f?vo.createElement(IA,{size:12,color:"secondary"}):void 0}),vo.createElement(Ly,{size:16}),vo.createElement(Lr,{list:v,selectedBlockchain:C,searchedFor:m,type:e,onChange:b=>{N(b);let E=T.find(W=>b.blockchain===W.name);E&&A(E),n()}})))}i(_a,"SelectSwapItemsPage");import{i18n as mp}from"@lingui/core";import{Alert as nN,Button as rN,styled as iN}from"@rango-dev/ui";import Xo from"react";import{useInRouterContext as aN,useSearchParams as sN}from"react-router-dom";import{i18n as Fy}from"@lingui/core";import{Alert as PA,Divider as up,InfoIcon as _A,SlippageIcon as DA,TextField as $A,Tooltip as FA,Typography as Oy}from"@rango-dev/ui";import Ue from"react";import{Chip as WA,styled as qr,TextField as LA}from"@rango-dev/ui";var My=qr("div",{paddingTop:"$5",padding:"$10 $5"}),Py=qr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${LA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),_y=qr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Da=qr("div",{maxWidth:"280px",padding:"$10"}),Dy=qr(WA,{width:"61px",flexShrink:0});import{i18n as pp}from"@lingui/core";import{Typography as MA}from"@rango-dev/ui";import Gr from"react";function $y(){return Gr.createElement(Da,null,Gr.createElement(MA,{variant:"label",size:"medium",color:"neutral700"},pp.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Gr.createElement("br",null),Gr.createElement("br",null),Gr.createElement("b",null,pp.t("Warning")),":\xA0",pp.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($y,"SlippageTooltipContent");function dp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?cn(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>Zn&&(d=Zn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;Cu(u)||(p.value=u.slice(0,-1))},"onInput");return Ue.createElement(My,null,Ue.createElement(_y,null,Ue.createElement(DA,{size:16,color:"gray"}),Ue.createElement(up,{direction:"horizontal",size:4}),Ue.createElement(Oy,{variant:"title",size:"xmedium"},Fy.t("Slippage tolerance per swap")),Ue.createElement(up,{direction:"horizontal",size:4}),Ue.createElement(FA,{container:B(),side:"top",sideOffset:4,content:Ue.createElement($y,null)},Ue.createElement(_A,{color:"gray"}))),Ue.createElement(Py,null,hi.map((l,p)=>{let u=`slippage-${p}`;return Ue.createElement(Dy,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Ue.createElement($A,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&Ue.createElement(Oy,{variant:"body",size:"small"},"%"),placeholder:Fy.t("Custom")})),r&&Ue.createElement(Ue.Fragment,null,Ue.createElement(up,{size:10}),Ue.createElement(PA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(dp,"Slippage");import{i18n as wt}from"@lingui/core";import{AutoThemeIcon as Uy,BridgesIcon as OA,ChevronRightIcon as $a,DarkModeIcon as zy,Divider as Vr,ExchangeIcon as UA,InfinityIcon as zA,InfoIcon as HA,LanguageIcon as QA,LightModeIcon as Hy,List as qA,ListItem as GA,ListItemButton as VA,Skeleton as KA,styled as jA,Switch as XA,Tabs as YA,TargetIcon as ZA,Tooltip as JA,Typography as lt}from"@rango-dev/ui";import D from"react";import{useNavigate as RA}from"react-router-dom";var eN=jA("div",{width:"202px",height:"$40"}),tN=[{id:"light",icon:D.createElement(Hy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},wt.t("Light"))},{id:"dark",icon:D.createElement(zy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},wt.t("Dark"))},{id:"auto",icon:D.createElement(Uy,{color:"black",size:24}),tooltip:D.createElement(lt,{size:"xsmall",variant:"body"},wt.t("Auto"))}],oN=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(Uy,{...e});case"dark":return D.createElement(zy,{...e});default:return D.createElement(Hy,{...e})}},"getThemeIcon");function Qy(){let t=RA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=wo(),s=a.find(L=>L.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),d=k().customTokens(),f=nt("theme",u),h=nt("liquiditySource",u),g=nt("language",u),m=nt("customTokens",u),S=k().infiniteApprove,y=k().toggleInfiniteApprove,C=Ci(l,p),T=C.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),w=T.length,v=T.filter(L=>L.selected).length,A=C.filter(L=>L.type==="DEX"),N=A.length,x=A.filter(L=>L.selected).length,b=i((L,ee)=>{switch(c){case"loading":return D.createElement(KA,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(lt,{variant:"body",size:"medium",color:"$error500"},wt.t("Loading failed"));default:return D.createElement(lt,{variant:"body",size:"medium"},`${L} / ${ee}`)}},"handleSwapperEndItem"),E={id:"widget-setting-bridge-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Bridges")),end:D.createElement(D.Fragment,null,b(v,w),D.createElement(Vr,{direction:"horizontal",size:8}),D.createElement($a,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(OA,{color:"gray",size:16})},W={id:"widget-setting-exchange-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Exchanges")),end:D.createElement(D.Fragment,null,b(x,N),D.createElement(Vr,{direction:"horizontal",size:8}),D.createElement($a,{color:"black"})),start:D.createElement(UA,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},I={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Vr,{direction:"horizontal",size:8}),D.createElement($a,{color:"black"})),start:D.createElement(ZA,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},_={id:"widget-setting-language-item-btn",title:D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Language")),start:D.createElement(QA,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"body",size:"medium"},s),D.createElement(Vr,{direction:"horizontal",size:8}),D.createElement($a,{color:"black"})),onClick:()=>t(F.languages)},U={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Infinite approval")),D.createElement(Vr,{direction:"horizontal",size:4}),D.createElement(JA,{side:"top",sideOffset:4,container:B(),content:D.createElement(Da,null,D.createElement(lt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,wt.t("Warning")),":\xA0",wt.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(HA,{color:"gray"}))),start:D.createElement(zA,{color:"gray",size:16}),end:D.createElement(XA,{checked:S}),onClick:y},G={id:"widget-setting-theme-item-btn",type:D.createElement(GA,null),title:D.createElement(lt,{variant:"title",size:"xmedium"},wt.t("Theme")),end:D.createElement(eN,null,D.createElement(YA,{container:B(),items:tN,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:oN(n)},Y=h?[]:[E,W];return m||Y.push(I),g||Y.push(_),Y.push(U),!e?.singleTheme&&!f&&Y.push(G),D.createElement(qA,{type:D.createElement(VA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:Y})}i(Qy,"SettingsLists");var lN=iN("div",{paddingLeft:"$8"});function qy(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=sN(),r=aN(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Xo.createElement(ae,{header:{title:mp.t("Settings")}},Xo.createElement(ue,null,o&&Xo.createElement(nN,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:mp.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:Xo.createElement(lN,null,Xo.createElement(rN,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},mp.t("Reset")))}),Xo.createElement(dp,null),Xo.createElement(Qy,null)))}i(qy,"SettingsPage");import{i18n as S0}from"@lingui/core";import{cancelSwap as C0}from"@rango-dev/queue-manager-rango-preset";import{useManager as k0}from"@rango-dev/queue-manager-react";import{Alert as T0}from"@rango-dev/ui";import Bp from"react";import{useParams as w0}from"react-router-dom";import{i18n as zt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as r0,getCurrentStep as i0,getRelatedWalletOrNull as a0}from"@rango-dev/queue-manager-rango-preset";import{Button as FS,Divider as s0,QuoteCost as l0,StepDetails as c0,Typography as xp}from"@rango-dev/ui";import{useWallets as p0}from"@rango-dev/wallets-react";import OS from"bignumber.js";import{PendingSwapNetworkStatus as On}from"rango-types";import Te,{useEffect as bp,useRef as Ep,useState as Va}from"react";import{useNavigate as u0}from"react-router-dom";import{i18n as xo}from"@lingui/core";var cN=[xo.t("Sunday"),xo.t("Monday"),xo.t("Tuesday"),xo.t("Wednesday"),xo.t("Thursday"),xo.t("Friday"),xo.t("Saturday")];function Gy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?xo.t("Today"):`${cN[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Gy,"timeSince");function Vy(t){return t.finishTime?Gy(parseInt(t.finishTime)):Gy(parseInt(t.creationTime))}i(Vy,"getSwapDate");import Kr from"react";import{i18n as Fa}from"@lingui/core";import{Button as Ky,Divider as fp,MessageBox as pN}from"@rango-dev/ui";import bo from"react";var jy=i(({onCancel:t,onClose:e})=>bo.createElement(bo.Fragment,null,bo.createElement(fp,{size:20}),bo.createElement(pN,{type:"error",title:Fa.t("Cancel Swap"),description:Fa.t("Are you sure you want to cancel this swap?")}),bo.createElement(fp,{size:32}),bo.createElement(Ky,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Fa.t("Yes, Cancel it")),bo.createElement(fp,{size:12}),bo.createElement(Ky,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Fa.t("No, Continue"))),"CancelContent");import{i18n as Oa}from"@lingui/core";import{Button as Xy,Divider as gp,MessageBox as uN,Typography as dN}from"@rango-dev/ui";import io from"react";var Yy=i(({onDelete:t,onClose:e})=>io.createElement(io.Fragment,null,io.createElement(gp,{size:20}),io.createElement(uN,{type:"error",title:Oa.t("Delete Transaction"),description:Oa.t("Are you sure you want to delete this swap?")}),io.createElement(gp,{size:32}),io.createElement(Xy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Oa.t("Yes, Delete it")),io.createElement(gp,{size:12}),io.createElement(Xy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},io.createElement(dN,{variant:"title",size:"medium",color:"primary"},Oa.t("No, Cancel")))),"DeleteContent");import{i18n as mN}from"@lingui/core";import{Button as fN,Divider as gN,MessageBox as hN}from"@rango-dev/ui";import Yo from"react";var Zy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Yo.createElement(Yo.Fragment,null,Yo.createElement(hN,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Yo.createElement(Yo.Fragment,null,Yo.createElement(gN,{size:"30"}),Yo.createElement(fN,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},mN.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as PN,getCurrentStep as _N,getRelatedWalletOrNull as DN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as $N}from"@rango-dev/ui";import{useWallets as FN}from"@rango-dev/wallets-react";import rS from"react";import{i18n as $n}from"@lingui/core";import{Alert as eS,Button as CN,Checkbox as kN,Divider as Ha,Image as TN,MessageBox as wN,Spinner as vN,WarningIcon as xN}from"@rango-dev/ui";import{useWallets as bN}from"@rango-dev/wallets-react";import Se,{useState as EN}from"react";import{css as yN,darkTheme as SN,styled as hp}from"@rango-dev/ui";var Jy=yN({wordWrap:"break-word",display:"block"}),Ry=hp("img",{width:"100%"}),Ua=hp("div",{position:"relative"}),za=hp("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${SN} &`]:{$$color:"$warning600"}});var tS=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=EN(null),{list:s}=vt(),c=ne.use.isActiveTab(),{state:l,connect:p}=bN(),u=s.find(v=>v.type===e.walletType),d=u?.needsNamespace?.data.find(v=>v.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,m=u.isHub?h?.connected:f.connected,S=i(()=>m?$n.t("Done"):r?$n.t("Try again"):$n.t("Connect"),"getButtonTitle"),y=i(()=>g?Se.createElement(vN,{color:"info"}):r||m?null:Se.createElement(kN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(v){a(v)}},"handleConnect"),T=i(async()=>{if(m){n();return}C()},"handleClickButton"),w=i(()=>{if(!m)return null;let v=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),A=v?.[v?.length-1];return A?lo(A):null},"getAddress");return Se.createElement(Se.Fragment,null,Se.createElement(wN,{type:"warning",title:$n.t("Connect {wallet}",{wallet:u.title}),description:$n.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:Se.createElement(Ua,null,Se.createElement(TN,{src:u.image,size:45}),Se.createElement(za,null,Se.createElement(xN,{color:"warning",size:10})))}),m&&!d&&Se.createElement(Se.Fragment,null,Se.createElement(Ha,{size:10}),Se.createElement(eS,{type:"success",variant:"alarm",title:$n.t("Wallet connected successfully.")})),r&&!d&&Se.createElement(Se.Fragment,null,Se.createElement(Ha,{size:10}),Se.createElement(eS,{type:"error",title:r?.message,variant:"alarm"})),d&&Se.createElement(Se.Fragment,null,Se.createElement(Ha,{size:30}),Se.createElement(_o,{namespace:d,suffix:y(),error:r?.message,connected:m,address:w()})),Se.createElement(Ha,{size:"40"}),Se.createElement(CN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},S()))},"ConnectWalletContent");import{i18n as oS}from"@lingui/core";import{Button as IN,Divider as AN,Image as NN,MessageBox as BN,WarningIcon as WN}from"@rango-dev/ui";import{useWallets as LN}from"@rango-dev/wallets-react";import{detectInstallLink as MN}from"@rango-dev/wallets-shared";import ao from"react";var nS=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=LN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(MN(n.installLink),"_blank"),"handleButtonClick");return ao.createElement(ao.Fragment,null,ao.createElement(BN,{type:"warning",title:oS.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:ao.createElement(Ua,null,ao.createElement(NN,{src:n.img,size:45}),ao.createElement(za,null,ao.createElement(WN,{color:"warning",size:10})))}),ao.createElement(AN,{size:"40"}),ao.createElement(IN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},oS.t("Install")))},"InstallWalletContent");var iS=i(t=>{let{swap:e,onClose:o}=t,{state:n,getWalletInfo:r}=FN(),a=_N(e),s=a?DN(e,a):null,c=s?.walletType,l=c?jn(r(c),n(c)):null,p=a?PN(e,a):null;return c?l===$N.NOT_INSTALLED?rS.createElement(nS,{walletType:c}):rS.createElement(tS,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function yp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Kr.createElement(R,{open:e,onClose:r,container:B()},o==="connectWallet"&&Kr.createElement(iS,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Kr.createElement(Zy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Kr.createElement(Yy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Kr.createElement(jy,{onClose:r,onCancel:()=>{r(),s()}}))}i(yp,"SwapDetailsModal");import{i18n as jr}from"@lingui/core";import{Button as Sp,Divider as Xr,MessageBox as lS,TokenAmount as ON,Typography as cS}from"@rango-dev/ui";import ke from"react";import{Link as UN,useNavigate as zN}from"react-router-dom";var aS="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",sS="/profile";function Cp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:d,diagnosisUrl:f}=t,h=zN(),{showProfileBanner:g}=ne();return ke.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(ot.SWAP_BOX_ID)||document.body},n==="success"?ke.createElement(lS,{type:"success",title:jr.t("Swap Successful")},ke.createElement(ON,{direction:"vertical",tooltipContainer:B(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),ke.createElement(Xr,{size:12}),ke.createElement(cS,{className:Jy(),variant:"body",size:"medium",color:"neutral700",align:"center"},d)):ke.createElement(lS,{type:"error",title:jr.t("Transaction Failed"),description:d}),ke.createElement(Xr,{size:30}),n==="success"&&ke.createElement(ke.Fragment,null,g&&ke.createElement(ke.Fragment,null,ke.createElement(UN,{to:sS},ke.createElement(Ry,{src:aS,alt:"Profile Banner"})),ke.createElement(Xr,{size:30})),ke.createElement(Sp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},jr.t("Done"))),ke.createElement(Xr,{size:12}),f&&ke.createElement(ke.Fragment,null,ke.createElement(Sp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},jr.t("Diagnosis")),ke.createElement(Xr,{size:12})),ke.createElement(Sp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ke.createElement(cS,{variant:"title",size:"medium",color:"primary"},jr.t("See Details"))))}i(Cp,"SwapDetailsCompleteModal");import{i18n as Ga}from"@lingui/core";import{CopyIcon as RN,DoneIcon as e0,IconButton as t0,RangoExplorerIcon as o0,Tooltip as LS,Typography as MS,useCopyToClipboard as n0}from"@rango-dev/ui";import Bt from"react";import JN from"react";import{i18n as jN}from"@lingui/core";import{Alert as AS,IconButton as XN,LinkIcon as YN}from"@rango-dev/ui";import Eo,{Fragment as ZN}from"react";import{Alert as QN,ChevronDownIcon as qN,IconButton as GN}from"@rango-dev/ui";import Fn,{useState as VN}from"react";import{css as Yr,darkTheme as pS,styled as Ut,Typography as HN}from"@rango-dev/ui";var uS=Ut(ue,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${pS} &`]:{color:"$secondary500"}}}}}),dS=Ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),mS=Ut("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),fS=Ut("div",{padding:"$0 $20 $20 $20"}),LY=Ut("div",{display:"flex",flexDirection:"column",gap:"$10"}),gS=Ut("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),MY=Ut("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Zo=Yr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${pS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),hS=Yr({padding:"$5 0"}),Qa=Yr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),yS=Yr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),SS=Yr({width:"100%",padding:"0 $20 $10"}),CS=Ut("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),kS=Ut("div",{display:"flex",flexDirection:"column",gap:"$5"}),qa=Ut(HN,{wordBreak:"break-word"});import{styled as kp}from"@rango-dev/ui";var TS=kp("div",{display:"flex",flexDirection:"column",gap:"$10"}),wS=kp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),vS=kp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function xS(t){let{message:e}=t,[o,n]=VN(!1);return Fn.createElement(QN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Fn.createElement(GN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Fn.createElement(wS,{rotated:o},Fn.createElement(qN,{size:12,color:"gray"}))),footer:Fn.createElement(vS,{open:o},Fn.createElement(qa,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(xS,"FailedAlert");import{i18n as bS}from"@lingui/core";import{Alert as Tp,Button as ES}from"@rango-dev/ui";import{PendingSwapNetworkStatus as KN}from"rango-types";import Zr from"react";function IS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Zr.createElement(Tp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Zr.createElement(ES,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},bS.t("Change"))}):a===KN.WaitingForConnectingWallet?Zr.createElement(Tp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Zr.createElement(ES,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},bS.t("Connect"))}):Zr.createElement(Tp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(IS,"WarningAlert");function wp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=ur(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return Eo.createElement(TS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,S=h===g.length-1,y=(S&&u||p)&&!d,C=S&&s.status==="failed";return Eo.createElement(ZN,{key:m},Eo.createElement(AS,{id:"widget-swap-details-tx-alert",type:S&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:jN.t("View transaction"),action:f.url&&Eo.createElement(XN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},Eo.createElement(YN,{size:12}))}))}),d&&Eo.createElement(AS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&Eo.createElement(IS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&Eo.createElement(xS,{message:a}))}i(wp,"SwapDetailsAlerts");var NS=2e3;var BS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=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:yt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:P(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:yt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:P(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:qn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:yt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:yt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:qn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:JN.createElement(wp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function WS(t){if(ur(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(WS,"getStepState");function PS(t){let{requestId:e}=t,[o,n]=n0(NS);return Bt.createElement(mS,{className:Zo()},Bt.createElement(MS,{variant:"label",size:"large",color:"neutral700"},Ga.t("Request ID")),Bt.createElement("div",{className:Qa()},Bt.createElement(MS,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(LS,{container:B(),content:o?Ga.t("Copied To Clipboard"):Ga.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement(t0,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(e0,{size:16,color:"secondary"}):Bt.createElement(RN,{size:16,color:"gray"}))),Bt.createElement(CS,{target:"_blank",href:`${ou}/swap/${e}`},Bt.createElement(LS,{container:B(),content:Ga.t("View on Rango Explorer"),side:"bottom"},Bt.createElement(o0,{size:20})))))}i(PS,"RequestIdRow");import{i18n as _S}from"@lingui/core";import{Typography as DS}from"@rango-dev/ui";import vp from"react";function $S(t){let{date:e,isFinished:o}=t;return vp.createElement("div",{className:Zo()},vp.createElement(DS,{variant:"label",size:"large",color:"neutral700"},o?_S.t("Finished at"):_S.t("Created at")),vp.createElement(DS,{variant:"label",size:"small",color:"neutral700"},e))}i($S,"SwapDateRow");var d0=3e3;function Ip(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=p0(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),d=H().use.retry(),f=u0(),h=Ep(null),[g,m]=Va(!1),[S,y]=Va(null),[C,T]=Va(null),[w,v]=Va(null),A=Ep(S),N=Ep(C),x=Be.use.getNotifications(),b=Be.use.removeNotification(),E=x(),W=i0(e),I=W?.networkStatus,_=i(Me=>{m(!0),y(Me)},"handleChangeModalState"),U=i(()=>{m(!1)},"handleCloseModal"),G=i(()=>{T({type:"loading",title:zt.t("Change Network"),description:`We\u2019re switching the connected network to ${J?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),Y=i(()=>{T({type:"success",title:zt.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),L=i(Me=>{T({type:"error",title:zt.t("Network Switch Failed"),description:Me?.message||pe.detailedMessage.content})},"handleShowSwitchNetworkFailed"),ee=Zd(e),J=W?r0(e,W):null,te=W?a0(e,W):null,se=Vy(e),je=Jd(e),le=i(Me=>!!c(Me)?.mobileWallet,"checkIsMobileWallet"),Xe=!!I&&[On.WaitingForNetworkChange,On.NetworkChangeFailed].includes(I),He=!!te?.walletType&&le(te.walletType),Wt=!!te&&!!J&&a(te.walletType,J.network,J),$=!!J&&Xe&&(He||Wt),z=i(()=>{$&&(G(),s(te.walletType,[{namespace:J.namespace,network:J.network}]).then(()=>{Y()}).catch(Me=>{L(Me)}))},"handleSwitchNetwork"),V=i(()=>{_("switchNetwork"),z()},"handleSwitchNetworkClick"),pe=Yd(e,W,c),Q=BS({swap:e,switchNetworkIsAvailable:$,handleSwitchNetworkClick:V,showNetworkModal:I,setNetworkModal:_,message:pe,blockchains:l,swappers:p}),X=Q.length,[j,Ie]=[e.steps[0],e.steps[X-1]],Ae=Ie?.outputAmount||Ie?.expectedOutputAmountHumanReadable,Ye=e.steps.reduce((Me,Mt)=>Me+parseFloat(Mt.feeInUsd||""),0),Lt=e.steps.find(Me=>Me.diagnosisUrl)?.diagnosisUrl,so=P(parseFloat(Ae||"0")*(Ie?.toUsdPrice||0),4,4),Io=P(parseFloat(e.inputAmount)*(j?.fromUsdPrice||0),4,4),Hn=Ae?new OS(Ae).multipliedBy(Ie.toUsdPrice||0).toString():"",ei=new OS(e.inputAmount).multipliedBy(j?.fromUsdPrice||0).toString(),ns=jt(Io,so),rs=pe.detailedMessage.content||pe.shortMessage,SC=e.status==="success"?zt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:P(Ae,6,6),token:Q[X-1]?.to.token.displayName,conciseAddress:lo(e.wallets[Q[X-1]?.to.chain.displayName||""]?.address||""),chain:Q[X-1]?.to.chain.displayName}}):Te.createElement(kS,null,Te.createElement(xp,{variant:"body",size:"medium",color:"neutral700",align:"center"},rs?"":zt.t("Transaction was not sent."),ee?`${zt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:ee.outputAmount,symbol:ee.symbol,blockchain:ee.blockchain}})}`:""),rs&&Te.createElement(qa,{align:"center",variant:"body",size:"medium",color:"neutral700"},Te.createElement("b",null,"Reason:")," ",rs));return bp(()=>{E.find(Mt=>Mt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),b(e.requestId),U()):w&&v(null))},[e.status,e.requestId]),bp(()=>{if($){if(_("switchNetwork"),I===On.WaitingForNetworkChange){G();return}if(I===On.NetworkChangeFailed){L();return}return}if(I===On.WaitingForConnectingWallet){_("connectWallet");return}if(I===On.NetworkChanged){_("switchNetwork"),Y();return}S&&["connectWallet","switchNetwork"].includes(S)&&U()},[I]),bp(()=>{if(A.current=S,N.current=C,S==="switchNetwork"&&C?.type==="success"){let Me=setTimeout(()=>{A.current==="switchNetwork"&&N.current?.type==="success"&&U()},d0);return()=>clearTimeout(Me)}},[S,C]),Te.createElement(ae,{header:{title:zt.t("Swap Details"),onCancel:e.status==="running"?()=>_("cancel"):void 0,suffix:e.status!=="running"&&Te.createElement(fo,null,Te.createElement(FS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>_("delete")},Te.createElement(xp,{size:"medium",variant:"label",color:"error"},zt.t("Delete"))))},footer:je&&!w&&Te.createElement(FS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Me=Wi(e,l,u);d(Me),setTimeout(()=>{f("../../")},0)}},zt.t("Try again"))},Te.createElement(uS,{compact:!0,ref:h},Te.createElement(PS,{requestId:o}),Te.createElement($S,{date:se,isFinished:!!e.finishTime}),Te.createElement("div",{className:yS()},Te.createElement(l0,{fee:P(String(Ye),2,2),time:Vn(pi(e.steps)),steps:X}),Te.createElement(vr,{from:{price:{value:P(e.inputAmount,6,6),usdValue:Io,realUsdValue:ei,realValue:e.inputAmount},token:{displayName:Q[0]?.from.token.displayName||"",image:Q[0]?.from.token.image},chain:{image:Q[0]?.from.chain.image,displayName:Q[0]?.from.chain.displayName||""}},to:{price:{value:P(Ae,6,6),usdValue:so,realUsdValue:Hn,realValue:Ae||""},token:{displayName:Q[X-1]?.to.token.displayName||"",image:Q[X-1]?.to.token.image},chain:{image:Q[X-1]?.to.chain.image,displayName:Q[X-1]?.to.chain.displayName||""}},percentageChange:P(ns,2,2),warningLevel:Xt(ns??0)})),Te.createElement("div",{className:SS()},Te.createElement(xp,{variant:"title",size:"small"},zt.t("Swaps steps"))),Te.createElement(s0,{size:8}),Te.createElement(fS,null,Q.map((Me,Mt)=>{let Up=Mt,Qn=e.steps[Mt]&&WS(e.steps[Mt]),CC=Qn==="error"||Qn==="in-progress"||Qn==="warning"||Qn==="completed"&&Mt===Q.length-1;return Te.createElement(c0,{className:"widget-swap-details-step-item-container",key:Up,step:Me,type:"swap-progress",ref:h,state:Qn,hasSeparator:Mt!==0,tabIndex:Up,isFocused:CC,tooltipContainer:B()})}))),Te.createElement(yp,{isOpen:g,state:S,switchNetworkModalState:C,onClose:U,onCancel:r,onDelete:n,message:pe.detailedMessage.content,swap:e,handleSwitchNetwork:V}),Te.createElement(Cp,{open:!!w,diagnosisUrl:Lt,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:P(Ae,6,6),usdValue:so,realUsdValue:Hn,realValue:Ae||"",percentageChange:P(ns,2,2),token:{displayName:Q[X-1]?.to.token.displayName||"",image:Q[X-1]?.to.token.image},chain:{image:Q[X-1]?.to.chain.image},description:SC}))}i(Ip,"SwapDetails");import{i18n as ja}from"@lingui/core";import{Divider as HS,NotFound as y0,Skeleton as Rr,Typography as Xa}from"@rango-dev/ui";import Ee from"react";import{i18n as m0}from"@lingui/core";import{Divider as f0,Skeleton as g0,Typography as h0}from"@rango-dev/ui";import be from"react";import{css as Ht,styled as Ap}from"@rango-dev/ui";var US=Ap("div",{width:"100%",height:"100%",padding:"$10 $20"}),Jr=Ap("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Ka=Ap("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),a9=Ht({display:"flex",justifyContent:"space-between",alignItems:"center"}),s9=Ht({paddingTop:"$15",display:"flex"}),l9=Ht({padding:"$15 $0"}),c9=Ht({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),p9=Ht({paddingBottom:"$10"}),u9=Ht({display:"flex",justifyContent:"start",alignItems:"center"}),d9=Ht({paddingTop:"$5",display:"flex",alignItems:"center"}),m9=Ht({display:"flex",alignItems:"center"}),f9=Ht({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),zS=Ht({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Np(){return be.createElement(US,null,be.createElement(br,{type:"swap-preview"}),be.createElement("div",{className:"swaps-steps"},be.createElement(h0,{variant:"title",size:"small"},m0.t("Swaps steps"))),be.createElement(be.Fragment,null,be.createElement(Jr,null,be.createElement(Ft,{separator:!1}),be.createElement("div",{className:zS()},be.createElement(f0,{direction:"horizontal",size:20}),be.createElement(g0,{height:22,variant:"rectangular"}))),be.createElement(Ka,null),be.createElement(Jr,null,be.createElement(Ft,{separator:!1})),be.createElement(Ka,null),be.createElement(Jr,null,be.createElement(Ft,{separator:!1})),be.createElement(Ka,null),be.createElement(Jr,null,be.createElement(Ft,{separator:!1}))))}i(Np,"LoadingSwapDetails");function QS(t){let{requestId:e,showSkeleton:o}=t;return Ee.createElement(ae,{header:{title:ja.t("Swap Details"),suffix:Ee.createElement(fo,null)}},o&&Ee.createElement(dS,null,Ee.createElement("div",{className:Zo()},Ee.createElement(Xa,{variant:"label",size:"large",color:"neutral700"},`${ja.t("Request ID")}`),Ee.createElement("div",{className:Qa()},Ee.createElement(Xa,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Rr,{width:60,height:10,variant:"rounded"})),Ee.createElement(HS,{direction:"horizontal",size:4}),Ee.createElement(Rr,{width:16,height:16,variant:"rectangular"}),Ee.createElement(HS,{direction:"horizontal",size:4}),Ee.createElement(Rr,{width:16,height:16,variant:"rectangular"}))),Ee.createElement("div",{className:Zo()},Ee.createElement(Xa,{className:hS(),variant:"label",size:"large",color:"neutral700"},Ee.createElement(Rr,{width:60,height:10,variant:"rounded"})),Ee.createElement(Xa,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Rr,{width:60,height:10,variant:"rounded"}))),Ee.createElement(Np,null)),!o&&Ee.createElement(gS,null,Ee.createElement(y0,{title:ja.t("Not found"),description:ja.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(QS,"SwapDetailsPlaceholder");function qS(){let{manager:t,state:e}=k0(),o=!e.loadedFromPersistor,n=Tt(t),{requestId:r}=w0(),a=Ge(),{fetchStatus:s}=k();if(!r)return Bp.createElement(T0,{containerStyles:{margin:"20px"},type:"error",title:S0.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&C0(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),d=l?.swap;return!d||c?Bp.createElement(QS,{requestId:r,showSkeleton:c}):Bp.createElement(Ip,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(qS,"SwapDetailsPage");import{i18n as GS}from"@lingui/core";import{Divider as v0,getCategoriesCount as x0,SelectableCategoryList as b0,styled as KS,Typography as E0,Wallet as I0}from"@rango-dev/ui";import Qt,{useState as VS}from"react";var A0=KS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),N0=KS(ue,{textAlign:"center"});function jS(){let{fetchStatus:t}=k(),[e,o]=VS("ALL"),n=k().blockchains(),{config:r}=k(),{checkHasDeepLink:a,getWalletLink:s}=un(),[c,l]=VS(),p=ne.use.isActiveTab(),{list:u}=vt(),d=Wu(u,n),h=x0(d)!==1,g=Lu(u,e),m=i(S=>{du(u,r.multiWallets)||l(S)},"handleWalletItemClick");return Qt.createElement(ae,{header:{title:GS.t("Connect Wallets")}},Qt.createElement(N0,null,h&&Qt.createElement(Qt.Fragment,null,Qt.createElement(b0,{setCategory:o,category:e,blockchains:d,isLoading:t==="loading"}),Qt.createElement(v0,{size:24})),Qt.createElement(E0,{variant:"title",size:"xmedium",align:"center"},GS.t("Choose a wallet to connect.")),Qt.createElement(A0,null,g.map((S,y)=>{let C=`wallet-${y}-${S.type}`;return Qt.createElement(I0,{key:C,...S,hasDeepLink:a(S.type),link:s(S.type),state:S.state,container:B(),onClick:()=>m(S),isLoading:t==="loading",disabled:!p})}),Qt.createElement(lr,{id:"widget-state-full-connect-modal",wallet:c,onClose:()=>{l(void 0)}}))))}i(jS,"WalletsPage");function XS(){return cm(),el(),B0([{path:F.home,element:ze.createElement(uy,null)},{path:F.routes,element:ze.createElement(hy,null)},{path:F.fromSwap,children:[{index:!0,element:ze.createElement(_a,{type:"source"})},{path:F.blockchains,element:ze.createElement(Wa,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:ze.createElement(_a,{type:"destination"})},{path:F.blockchains,element:ze.createElement(Wa,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:ze.createElement(qy,null)},{path:F.languages,element:ze.createElement(my,null)},{path:F.exchanges,element:ze.createElement(ep,{sourceType:"Exchanges"})},{path:F.bridges,element:ze.createElement(ep,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:ze.createElement(dh,null)},{path:F.addCustomTokens,children:[{index:!0,element:ze.createElement(sf,null)},{path:F.blockchains,element:ze.createElement(Wa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:ze.createElement(Lh,null)},{path:F.swapDetails,element:ze.createElement(qS,null)}]},{path:F.wallets,element:ze.createElement(jS,null)},{path:F.confirmSwap,element:ze.createElement(Yg,null)}])}i(XS,"AppRoutes");import{useQueueManager as j0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as X0}from"rango-sdk";import{useContext as Y0,useEffect as Pp,useState as sC}from"react";import{Provider as D0}from"@rango-dev/wallets-react";import Ya,{createContext as $0,useEffect as eC,useMemo as F0,useRef as tC}from"react";import{useEffect as L0}from"react";import{Provider as W0}from"@rango-dev/wallets-core";function YS(t){return t.map(e=>typeof e=="string"?e:e instanceof W0?e.id:e.config.type).join("-")}i(YS,"hashProviders");function Wp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return L0(()=>{o(),r()},[YS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Wp,"useWalletProviders");import{legacyFormatAddressWithNetwork as M0,legacyReadAccountAddress as ZS}from"@rango-dev/wallets-core/legacy";import{Events as Un}from"@rango-dev/wallets-react";import{isEvmBlockchain as P0}from"rango-sdk";function JS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(P0).map(m=>m.name),u=i((m,S)=>{let[y,,C,T,w]=m,v={walletType:y,network:T.network??void 0,accounts:C};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let A=fs(y,C,p,S.supportedChainNames,w.isContractWallet);A.length&&e(A,w.namespace,T.derivationPath)},"onAccountsEvent"),d=i((m,S,y,C,T)=>{if(S===Un.ACCOUNTS){let w=Xn(T.supportedBlockchains);y&&u([m,S,y,C,T],{supportedChainNames:w})}S===Un.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===Un.NAMESPACE_DISCONNECTED&&n(m,y)},"handleUpdatesForHub"),f=i((m,S,y,C,T)=>{if(S===Un.ACCOUNTS){let w=Xn(T.supportedBlockchains),v=[],A=[];if(y?.forEach(x=>{let{network:b}=ZS(x);p.includes(b)?v.push(x):A.push(x)}),r.filter(x=>x.walletType===m).map(x=>M0(x.address,x.chain)).length>0){if(v.length>0){let x=fs(m,v,p,w,T.isContractWallet);a(m,{chains:x.map(b=>b.chain)})}A.length>0&&a(m,{chains:A.map(x=>{let{network:b}=ZS(x);return b})})}y?u([m,S,y,C,T],{supportedChainNames:w}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,S,y,C,T)=>{if(S===Un.CONNECTED&&y){let w={walletType:m,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===Un.NETWORK&&y){let w={walletType:m,network:y,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,S,y,C,T)=>{T.isHub?d(m,S,y,C,T):f(m,S,y,C,T),h(m,S,y,C,T)},"handler")}}i(JS,"useUpdates");import{LegacyEvents as _0}from"@rango-dev/wallets-core/legacy";function RS(t,e){let[o,n,r,a,s]=e;n!==_0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(RS,"propagateEvents");var Za=$0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function O0(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=k(),a=k().blockchains(),s=k().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=Wp(s.wallets,c),p=tC(),u=tC(),{handler:d}=JS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});eC(()=>{n().catch(console.log)},[]),eC(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=ne.use.isActiveTab(),h=F0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Ya.createElement(Za.Provider,{value:h},Ya.createElement(D0,{allBlockChains:a,providers:l,onUpdateState:(g,m,S,y,C)=>{let T=[g,m,S,y,C];d(...T),t.onUpdateState&&RS(t.onUpdateState,T)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(O0,"Main");function Ja(t){let{config:e,...o}=t;return Ya.createElement(Zu,{config:e},Ya.createElement(O0,{...o,config:e}))}i(Ja,"WidgetWallets");import{globalCss as U0}from"@rango-dev/ui";var oC=i(()=>U0({"@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");import{useWallets as z0}from"@rango-dev/wallets-react";import{useEffect as H0,useRef as Q0}from"react";function nC(){let{connect:t,state:e}=z0(),o=Q0({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);H0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(nC,"useForceAutoConnect");import{isApprovalTX as q0,RouteEventType as rC,StepEventType as iC,StepExecutionEventStatus as G0,WidgetEvents as Ra}from"@rango-dev/queue-manager-rango-preset";import{useEffect as aC}from"react";function Lp(){let t=Be.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();aC(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===iC.TX_EXECUTION&&s.status===G0.TX_SENT&&!q0(c)||s.type===iC.SUCCEEDED){let u=[],d=l.wallets[c?.fromBlockchain];if(d){let f=e.find(h=>h.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&h.walletType===d.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(m=>f.some(S=>S.blockchain===m.blockchain&&S.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return we.on(Ra.StepEvent,r),()=>we.off(Ra.StepEvent,r)},[we,e]),aC(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===rC.FAILED||s.type===rC.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return we.on(Ra.RouteEvent,r),()=>we.off(Ra.RouteEvent,r)},[we])}i(Lp,"useSubscribeToWidgetEvents");import{useManager as V0}from"@rango-dev/queue-manager-react";import{useEffect as K0}from"react";function Mp(){let{isSynced:t,syncNotifications:e}=Be(),{manager:o,state:n}=V0();K0(()=>{Be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Tt(o))},[Be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Mp,"useSyncNotifications");function _p(){nC(),oC(),Lp(),Mp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Ji(),[o,n]=sC(null),[r,a]=sC(),s=Y0(Za),c=t.filter(X0);Pp(()=>()=>sm(),[]),Pp(()=>()=>lm(),[]),j0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),Pp(()=>(Po.init(),Be.persist.hasHydrated()||Be.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Po.destroy),[])}i(_p,"useBootstrap");import{styled as Z0}from"@rango-dev/ui";var lC=Z0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Jo(){_p();let{config:t}=k(),{activeTheme:e}=mo(t?.theme||{}),{activeLanguage:o}=wo();return Dp.createElement(J0,{language:o},Dp.createElement(lC,{id:"swap-container",className:e()},Dp.createElement(XS,null)))}i(Jo,"Main");import{setSolanaSignerConfig as SB}from"@rango-dev/signer-solana";import Fp,{useEffect as Op,useMemo as CB}from"react";function cC(){let{setWatermark:t,setShowProfileBanner:e}=ne();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Gt("BASE_URL")}/meta/dapp/config?apiKey=${Gt("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(cC,"useFetchApiConfig");import{useState as R0}from"react";var eB=i(()=>{let[t,e]=R0(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=uu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),pC=eB;import{checkWaitingForNetworkChange as tB,makeQueueDefinition as oB}from"@rango-dev/queue-manager-rango-preset";import{Provider as nB}from"@rango-dev/queue-manager-react";import{useWallets as rB}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as iB}from"@rango-dev/wallets-shared";import{isEvmBlockchain as aB}from"rango-types";import sB,{useMemo as lB}from"react";function cB(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=rB(),c=lB(()=>oB({API_KEY:t.apiKey||Gt("API_KEY"),BASE_URL:Gt("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=k(),u=l(),d={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},f=i(async(w,v)=>a(w,v.network,v)?await r(w,[v]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),g=u.filter(w=>w.enabled).reduce((w,v)=>(w[v.name]=v,w),{}),m=u.filter(aB),S=i(w=>{let{supportedChains:v}=s(w);return Xn(v)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:g,evmBasedChains:m,evmNetworkChainInfo:iB(m),getSupportedChainNames:S},getSigners:o,wallets:d,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=ne.use.isActiveTab();return sB.createElement(nB,{queuesDefs:[c],context:C,onPersistedDataLoaded:w=>{tB(w)},isPaused:!T},t.children)}i(cB,"QueueManager");var uC=cB;import{useManager as fB}from"@rango-dev/queue-manager-react";import gB,{createContext as hB,useContext as yB}from"react";function dC(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=H()();return i(p=>{let{fromBlockchain:u,fromToken:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(d!==void 0){let S=d?t(d)??null:null;r({meta:m,token:S})}if(f!==void 0){let S=e.find(y=>y.name===f)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:m,token:S})}g!==void 0&&c(g)},"updateQuoteInputs")}i(dC,"useUpdateQuoteInputs");import{cancelSwap as pB,getCurrentNamespaceOfOrNull as uB,getCurrentStep as dB,getRelatedWalletOrNull as mB}from"@rango-dev/queue-manager-rango-preset";var es=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Tt(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=Wi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&pB(o)}getCurrentStepInfo(e){let o=dB(e);return{step:o,wallet:o?mB(e,o):null,network:o?uB(e,o)?.network:null}}};var mC=hB(void 0);function $p(t){let{manager:e}=fB(),o=ne.use.isActiveTab(),n=H().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new es(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=bu(a()),d=k().blockchains(),f=k().tokens(),h=k().swappers(),g=k().fetchStatus,m=wo().resetLanguage,S=Be().getNotifications(),y=Be().clearNotifications,C=dC(),{fromBlockchain:T,toBlockchain:w,fromToken:v,toToken:A,inputAmount:N}=H()(),x={isActiveTab:o,setCurrentTabAsActive:Po.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async b=>c(b)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:S,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:v?{symbol:v.symbol,blockchain:v.blockchain,address:v.address}:null,toBlockchain:w?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:N},updateQuoteInputs:C}};return gB.createElement(mC.Provider,{value:x},t.children)}i($p,"WidgetInfo");function fC(){let t=yB(mC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(fC,"useWidget");function zn(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=cC(),{handleLoadCustomFont:a}=pC();return Op(()=>{r().catch(console.log)},[]),Op(()=>{n&&a(n)},[n]),CB(()=>{Mu({API_KEY:o?.apiKey||ii,BASE_URL:o?.apiUrl||tu})},[o.apiKey,o.apiUrl]),Op(()=>{t.config?.signers?.customSolanaRPC&&SB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Fp.createElement(Ja,{config:o,onUpdateState:e},Fp.createElement(uC,{apiKey:o.apiKey},Fp.createElement($p,null,t.children)))}i(zn,"WidgetProvider");function gC(t){let e=t.config?.externalWallets;return ts.createElement(Ni,null,e?ts.createElement(Jo,null):ts.createElement(zn,{config:t.config??on},ts.createElement(Jo,null)))}i(gC,"Refuel");import os from"react";function hC(t){let e=t.config?.externalWallets;return os.createElement(Ni,null,e?os.createElement(Jo,null):os.createElement(zn,{config:t.config??on},os.createElement(Jo,null)))}i(hC,"Widget");function yC(){let{on:t,off:e}=we;return{on:t,off:e}}i(yC,"useWidgetEvents");var pte={DerivationPath:ir,Namespaces:or,Detached:rr,isOnDerivationPath:sr,isOnNamespace:ar,isOnDetached:Ao};export{Mee as EventSeverity,sn as MainEvents,Qee as Networks,Vee as PendingSwapNetworkStatus,Cs as QuoteEventTypes,gC as Refuel,Pee as RouteEventType,cs as SUPPORTED_FONTS,pte as StatefulConnect,_ee as StepEventType,Dee as StepExecutionBlockedEventStatus,$ee as StepExecutionEventStatus,vd as SwapModeContext,ot as UI_ID,Ts as UiEventTypes,ks as WalletEventTypes,zee as WalletEvents,qee as WalletTypes,hC as Widget,sn as WidgetEvents,zn as WidgetProvider,Ja as WidgetWallets,fl as customizedThemeTokens,ss as pickProviderVersionWithFallbackToLegacy,Oee as readAccountAddress,Ro as useStatefulConnect,vt as useWalletList,Ji as useWallets,fC as useWidget,yC as useWidgetEvents,vk as widgetEventEmitter};
1
+ var CC=Object.defineProperty;var i=(t,e)=>CC(t,"name",{value:e,configurable:!0});import{EventSeverity as wee,RouteEventType as vee,StepEventType as xee,StepExecutionBlockedEventStatus as bee,StepExecutionEventStatus as Eee}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as Aee}from"@rango-dev/wallets-core/legacy";import{useWallets as Zi,Events as Bee}from"@rango-dev/wallets-react";import{Networks as Mee,WalletTypes as Lee}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as _ee}from"rango-types";import{Divider as Uk}from"@rango-dev/ui";import po,{useEffect as zk,useRef as Qk,useState as kd}from"react";import{WalletState as TC}from"@rango-dev/ui";import{useWallets as kC}from"@rango-dev/wallets-react";import{useReducer as wC}from"react";function Up(t){return!!t.derivationPath}i(Up,"isStateOnDerivationPathStep");function zp(t){return!!t.namespace}i(zp,"isStateOnNamespace");var ei={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Qp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return ei;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:ei;default:throw new Error("Action hasn't been defined.")}}i(Qp,"reducer");function Ro(){let{state:t,disconnect:e,connect:o}=kC(),[n,r]=wC(Qp,ei),a=i(async(m,f,h)=>{r({type:"reset"});try{let g=f?.map(d=>({...d,network:void 0}));return await o(m,g),{status:"connected"}}catch(g){let d=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:g})}},"runConnect"),s=i(async(m,f)=>{if(m.state===TC.DISCONNECTED){let g=!!m.isHub,d=g?m.properties?.find(y=>y.name==="namespaces")?.value:m.needsNamespace,S=g?m.properties?.find(y=>y.name==="derivationPath")?.value:m.needsDerivationPath;if(!d?.data?.length)return await a(m.type,void 0,f);if(d?.data.length&&d.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:m,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(d?.data.length===1&&d.data[0]){if(S){let y=d.data[0];return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y.value}}),{status:"derivation-path"}}return await a(m.type,d?.data?.map(y=>({namespace:y.value})),f)}}if(m.isHub){let g=m.properties?.find(d=>d.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(m),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(m,f)=>{let h=!!m.isHub,g=h?m.properties?.find(k=>k.name==="namespaces")?.value:m.needsNamespace,d=h?m.properties?.find(k=>k.name==="derivationPath")?.value:m.needsDerivationPath,S=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(S&&d)return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y}}),{status:"derivation-path"};if(!zp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(k=>({namespace:k}));return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:C??null}}),{status:"Detached"}},"handleNamespace"),l=i(async(m,f)=>{if(!f)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Up(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let h=n.derivationPath.providerType,d=[{namespace:n.derivationPath.namespace,derivationPath:f}],y=!!m.isHub?m.properties?.find(C=>C.name==="namespaces")?.value:m.needsNamespace;return y?.data&&y.data.length>1?(r({type:"detached",payload:{targetWallet:m,selectedNamespaces:d??null,derivationPath:f}}),{status:"Detached"}):await a(h,d)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async m=>{let f=t(m.type);return f.connected||f.connecting?(await e(m.type),Ao(p)?(r({type:"needsNamespace",payload:{targetWallet:m}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:m=>{r(m==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Ro,"useStatefulConnect");import{WalletState as Is}from"@rango-dev/ui";import{useWallets as LT}from"@rango-dev/wallets-react";import{detectMobileScreens as PT,KEPLR_COMPATIBLE_WALLETS as _T,WalletTypes as Jn}from"@rango-dev/wallets-shared";import{useCallback as DT,useEffect as $T}from"react";import AT,{createContext as NT,useContext as BT,useEffect as WT,useRef as MT}from"react";import{create as ET}from"zustand";import{persist as IT}from"zustand/middleware";import{allProviders as vC}from"@rango-dev/provider-all";var rs=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()}},en=new rs;import{defineVersions as qp,pickVersion as Gp,Provider as is}from"@rango-dev/wallets-core";function Vp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=as(a);return s instanceof is?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 is?o.push(qp().version("1.0.0",n).build()):o.push(qp().version("0.0.0",n).build())}),o}return t}i(Vp,"matchAndGenerateProviders");function as(t){try{return Gp(t,"1.0.0")[1]}catch{return Gp(t,"0.0.0")[1]}}i(as,"pickProviderVersionWithFallbackToLegacy");function Kp(t){return t.map(o=>as(o)).map(o=>o instanceof is?o.id:o.config.type)}i(Kp,"configWalletsToWalletName");function ti(t,e){return e.find(o=>o.name===t)?.displayName}i(ti,"getBlockchainDisplayNameFor");function ht(t,e){return e.find(o=>o.name===t)?.shortName}i(ht,"getBlockchainShortNameFor");function jp(t,e){return e.find(o=>o.name===t)?.logo}i(jp,"getBlockchainImage");function Hn(t,e){return e.find(o=>o.id===t)?.title}i(Hn,"getSwapperDisplayName");function No(t,e){return e.find(o=>o.name===t)??null}i(No,"findBlockchain");function ss(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(ss,"isTokenNative");function yt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(yt,"createTokenHash");function tn(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(tn,"isValidTokenAddress");function qn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=yt(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=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 c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=yt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(qn,"matchTokensFromConfigWithMeta");function oi(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(oi,"getSupportedBlockchainsFromConfig");function Yp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Yp,"makeProvidersOptionsFromConfig");var on={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"}},xC={clientUrl:void 0},bC={liquiditySources:void 0};function Xp(t){let e=Yp(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 vC(o).map(a=>a())}i(Xp,"generateProviders");var Zp=i((t,e,o)=>{let n=Xp({...on,...t});return{config:{...on,...t},iframe:xC,campaignMode:bC,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:c}=o(),l=qn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=qn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});en.set("supportedSourceTokens",l),en.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=Xp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Yp(a);return Vp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Jp}from"rango-types";var Rp=[Jp.EVM,Jp.SOLANA],ni="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as zC}from"rango-sdk";import{UI_ID as EC}from"@rango-dev/ui";var ri="c6381a79-2817-4602-83bf-6a641a409e32",eu="https://api.rango.exchange",tu="https://explorer.rango.exchange",et={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...EC};import{BlockchainCategories as LC,WalletState as lt}from"@rango-dev/ui";import{legacyReadAccountAddress as PC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as _C,getCosmosExperimentalChainInfo as DC,isEvmAddress as $C,KEPLR_COMPATIBLE_WALLETS as NW,Networks as wu}from"@rango-dev/wallets-shared";import rn from"bignumber.js";import{isCosmosBlockchain as FC}from"rango-types";import IC from"bignumber.js";var de=new IC(0);import{WalletTypes as AC}from"@rango-dev/wallets-shared";var Bo="~",ou=[AC.LEAP];import{BlockchainCategories as cs,WalletState as MC}from"@rango-dev/ui";import{TransactionType as ii}from"rango-sdk";var nu="Roboto",ls=[{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 nn(t){return Array.from(new Set(t))}i(nn,"removeDuplicateFrom");function ai(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(ai,"debounce");function st(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(st,"containsText");function au(t,e){return t.toLowerCase()===e.toLowerCase()}i(au,"exactText");function su(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(su,"startWithText");var B=i(()=>document.getElementById(et.SWAP_BOX_ID),"getContainer"),Wo=i(()=>document.getElementById(et.EXPANDED_BOX_ID),"getExpanded");function lu(t,e,o){let n=!!e&&au(e,t),r=!!o&&au(o,t);return n!==r?n?-1:1:0}i(lu,"compareExactMatchText");function ps(t,e,o){let n=!!e&&st(e,t),r=!!o&&st(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ps,"compareContainsText");function us(t,e,o){let n=!!e&&su(e,t),r=!!o&&su(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(us,"compareStartWithText");function cu(t,e,o){if(!o)return 0;let n=lu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=lu(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=us(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ps(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=us(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ps(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=us(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ps(o,t.address,e.address);if(r!==0)return r}return 0}i(cu,"compareWithSearchFor");var si=i((t,e)=>{switch(e){case cs.ALL:return!0;case cs.UTXO:return t===ii.TRANSFER;case cs.OTHER:return t!==ii.TRANSFER&&t!==ii.COSMOS&&t!==ii.EVM;default:return t===e}},"isBlockchainTypeInCategory"),pu=i(t=>ls.find(o=>o.value===t)?.url,"getFontUrlByName");function uu(t,e){let o=!!t.find(n=>n.state===MC.CONNECTED);return e===!1&&o}i(uu,"isSingleWalletActive");function du(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(du,"memoizedResult");import{BigNumber as Tu}from"bignumber.js";function mu(t){return t.replace(/^0+(?=\d)/g,"")}i(mu,"removeLeadingZeros");function fu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(fu,"ensureLeadingZeroForDecimal");function gu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(gu,"formatThousandsWithCommas");function hu(t){return t.replace(/\s+/g,"-")}i(hu,"replaceSpacesWithDash");function yu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(yu,"stripTrailingZeros");function li(t){return/^0+(?:\.0+)?$/.test(t)}i(li,"isZeroValue");function Su(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Su,"isValidCurrencyFormat");function Cu(t){return/\d+$/.test(t)}i(Cu,"isColorKeyOverridden");var Gn=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 Tu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Tu(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 ci=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Pt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Vn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ku(t){return li(t)?"0":yu(t)}i(ku,"sanitizeInputAmount");function Kn(t,e){return UC(t,e)?lt.PARTIALLY_CONNECTED:e.connected?lt.CONNECTED:e.connecting?lt.CONNECTING:e.installed?lt.DISCONNECTED:lt.NOT_INSTALLED}i(Kn,"getWalletConnectionStatus");function vu(t,e,o,n){return o.filter(r=>!ou.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:m,properties:f,isHub:h}=e(r),g=nn(u.map(S=>S.type)),d=Kn(e(r),t(r));return{title:a,image:s,link:_C(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:m,properties:f,isHub:h}})}i(vu,"mapWalletTypesToWalletInfo");function jn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(jn,"walletAndSupportedChainsNames");function ms(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=PC(l),m=c.length>0,f=c.includes(u),h=u===wu.Unknown;if(m&&!f&&!h)return;let d=u===wu.Unknown&&$C(p);if(h&&!d)return;o.includes(u)||d?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(ms,"prepareAccountsForWalletStore");function Mo(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let m=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Mo,"getQuoteChains");function Xn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Xn,"isAccountAndWalletMatched");var xu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ds(n.usdValue,n.decimals):de.toFixed();return o.plus(r)},new rn(de));return OC(e.toString())},"calculateWalletUsdValue");function OC(t){let e=t.toString().split(".");return e[0]&&(e[0]=gu(e[0])),e.join(".")}i(OC,"numberWithThousandSeparator");var di=i((t,e)=>{let o=DC(Object.entries(t).map(([,n])=>n).filter(FC));return o&&!!o[e]?.experimental},"isExperimentalChain");function ds(t,e){return new rn(t).shiftedBy(-e).toFixed()}i(ds,"representAmountInNumber");function mi(t){if(!t)return null;let e=ds(t.amount,t.decimals),o=t.usdValue?ds(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(mi,"formatBalance");function bu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new rn(t.usdValue).shiftedBy(-t.decimals):de,n=e&&e.usdValue?new rn(e.usdValue).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new rn(t.amount).shiftedBy(-t.decimals):de,n=e&&e.amount?new rn(e.amount).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(bu,"compareTokenBalance");function qt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(qt,"areTokensEqual");function Eu(t){return t.sort((e,o)=>+(o.state===lt.CONNECTED)-+(e.state===lt.CONNECTED)||+(o.state===lt.PARTIALLY_CONNECTED)-+(e.state===lt.PARTIALLY_CONNECTED)||+(o.state===lt.DISCONNECTED||o.state===lt.CONNECTING)-+(e.state===lt.DISCONNECTED||e.state===lt.CONNECTING))}i(Eu,"sortWalletsBasedOnConnectionState");function lo(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(lo,"getConciseAddress");function Iu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Iu,"getAddress");var Au=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Nu(t){return t.map(e=>e.state).join("-")}i(Nu,"hashWalletsState");function Bu(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(Bu,"filterBlockchainsByWalletTypes");function Wu(t,e){return e===LC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(si(n,e))return!0;return!1})}i(Wu,"filterWalletsByCategory");function UC(t,e){if(!t.isHub||!t.needsNamespace||!e.connected)return!1;let n=t.needsNamespace.data.filter(r=>!r.unsupported);return t.needsNamespace.selection==="multiple"&&n.some(r=>!e.namespaces?.get(r.value)?.connected)}i(UC,"checkIsWalletPartiallyConnected");var fs={API_KEY:ri};function Gt(t){return fs[t]||""}i(Gt,"getConfig");function Mu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),fs=e,fs}i(Mu,"initConfig");var Lu=20,Pu=25,gs="theme-widget",hs=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>qt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>qt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),ys=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),_u=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var fi,ct=i(()=>fi||(fi=new zC(Gt("API_KEY"),Gt("BASE_URL")),fi),"httpService");import{i18n as $u}from"@lingui/core";var gi=[.5,1,3],hi=1,an=5,Yn=30,yi=0;var Ze=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Ze||{});import{WidgetEvents as Du}from"@rango-dev/queue-manager-rango-preset";var Ss=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Ss||{}),Cs=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Cs||{}),Ts=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Ts||{}),sn=(a=>(a[a.RouteEvent=Du.RouteEvent]="RouteEvent",a[a.StepEvent=Du.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(sn||{});function Si(t,e){let o=t.map(a=>a.swapperGroup),n=[];return nn(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(Si,"getUniqueSwappersGroups");function Fu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Fu,"sortLiquiditySourcesByGroupTitle");function tt(t,e){return e?.[t]==="hidden"}i(tt,"isFeatureHidden");function ln(t,e){return e?.[t]==="enabled"}i(ln,"isRoutingEnabled");var Ou=i((t,e,o)=>tt("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function cn(t){return t==yi?{type:"error",message:$u.t("Slippage must be greater than or equal to 0.01")}:t>an&&t<=Yn?{type:"warning",message:$u.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(cn,"getSlippageValidation");var Uu=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 l=oi({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>Rp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=en.get(u);m?.length||(m=qn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),en.set(u,m)),m=Ou(m,s,a.features);let f=e().blockchains({type:o.type});return m.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(d=>d.name===g.blockchain)?!1:o.searchFor?!!(st(g.symbol,o.searchFor)||st(g.address||"",o.searchFor)||st(g.name||"",o.searchFor)):!0).sort((g,d)=>{let S=e().isTokenPinned(g,o.type),y=e().isTokenPinned(d,o.type);if(S!==y)return S?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(g),A=o.getBalanceFor(d),b=bu(I,A);if(b!==0)return b}let C=l.get(g.blockchain),k=l.get(d.blockchain),w=ss(g,C),x=ss(d,k);if(w!==x)return w?-1:1;if(g.isPopular!==d.isPopular)return g.isPopular?-1:1;if(o.searchFor){let I=cu(g,d,o.searchFor);if(I)return I}return g.isSecondaryCoin!==d.isSecondaryCoin?g.isSecondaryCoin?1:-1:C&&k?C.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=yt(o),s=n.get(a);return s||(s=r.find(c=>yt(c)===a)),s},findNativeToken:o=>{let n=o.feeAssets[0];return e().findToken({blockchain:o.name,address:n.address,symbol:n.symbol})},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>qt(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(Fu)},fetch:async()=>{try{let{routing:o}=e().config,n=ln("enableCentralizedSwappers",o),r=await ct().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(h=>h.enabled),m=new Set;r.tokens.forEach(h=>{m.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&m.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=yt(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(g,h),c[h.blockchain]?.push(g)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as QC,Catalonia as HC,Chinese as zu,Denmark as qC,English as GC,Finland as VC,French as KC,German as jC,Greece as XC,Hungary as YC,India as ZC,Indonesian as JC,Italian as RC,Japanese as eT,Korea as tT,Lithuania as oT,Malay as nT,Netherlands as rT,Pakistan as iT,Philippines as aT,Poland as sT,Portuguese as lT,Russian as cT,SaudiArabia as pT,Serbia as uT,Slovakia as dT,SouthAfrica as mT,Spanish as fT,Swahili as gT,Swedish as hT,Thai as yT,Turkish as ST,Ukrainian as CT,Vietnamese as TT}from"@rango-dev/ui";var Qu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:mT},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:pT},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:QC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:HC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:zu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:zu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:qC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:rT},{title:"English",label:"English",local:"en",SVGFlag:GC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:aT},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:VC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:KC},{title:"German",label:"Deutsch",local:"de",SVGFlag:jC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:XC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:ZC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:YC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:JC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:RC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:eT},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:tT},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:oT},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:nT},{title:"Polish",label:"Polski",local:"pl",SVGFlag:sT},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:lT},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:cT},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:uT},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:dT},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:fT},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:gT},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:hT},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:yT},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:ST},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:CT},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:iT},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:TT}],pn="en";var Hu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:hi,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&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=nn(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=tt("theme",n),s=tt("language",n),c=tt("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||pn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||pn}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=oi({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Es from"bignumber.js";import kT from"mitt";var we=kT(),wT={on:we.on,off:we.off};var qu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import Gu from"bignumber.js";function Vt(t){return`${t.blockchain}${Bo}${t.address}${Bo}${t.symbol}`}i(Vt,"createAssetKey");function Vu(t,e){return`${Vt(e)}${Bo}${t}`}i(Vu,"createBalanceKey");function Zn(t){let[e,o,n]=t.split(Bo);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Zn,"extractAssetFromBalanceKey");function ws(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Vt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Gu(r??de).multipliedBy(o[s].amount).toString():""})})}),o}i(ws,"computeNextBalancesWithNewPrices");function vs(t,e){let o={};return t.balances?.forEach(n=>{let r=Vu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Gu(c??de).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(vs,"createBalanceStateForNewAccount");function xs(t,e){for(let o in e){let n=Zn(o);if(n){let r=Vt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(xs,"updateAggregatedBalanceStateForNewAccount");function vT(t,e){let o=Zn(e);if(!o)return t;let n=Vt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(vT,"removeBalanceFromAggregatedBalance");function bs(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=Zn(l);if(!p)return;!!n.find(m=>Vu(m.address,{address:p.address,blockchain:m.chain,symbol:p.symbol})===l)?a=vT(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(bs,"computeNextStateAfterWalletBalanceRemoval");function xT(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(xT,"matchWalletDetailsWithConnectedWallet");var bT=du(),Ku=qu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Xn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Xn(s,a))?{...a,loading:!1,error:!1,explorerUrl:xT(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Xn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Xn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(m=>m.walletType===u.walletType&&m.chain===u.chain)),...c]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address]?.push(...a[p.chain]||[]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await ct().getMultipleTokenBalance({assets:p.map(({symbol:m,address:f,blockchain:h})=>({symbol:m,address:f,blockchain:h})),walletAddress:l});if(u){let m=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ws(d,g,m);let S=vs(g,e);f=xs(f,S),m={...m,...S}}),t(h=>({_balances:{...h._balances,...m},_aggregatedBalances:f}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n,r)=>{let a=o[0];a&&(we.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=bs(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(we.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(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0||!o[0])return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await ct().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(m=>{if(m.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ws(f,m,l);let{_balances:h,_aggregatedBalances:g}=bs(f,r,{chains:[m.blockChain]});if(p=g,l=h,!e().connectedWallets.find(S=>S.walletType===r&&S.address===m.address&&S.chain===m.blockChain))return;let d=vs(m,e);p=xs(p,d),l={...l,...d}}),t(m=>({_balances:{...m._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let m=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));m.length>0&&await e().fetchMainTokensBalances(m,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Vt(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let m=new Es(u.amount),f=new Es(l.amount);m.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Bo);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>bT(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=Zn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),m=l?.amount?new Es(l.amount).shiftedBy(-l.decimals):de;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:m.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function ju(t){return ET()(IT((...e)=>({...Ku(...e),...Uu(...e),...Hu(...e),...Zp(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,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(ju,"createAppStore");var Xu=NT(null);function T(){let t=BT(Xu);if(WT(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function Yu(t){let e=MT();return e.current||(e.current=ju(t.config)),AT.createElement(Xu.Provider,{value:e.current},t.children)}i(Yu,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=T(),{state:r,getWalletInfo:a}=LT(),s=T().blockchains(),{handleDisconnect:c}=Ro(),l=Kp(n()),p=vu(r,a,l,e);p=PT()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=Eu(p),m=i(d=>!o.find(S=>S.walletType===d&&S.chain===e),"isExperimentalChainNotAdded"),f=DT(()=>{let d=p?.filter(S=>S.state===Is.CONNECTING)||[];for(let S of d)c(S)},[Nu(p)]);$T(()=>()=>{f()},[]);let h=i(d=>{let S=d.find(C=>C.type===Jn.DEFAULT);return!S||S.state===Is.NOT_INSTALLED?!1:d.filter(C=>C.state!=Is.NOT_INSTALLED&&![Jn.DEFAULT,Jn.WALLET_CONNECT_2,Jn.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),g=i((d,S,y)=>di(y,S)&&m(d)&&!_T.includes(d)||d==Jn.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(d=>!g(d.type,e??"",s)),terminateConnectingWallets:f}}i(vt,"useWalletList");import{Modal as zT}from"@rango-dev/ui";import QT from"react";import{create as UT}from"zustand";var Zu="rango-widget";var Rn=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(Zu),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 OT=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"),co=OT;var re=co(UT()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),Po=new Rn({onInit:()=>re.setState({tabManagerInitiated:!0}),onClaim:()=>re.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>re.setState({isActiveTab:!1})});function R(t){let{watermark:e}=re();return QT.createElement(zT,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as mn}from"@lingui/core";import{Alert as ok,Button as nk,Divider as fn,Image as rk,MessageBox as ik,RadioRoot as ak,WalletImageContainer as sk}from"@rango-dev/ui";import le,{useEffect as lk,useMemo as ck,useState as pk}from"react";import{i18n as VT}from"@lingui/core";import{Typography as id}from"@rango-dev/ui";import un from"react";function Ci(t,e){return t.find(o=>o.name===e)?.logo}i(Ci,"getBlockchainLogo");import{darkTheme as HT,Image as qT,styled as Kt,Typography as GT}from"@rango-dev/ui";var Ti=Kt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${HT} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),ki=Kt("div",{display:"flex",gap:"$8",alignItems:"center"}),Ru=Kt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),ed=Kt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),td=Kt("div",{display:"flex",gap:"$6",alignItems:"center"}),od=Kt("div",{paddingLeft:"48px"}),nd=Kt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),rd=Kt(GT,{maxWidth:"100px"}),wi=Kt(qT,{variants:{disabled:{true:{opacity:"0.5"}}}});function vi(t){let{namespace:e}=t,o=T().blockchains();return un.createElement(Ti,{unsupported:!0},un.createElement(ki,null,un.createElement(wi,{src:Ci(o,e.id),size:40,disabled:!0}),un.createElement(ed,null,un.createElement(id,{variant:"label",size:"large"},e.label),un.createElement(id,{variant:"body",size:"xsmall"},VT.t("(Currently not supported)")))))}i(vi,"NamespaceUnsupportedItem");import{Checkbox as RT,Radio as ek}from"@rango-dev/ui";import Ws from"react";import{i18n as Bs}from"@lingui/core";import{ChevronDownIcon as jT,ChevronUpIcon as XT,Divider as YT,Typography as er}from"@rango-dev/ui";import Ne,{useEffect as ZT,useState as JT}from"react";import{Image as sd,Tooltip as ld,Typography as KT}from"@rango-dev/ui";import _t from"react";import{styled as ad}from"@rango-dev/ui";var As=ad("div",{display:"flex",alignItems:"center",padding:0,margin:0}),xi=ad("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var Ns=3;function cd(t){let{chains:e}=t;return _t.createElement(As,{id:"widget-supported-chains-container"},e.slice(0,Ns).map((o,n)=>_t.createElement(ld,{key:o.name,container:B(),side:"bottom",align:"start",content:o.name,sideOffset:4},_t.createElement(xi,{firstItem:n===0},_t.createElement(sd,{src:o.logo,size:15})))),e.length>Ns&&_t.createElement(ld,{container:B(),side:"bottom",align:"start",sideOffset:4,content:_t.createElement(As,null,e.map((o,n)=>_t.createElement(xi,{key:o.name,firstItem:n===0},_t.createElement(sd,{src:o.logo,size:15}))))},_t.createElement(xi,null,_t.createElement(KT,{variant:"body",size:"xsmall"},"+",e.length-Ns))))}i(cd,"SupportedChainsList");function _o(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=JT(!1),p=T().blockchains();ZT(()=>l(!1),[o]);let u=e.getSupportedChains(p),m=!o&&!r&&u.length>1;return Ne.createElement(Ti,{hasError:!!o,clickable:!!s,onClick:s},Ne.createElement(ki,null,Ne.createElement(wi,{src:Ci(p,e.id),size:40}),Ne.createElement(Ru,{showSupportedChains:m||r||!!o},Ne.createElement(td,null,Ne.createElement(er,{variant:"label",size:"large"},e.label),r&&Ne.createElement(er,{variant:"body",size:"small",color:"success500"},Bs.t("Connected")),!!o&&Ne.createElement(er,{variant:"body",size:"small",color:"error500"},Bs.t("Connection failed"))),m&&Ne.createElement(cd,{chains:u}),r&&Ne.createElement(rd,{variant:"body",size:"small",color:"neutral700"},a),o&&Ne.createElement(nd,{onClick:()=>l(f=>!f)},Ne.createElement(er,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},Bs.t("See why")),c?Ne.createElement(XT,{size:12,color:"gray"}):Ne.createElement(jT,{size:12,color:"gray"}))),n),!!o&&c&&Ne.createElement(Ne.Fragment,null,Ne.createElement(YT,{size:4}),Ne.createElement(od,null,Ne.createElement(er,{variant:"body",size:"small",color:"neutral700"},o))))}i(_o,"NamespaceItem");function pd(t){let{onClick:e,type:o,namespace:n}=t;return Ws.createElement(_o,{namespace:n,onClick:e,suffix:o==="radio"?Ws.createElement(ek,{value:n.value}):Ws.createElement(RT,{checked:t.value})})}i(pd,"NamespaceListItem");import{Button as tk,styled as ud}from"@rango-dev/ui";var bi=ud("ul",{padding:0,paddingBottom:"$20",margin:0}),dn=ud(tk,{minHeight:"$40"});function tr(t){let{targetWallet:e}=t.value,o=e.properties?.find(d=>d.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=T().blockchains(),[l,p]=pk([]),u=ck(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),m=i(d=>{p(r?[d]:S=>S.includes(d)?S.filter(y=>y!==d):S.concat(d))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(d=>d.value))},"onSelectAll"),g=i(d=>r?le.createElement(ak,{value:l?.[0]},d):le.createElement(le.Fragment,null,d),"wrapRadioRoot");return lk(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let d=u.filter(S=>S.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(d.map(S=>S.value))}else p(u.map(d=>d.value))},[]),le.createElement(le.Fragment,null,le.createElement(ik,{type:"info",title:mn.t("Connect {wallet}",{wallet:e.title}),description:mn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:le.createElement(sk,null,le.createElement(rk,{src:s,size:45}))}),r?le.createElement(le.Fragment,null,le.createElement(fn,{size:20}),le.createElement(ok,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:mn.t("This wallet can only connect to one chain at a time. ")}),le.createElement(fn,{size:30})):le.createElement(le.Fragment,null,le.createElement(fn,{size:30}),le.createElement(nk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?mn.t("Deselect all"):mn.t("Select all")),le.createElement(fn,{size:10})),le.createElement(bi,null,g(le.createElement(le.Fragment,null,a?.data.map((d,S,y)=>le.createElement(le.Fragment,{key:d.id},d.unsupported?le.createElement(vi,{namespace:d}):le.createElement(pd,{value:l.includes(d.value),namespace:d,type:r?"radio":"checkbox",onClick:()=>m(d.value)}),S!==y.length-1&&le.createElement(fn,{size:10})))))),le.createElement(fn,{size:20}),le.createElement(dn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},mn.t("Connect")))}i(tr,"Namespaces");import{i18n as or}from"@lingui/core";import{Alert as yk,Button as Sk,Divider as gn,Image as Ck,MessageBox as Tk,WalletImageContainer as kk}from"@rango-dev/ui";import{useWallets as wk}from"@rango-dev/wallets-react";import me from"react";import{styled as uk}from"@rango-dev/ui";var dd=uk("div",{display:"flex",justifyContent:"end"});import{i18n as Ms}from"@lingui/core";import{Button as dk,Spinner as mk}from"@rango-dev/ui";import Ls,{useLayoutEffect as fk,useRef as gk,useState as hk}from"react";function md(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=hk(null),p=gk(!1);fk(()=>{o&&!p.current&&u()},[]);let u=i(async g=>{try{p.current=!0,await a(g)}catch(d){l(d)}finally{p.current=!1}},"handleConnectNamespace"),m=i(async()=>{l(null),r.connected?await s():u({shouldAskForDerivationPath:!0})},"handleButtonClick"),f=i(()=>{let g=r.accounts?.[0]?.split(":"),d=g?.[g.length-1];return!r.connected||!d?null:lo(d)},"getConnectedAddress"),h=i(()=>r.connected?Ms.t("Disconnect"):c?Ms.t("Try again"):Ms.t("Connect"),"getButtonText");return Ls.createElement(_o,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?Ls.createElement(mk,{color:"info"}):Ls.createElement(dk,{id:"widget-name-space-connect-btn",variant:"ghost",type:r.connected?"error":"primary",size:"xsmall",onClick:async()=>m(),disabled:n},h())})}i(md,"NamespaceDetachedItem");function nr(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:r=or.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s}=t,{targetWallet:c}=e,{connect:l,disconnect:p,state:u}=wk(),m=c.type,f=u(m),h=c.properties?.find(w=>w.name==="namespaces"),g=c.properties?.find(w=>w.name==="derivationPath"),d=h?.value.selection==="single",S=i(async(w,x)=>{d&&await p(m),g&&x?.shouldAskForDerivationPath?s(w):await l(m,[{namespace:w,network:"",derivationPath:x?.derivationPath??void 0}])},"handleConnectNamespace"),y=i(async w=>{await p(m,[w])},"handleDisconnectNamespace"),C=i(()=>d?me.createElement(me.Fragment,null,me.createElement(gn,{size:20}),me.createElement(yk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:or.t("This wallet can only connect to one chain at a time.")}),me.createElement(gn,{size:30})):me.createElement(me.Fragment,null,me.createElement(gn,{size:30}),me.createElement(dd,null,me.createElement(Sk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:f.connecting||!f.connected,onClick:a},or.t("Disconnect wallet"))),me.createElement(gn,{size:16})),"renderNamespaceListHeader"),k=i(w=>{if(w.unsupported)return me.createElement(vi,{namespace:w});let x=o?.find(b=>b.namespace===w.value),I=f.namespaces?.get(w.value);if(!I)throw new Error(`State for ${w.value} was not found!`);let A=d&&f.connecting;return me.createElement(md,{namespace:w,initialConnect:!!x,disabled:A,state:I,handleConnect:async b=>S(w.value,{derivationPath:x?.derivationPath,shouldAskForDerivationPath:b?.shouldAskForDerivationPath}),handleDisconnect:async()=>y(w.value)})},"renderNamespaceItem");return me.createElement(me.Fragment,null,me.createElement(Tk,{type:"info",title:or.t("Connect {wallet}",{wallet:c.type}),description:or.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:me.createElement(kk,null,me.createElement(Ck,{src:c.image,size:45}))}),C(),me.createElement(bi,{id:"widget-detached-namespace-list"},c.needsNamespace?.data.map((w,x,I)=>me.createElement(me.Fragment,{key:w.id},k(w),x!==I.length-1&&me.createElement(gn,{size:10})))),me.createElement(gn,{size:20}),me.createElement(dn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},r))}i(nr,"Detached");import{i18n as hn}from"@lingui/core";import{Divider as Ek,Image as Ik,MessageBox as Ak,Select as Nk,TextField as Bk}from"@rango-dev/ui";import xt,{useEffect as Wk,useState as gd}from"react";import{namespaces as vk}from"@rango-dev/wallets-shared";var Ei={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Ps(t){let e=t?vk[t]?.derivationPaths:null;return e?[...e,Ei]:[]}i(Ps,"getDerivationPaths");import{Button as xk,styled as _s,Typography as bk}from"@rango-dev/ui";var fd=_s("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ds=_s(bk,{paddingLeft:"$10"}),$s={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},t_=_s(xk,{minHeight:"$40"});var hd="0";function rr(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=gd(null),[c,l]=gd(hd),p=a===Ei.id,u=Ps(o),m=i(({value:h})=>{let g=u?.find(d=>d.id===h);g&&(a===Ei.id&&Number.isNaN(Number(c))&&l(hd),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return Wk(()=>{s(Ps(o)[0]?.id||null)},[o]),xt.createElement(xt.Fragment,null,xt.createElement(Ak,{type:"info",title:hn.t("Select Derivation Path"),description:hn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:xt.createElement(Ik,{src:n,size:45})}),xt.createElement(fd,{className:"_derivation_path_inputs_container"},xt.createElement(Ds,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},hn.t("Choose Derivation Path Template")),xt.createElement(Nk,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:m,styles:{trigger:$s}}),xt.createElement(Ek,{size:20}),xt.createElement(Ds,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},p?hn.t("Enter Path"):hn.t("Enter Index")),xt.createElement(Bk,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:$s})),xt.createElement(dn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},hn.t("Confirm")))}i(rr,"DerivationPath");import{i18n as yn}from"@lingui/core";import{Image as Pk,MessageBox as Os,WalletImageContainer as _k,WalletState as Dk}from"@rango-dev/ui";import{useWallets as $k}from"@rango-dev/wallets-react";import Do from"react";import{keyframes as Mk,styled as Fs}from"@rango-dev/ui";var d_=Fs("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),yd=Fs("div",{position:"relative"}),Lk=Mk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Sd=Fs("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Lk} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Us(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a,getWalletInfo:s}=$k();return Kn(s(n),a(n))===Dk.CONNECTED?Do.createElement(Os,{type:"success",title:yn.t("Wallet Connected"),description:yn.t("Your wallet is connected, you can use it to swap.")}):o?Do.createElement(Os,{type:"error",title:yn.t("Failed to Connect"),description:o||yn.t("Your wallet is not connected. Please try again.")}):Do.createElement(Os,{type:"loading",title:yn.t("Connecting to your wallet"),description:yn.t("Click connect in your wallet popup."),icon:Do.createElement(yd,null,Do.createElement(_k,null,Do.createElement(Pk,{src:r,size:45})),Do.createElement(Sd,null))})}i(Us,"ConnectStatus");import{i18n as zs}from"@lingui/core";import{Button as Fk,Divider as Cd,MessageBox as Ok}from"@rango-dev/ui";import Ii from"react";function Qs(t){let{displayName:e,onConfirm:o,id:n}=t;return Ii.createElement(Ok,{id:n,title:zs.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:zs.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},Ii.createElement(Cd,{size:18}),Ii.createElement(Cd,{size:32}),Ii.createElement(Fk,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},zs.t("Confirm")))}i(Qs,"ExperimentalChain");function Td(t,e){return t().status==="init"&&!!e}i(Td,"isOnStatus");function ir(t){return t().status==="namespace"}i(ir,"isOnNamespace");function ar(t){return t().status==="derivationPath"}i(ar,"isOnDerivationPath");function Ao(t){return t().status==="detached"}i(Ao,"isOnDetached");var Hk=3e3,qk=300;function sr(t){let e=Qk(),[o,n]=kd(!1),[r,a]=kd(),s=i(x=>{a(x.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:m,resetState:f,handleDisconnect:h}=Ro(),g=i(x=>{u(t.wallet,x).then(k).catch(s)},"handleConfirmNamespaces"),d=i(()=>{y()},"handleDetachedConfirm"),S=i(x=>{if(!x)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,x).then(k).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=i((x,I)=>{let A=x.status==="connected",b=["disconnected","disconnected-unhandled"].includes(x.status);A?(t.onConnect?.(),I||(e.current=setTimeout(y,Hk))):b&&y()},"afterConnected"),w=i(x=>{t.wallet?.needsDerivationPath&&u(t.wallet,[x])},"handleNavigateToDerivationPath");return zk(()=>{if(t.wallet){C();let x=!1,I=!0;i(()=>{setTimeout(()=>{I=!1,x||n(!0)},qk)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(b=>{["namespace","Detached","derivation-path"].includes(b.status)||(x=!0),k(b,I)}).catch(s)}},[t.wallet]),po.createElement(R,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:B()},Td(m,t.wallet)&&po.createElement(po.Fragment,null,po.createElement(Us,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),po.createElement(Uk,{direction:"vertical",size:32})),ir(m)&&po.createElement(tr,{onConfirm:g,value:m().namespace}),ar(m)&&po.createElement(rr,{onConfirm:S,value:m().derivationPath}),Ao(m)&&po.createElement(nr,{onConfirm:d,onDisconnectWallet:()=>void h(m().namespace.targetWallet),value:m().namespace,selectedNamespaces:m().selectedNamespaces,navigateToDerivationPath:w}))}i(sr,"StatefulConnectModal");import es from"react";import Gk,{Fragment as Vk}from"react";import{MemoryRouter as Kk,useInRouterContext as jk}from"react-router";function Ai({children:t}){let o=jk()?Vk:Kk;return Gk.createElement(o,null,t)}i(Ai,"AppRouter");import{I18nManager as X0}from"@rango-dev/ui";import _p from"react";import Qe from"react";import{useRoutes as I0}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 Cn,useRef as _i}from"react";import nt from"bignumber.js";import{create as em}from"zustand";import{subscribeWithSelector as tm}from"zustand/middleware";import{createContext as Xk,useContext as Yk}from"react";var wd=Xk({swapMode:"swap",isMultiMode:!1});function ot(){let{swapMode:t,isMultiMode:e}=Yk(wd);return{swapMode:t,isMultiMode:e}}i(ot,"useSwapMode");import{i18n as Ct}from"@lingui/core";import{getRelatedWalletOrNull as Rk,RouteEventType as ND}from"@rango-dev/queue-manager-rango-preset";import qe from"bignumber.js";import{PendingSwapNetworkStatus as cr}from"rango-types";import{i18n as He}from"@lingui/core";var ie=i(()=>({genericServerError:He.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:He.t("Please reset your liquidity sources."),description:He.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:He.t("No Routes Found."),description:He.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:He.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:He.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:He.t("High Price Impact"),title:He.t("Price impact is too high!"),description:He.t("The price impact is significantly higher than the allowed amount."),confirmMessage:He.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:He.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:He.t("USD Price Unknown"),title:He.t("USD Price Unknown, Cannot calculate Price Impact."),description:He.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:He.t("Confirm USD Price Unknown")}}),"errorMessages");function vd(t){return t.type===0?t.diagnosisMessage??ie().noResultError.title:t.type===1?t.diagnosisMessage??ie().genericServerError:""}i(vd,"getQuoteErrorMessage");import{i18n as Ni}from"@lingui/core";var $o=i(()=>({connectWallet:Ni.t("Connect Wallet"),swap:Ni.t("Swap"),swapAnyway:Ni.t("Swap anyway"),ethWarning:Ni.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Hs(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(Hs,"getFeeLabel");var qs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],xd=100,bd=30,Ed=15,Id=60;var Ad=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Nd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as Jk}from"@rango-dev/queue-manager-rango-preset";import gD from"bignumber.js";function Wd(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(Wd,"getRequiredBalanceOfWallet");function Xt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Xt,"getPriceImpactLevel");function Bi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Jk(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=No(a?a.toBlockchain:n.fromBlockchain,e),l=No(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:m}}i(Bi,"createRetryQuote");function Sn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=lr(o),s=St(o);if(o&&a&&s){let p=jt(a.toString(),s.toString());if(!!p&&Dd(a,p)){let m=Mi(o?.swaps,n),f=Xt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:m,warningLevel:f}}}if(e&&Od(e,o))return{type:4,usdValueChange:P(St(o)?.minus(St(e)??0).toString()??"0",null,2),percentageChange:P(jt(St(e)??"1",St(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Li(o.swaps),l=r>an;if(Fd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:$d(o,r),minRequiredSlippage:c};return null}i(Sn,"generateQuoteWarnings");function Md(t){return![4].includes(t.type)}i(Md,"isQuoteWarningConfirmationRequired");function jt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Gs(t.toString(),e.toString());return n&&n<0?n:null}i(jt,"getPriceImpact");var Ld=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"),Wi=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 c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),Pd=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),_d=i(t=>{let e=i((o,n)=>{let r=qs.indexOf(o.value),a=qs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Dd(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Ad.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new qe(r)))}i(Dd,"hasHighValueLoss");function Ud(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(Ud,"hasLimitError");function zd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new qe(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new qe(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let 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=Ct.t({id:"Required: >= {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=Ct.t({id:"Required: > {min} {symbol}",values:{min:P(o,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=Ct.t({id:"Required: <= {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=Ct.t({id:"Required: < {max} {symbol}",values:{max:P(n,6,6),symbol:e.from.symbol}}),s=ie().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(zd,"getLimitErrorMessage");function Qd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:$o().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:$o().swap,action:"confirm-swap",disabled:!0}:s?{title:$o().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:$o().ethWarning,action:"confirm-warning",disabled:!1}:{title:$o().swap,action:"confirm-swap",disabled:!1}:{title:$o().connectWallet,action:"connect-wallet",disabled:!1}}i(Qd,"getSwapButtonState");function Vs(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(de))&&e&&e!=="0"&&n!==0)}i(Vs,"canComputePriceImpact");function Ks(t,e){let o=de;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||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(Ks,"getUsdFeeOfStep");function Mi(t,e){return t.reduce((o,n)=>o.plus(Ks(n,e)),de)}i(Mi,"getTotalFeeInUsd");function js(t){let e=de,o=new qe(t.price||0);return e=e.plus(new qe(t.amount).multipliedBy(o)),e}i(js,"getUsdFee");function Hd(t){return t.reduce((e,o)=>e.plus(js(o)),de)}i(Hd,"getTotalFeesInUsd");function qd(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(qd,"getFeesGroup");function Gd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(Gd,"checkSlippageErrors");function $d(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?Object.fromEntries(o):null}i($d,"checkSlippageWarnings");function Li(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(Li,"getMinRequiredSlippage");function Fd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Fd,"hasProperSlippage");function Vd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:m,affiliateWallets:f,destination:h,contractCall:g}=t,d=a?.reduce((C,k)=>(C[k.chain]=k.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:d??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Vd,"createQuoteRequestBody");function Kd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Kd,"getWalletsForNewSwap");function lr(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new qe(e).multipliedBy(o)}i(lr,"getUsdInputFrom");function St(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(St,"getUsdOutputFrom");function Gs(t,e){return new qe(e).div(new qe(t)).minus(1).multipliedBy(xd).toNumber()}i(Gs,"getPercentageChange");function Od(t,e){let o=lr(t),n=St(t),r=St(e);if(!o||!n||!r)return!1;let a=Gs(n.toString(),r.toString());return Nd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Od,"isOutputAmountChangedExcessively");function jd(t,e,o){let n=t.validationStatus,r=Mo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Wd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=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=Ct.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=Ct.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=Ct.t(" for input and network fee")),Ct.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:ht(s.asset.blockchain,o)}})})}i(jd,"generateBalanceWarnings");function pr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==cr.NetworkChanged}i(pr,"isNetworkStatusInWarningState");function Xd(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),pr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?Rk(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case cr.WaitingForConnectingWallet:r=u?Ct.t("Connect {wallet}",{wallet:u}):r;break;case cr.WaitingForQueue:r=r||Ct.t("Waiting for other running tasks to be finished");break;case cr.WaitingForNetworkChange:r=r||Ct.t("Waiting for changing wallet network");break;case cr.NetworkChangeFailed:r=r||Ct.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Xd,"getSwapMessages");function Yd(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(Yd,"getLastConvertedTokenInFailedSwap");function Zd(t){return t.status==="failed"}i(Zd,"shouldRetrySwap");function Jd(t,e,o,n,r,a){if(!n||t)return!0;let s=Mo({filter:"all",quote:n}),c=Mo({filter:"required",quote:n}),l=s.every(m=>r.some(f=>f.chain===m)),p=c.every(m=>r.some(f=>f.chain===m)),u=o&&a?tn(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Jd,"isConfirmSwapDisabled");function Rd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Rd,"isTokensIdentical");var Pi=i((t,e)=>t?.usdPrice?new nt(e||de).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),om=i(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new nt(0),outputUsdValue:new nt(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=de,a=o.inputUsdValue;return Vn(o.inputAmount)?(e&&(n=e?.outputAmount?new nt(e?.outputAmount):null,a=lr(e)??de,r=St(e)??de),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new nt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new nt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new nt(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:Pi(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 nt(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=ku(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;li(e)||(o=mu(o),o=fu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Pi(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Pi(n??null,s),outputUsdValue:new nt(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?Pi(e.toToken,e.outputAmount?.toString()||""):new nt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new nt(0),inputUsdValue:new nt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new nt(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})}),"initializer"),nm=em()(tm(om)),rm=em()(tm(om)),ew=co(nm),tw=co(rm);function z(){let{swapMode:t}=ot();return co(t==="refuel"?rm:nm)}i(z,"useQuoteStore");var im=i((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&we.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&we.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})},"subscribeCallback"),am=ew.subscribe(im),sm=tw.subscribe(im);function lm(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=z()(),u=T().config,m=T().fetchStatus,f=T().blockchains(),{findToken:h}=T(),{setAffiliateRef:g,setAffiliatePercent:d,setAffiliateWallets:S}=T(),y=u?.from?.tokens,C=u?.from?.blockchains,k=u?.to?.tokens,w=u?.to?.blockchains,x=_i(void 0),I=_i(void 0),A=_i(void 0),b=_i(void 0);Cn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Cn(()=>{if(m==="success"){r();let E=f.find(W=>W.name===u?.from?.blockchain),v=u?.from?.token,N=v&&h(v);(E||!E&&A.current)&&n(E??null),N?a({token:N,meta:{blockchains:f}}):!N&&x.current&&a({token:null}),A.current=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),Cn(()=>{hs(s,y)&&a({token:null}),ys(l,C)&&n(null)},[y,C]),Cn(()=>{hs(c,k)&&a({token:null}),ys(p,w)&&o(null)},[k,w]),Cn(()=>{if(m==="success"){r();let E=f.find(W=>W.name===u?.to?.blockchain),v=u?.to?.token,N=v&&h(v);(E||!E&&b.current)&&o(E??null),N?e({token:N,meta:{blockchains:f}}):!N&&I.current&&e({token:null}),b.current=u?.to?.blockchain,I.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),Cn(()=>{g(u?.affiliate?.ref??null),d(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(lm,"useSyncStoresWithConfig");import{useEffect as Zs,useRef as ow}from"react";import{useInRouterContext as nw,useLocation as rw,useSearchParams as iw}from"react-router-dom";function Xs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Xs,"convertTokenSearchParamToAsset");function Ys(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ys,"tokenToSearchParam");function Rs(){let t=rw(),[e,o]=iw(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:m,setInputAmount:f}=z()(),h=T().fetchStatus,g=T().blockchains(),d=nw(),{updateIframe:S,updateCampaignMode:y}=T(),C=T().isInCampaignMode(),k=ow(),{findToken:w}=T(),x=i(()=>{let A={};for(let[M,ee]of e.entries())M.startsWith("utm_")&&(A[M]=ee);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),v=e.get("fromToken"),N=e.get("toBlockchain"),W=e.get("toToken"),D=e.get("autoConnect"),H=e.get("clientUrl"),X=e.get("liquiditySources"),Y=e.get("blockchain");return{fromAmount:b,fromBlockchain:E,fromToken:v,toBlockchain:N,toToken:W,autoConnect:D,clientUrl:H,liquiditySources:X,utmQueryParams:A,blockchain:Y}},"getUrlSearchParams"),I=i(A=>{for(let b in A)A[b]||delete A[b];o(A,{replace:!0})},"updateUrlSearchParams");Zs(()=>{let{autoConnect:A,clientUrl:b,utmQueryParams:E,blockchain:v}=x();d&&h==="success"&&I({fromBlockchain:n?.name,fromToken:Ys(a),toBlockchain:r?.name,toToken:Ys(s),fromAmount:c,autoConnect:A??void 0,clientUrl:b??void 0,blockchain:v??void 0,liquiditySources:C?k.current:void 0,...E})},[t.pathname,c,n,a,r,s,C,h]),Zs(()=>{if(!d)return;let A=x();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&f(A.fromAmount),h==="success"){let b=g.find(H=>H.name===A.fromBlockchain),E=A.fromToken&&b&&Xs(A.fromToken,b),v=E?w(E):void 0,N=g.find(H=>H.name===A.toBlockchain),W=A.toToken&&N&&Xs(A.toToken,N),D=W?w(W):void 0;b&&(l(b),v&&u({token:v,meta:{blockchains:g}})),N&&(p(N),D&&m({token:D,meta:{blockchains:g}}))}},[h]),Zs(()=>{let{clientUrl:A,liquiditySources:b}=x();S("clientUrl",A||void 0),y("liquiditySources",b?.split(",")??void 0)},[])}i(Rs,"useSyncUrlAndStore");import{i18n as vn}from"@lingui/core";import{Alert as Bv,Button as Wv,darkTheme as Mv,Divider as Nl,DoneIcon as Lv,styled as Pv,TextField as _v,Typography as Dv}from"@rango-dev/ui";import Ve,{useState as $v}from"react";import{useNavigate as Fv,useSearchParams as Ov}from"react-router-dom";import{ChevronRightIcon as aw,Divider as mm,Image as sw,Typography as fm}from"@rango-dev/ui";import bt from"react";import{darkTheme as cm,styled as el}from"@rango-dev/ui";var pm=el("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${cm} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${cm} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),um=el("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),dm=el("div",{display:"flex"});function tl(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return bt.createElement(um,null,bt.createElement(fm,{size:"large",variant:"label"},n),bt.createElement(mm,{size:10}),bt.createElement(pm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},bt.createElement(dm,null,r&&bt.createElement(bt.Fragment,null,bt.createElement(sw,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),bt.createElement(mm,{size:4,direction:"horizontal"})),bt.createElement(fm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),bt.createElement(aw,{size:12,color:"black"})))}i(tl,"BlockchainSelectorButton");import{i18n as il}from"@lingui/core";import{Button as gw,Divider as Tm,MessageBox as hw}from"@rango-dev/ui";import uo,{useEffect as km,useState as al}from"react";import{i18n as Di}from"@lingui/core";import{Divider as Fo,ExternalLinkIcon as pw,Image as uw,InfoIcon as dw,Tooltip as mw,Typography as dr}from"@rango-dev/ui";import fe from"react";var gm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function hm(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(hm,"generateExplorerLink");import{Button as lw,darkTheme as Tn,styled as ur,Typography as cw}from"@rango-dev/ui";var ol=ur("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Tn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Tn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),ym=ur("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Tn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Tn} &`]:{color:"$colors$neutral900"}}}),nl=ur(lw,{minHeight:"$40"}),Sm=ur(cw,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),Cm=ur("div",{display:"flex",justifyContent:"center",alignItems:"center"});var fw=9;function rl(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=hm(n.address,s),l=i(()=>window.open(gm,"_blank"),"onClickLearnMore");return fe.createElement(R,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:B()},fe.createElement(ym,null,fe.createElement(uw,{src:n.image===""?ni:n.image,size:45,type:"circular"}),fe.createElement(Fo,{size:4}),fe.createElement(Cm,null,fe.createElement(Sm,{variant:"title",size:"medium"},n.symbol),n.symbol.length>fw&&fe.createElement(mw,{content:n.symbol,container:B()},fe.createElement(dw,{size:12,color:"gray"}))),fe.createElement(dr,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),fe.createElement(Fo,{size:4}),fe.createElement(dr,{variant:"body",size:"medium"},c?fe.createElement(ol,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,fe.createElement(pw,{size:12,color:"gray"})):fe.createElement(ol,null,n.address)),fe.createElement(Fo,{size:4}),n.coinSource&&fe.createElement(dr,{className:"_coin-source",variant:"body",size:"xsmall"},Di.t("via")," ",fe.createElement(dr,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),fe.createElement(Fo,{size:"32"}),fe.createElement(dr,{size:"medium",variant:"body",className:"_custom-token-description"},Di.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."))),fe.createElement(Fo,{size:40}),fe.createElement(Fo,{size:10}),fe.createElement(nl,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Di.t("Import Anyway")),fe.createElement(Fo,{size:10}),fe.createElement(nl,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Di.t("Learn More")))}i(rl,"CustomTokenModal");function mr(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=T(),[m,f]=al(!1),[h,g]=al(!1),[d,S]=al(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),k=i(()=>{S(!0),C()},"handleErrorModalButtonClick"),w=i(()=>{d&&n?.type==="network-error"&&(S(!1),y()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return km(()=>{n&&f(!0)},[n]),km(()=>{o&&e&&g(!0)},[o,e]),uo.createElement(uo.Fragment,null,uo.createElement(R,{open:m,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:w,container:B()},uo.createElement(hw,{title:n?.title??"",type:"error",description:n?.message||il.t("Failed Network, Please retry.")},uo.createElement(Tm,{size:40}),uo.createElement(Tm,{size:10}),uo.createElement(gw,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?il.t("Retry"):il.t("Add another custom token")))),o&&e&&uo.createElement(rl,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>g(!1),open:h,onExit:p}))}i(mr,"ImportCustomToken");import{useManager as xv}from"@rango-dev/queue-manager-react";import{BottomLogo as bv,Divider as ef,Header as Ev}from"@rango-dev/ui";import We,{useEffect as Gi,useLayoutEffect as Iv,useRef as tf,useState as of}from"react";import{useRef as yw}from"react";function fr(){return window.self!==window.top}i(fr,"isAppLoadedIntoIframe");function sl(){let t=yw(null),{iframe:e}=T(),o=fr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(sl,"useIframe");import{useNavigate as Sw}from"react-router-dom";function Ge(){let t=Sw();return()=>t(-1)}i(Ge,"useNavigateBack");import{useLayoutEffect as Cw,useState as gr}from"react";var wm=480,vm=768,xm=1024,bm=1200,Tw=i(()=>{let[t,e]=gr(!1),[o,n]=gr(!1),[r,a]=gr(!1),[s,c]=gr(!1),[l,p]=gr(!1),u=i(()=>{e(window.innerWidth<=wm),n(window.innerWidth>wm&&window.innerWidth<=vm),a(window.innerWidth>vm&&window.innerWidth<=xm),c(window.innerWidth>xm&&window.innerWidth<=bm),p(window.innerWidth>bm)},"handleResize");return Cw(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),kn=Tw;import{createTheme as fl,darkTheme as Lw,lightTheme as Pw}from"@rango-dev/ui";import{useEffect as _w,useState as Dw}from"react";import{theme as Ww,darkColors as Mw}from"@rango-dev/ui";import dl from"react";var $i=16,Fi=255,Em=.11;function kw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(kw,"expandShortHexColor");function ww(t,e){return t.padStart(e,"0")}i(ww,"pad");function ll(t){let e=Math.min(Math.max(Math.round(t),0),Fi);return ww(e.toString($i),2)}i(ll,"intToHex");function vw(t){return`#${ll(t.red)}${ll(t.green)}${ll(t.blue)}`}i(vw,"rgbToHex");function xw(t){let e=parseInt(t.slice(1,3),$i),o=parseInt(t.slice(3,5),$i),n=parseInt(t.slice(5,7),$i);return{red:e,green:o,blue:n}}i(xw,"hexToRGB");function bw(t,e){let o=1-Em*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(bw,"generateShade");function Ew(t,e){let o=Em*e;return{red:t.red+(Fi-t.red)*o,green:t.green+(Fi-t.green)*o,blue:t.blue+(Fi-t.blue)*o}}i(Ew,"generateTint");function Iw(t){return Im(t,bw)}i(Iw,"calculateShades");function Aw(t){return Im(t,Ew)}i(Aw,"calculateTints");function Im(t,e){let o=xw(t),n=[];for(let r=1;r<9;r++)n.push(vw(e(o,r)));return n}i(Im,"calculateColors");function cl(t,e,o){let a=Aw(t).reverse().concat(t),s=Iw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let m=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${m}`]=f)}return l}i(cl,"createTintsAndShades");function pl(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)&&!Cu(r)){let l=kw(a);Object.assign(n,cl(l,r,s))}}return{...n,...e}}i(pl,"expandToGenerateThemeColors");var Am=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Nw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Am(o%52)+e;return Am(o%52)+e},"toAlphabeticName"),Bw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ul=i(t=>Nw(Bw(5381,JSON.stringify(t))>>>0),"toHash");function ml(t){let e=Ww.colors,o={...e,...Mw},n,r;if(t?.light){let s={colors:pl(e,t.light)};n={id:`${gs}-light-${ul(s)}`,tokens:s}}if(t?.dark){let s={colors:pl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${gs}-dark-${ul(s)}`,tokens:s}}return{light:n,dark:r}}i(ml,"customizedThemeTokens");function Nm(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>dl.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(dl.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(dl.cloneElement(e,{key:c}))}}),o}i(Nm,"joinList");function Bm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Bm,"doesWindowPreferDarkColorScheme");function mo(t){let{colors:e,fontFamily:o=nu,borderRadius:n=Lu,secondaryBorderRadius:r=Pu}=t,[a,s]=Dw(Bm()?"dark":"light"),{theme:c}=T(),{dark:l,light:p}=ml(e),u=fl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[u.className,Pw.className],f=[u.className,Lw.className];if(p){let g=fl(p.id,p.tokens);m.push(g.className)}if(l){let g=fl(l.id,l.tokens);f.push(g.className)}return _w(()=>{let g=i(d=>{d.matches?s("dark"):s("light")},"switchThemeListener");return Bm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),d=f.join(" ");return c==="auto"?a==="dark"?d:g:c==="dark"?d:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(mo,"useTheme");var Tt=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Wm}from"@lingui/core";import{Alert as $w,Button as Fw}from"@rango-dev/ui";import Mm from"react";function gl(t){return Mm.createElement($w,{action:Mm.createElement(Fw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Wm.t("Activate this tab")),type:"warning",variant:"alarm",title:Wm.t("Another tab is open and handles transactions.")})}i(gl,"ActivateTabAlert");import{i18n as hl}from"@lingui/core";import{Button as Ow,Divider as Uw,MessageBox as zw}from"@rango-dev/ui";import Oi from"react";function yl(t){let{open:e,onClose:o,onConfirm:n}=t;return Oi.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:B()},Oi.createElement(zw,{title:hl.t("Activate current tab"),type:"warning",description:hl.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.")},Oi.createElement(Uw,{size:20}),Oi.createElement(Ow,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},hl.t("Confirm"))))}i(yl,"ActivateTabModal");import{ChevronLeftIcon as qw}from"@rango-dev/ui";import Um from"react";import{css as Qw,darkTheme as Lm,IconButton as Hw,styled as Oo}from"@rango-dev/ui";var Dt=Oo(Hw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Lm} &`]:{backgroundColor:"$neutral"}}}),Pm=Oo("div",{position:"absolute",background:"$secondary500",[`.${Lm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),fo=Oo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),_m=Oo("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),Dm=Oo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),$m=Oo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Fm=Qw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Om=Oo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Sl(t){return Um.createElement(Dt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Um.createElement(qw,{color:"black",size:16}))}i(Sl,"BackButton");import{i18n as Gw}from"@lingui/core";import{Button as Vw,Typography as Kw}from"@rango-dev/ui";import Cl from"react";function Tl(t){return Cl.createElement(fo,null,Cl.createElement(Vw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},Cl.createElement(Kw,{variant:"label",size:"medium",color:"error500"},Gw.t("Cancel"))))}i(Tl,"CancelButton");import{i18n as jw}from"@lingui/core";import{Image as Xw,Tooltip as Yw,WalletIcon as Zw,WalletState as zm}from"@rango-dev/ui";import Uo from"react";function kl(t){let{list:e}=vt(),o=e.filter(r=>r.state===zm.CONNECTED||r.state===zm.PARTIALLY_CONNECTED),n=o.length?Uo.createElement("div",{className:Fm()},o.map(r=>Uo.createElement(Om,{key:r.title},Uo.createElement(Xw,{src:r.image,size:14})))):jw.t("Connect Wallet");return Uo.createElement(Yw,{container:t.container,side:"bottom",content:n},Uo.createElement(Dt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Uo.createElement(Pm,null),Uo.createElement(Zw,{size:18,color:"black"})))}i(kl,"WalletButton");import{i18n as zi}from"@lingui/core";import{NotificationsIcon as mv,Popover as fv,SettingsIcon as gv,Tooltip as Qi,TransactionIcon as hv}from"@rango-dev/ui";import Pe from"react";import{Notifications as tv}from"@rango-dev/ui";import ov from"react";import{useNavigate as nv}from"react-router-dom";import{create as Jw}from"zustand";import{persist as Rw,subscribeWithSelector as ev}from"zustand/middleware";var Be=co(Jw()(Rw(ev((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let 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}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,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(l=>l.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 wl(){let t=nv(),{getNotifications:e,clearNotifications:o}=Be(),n=e(),r=T().blockchains(),{findToken:a}=T();return ov.createElement(tv,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>jp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(wl,"NotificationContent");import{useManager as rv}from"@rango-dev/queue-manager-react";import{InProgressIcon as iv}from"@rango-dev/ui";import Qm from"react";var av=i(()=>{let{manager:t}=rv();return Tt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Qm.createElement($m,{id:"widget-header-history-badge-container"},Qm.createElement(iv,{color:"info",size:6})):null},"InProgressTransactionBadge"),Hm=av;import{EventSeverity as sv}from"@rango-dev/queue-manager-rango-preset";import{Typography as lv}from"@rango-dev/ui";import qm from"react";function Gm(){let{getNotifications:t}=Be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===sv.WARNING);return o?qm.createElement(_m,{isSever:n},qm.createElement(lv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Gm,"NotificationsBadge");import{RefreshProgressButton as cv}from"@rango-dev/ui";import vl,{useEffect as pv,useState as Vm}from"react";var uv=1e3,Km=60,dv=100;function Ui({onClick:t}){let[e,o]=Vm(0),[n,r]=Vm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");pv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===Km&&c()},uv):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return vl.createElement(Dt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},vl.createElement(Dm,{onTransitionEnd:()=>r(!1),isRefetched:n},vl.createElement(cv,{size:22,color:t?"black":"gray",progress:e/Km*dv})))}i(Ui,"RefreshButton");function zo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=T(),c=tt("notification",s)||r.includes("notifications");return Pe.createElement(Pe.Fragment,null,!r.includes("refresh")&&Pe.createElement(Qi,{container:a||B(),side:"top",content:zi.t("Refresh")},Pe.createElement(Ui,{onClick:e})),!c&&Pe.createElement(fv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:B(),content:Pe.createElement(wl,null)},Pe.createElement("div",null,Pe.createElement(Qi,{container:B(),side:"top",content:zi.t("Notifications")},Pe.createElement(Dt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Pe.createElement(mv,{size:18,color:"black"}),Pe.createElement(Gm,null))))),!r.includes("settings")&&Pe.createElement(Qi,{container:B(),side:"top",content:zi.t("Settings")},Pe.createElement(Dt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Pe.createElement(gv,{size:18,color:"black"}))),!r.includes("history")&&Pe.createElement(Qi,{container:B(),side:"top",content:zi.t("History")},Pe.createElement(Dt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Pe.createElement(hv,{size:18,color:"black"}),Pe.createElement(Hm,null))))}i(zo,"HeaderButtons");import{i18n as xl}from"@lingui/core";import{Divider as Xm,MessageBox as Cv,RefreshIcon as Tv}from"@rango-dev/ui";import wn from"react";import{Button as yv,styled as Sv}from"@rango-dev/ui";var jm=Sv(yv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function bl(t){let{open:e,onClose:o}=t;return wn.createElement(R,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:B()},wn.createElement(Cv,{title:xl.t("Something went wrong"),type:"error",description:xl.t("Something went wrong. Please refresh the app.")},wn.createElement(Xm,{size:30}),wn.createElement(jm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},wn.createElement(Tv,{size:20,color:"primary"}),wn.createElement(Xm,{size:4,direction:"horizontal"}),xl.t("Refresh"))))}i(bl,"RefreshModal");function El(t){let e=t.target;if(e){let o=e.scrollTop,n=B();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(El,"onScrollContentAttachStatusToContainer");import{css as wv,styled as Hi}from"@rango-dev/ui";var qi=wv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ym=Hi("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Zm=Hi("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Jm=Hi("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"}}}),Rm=Hi("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function se(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=sl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=T(),[u,m]=of(!1),{config:{features:f,theme:h}}=T(),{watermark:g,setShowCompactTokenSelector:d}=re(),S=g==="FULL",{activeTheme:y}=mo(h||{}),[C,k]=of(!1),w=tt("connectWalletButton",f),{isActiveTab:x,tabManagerInitiated:I,showActivateTabModal:A,setShowActivateTabModal:b,activateCurrentTab:E}=re(),v=Ge(),{manager:N}=xv(),{isTablet:W,isMobile:D}=kn(),X=Tt(N).map(({swap:ce})=>ce).some(ce=>ce.status==="running"),Y=i(()=>E(Po.forceClaim,X),"onActivateTab"),M=i(()=>{r.onWallet?.()},"onConnectWallet"),ee=typeof r.hasBackButton>"u"||r.hasBackButton,J=tf(null),te=tf(null);return Gi(()=>{let ce=(p?.swapBoxBanner?.routes?.length??0)===0,Oe=!!p?.swapBoxBanner?.routes?.some(ne=>location.pathname.endsWith(ne));k(!!p?.swapBoxBanner&&(ce||Oe))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Gi(()=>(fr()&&te.current&&e(te.current),()=>{o()}),[]),Gi(()=>(J.current?.addEventListener("scroll",El),()=>{J.current?.removeEventListener("scroll",El)}),[]),Gi(()=>{m(c==="failed")},[c]),Iv(()=>{let ce=s==="auto"||!te.current||fr(),Oe=D||W,ne=i(()=>{ce||(Oe?te.current.style.height=`${window.innerHeight-te.current.offsetTop}px`:te.current.style.height=`${700}px`,d(parseFloat(te.current.style.height)<640))},"handler");return ne(),window.addEventListener("resize",ne),()=>window.removeEventListener("resize",ne)},[s,D,W]),We.createElement(Ym,{height:s,id:et.SWAP_BOX_ID,className:`${y()} ${qi()}`,ref:te,showBanner:C},We.createElement(Ev,{prefix:ee?We.createElement(Sl,{onClick:()=>{v(),r.onBack?.()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!w&&We.createElement(kl,{container:B(),onClick:M,isConnected:!!l?.length}),r.onCancel&&We.createElement(Tl,{onClick:r.onCancel}))}),We.createElement(Zm,{ref:J},n),We.createElement(yl,{open:A,onClose:()=>b(!1),onConfirm:Y}),We.createElement(Jm,null,We.createElement("div",{className:"footer__content"},I&&!x&&We.createElement("div",{className:"footer__alert"},We.createElement(gl,{onActivateTab:Y}),We.createElement(ef,{size:10})),a),We.createElement(ef,{size:12}),We.createElement("div",{className:`footer__logo ${S?"logo__show":"logo__hidden"}`},We.createElement(bv,null))),C&&We.createElement(Rm,null,p?.swapBoxBanner?.element),We.createElement(bl,{open:u,onClose:()=>m(!1)}))}i(se,"Layout");import{styled as Av}from"@rango-dev/ui";var nf="$20 $20 $10 $20",Il=Av("div",{padding:nf,overflowY:"auto",flexGrow:1});import{styled as Nv}from"@rango-dev/ui";var ue=Nv("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 go}from"@lingui/core";import{useState as Al}from"react";function rf(){let[t,e]=Al(!1),[o,n]=Al(null),[r,a]=Al(null),{findToken:s}=T(),c=T().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(m,f){switch(m){case"duplicated":return{type:m,title:go.t("Duplicate Token"),message:go.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:go.t("Token Already Exists"),message:go.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:go.t("Token Not Found"),message:go.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:f}})};case"network-error":return{type:m,title:go.t("Network error"),message:go.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:m,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await ct().getCustomToken({blockchain:m,address:f});if(!g||!g.token||g.error){let y=p("not-found",m);n(y);return}let d=g.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let y=p("token-exist");n(y);return}return a({...d,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",m);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(rf,"useFetchCustomToken");var Uv=Pv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${Mv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function af(){let t=Fv(),[e]=Ov(),o=Ge(),n=T().blockchains(),r=e.get("blockchain")||"",a=No(r,n),[s,c]=$v(""),{fetchCustomToken:l,token:p,loading:u,error:m,resetState:f}=rf(),h=!!a&&tn(a,s),g=!a||!s||!h,d=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ve.createElement(se,{header:{title:vn.t("Add Custom Token")}},Ve.createElement(ue,null,Ve.createElement(Uv,null,Ve.createElement("div",null,Ve.createElement(tl,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:vn.t("Select chain"),placeholder:vn.t("Select chain")}),Ve.createElement(Nl,{size:"24"}),Ve.createElement(Dv,{size:"large",variant:"label"},vn.t("Enter Address")),Ve.createElement(Nl,{size:10}),Ve.createElement(_v,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:vn.t("Enter token address"),size:"large",value:s,suffix:!!s&&h&&Ve.createElement(Lv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&Ve.createElement(Ve.Fragment,null,Ve.createElement(Nl,{size:4}),Ve.createElement(Bv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ve.createElement(Wv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},vn.t("Import"))),Ve.createElement(mr,{token:p,blockchain:a??void 0,address:s,error:m??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{m?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(af,"AddCustomTokenPage");import{i18n as pc}from"@lingui/core";import{useManager as Ib}from"@rango-dev/queue-manager-react";import{Alert as Ab,Button as Nb,css as dc,Divider as uc,IconButton as jg,styled as Bb,Typography as Wb,WalletIcon as Mb}from"@rango-dev/ui";import $e,{useEffect as Sa,useLayoutEffect as Lb,useRef as Pb,useState as Ir}from"react";import{useNavigate as _b}from"react-router-dom";import{i18n as Qo}from"@lingui/core";import{Alert as dx,BalanceErrors as mx,Button as Mf,ChevronLeftIcon as fx,Divider as $l,MessageBox as gx,Typography as Fl}from"@rango-dev/ui";import ae,{useCallback as hx,useEffect as Lf,useMemo as yx,useState as In}from"react";import{useNavigate as Sx}from"react-router-dom";import{i18n as Ll}from"@lingui/core";import{Alert as Gv,ChevronDownIcon as Vv,CloseIcon as Kv,Divider as mf,IconButton as ff,PasteIcon as jv,Typography as Xv,WalletIcon as Yv}from"@rango-dev/ui";import _e,{useEffect as Zv,useRef as Jv}from"react";import Xi,{useRef as Hv}from"react";import*as xn from"@radix-ui/react-collapsible";import{keyframes as sf,styled as Vi}from"@rango-dev/ui";var Bl=300,zv=sf({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Qv=sf({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),lf=Vi(xn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Wl=Vi(xn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Ki=Vi(xn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${zv} ${Bl}ms ease-out`},false:{animation:`${Qv} ${Bl}ms ease-out`}}}}),ji=Vi("div",{transition:`all ${Bl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Yi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Hv(null);return Xi.createElement(lf,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Xi.createElement(Wl,{className:"collapsible_trigger",onClick:a},s),Xi.createElement(Ki,{className:"collapsible_content",open:e},r),c==="bottom"&&Xi.createElement(Wl,{className:"collapsible_trigger",onClick:a},s))}i(Yi,"CustomCollapsible");import{darkTheme as cf,styled as Ml,TextField as qv}from"@rango-dev/ui";var pf=Ml("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),uf=Ml(qv,{backgroundColor:"$neutral100"}),df=Ml("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${cf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${cf} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function gf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=z()(),{config:s}=T(),c=T().blockchains(),l=ti(e.name,c),p=Jv(null),u=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!tn(e,r),g=i(()=>{a("")},"handleClear"),d=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),S=i(()=>r?_e.createElement(ff,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},_e.createElement(Kv,{size:12,color:"gray"})):m?null:_e.createElement(ff,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},_e.createElement(jv,{size:16})),"renderSuffix");return Zv(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),_e.createElement(pf,null,_e.createElement(Yi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:_e.createElement(df,{id:"widget-custom-destination-collapsible-btn"},_e.createElement("div",{className:"button__content"},_e.createElement(Yv,{size:18,color:"info"}),_e.createElement(mf,{size:4,direction:"horizontal"}),_e.createElement(Xv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Ll.t("Send to a different address"))),_e.createElement(ji,{orientation:n?"up":"down"},_e.createElement(Vv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},_e.createElement(uf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Ll.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let C=y.target.value;a(C)}})),h&&_e.createElement(_e.Fragment,null,_e.createElement(mf,{size:4}),_e.createElement(Gv,{variant:"alarm",type:"error",title:Ll.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(gf,"CustomDestination");import{css as Rv,IconButton as ex,SelectableWalletButton as tx,styled as ho}from"@rango-dev/ui";var hf=ho("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),yf=ho("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Sf=ho(tx,{justifyContent:"center"}),Cf=ho("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Tf=ho(ex,{position:"absolute",left:"$20"}),kf=ho("div",{paddingTop:"$20"}),wf=Rv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),vf=ho("div",{display:"flex"}),xf=ho("div",{overflow:"visible",width:"100%"});import{i18n as _l}from"@lingui/core";import{warn as ax}from"@rango-dev/logging-core";import{Divider as sx,makeInfo as lx,SelectableWallet as cx,Typography as Bf,WalletState as En}from"@rango-dev/ui";import rt,{useEffect as Wf,useState as Sr}from"react";import{Image as rx,MessageBox as ix}from"@rango-dev/ui";import yr from"react";import{keyframes as ox,styled as Pl}from"@rango-dev/ui";var bf=Pl("div",{position:"relative"}),nx=ox({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Ef=Pl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${nx} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),If=Pl("div",{"& img":{borderRadius:"50%"}});import{i18n as bn}from"@lingui/core";function Af(t,e){switch(t){case"in-progress":return{type:"loading",title:bn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:bn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:bn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:bn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:bn.t("Request Rejected"),description:bn.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(Af,"generateMessageByStatus");function Nf(t){let{status:e,displayName:o,image:n}=t,r=Af(e,o),a=e=="in-progress";return yr.createElement(ix,{type:r.type,title:r.title,description:r.description,icon:a?yr.createElement(bf,null,yr.createElement(If,null,yr.createElement(rx,{src:n,size:45})),yr.createElement(Ef,null)):void 0})}i(Nf,"ExperimentalChainStatus");var px=7,ux=3e3;function Dl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=re.use.isActiveTab(),{blockchains:l,connectedWallets:p}=T(),[u,m]=Sr(),[f,h]=Sr(null),[g,d]=Sr(!1),[S,y]=Sr(null),{suggestAndConnect:C}=Zi(),{list:k}=vt({chain:e}),[w,x]=Sr(k),I=k.length,A=a&&I-a>0,b=i(async v=>{d(!1),y("in-progress");try{await C(v.walletType,v.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Wf(()=>{x(v=>{let N=k.findIndex(W=>n(W.type,e));return A&&N>1?[k[N]].concat(k.filter((W,D)=>D!==N)):v.map(W=>k.find(D=>D.type===W.type)??W)})},[JSON.stringify(k)]);let E=document.getElementById(et.SWAP_BOX_ID);return Wf(()=>{let v=null;return(S==="completed"||S==="rejected")&&(v=setTimeout(()=>y(null),ux)),()=>{v&&clearTimeout(v)}},[S]),rt.createElement(rt.Fragment,null,w.slice(0,a).map(v=>{let N=Iu({connectedWallets:p,walletType:v.type,chain:e}),W=v.state===En.CONNECTED||v.state===En.PARTIALLY_CONNECTED,D=N?lo(N,px):"",H=W&&!!v.needsNamespace&&!D,X=di(l(),e),Y=!p.find(ne=>ne.walletType===v.type&&ne.chain===e),M=X&&Y&&v.state===En.CONNECTED,ee=i(async()=>{v.state===En.DISCONNECTED||H?m(v):M?(h({walletType:v.type,chain:e,address:N??""}),d(!0)):r({walletType:v.type,chain:e,address:N??""})},"onSelectableWalletClick"),J=lx(v.state),te=i(()=>M?_l.t({id:"Add {chain} chain",values:{chain:e}}):H?_l.t("Chain not connected"):D||J.description,"getWalletDescription"),ce=i(()=>v.state===En.CONNECTED||v.state===En.PARTIALLY_CONNECTED?H?"neutral600":"neutral700":J.color,"getWalletDescriptionColor"),Oe=f?.chain?ti(f.chain,l()):void 0;return rt.createElement(rt.Fragment,{key:`${v.title}_${Oe}`},!!f&&rt.createElement(R,{id:"widget-wallets-list-watermarked-modal",open:!!f&&g,container:E,onClose:()=>{h(null)}},rt.createElement(Qs,{id:"widget-wallets-list-experimental-chain-container",displayName:Oe,onConfirm:()=>{b(f)}})),S&&rt.createElement(R,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:y.bind(null,null),container:E},rt.createElement(Nf,{status:S,displayName:Oe,image:v.image}),rt.createElement(sx,{direction:"vertical",size:32})),rt.createElement(cx,{key:v.type,id:"widget-wallets-list-selectable-wallet-btn",description:te(),descriptionColor:ce(),onClick:ee,selected:n(v.type,e),disabled:!c,...v}))}),rt.createElement(sr,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{m(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):ax(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&rt.createElement(Sf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},rt.createElement(Bf,{variant:"label",size:"medium"},_l.t("Show more wallets"),rt.createElement(Bf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(Dl,"WalletList");var Cx=2;function Pf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Sx(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:f,setCustomDestination:h}=z()(),{config:g,connectedWallets:d,setWalletsAsSelected:S}=T(),[y,C]=In(""),[k,w]=In([]),[x,I]=In(""),[A,b]=In(!!f),E=yx(()=>Mo({filter:"all",quote:l}),[l]),v=Mo({filter:"required",quote:l}),N=c.find($=>$.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),W=i($=>v.includes($),"isWalletRequiredFor"),D=hx(()=>d.filter($=>$.selected&&E.includes($.chain)),[d,E]),[H,X]=In(D()),[Y,M]=In([]),ee=i(($,U)=>M(G=>G.concat({blockchain:$,walletType:U})),"addNextSelectedWallets"),J=k.length>0,te=i(($,U)=>!!H.find(G=>G.walletType===$&&G.chain===U&&G.selected&&(W(U)||!W(U)&&!f)),"isSelected"),ce=i(($,U,G)=>{let pe=!1;return $.map(Q=>{if(Q.chain===U){let j=Q.selected;return!pe&&G?(pe=!0,j=!0):G||(j=!1),{...Q,selected:j}}return Q})},"updateSelectableWallets"),Oe=i($=>{b($),$?W(N?.name??"")||X(U=>ce(U,N?.name||"",!1)):(h(""),X(U=>ce(U,N?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ne=i($=>{if(y&&C(""),te($.walletType,$.chain))return;let G=d.find(pe=>pe.walletType===$.walletType&&pe.chain===$.chain);G&&(n(),$.chain===N?.name&&A&&!W(N.name)&&(b(!1),h(null)),X(pe=>pe.filter(Q=>Q.chain!==$.chain).concat({...G,selected:!0})))},"onChange"),wt=i(()=>{let $=H.filter(U=>U.selected);S($),p($),m(!0),o()},"onConfirmBalance"),gt=i(async()=>{w([]),I("");let $=await r?.({selectedWallets:H.filter(G=>G.selected),customDestination:f}),U=$.warnings;U?.balance?.messages&&w(U.balance.messages),$.error&&I(vd($.error)),!$.error&&!U?.balance?.messages.length?wt():w(U?.balance?.messages??[])},"onConfirmWallets");Lf(()=>{X($=>{let U=[];return $.forEach(G=>{!d.some(Q=>Q.chain===G.chain&&Q.walletType===G.walletType&&Q.address===G.address)||U.push(G)}),U=U.concat(d.filter(G=>!!!U.find(Q=>Q.chain===G.chain)&&G.selected&&E.includes(G.chain))),U})},[d,E]),Lf(()=>{let $=[];Y.length>0&&(Y.forEach(U=>{let G=d.find(pe=>pe.chain===U.blockchain&&pe.walletType===U.walletType);G?ne(G):$.push(U)}),M($))},[d,Y]);let Wt=document.getElementById(et.SWAP_BOX_ID);return ae.createElement(R,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:Wt,...!y&&{styles:{container:{height:"100%"}},footer:ae.createElement(vf,null,ae.createElement(Mf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Jd(a,A,f,l,H,N),onClick:gt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Qo.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:ae.createElement(Cf,null,ae.createElement(Tf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ae.createElement(fx,{size:16})),ae.createElement(Fl,{variant:"headline",size:"small"},Qo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ht(y,c)}})))},anchor:"center"},ae.createElement(R,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:J,onClose:w.bind(null,[]),container:Wt},ae.createElement(gx,{title:Qo.t("Insufficient account balance"),type:"error",description:ae.createElement(mx,{messages:k??[]})},ae.createElement(Mf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:wt},Qo.t("Proceed anyway")))),y&&ae.createElement(kf,null,ae.createElement("div",{className:wf()},ae.createElement(Dl,{chain:y,quoteChains:E,isSelected:te,selectWallet:ne,onShowMore:()=>C(y),onConnect:$=>{ee(y,$)}}))),!y&&ae.createElement(ae.Fragment,null,x&&ae.createElement(ae.Fragment,null,ae.createElement(dx,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Qo.t(x)}),ae.createElement($l,{size:12})),ae.createElement(xf,null,E.map(($,U)=>{let G=c.find(K=>K.name===$),pe=`wallet-${U}`,Q=U===E.length-1,j=Q&&N&&g?.customDestination!==!1;return ae.createElement("div",{key:pe},ae.createElement(hf,null,ae.createElement(Fl,{variant:"title",size:"xmedium"},Qo.t({id:"Your {blockchainName} wallets",values:{blockchainName:G?.shortName}})),ae.createElement(Fl,{variant:"label",color:"$neutral700",size:"medium"},Qo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:G?.shortName}}))),ae.createElement($l,{size:24}),ae.createElement(yf,null,ae.createElement(Dl,{chain:$,quoteChains:E,isSelected:te,selectWallet:ne,limit:Cx,onShowMore:()=>C(G?.name??""),onConnect:K=>{ee($,K)}})),!Q&&ae.createElement($l,{size:32}),j&&ae.createElement(gf,{blockchain:N,open:A,handleOpenChange:Oe}))}))))}i(Pf,"ConfirmWalletsModal");import{i18n as Gx}from"@lingui/core";import{Alert as Vx,Button as Kx,Divider as eg,InfoIcon as jx}from"@rango-dev/ui";import Ue from"react";import{Alert as wx,Button as vx,Divider as zl,NoRouteIcon as xx,RefreshIcon as bx,Typography as zf}from"@rango-dev/ui";import pt from"react";import{i18n as _f}from"@lingui/core";var Tx=24,kx=60;function Df(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ie().genericServerError,action:{onClick:n,title:_f.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ie().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:_f.t("Reset")}},description:ie().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ie().noResultError.description}}i(Df,"makeInfo");var Ol=(o=>(o[o.small=Tx]="small",o[o.large=kx]="large",o))(Ol||{}),Ul=(o=>(o.small="small",o.large="medium",o))(Ul||{});import{styled as Ji}from"@rango-dev/ui";var $f=Ji("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Ff=Ji("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Of=Ji("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Uf=Ji("div",{padding:"$6 $0"});function Cr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=T().getDisabledLiquiditySources(),s=T().toggleAllLiquiditySources,c=T().swappers(),l=Df(o,a,()=>s(c,!0),e);return r&&(l.alert=null),pt.createElement($f,{id:"widget-no-result-container"},pt.createElement(xx,{size:Ol[n],color:"gray"}),pt.createElement(zl,{size:4}),pt.createElement(zf,{variant:"title",size:Ul[n]},ie().noResultError.title),n==="large"&&pt.createElement(zl,{size:4}),!!l.description&&pt.createElement(Ff,{size:n},pt.createElement(zf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),pt.createElement(zl,{size:n==="large"?"24":"4"}),!!l.alert&&pt.createElement(Of,{size:n},pt.createElement(wx,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&pt.createElement(vx,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:pt.createElement(Uf,null,pt.createElement(bx,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Cr,"NoResult");import{i18n as Tr}from"@lingui/core";import{Button as Lx,Divider as Px,MessageBox as _x,Typography as Dx,WarningIcon as $x}from"@rango-dev/ui";import Yt from"react";import{InfoIcon as Nx,Tooltip as Bx,Typography as Wx}from"@rango-dev/ui";import An from"react";import{Button as Ex,darkTheme as Ix,styled as Ho,Typography as Ax}from"@rango-dev/ui";var Qf=Ho("div",{width:"100%"}),Ql=Ho("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Hf=Ho("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Ix} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),qf=Ho("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),Gf=Ho(Ax,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),Vf=Ho("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Kf=Ho(Ex,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var Mx=35;function jf(t){let{title:e,value:o,valueColor:n}=t,r=B();return An.createElement(Hf,null,An.createElement(Wx,{size:"medium",variant:"label",className:"_title"},e),An.createElement(qf,null,An.createElement(Gf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>Mx&&An.createElement(Bx,{content:o,container:r},An.createElement(Nx,{size:12,color:"gray"}))))}i(jf,"QuoteErrorsModalItem");function Xf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:Tr.t("Swapping"),value:P(r.inputUsdValue)},{title:Tr.t("Gas cost"),value:P(r.totalFee,2,2)},{title:Tr.t("Receiving"),value:P(r.outputUsdValue)},{title:Tr.t("Price impact"),value:P(r.priceImpact,2,2),valueColor:`${s}500`}];return Yt.createElement(R,{id:"widget-high-value-loss-warning-modal",footer:Yt.createElement(Lx,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Yt.createElement($x,null),fullWidth:!0,disabled:a,onClick:n},ie().highValueLossError.confirmMessage),open:e,onClose:o,container:B()},Yt.createElement(_x,{type:s,title:ie().highValueLossError.impactTitle,description:ie().highValueLossError.description}),Yt.createElement(Ql,null,Yt.createElement(Px,{size:"4"}),Yt.createElement(Dx,{size:"small",variant:"title"},Tr.t("Details")),Yt.createElement(Ql,null,c.map((l,p)=>Yt.createElement(jf,{key:p,...l})))))}i(Xf,"HighValueLossWarningModal");import{i18n as Nn}from"@lingui/core";function Yf(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Nn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Nn.t("Increase")),o;if(t){switch(t.type){case 0:{Xt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ie().highValueLossError.title;break}case 4:{o.title=Nn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=ie().unknownPriceError.title;break}case 2:{o.title=Nn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Nn.t("Increase");break}case 3:{o.title=Nn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Yf,"makeAlerts");function Zf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(Zf,"getRequiredSlippage");import{i18n as Bn}from"@lingui/core";import{Button as Fx,Divider as Hl,MessageBox as Ox,WarningIcon as Ux}from"@rango-dev/ui";import Co from"react";import{useNavigate as zx}from"react-router-dom";function Jf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=zx();return Co.createElement(R,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:B(),onClose:o},Co.createElement(Ox,{type:"warning",title:r.type===3?Bn.t("High slippage"):Bn.t("Low slippage"),description:r.type===3?Bn.t("Caution, your slippage is high. Your trade may be front run."):Bn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},Co.createElement(Hl,{size:18}),Co.createElement(Hl,{size:32}),Co.createElement(Kf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},Co.createElement(Ux,{color:"white",size:16}),Bn.t("Swap anyway")),Co.createElement(Hl,{size:10}),Co.createElement(Fx,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},Bn.t("Change Slippage"))))}i(Jf,"SlippageWarningModal");import{Button as Qx,MessageBox as Hx,WarningIcon as qx}from"@rango-dev/ui";import Ri from"react";function Rf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ri.createElement(R,{id:"widget-unknown-price-warning-modal",footer:Ri.createElement(Qx,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Ri.createElement(qx,null),fullWidth:!0,disabled:r,onClick:n},ie().unknownPriceError.confirmMessage),open:e,onClose:o,container:B()},Ri.createElement(Hx,{type:"warning",title:ie().unknownPriceError.impactTitle,description:ie().unknownPriceError.description}))}i(Rf,"UnknownPriceWarningModal");function kr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:m,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,d=Yf(e,o?.type===3||o?.type===4?o:null);d&&!n&&(d.action=null);let S=!!d&&!s,y=i(C=>{if(C==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,w=Zf(e,k);f?.(w)}else C==="change-settings"&&m()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,g&&Ue.createElement(Ue.Fragment,null,Ue.createElement(eg,{size:10}),Ue.createElement(Cr,{skipAlerts:s,error:o,fetch:c})),S&&Ue.createElement(Qf,null,Ue.createElement(eg,{size:10}),Ue.createElement(Vx,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Ue.createElement(Vf,{onClick:l},Ue.createElement(jx,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Ue.createElement(Kx,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>y(d.action)},d.actionButtonTitle||Gx.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(Xf,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(Jf,{...h,warning:e}),e.type===1&&Ue.createElement(Rf,{...h,warning:e})))}i(kr,"QuoteWarningsAndErrors");import Tb from"bignumber.js";import fa from"react";import{i18n as qo}from"@lingui/core";import{Alert as cb,Divider as Mn,FullExpandedQuote as pb,InfoIcon as ec,NumericTooltip as tc,QuoteTag as ub,StepDetails as db,TokenAmount as mb,Typography as Ln,useIsTruncated as oc}from"@rango-dev/ui";import nc from"bignumber.js";import O,{useRef as ua,useState as fb}from"react";import{styled as ql}from"@rango-dev/ui";var Gl=ql("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),tg=ql("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),og=ql("div",{width:"100%",display:"flex"});import*as ea from"@radix-ui/react-collapsible";import{Button as Xx,css as ta,darkTheme as De,Image as ng,styled as Ke,Typography as Vl}from"@rango-dev/ui";var Yx=300,rg=Ke(ea.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),ig=ta({padding:"$10 $15"}),ag=Ke(Xx,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${De} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${De} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${De} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),sg=Ke("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",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${De} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${De} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${De} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${De} &`]:{backgroundColor:"$neutral400"}}}}]}),lg=ta({width:"100%",padding:"$15 $15 $10 $15"}),cg=ta({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Wn=ta({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),pg=Ke(ea.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:{[`& ${ng}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${ng}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${De} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${De} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),ug=Ke("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"}}}}),dg=Ke(Ki,{width:"100%",background:"inherit"}),Kl=Ke("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Yx}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),xH=Ke("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),mg=Ke("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${De} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),fg=Ke("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),jl=Ke(Vl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),Xl=Ke(Vl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),Yl=Ke("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"}}}}),gg=Ke("div",{display:"flex"}),oa=Ke("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${De} &`]:{borderTopColor:"$neutral800"}}),hg=Ke(Vl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as $t}from"@lingui/core";import{ChevronDownIcon as Jx,CloseIcon as Rx,Divider as ia,IconButton as eb,NumericTooltip as tb,QuoteCost as ob,Typography as Et}from"@rango-dev/ui";import Z,{useState as Tg}from"react";import{css as Zx,styled as na}from"@rango-dev/ui";var ra=na("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Zl=na("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),yg=na("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Sg=na("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Cg=Zx({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var nb=i(t=>t.fee.isZero()?null:Z.createElement(ra,null,Z.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(Et,{variant:"label",size:"medium"},"$",P(t.fee,4,4))),"NonPayableFee");function Jl(t){let[e,o]=Tg(!1),[n,r]=Tg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:m,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?Wo():B(),d=qd(h),S=P(c,2,2);return Z.createElement(Z.Fragment,null,Z.createElement(ob,{onClickFee:m?y=>{y.stopPropagation(),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:m?$t.t("View more info"):void 0,tooltipContainer:g}),Z.createElement(R,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:Z.createElement(Sg,{style:{textAlign:f?"left":"center"}},Z.createElement(Et,{variant:"title",size:"medium"},$t.t("Gas & Fee Explanation")),Z.createElement(eb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(Rx,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(yg,null,Z.createElement(Et,{variant:"title",size:"small"},$t.t("Details")),Z.createElement(ia,{size:10}),Object.entries(d.payable).flatMap(([y,C])=>C.map((k,w)=>{let x=`payable-fee-${w}`,I=js(k);return Z.createElement(ra,{key:x},Z.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Hs(y,$t.t)),Z.createElement(tb,{content:k.amount,container:g},Z.createElement(Et,{variant:"label",size:"medium"},P(k.amount,2,2),k.asset.symbol," ($",P(I,4,4),")")))})),Z.createElement(ra,{className:"total_payable_fee"},Z.createElement(Et,{variant:"label",size:"medium"},$t.t("Total Payable Fee")),Z.createElement(Et,{variant:"label",size:"medium"},"$",P(c,4,4))),Z.createElement(Zl,null),!!Object.keys(d.nonePayable).length&&Z.createElement(Yi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Z.createElement("div",{className:Cg()},Z.createElement(Et,{size:"small",variant:"body",color:"neutral700"},n?$t.t("Hide non-payable fees"):$t.t("Show non-payable fees")),Z.createElement(ia,{size:4,direction:"horizontal"}),Z.createElement(ji,{orientation:n?"up":"down"},Z.createElement(Jx,{size:12,color:"gray"}))),open:n},Z.createElement(Et,{size:"small",variant:"title"},$t.t("Description")),Z.createElement(ia,{size:4}),Z.createElement(Et,{size:"small",variant:"body",color:"neutral700"},$t.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),Z.createElement(ia,{size:10}),Object.entries(d.nonePayable).map(([y,C],k)=>{let w=Hd(C),x=Hs(y,$t.t),I=`non-payable-fee-${k}`;return Z.createElement(nb,{key:I,fee:w,label:x})}),Z.createElement(Zl,null)))))}i(Jl,"QuoteCostDetails");import{i18n as vg}from"@lingui/core";import{TokenAmount as xg}from"@rango-dev/ui";import aa from"react";import{css as rb,styled as ib}from"@rango-dev/ui";var kg=ib("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),wg=rb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function wr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return aa.createElement(kg,null,aa.createElement(xg,{direction:"horizontal",label:vg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:B(),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}}),aa.createElement("div",{className:wg()}),aa.createElement(xg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:B(),label:vg.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(wr,"QuoteSummary");import{i18n as bg}from"@lingui/core";import{ChevronDownIcon as ab,ChevronRightIcon as sb,Divider as Rl,Image as lb,Tooltip as pa,Typography as sa}from"@rango-dev/ui";import q from"react";var la=4,ca=6,vr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||B();return q.createElement(pa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},q.createElement(ug,{className:n,state:a},q.createElement(lb,{src:o,size:16})))},"ImageComponent");function Eg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||B(),p=r.length,u=Ld(r),{isTablet:m,isMobile:f}=kn();return q.createElement(pg,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},q.createElement("div",{className:Wn()},q.createElement(sa,{variant:"body",size:"xsmall"},bg.t("Via:")),q.createElement(Rl,{direction:"horizontal",size:4}),r.map((h,g)=>{let d=`item-${g}`,S=q.createElement(Kl,null,q.createElement(sb,{size:12,color:"black"}));return f||m?q.createElement(q.Fragment,{key:d},q.createElement(vr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,S)):q.createElement(q.Fragment,{key:d},p<=la||p>la&&g<la-1?q.createElement(q.Fragment,null,q.createElement(vr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&q.createElement(q.Fragment,null,S)):g===la-1&&q.createElement(pa,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:Wn()},S,r.map((y,C)=>{let k=`image-${C}`;return C>=g&&q.createElement(q.Fragment,{key:k},q.createElement(vr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&q.createElement(q.Fragment,null,S))}))},q.createElement(Yl,{state:r.find((y,C)=>C>=g&&(y.state==="error"||y.state==="warning"))?.state},q.createElement(sa,{size:"xsmall",variant:"body"},"+",p-g))))})),q.createElement("div",{className:Wn()},q.createElement("div",{className:"blockchains_section"},q.createElement("div",{className:Wn()},q.createElement(sa,{variant:"body",size:"xsmall"},bg.t("Chains:")),q.createElement(Rl,{direction:"horizontal",size:4}),u.map((h,g)=>q.createElement(q.Fragment,{key:h.displayName},u.length<=ca||u.length>ca&&g<ca-1?q.createElement(pa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},q.createElement(vr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ca-1&&q.createElement(pa,{container:l,side:"bottom",align:"end",sideOffset:4,content:q.createElement("div",{className:Wn()},u.map((d,S)=>S>=g&&q.createElement(vr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:S>g?"blockchainImage":"",container:c})))},q.createElement(Yl,{className:"blockchainImage"},q.createElement(sa,{size:"xsmall",variant:"body"},"+",u.length-g))))),q.createElement(Rl,{direction:"horizontal",size:32}))),q.createElement(Kl,{orientation:a?"up":"down"},q.createElement(ab,{size:12,color:"black"}))))}i(Eg,"QuoteTrigger");function rc(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:m=!1,container:f}=t,h=T().blockchains(),{findToken:g}=T(),d=T().swappers(),{customSlippage:S,slippage:y}=T(),C=S||y,[k,w]=fb(t.expanded),x=ua(null),I=P(n.value,6,6),A=n.usdValue?P(n.usdValue,4,4):"",b=jt(o.usdValue,n.usdValue??null),E=P(b,2,2),v=Xt(b??0),N=i((Q,j)=>Q.map((K,Ie)=>{let Ae,je=r?.type===3&&r.swap.swapperId===K.swapperId,Mt=r?.type===4&&!!r.recommendedSlippages?.[Ie],so=a?.type===2&&!!a.recommendedSlippages?.[Ie],Io=je||Mt,zn=so;Io?Ae="error":zn&&(Ae="warning");let Rr=Io?qo.t("Slippage Error"):qo.t("Slippage Warning");return je&&(Rr=qo.t("Bridge Limit Error")),{swapper:{displayName:Hn(K.swapperId,d)??"",image:K.swapperLogo},from:{token:{displayName:K.from.symbol,image:K.from.logo},chain:{displayName:ht(K.from.blockchain,h)??"",image:K.from.blockchainLogo},price:{value:Ie===0&&!j?P(o.value,6,6):P(K.fromAmount,6,6),usdValue:P((K.from.usdPrice??0)*parseFloat(K.fromAmount),4,4),realValue:Ie===0?o.value:K.fromAmount,realUsdValue:new nc(K.from.usdPrice??0).multipliedBy(K.fromAmount).toString()}},to:{token:{displayName:K.to.symbol,image:K.to.logo},chain:{displayName:ht(K.to.blockchain,h)||"",image:K.to.blockchainLogo},price:{value:P(K.toAmount,6,6),usdValue:P((K.to.usdPrice??0)*parseFloat(K.toAmount),4,4),realValue:K.toAmount,realUsdValue:new nc(K.to.usdPrice??0).multipliedBy(K.toAmount).toString()}},state:Ae,alerts:Io||zn?O.createElement(tg,{dense:m},O.createElement(cb,{variant:"alarm",type:Io?"error":"warning",title:Rr,id:"widget-quote-footer-step-alarm-alert",footer:O.createElement(og,null,je&&O.createElement("div",null,O.createElement(Ln,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),O.createElement(Mn,{direction:"vertical",size:2}),O.createElement(Ln,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},qo.t({id:"Yours: {amount} {symbol}",values:{amount:P(K.fromAmount,6,6),symbol:K?.from.symbol}}))),(Mt||so)&&!je&&O.createElement("div",null,O.createElement(Ln,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[Ie]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[Ie]}}})),O.createElement(Mn,{direction:"vertical",size:2}),O.createElement(Ln,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Gn(K.estimatedTimeInSeconds),fee:P(Ks(K,g),2,2),internalSwaps:K.internalSwaps?N(K.internalSwaps):void 0}}),"getQuoteSteps"),W=N(e?.swaps??[]),D=W.length,H=f||B(),X=_d(t.quote.tags||[]),Y=!!u,M=ci(e?.swaps),ee=Gn(M),J=Mi(e?.swaps??[],g),te=P(J,2,2),ce=J.gte(new nc(bd)),Oe=M/Id>=Ed,ne=ua(null),wt=oc(o.value,ne),gt=ua(null),Wt=oc(n.value,gt),$=ua(null),U=oc(A,$),G=W[D-1],pe=W[0];return!pe||!G?null:m?O.createElement(pb,{selected:c,fee:te,time:ee,tooltipContainer:Wo(),steps:W,tags:X,id:"widget-quote-full-expanded-quote-container",quoteCost:O.createElement(Jl,{quote:e,fullExpandedMode:!0,time:ee,fee:J,feeWarning:ce,timeWarning:Oe,showModalFee:p,steps:D}),percentageChange:E,warningLevel:v,outputPrice:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue}}):O.createElement(sg,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},O.createElement("div",{className:lg()},!l&&X.length?O.createElement(O.Fragment,null,O.createElement(gg,null,X.map((Q,j)=>{let K=`${Q.value}_${j}`;return O.createElement(O.Fragment,{key:K},O.createElement(ub,{label:Q.label,value:Q.value}),O.createElement(Mn,{size:4,direction:"horizontal"}))})),O.createElement(oa,null),!Y&&O.createElement(Mn,{size:4})):null,O.createElement("div",{id:"portal-root",className:cg()},O.createElement(Jl,{quote:e,time:ee,fee:J,feeWarning:ce,timeWarning:Oe,showModalFee:p,steps:D}),Y&&O.createElement(ag,{onClick:Q=>{Q.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},O.createElement(Ln,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},qo.t("See All Routes")))),s==="basic"&&O.createElement(fg,null,O.createElement(Xl,{ref:ne,size:"small",variant:"body"},o.value),wt&&O.createElement(tc,{content:o.value,container:H,open:o.value?void 0:!1},O.createElement(ec,{size:12,color:"gray"})),O.createElement(jl,{size:"small",variant:"body"},W[0]?.from.token.displayName),O.createElement(Ln,{size:"small",variant:"body"},"="),O.createElement(Xl,{ref:gt,size:"small",variant:"body"},n.value),Wt&&O.createElement(tc,{content:n.value,container:H,open:n.value?void 0:!1},O.createElement(ec,{size:12,color:"gray"})),O.createElement(jl,{size:"small",variant:"body"},G?.to.token.displayName),O.createElement(Mn,{size:2,direction:"horizontal"}),O.createElement(hg,{ref:$,color:"$neutral600",size:"xsmall",variant:"body"},`($${A})`),U&&O.createElement(tc,{content:n.usdValue,container:H},O.createElement(ec,{size:12,color:"gray"}))),s==="list-item"&&O.createElement(mb,{id:"widget-quote-token-amount-container",tooltipContainer:H,type:"output",direction:"vertical",price:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:G.to.token.displayName,image:G.to.token.image},chain:{image:G.to.chain.image},percentageChange:E,warningLevel:v}),s==="swap-preview"&&O.createElement(O.Fragment,null,O.createElement(wr,{from:pe.from,to:G.to,percentageChange:E,warningLevel:v}),O.createElement(Mn,{size:4}))),O.createElement(rg,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},O.createElement(Eg,{type:s,quoteRef:x,selected:c,setExpanded:w,container:H,expanded:k,steps:W}),O.createElement(dg,{open:k},O.createElement(mg,null),O.createElement("div",{className:ig()},W.map((Q,j)=>{let K=`item-${j}`;return O.createElement(db,{type:"quote-details",className:"widget-quote-step-details-container",key:K,tooltipContainer:H,step:Q,hasSeparator:j!==W.length-1,state:Q.state})})))))}i(rc,"Quote");import{Divider as Sb,Skeleton as Cb}from"@rango-dev/ui";import eo from"react";import{darkTheme as gb,styled as da}from"@rango-dev/ui";var Ig=da("div",{$$color:"$colors$neutral100",[`.${gb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Ag=da("div",{paddingTop:"$2"}),Ng=da("div",{paddingLeft:"$8"}),Bg=da("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ug,Divider as It,Skeleton as ut}from"@rango-dev/ui";import V from"react";import{css as hb,styled as Rt}from"@rango-dev/ui";var ic=Rt("div",{display:"flex"}),Wg=Rt("div",{padding:"$10 $0 $20"}),Mg=Rt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Lg=Rt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Pg=Rt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),_g=Rt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Dg=Rt("div",{width:"65%",display:"flex",justifyContent:"start"}),$g=Rt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Fg=Rt("div",{padding:"$15 $0 $15 $0"}),Og=hb({display:"flex",justifyContent:"space-between",alignItems:"center"});function xr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(Pg,null,V.createElement(Dg,null,V.createElement(Ug,{loading:!0,size:"medium"}),V.createElement(It,{size:8,direction:"horizontal"}),V.createElement($g,null,V.createElement(ut,{height:10,width:60,variant:"rounded"}),V.createElement(It,{size:4}),V.createElement(ut,{height:15,variant:"rounded"}))),V.createElement(ut,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(ic,null,V.createElement(ut,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(ut,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(ut,{width:65,height:20,variant:"rounded"})),V.createElement(oa,null),!r&&V.createElement(It,{size:4})),V.createElement("div",{className:Og()},V.createElement(ic,null,V.createElement(ut,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(ut,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(ut,{width:60,height:10,variant:"rounded"})),r&&V.createElement(ut,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Wg,null,V.createElement(ut,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(Mg,null,V.createElement(Lg,null,V.createElement(Ug,{loading:!0,size:"medium"}),V.createElement(It,{direction:"horizontal",size:4}),V.createElement(ut,{height:15,width:150,variant:"rounded"})),V.createElement(It,{size:10}),V.createElement(ut,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(It,{size:4}),V.createElement(Fg,null,n,V.createElement(_g,null),n),V.createElement(It,{size:12})))}i(xr,"QuoteSummarySkeleton");import{ChainToken as Gg,Divider as sc,NextIcon as yb,Skeleton as ma}from"@rango-dev/ui";import Me from"react";import{styled as br}from"@rango-dev/ui";var zg=br("div",{display:"flex",alignItems:"start"}),Qg=br("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),ac=br("div",{display:"flex",alignItems:"center",flexGrow:1}),Hg=br("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),qg=br("div",{display:"flex",alignItems:"center"});function Ft(t){let{separator:e=!0}=t;return Me.createElement(Me.Fragment,null,Me.createElement(qg,null,Me.createElement(ma,{height:22,width:22,variant:"circular"}),Me.createElement(sc,{direction:"horizontal",size:8}),Me.createElement(ma,{height:15,width:148,variant:"rounded"})),Me.createElement(zg,null,Me.createElement(Bg,{hideSeparator:!e}),Me.createElement(Qg,{extraSpace:e},Me.createElement(ac,null,Me.createElement(Gg,{size:"small",loading:!0}),Me.createElement(sc,{direction:"horizontal",size:8}),Me.createElement(ma,{height:12,variant:"rounded"})),Me.createElement(Hg,null,Me.createElement(yb,{color:"gray",size:16})),Me.createElement(ac,null,Me.createElement(Gg,{size:"small",loading:!0}),Me.createElement(sc,{direction:"horizontal",size:8}),Me.createElement(ma,{height:12,variant:"rounded"})))))}i(Ft,"StepSkeleton");function Er(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return eo.createElement(Ig,{expanded:o,rounded:e!=="basic"},eo.createElement(xr,{type:e,tagHidden:n}),eo.createElement(Ag,null,eo.createElement(Cb,{height:15,variant:"rounded"})),o&&eo.createElement(Ng,null,eo.createElement(Sb,{size:24}),eo.createElement(Ft,null),eo.createElement(Ft,null),eo.createElement(Ft,{separator:!1})))}i(Er,"QuoteSkeleton");function Go(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:m,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:d,inputUsdValue:S}=z()(),y=e?.outputAmount?new Tb(e?.outputAmount):null,C=e?St(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?fa.createElement(Gl,null,fa.createElement(Er,{tagHidden:c,type:o,expanded:s})):w?fa.createElement(Gl,{onClick:()=>l?.(e),id:m},fa.createElement(rc,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:d,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(Go,"QuoteInfo");import{warn as xb}from"@rango-dev/logging-core";import{calculatePendingSwap as bb}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Eb}from"react";import{useRef as kb,useState as wb}from"react";var vb=2e3;function ga({request:t}){let[e,o]=wb(!1),n=kb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,vb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(ga,"useFetch");function Vg(){let{fetch:t,loading:e,cancelFetch:o}=ga({request:async(n,r)=>await ct().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Vg,"useFetchConfirmQuote");function ha(t){if(!t.swaps)throw new Error(ie().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=lc(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ha,"throwErrorIfResponseIsNotValid");function lc(t){if(Ud(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=zd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=Gd(t);if(o){let n=Li(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(lc,"getQuoteError");function Kg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=Sn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=jd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(Kg,"generateWarnings");function ya(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}i(ya,"handleQuoteErrors");function cc(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=z()(),{slippage:l,customSlippage:p}=T(),u=T().getDisabledLiquiditySources(),m=T().blockchains(),f=T().tokens(),{findToken:h}=T(),{swapMode:g}=ot(),d=p||l,{fetch:S,cancelFetch:y,loading:C}=Vg();return Eb(()=>y,[]),{loading:C,fetch:i(async w=>{let x=w.selectedWallets,I=w?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=x.reduce((E,v)=>(E[v.chain]=v.address,E),{}),b={requestId:a?.requestId||"",selectedWallets:A,destination:I||void 0};try{return await S(b,!0).then(E=>{let{result:v}=E;if(!v)throw new Error(E.error??"Error fetching updated quote");ha({diagnosisMessages:v.diagnosisMessages,requestId:v.requestId,swaps:v.result?.swaps});let N={outputAmount:v.result?.outputAmount,requestId:v.requestId,resultType:v.result?.resultType,swaps:v.result?.swaps||[],validationStatus:v.validationStatus,requestAmount:v.requestAmount};r(N);let W={slippage:d.toString(),disabledSwappersGroups:u},D=Kg({previousQuote:a??void 0,currentQuote:N,meta:{blockchains:m},selectedWallets:x,userSlippage:d,inputUsdValue:n,findToken:h});c();let H=!!D.balance,X=bb({inputAmount:o.toString(),bestRoute:v,wallets:Kd(x),settings:W,validateBalanceOrFee:!H,meta:{blockchains:m,tokens:f},swapMode:g});return{quote:N,swap:X,error:null,warnings:D}})}catch(E){let v=ya(E);return v.type!==2&&xb(new Error("confirm swap error"),{tags:{...v,type:Ze[v.type],initialQuote:a,requestBody:b}}),{swap:null,error:v,warnings:null}}},"fetch"),cancelFetch:y}}i(cc,"useConfirmSwap");var Db=Bb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${jg}`]:{width:"$48",height:"$48"}}),$b=dc({flexGrow:1,paddingRight:"$10"}),Fb=dc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Ob=dc({display:"flex",justifyContent:"space-between",alignItems:"center"});function Xg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z()(),s=_b(),[c,l]=Ir(""),p=!n,[u,m]=Ir(!1),[f,h]=Ir(!1),{isActiveTab:g}=re(),d=T().getDisabledLiquiditySources(),S=Pb(d),{manager:y}=Ib(),{fetch:C,loading:k,cancelFetch:w}=cc(),[x,I]=Ir({swap:null,error:null,warnings:null}),[A,b]=Ir(!1),E=i(async({selectedWallets:M,customDestination:ee})=>{let J=await C?.({selectedWallets:M,customDestination:ee});return I(J),J},"onConfirmSwap"),v=i(async()=>{if(x.swap&&n)try{await y?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let M=`../${F.swaps}/${x.swap.requestId}`;s(M,{replace:!0}),setTimeout(()=>{e("")},0)}catch(M){l("Error: "+M?.message)}},"addNewSwap"),N=i(async()=>{h(!0),await v(),h(!1)},"onConfirm"),W=i(async()=>{x.warnings?.quote&&Md(x.warnings.quote)&&!a?b(!0):await N()},"onStartConfirmSwap"),D=i(async()=>{I({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(M=>{I(M)}).catch(M=>console.error(M))},"onRefresh");Sa(()=>{!!S.current.length&&!d.length&&D(),S.current=d},[d.length]),Sa(()=>{p&&w()},[p]),Sa(()=>{p&&m(p)},[p]),Sa(()=>{p||C({selectedWallets:o,customDestination:r}).then(M=>I(M)).catch(M=>console.error(M))},[]),Lb(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let H=x.warnings?.quote??null,X=x.error,Y=[];if(c&&Y.push($e.createElement(Ab,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),H||X){let M=`../${F.settings}`;Y.push($e.createElement(kr,{warning:H,error:X,couldChangeSettings:!1,refetchQuote:D,skipAlerts:X?.type===4||H?.type===2,showWarningModal:A,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await v()},onChangeSettings:()=>s(M)}))}return $e.createElement(se,{header:{title:pc.t("Confirm Swap"),onWallet:()=>{let M=`../${F.wallets}`;s(M)}},footer:$e.createElement(Db,null,$e.createElement("div",{className:$b()},$e.createElement(Nb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!x.error||!g,onClick:W},pc.t("Start Swap"))),$e.createElement(jg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:m.bind(null,!0)},$e.createElement(Mb,{size:24})))},u&&$e.createElement(Pf,{open:u,onClose:()=>m(!1),onCancel:w,loading:k,onCheckBalance:E}),$e.createElement(ue,null,$e.createElement("div",{className:Ob()},$e.createElement(Wb,{variant:"title",size:"small"},pc.t("You get")),$e.createElement("div",{className:Fb()},$e.createElement(Ui,{onClick:!k&&!u&&!A?D:void 0}))),$e.createElement(uc,{size:"12"}),Nm(Y.map((M,ee)=>({element:M,key:`alert-${ee}`})),$e.createElement(uc,{size:10})),Y.length>0?$e.createElement(uc,{size:10}):null,$e.createElement(Go,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:k,warning:x.warnings?.quote??null})))}i(Xg,"ConfirmSwapPage");import{i18n as oo}from"@lingui/core";import{Button as xc,CustomTokensZeroStateDarkIcon as iE,CustomTokensZeroStateIcon as aE,DeleteIcon as sE,Divider as Mr,IconButton as lE,MessageBox as cE,NotFound as pE,styled as Ec}from"@rango-dev/ui";import ye,{useState as bc}from"react";import{useNavigate as uE}from"react-router-dom";import{CloseIcon as Ub,IconButton as zb,SearchIcon as Qb,TextField as Hb}from"@rango-dev/ui";import Pn from"react";import{styled as Yg}from"@rango-dev/ui";var Zg=Yg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Jg=Yg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function At(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...m}=t,f=s.length?Pn.createElement(zb,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Pn.createElement(Ub,{color:"gray",size:10})):null;return p&&(f=p),Pn.createElement(Jg,null,Pn.createElement(Hb,{prefix:Pn.createElement(Zg,null,Pn.createElement(Qb,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...m}))}i(At,"SearchInput");import{i18n as vc}from"@lingui/core";import{Button as Kb,CustomTokenWarning as jb,darkTheme as ph,Divider as to,ExternalLinkIcon as Xb,Image as Yb,ListItem as Zb,NotFound as Jb,PinIcon as Rb,Skeleton as Vo,Typography as Br,VirtualizedList as eE}from"@rango-dev/ui";import L,{useState as tE}from"react";import{useTranslation as oE}from"react-i18next";import{Divider as lh,ListItem as Vb,Skeleton as Nr}from"@rango-dev/ui";import Nt from"react";import{css as _n,darkTheme as mc,ImageContainer as qb,ListItemButton as Gb,styled as it,Typography as Rg}from"@rango-dev/ui";var fc=_n({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),gc=_n({position:"relative",height:12,width:"30%",maxWidth:"150px"}),hc=_n({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),yc=_n({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${mc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Sc=_n({}),Cc=_n(),eh=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Tc=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Ca=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${gc}`]:{[`& .${yc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Sc}`]:{bottom:"-15px"},[`& .${fc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${hc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),th=it(Gb,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),kc=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),wc=it(Rg,{}),oh=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Cc}`]:{$$color:"$colors$neutral600",[`.${mc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Ar=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),CV=it("div",{display:"flex",alignItems:"center"}),nh=it("div",{position:"relative",[`& ${qb}`]:{borderRadius:"$xm",overflow:"hidden"}}),rh=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),ih=it(Rg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),ah=it("a",{"& svg:hover":{color:"$colors$info"}}),sh=it("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":{[`.${mc} &`]:{color:"$foreground"}}}});function ch(t){return Nt.createElement(Ca,null,Array.from(Array(t.size),e=>Nt.createElement(Vb,{key:e,hasDivider:!0,start:Nt.createElement(Nr,{variant:"circular",width:35,height:35}),end:Nt.createElement(Ar,null,Nt.createElement(Nr,{variant:"text",size:"large",width:70}),Nt.createElement(lh,{size:4}),Nt.createElement(Nr,{variant:"text",size:"medium",width:50})),title:Nt.createElement("div",null,Nt.createElement(Nr,{variant:"text",size:"large",width:90}),Nt.createElement(lh,{size:4}),Nt.createElement(Nr,{variant:"text",size:"medium",width:90}))})))}i(ch,"LoadingTokenList");var nE=20,rE=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return L.createElement("div",{className:gc()},o?L.createElement("div",{className:fc()},o):L.createElement(Tc,{className:hc()},L.createElement(Br,{variant:"title",size:"xmedium"},r.symbol),L.createElement(to,{direction:"horizontal",size:4}),L.createElement(kc,{css:a},L.createElement(wc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&L.createElement("div",{className:`${yc()} ${!o&&Sc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",L.createElement(to,{size:4,direction:"horizontal"}),L.createElement(ah,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},L.createElement(Xb,{size:12}))))},"renderDesc");function Wr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=T().fetchStatus,u=T().blockchains(),{getBalanceFor:m,fetchingWallets:f}=T(),{isTokenPinned:h}=T(),{setFromToken:g,setToToken:d}=z()(),{t:S}=oE(),y=Ge(),[C,k]=tE(null),w=i(()=>{c==="source"?g({token:C,meta:{blockchains:u}}):d({token:C,meta:{blockchains:u}})},"updateToken"),x=i(()=>{w(),y()},"handleImportToken"),I=i(E=>{if(E.customToken){let{customToken:N,...W}=E;return L.createElement(Kb,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(H=>{H.stopPropagation(),k({...W,warning:!0})},"handleClick")},L.createElement(Br,{variant:"body",size:"xsmall",color:"background"},S("import")))}let v=mi(m(E));return s?s(E):f?L.createElement(Ar,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(to,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:50})):v&&L.createElement(oh,null,L.createElement(ih,{variant:"title",size:"small"},v.amount),L.createElement("div",null),v.usdValue&&L.createElement(Br,{variant:"body",className:Cc(),size:"xsmall"},`$${v.usdValue}`))},"endRenderer"),A=i(()=>L.createElement(eE,{itemContent:E=>{let v=e[E];if(v==="skeleton")return L.createElement(Zb,{hasDivider:!0,start:L.createElement(Vo,{variant:"circular",width:35,height:35}),end:L.createElement(Ar,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(to,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:50})),title:L.createElement("div",null,L.createElement(Vo,{variant:"text",size:"large",width:90}),L.createElement(to,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:90}))});let N=u.find(M=>M.name===v?.blockchain);if(!N||!v)return null;let W=v.address,D=cl(N.color,"main"),H={$$color:D.main150,[`.${ph} &`]:{$$color:D.main750},backgroundColor:"$$color"},X={$$color:D.main750,[`.${ph} &`]:{$$color:D.main150},color:"$$color"},Y=i(()=>{typeof v!="string"&&!v.customToken&&n?.(v)},"handleClick");return L.createElement(sh,null,L.createElement(th,{"tab-index":E,key:`${v.symbol}${W}`,id:`${v.symbol}${W}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:v?.customToken,onClick:Y,start:L.createElement(nh,null,L.createElement(Yb,{src:v.image===""?ni:v.image,size:30}),t.type!=="custom-token"&&v&&h(v,t.type)&&L.createElement(rh,null,L.createElement(Rb,{size:12,color:"gray"}))),title:N.type==="COSMOS"||v.name||!v.name&&!W?L.createElement(Tc,null,L.createElement(Br,{variant:"title",size:"xmedium"},v.symbol),L.createElement(to,{direction:"horizontal",size:4}),L.createElement(kc,{css:H},L.createElement(wc,{variant:"body",size:"xsmall",css:X},v.blockchain)),l&&v.warning&&L.createElement(L.Fragment,null,L.createElement(to,{direction:"horizontal",size:4}),L.createElement(jb,{container:B()}))):void 0,description:typeof v!="string"&&N.info&&W&&N.type!=="COSMOS"?rE({address:W,token:v,customCssForTag:H,customCssForTagTitle:X,name:v.name,url:N.info.addressUrl.split("{wallet}").join(W)}):v.name||void 0,end:I(v)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),b=C?No(C?.blockchain,u):null;return L.createElement(L.Fragment,null,a&&L.createElement(L.Fragment,null,L.createElement(Br,{variant:"label",size:"large"},vc.t("Select Token")),L.createElement(to,{size:4})),L.createElement(eh,null,L.createElement(to,{size:4}),p==="loading"&&L.createElement(ch,{size:nE}),p==="success"&&(e.length?L.createElement(L.Fragment,null,L.createElement(mr,{token:C,address:C?.address??"",blockchain:b??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),L.createElement(Ca,{as:"ul"},A())):!!o&&L.createElement(Jb,{title:vc.t("No results found"),description:vc.t("Try using different keywords")}))))}i(Wr,"TokenList");var dE=Ec("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),mE=Ec("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),fE=Ec(lE,{"&:hover":{"& svg":{color:"$secondary550"}}});function uh(){let[t,e]=bc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=mo({}),p=uE(),[u,m]=bc(!1),[f,h]=bc(),g=i(C=>{let k=C.target.value;e(k)},"handleSearch"),d=l==="dark",S=n.filter(C=>st(C.symbol,t)||st(C.address||"",t)||st(C.name||"",t)),y=i(()=>{if(f){let C=a?yt(a):null,k=r?yt(r):null,w=yt(f);C===w?c({token:null}):k===w&&s({token:null}),o(f)}m(!1)},"handleDeleteCustomToken");return ye.createElement(se,{header:{title:oo.t("Custom Tokens")}},ye.createElement(ue,null,ye.createElement(dE,null,n.length?ye.createElement(ye.Fragment,null,ye.createElement(At,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search Token"),onChange:g}),ye.createElement(Mr,{size:16}),ye.createElement(Wr,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>ye.createElement(fE,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),h(C)}},ye.createElement(sE,{size:12,color:"gray"}))})):ye.createElement(mE,null,ye.createElement(pE,{icon:d?ye.createElement(iE,{size:200}):ye.createElement(aE,{size:200}),title:oo.t("No custom tokens"),description:oo.t("press the button to add your custom token")})),ye.createElement(Mr,{size:20}),ye.createElement(xc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},oo.t("Add Custom Token"))),ye.createElement(R,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>m(!1),container:B()},ye.createElement(cE,{title:oo.t("Delete Custom Token"),type:"error",description:oo.t("Are you sure you want to Delete this Token?")},ye.createElement(Mr,{size:40}),ye.createElement(Mr,{size:10}),ye.createElement(xc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},oo.t("Yes, Delete it")),ye.createElement(Mr,{size:12}),ye.createElement(xc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},oo.t("No, Continue"))))))}i(uh,"CustomTokensPage");import{i18n as Fe}from"@lingui/core";import{useManager as PE}from"@rango-dev/queue-manager-react";import{Button as Lc,darkTheme as _E,Divider as To,MessageBox as DE,NotFound as $E,styled as Pc,Tabs as FE,Typography as wa}from"@rango-dev/ui";import{TransactionStatus as _r}from"rango-types";import oe,{useMemo as Bh,useState as Dr}from"react";import{useNavigate as OE}from"react-router-dom";import{FilterIcon as kE,Popover as wE}from"@rango-dev/ui";import Ko from"react";import{css as gE,darkTheme as Ta,IconButton as hE,styled as Lr}from"@rango-dev/ui";var Ic=Lr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Ta} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),dh=Lr(hE,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Ta} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Ta} &`]:{backgroundColor:"$neutral"},[`& ${Ic}::before`]:{backgroundColor:"$secondary100",[`.${Ta} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),mh=Lr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),fh=Lr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),gh=gE({display:"flex",justifyContent:"space-between",alignItems:"center"}),hh=Lr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as yh}from"@lingui/core";import{Button as yE,Divider as Sh,ListItemButton as SE,Radio as CE,RadioRoot as TE,Typography as Ch}from"@rango-dev/ui";import dt from"react";function Th(t){let{filterBy:e,onClickItem:o}=t;return dt.createElement(fh,null,dt.createElement("div",{className:gh()},dt.createElement(Ch,{size:"small",variant:"body"},yh.t("Status")),dt.createElement(yE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},yh.t("Reset"))),dt.createElement(Sh,{size:10}),dt.createElement(TE,{value:e},dt.createElement(hh,null,t.list.map((n,r)=>dt.createElement(SE,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:dt.createElement(dt.Fragment,null,dt.createElement(Sh,{direction:"horizontal",size:4}),dt.createElement(Ch,{size:"medium",variant:"body"},n.title)),start:dt.createElement(CE,{value:n.id}),onClick:o})))))}i(Th,"FilterSelectorContent");function Ac(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Ko.createElement("div",null,Ko.createElement(wE,{open:a,align:"end",onOpenChange:o,container:B(),content:Ko.createElement(Th,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Ko.createElement(dh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Ko.createElement(Ic,{isSelect:!!n},Ko.createElement(kE,{size:16,color:"black"}),!!n&&Ko.createElement(mh,null)))))}i(Ac,"FilterSelector");import{i18n as bE}from"@lingui/core";import{getCurrentStep as EE}from"@rango-dev/queue-manager-rango-preset";import{Divider as bh,GroupedVirtualizedList as IE,Skeleton as AE,SwapListItem as Eh,Typography as NE}from"@rango-dev/ui";import Je,{useCallback as Ih,useEffect as BE,useRef as WE,useState as ME}from"react";function kh(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(kh,"calculateGroupsSoFar");import{css as vE,darkTheme as xE,styled as Pr}from"@rango-dev/ui";var Nc=vE(),wh=Pr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Bc=Pr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Nc}`]:{$$color:"$colors$neutral600",[`.${xE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wc=Pr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),vh=Pr("div",{gap:"$10",display:"flex",flexDirection:"column"}),xh=Pr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var LE=10;function Mc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=ME([]),c=WE(0),{swaps:l,groupCounts:p,groups:u}=n(e),m=Ih(kh,[]),f=Ih(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,LE),s(m(p,c.current)))},[e.length]);if(BE(()=>{r||f()},[r,f]),r){let h=[1,2];return Je.createElement(Je.Fragment,null,[h,h].map((d,S)=>Je.createElement(Bc,{key:S},Je.createElement(Wc,null,Je.createElement(AE,{variant:"text",width:60,size:"small"}),Je.createElement(bh,{size:16})),Je.createElement(bh,{size:4}),Je.createElement(vh,null,d.map((C,k)=>Je.createElement(Eh,{isLoading:!0,key:k}))))))}return Je.createElement(IE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Je.createElement(Bc,null,Je.createElement(Wc,null,Je.createElement(NE,{variant:"label",size:"medium",className:Nc()},u[h]))),itemContent:(h,g)=>{let d=l[h];if(!d)return null;let S=EE(d),y=d.steps[0],C=d.steps[d.steps.length-1];return!y||!C?null:Je.createElement(wh,{key:d.requestId},Je.createElement(Eh,{className:"widget-history-group-list-swap-item-btn",requestId:d.requestId,creationTime:d.creationTime,status:d.status,onClick:o,currentStep:S,tooltipContainer:B(),onlyShowTime:u[g]===bE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:P(d.inputAmount,6,6),realAmount:d.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(Mc,"HistoryGroupedList");import{i18n as ka}from"@lingui/core";import Ah from"dayjs";var Nh=i(t=>{let e=new Map([["today",{title:ka.t("Today"),swaps:[]}],["week",{title:ka.t("This week"),swaps:[]}],["month",{title:ka.t("This month"),swaps:[]}],["year",{title:ka.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=Ah();t.forEach(l=>{let p=Number(l.creationTime),u=Ah(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let m=new Date(p).getFullYear().toString();o(m,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var UE=Pc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),zE=Pc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),QE=Pc("div",{"._typography":{color:"$neutral700",[`.${_E}&`]:{color:"$neutral900"}}}),HE=i((t,e)=>t?.length?t.filter(o=>Pt(o.fromBlockchain,e)||Pt(o.toBlockchain,e)||Pt(o.toSymbol,e)||Pt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Wh(){let t=OE(),{manager:e,state:o}=PE(),n=Tt(e).map(({swap:b})=>b),[r,a]=Dr(""),[s,c]=Dr(!1),l=!o.loadedFromPersistor,[p,u]=Dr(""),[m,f]=Dr(!1),[h,g]=Dr("all"),d=i(b=>{let E=b.target.value;a(E)},"handleSearch"),{isMultiMode:S}=ot(),y=[{id:_r.SUCCESS,title:Fe.t("Complete")},{id:_r.RUNNING,title:Fe.t("Running")},{id:_r.FAILED,title:Fe.t("Failed")}],C=[{id:"all",title:Fe.t("All")},{id:"swap",title:Fe.t("Swap")},{id:"refuel",title:Fe.t("Refuel")}],k=Bh(()=>!r&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:E,status:v,steps:N,requestId:W,mode:D}=b;return(!r||Pt(E,r)||Pt(v,r)||HE(N,r)||Pt(W,r))&&(!p||p===v)&&(h==="all"?!0:h==="swap"?!D||D==="swap":h==="refuel"?D==="refuel":!1)}),[n,r,p,h]),w=!k?.length&&!l,x=i(()=>f(!1),"onCloseModal"),I=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(b){console.log(b)}},"onClear"),A=Bh(()=>!n.some(b=>b.status===_r.SUCCESS||b.status===_r.FAILED),[n]);return oe.createElement(se,{header:{title:Fe.t("History"),suffix:oe.createElement(fo,null,oe.createElement(Lc,{id:"widget-history-clear-btn",disabled:A,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},oe.createElement(wa,{size:"medium",variant:"label",color:"error"},Fe.t("Clear"))))}},oe.createElement(ue,null,oe.createElement(zE,null,oe.createElement(At,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Fe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:d,style:{height:36},value:r}),oe.createElement(To,{size:10,direction:"horizontal"}),oe.createElement(Ac,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:y})),oe.createElement(To,{size:"16"}),S&&!l&&oe.createElement(oe.Fragment,null,oe.createElement(FE,{items:C,onChange:b=>g(b.id),value:h,type:"secondary"}),oe.createElement(To,{size:"12"})),oe.createElement(UE,null,w&&oe.createElement(xh,null,oe.createElement(To,{size:32}),oe.createElement($E,{title:r?Fe.t("No results found"):Fe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Fe.t("Try using different keywords"):Fe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!w&&oe.createElement(Mc,{list:k,onSwapClick:t,groupBy:Nh,isLoading:l}))),oe.createElement(R,{open:m,onClose:x,id:"widget-history-clear-modal",container:B()},oe.createElement(To,{size:20}),oe.createElement(DE,{type:"warning",title:Fe.t("Clear Transaction History"),description:oe.createElement(QE,null,oe.createElement(wa,{variant:"body",size:"medium"},Fe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),oe.createElement(To,{size:"24"}),oe.createElement(wa,{variant:"body",size:"small"},Fe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),oe.createElement(To,{size:30}),oe.createElement(Lc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:I},Fe.t("Yes, Clear the history")),oe.createElement(To,{size:10}),oe.createElement(Lc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:x},oe.createElement(wa,{variant:"title",size:"medium",color:"primary"},Fe.t("No, Cancel")))))}i(Wh,"HistoryPage");import{i18n as sy}from"@lingui/core";import{Button as bI,Divider as jc,styled as EI,WarningIcon as II}from"@rango-dev/ui";import AI from"bignumber.js";import Ce,{useEffect as ly,useState as cy}from"react";import{useNavigate as NI}from"react-router-dom";import{i18n as Lh}from"@lingui/core";import{Alert as GE,Divider as _c,NoRouteIcon as VE,Typography as KE}from"@rango-dev/ui";import jo from"react";import{styled as qE}from"@rango-dev/ui";var Mh=qE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Dc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&qt(t,e)?jo.createElement(Mh,null,jo.createElement(_c,{size:10}),jo.createElement(VE,{size:24,color:"gray"}),jo.createElement(_c,{size:4}),jo.createElement(KE,{variant:"title",size:"small"},Lh.t("No Routes Found")),jo.createElement(_c,{size:4}),jo.createElement(GE,{title:Lh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Dc,"SameTokensWarning");import{Alert as jE,Button as XE}from"@rango-dev/ui";import _h from"react";import{i18n as va}from"@lingui/core";function Ph(t){let e=null;return t===yi?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:va.t("Reset"),title:va.t("Slippage cannot be set lower than 0.01%.")},e):t>an?(e={alertType:"warning",action:"change-settings",actionButtonTitle:va.t("Change"),title:va.t("Caution, your slippage is high!")},e):null}i(Ph,"makeAlerts");function Dh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=T(),{onChangeSettings:a}=t,c=Ph(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(hi),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?_h.createElement(jE,{title:c.title,type:c.alertType,variant:"alarm",action:_h.createElement(XE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(Dh,"SlippageWarningsAndErrors");import{i18n as eI}from"@lingui/core";import{IconButton as tI,ReverseIcon as oI,Skeleton as nI,Tooltip as rI,Typography as $r}from"@rango-dev/ui";import mt from"react";import xa from"bignumber.js";function Fh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}i(Fh,"getSlippageColor");function Oh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new xa(e),r=new xa(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(Oh,"getUsdExchangeRate");function Uh(t,e){let o=new xa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,xa.ROUND_DOWN).toFormat(2)}`}i(Uh,"formatTokenValueInUsd");import{darkTheme as JE,styled as Fc,Typography as RE}from"@rango-dev/ui";var zh=Fc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Qh=Fc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${JE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Oc=Fc(RE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Uc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=T(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,m=o!==null?o:e,{mode:f}=mo({}),h=cn(m),g=f==="dark",d=n==="default",S={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0]?.from||c,k=p?.swaps[p?.swaps.length-1]?.to||l,w=d?C:k,x=d?k:C,I=Number(d?p?.outputAmount:p?.requestAmount),A=Number(d?p?.requestAmount:p?.outputAmount),b=I||w.usdPrice,E=A||x.usdPrice,{rawValue:v,displayValue:N}=Oh({toTokenUsdPrice:E,fromTokenUsdPrice:b});return mt.createElement(zh,null,mt.createElement($r,{variant:S||y?"label":"body",size:S||y?"medium":"small",color:Fh({error:S,warning:y,isDarkTheme:g})},eI.t("Slippage:")," ",m,"%"),u?mt.createElement(nI,{height:16,width:104,variant:"rounded"}):b&&E&&mt.createElement(Qh,null,mt.createElement($r,{className:"rate-text",variant:"body",size:"small"},"1"),mt.createElement(Oc,{className:"rate-text",variant:"body",size:"small"},x.symbol),mt.createElement(tI,{id:"widget-home-page-change-rate-button",onClick:r},mt.createElement(oI,{size:14,color:"secondary"})),mt.createElement(rI,{container:B(),side:"top",sideOffset:4,content:mt.createElement($r,{className:"rate-text",variant:"body",size:"small"},v)},mt.createElement($r,{className:"rate-text",variant:"body",size:"small"},N)),mt.createElement(Oc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&mt.createElement($r,{color:"neutral600",variant:"body",size:"small"},"~",Uh(Number(v),w.usdPrice))))}i(Uc,"SwapMetrics");import{i18n as pI}from"@lingui/core";import{Header as uI}from"@rango-dev/ui";import ko,{useEffect as dI,useState as mI}from"react";import{i18n as aI}from"@lingui/core";import{Divider as Qc,FullExpandedQuote as sI,Typography as lI}from"@rango-dev/ui";import ve from"react";import{styled as zc}from"@rango-dev/ui";var Hh=zc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),qh=zc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Gh=zc("div",{width:"146px"});import{i18n as Fr}from"@lingui/core";import{Select as iI}from"@rango-dev/ui";import Vh from"react";function ba(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),n=[{value:"SMART",label:Fr.t("Smart Routing")},{value:"FEE",label:Fr.t("Lowest Fee")},{value:"SPEED",label:Fr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Fr.t("Maximum Return")},{value:"PRICE",label:Fr.t("Maximum Output")}];return Vh.createElement(Gh,null,Vh.createElement(iI,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ba,"SelectStrategy");var Kh=3;function Or(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:m,toToken:f,sortStrategy:h,error:g}=z()(),{slippage:d,customSlippage:S}=T(),{findToken:y}=T(),C=c||B(),k=!!p&&p.results.length,w=S??d,x=i(b=>{if(!m||!f||!p)return null;let E={requestAmount:p.requestAmount,validationStatus:null,...b};return Sn({currentQuote:E,userSlippage:w,findToken:y})},"getQuoteWarning"),I=g?.type===0||g?.type===1,A=p?.results?Wi(h,p?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(qh,null,ve.createElement(lI,{size:"xmedium",variant:"title"},aI.t("Sort by")),ve.createElement(ba,{container:C})),ve.createElement(Qc,{size:"10"})),e&&Array.from({length:Kh},(b,E)=>ve.createElement(ve.Fragment,{key:E},s?ve.createElement(sI,{loading:!0}):ve.createElement(Er,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Kh-1&&ve.createElement(Qc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,k?A.map((b,E)=>{let v=x(b),N=lc(b.swaps),W=A.length-1===E;return ve.createElement(ve.Fragment,{key:b.requestId},ve.createElement(Go,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===b.requestId,tagHidden:!1,quote:{...b,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:N?.options||null,warning:v,fullExpandedMode:s,onClick:D=>{N||u("warning",v),u("error",N?.options||null),o(D)},type:"list-item"}),!W&&ve.createElement(Qc,{size:16}))}):I&&ve.createElement(Hh,null,ve.createElement(Cr,{size:s?"large":"small",error:g,fetch:n}))))}i(Or,"Quotes");import{darkTheme as cI,styled as jh}from"@rango-dev/ui";var Xh=jh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${cI} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Yh=jh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var fI=100;function Hc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=mI(!1),l=s?"":"is-hidden",{config:p}=T(),u=p?.variant==="full-expanded",m=Wo();return dI(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},fI):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),ko.createElement(Xh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${qi()} widget-expanded-quotes-container`,id:et.EXPANDED_BOX_ID},ko.createElement(uI,{title:pI.t("Routes"),suffix:ko.createElement(ko.Fragment,null,ko.createElement(ba,{container:m}),ko.createElement(zo,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),ko.createElement(Yh,null,ko.createElement(Or,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Wo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Hc,"ExpandedQuotes");import{i18n as ny}from"@lingui/core";import{SwapInput as ry}from"@rango-dev/ui";import SI from"bignumber.js";import Ur from"react";import{ReverseIcon as yI}from"@rango-dev/ui";import Gc from"react";import{keyframes as gI,styled as Zh}from"@rango-dev/ui";var qc=450,hI=gI({"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)"}}),Jh=Zh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Rh=Zh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${hI} ${qc}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 Vc(){let t=z().use.switchFromAndTo();return Gc.createElement(Jh,null,Gc.createElement(Rh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},qc),t()}},Gc.createElement(yI,{size:12})))}i(Vc,"SwitchFromAndToButton");import{styled as ey}from"@rango-dev/ui";var ty=ey("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),oy=ey("div",{position:"relative"});function Kc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:m,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:d}=z()(),{swapMode:S}=ot(),{connectedWallets:y,getBalanceFor:C}=T(),k=a?C(a):null,w=mi(k)?.amount??"0",x=k?new SI(k.amount).shiftedBy(-k.decimals):de,I=!!s&&Au(y,s.name),A=!Vs(d,m,f),b=!Vs(d,m,g),E=!f||!g||!g.gt(0)?null:jt(f.toString(),g.toString());return Ur.createElement(ty,null,Ur.createElement(oy,null,Ur.createElement(ry,{label:ny.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:w,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:m,usdValue:A?void 0:P(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?ie().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:I,tooltipContainer:B(),onSelectMaxBalance:()=>{let v=P(x,k?.decimals),N=k?.amount?v.split(",").join(""):"";p(N)},anyWalletConnected:y.length>0}),S==="swap"&&Ur.createElement(Vc,null)),Ur.createElement(ry,{selectionType:S==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!d||e),label:ny.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:P(jt(f,g),2,2),warningLevel:Xt(E??0),price:{value:P(h,6,6),usdValue:b?void 0:P(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?ie().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:B()}))}i(Kc,"Inputs");import{warn as CI}from"@rango-dev/logging-core";import{useCallback as TI,useEffect as kI,useRef as wI,useState as vI}from"react";function iy(){let{fetch:t,loading:e,cancelFetch:o}=ga({request:async(n,r)=>await ct().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(iy,"useFetchAllQuotes");var xI=600;function Ea({refetchQuote:t}){let{fetch:e,cancelFetch:o}=iy(),{excludeLiquiditySources:n,routing:r}=T().config,{connectedWallets:a}=T(),c=a.some(ne=>ne.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:m,selectedQuote:f,sortStrategy:h,resetQuote:g,error:d,warning:S,setSelectedQuote:y,updateQuotePartialState:C}=z()(),{slippage:k,customSlippage:w,affiliatePercent:x,affiliateRef:I,affiliateWallets:A,fetchStatus:b}=T(),E=T().getLiquiditySources(),v=T().getDisabledLiquiditySources(),N=T().excludeLiquiditySources(),{findToken:W}=T(),{swapMode:D}=ot(),[H,X]=vI(!0),Y=wI(u),M=w??k,J=!l||!p||qt(l,p)||!Vn(u),te=i(ne=>{X(ne)},"resetState"),ce=i(ne=>{let{fromToken:wt,toToken:gt,inputAmount:Wt,liquiditySources:$,excludeLiquiditySources:U,disabledLiquiditySources:G,slippage:pe,affiliateRef:Q,affiliatePercent:j,affiliateWallets:K}=ne;if(H||te(!0),!J&&wt&&gt){g();let Ie=Vd({fromToken:wt,toToken:gt,inputAmount:Wt,liquiditySources:$,excludeLiquiditySources:U,disabledLiquiditySources:G,wallets:a,slippage:pe,affiliateRef:Q,affiliatePercent:j,affiliateWallets:K,contractCall:c});ln("experimental",r)&&(Ie.experimental=!0),ln("avoidNativeFee",r)&&(Ie.avoidNativeFee=!0),ln("enableCentralizedSwappers",r)&&(Ie.enableCentralizedSwappers=!0),r?.maxLength&&(Ie.maxLength=r.maxLength),D==="refuel"&&(Ie.maxLength=1),e(Ie).then(Ae=>{let je=Wi(h,Ae.results),Mt=Pd(f,je,Ae.requestAmount);X(!1),C("quotes",Ae),y(Mt),ha({diagnosisMessages:Ae.diagnosisMessages,requestId:Mt?.requestId||"",swaps:Mt?.swaps});let so=Mt&&Sn({currentQuote:Mt,userSlippage:M,findToken:W});C("warning",so)}).catch(Ae=>{let je=ya(Ae);(je.type===0||je.type===1)&&g(),je.type!==2&&(C("error",je),X(!1),CI(new Error("quote error"),{tags:{...je,type:Ze[je.type],requestBody:Ie}}))})}},"fetch"),Oe=TI(ai(ne=>{ce(ne)},xI),[J]);return kI(()=>{if(!t){X(!1);return}if(b!=="success")return;if(J){X(!1),(f||d||S)&&g();return}if(!Vn(u)&&m?.eq(0)){te(!1),o();return}g(),te(!0);let ne=ce;return Y.current&&Y.current!=u&&(ne=Oe),Y.current=u,ne({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:N,disabledLiquiditySources:v,slippage:M,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,J,E?.length,n,v.length,M,I,x,c,JSON.stringify(A)]),{fetch:()=>ce({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:N,disabledLiquiditySources:v,slippage:M,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),loading:H}}i(Ea,"useSwapInput");function ay(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};we.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(ay,"emitPreventableEvent");var BI=EI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),WI=300;function py(){let t=NI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=z()(),[h,g]=cy(!1),{isLargeScreen:d,isExtraLargeScreen:S}=kn(),{fetch:y,loading:C}=Ea({refetchQuote:a}),{config:k,fetchStatus:w,connectedWallets:x,customSlippage:I,slippage:A,setSlippage:b,setCustomSlippage:E}=T(),{isActiveTab:v}=re(),[N,W]=cy(!1),D=I!==null?I:A,{swapMode:H}=ot(),X=cn(D),M=Qd({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),ee=_u(d,S,k?.variant),J=!!n&&!!e&&!!o&&new AI(n).gt(0)&&!Rd(e,o),te=J&&w==="success"&&C,ce=X?.quoteValidation||c,wt=(!ee||ee&&l?.results.length)&&(ce||s),gt=!!e&&!!o,Wt=gt&&!!X,$=(r||s)&&!N?y:void 0,U=i(j=>{ee&&h?(g(!1),setTimeout(()=>{t(j)},WI)):t(j)},"onHandleNavigation"),G=i(j=>{r?.requestId!==j.requestId&&(W(!1),p(j))},"onClickOnQuote"),pe=i(j=>{if(j){if(gi.includes(j)){b(j),E(null);return}E(j)}},"onChangeSlippage"),Q=i(j=>{U(j==="from"?F.fromSwap:H==="swap"?F.toSwap:F.toSwap+"/"+F.blockchains)},"handleInputTokenClick");return ly(()=>{u(),f("refetchQuote",!0)},[]),ly(()=>{g(J)},[J]),Ce.createElement(BI,null,Ce.createElement(se,{height:"auto",footer:Ce.createElement(bI,{id:`widget-swap-${M.action}-btn`,type:"primary",size:"large",disabled:M.disabled||!v,prefix:M.action==="confirm-warning"&&Ce.createElement(II,null),fullWidth:!0,onClick:()=>{M.action==="connect-wallet"?ay({type:"clickConnectWallet"},()=>U(F.wallets)):M.action==="confirm-warning"?W(!0):U(F.confirmSwap)}},M.title),header:{onWallet:()=>{U(F.wallets)},hasBackButton:!1,title:k.title||(H==="swap"?sy.t("Swap"):sy.t("Refuel")),suffix:Ce.createElement(zo,{hidden:ee?["refresh"]:void 0,onClickRefresh:$,onClickHistory:()=>U(F.swaps),onClickSettings:()=>{U(F.settings)}})}},Ce.createElement(ue,null,Ce.createElement(Kc,{fetchingQuote:te,fetchMetaStatus:w,isExpandable:ee,onClickToken:Q}),Ce.createElement(jc,{size:"2"}),ee?null:Ce.createElement(Go,{quote:r,loading:te,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:ce,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),U(F.routes)}:void 0}),gt&&Ce.createElement(Ce.Fragment,null,Ce.createElement(jc,{size:8}),Ce.createElement(Uc,{quoteError:s,quoteWarning:ce,fromToken:e,toToken:o,quote:r,loading:te})),wt?Ce.createElement(Ce.Fragment,null,Ce.createElement(kr,{warning:ce,error:s,skipAlerts:!!X,couldChangeSettings:!0,refetchQuote:y,showWarningModal:N,confirmationDisabled:!v,onOpenWarningModal:()=>W(!0),onCloseWarningModal:()=>W(!1),onChangeSlippage:pe,onConfirmWarningModal:()=>{W(!1),m(!0),U(F.confirmSwap)},onChangeSettings:()=>U(F.settings)})):null,Wt&&Ce.createElement(Ce.Fragment,null,Ce.createElement(jc,{size:"10"}),Ce.createElement(Dh,{onChangeSettings:()=>U(F.settings)})),Ce.createElement(Dc,null))),ee?Ce.createElement(Hc,{loading:te,onClickOnQuote:G,fetch:y,onClickRefresh:$,isVisible:h}):null)}i(py,"Home");import{i18n as uy}from"@lingui/core";import{Alert as MI,Divider as LI,List as PI,ListItemButton as _I,Radio as DI,RadioRoot as $I,Typography as FI}from"@rango-dev/ui";import Ot from"react";function wo(){let{setLanguage:t,language:e,config:o}=T(),n=Qu,r=o?.language||pn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||pn),resetLanguage:()=>t(null)}}i(wo,"useLanguage");function dy(){let{activeLanguage:t,changeLanguage:e,languages:o}=wo(),n=Ge(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ot.createElement(FI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ot.createElement(DI,{value:s}),start:Ot.createElement(l,null)}});return Ot.createElement(se,{header:{title:uy.t("Language")}},Ot.createElement(ue,null,Ot.createElement(MI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ot.createElement(LI,{size:"8"}),Ot.createElement($I,{value:t},Ot.createElement(PI,{type:Ot.createElement(_I,{title:uy.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(dy,"LanguagePage");import{i18n as no}from"@lingui/core";import{Button as HI,Checkbox as qI,Image as GI,ListItemButton as VI,NotFound as KI,Typography as jI}from"@rango-dev/ui";import Re,{useState as XI}from"react";import{Checkbox as zI,Skeleton as fy}from"@rango-dev/ui";import Qr from"react";import{styled as Xc}from"@rango-dev/ui";var zr=Xc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Yc=Xc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Zc=Xc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as OI,styled as UI}from"@rango-dev/ui";var my=UI(OI,{height:61});var QI=30;function Jc(){return Qr.createElement(zr,null,Array.from(Array(QI),(t,e)=>Qr.createElement(my,{hasDivider:!0,key:e,start:Qr.createElement(fy,{variant:"circular",width:35,height:35}),title:Qr.createElement(fy,{variant:"text",size:"large",width:90}),end:Qr.createElement(zI,{checked:!1})})))}i(Jc,"LoadingLiquiditySourceList");function Rc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=XI(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=Si(o,n),p={Exchanges:no.t("Exchanges"),Bridges:no.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=l.filter(y=>u.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,h=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:C,groupTitle:k,logo:w,id:x,...I}=y;return{id:`widget-setting-liquidity-source-${hu(x.toLowerCase())}-item-btn`,start:Re.createElement(GI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Re.createElement(qI,{checked:C,disabled:c}),title:Re.createElement(jI,{variant:"title",size:"xmedium"},no.t(k)),selected:C,groupTitle:k,logo:w,...I}}),d=i(y=>{let C=y.target.value;a(C)},"handleSearch"),S=g;return r&&(S=g.filter(y=>Pt(y.groupTitle,r))),Re.createElement(se,{header:{title:no.t(t),suffix:Re.createElement(Yc,null,Re.createElement(HI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?no.t("Deselect all"):no.t("Select all")))}},Re.createElement(ue,{view:!0},Re.createElement(At,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:no.t("Search {sourceType}",{sourceType:p[t]}),onChange:d}),e==="loading"&&Re.createElement(Jc,null),!S.length&&r?Re.createElement(Zc,null,Re.createElement(KI,{title:no.t("No results found"),description:no.t("Try using different keywords")})):e==="success"&&Re.createElement(zr,{disabled:c,className:"widget-liquidity-source-list"},S.map(y=>{let{groupTitle:C,...k}=y;return Re.createElement(Re.Fragment,{key:y.id},Re.createElement(VI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Rc,"LiquiditySourcePage");import{i18n as YI}from"@lingui/core";import Ia from"react";import{useNavigate as ZI}from"react-router-dom";function gy(){let t=ZI(),e=Ge(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=Ea({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,m=`../${F.wallets}`;return Ia.createElement(se,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:YI.t("Routes"),suffix:Ia.createElement(zo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ia.createElement(ue,null,Ia.createElement(Or,{fetch:c,loading:l,onClickOnQuote:p})))}i(gy,"RoutesPage");import{i18n as wy}from"@lingui/core";import{Divider as vy,getCategoriesCount as sA,SelectableCategoryList as lA}from"@rango-dev/ui";import ro,{useState as xy}from"react";import{useNavigate as cA}from"react-router-dom";import{i18n as ep}from"@lingui/core";import{Divider as tA,Image as oA,ListItemButton as nA,NotFound as rA,Typography as ky}from"@rango-dev/ui";import ft,{useEffect as iA,useState as aA}from"react";var hy=i((t,e,o)=>t.filter(n=>si(n.type,o)).filter(n=>st(n.name,e)||st(n.displayName,e)),"filterBlockchains");import{ImageContainer as JI,styled as yy}from"@rango-dev/ui";var Sy=yy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Aa=yy(Il,{padding:0,margin:0,listStyle:"none",[`& ${JI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as RI,Skeleton as Cy}from"@rango-dev/ui";import Na from"react";var eA=20;function Ty(){return Na.createElement(Aa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(eA),t=>Na.createElement(RI,{key:t,hasDivider:!0,start:Na.createElement(Cy,{variant:"circular",width:35,height:35}),title:Na.createElement(Cy,{variant:"text",size:"large",width:90})})))}i(Ty,"LoadingBlockchainList");function tp(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=aA(e),{fetchStatus:l}=T();iA(()=>{c([...hy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ft.createElement(rA,{title:ep.t("No results found"),description:ep.t("Try using different keywords")}):ft.createElement(Aa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ft.createElement(nA,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ft.createElement(oA,{src:u.logo,size:30}),title:ft.createElement(ky,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ft.createElement(ft.Fragment,null,a&&ft.createElement(ft.Fragment,null,ft.createElement(ky,{variant:"label",size:"large"},ep.t("Select Chain")),ft.createElement(tA,{size:4})),ft.createElement(Sy,null,l==="loading"&&ft.createElement(Ty,null),l==="success"&&p()))}i(tp,"BlockchainList");function Ba(t){let{type:e}=t,o=Ge(),[n,r]=xy(""),[a,s]=xy("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:m}=T(),f=cA(),{swapMode:h}=ot(),g=T().blockchains({type:e}),d=sA(g),S=!t.hideCategory&&d!==1,y=i(C=>{if(e==="custom-token")f(`..?blockchain=${C.name}`,{replace:!0});else{if(e==="source")l(C);else if(h==="swap")c(C);else{let k=m(C);k&&p({token:k,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return ro.createElement(se,{header:{title:wy.t("Select Chain")}},ro.createElement(ue,{view:!0},S&&ro.createElement(ro.Fragment,null,ro.createElement(lA,{setCategory:s,category:a,blockchains:g,isLoading:u==="loading"}),ro.createElement(vy,{size:24})),ro.createElement(At,{value:n,autoFocus:!0,placeholder:wy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:C=>r(C.target.value)}),ro.createElement(vy,{size:16}),ro.createElement(tp,{list:g,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:y})))}i(Ba,"SelectBlockchainPage");import{i18n as La}from"@lingui/core";import{Divider as Wy,Spinner as xA}from"@rango-dev/ui";import vo,{useEffect as bA,useState as EA}from"react";import{useNavigate as IA}from"react-router-dom";import{i18n as rp}from"@lingui/core";import{BlockchainsChip as Wa,Divider as Ay,Image as Ny,Skeleton as gA,Tooltip as hA,Typography as ip}from"@rango-dev/ui";import xe from"react";import{useEffect as dA}from"react";var by=["ETH","COSMOS","OSMOSIS"];function op(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(pA),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p?.name!==u)}}n.sort(uA(s)),r=n.splice(a)}return{list:n,more:r}}i(op,"prepare");function pA(t,e){let o=by,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(pA,"sortByMostUsedBlockchains");function uA(t){return i(function(o,n){let r=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=r>-1,c=a>-1;return s&&c?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(uA,"generateSortByPreferredBlockchainsFor");function Ey(t,e){return!!e.list.find(o=>o.name===t)}i(Ey,"isInVisibleList");function np(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();dA(()=>{if(e?.selected){let a=op(t,o,e);Ey(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=op(t,o,e);return{list:r.list,more:r.more,history:[]}}i(np,"usePrepareBlockchainList");import{styled as mA}from"@rango-dev/ui";var Iy=mA("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var yA=6,SA=12;function ap(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=re(),c=np(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=T(),p=z().use.resetToBlockchain(),u=z().use.resetFromBlockchain(),m=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&m;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(Ay,{size:12}),xe.createElement(ip,{variant:"label",size:"large"},rp.t("Select Chain"))),xe.createElement(Ay,{size:12}),xe.createElement(Iy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?yA:SA),(d,S)=>xe.createElement(gA,{key:S,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(Wa,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(ip,{variant:"body",size:"xsmall",color:"secondary500"},rp.t("All"))),c.list.map(d=>xe.createElement(hA,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:B()},xe.createElement(Wa,{className:"widget-blockchains-section-item-btn",key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},xe.createElement(Ny,{src:d.logo,size:30})))),h?xe.createElement(Wa,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(Ny,{src:f.logo,size:30})):null,g?xe.createElement(Wa,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(ip,{variant:"body",size:"xsmall",color:"secondary500"},rp._("More +{count}",{count:c.more.length}))):null)))}i(ap,"BlockchainsSection");import{useCallback as TA,useRef as kA,useState as sp}from"react";function lp(){let t=T().blockchains(),e=kA(null),{customTokens:o}=T(),[n,r]=sp(!1),[a,s]=sp([]),[c,l]=sp(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await ct().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),d=new Set(o().map(C=>Vt(C))),S=new Set(t.map(C=>C.name)),y=g.tokens.filter(C=>S.has(C.blockchain)&&!d.has(Vt(C)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=TA(ai((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(lp,"useSearchCustomTokens");function Ma(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(Ma,"shouldSearchForCustomTokens");function By(t,e,o,n,r){let a=[...t];return Ma(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(By,"prepareTokensList");function Pa(t){let{type:e}=t,o=IA(),n=Ge(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=T(),{fetch:m,loading:f,tokens:h,cancel:g}=lp(),[d,S]=EA(""),y=e==="source"?r:a,C=y?.name??"",k=T().blockchains({type:e}),w=T().tokens({type:e,blockchain:C,searchFor:d,getBalanceFor:u}),x=By(w,h,d,f,y?.name),I=i(E=>{e==="source"?l(E):p(E)},"updateBlockchain"),A=i(E=>{e==="source"?s({token:E,meta:{blockchains:k}}):c({token:E,meta:{blockchains:k}})},"updateToken"),b={source:La.t("Source"),destination:La.t("Destination")};return bA(()=>(Ma(w,d,y?.name)&&m(d,y?.name??void 0),()=>{g()}),[w.length,d,y?.name]),vo.createElement(se,{header:{title:La.t("Swap {type}",{type:b[e]})}},vo.createElement(ue,null,vo.createElement(ap,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:E=>{I(E)}}),vo.createElement(Wy,{size:24}),vo.createElement(At,{value:d,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:La.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:E=>S(E.target.value),suffix:Ma(w,d,y?.name)&&f?vo.createElement(xA,{size:12,color:"secondary"}):void 0}),vo.createElement(Wy,{size:16}),vo.createElement(Wr,{list:x,selectedBlockchain:C,searchedFor:d,type:e,onChange:E=>{A(E);let v=k.find(N=>E.blockchain===N.name);v&&I(v),n()}})))}i(Pa,"SelectSwapItemsPage");import{i18n as dp}from"@lingui/core";import{Alert as eN,Button as tN,styled as oN}from"@rango-dev/ui";import Xo from"react";import{useInRouterContext as nN,useSearchParams as rN}from"react-router-dom";import{i18n as $y}from"@lingui/core";import{Alert as WA,Divider as pp,InfoIcon as MA,SlippageIcon as LA,TextField as PA,Tooltip as _A,Typography as Fy}from"@rango-dev/ui";import ze from"react";import{Chip as AA,styled as Hr,TextField as NA}from"@rango-dev/ui";var My=Hr("div",{paddingTop:"$5",padding:"$10 $5"}),Ly=Hr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${NA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Py=Hr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),_a=Hr("div",{maxWidth:"280px",padding:"$10"}),_y=Hr(AA,{width:"61px",flexShrink:0});import{i18n as cp}from"@lingui/core";import{Typography as BA}from"@rango-dev/ui";import qr from"react";function Dy(){return qr.createElement(_a,null,qr.createElement(BA,{variant:"label",size:"medium",color:"neutral700"},cp.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),qr.createElement("br",null),qr.createElement("br",null),qr.createElement("b",null,cp.t("Warning")),":\xA0",cp.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(Dy,"SlippageTooltipContent");function up(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?cn(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let m=u;u>Yn&&(m=Yn),n(m)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;Su(u)||(p.value=u.slice(0,-1))},"onInput");return ze.createElement(My,null,ze.createElement(Py,null,ze.createElement(LA,{size:16,color:"gray"}),ze.createElement(pp,{direction:"horizontal",size:4}),ze.createElement(Fy,{variant:"title",size:"xmedium"},$y.t("Slippage tolerance per swap")),ze.createElement(pp,{direction:"horizontal",size:4}),ze.createElement(_A,{container:B(),side:"top",sideOffset:4,content:ze.createElement(Dy,null)},ze.createElement(MA,{color:"gray"}))),ze.createElement(Ly,null,gi.map((l,p)=>{let u=`slippage-${p}`;return ze.createElement(_y,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),ze.createElement(PA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&ze.createElement(Fy,{variant:"body",size:"small"},"%"),placeholder:$y.t("Custom")})),r&&ze.createElement(ze.Fragment,null,ze.createElement(pp,{size:10}),ze.createElement(WA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(up,"Slippage");import{i18n as kt}from"@lingui/core";import{AutoThemeIcon as Oy,BridgesIcon as DA,ChevronRightIcon as Da,DarkModeIcon as Uy,Divider as Gr,ExchangeIcon as $A,InfinityIcon as FA,InfoIcon as OA,LanguageIcon as UA,LightModeIcon as zy,List as zA,ListItem as QA,ListItemButton as HA,Skeleton as qA,styled as GA,Switch as VA,Tabs as KA,TargetIcon as jA,Tooltip as XA,Typography as at}from"@rango-dev/ui";import _ from"react";import{useNavigate as YA}from"react-router-dom";var ZA=GA("div",{width:"202px",height:"$40"}),JA=[{id:"light",icon:_.createElement(zy,{color:"black",size:24}),tooltip:_.createElement(at,{size:"xsmall",variant:"body"},kt.t("Light"))},{id:"dark",icon:_.createElement(Uy,{color:"black",size:24}),tooltip:_.createElement(at,{size:"xsmall",variant:"body"},kt.t("Dark"))},{id:"auto",icon:_.createElement(Oy,{color:"black",size:24}),tooltip:_.createElement(at,{size:"xsmall",variant:"body"},kt.t("Auto"))}],RA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return _.createElement(Oy,{...e});case"dark":return _.createElement(Uy,{...e});default:return _.createElement(zy,{...e})}},"getThemeIcon");function Qy(){let t=YA(),{theme:e}=T().config,{setTheme:o,theme:n}=T(),{activeLanguage:r,languages:a}=wo(),s=a.find(M=>M.local===r)?.label,c=T().fetchStatus,l=T().swappers(),p=T().getDisabledLiquiditySources(),{config:{features:u}}=T(),m=T().customTokens(),f=tt("theme",u),h=tt("liquiditySource",u),g=tt("language",u),d=tt("customTokens",u),S=T().infiniteApprove,y=T().toggleInfiniteApprove,C=Si(l,p),k=C.filter(M=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(M.type)),w=k.length,x=k.filter(M=>M.selected).length,I=C.filter(M=>M.type==="DEX"),A=I.length,b=I.filter(M=>M.selected).length,E=i((M,ee)=>{switch(c){case"loading":return _.createElement(qA,{variant:"text",size:"medium",width:50});case"failed":return _.createElement(at,{variant:"body",size:"medium",color:"$error500"},kt.t("Loading failed"));default:return _.createElement(at,{variant:"body",size:"medium"},`${M} / ${ee}`)}},"handleSwapperEndItem"),v={id:"widget-setting-bridge-item-btn",title:_.createElement(at,{variant:"title",size:"xmedium"},kt.t("Bridges")),end:_.createElement(_.Fragment,null,E(x,w),_.createElement(Gr,{direction:"horizontal",size:8}),_.createElement(Da,{color:"black"})),onClick:()=>t(F.bridges),start:_.createElement(DA,{color:"gray",size:16})},N={id:"widget-setting-exchange-item-btn",title:_.createElement(at,{variant:"title",size:"xmedium"},kt.t("Exchanges")),end:_.createElement(_.Fragment,null,E(b,A),_.createElement(Gr,{direction:"horizontal",size:8}),_.createElement(Da,{color:"black"})),start:_.createElement($A,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},W={id:"widget-setting-custom-tokens-item-btn",title:_.createElement(at,{variant:"title",size:"xmedium"},kt.t("Custom Tokens")),end:_.createElement(_.Fragment,null,_.createElement(at,{variant:"body",size:"medium"},`${m.length}`),_.createElement(Gr,{direction:"horizontal",size:8}),_.createElement(Da,{color:"black"})),start:_.createElement(jA,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},D={id:"widget-setting-language-item-btn",title:_.createElement(at,{variant:"title",size:"xmedium"},kt.t("Language")),start:_.createElement(UA,{color:"gray",size:16}),end:_.createElement(_.Fragment,null,_.createElement(at,{variant:"body",size:"medium"},s),_.createElement(Gr,{direction:"horizontal",size:8}),_.createElement(Da,{color:"black"})),onClick:()=>t(F.languages)},H={id:"widget-setting-infinite-approval-item-btn",title:_.createElement(_.Fragment,null,_.createElement(at,{variant:"title",size:"xmedium"},kt.t("Infinite approval")),_.createElement(Gr,{direction:"horizontal",size:4}),_.createElement(XA,{side:"top",sideOffset:4,container:B(),content:_.createElement(_a,null,_.createElement(at,{variant:"label",size:"medium",color:"neutral700"},_.createElement("b",null,kt.t("Warning")),":\xA0",kt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},_.createElement(OA,{color:"gray"}))),start:_.createElement(FA,{color:"gray",size:16}),end:_.createElement(VA,{checked:S}),onClick:y},X={id:"widget-setting-theme-item-btn",type:_.createElement(QA,null),title:_.createElement(at,{variant:"title",size:"xmedium"},kt.t("Theme")),end:_.createElement(ZA,null,_.createElement(KA,{container:B(),items:JA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:M=>o(M.id),type:"primary",borderRadius:"small"})),start:RA(n)},Y=h?[]:[v,N];return d||Y.push(W),g||Y.push(D),Y.push(H),!e?.singleTheme&&!f&&Y.push(X),_.createElement(zA,{type:_.createElement(HA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:Y})}i(Qy,"SettingsLists");var iN=oN("div",{paddingLeft:"$8"});function Hy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=rN(),r=nN(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Xo.createElement(se,{header:{title:dp.t("Settings")}},Xo.createElement(ue,null,o&&Xo.createElement(eN,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:dp.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:Xo.createElement(iN,null,Xo.createElement(tN,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},dp.t("Reset")))}),Xo.createElement(up,null),Xo.createElement(Qy,null)))}i(Hy,"SettingsPage");import{i18n as g0}from"@lingui/core";import{cancelSwap as h0}from"@rango-dev/queue-manager-rango-preset";import{useManager as y0}from"@rango-dev/queue-manager-react";import{Alert as S0}from"@rango-dev/ui";import Np from"react";import{useParams as C0}from"react-router-dom";import{i18n as zt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as t0,getCurrentStep as o0,getRelatedWalletOrNull as n0}from"@rango-dev/queue-manager-rango-preset";import{Button as $S,Divider as r0,QuoteCost as i0,StepDetails as a0,Typography as vp}from"@rango-dev/ui";import{useWallets as s0}from"@rango-dev/wallets-react";import FS from"bignumber.js";import{PendingSwapNetworkStatus as Fn}from"rango-types";import ke,{useEffect as xp,useRef as bp,useState as Ga}from"react";import{useNavigate as l0}from"react-router-dom";import{i18n as xo}from"@lingui/core";var aN=[xo.t("Sunday"),xo.t("Monday"),xo.t("Tuesday"),xo.t("Wednesday"),xo.t("Thursday"),xo.t("Friday"),xo.t("Saturday")];function qy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?xo.t("Today"):`${aN[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(qy,"timeSince");function Gy(t){return t.finishTime?qy(parseInt(t.finishTime)):qy(parseInt(t.creationTime))}i(Gy,"getSwapDate");import Vr from"react";import{i18n as $a}from"@lingui/core";import{Button as Vy,Divider as mp,MessageBox as sN}from"@rango-dev/ui";import bo from"react";var Ky=i(({onCancel:t,onClose:e})=>bo.createElement(bo.Fragment,null,bo.createElement(mp,{size:20}),bo.createElement(sN,{type:"error",title:$a.t("Cancel Swap"),description:$a.t("Are you sure you want to cancel this swap?")}),bo.createElement(mp,{size:32}),bo.createElement(Vy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},$a.t("Yes, Cancel it")),bo.createElement(mp,{size:12}),bo.createElement(Vy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},$a.t("No, Continue"))),"CancelContent");import{i18n as Fa}from"@lingui/core";import{Button as jy,Divider as fp,MessageBox as lN,Typography as cN}from"@rango-dev/ui";import io from"react";var Xy=i(({onDelete:t,onClose:e})=>io.createElement(io.Fragment,null,io.createElement(fp,{size:20}),io.createElement(lN,{type:"error",title:Fa.t("Delete Transaction"),description:Fa.t("Are you sure you want to delete this swap?")}),io.createElement(fp,{size:32}),io.createElement(jy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Fa.t("Yes, Delete it")),io.createElement(fp,{size:12}),io.createElement(jy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},io.createElement(cN,{variant:"title",size:"medium",color:"primary"},Fa.t("No, Cancel")))),"DeleteContent");import{i18n as pN}from"@lingui/core";import{Button as uN,Divider as dN,MessageBox as mN}from"@rango-dev/ui";import Yo from"react";var Yy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Yo.createElement(Yo.Fragment,null,Yo.createElement(mN,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Yo.createElement(Yo.Fragment,null,Yo.createElement(dN,{size:"30"}),Yo.createElement(uN,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},pN.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as WN,getCurrentStep as MN,getRelatedWalletOrNull as LN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as PN}from"@rango-dev/ui";import{useWallets as _N}from"@rango-dev/wallets-react";import nS from"react";import{i18n as Dn}from"@lingui/core";import{Alert as Ry,Button as hN,Checkbox as yN,Divider as za,Image as SN,MessageBox as CN,Spinner as TN,WarningIcon as kN}from"@rango-dev/ui";import{useWallets as wN}from"@rango-dev/wallets-react";import Se,{useState as vN}from"react";import{css as fN,darkTheme as gN,styled as gp}from"@rango-dev/ui";var Zy=fN({wordWrap:"break-word",display:"block"}),Jy=gp("img",{width:"100%"}),Oa=gp("div",{position:"relative"}),Ua=gp("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${gN} &`]:{$$color:"$warning600"}});var eS=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=vN(null),{list:s}=vt(),c=re.use.isActiveTab(),{state:l,connect:p}=wN(),u=s.find(x=>x.type===e.walletType),m=u?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,d=u.isHub?h?.connected:f.connected,S=i(()=>d?Dn.t("Done"):r?Dn.t("Try again"):Dn.t("Connect"),"getButtonTitle"),y=i(()=>g?Se.createElement(TN,{color:"info"}):r||d?null:Se.createElement(yN,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(x){a(x)}},"handleConnect"),k=i(async()=>{if(d){n();return}C()},"handleClickButton"),w=i(()=>{if(!d)return null;let x=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),I=x?.[x?.length-1];return I?lo(I):null},"getAddress");return Se.createElement(Se.Fragment,null,Se.createElement(CN,{type:"warning",title:Dn.t("Connect {wallet}",{wallet:u.title}),description:Dn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:Se.createElement(Oa,null,Se.createElement(SN,{src:u.image,size:45}),Se.createElement(Ua,null,Se.createElement(kN,{color:"warning",size:10})))}),d&&!m&&Se.createElement(Se.Fragment,null,Se.createElement(za,{size:10}),Se.createElement(Ry,{type:"success",variant:"alarm",title:Dn.t("Wallet connected successfully.")})),r&&!m&&Se.createElement(Se.Fragment,null,Se.createElement(za,{size:10}),Se.createElement(Ry,{type:"error",title:r?.message,variant:"alarm"})),m&&Se.createElement(Se.Fragment,null,Se.createElement(za,{size:30}),Se.createElement(_o,{namespace:m,suffix:y(),error:r?.message,connected:d,address:w()})),Se.createElement(za,{size:"40"}),Se.createElement(hN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},S()))},"ConnectWalletContent");import{i18n as tS}from"@lingui/core";import{Button as xN,Divider as bN,Image as EN,MessageBox as IN,WarningIcon as AN}from"@rango-dev/ui";import{useWallets as NN}from"@rango-dev/wallets-react";import{detectInstallLink as BN}from"@rango-dev/wallets-shared";import ao from"react";var oS=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=NN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(BN(n.installLink),"_blank"),"handleButtonClick");return ao.createElement(ao.Fragment,null,ao.createElement(IN,{type:"warning",title:tS.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:ao.createElement(Oa,null,ao.createElement(EN,{src:n.img,size:45}),ao.createElement(Ua,null,ao.createElement(AN,{color:"warning",size:10})))}),ao.createElement(bN,{size:"40"}),ao.createElement(xN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},tS.t("Install")))},"InstallWalletContent");var rS=i(t=>{let{swap:e,onClose:o}=t,{state:n,getWalletInfo:r}=_N(),a=MN(e),s=a?LN(e,a):null,c=s?.walletType,l=c?Kn(r(c),n(c)):null,p=a?WN(e,a):null;return c?l===PN.NOT_INSTALLED?nS.createElement(oS,{walletType:c}):nS.createElement(eS,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function hp(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Vr.createElement(R,{open:e,onClose:r,container:B()},o==="connectWallet"&&Vr.createElement(rS,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Vr.createElement(Yy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Vr.createElement(Xy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Vr.createElement(Ky,{onClose:r,onCancel:()=>{r(),s()}}))}i(hp,"SwapDetailsModal");import{i18n as Kr}from"@lingui/core";import{Button as yp,Divider as jr,MessageBox as sS,TokenAmount as DN,Typography as lS}from"@rango-dev/ui";import Te from"react";import{Link as $N,useNavigate as FN}from"react-router-dom";var iS="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",aS="/profile";function Sp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:m,diagnosisUrl:f}=t,h=FN(),{showProfileBanner:g}=re();return Te.createElement(R,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(et.SWAP_BOX_ID)||document.body},n==="success"?Te.createElement(sS,{type:"success",title:Kr.t("Swap Successful")},Te.createElement(DN,{direction:"vertical",tooltipContainer:B(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Te.createElement(jr,{size:12}),Te.createElement(lS,{className:Zy(),variant:"body",size:"medium",color:"neutral700",align:"center"},m)):Te.createElement(sS,{type:"error",title:Kr.t("Transaction Failed"),description:m}),Te.createElement(jr,{size:30}),n==="success"&&Te.createElement(Te.Fragment,null,g&&Te.createElement(Te.Fragment,null,Te.createElement($N,{to:aS},Te.createElement(Jy,{src:iS,alt:"Profile Banner"})),Te.createElement(jr,{size:30})),Te.createElement(yp,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Kr.t("Done"))),Te.createElement(jr,{size:12}),f&&Te.createElement(Te.Fragment,null,Te.createElement(yp,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Kr.t("Diagnosis")),Te.createElement(jr,{size:12})),Te.createElement(yp,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Te.createElement(lS,{variant:"title",size:"medium",color:"primary"},Kr.t("See Details"))))}i(Sp,"SwapDetailsCompleteModal");import{i18n as qa}from"@lingui/core";import{CopyIcon as YN,DoneIcon as ZN,IconButton as JN,RangoExplorerIcon as RN,Tooltip as WS,Typography as MS,useCopyToClipboard as e0}from"@rango-dev/ui";import Bt from"react";import XN from"react";import{i18n as GN}from"@lingui/core";import{Alert as IS,IconButton as VN,LinkIcon as KN}from"@rango-dev/ui";import Eo,{Fragment as jN}from"react";import{Alert as UN,ChevronDownIcon as zN,IconButton as QN}from"@rango-dev/ui";import $n,{useState as HN}from"react";import{css as Xr,darkTheme as cS,styled as Ut,Typography as ON}from"@rango-dev/ui";var pS=Ut(ue,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${cS} &`]:{color:"$secondary500"}}}}}),uS=Ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),dS=Ut("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),mS=Ut("div",{padding:"$0 $20 $20 $20"}),wY=Ut("div",{display:"flex",flexDirection:"column",gap:"$10"}),fS=Ut("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),vY=Ut("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Zo=Xr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${cS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),gS=Xr({padding:"$5 0"}),Qa=Xr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),hS=Xr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),yS=Xr({width:"100%",padding:"0 $20 $10"}),SS=Ut("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),CS=Ut("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ha=Ut(ON,{wordBreak:"break-word"});import{styled as Cp}from"@rango-dev/ui";var TS=Cp("div",{display:"flex",flexDirection:"column",gap:"$10"}),kS=Cp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),wS=Cp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function vS(t){let{message:e}=t,[o,n]=HN(!1);return $n.createElement(UN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&$n.createElement(QN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},$n.createElement(kS,{rotated:o},$n.createElement(zN,{size:12,color:"gray"}))),footer:$n.createElement(wS,{open:o},$n.createElement(Ha,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(vS,"FailedAlert");import{i18n as xS}from"@lingui/core";import{Alert as Tp,Button as bS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as qN}from"rango-types";import Yr from"react";function ES(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Yr.createElement(Tp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Yr.createElement(bS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},xS.t("Change"))}):a===qN.WaitingForConnectingWallet?Yr.createElement(Tp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Yr.createElement(bS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},xS.t("Connect"))}):Yr.createElement(Tp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(ES,"WarningAlert");function kp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=pr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,m=u&&!c||p&&!s.explorerUrl?.length;return Eo.createElement(TS,null,s.explorerUrl?.map((f,h,g)=>{let d=h+f.url,S=h===g.length-1,y=(S&&u||p)&&!m,C=S&&s.status==="failed";return Eo.createElement(jN,{key:d},Eo.createElement(IS,{id:"widget-swap-details-tx-alert",type:S&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:GN.t("View transaction"),action:f.url&&Eo.createElement(VN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},Eo.createElement(KN,{size:12}))}))}),m&&Eo.createElement(IS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&Eo.createElement(ES,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&Eo.createElement(vS,{message:a}))}i(kp,"SwapDetailsAlerts");var AS=2e3;var NS=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=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:ht(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:P(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ht(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:P(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Hn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ht(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ht(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Hn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:XN.createElement(kp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function BS(t){if(pr(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(BS,"getStepState");function LS(t){let{requestId:e}=t,[o,n]=e0(AS);return Bt.createElement(dS,{className:Zo()},Bt.createElement(MS,{variant:"label",size:"large",color:"neutral700"},qa.t("Request ID")),Bt.createElement("div",{className:Qa()},Bt.createElement(MS,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(WS,{container:B(),content:o?qa.t("Copied To Clipboard"):qa.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement(JN,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(ZN,{size:16,color:"secondary"}):Bt.createElement(YN,{size:16,color:"gray"}))),Bt.createElement(SS,{target:"_blank",href:`${tu}/swap/${e}`},Bt.createElement(WS,{container:B(),content:qa.t("View on Rango Explorer"),side:"bottom"},Bt.createElement(RN,{size:20})))))}i(LS,"RequestIdRow");import{i18n as PS}from"@lingui/core";import{Typography as _S}from"@rango-dev/ui";import wp from"react";function DS(t){let{date:e,isFinished:o}=t;return wp.createElement("div",{className:Zo()},wp.createElement(_S,{variant:"label",size:"large",color:"neutral700"},o?PS.t("Finished at"):PS.t("Created at")),wp.createElement(_S,{variant:"label",size:"small",color:"neutral700"},e))}i(DS,"SwapDateRow");var c0=3e3;function Ep(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=s0(),l=T().blockchains(),p=T().swappers(),{findToken:u}=T(),m=z().use.retry(),f=l0(),h=bp(null),[g,d]=Ga(!1),[S,y]=Ga(null),[C,k]=Ga(null),[w,x]=Ga(null),I=bp(S),A=bp(C),b=Be.use.getNotifications(),E=Be.use.removeNotification(),v=b(),N=o0(e),W=N?.networkStatus,D=i(Le=>{d(!0),y(Le)},"handleChangeModalState"),H=i(()=>{d(!1)},"handleCloseModal"),X=i(()=>{k({type:"loading",title:zt.t("Change Network"),description:`We\u2019re switching the connected network to ${J?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),Y=i(()=>{k({type:"success",title:zt.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),M=i(Le=>{k({type:"error",title:zt.t("Network Switch Failed"),description:Le?.message||pe.detailedMessage.content})},"handleShowSwitchNetworkFailed"),ee=Yd(e),J=N?t0(e,N):null,te=N?n0(e,N):null,ce=Gy(e),Oe=Zd(e),ne=i(Le=>!!c(Le)?.mobileWallet,"checkIsMobileWallet"),wt=!!W&&[Fn.WaitingForNetworkChange,Fn.NetworkChangeFailed].includes(W),gt=!!te?.walletType&&ne(te.walletType),Wt=!!te&&!!J&&a(te.walletType,J.network,J),$=!!J&&wt&&(gt||Wt),U=i(()=>{$&&(X(),s(te.walletType,[{namespace:J.namespace,network:J.network}]).then(()=>{Y()}).catch(Le=>{M(Le)}))},"handleSwitchNetwork"),G=i(()=>{D("switchNetwork"),U()},"handleSwitchNetworkClick"),pe=Xd(e,N,c),Q=NS({swap:e,switchNetworkIsAvailable:$,handleSwitchNetworkClick:G,showNetworkModal:W,setNetworkModal:D,message:pe,blockchains:l,swappers:p}),j=Q.length,[K,Ie]=[e.steps[0],e.steps[j-1]],Ae=Ie?.outputAmount||Ie?.expectedOutputAmountHumanReadable,je=e.steps.reduce((Le,Lt)=>Le+parseFloat(Lt.feeInUsd||""),0),Mt=e.steps.find(Le=>Le.diagnosisUrl)?.diagnosisUrl,so=P(parseFloat(Ae||"0")*(Ie?.toUsdPrice||0),4,4),Io=P(parseFloat(e.inputAmount)*(K?.fromUsdPrice||0),4,4),zn=Ae?new FS(Ae).multipliedBy(Ie.toUsdPrice||0).toString():"",Rr=new FS(e.inputAmount).multipliedBy(K?.fromUsdPrice||0).toString(),os=jt(Io,so),ns=pe.detailedMessage.content||pe.shortMessage,yC=e.status==="success"?zt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:P(Ae,6,6),token:Q[j-1]?.to.token.displayName,conciseAddress:lo(e.wallets[Q[j-1]?.to.chain.displayName||""]?.address||""),chain:Q[j-1]?.to.chain.displayName}}):ke.createElement(CS,null,ke.createElement(vp,{variant:"body",size:"medium",color:"neutral700",align:"center"},ns?"":zt.t("Transaction was not sent."),ee?`${zt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:ee.outputAmount,symbol:ee.symbol,blockchain:ee.blockchain}})}`:""),ns&&ke.createElement(Ha,{align:"center",variant:"body",size:"medium",color:"neutral700"},ke.createElement("b",null,"Reason:")," ",ns));return xp(()=>{v.find(Lt=>Lt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),E(e.requestId),H()):w&&x(null))},[e.status,e.requestId]),xp(()=>{if($){if(D("switchNetwork"),W===Fn.WaitingForNetworkChange){X();return}if(W===Fn.NetworkChangeFailed){M();return}return}if(W===Fn.WaitingForConnectingWallet){D("connectWallet");return}if(W===Fn.NetworkChanged){D("switchNetwork"),Y();return}S&&["connectWallet","switchNetwork"].includes(S)&&H()},[W]),xp(()=>{if(I.current=S,A.current=C,S==="switchNetwork"&&C?.type==="success"){let Le=setTimeout(()=>{I.current==="switchNetwork"&&A.current?.type==="success"&&H()},c0);return()=>clearTimeout(Le)}},[S,C]),ke.createElement(se,{header:{title:zt.t("Swap Details"),onCancel:e.status==="running"?()=>D("cancel"):void 0,suffix:e.status!=="running"&&ke.createElement(fo,null,ke.createElement($S,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>D("delete")},ke.createElement(vp,{size:"medium",variant:"label",color:"error"},zt.t("Delete"))))},footer:Oe&&!w&&ke.createElement($S,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Le=Bi(e,l,u);m(Le),setTimeout(()=>{f("../../")},0)}},zt.t("Try again"))},ke.createElement(pS,{compact:!0,ref:h},ke.createElement(LS,{requestId:o}),ke.createElement(DS,{date:ce,isFinished:!!e.finishTime}),ke.createElement("div",{className:hS()},ke.createElement(i0,{fee:P(String(je),2,2),time:Gn(ci(e.steps)),steps:j}),ke.createElement(wr,{from:{price:{value:P(e.inputAmount,6,6),usdValue:Io,realUsdValue:Rr,realValue:e.inputAmount},token:{displayName:Q[0]?.from.token.displayName||"",image:Q[0]?.from.token.image},chain:{image:Q[0]?.from.chain.image,displayName:Q[0]?.from.chain.displayName||""}},to:{price:{value:P(Ae,6,6),usdValue:so,realUsdValue:zn,realValue:Ae||""},token:{displayName:Q[j-1]?.to.token.displayName||"",image:Q[j-1]?.to.token.image},chain:{image:Q[j-1]?.to.chain.image,displayName:Q[j-1]?.to.chain.displayName||""}},percentageChange:P(os,2,2),warningLevel:Xt(os??0)})),ke.createElement("div",{className:yS()},ke.createElement(vp,{variant:"title",size:"small"},zt.t("Swaps steps"))),ke.createElement(r0,{size:8}),ke.createElement(mS,null,Q.map((Le,Lt)=>{let Op=Lt,Qn=e.steps[Lt]&&BS(e.steps[Lt]),SC=Qn==="error"||Qn==="in-progress"||Qn==="warning"||Qn==="completed"&&Lt===Q.length-1;return ke.createElement(a0,{className:"widget-swap-details-step-item-container",key:Op,step:Le,type:"swap-progress",ref:h,state:Qn,hasSeparator:Lt!==0,tabIndex:Op,isFocused:SC,tooltipContainer:B()})}))),ke.createElement(hp,{isOpen:g,state:S,switchNetworkModalState:C,onClose:H,onCancel:r,onDelete:n,message:pe.detailedMessage.content,swap:e,handleSwitchNetwork:G}),ke.createElement(Sp,{open:!!w,diagnosisUrl:Mt,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:P(Ae,6,6),usdValue:so,realUsdValue:zn,realValue:Ae||"",percentageChange:P(os,2,2),token:{displayName:Q[j-1]?.to.token.displayName||"",image:Q[j-1]?.to.token.image},chain:{image:Q[j-1]?.to.chain.image},description:yC}))}i(Ep,"SwapDetails");import{i18n as Ka}from"@lingui/core";import{Divider as zS,NotFound as f0,Skeleton as Jr,Typography as ja}from"@rango-dev/ui";import Ee from"react";import{i18n as p0}from"@lingui/core";import{Divider as u0,Skeleton as d0,Typography as m0}from"@rango-dev/ui";import be from"react";import{css as Qt,styled as Ip}from"@rango-dev/ui";var OS=Ip("div",{width:"100%",height:"100%",padding:"$10 $20"}),Zr=Ip("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Va=Ip("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),Y7=Qt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Z7=Qt({paddingTop:"$15",display:"flex"}),J7=Qt({padding:"$15 $0"}),R7=Qt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),e9=Qt({paddingBottom:"$10"}),t9=Qt({display:"flex",justifyContent:"start",alignItems:"center"}),o9=Qt({paddingTop:"$5",display:"flex",alignItems:"center"}),n9=Qt({display:"flex",alignItems:"center"}),r9=Qt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),US=Qt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Ap(){return be.createElement(OS,null,be.createElement(xr,{type:"swap-preview"}),be.createElement("div",{className:"swaps-steps"},be.createElement(m0,{variant:"title",size:"small"},p0.t("Swaps steps"))),be.createElement(be.Fragment,null,be.createElement(Zr,null,be.createElement(Ft,{separator:!1}),be.createElement("div",{className:US()},be.createElement(u0,{direction:"horizontal",size:20}),be.createElement(d0,{height:22,variant:"rectangular"}))),be.createElement(Va,null),be.createElement(Zr,null,be.createElement(Ft,{separator:!1})),be.createElement(Va,null),be.createElement(Zr,null,be.createElement(Ft,{separator:!1})),be.createElement(Va,null),be.createElement(Zr,null,be.createElement(Ft,{separator:!1}))))}i(Ap,"LoadingSwapDetails");function QS(t){let{requestId:e,showSkeleton:o}=t;return Ee.createElement(se,{header:{title:Ka.t("Swap Details"),suffix:Ee.createElement(fo,null)}},o&&Ee.createElement(uS,null,Ee.createElement("div",{className:Zo()},Ee.createElement(ja,{variant:"label",size:"large",color:"neutral700"},`${Ka.t("Request ID")}`),Ee.createElement("div",{className:Qa()},Ee.createElement(ja,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Jr,{width:60,height:10,variant:"rounded"})),Ee.createElement(zS,{direction:"horizontal",size:4}),Ee.createElement(Jr,{width:16,height:16,variant:"rectangular"}),Ee.createElement(zS,{direction:"horizontal",size:4}),Ee.createElement(Jr,{width:16,height:16,variant:"rectangular"}))),Ee.createElement("div",{className:Zo()},Ee.createElement(ja,{className:gS(),variant:"label",size:"large",color:"neutral700"},Ee.createElement(Jr,{width:60,height:10,variant:"rounded"})),Ee.createElement(ja,{variant:"label",size:"small",color:"neutral700"},Ee.createElement(Jr,{width:60,height:10,variant:"rounded"}))),Ee.createElement(Ap,null)),!o&&Ee.createElement(fS,null,Ee.createElement(f0,{title:Ka.t("Not found"),description:Ka.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(QS,"SwapDetailsPlaceholder");function HS(){let{manager:t,state:e}=y0(),o=!e.loadedFromPersistor,n=Tt(t),{requestId:r}=C0(),a=Ge(),{fetchStatus:s}=T();if(!r)return Np.createElement(S0,{containerStyles:{margin:"20px"},type:"error",title:g0.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&h0(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),m=l?.swap;return!m||c?Np.createElement(QS,{requestId:r,showSkeleton:c}):Np.createElement(Ep,{swap:m,requestId:r,onCancel:p,onDelete:u})}i(HS,"SwapDetailsPage");import{i18n as qS}from"@lingui/core";import{Divider as T0,getCategoriesCount as k0,SelectableCategoryList as w0,styled as VS,Typography as v0,Wallet as x0}from"@rango-dev/ui";import Ht,{useState as GS}from"react";var b0=VS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),E0=VS(ue,{textAlign:"center"});function KS(){let{fetchStatus:t}=T(),[e,o]=GS("ALL"),n=T().blockchains(),{config:r}=T(),[a,s]=GS(),c=re.use.isActiveTab(),{list:l}=vt(),p=Bu(l,n),m=k0(p)!==1,f=Wu(l,e),h=i(g=>{uu(l,r.multiWallets)||s(g)},"handleWalletItemClick");return Ht.createElement(se,{header:{title:qS.t("Connect Wallets")}},Ht.createElement(E0,null,m&&Ht.createElement(Ht.Fragment,null,Ht.createElement(w0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),Ht.createElement(T0,{size:24})),Ht.createElement(v0,{variant:"title",size:"xmedium",align:"center"},qS.t("Choose a wallet to connect.")),Ht.createElement(b0,null,f.map((g,d)=>{let S=`wallet-${d}-${g.type}`;return Ht.createElement(x0,{key:S,...g,state:g.state,container:B(),onClick:()=>h(g),isLoading:t==="loading",disabled:!c})}),Ht.createElement(sr,{id:"widget-state-full-connect-modal",wallet:a,onClose:()=>{s(void 0)}}))))}i(KS,"WalletsPage");function jS(){return lm(),Rs(),I0([{path:F.home,element:Qe.createElement(py,null)},{path:F.routes,element:Qe.createElement(gy,null)},{path:F.fromSwap,children:[{index:!0,element:Qe.createElement(Pa,{type:"source"})},{path:F.blockchains,element:Qe.createElement(Ba,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:Qe.createElement(Pa,{type:"destination"})},{path:F.blockchains,element:Qe.createElement(Ba,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:Qe.createElement(Hy,null)},{path:F.languages,element:Qe.createElement(dy,null)},{path:F.exchanges,element:Qe.createElement(Rc,{sourceType:"Exchanges"})},{path:F.bridges,element:Qe.createElement(Rc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:Qe.createElement(uh,null)},{path:F.addCustomTokens,children:[{index:!0,element:Qe.createElement(af,null)},{path:F.blockchains,element:Qe.createElement(Ba,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:Qe.createElement(Wh,null)},{path:F.swapDetails,element:Qe.createElement(HS,null)}]},{path:F.wallets,element:Qe.createElement(KS,null)},{path:F.confirmSwap,element:Qe.createElement(Xg,null)}])}i(jS,"AppRoutes");import{useQueueManager as G0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as V0}from"rango-sdk";import{useContext as K0,useEffect as Lp,useState as aC}from"react";import{Provider as L0}from"@rango-dev/wallets-react";import Xa,{createContext as P0,useEffect as RS,useMemo as _0,useRef as eC}from"react";import{useEffect as N0}from"react";import{Provider as A0}from"@rango-dev/wallets-core";function XS(t){return t.map(e=>typeof e=="string"?e:e instanceof A0?e.id:e.config.type).join("-")}i(XS,"hashProviders");function Bp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return N0(()=>{o(),r()},[XS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Bp,"useWalletProviders");import{legacyFormatAddressWithNetwork as B0,legacyReadAccountAddress as YS}from"@rango-dev/wallets-core/legacy";import{Events as On}from"@rango-dev/wallets-react";import{isEvmBlockchain as W0}from"rango-sdk";function ZS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=T(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(W0).map(d=>d.name),u=i((d,S)=>{let[y,,C,k,w]=d,x={walletType:y,network:k.network??void 0,accounts:C};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=ms(y,C,p,S.supportedChainNames,w.isContractWallet);I.length&&e(I,w.namespace,k.derivationPath)},"onAccountsEvent"),m=i((d,S,y,C,k)=>{if(S===On.ACCOUNTS){let w=jn(k.supportedBlockchains);y&&u([d,S,y,C,k],{supportedChainNames:w})}S===On.PROVIDER_DISCONNECTED&&(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===On.NAMESPACE_DISCONNECTED&&n(d,y)},"handleUpdatesForHub"),f=i((d,S,y,C,k)=>{if(S===On.ACCOUNTS){let w=jn(k.supportedBlockchains),x=[],I=[];if(y?.forEach(b=>{let{network:E}=YS(b);p.includes(E)?x.push(b):I.push(b)}),r.filter(b=>b.walletType===d).map(b=>B0(b.address,b.chain)).length>0){if(x.length>0){let b=ms(d,x,p,w,k.isContractWallet);a(d,{chains:b.map(E=>E.chain)})}I.length>0&&a(d,{chains:I.map(b=>{let{network:E}=YS(b);return E})})}y?u([d,S,y,C,k],{supportedChainNames:w}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((d,S,y,C,k)=>{if(S===On.CONNECTED&&y){let w={walletType:d,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===On.NETWORK&&y){let w={walletType:d,network:y,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((d,S,y,C,k)=>{k.isHub?m(d,S,y,C,k):f(d,S,y,C,k),h(d,S,y,C,k)},"handler")}}i(ZS,"useUpdates");import{LegacyEvents as M0}from"@rango-dev/wallets-core/legacy";function JS(t,e){let[o,n,r,a,s]=e;n!==M0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(JS,"propagateEvents");var Ya=P0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function D0(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=T(),a=T().blockchains(),s=T().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=Bp(s.wallets,c),p=eC(),u=eC(),{handler:m}=ZS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});RS(()=>{n().catch(console.log)},[]),RS(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=re.use.isActiveTab(),h=_0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Xa.createElement(Ya.Provider,{value:h},Xa.createElement(L0,{allBlockChains:a,providers:l,onUpdateState:(g,d,S,y,C)=>{let k=[g,d,S,y,C];m(...k),t.onUpdateState&&JS(t.onUpdateState,k)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(D0,"Main");function Za(t){let{config:e,...o}=t;return Xa.createElement(Yu,{config:e},Xa.createElement(D0,{...o,config:e}))}i(Za,"WidgetWallets");import{globalCss as $0}from"@rango-dev/ui";var tC=i(()=>$0({"@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");import{useWallets as F0}from"@rango-dev/wallets-react";import{useEffect as O0,useRef as U0}from"react";function oC(){let{connect:t,state:e}=F0(),o=U0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);O0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(oC,"useForceAutoConnect");import{isApprovalTX as z0,RouteEventType as nC,StepEventType as rC,StepExecutionEventStatus as Q0,WidgetEvents as Ja}from"@rango-dev/queue-manager-rango-preset";import{useEffect as iC}from"react";function Wp(){let t=Be.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();iC(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===rC.TX_EXECUTION&&s.status===Q0.TX_SENT&&!z0(c)||s.type===rC.SUCCEEDED){let u=[],m=l.wallets[c?.fromBlockchain];if(m){let f=e.find(h=>h.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&h.walletType===m.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>f.some(S=>S.blockchain===d.blockchain&&S.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===d.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return we.on(Ja.StepEvent,r),()=>we.off(Ja.StepEvent,r)},[we,e]),iC(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===nC.FAILED||s.type===nC.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return we.on(Ja.RouteEvent,r),()=>we.off(Ja.RouteEvent,r)},[we])}i(Wp,"useSubscribeToWidgetEvents");import{useManager as H0}from"@rango-dev/queue-manager-react";import{useEffect as q0}from"react";function Mp(){let{isSynced:t,syncNotifications:e}=Be(),{manager:o,state:n}=H0();q0(()=>{Be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Tt(o))},[Be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Mp,"useSyncNotifications");function Pp(){oC(),tC(),Wp(),Mp();let t=T().blockchains(),{canSwitchNetworkTo:e}=Zi(),[o,n]=aC(null),[r,a]=aC(),s=K0(Ya),c=t.filter(V0);Lp(()=>()=>am(),[]),Lp(()=>()=>sm(),[]),G0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),Lp(()=>(Po.init(),Be.persist.hasHydrated()||Be.persist.rehydrate(),s.onConnectWallet(l=>{n(p=>{if(!p||p.walletType!==l.walletType)return l;let u={...p};return l.network&&(u.network=l.network),l.accounts&&(u.accounts=l.accounts),u})}),s.onDisconnectWallet(l=>{a(l),n(p=>l===p?.walletType?null:p)}),Po.destroy),[])}i(Pp,"useBootstrap");import{styled as j0}from"@rango-dev/ui";var sC=j0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Jo(){Pp();let{config:t}=T(),{activeTheme:e}=mo(t?.theme||{}),{activeLanguage:o}=wo();return _p.createElement(X0,{language:o},_p.createElement(sC,{id:"swap-container",className:e()},_p.createElement(jS,null)))}i(Jo,"Main");import{setSolanaSignerConfig as gB}from"@rango-dev/signer-solana";import $p,{useEffect as Fp,useMemo as hB}from"react";function lC(){let{setWatermark:t,setShowProfileBanner:e}=re();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Gt("BASE_URL")}/meta/dapp/config?apiKey=${Gt("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(lC,"useFetchApiConfig");import{useState as Y0}from"react";var Z0=i(()=>{let[t,e]=Y0(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=pu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),cC=Z0;import{checkWaitingForNetworkChange as J0,makeQueueDefinition as R0}from"@rango-dev/queue-manager-rango-preset";import{Provider as eB}from"@rango-dev/queue-manager-react";import{useWallets as tB}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as oB}from"@rango-dev/wallets-shared";import{isEvmBlockchain as nB}from"rango-types";import rB,{useMemo as iB}from"react";function aB(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=tB(),c=iB(()=>R0({API_KEY:t.apiKey||Gt("API_KEY"),BASE_URL:Gt("BASE_URL"),emitter:{emit:we.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=T(),u=l(),m={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},f=i(async(w,x)=>a(w,x.network,x)?await r(w,[x]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),g=u.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),d=u.filter(nB),S=i(w=>{let{supportedChains:x}=s(w);return jn(x)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:g,evmBasedChains:d,evmNetworkChainInfo:oB(d),getSupportedChainNames:S},getSigners:o,wallets:m,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},k=re.use.isActiveTab();return rB.createElement(eB,{queuesDefs:[c],context:C,onPersistedDataLoaded:w=>{J0(w)},isPaused:!k},t.children)}i(aB,"QueueManager");var pC=aB;import{useManager as uB}from"@rango-dev/queue-manager-react";import dB,{createContext as mB,useContext as fB}from"react";function uC(){let{findToken:t}=T(),e=T().blockchains(),o=T().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=z()();return i(p=>{let{fromBlockchain:u,fromToken:m,toBlockchain:f,toToken:h,requestAmount:g}=p,d={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(m!==void 0){let S=m?t(m)??null:null;r({meta:d,token:S})}if(f!==void 0){let S=e.find(y=>y.name===f)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:d,token:S})}g!==void 0&&c(g)},"updateQuoteInputs")}i(uC,"useUpdateQuoteInputs");import{cancelSwap as sB,getCurrentNamespaceOfOrNull as lB,getCurrentStep as cB,getRelatedWalletOrNull as pB}from"@rango-dev/queue-manager-rango-preset";var Ra=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Tt(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=Bi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&sB(o)}getCurrentStepInfo(e){let o=cB(e);return{step:o,wallet:o?pB(e,o):null,network:o?lB(e,o)?.network:null}}};var dC=mB(void 0);function Dp(t){let{manager:e}=uB(),o=re.use.isActiveTab(),n=z().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=T(),l=new Ra(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=T(),u=xu(a()),m=T().blockchains(),f=T().tokens(),h=T().swappers(),g=T().fetchStatus,d=wo().resetLanguage,S=Be().getNotifications(),y=Be().clearNotifications,C=uC(),{fromBlockchain:k,toBlockchain:w,fromToken:x,toToken:I,inputAmount:A}=z()(),b={isActiveTab:o,setCurrentTabAsActive:Po.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async E=>c(E)},meta:{blockchains:m,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:d,notifications:{list:S,clearAll:y},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:w?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:C}};return dB.createElement(dC.Provider,{value:b},t.children)}i(Dp,"WidgetInfo");function mC(){let t=fB(dC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(mC,"useWidget");function Un(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=lC(),{handleLoadCustomFont:a}=cC();return Fp(()=>{r().catch(console.log)},[]),Fp(()=>{n&&a(n)},[n]),hB(()=>{Mu({API_KEY:o?.apiKey||ri,BASE_URL:o?.apiUrl||eu})},[o.apiKey,o.apiUrl]),Fp(()=>{t.config?.signers?.customSolanaRPC&&gB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),$p.createElement(Za,{config:o,onUpdateState:e},$p.createElement(pC,{apiKey:o.apiKey},$p.createElement(Dp,null,t.children)))}i(Un,"WidgetProvider");function fC(t){let e=t.config?.externalWallets;return es.createElement(Ai,null,e?es.createElement(Jo,null):es.createElement(Un,{config:t.config??on},es.createElement(Jo,null)))}i(fC,"Refuel");import ts from"react";function gC(t){let e=t.config?.externalWallets;return ts.createElement(Ai,null,e?ts.createElement(Jo,null):ts.createElement(Un,{config:t.config??on},ts.createElement(Jo,null)))}i(gC,"Widget");function hC(){let{on:t,off:e}=we;return{on:t,off:e}}i(hC,"useWidgetEvents");var Ree={DerivationPath:rr,Namespaces:tr,Detached:nr,isOnDerivationPath:ar,isOnNamespace:ir,isOnDetached:Ao};export{wee as EventSeverity,sn as MainEvents,Mee as Networks,_ee as PendingSwapNetworkStatus,Ss as QuoteEventTypes,fC as Refuel,vee as RouteEventType,ls as SUPPORTED_FONTS,Ree as StatefulConnect,xee as StepEventType,bee as StepExecutionBlockedEventStatus,Eee as StepExecutionEventStatus,wd as SwapModeContext,et as UI_ID,Ts as UiEventTypes,Cs as WalletEventTypes,Bee as WalletEvents,Lee as WalletTypes,gC as Widget,sn as WidgetEvents,Un as WidgetProvider,Za as WidgetWallets,ml as customizedThemeTokens,as as pickProviderVersionWithFallbackToLegacy,Aee as readAccountAddress,Ro as useStatefulConnect,vt as useWalletList,Zi as useWallets,mC as useWidget,hC as useWidgetEvents,wT as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map