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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var fC=Object.defineProperty;var i=(t,e)=>fC(t,"name",{value:e,configurable:!0});import{EventSeverity as FR,RouteEventType as OR,StepEventType as UR,StepExecutionBlockedEventStatus as zR,StepExecutionEventStatus as HR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as qR}from"@rango-dev/wallets-core/legacy";import{useWallets as tC,Events as VR}from"@rango-dev/wallets-react";import{Networks as jR,WalletTypes as XR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as ZR}from"rango-types";import{Divider as Bk}from"@rango-dev/ui";import co,{useEffect as Wk,useRef as Lk,useState as fd}from"react";import{WalletState as gC}from"@rango-dev/ui";import{useWallets as hC}from"@rango-dev/wallets-react";import{useReducer as yC}from"react";function Np(t){return!!t.derivationPath}i(Np,"isStateOnDerivationPathStep");function Bp(t){return!!t.namespace}i(Bp,"isStateOnNamespace");var Xr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Wp(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 Xr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Xr;default:throw new Error("Action hasn't been defined.")}}i(Wp,"reducer");function en(){let{state:t,disconnect:e,connect:o}=hC(),[n,r]=yC(Wp,Xr),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d.type,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";if(h?.disconnectOnError)try{await u(d)}catch{console.warn("An error happened during disconnecting wallet after error on connecting.")}throw new Error(m,{cause:g})}},"runConnect"),s=i(async(d,f)=>{let h=d.state===gC.DISCONNECTED,g=f?.forceConnectToNamespaces;if(h){let m=!!d.isHub,y=m?d.properties?.find(C=>C.name==="namespaces")?.value:d.needsNamespace,S=m?d.properties?.find(C=>C.name==="derivationPath")?.value:d.needsDerivationPath;if(g){let C=g.find(k=>!y?.data?.map(v=>v.value).includes(k));if(C)throw new Error(`One of the forced namespaces is not available in the wallet. Forced namespace: ${C}`);if(g.length>1&&S)throw new Error("Derivation path is not supported when multiple namespaces are selected.");return g.length===1&&g[0]&&S?(r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:g[0]}}),{status:"derivation-path"}):await a(d,g.map(k=>({namespace:k})),{...f,disconnectOnError:!0})}if(!y?.data?.length)return await a(d,void 0,f);if(y?.data.length&&y.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(y?.data.length===1&&y.data[0]){if(S){let C=y.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:C.value}}),{status:"derivation-path"}}return await a(d,y?.data?.map(C=>({namespace:C.value})),f)}}if(d.isHub&&!f?.forceConnectToNamespaces){let m=d.properties?.find(y=>y.name==="namespaces")?.value;if(m?.data.length&&m.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(k=>k.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(k=>k.name==="derivationPath")?.value:d.needsDerivationPath,y=g?.selection==="single",S=f[0];if(!S)throw new Error("To confirm a namespace, you should select at least one namespace.");if(y&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:S}}),{status:"derivation-path"};if(!Bp(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:d,selectedNamespaces:C??null}}),{status:"Detached"}},"handleNamespace"),l=i(async(d,f,h)=>{if(!f)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Np(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=[{namespace:n.derivationPath.namespace,derivationPath:f}],S=!!d.isHub?d.properties?.find(v=>v.name==="namespaces")?.value:d.needsNamespace,C=!!S?.data&&S.data.length>1,k=!!h?.forceConnectToNamespaces;return C&&!k?(r({type:"detached",payload:{targetWallet:d,selectedNamespaces:m??null,derivationPath:f}}),{status:"Detached"}):await a(d,m)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),Io(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(en,"useStatefulConnect");import{WalletState as Ts}from"@rango-dev/ui";import{useWallets as ET}from"@rango-dev/wallets-react";import{detectMobileScreens as IT,WalletTypes as Yn}from"@rango-dev/wallets-shared";import{useCallback as AT,useEffect as NT}from"react";import kT,{createContext as wT,useContext as vT,useEffect as bT,useRef as xT}from"react";import{create as CT}from"zustand";import{persist as TT}from"zustand/middleware";import{allProviders as SC}from"@rango-dev/provider-all";var Xa=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()}},tn=new Xa;import{Provider as Ya}from"@hub3js/core";import{defineVersions as Mp,pickVersion as Pp}from"@hub3js/core/utils";function _p({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=Za(a);return s instanceof Ya?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 Ya?o.push(Mp().version("1.0.0",n).build()):o.push(Mp().version("0.0.0",n).build())}),o}return t}i(_p,"matchAndGenerateProviders");function Za(t){try{return Pp(t,"1.0.0")[1]}catch{return Pp(t,"0.0.0")[1]}}i(Za,"pickProviderVersionWithFallbackToLegacy");function Dp(t){return t.map(o=>Za(o)).map(o=>o instanceof Ya?o.id:o.config.type)}i(Dp,"configWalletsToWalletName");function $p(t,e){return e.find(o=>o.name===t)?.displayName}i($p,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Fp(t,e){return e.find(o=>o.name===t)?.logo}i(Fp,"getBlockchainImage");function zn(t,e){return e.find(o=>o.id===t)?.title}i(zn,"getSwapperDisplayName");function Ao(t,e){return e.find(o=>o.name===t)??null}i(Ao,"findBlockchain");function Ja(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(Ja,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function on(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(on,"isValidTokenAddress");function Yr(t){let{contractAddress:e,blockchainMeta:o}=t;return o.info?.tokenUrl?o.info.tokenUrl.replace("{address}",e):o.info?.addressUrl.replace("{wallet}",e)}i(Yr,"createTokenExplorerUrl");function Hn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=gt(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=gt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Hn,"matchTokensFromConfigWithMeta");function Zr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(Zr,"getSupportedBlockchainsFromConfig");function Up(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Up,"makeProvidersOptionsFromConfig");var nn={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/assets/refs/heads/main/manifests/tonconnect/manifest.json"}},CC={clientUrl:void 0},TC={liquiditySources:void 0};function Op(t){let e=Up(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return SC(o).map(a=>a())}i(Op,"generateProviders");var zp=i((t,e,o)=>{let n=Op({...nn,...t});return{config:{...nn,...t},iframe:CC,campaignMode:TC,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=Hn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Hn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});tn.set("supportedSourceTokens",l),tn.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=Op(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Up(a);return _p({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Hp}from"rango-types";var Qp=[Hp.EVM,Hp.SOLANA],Jr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as PC}from"rango-sdk";function qp(){return process.env.REACT_APP_RANGO_API_KEY}i(qp,"getApiKeyFromEnv");function Gp(){let t=qp();if(t)return t;throw new Error("Ensure you have set REACT_APP_RANGO_API_KEY in your env variables.")}i(Gp,"getApiKeyFromEnvOrThrow");function Vp(){return qp()||"NOT_SET"}i(Vp,"getApiKeyFromEnvOrNotSet");import{BlockchainCategories as IC,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as AC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as NC,HYPERLIQUID_SIGN_NETWORK as BC,isEvmAddress as WC,Networks as rs}from"@rango-dev/wallets-shared";import an from"bignumber.js";import kC from"bignumber.js";var pe=new kC(0);var No="~",Kp=[];import{BlockchainCategories as es,WalletState as EC}from"@rango-dev/ui";import{TransactionType as ts}from"rango-sdk";import{UI_ID as wC}from"@rango-dev/ui";var jp="https://api.rango.exchange",Xp="https://explorer.rango.exchange",ht={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...wC};var Yp="Roboto",Ra=[{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 rn(t){return Array.from(new Set(t))}i(rn,"removeDuplicateFrom");function Rr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Rr,"debounce");function rt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(rt,"containsText");function Rp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Rp,"exactText");function eu(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(eu,"startWithText");var N=i(()=>document.getElementById(ht.SWAP_BOX_ID),"getContainer"),Bo=i(()=>document.getElementById(ht.EXPANDED_BOX_ID),"getExpanded");function tu(t,e,o){let n=!!e&&Rp(e,t),r=!!o&&Rp(o,t);return n!==r?n?-1:1:0}i(tu,"compareExactMatchText");function os(t,e,o){let n=!!e&&rt(e,t),r=!!o&&rt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(os,"compareContainsText");function ns(t,e,o){let n=!!e&&eu(e,t),r=!!o&&eu(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ns,"compareStartWithText");function ou(t,e,o){if(!o)return 0;let n=tu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=tu(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ns(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=os(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ns(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=os(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ns(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=os(o,t.address,e.address);if(r!==0)return r}return 0}i(ou,"compareWithSearchFor");var ei=i((t,e)=>{switch(e){case es.ALL:return!0;case es.UTXO:return t===ts.TRANSFER;case es.OTHER:return t!==ts.TRANSFER&&t!==ts.EVM;default:return t===e}},"isBlockchainTypeInCategory"),nu=i(t=>Ra.find(o=>o.value===t)?.url,"getFontUrlByName");function ru(t,e){let o=!!t.find(n=>n.state===EC.CONNECTED);return e===!1&&o}i(ru,"isSingleWalletActive");function iu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(iu,"memoizedResult");function au(t,e){let o=new Set;return e.forEach(n=>{o.add(n.blockchain)}),t.filter(n=>o.has(n.name))}i(au,"filterBlockchainsWithAtLeastOneToken");import{BigNumber as gu}from"bignumber.js";function su(t){return t.replace(/^0+(?=\d)/g,"")}i(su,"removeLeadingZeros");function lu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(lu,"ensureLeadingZeroForDecimal");function cu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(cu,"formatThousandsWithCommas");function pu(t){return t.replace(/\s+/g,"-")}i(pu,"replaceSpacesWithDash");function uu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(uu,"stripTrailingZeros");function du(t){return t=t.replace(/[^\d.]/g,"").replace(/\./g,(e,o,n)=>n.indexOf(".")===o?".":""),t}i(du,"parseNumericValue");function ti(t){return/^0+(?:\.0+)?$/.test(t)}i(ti,"isZeroValue");function mu(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(mu,"isValidCurrencyFormat");function fu(t){return/\d+$/.test(t)}i(fu,"isColorKeyOverridden");var Qn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new gu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new gu(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 oi=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Lt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),qn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function hu(t){return ti(t)?"0":t.endsWith(".")?t.slice(0,-1):uu(t)}i(hu,"sanitizeInputAmount");function Gn(t,e){return MC(t,e)?it.PARTIALLY_CONNECTED:e.connected?it.CONNECTED:e.connecting?it.CONNECTING:e.installed?it.DISCONNECTED:it.NOT_INSTALLED}i(Gn,"getWalletConnectionStatus");function yu(t,e,o,n){return o.filter(r=>!Kp.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=rn(u.map(y=>y.type)),m=Gn(e(r),t(r));return{title:a,image:s,link:NC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(yu,"mapWalletTypesToWalletInfo");function Vn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Vn,"walletAndSupportedChainsNames");function as(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}=AC(l),d=c.length>0,f=c.includes(u),h=u===rs.Unknown;if(d&&!f&&!h)return;let m=u===rs.Unknown&&WC(p);if(h&&!m)return;if(o.includes(u)||m)if(r)s(u,p.toLowerCase(),r);else{let S=c.filter(k=>o.includes(k));S.forEach(k=>{s(k,p.toLowerCase())}),S.includes(BC)&&s(rs.HYPERLIQUID,p.toLowerCase())}else s(u,p)}),a}i(as,"prepareAccountsForWalletStore");function Wo(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(Wo,"getQuoteChains");function Kn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Kn,"isAccountAndWalletMatched");var Su=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?is(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new an(pe));return LC(e.toString())},"calculateWalletUsdValue");function LC(t){let e=t.toString().split(".");return e[0]&&(e[0]=cu(e[0])),e.join(".")}i(LC,"numberWithThousandSeparator");function is(t,e){return new an(t).shiftedBy(-e).toFixed()}i(is,"representAmountInNumber");function ii(t){if(!t)return null;let e=is(t.amount,t.decimals),o=t.usdValue?is(t.usdValue,t.decimals):null,n=M(e,8,8),r=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(ii,"formatBalance");function Cu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new an(t.usdValue).shiftedBy(-t.decimals):pe,n=e&&e.usdValue?new an(e.usdValue).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new an(t.amount).shiftedBy(-t.decimals):pe,n=e&&e.amount?new an(e.amount).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Cu,"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 Tu(t){return t.sort((e,o)=>+(o.state===it.CONNECTED)-+(e.state===it.CONNECTED)||+(o.state===it.PARTIALLY_CONNECTED)-+(e.state===it.PARTIALLY_CONNECTED)||+(o.state===it.DISCONNECTED||o.state===it.CONNECTING)-+(e.state===it.DISCONNECTED||e.state===it.CONNECTING))}i(Tu,"sortWalletsBasedOnConnectionState");function so(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(so,"getConciseAddress");function ku({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(ku,"getAddress");var wu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function vu(t){return t.map(e=>e.state).join("-")}i(vu,"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 xu(t,e){return e===IC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(ei(n,e))return!0;return!1})}i(xu,"filterWalletsByCategory");function MC(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(MC,"checkIsWalletPartiallyConnected");var ss={API_KEY:Vp()};function qt(t){return ss[t]||""}i(qt,"getConfig");function Eu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ss=e,ss}i(Eu,"initConfig");var Iu=20,Au=25,ls="theme-widget",cs=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"),ps=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Nu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ai,at=i(()=>ai||(ai=new PC(qt("API_KEY"),qt("BASE_URL")),ai),"httpService");import{i18n as Wu}from"@lingui/core";var si=[.5,1,3],li=1,sn=5,jn=30,ci=0;var Xe=(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))(Xe||{});import{WidgetEvents as Bu}from"@rango-dev/queue-manager-rango-preset";var us=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(us||{}),ds=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ds||{}),ms=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ms||{}),ln=(a=>(a[a.RouteEvent=Bu.RouteEvent]="RouteEvent",a[a.StepEvent=Bu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(ln||{});function pi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return rn(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(pi,"getUniqueSwappersGroups");function Lu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Lu,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function cn(t,e){return e?.[t]==="enabled"}i(cn,"isRoutingEnabled");var Mu=i((t,e,o)=>Re("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function pn(t){return t==ci?{type:"error",message:Wu.t("Slippage must be greater than or equal to 0.01")}:t>sn&&t<=jn?{type:"warning",message:Wu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(pn,"getSlippageValidation");var Pu=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=Zr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>Qp.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=tn.get(u);d?.length||(d=Hn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),tn.set(u,d)),d=Mu(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?!!(rt(g.symbol,o.searchFor)||rt(g.address||"",o.searchFor)||rt(g.name||"",o.searchFor)):!0).sort((g,m)=>{let y=e().isTokenPinned(g,o.type),S=e().isTokenPinned(m,o.type);if(y!==S)return y?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(g),A=o.getBalanceFor(m),b=Cu(I,A);if(b!==0)return b}let C=l.get(g.blockchain),k=l.get(m.blockchain),v=Ja(g,C),w=Ja(m,k);if(v!==w)return v?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let I=ou(g,m,o.searchFor);if(I)return I}return g.isSecondaryCoin!==m.isSecondaryCoin?g.isSecondaryCoin?1:-1:C&&k?C.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=gt(o),s=n.get(a);return s||(s=r.find(c=>gt(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(Lu)},fetch:async()=>{try{let{routing:o}=e().config,n=cn("enableCentralizedSwappers",o),r=await at().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=r.popularTokens,p=r.swappers.filter(d=>d.enabled);r.blockchains.sort((d,f)=>d.sort-f.sort).forEach(d=>{d.enabled&&a.set(d.name,d)}),r.tokens.forEach(d=>{let f=gt(d);c[d.blockchain]||(c[d.blockchain]=[]),s.set(f,d),c[d.blockchain]?.push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as _C,Catalonia as DC,Chinese as _u,Denmark as $C,English as FC,Finland as OC,French as UC,German as zC,Greece as HC,Hungary as QC,India as qC,Indonesian as GC,Italian as VC,Japanese as KC,Korea as jC,Lithuania as XC,Malay as YC,Netherlands as ZC,Pakistan as JC,Philippines as RC,Poland as eT,Portuguese as tT,Russian as oT,SaudiArabia as nT,Serbia as rT,Slovakia as iT,SouthAfrica as aT,Spanish as sT,Swahili as lT,Swedish as cT,Thai as pT,Turkish as uT,Ukrainian as dT,Vietnamese as mT}from"@rango-dev/ui";var Du=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:aT},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:nT},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:_C},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:DC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:_u},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:_u},{title:"Danish",label:"Dansk",local:"da",SVGFlag:$C},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:ZC},{title:"English",label:"English",local:"en",SVGFlag:FC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:RC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:OC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:UC},{title:"German",label:"Deutsch",local:"de",SVGFlag:zC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:HC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:qC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:QC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:GC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:VC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:KC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:jC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:XC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:YC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:eT},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:tT},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:oT},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:rT},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:iT},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:sT},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:lT},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:cT},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:pT},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:uT},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:dT},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:JC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:mT}],un="en";var $u=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:li,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=rn(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Re("theme",n),s=Re("language",n),c=Re("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||un},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||un}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=Zr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Cs from"bignumber.js";import fT from"mitt";var ke=fT(),gT={on:ke.on,off:ke.off};var Fu=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 Ou from"bignumber.js";function Gt(t){return`${t.blockchain}${No}${t.address}${No}${t.symbol}`}i(Gt,"createAssetKey");function Uu(t,e){return`${Gt(e)}${No}${t}`}i(Uu,"createBalanceKey");function Xn(t){let[e,o,n]=t.split(No);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Xn,"extractAssetFromBalanceKey");function gs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Gt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Ou(r??pe).multipliedBy(o[s].amount).toString():""})})}),o}i(gs,"computeNextBalancesWithNewPrices");function hs(t,e){let o={};return t.balances?.forEach(n=>{let r=Uu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Ou(c??pe).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(hs,"createBalanceStateForNewAccount");function ys(t,e){for(let o in e){let n=Xn(o);if(n){let r=Gt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(ys,"updateAggregatedBalanceStateForNewAccount");function hT(t,e){let o=Xn(e);if(!o)return t;let n=Gt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(hT,"removeBalanceFromAggregatedBalance");function Ss(t,e,o){let n=t.connectedWallets.filter(l=>e.includes(l.walletType));t.connectedWallets.forEach(l=>{e.includes(l.walletType)||(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=Xn(l);if(!p)return;!!n.find(d=>Uu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=hT(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(Ss,"computeNextStateAfterWalletBalanceRemoval");function yT(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(yT,"matchWalletDetailsWithConnectedWallet");var ST=iu(),zu=Fu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Kn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Kn(s,a))?{...a,loading:!1,error:!1,explorerUrl:yT(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Kn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Kn(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 at().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};gs(m,g,d);let y=hs(g,e);f=ys(f,y),d={...d,...y}}),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&&(ke.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}=Ss(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(ke.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=[...new Set(o.map(l=>l.walletType))];e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await at().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};gs(f,d,l);let{_balances:h,_aggregatedBalances:g}=Ss(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(y=>r.includes(y.walletType)&&y.address===d.address&&y.chain===d.blockChain))return;let m=hs(d,e);p=ys(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=>{let h=e().connectedWallets.find(g=>g.chain===f.blockChain&&g.address)?.walletType;return h?{chain:f.blockChain,walletType:h,address:f.address}:null}).filter(f=>!!f);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=Gt(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 Cs(u.amount),f=new Cs(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(No);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>ST(()=>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=Xn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new Cs(l.amount).shiftedBy(-l.decimals):pe;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 Hu(t){return CT()(TT((...e)=>({...zu(...e),...Pu(...e),...$u(...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(Hu,"createAppStore");var Qu=wT(null);function T(){let t=vT(Qu);if(bT(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function qu(t){let e=xT();return e.current||(e.current=Hu(t.config)),kT.createElement(Qu.Provider,{value:e.current},t.children)}i(qu,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{getAvailableProviders:o}=T(),{state:n,getWalletInfo:r}=ET(),{handleDisconnect:a}=en(),s=Dp(o()),c=yu(n,r,s,e);c=IT()?c.filter(f=>f.showOnMobile!==!1&&n(f.type).installed):c;let l=Tu(c),p=AT(()=>{let f=c?.filter(h=>h.state===Ts.CONNECTING)||[];for(let h of f)a(h)},[vu(c)]);NT(()=>()=>{p()},[]);let u=i(f=>{let h=f.find(m=>m.type===Yn.DEFAULT);return!h||h.state===Ts.NOT_INSTALLED?!1:f.filter(m=>m.state!=Ts.NOT_INSTALLED&&![Yn.DEFAULT,Yn.WALLET_CONNECT_2,Yn.LEDGER].includes(m.type)&&r(m.type).supportedChains.filter(y=>y.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i(f=>f==Yn.DEFAULT&&!u(c),"shouldExcludeWallet");return{list:l.filter(f=>!d(f.type)),terminateConnectingWallets:p}}i(vt,"useWalletList");import{Modal as MT}from"@rango-dev/ui";import PT from"react";import{create as LT}from"zustand";var Gu="rango-widget";var Zn=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(Gu),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 WT=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"),lo=WT;var oe=lo(LT()((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})}}))),Mo=new Zn({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function ne(t){let{watermark:e}=oe();return PT.createElement(MT,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import{i18n as fn}from"@lingui/core";import{Alert as jT,Button as XT,Divider as gn,Image as YT,MessageBox as ZT,RadioRoot as JT,WalletImageContainer as RT}from"@rango-dev/ui";import se,{useEffect as ek,useMemo as tk,useState as ok}from"react";import{i18n as FT}from"@lingui/core";import{Typography as Ru}from"@rango-dev/ui";import dn from"react";function ui(t,e){return t.find(o=>o.name===e)?.logo}i(ui,"getBlockchainLogo");import{darkTheme as _T,Image as DT,styled as Vt,Typography as $T}from"@rango-dev/ui";var di=Vt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${_T} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),mi=Vt("div",{display:"flex",gap:"$8",alignItems:"center"}),Ku=Vt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),ju=Vt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Xu=Vt("div",{display:"flex",gap:"$6",alignItems:"center"}),Yu=Vt("div",{paddingLeft:"48px"}),Zu=Vt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ju=Vt($T,{maxWidth:"100px"}),fi=Vt(DT,{variants:{disabled:{true:{opacity:"0.5"}}}});function gi(t){let{namespace:e}=t,o=T().blockchains();return dn.createElement(di,{unsupported:!0},dn.createElement(mi,null,dn.createElement(fi,{src:ui(o,e.id),size:40,disabled:!0}),dn.createElement(ju,null,dn.createElement(Ru,{variant:"label",size:"large"},e.label),dn.createElement(Ru,{variant:"body",size:"xsmall"},FT.t("(Currently not supported)")))))}i(gi,"NamespaceUnsupportedItem");import{Checkbox as GT,Radio as VT}from"@rango-dev/ui";import bs from"react";import{i18n as vs}from"@lingui/core";import{ChevronDownIcon as UT,ChevronUpIcon as zT,Divider as HT,Typography as Jn}from"@rango-dev/ui";import Ae,{useEffect as QT,useState as qT}from"react";import{Image as td,Tooltip as od,Typography as OT}from"@rango-dev/ui";import Mt from"react";import{styled as ed}from"@rango-dev/ui";var ks=ed("div",{display:"flex",alignItems:"center",padding:0,margin:0}),hi=ed("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 ws=3;function nd(t){let{chains:e}=t;return Mt.createElement(ks,{id:"widget-supported-chains-container"},e.slice(0,ws).map((o,n)=>Mt.createElement(od,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Mt.createElement(hi,{firstItem:n===0},Mt.createElement(td,{src:o.logo,size:15})))),e.length>ws&&Mt.createElement(od,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Mt.createElement(ks,null,e.map((o,n)=>Mt.createElement(hi,{key:o.name,firstItem:n===0},Mt.createElement(td,{src:o.logo,size:15}))))},Mt.createElement(hi,null,Mt.createElement(OT,{variant:"body",size:"xsmall"},"+",e.length-ws))))}i(nd,"SupportedChainsList");function Po(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=qT(!1),p=T().blockchains();QT(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ae.createElement(di,{hasError:!!o,clickable:!!s,onClick:s},Ae.createElement(mi,null,Ae.createElement(fi,{src:ui(p,e.id),size:40}),Ae.createElement(Ku,{showSupportedChains:d||r||!!o},Ae.createElement(Xu,null,Ae.createElement(Jn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(Jn,{variant:"body",size:"small",color:"success500"},vs.t("Connected")),!!o&&Ae.createElement(Jn,{variant:"body",size:"small",color:"error500"},vs.t("Connection failed"))),d&&Ae.createElement(nd,{chains:u}),r&&Ae.createElement(Ju,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Zu,{onClick:()=>l(f=>!f)},Ae.createElement(Jn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},vs.t("See why")),c?Ae.createElement(zT,{size:12,color:"gray"}):Ae.createElement(UT,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(HT,{size:4}),Ae.createElement(Yu,null,Ae.createElement(Jn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Po,"NamespaceItem");function rd(t){let{onClick:e,type:o,namespace:n}=t;return bs.createElement(Po,{namespace:n,onClick:e,suffix:o==="radio"?bs.createElement(VT,{value:n.value}):bs.createElement(GT,{checked:t.value})})}i(rd,"NamespaceListItem");import{Button as KT,styled as id}from"@rango-dev/ui";var yi=id("ul",{padding:0,paddingBottom:"$20",margin:0}),mn=id(KT,{minHeight:"$40"});function Rn(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=T().blockchains(),[l,p]=ok([]),u=tk(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:y=>y.includes(m)?y.filter(S=>S!==m):y.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?se.createElement(JT,{value:l?.[0]},m):se.createElement(se.Fragment,null,m),"wrapRadioRoot");return ek(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(y=>y.getSupportedChains(c).some(S=>t.value.defaultSelectedChains?.includes(S.name)));p(m.map(y=>y.value))}else p(u.map(m=>m.value))},[]),se.createElement(se.Fragment,null,se.createElement(ZT,{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:se.createElement(RT,null,se.createElement(YT,{src:s,size:45}))}),r?se.createElement(se.Fragment,null,se.createElement(gn,{size:20,className:"_initial_namespace_list_header_alert_top_divider"}),se.createElement(jT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:fn.t("This wallet can only connect to one chain at a time. ")}),se.createElement(gn,{size:30,className:"_initial_namespace_list_header_alert_bottom_divider"})):se.createElement(se.Fragment,null,se.createElement(gn,{size:30,className:"_initial_namespace_list_header_button_top_divider"}),se.createElement(XT,{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")),se.createElement(gn,{size:10,className:"_initial_namespace_list_header_button_bottom_divider"})),se.createElement(yi,null,g(se.createElement(se.Fragment,null,a?.data.map((m,y,S)=>se.createElement(se.Fragment,{key:m.id},m.unsupported?se.createElement(gi,{namespace:m}):se.createElement(rd,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),y!==S.length-1&&se.createElement(gn,{size:10})))))),se.createElement(gn,{size:20}),se.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},fn.t("Connect")))}i(Rn,"Namespaces");import{i18n as er}from"@lingui/core";import{Alert as ck,Button as pk,Divider as hn,Image as uk,MessageBox as dk,WalletImageContainer as mk}from"@rango-dev/ui";import{useWallets as fk}from"@rango-dev/wallets-react";import ue from"react";import{styled as nk}from"@rango-dev/ui";var ad=nk("div",{display:"flex",justifyContent:"end"});import{i18n as xs}from"@lingui/core";import{Button as rk,Spinner as ik}from"@rango-dev/ui";import Es,{useLayoutEffect as ak,useRef as sk,useState as lk}from"react";function sd(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=lk(null),p=sk(!1);ak(()=>{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:so(m)},"getConnectedAddress"),h=i(()=>r.connected?xs.t("Disconnect"):c?xs.t("Try again"):xs.t("Connect"),"getButtonText");return Es.createElement(Po,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?Es.createElement(ik,{color:"info"}):Es.createElement(rk,{id:"widget-name-space-connect-btn",variant:"ghost",type:r.connected?"error":"primary",size:"xsmall",onClick:async()=>d(),disabled:n},h())})}i(sd,"NamespaceDetachedItem");function tr(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:r=er.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s}=t,{targetWallet:c}=e,{connect:l,disconnect:p,state:u}=fk(),d=c.type,f=u(d),h=c.properties?.find(v=>v.name==="namespaces"),g=c.properties?.find(v=>v.name==="derivationPath"),m=h?.value.selection==="single",y=i(async(v,w)=>{m&&await p(d),g&&w?.shouldAskForDerivationPath?s(v):await l(d,[{namespace:v,network:"",derivationPath:w?.derivationPath??void 0}])},"handleConnectNamespace"),S=i(async v=>{await p(d,[v])},"handleDisconnectNamespace"),C=i(()=>m?ue.createElement(ue.Fragment,null,ue.createElement(hn,{size:20,className:"_detached_namespace_list_header_alert_top_divider"}),ue.createElement(ck,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:er.t("This wallet can only connect to one chain at a time.")}),ue.createElement(hn,{size:30,className:"_detached_namespace_list_header_alert_bottom_divider"})):ue.createElement(ue.Fragment,null,ue.createElement(hn,{size:30,className:"_detached_namespace_list_header_button_top_divider"}),ue.createElement(ad,null,ue.createElement(pk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:f.connecting||!f.connected,onClick:a},er.t("Disconnect wallet"))),ue.createElement(hn,{size:16,className:"_detached_namespace_list_header_button_bottom_divider"})),"renderNamespaceListHeader"),k=i(v=>{if(v.unsupported)return ue.createElement(gi,{namespace:v});let w=o?.find(b=>b.namespace===v.value),I=f.namespaces?.get(v.value);if(!I)throw new Error(`State for ${v.value} was not found!`);let A=m&&f.connecting;return ue.createElement(sd,{namespace:v,initialConnect:!!w,disabled:A,state:I,handleConnect:async b=>y(v.value,{derivationPath:w?.derivationPath,shouldAskForDerivationPath:b?.shouldAskForDerivationPath}),handleDisconnect:async()=>S(v.value)})},"renderNamespaceItem");return ue.createElement(ue.Fragment,null,ue.createElement(dk,{type:"info",title:er.t("Connect {wallet}",{wallet:c.title}),description:er.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:ue.createElement(mk,null,ue.createElement(uk,{src:c.image,size:45}))}),C(),ue.createElement(yi,{id:"widget-detached-namespace-list"},c.needsNamespace?.data.map((v,w,I)=>ue.createElement(ue.Fragment,{key:v.id},k(v),w!==I.length-1&&ue.createElement(hn,{size:10})))),ue.createElement(hn,{size:20}),ue.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},r))}i(tr,"Detached");import{i18n as yn}from"@lingui/core";import{Divider as Sk,Image as Ck,MessageBox as Tk,Select as kk,TextField as wk}from"@rango-dev/ui";import bt,{useEffect as vk,useState as cd}from"react";import{namespaces as gk}from"@rango-dev/wallets-shared";var Si={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Is(t){let e=t?gk[t]?.derivationPaths:null;return e?[...e,Si]:[]}i(Is,"getDerivationPaths");import{Button as hk,styled as As,Typography as yk}from"@rango-dev/ui";var ld=As("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ns=As(yk,{paddingLeft:"$10"}),Bs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},UP=As(hk,{minHeight:"$40"});var pd="0";function or(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=cd(null),[c,l]=cd(pd),p=a===Si.id,u=Is(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===Si.id&&Number.isNaN(Number(c))&&l(pd),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 vk(()=>{s(Is(o)[0]?.id||null)},[o]),bt.createElement(bt.Fragment,null,bt.createElement(Tk,{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:bt.createElement(Ck,{src:n,size:45})}),bt.createElement(ld,{className:"_derivation_path_inputs_container"},bt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},yn.t("Choose Derivation Path Template")),bt.createElement(kk,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Bs}}),bt.createElement(Sk,{size:20}),bt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},p?yn.t("Enter Path"):yn.t("Enter Index")),bt.createElement(wk,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Bs})),bt.createElement(mn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},yn.t("Confirm")))}i(or,"DerivationPath");import{i18n as Sn}from"@lingui/core";import{Image as Ek,MessageBox as Ls,WalletImageContainer as Ik,WalletState as Ak}from"@rango-dev/ui";import{useWallets as Nk}from"@rango-dev/wallets-react";import _o from"react";import{keyframes as bk,styled as Ws}from"@rango-dev/ui";var ZP=Ws("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),ud=Ws("div",{position:"relative"}),xk=bk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),dd=Ws("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${xk} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Ms(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a,getWalletInfo:s}=Nk();return Gn(s(n),a(n))===Ak.CONNECTED?_o.createElement(Ls,{type:"success",title:Sn.t("Wallet Connected"),description:Sn.t("Your wallet is connected, you can use it to swap.")}):o?_o.createElement(Ls,{type:"error",title:Sn.t("Failed to Connect"),description:o||Sn.t("Your wallet is not connected. Please try again.")}):_o.createElement(Ls,{type:"loading",title:Sn.t("Connecting to your wallet"),description:Sn.t("Click connect in your wallet popup."),icon:_o.createElement(ud,null,_o.createElement(Ik,null,_o.createElement(Ek,{src:r,size:45})),_o.createElement(dd,null))})}i(Ms,"ConnectStatus");function md(t,e){return t().status==="init"&&!!e}i(md,"isOnStatus");function nr(t){return t().status==="namespace"}i(nr,"isOnNamespace");function rr(t){return t().status==="derivationPath"}i(rr,"isOnDerivationPath");function Io(t){return t().status==="detached"}i(Io,"isOnDetached");var Mk=3e3,Pk=300;function ir(t){let e=Lk(),[o,n]=fd(!1),[r,a]=fd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=en(),g=i(w=>{u(t.wallet,w).then(k).catch(s)},"handleConfirmNamespaces"),m=i(()=>{S()},"handleDetachedConfirm"),y=i(w=>{if(!w)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,w).then(k).catch(s)},"handleDerivationPathConfirm"),S=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=i((w,I)=>{let A=w.status==="connected",b=["disconnected","disconnected-unhandled"].includes(w.status);A?(t.onConnect?.(),I||(e.current=setTimeout(S,Mk))):b&&S()},"afterConnected"),v=i(w=>{t.wallet?.needsDerivationPath&&u(t.wallet,[w])},"handleNavigateToDerivationPath");return Wk(()=>{if(t.wallet){C();let w=!1,I=!0;i(()=>{setTimeout(()=>{I=!1,w||n(!0)},Pk)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(b=>{["namespace","Detached","derivation-path"].includes(b.status)||(w=!0),k(b,I)}).catch(s)}},[t.wallet]),co.createElement(ne,{id:t.id,open:o,onClose:S,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},md(d,t.wallet)&&co.createElement(co.Fragment,null,co.createElement(Ms,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),co.createElement(Bk,{direction:"vertical",size:32})),nr(d)&&co.createElement(Rn,{onConfirm:g,value:d().namespace}),rr(d)&&co.createElement(or,{onConfirm:y,value:d().derivationPath}),Io(d)&&co.createElement(tr,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces,navigateToDerivationPath:v}))}i(ir,"StatefulConnectModal");import Va from"react";import _k,{Fragment as Dk}from"react";import{MemoryRouter as $k,useInRouterContext as Fk}from"react-router";function Ci({children:t}){let o=Fk()?Dk:$k;return _k.createElement(o,null,t)}i(Ci,"AppRouter");import{I18nManager as P0}from"@rango-dev/ui";import bp from"react";import Ue from"react";import{useRoutes as d0}from"react-router-dom";var D={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 Tn,useRef as Ei}from"react";import tt from"bignumber.js";import{create as Kd}from"zustand";import{subscribeWithSelector as jd}from"zustand/middleware";import{createContext as Ok,useContext as Uk}from"react";var gd=Ok({swapMode:"swap",isMultiMode:!1});function et(){let{swapMode:t,isMultiMode:e}=Uk(gd);return{swapMode:t,isMultiMode:e}}i(et,"useSwapMode");import{i18n as St}from"@lingui/core";import{getRelatedWalletOrNull as Qk,RouteEventType as lD}from"@rango-dev/queue-manager-rango-preset";import He from"bignumber.js";import{PendingSwapNetworkStatus as sr}from"rango-types";import{i18n as ze}from"@lingui/core";var re=i(()=>({genericServerError:ze.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:ze.t("Please reset your liquidity sources."),description:ze.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:ze.t("No Routes Found."),description:ze.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:ze.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:ze.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:ze.t("High Price Impact"),title:ze.t("Price impact is too high!"),description:ze.t("The price impact is significantly higher than the allowed amount."),confirmMessage:ze.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:ze.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:ze.t("USD Price Unknown"),title:ze.t("USD Price Unknown, Cannot calculate Price Impact."),description:ze.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:ze.t("Confirm USD Price Unknown")}}),"errorMessages");function hd(t){return t.type===0?t.diagnosisMessage??re().noResultError.title:t.type===1?t.diagnosisMessage??re().genericServerError:""}i(hd,"getQuoteErrorMessage");import{i18n as Ti}from"@lingui/core";var Do=i(()=>({connectWallet:Ti.t("Connect Wallet"),swap:Ti.t("Swap"),swapAnyway:Ti.t("Swap anyway"),ethWarning:Ti.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ps(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Ps,"getFeeLabel");var _s=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],yd=100,Sd=30,Cd=15,Td=60;var kd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],wd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as Hk}from"@rango-dev/queue-manager-rango-preset";import j_ from"bignumber.js";function bd(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(bd,"getRequiredBalanceOfWallet");function jt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(jt,"getPriceImpactLevel");function ki(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=Hk(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=Ao(a?a.toBlockchain:n.fromBlockchain,e),l=Ao(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(ki,"createRetryQuote");function Cn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=ar(o),s=yt(o);if(o&&a&&s){let p=Kt(a.toString(),s.toString());if(!!p&&Nd(a,p)){let d=vi(o?.swaps,n),f=jt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&Ld(e,o))return{type:4,usdValueChange:M(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:M(Kt(yt(e)??"1",yt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=bi(o.swaps),l=r>sn;if(Wd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Bd(o,r),minRequiredSlippage:c};return null}i(Cn,"generateQuoteWarnings");function xd(t){return![4].includes(t.type)}i(xd,"isQuoteWarningConfirmationRequired");function Kt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ds(t.toString(),e.toString());return n&&n<0?n:null}i(Kt,"getPriceImpact");var Ed=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"),Id=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"),Ad=i(t=>{let e=i((o,n)=>{let r=_s.indexOf(o.value),a=_s.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Nd(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return kd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new He(r)))}i(Nd,"hasHighValueLoss");function Md(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(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(Md,"hasLimitError");function Pd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new He(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new He(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 He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=St.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=St.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=St.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=St.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Pd,"getLimitErrorMessage");function _d(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Do().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Do().swap,action:"confirm-swap",disabled:!0}:s?{title:Do().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Do().ethWarning,action:"confirm-warning",disabled:!1}:{title:Do().swap,action:"confirm-swap",disabled:!1}:{title:Do().connectWallet,action:"connect-wallet",disabled:!1}}i(_d,"getSwapButtonState");function $s(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}i($s,"canComputePriceImpact");function Fs(t,e){let o=pe;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 He(r.amount).multipliedBy(a||0))}return o}i(Fs,"getUsdFeeOfStep");function vi(t,e){return t.reduce((o,n)=>o.plus(Fs(n,e)),pe)}i(vi,"getTotalFeeInUsd");function Os(t){let e=pe,o=new He(t.price||0);return e=e.plus(new He(t.amount).multipliedBy(o)),e}i(Os,"getUsdFee");function Dd(t){return t.reduce((e,o)=>e.plus(Os(o)),pe)}i(Dd,"getTotalFeesInUsd");function $d(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($d,"getFeesGroup");function Fd(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(Fd,"checkSlippageErrors");function Bd(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(Bd,"checkSlippageWarnings");function bi(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(bi,"getMinRequiredSlippage");function Wd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Wd,"hasProperSlippage");function Od(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,k)=>(C[k.chain]=k.address,C),{}),y=[];return r?.forEach(C=>{y.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:y,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(Od,"createQuoteRequestBody");function Ud(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Ud,"getWalletsForNewSwap");function ar(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(ar,"getUsdInputFrom");function yt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(yt,"getUsdOutputFrom");function Ds(t,e){return new He(e).div(new He(t)).minus(1).multipliedBy(yd).toNumber()}i(Ds,"getPercentageChange");function Ld(t,e){let o=ar(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=Ds(n.toString(),r.toString());return wd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Ld,"isOutputAmountChangedExcessively");function zd(t,e,o){let n=t.validationStatus,r=Wo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>bd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=M(new He(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=M(new He(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=St.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=St.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=St.t(" for input and network fee")),St.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:ft(s.asset.blockchain,o)}})})}i(zd,"generateBalanceWarnings");function lr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==sr.NetworkChanged}i(lr,"isNetworkStatusInWarningState");function Hd(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,"")),lr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?Qk(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case sr.WaitingForConnectingWallet:r=u?St.t("Connect {wallet}",{wallet:u}):r;break;case sr.WaitingForQueue:r=r||St.t("Waiting for other running tasks to be finished");break;case sr.WaitingForNetworkChange:r=r||St.t("Waiting for changing wallet network");break;case sr.NetworkChangeFailed:r=r||St.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(Hd,"getSwapMessages");function Qd(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(Qd,"getLastConvertedTokenInFailedSwap");function qd(t){return t.status==="failed"}i(qd,"shouldRetrySwap");function Gd(t,e,o,n,r,a){if(!n||t)return!0;let s=Wo({filter:"all",quote:n}),c=Wo({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?on(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Gd,"isConfirmSwapDisabled");function Vd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Vd,"isTokensIdentical");var xi=i((t,e)=>t?.usdPrice?new tt(e||pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Xd=i(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new tt(0),outputUsdValue:new tt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=pe,a=o.inputUsdValue;return qn(o.inputAmount)?(e&&(n=e?.outputAmount?new tt(e?.outputAmount):null,a=ar(e)??pe,r=yt(e)??pe),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new tt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new tt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new tt(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:xi(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 tt(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=hu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=du(e);ti(e)||(o=su(o),o=lu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new tt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:xi(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:xi(n??null,s),outputUsdValue:new tt(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?xi(e.toToken,e.outputAmount?.toString()||""):new tt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new tt(0),inputUsdValue:new tt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new tt(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"),Yd=Kd()(jd(Xd)),Zd=Kd()(jd(Xd)),qk=lo(Yd),Gk=lo(Zd);function z(){let{swapMode:t}=et();return lo(t==="refuel"?Zd:Yd)}i(z,"useQuoteStore");var Jd=i((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ke.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&&ke.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"),Rd=qk.subscribe(Jd),em=Gk.subscribe(Jd);function tm(){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,d=T().fetchStatus,f=T().blockchains(),{findToken:h}=T(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:y}=T(),S=u?.from?.tokens,C=u?.from?.blockchains,k=u?.to?.tokens,v=u?.to?.blockchains,w=Ei(void 0),I=Ei(void 0),A=Ei(void 0),b=Ei(void 0);Tn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Tn(()=>{if(d==="success"){r();let E=f.find(P=>P.name===u?.from?.blockchain),x=u?.from?.token,W=x&&h(x);(E||!E&&A.current)&&n(E??null),W?a({token:W,meta:{blockchains:f}}):!W&&w.current&&a({token:null}),A.current=u?.from?.blockchain,w.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),Tn(()=>{cs(s,S)&&a({token:null}),ps(l,C)&&n(null)},[S,C]),Tn(()=>{cs(c,k)&&a({token:null}),ps(p,v)&&o(null)},[k,v]),Tn(()=>{if(d==="success"){r();let E=f.find(P=>P.name===u?.to?.blockchain),x=u?.to?.token,W=x&&h(x);(E||!E&&b.current)&&o(E??null),W?e({token:W,meta:{blockchains:f}}):!W&&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,d]),Tn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),y(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(tm,"useSyncStoresWithConfig");import{useEffect as Hs,useRef as Vk}from"react";import{useInRouterContext as Kk,useLocation as jk,useSearchParams as Xk}from"react-router-dom";function Us(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Us,"convertTokenSearchParamToAsset");function zs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(zs,"tokenToSearchParam");function qs(){let t=jk(),[e,o]=Xk(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=z()(),h=T().fetchStatus,g=T().blockchains(),m=Kk(),{updateIframe:y,updateCampaignMode:S}=T(),C=T().isInCampaignMode(),k=Vk(),{findToken:v}=T(),w=i(()=>{let A={};for(let[B,Y]of e.entries())(B.startsWith("utm_")||B.startsWith("privy_"))&&(A[B]=Y);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),x=e.get("fromToken"),W=e.get("toBlockchain"),P=e.get("toToken"),U=e.get("autoConnect"),G=e.get("clientUrl"),K=e.get("liquiditySources"),R=e.get("blockchain");return{fromAmount:b,fromBlockchain:E,fromToken:x,toBlockchain:W,toToken:P,autoConnect:U,clientUrl:G,liquiditySources:K,extraQueryParams:A,blockchain:R}},"getUrlSearchParams"),I=i(A=>{for(let b in A)A[b]||delete A[b];o(A,{replace:!0})},"updateUrlSearchParams");Hs(()=>{let{autoConnect:A,clientUrl:b,extraQueryParams:E,blockchain:x}=w();m&&h==="success"&&I({fromBlockchain:n?.name,fromToken:zs(a),toBlockchain:r?.name,toToken:zs(s),fromAmount:c,autoConnect:A??void 0,clientUrl:b??void 0,blockchain:x??void 0,liquiditySources:C?k.current:void 0,...E})},[t.pathname,c,n,a,r,s,C,h]),Hs(()=>{if(!m)return;let A=w();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&f(A.fromAmount),h==="success"){let b=g.find(G=>G.name===A.fromBlockchain),E=A.fromToken&&b&&Us(A.fromToken,b),x=E?v(E):void 0,W=g.find(G=>G.name===A.toBlockchain),P=A.toToken&&W&&Us(A.toToken,W),U=P?v(P):void 0;b&&(l(b),x&&u({token:x,meta:{blockchains:g}})),W&&(p(W),U&&d({token:U,meta:{blockchains:g}}))}},[h]),Hs(()=>{let{clientUrl:A,liquiditySources:b}=w();y("clientUrl",A||void 0),S("liquiditySources",b?.split(",")??void 0)},[])}i(qs,"useSyncUrlAndStore");import{i18n as vn}from"@lingui/core";import{Alert as hv,Button as yv,darkTheme as Sv,Divider as Tl,DoneIcon as Cv,styled as Tv,TextField as kv,Typography as wv}from"@rango-dev/ui";import qe,{useState as vv}from"react";import{useNavigate as bv,useSearchParams as xv}from"react-router-dom";import{ChevronRightIcon as Yk,Divider as am,Image as Zk,Typography as sm}from"@rango-dev/ui";import xt from"react";import{darkTheme as om,styled as Gs}from"@rango-dev/ui";var nm=Gs("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${om} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${om} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),rm=Gs("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),im=Gs("div",{display:"flex"});function Vs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return xt.createElement(rm,null,xt.createElement(sm,{size:"large",variant:"label"},n),xt.createElement(am,{size:10}),xt.createElement(nm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},xt.createElement(im,null,r&&xt.createElement(xt.Fragment,null,xt.createElement(Zk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),xt.createElement(am,{size:4,direction:"horizontal"})),xt.createElement(sm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),xt.createElement(Yk,{size:12,color:"black"})))}i(Vs,"BlockchainSelectorButton");import{i18n as Ys}from"@lingui/core";import{Button as iw,Divider as dm,MessageBox as aw}from"@rango-dev/ui";import po,{useEffect as mm,useState as Zs}from"react";import{i18n as Ii}from"@lingui/core";import{Divider as $o,ExternalLinkIcon as ew,Image as tw,InfoIcon as ow,Tooltip as nw,Typography as pr}from"@rango-dev/ui";import de from"react";var lm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";import{Button as Jk,darkTheme as kn,styled as cr,Typography as Rk}from"@rango-dev/ui";var Ks=cr("a",{textDecoration:"none",color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${kn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${kn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),cm=cr("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${kn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"}}}),js=cr(Jk,{minHeight:"$40"}),pm=cr(Rk,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),um=cr("div",{display:"flex",justifyContent:"center",alignItems:"center"});var rw=9;function Xs(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=n.address?Yr({contractAddress:n.address,blockchainMeta:s}):void 0,l=i(()=>window.open(lm,"_blank"),"onClickLearnMore");return de.createElement(ne,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},de.createElement(cm,null,de.createElement(tw,{src:n.image===""?Jr:n.image,size:45,type:"circular"}),de.createElement($o,{size:4}),de.createElement(um,null,de.createElement(pm,{variant:"title",size:"medium"},n.symbol),n.symbol.length>rw&&de.createElement(nw,{content:n.symbol,container:N()},de.createElement(ow,{size:12,color:"gray"}))),de.createElement(pr,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),de.createElement($o,{size:4}),de.createElement(pr,{variant:"body",size:"medium"},c?de.createElement(Ks,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,de.createElement(ew,{size:12,color:"gray"})):de.createElement(Ks,null,n.address)),de.createElement($o,{size:4}),n.coinSource&&de.createElement(pr,{className:"_coin-source",variant:"body",size:"xsmall"},Ii.t("via")," ",de.createElement(pr,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),de.createElement($o,{size:"32"}),de.createElement(pr,{size:"medium",variant:"body",className:"_custom-token-description"},Ii.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."))),de.createElement($o,{size:40}),de.createElement($o,{size:10}),de.createElement(js,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ii.t("Import Anyway")),de.createElement($o,{size:10}),de.createElement(js,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ii.t("Learn More")))}i(Xs,"CustomTokenModal");function ur(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=T(),[d,f]=Zs(!1),[h,g]=Zs(!1),[m,y]=Zs(!1),S=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),k=i(()=>{y(!0),C()},"handleErrorModalButtonClick"),v=i(()=>{m&&n?.type==="network-error"&&(y(!1),S()),l()},"handleExit"),w=i(()=>{e&&(u(e),c())},"handleSubmit");return mm(()=>{n&&f(!0)},[n]),mm(()=>{o&&e&&g(!0)},[o,e]),po.createElement(po.Fragment,null,po.createElement(ne,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:v,container:N()},po.createElement(aw,{title:n?.title??"",type:"error",description:n?.message||Ys.t("Failed Network, Please retry.")},po.createElement(dm,{size:40}),po.createElement(dm,{size:10}),po.createElement(iw,{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"?Ys.t("Retry"):Ys.t("Add another custom token")))),o&&e&&po.createElement(Xs,{blockchain:o,token:e,onSubmitClick:w,onClose:()=>g(!1),open:h,onExit:p}))}i(ur,"ImportCustomToken");import{useManager as pv}from"@rango-dev/queue-manager-react";import{BottomLogo as uv,Divider as Km,Header as dv}from"@rango-dev/ui";import Be,{useEffect as $i,useLayoutEffect as mv,useRef as jm,useState as Xm}from"react";import{useRef as sw}from"react";function Ai(){return window.self!==window.top}i(Ai,"isAppLoadedIntoIframe");function Js(){let t=sw(null),{iframe:e}=T(),o=Ai()&&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(Js,"useIframe");import{useNavigate as lw}from"react-router-dom";function Qe(){let t=lw();return()=>t(-1)}i(Qe,"useNavigateBack");import{createTheme as il,darkTheme as kw,lightTheme as ww}from"@rango-dev/ui";import{useEffect as vw,useState as bw}from"react";import{theme as Cw,darkColors as Tw}from"@rango-dev/ui";import nl from"react";var Ni=16,Bi=255,fm=.11;function cw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(cw,"expandShortHexColor");function pw(t,e){return t.padStart(e,"0")}i(pw,"pad");function Rs(t){let e=Math.min(Math.max(Math.round(t),0),Bi);return pw(e.toString(Ni),2)}i(Rs,"intToHex");function uw(t){return`#${Rs(t.red)}${Rs(t.green)}${Rs(t.blue)}`}i(uw,"rgbToHex");function dw(t){let e=parseInt(t.slice(1,3),Ni),o=parseInt(t.slice(3,5),Ni),n=parseInt(t.slice(5,7),Ni);return{red:e,green:o,blue:n}}i(dw,"hexToRGB");function mw(t,e){let o=1-fm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(mw,"generateShade");function fw(t,e){let o=fm*e;return{red:t.red+(Bi-t.red)*o,green:t.green+(Bi-t.green)*o,blue:t.blue+(Bi-t.blue)*o}}i(fw,"generateTint");function gw(t){return gm(t,mw)}i(gw,"calculateShades");function hw(t){return gm(t,fw)}i(hw,"calculateTints");function gm(t,e){let o=dw(t),n=[];for(let r=1;r<9;r++)n.push(uw(e(o,r)));return n}i(gm,"calculateColors");function el(t,e,o){let a=hw(t).reverse().concat(t),s=gw(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(el,"createTintsAndShades");function tl(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)&&!fu(r)){let l=cw(a);Object.assign(n,el(l,r,s))}}return{...n,...e}}i(tl,"expandToGenerateThemeColors");var hm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),yw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=hm(o%52)+e;return hm(o%52)+e},"toAlphabeticName"),Sw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ol=i(t=>yw(Sw(5381,JSON.stringify(t))>>>0),"toHash");function rl(t){let e=Cw.colors,o={...e,...Tw},n,r;if(t?.light){let s={colors:tl(e,t.light)};n={id:`${ls}-light-${ol(s)}`,tokens:s}}if(t?.dark){let s={colors:tl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ls}-dark-${ol(s)}`,tokens:s}}return{light:n,dark:r}}i(rl,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>nl.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(nl.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(nl.cloneElement(e,{key:c}))}}),o}i(ym,"joinList");function Sm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Sm,"doesWindowPreferDarkColorScheme");function uo(t){let{colors:e,fontFamily:o=Yp,borderRadius:n=Iu,secondaryBorderRadius:r=Au}=t,[a,s]=bw(Sm()?"dark":"light"),{theme:c}=T(),{dark:l,light:p}=rl(e),u=il({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,ww.className],f=[u.className,kw.className];if(p){let g=il(p.id,p.tokens);d.push(g.className)}if(l){let g=il(l.id,l.tokens);f.push(g.className)}return vw(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return Sm()&&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(uo,"useTheme");var Ct=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 Cm}from"@lingui/core";import{Alert as xw,Button as Ew}from"@rango-dev/ui";import Tm from"react";function al(t){return Tm.createElement(xw,{action:Tm.createElement(Ew,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Cm.t("Activate this tab")),type:"warning",variant:"alarm",title:Cm.t("Another tab is open and handles transactions.")})}i(al,"ActivateTabAlert");import{i18n as sl}from"@lingui/core";import{Button as Iw,Divider as Aw,MessageBox as Nw}from"@rango-dev/ui";import Wi from"react";function ll(t){let{open:e,onClose:o,onConfirm:n}=t;return Wi.createElement(ne,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Wi.createElement(Nw,{title:sl.t("Activate current tab"),type:"warning",description:sl.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.")},Wi.createElement(Aw,{size:20}),Wi.createElement(Iw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},sl.t("Confirm"))))}i(ll,"ActivateTabModal");import{ChevronLeftIcon as Lw}from"@rango-dev/ui";import Am from"react";import{css as Bw,darkTheme as km,IconButton as Ww,styled as Fo}from"@rango-dev/ui";var Pt=Fo(Ww,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${km} &`]:{backgroundColor:"$neutral"}}}),wm=Fo("div",{position:"absolute",background:"$secondary500",[`.${km} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),mo=Fo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vm=Fo("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"}}}}),bm=Fo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xm=Fo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Em=Bw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Im=Fo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function cl(t){return Am.createElement(Pt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(Lw,{color:"black",size:16}))}i(cl,"BackButton");import{i18n as Mw}from"@lingui/core";import{Button as Pw,Typography as _w}from"@rango-dev/ui";import pl from"react";function ul(t){return pl.createElement(mo,null,pl.createElement(Pw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},pl.createElement(_w,{variant:"label",size:"medium",color:"error500"},Mw.t("Cancel"))))}i(ul,"CancelButton");import{i18n as Dw}from"@lingui/core";import{Image as $w,Tooltip as Fw,WalletIcon as Ow,WalletState as Nm}from"@rango-dev/ui";import Oo from"react";function dl(t){let{list:e}=vt(),o=e.filter(r=>r.state===Nm.CONNECTED||r.state===Nm.PARTIALLY_CONNECTED),n=o.length?Oo.createElement("div",{className:Em()},o.map(r=>Oo.createElement(Im,{key:r.title},Oo.createElement($w,{src:r.image,size:14})))):Dw.t("Connect Wallet");return Oo.createElement(Fw,{container:t.container,side:"bottom",content:n},Oo.createElement(Pt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Oo.createElement(wm,null),Oo.createElement(Ow,{size:18,color:"black"})))}i(dl,"WalletButton");import{i18n as Mi}from"@lingui/core";import{NotificationsIcon as tv,Popover as ov,SettingsIcon as nv,Tooltip as Pi,TransactionIcon as rv}from"@rango-dev/ui";import Me from"react";import{Notifications as Qw}from"@rango-dev/ui";import qw from"react";import{useNavigate as Gw}from"react-router-dom";import{create as Uw}from"zustand";import{persist as zw,subscribeWithSelector as Hw}from"zustand/middleware";var Ne=lo(Uw()(zw(Hw((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 ml(){let t=Gw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=T().blockchains(),{findToken:a}=T();return qw.createElement(Qw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Fp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${D.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(ml,"NotificationContent");import{useManager as Vw}from"@rango-dev/queue-manager-react";import{InProgressIcon as Kw}from"@rango-dev/ui";import Bm from"react";var jw=i(()=>{let{manager:t}=Vw();return Ct(t).map(({swap:o})=>o).find(o=>o.status==="running")?Bm.createElement(xm,{id:"widget-header-history-badge-container"},Bm.createElement(Kw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Wm=jw;import{EventSeverity as Xw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Yw}from"@rango-dev/ui";import Lm from"react";function Mm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Xw.WARNING);return o?Lm.createElement(vm,{isSever:n},Lm.createElement(Yw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Mm,"NotificationsBadge");import{RefreshProgressButton as Zw}from"@rango-dev/ui";import fl,{useEffect as Jw,useState as Pm}from"react";var Rw=1e3,_m=60,ev=100;function Li({onClick:t}){let[e,o]=Pm(0),[n,r]=Pm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Jw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===_m&&c()},Rw):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 fl.createElement(Pt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},fl.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},fl.createElement(Zw,{size:22,color:t?"black":"gray",progress:e/_m*ev})))}i(Li,"RefreshButton");function Uo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=T(),c=Re("notification",s)||r.includes("notifications");return Me.createElement(Me.Fragment,null,!r.includes("refresh")&&Me.createElement(Pi,{container:a||N(),side:"top",content:Mi.t("Refresh")},Me.createElement(Li,{onClick:e})),!c&&Me.createElement(ov,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Me.createElement(ml,null)},Me.createElement("div",null,Me.createElement(Pi,{container:N(),side:"top",content:Mi.t("Notifications")},Me.createElement(Pt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Me.createElement(tv,{size:18,color:"black"}),Me.createElement(Mm,null))))),!r.includes("settings")&&Me.createElement(Pi,{container:N(),side:"top",content:Mi.t("Settings")},Me.createElement(Pt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Me.createElement(nv,{size:18,color:"black"}))),!r.includes("history")&&Me.createElement(Pi,{container:N(),side:"top",content:Mi.t("History")},Me.createElement(Pt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Me.createElement(rv,{size:18,color:"black"}),Me.createElement(Wm,null))))}i(Uo,"HeaderButtons");import{i18n as gl}from"@lingui/core";import{Divider as $m,MessageBox as sv,RefreshIcon as lv}from"@rango-dev/ui";import wn from"react";import{Button as iv,styled as av}from"@rango-dev/ui";var Dm=av(iv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function hl(t){let{open:e,onClose:o}=t;return wn.createElement(ne,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},wn.createElement(sv,{title:gl.t("Something went wrong"),type:"error",description:gl.t("Something went wrong. Please refresh the app.")},wn.createElement($m,{size:30}),wn.createElement(Dm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},wn.createElement(lv,{size:20,color:"primary"}),wn.createElement($m,{size:4,direction:"horizontal"}),gl.t("Refresh"))))}i(hl,"RefreshModal");var Fm="700px",Om="425px",Um="550px",zm="640px",Hm="800px";function yl(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(yl,"onScrollContentAttachStatusToContainer");import{css as cv,styled as _i}from"@rango-dev/ui";var Di=cv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Qm=_i("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",maxHeight:Fm,variants:{height:{auto:{height:"auto"},fixed:{height:"100%",minHeight:Om,[`@media screen and (min-height: ${Hm})`]:{minHeight:Um}}},showBanner:{true:{overflow:"visible"}}}}),qm=_i("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Gm=_i("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"}}}),Vm=_i("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ae(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Js(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=T(),[u,d]=Xm(!1),{config:{features:f,theme:h}}=T(),{watermark:g}=oe(),m=g==="FULL",{activeTheme:y}=uo(h||{}),[S,C]=Xm(!1),k=Re("connectWalletButton",f),{isActiveTab:v,tabManagerInitiated:w,showActivateTabModal:I,setShowActivateTabModal:A,activateCurrentTab:b,setShowCompactTokenSelector:E}=oe(),x=Qe(),{manager:W}=pv(),U=Ct(W).map(({swap:Z})=>Z).some(Z=>Z.status==="running"),G=i(()=>b(Mo.forceClaim,U),"onActivateTab"),K=i(()=>{r.onWallet?.()},"onConnectWallet"),R=typeof r.hasBackButton>"u"||r.hasBackButton,B=jm(null),Y=jm(null);return $i(()=>{let Z=(p?.swapBoxBanner?.routes?.length??0)===0,le=!!p?.swapBoxBanner?.routes?.some(ve=>location.pathname.endsWith(ve));C(!!p?.swapBoxBanner&&(Z||le))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),$i(()=>(Ai()&&Y.current&&e(Y.current),()=>{o()}),[]),$i(()=>(B.current?.addEventListener("scroll",yl),()=>{B.current?.removeEventListener("scroll",yl)}),[]),$i(()=>{d(c==="failed")},[c]),mv(()=>{if(!Y.current)return;let Z=new ResizeObserver(le=>{for(let ve of le)ve.contentRect&&E(ve.contentRect.height<parseInt(zm))});return Z.observe(Y.current),()=>Z.disconnect()},[]),Be.createElement(Qm,{height:s,id:ht.SWAP_BOX_ID,className:`${y()} ${Di()}`,ref:Y,showBanner:S},Be.createElement(dv,{prefix:R?Be.createElement(cl,{onClick:()=>{x(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!k&&Be.createElement(dl,{container:N(),onClick:K,isConnected:!!l?.length}),r.onCancel&&Be.createElement(ul,{onClick:r.onCancel}))}),Be.createElement(qm,{ref:B},n),Be.createElement(ll,{open:I,onClose:()=>A(!1),onConfirm:G}),Be.createElement(Gm,null,Be.createElement("div",{className:"footer__content"},w&&!v&&Be.createElement("div",{className:"footer__alert"},Be.createElement(al,{onActivateTab:G}),Be.createElement(Km,{size:10})),a),Be.createElement(Km,{size:12}),Be.createElement("div",{className:`footer__logo ${m?"logo__show":"logo__hidden"}`},Be.createElement(uv,null))),S&&Be.createElement(Vm,null,p?.swapBoxBanner?.element),Be.createElement(hl,{open:u,onClose:()=>d(!1)}))}i(ae,"Layout");import{styled as fv}from"@rango-dev/ui";var Ym="$20 $20 $10 $20",Sl=fv("div",{padding:Ym,overflowY:"auto",flexGrow:1});import{styled as gv}from"@rango-dev/ui";var ce=gv("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 fo}from"@lingui/core";import{useState as Cl}from"react";function Zm(){let[t,e]=Cl(!1),[o,n]=Cl(null),[r,a]=Cl(null),{findToken:s}=T(),c=T().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:fo.t("Duplicate Token"),message:fo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:fo.t("Token Already Exists"),message:fo.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:fo.t("Token Not Found"),message:fo.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:fo.t("Network error"),message:fo.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(S=>S.address?.toLowerCase()===f.toLowerCase())){let S=p("duplicated");n(S);return}let g=await at().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let S=p("not-found",d);n(S);return}let m=g.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let S=p("token-exist");n(S);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(Zm,"useFetchCustomToken");var Ev=Tv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${Sv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Jm(){let t=bv(),[e]=xv(),o=Qe(),n=T().blockchains(),r=e.get("blockchain")||"",a=Ao(r,n),[s,c]=vv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=Zm(),h=!!a&&on(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return qe.createElement(ae,{header:{title:vn.t("Add Custom Token")}},qe.createElement(ce,null,qe.createElement(Ev,null,qe.createElement("div",null,qe.createElement(Vs,{onClick:()=>t(D.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")}),qe.createElement(Tl,{size:"24"}),qe.createElement(wv,{size:"large",variant:"label"},vn.t("Enter Address")),qe.createElement(Tl,{size:10}),qe.createElement(kv,{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&&qe.createElement(Cv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!h&&!!s&&qe.createElement(qe.Fragment,null,qe.createElement(Tl,{size:4}),qe.createElement(hv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),qe.createElement(yv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},vn.t("Import"))),qe.createElement(ur,{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(Jm,"AddCustomTokenPage");import{i18n as Rl}from"@lingui/core";import{useManager as ux}from"@rango-dev/queue-manager-react";import{Alert as dx,Button as mx,css as tc,Divider as ec,IconButton as zg,styled as fx,Typography as gx,WalletIcon as hx}from"@rango-dev/ui";import De,{useEffect as pa,useLayoutEffect as yx,useRef as Sx,useState as wr}from"react";import{useNavigate as Cx}from"react-router-dom";import{i18n as Ho}from"@lingui/core";import{Alert as Kv,BalanceErrors as jv,Button as kf,ChevronLeftIcon as Xv,Divider as El,MessageBox as Yv,Typography as Il}from"@rango-dev/ui";import ie,{useCallback as Zv,useEffect as wf,useMemo as Jv,useState as xn}from"react";import{useNavigate as Rv}from"react-router-dom";import{i18n as bl}from"@lingui/core";import{Alert as Wv,ChevronDownIcon as Lv,CloseIcon as Mv,Divider as af,IconButton as sf,PasteIcon as Pv,Typography as _v,WalletIcon as Dv}from"@rango-dev/ui";import Pe,{useEffect as $v,useRef as Fv}from"react";import zi,{useRef as Nv}from"react";import*as bn from"@radix-ui/react-collapsible";import{keyframes as Rm,styled as Fi}from"@rango-dev/ui";var kl=300,Iv=Rm({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Av=Rm({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),ef=Fi(bn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),wl=Fi(bn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Oi=Fi(bn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Iv} ${kl}ms ease-out`},false:{animation:`${Av} ${kl}ms ease-out`}}}}),Ui=Fi("div",{transition:`all ${kl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Hi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Nv(null);return zi.createElement(ef,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&zi.createElement(wl,{className:"collapsible_trigger",onClick:a},s),zi.createElement(Oi,{className:"collapsible_content",open:e},r),c==="bottom"&&zi.createElement(wl,{className:"collapsible_trigger",onClick:a},s))}i(Hi,"CustomCollapsible");import{darkTheme as tf,styled as vl,TextField as Bv}from"@rango-dev/ui";var of=vl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),nf=vl(Bv,{backgroundColor:"$neutral100"}),rf=vl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${tf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${tf} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function lf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=z()(),{config:s}=T(),c=T().blockchains(),l=$p(e.name,c),p=Fv(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!on(e,r),g=i(()=>{a("")},"handleClear"),m=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),y=i(()=>r?Pe.createElement(sf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Pe.createElement(Mv,{size:12,color:"gray"})):d?null:Pe.createElement(sf,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},Pe.createElement(Pv,{size:16})),"renderSuffix");return $v(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Pe.createElement(of,null,Pe.createElement(Hi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Pe.createElement(rf,{id:"widget-custom-destination-collapsible-btn"},Pe.createElement("div",{className:"button__content"},Pe.createElement(Dv,{size:18,color:"info"}),Pe.createElement(af,{size:4,direction:"horizontal"}),Pe.createElement(_v,{variant:"label",size:"medium",color:n?"$neutral600":void 0},bl.t("Send to a different address"))),Pe.createElement(Ui,{orientation:n?"up":"down"},Pe.createElement(Lv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Pe.createElement(nf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:bl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:y(),onChange:S=>{let C=S.target.value;a(C)}})),h&&Pe.createElement(Pe.Fragment,null,Pe.createElement(af,{size:4}),Pe.createElement(Wv,{variant:"alarm",type:"error",title:bl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(lf,"CustomDestination");import{css as Ov,IconButton as Uv,SelectableWalletButton as zv,styled as go}from"@rango-dev/ui";var cf=go("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),pf=go("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),uf=go(zv,{justifyContent:"center"}),df=go("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),mf=go(Uv,{position:"absolute",left:"$20"}),ff=go("div",{paddingTop:"$20"}),gf=Ov({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),hf=go("div",{display:"flex"}),yf=go("div",{overflow:"visible",width:"100%"});import{i18n as Sf}from"@lingui/core";import{warn as Hv}from"@rango-dev/logging-core";import{makeInfo as Qv,SelectableWallet as qv,Typography as Cf,WalletState as dr}from"@rango-dev/ui";import zo,{useEffect as Gv,useState as Tf}from"react";var Vv=7;function xl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{connectedWallets:l}=T(),[p,u]=Tf(),{list:d}=vt({chain:e}),[f,h]=Tf(d),g=d.length,m=a&&g-a>0;return Gv(()=>{h(y=>{let S=d.findIndex(C=>n(C.type,e));return m&&S>1?[d[S]].concat(d.filter((C,k)=>k!==S)):y.map(C=>d.find(k=>k.type===C.type)??C)})},[JSON.stringify(d)]),zo.createElement(zo.Fragment,null,f.slice(0,a).map(y=>{let S=ku({connectedWallets:l,walletType:y.type,chain:e}),C=y.state===dr.CONNECTED||y.state===dr.PARTIALLY_CONNECTED,k=S?so(S,Vv):"",v=C&&!!y.needsNamespace&&!k,w=i(async()=>{y.state===dr.DISCONNECTED||v?u(y):r({walletType:y.type,chain:e,address:S??""})},"onSelectableWalletClick"),I=Qv(y.state),A=i(()=>v?Sf.t("Chain not connected"):k||I.description,"getWalletDescription"),b=i(()=>y.state===dr.CONNECTED||y.state===dr.PARTIALLY_CONNECTED?v?"neutral600":"neutral700":I.color,"getWalletDescriptionColor");return zo.createElement(qv,{key:y.type,id:"widget-wallets-list-selectable-wallet-btn",description:A(),descriptionColor:b(),onClick:w,selected:n(y.type,e),disabled:!c,...y})}),zo.createElement(ir,{id:"widget-wallets-list-stateful-connect-modal",wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{u(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):Hv(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),m&&zo.createElement(uf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},zo.createElement(Cf,{variant:"label",size:"medium"},Sf.t("Show more wallets"),zo.createElement(Cf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",g-(a??0)))))}i(xl,"WalletList");var eb=2;function vf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Rv(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=z()(),{config:g,connectedWallets:m,setWalletsAsSelected:y}=T(),[S,C]=xn(""),[k,v]=xn([]),[w,I]=xn(""),[A,b]=xn(!!f),E=Jv(()=>Wo({filter:"all",quote:l}),[l]),x=Wo({filter:"required",quote:l}),W=c.find(F=>F.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),P=i(F=>x.includes(F),"isWalletRequiredFor"),U=Zv(()=>m.filter(F=>F.selected&&E.includes(F.chain)),[m,E]),[G,K]=xn(U()),[R,B]=xn([]),Y=i((F,O)=>B(X=>X.concat({blockchain:F,walletType:O})),"addNextSelectedWallets"),Z=k.length>0,le=i((F,O)=>!!G.find(X=>X.walletType===F&&X.chain===O&&X.selected&&(P(O)||!P(O)&&!f)),"isSelected"),ve=i((F,O,X)=>{let ee=!1;return F.map(j=>{if(j.chain===O){let Q=j.selected;return!ee&&X?(ee=!0,Q=!0):X||(Q=!1),{...j,selected:Q}}return j})},"updateSelectableWallets"),Ht=i(F=>{b(F),F?P(W?.name??"")||K(O=>ve(O,W?.name||"",!1)):(h(""),K(O=>ve(O,W?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),be=i(F=>{if(S&&C(""),le(F.walletType,F.chain))return;let X=m.find(ee=>ee.walletType===F.walletType&&ee.chain===F.chain);X&&(n(),F.chain===W?.name&&A&&!P(W.name)&&(b(!1),h(null)),K(ee=>ee.filter(j=>j.chain!==F.chain).concat({...X,selected:!0})))},"onChange"),dt=i(()=>{let F=G.filter(O=>O.selected);y(F),p(F),d(!0),o()},"onConfirmBalance"),kt=i(async()=>{v([]),I("");let F=await r?.({selectedWallets:G.filter(X=>X.selected),customDestination:f}),O=F.warnings;O?.balance?.messages&&v(O.balance.messages),F.error&&I(hd(F.error)),!F.error&&!O?.balance?.messages.length?dt():v(O?.balance?.messages??[])},"onConfirmWallets");wf(()=>{K(F=>{let O=[];return F.forEach(X=>{!m.some(j=>j.chain===X.chain&&j.walletType===X.walletType&&j.address===X.address)||O.push(X)}),O=O.concat(m.filter(X=>!!!O.find(j=>j.chain===X.chain)&&X.selected&&E.includes(X.chain))),O})},[m,E]),wf(()=>{let F=[];R.length>0&&(R.forEach(O=>{let X=m.find(ee=>ee.chain===O.blockchain&&ee.walletType===O.walletType);X?be(X):F.push(O)}),B(F))},[m,R]);let wt=document.getElementById(ht.SWAP_BOX_ID);return ie.createElement(ne,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!S,container:wt,...!S&&{styles:{container:{height:"100%"}},footer:ie.createElement(hf,null,ie.createElement(kf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Gd(a,A,f,l,G,W),onClick:kt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Ho.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:ie.createElement(df,null,ie.createElement(mf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ie.createElement(Xv,{size:16})),ie.createElement(Il,{variant:"headline",size:"small"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:ft(S,c)}})))},anchor:"center"},ie.createElement(ne,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:Z,onClose:v.bind(null,[]),container:wt},ie.createElement(Yv,{title:Ho.t("Insufficient account balance"),type:"error",description:ie.createElement(jv,{messages:k??[]})},ie.createElement(kf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:dt},Ho.t("Proceed anyway")))),S&&ie.createElement(ff,null,ie.createElement("div",{className:gf()},ie.createElement(xl,{chain:S,quoteChains:E,isSelected:le,selectWallet:be,onShowMore:()=>C(S),onConnect:F=>{Y(S,F)}}))),!S&&ie.createElement(ie.Fragment,null,w&&ie.createElement(ie.Fragment,null,ie.createElement(Kv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Ho.t(w)}),ie.createElement(El,{size:12})),ie.createElement(yf,null,E.map((F,O)=>{let X=c.find(Ve=>Ve.name===F),ee=`wallet-${O}`,j=O===E.length-1,Q=j&&W&&g?.customDestination!==!1;return ie.createElement("div",{key:ee},ie.createElement(cf,null,ie.createElement(Il,{variant:"title",size:"xmedium"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),ie.createElement(Il,{variant:"label",color:"$neutral700",size:"medium"},Ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),ie.createElement(El,{size:24}),ie.createElement(pf,null,ie.createElement(xl,{chain:F,quoteChains:E,isSelected:le,selectWallet:be,limit:eb,onShowMore:()=>C(X?.name??""),onConnect:Ve=>{Y(F,Ve)}})),!j&&ie.createElement(El,{size:32}),Q&&ie.createElement(lf,{blockchain:W,open:A,handleOpenChange:Ht}))}))))}i(vf,"ConfirmWalletsModal");import{i18n as Eb}from"@lingui/core";import{Alert as Ib,Button as Ab,Divider as Qf,InfoIcon as Nb}from"@rango-dev/ui";import Fe from"react";import{Alert as nb,Button as rb,Divider as Bl,NoRouteIcon as ib,RefreshIcon as ab,Typography as Bf}from"@rango-dev/ui";import st from"react";import{i18n as bf}from"@lingui/core";var tb=24,ob=60;function xf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:re().genericServerError,action:{onClick:n,title:bf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:re().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:bf.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(xf,"makeInfo");var Al=(o=>(o[o.small=tb]="small",o[o.large=ob]="large",o))(Al||{}),Nl=(o=>(o.small="small",o.large="medium",o))(Nl||{});import{styled as Qi}from"@rango-dev/ui";var Ef=Qi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),If=Qi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Af=Qi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Nf=Qi("div",{padding:"$6 $0"});function mr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=T().getDisabledLiquiditySources(),s=T().toggleAllLiquiditySources,c=T().swappers(),l=xf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),st.createElement(Ef,{id:"widget-no-result-container"},st.createElement(ib,{size:Al[n],color:"gray"}),st.createElement(Bl,{size:4}),st.createElement(Bf,{variant:"title",size:Nl[n]},re().noResultError.title),n==="large"&&st.createElement(Bl,{size:4}),!!l.description&&st.createElement(If,{size:n},st.createElement(Bf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),st.createElement(Bl,{size:n==="large"?"24":"4"}),!!l.alert&&st.createElement(Af,{size:n},st.createElement(nb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&st.createElement(rb,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:st.createElement(Nf,null,st.createElement(ab,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(mr,"NoResult");import{i18n as fr}from"@lingui/core";import{Button as fb,Divider as gb,MessageBox as hb,Typography as yb,WarningIcon as Sb}from"@rango-dev/ui";import Xt from"react";import{InfoIcon as pb,Tooltip as ub,Typography as db}from"@rango-dev/ui";import En from"react";import{Button as sb,darkTheme as lb,styled as Qo,Typography as cb}from"@rango-dev/ui";var Wf=Qo("div",{width:"100%"}),Wl=Qo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Lf=Qo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${lb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Mf=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),Pf=Qo(cb,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),_f=Qo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Df=Qo(sb,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var mb=35;function $f(t){let{title:e,value:o,valueColor:n}=t,r=N();return En.createElement(Lf,null,En.createElement(db,{size:"medium",variant:"label",className:"_title"},e),En.createElement(Mf,null,En.createElement(Pf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>mb&&En.createElement(ub,{content:o,container:r},En.createElement(pb,{size:12,color:"gray"}))))}i($f,"QuoteErrorsModalItem");function Ff(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:fr.t("Swapping"),value:M(r.inputUsdValue)},{title:fr.t("Gas cost"),value:M(r.totalFee,2,2)},{title:fr.t("Receiving"),value:M(r.outputUsdValue)},{title:fr.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Xt.createElement(ne,{id:"widget-high-value-loss-warning-modal",footer:Xt.createElement(fb,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xt.createElement(Sb,null),fullWidth:!0,disabled:a,onClick:n},re().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Xt.createElement(hb,{type:s,title:re().highValueLossError.impactTitle,description:re().highValueLossError.description}),Xt.createElement(Wl,null,Xt.createElement(gb,{size:"4"}),Xt.createElement(yb,{size:"small",variant:"title"},fr.t("Details")),Xt.createElement(Wl,null,c.map((l,p)=>Xt.createElement($f,{key:p,...l})))))}i(Ff,"HighValueLossWarningModal");import{i18n as In}from"@lingui/core";function Of(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=In.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=In.t("Increase")),o;if(t){switch(t.type){case 0:{jt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=re().highValueLossError.title;break}case 4:{o.title=In.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=In.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=In.t("Increase");break}case 3:{o.title=In.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Of,"makeAlerts");function Uf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(Uf,"getRequiredSlippage");import{i18n as An}from"@lingui/core";import{Button as Cb,Divider as Ll,MessageBox as Tb,WarningIcon as kb}from"@rango-dev/ui";import So from"react";import{useNavigate as wb}from"react-router-dom";function zf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=wb();return So.createElement(ne,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},So.createElement(Tb,{type:"warning",title:r.type===3?An.t("High slippage"):An.t("Low slippage"),description:r.type===3?An.t("Caution, your slippage is high. Your trade may be front run."):An.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},So.createElement(Ll,{size:18}),So.createElement(Ll,{size:32}),So.createElement(Df,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},So.createElement(kb,{color:"white",size:16}),An.t("Swap anyway")),So.createElement(Ll,{size:10}),So.createElement(Cb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+D.settings)},An.t("Change Slippage"))))}i(zf,"SlippageWarningModal");import{Button as vb,MessageBox as bb,WarningIcon as xb}from"@rango-dev/ui";import qi from"react";function Hf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return qi.createElement(ne,{id:"widget-unknown-price-warning-modal",footer:qi.createElement(vb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:qi.createElement(xb,null),fullWidth:!0,disabled:r,onClick:n},re().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},qi.createElement(bb,{type:"warning",title:re().unknownPriceError.impactTitle,description:re().unknownPriceError.description}))}i(Hf,"UnknownPriceWarningModal");function gr(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=Of(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let y=!!m&&!s,S=i(C=>{if(C==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=Uf(e,k);f?.(v)}else C==="change-settings"&&d()},"onclickActionButton");return Fe.createElement(Fe.Fragment,null,g&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Qf,{size:10}),Fe.createElement(mr,{skipAlerts:s,error:o,fetch:c})),y&&Fe.createElement(Wf,null,Fe.createElement(Qf,{size:10}),Fe.createElement(Ib,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Fe.createElement(_f,{onClick:l},Fe.createElement(Nb,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Fe.createElement(Ab,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>S(m.action)},m.actionButtonTitle||Eb.t("Change"))}})),e&&Fe.createElement(Fe.Fragment,null,e.type===0&&Fe.createElement(Ff,{...h,warning:e}),(e.type===3||e.type===2)&&Fe.createElement(zf,{...h,warning:e}),e.type===1&&Fe.createElement(Hf,{...h,warning:e})))}i(gr,"QuoteWarningsAndErrors");import rx from"bignumber.js";import aa from"react";import{i18n as qo}from"@lingui/core";import{Alert as Vb,CampaignQuoteTag as Kb,Divider as Bn,FullExpandedQuote as jb,InfoIcon as Ql,NumericTooltip as ql,QuoteTag as Xb,StepDetails as Yb,TokenAmount as Zb,Typography as Wn,useIsTruncated as Gl}from"@rango-dev/ui";import Vl from"bignumber.js";import $,{useRef as na,useState as Jb}from"react";import{styled as Ml}from"@rango-dev/ui";var Pl=Ml("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),qf=Ml("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),Gf=Ml("div",{width:"100%",display:"flex"});import*as Gi from"@radix-ui/react-collapsible";import{Button as Bb,css as Vi,darkTheme as _e,Image as Vf,styled as Ge,Typography as _l}from"@rango-dev/ui";var Wb=300,Kf=Ge(Gi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${_e} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),jf=Vi({padding:"$10 $15"}),Xf=Ge(Bb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${_e} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${_e} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${_e} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Yf=Ge("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${_e} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${_e} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${_e} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${_e} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${_e} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${_e} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${_e} &`]:{backgroundColor:"$neutral400"}}}}]}),Zf=Vi({width:"100%",padding:"$15 $15 $10 $15"}),Jf=Vi({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Nn=Vi({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Rf=Ge(Gi.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:{[`& ${Vf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Vf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${_e} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),eg=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),tg=Ge(Oi,{width:"100%",background:"inherit"}),Dl=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Wb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),PH=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),og=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${_e} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),ng=Ge("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),$l=Ge(_l,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),Fl=Ge(_l,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),Ol=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),rg=Ge("div",{display:"flex"}),Ki=Ge("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${_e} &`]:{borderTopColor:"$neutral800"}}),ig=Ge(_l,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as _t}from"@lingui/core";import{ChevronDownIcon as Mb,CloseIcon as Pb,Divider as Yi,IconButton as _b,NumericTooltip as Db,QuoteCost as $b,Typography as Et}from"@rango-dev/ui";import J,{useState as cg}from"react";import{css as Lb,styled as ji}from"@rango-dev/ui";var Xi=ji("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Ul=ji("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),ag=ji("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),sg=ji("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),lg=Lb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Fb=i(t=>t.fee.isZero()?null:J.createElement(Xi,null,J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(Et,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function zl(t){let[e,o]=cg(!1),[n,r]=cg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?Bo():N(),m=$d(h),y=M(c,2,2);return J.createElement(J.Fragment,null,J.createElement($b,{onClickFee:d?S=>{S.stopPropagation(),o(!e)}:void 0,fee:y,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?_t.t("View more info"):void 0,tooltipContainer:g}),J.createElement(ne,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:J.createElement(sg,{style:{textAlign:f?"left":"center"}},J.createElement(Et,{variant:"title",size:"medium"},_t.t("Gas & Fee Explanation")),J.createElement(_b,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},J.createElement(Pb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(ag,null,J.createElement(Et,{variant:"title",size:"small"},_t.t("Details")),J.createElement(Yi,{size:10}),Object.entries(m.payable).flatMap(([S,C])=>C.map((k,v)=>{let w=`payable-fee-${v}`,I=Os(k);return J.createElement(Xi,{key:w},J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Ps(S,_t.t)),J.createElement(Db,{content:k.amount,container:g},J.createElement(Et,{variant:"label",size:"medium"},M(k.amount,2,2),k.asset.symbol," ($",M(I,4,4),")")))})),J.createElement(Xi,{className:"total_payable_fee"},J.createElement(Et,{variant:"label",size:"medium"},_t.t("Total Payable Fee")),J.createElement(Et,{variant:"label",size:"medium"},"$",M(c,4,4))),J.createElement(Ul,null),!!Object.keys(m.nonePayable).length&&J.createElement(Hi,{triggerAnchor:"bottom",onClickTrigger:()=>r(S=>!S),trigger:J.createElement("div",{className:lg()},J.createElement(Et,{size:"small",variant:"body",color:"neutral700"},n?_t.t("Hide non-payable fees"):_t.t("Show non-payable fees")),J.createElement(Yi,{size:4,direction:"horizontal"}),J.createElement(Ui,{orientation:n?"up":"down"},J.createElement(Mb,{size:12,color:"gray"}))),open:n},J.createElement(Et,{size:"small",variant:"title"},_t.t("Description")),J.createElement(Yi,{size:4}),J.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.`)),J.createElement(Yi,{size:10}),Object.entries(m.nonePayable).map(([S,C],k)=>{let v=Dd(C),w=Ps(S,_t.t),I=`non-payable-fee-${k}`;return J.createElement(Fb,{key:I,fee:v,label:w})}),J.createElement(Ul,null)))))}i(zl,"QuoteCostDetails");import{i18n as dg}from"@lingui/core";import{TokenAmount as mg}from"@rango-dev/ui";import Zi from"react";import{css as Ob,styled as Ub}from"@rango-dev/ui";var pg=Ub("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),ug=Ob({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function hr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Zi.createElement(pg,null,Zi.createElement(mg,{direction:"horizontal",label:dg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Zi.createElement("div",{className:ug()}),Zi.createElement(mg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:dg.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(hr,"QuoteSummary");import{i18n as Sg}from"@lingui/core";import{ChevronDownIcon as Qb,ChevronRightIcon as qb,Divider as Hl,Image as Gb,Tooltip as oa,Typography as Ri}from"@rango-dev/ui";import H from"react";import{useLayoutEffect as zb,useState as yr}from"react";var fg=480,gg=768,hg=1024,yg=1200,Hb=i(()=>{let[t,e]=yr(!1),[o,n]=yr(!1),[r,a]=yr(!1),[s,c]=yr(!1),[l,p]=yr(!1),u=i(()=>{e(window.innerWidth<=fg),n(window.innerWidth>fg&&window.innerWidth<=gg),a(window.innerWidth>gg&&window.innerWidth<=hg),c(window.innerWidth>hg&&window.innerWidth<=yg),p(window.innerWidth>yg)},"handleResize");return zb(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),Ji=Hb;var ea=4,ta=6,Sr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return H.createElement(oa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},H.createElement(eg,{className:n,state:a},H.createElement(Gb,{src:o,size:16})))},"ImageComponent");function Cg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=Ed(r),{isTablet:d,isMobile:f}=Ji();return H.createElement(Rf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},H.createElement("div",{className:Nn()},H.createElement(Ri,{variant:"body",size:"xsmall"},Sg.t("Via:")),H.createElement(Hl,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,y=H.createElement(Dl,null,H.createElement(qb,{size:12,color:"black"}));return f||d?H.createElement(H.Fragment,{key:m},H.createElement(Sr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,y)):H.createElement(H.Fragment,{key:m},p<=ea||p>ea&&g<ea-1?H.createElement(H.Fragment,null,H.createElement(Sr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,y)):g===ea-1&&H.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:Nn()},y,r.map((S,C)=>{let k=`image-${C}`;return C>=g&&H.createElement(H.Fragment,{key:k},H.createElement(Sr,{content:S.swapper.displayName,src:S.swapper.image??"",state:S.state,open:!1}),C!==p-1&&H.createElement(H.Fragment,null,y))}))},H.createElement(Ol,{state:r.find((S,C)=>C>=g&&(S.state==="error"||S.state==="warning"))?.state},H.createElement(Ri,{size:"xsmall",variant:"body"},"+",p-g))))})),H.createElement("div",{className:Nn()},H.createElement("div",{className:"blockchains_section"},H.createElement("div",{className:Nn()},H.createElement(Ri,{variant:"body",size:"xsmall"},Sg.t("Chains:")),H.createElement(Hl,{direction:"horizontal",size:4}),u.map((h,g)=>H.createElement(H.Fragment,{key:h.displayName},u.length<=ta||u.length>ta&&g<ta-1?H.createElement(oa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},H.createElement(Sr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ta-1&&H.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:Nn()},u.map((m,y)=>y>=g&&H.createElement(Sr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:y>g?"blockchainImage":"",container:c})))},H.createElement(Ol,{className:"blockchainImage"},H.createElement(Ri,{size:"xsmall",variant:"body"},"+",u.length-g))))),H.createElement(Hl,{direction:"horizontal",size:32}))),H.createElement(Dl,{orientation:a?"up":"down"},H.createElement(Qb,{size:12,color:"black"}))))}i(Cg,"QuoteTrigger");function Kl(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=T().blockchains(),{findToken:g}=T(),m=T().swappers(),{customSlippage:y,slippage:S}=T(),C=y||S,[k,v]=Jb(t.expanded),w=na(null),I=M(n.value,6,6),A=n.usdValue?M(n.usdValue,4,4):"",{config:{__UNSTABLE_OR_INTERNAL__:b}}=T(),E=Kt(o.usdValue,n.usdValue??null),x=M(E,2,2),W=jt(E??0),P=i((Q,Ve)=>Q.map((q,ye)=>{let Je,mt=r?.type===3&&r.swap.swapperId===q.swapperId,ao=r?.type===4&&!!r.recommendedSlippages?.[ye],On=a?.type===2&&!!a.recommendedSlippages?.[ye],Eo=mt||ao,jr=On;Eo?Je="error":jr&&(Je="warning");let Ro=Eo?qo.t("Slippage Error"):qo.t("Slippage Warning");return mt&&(Ro=qo.t("Bridge Limit Error")),{swapper:{displayName:zn(q.swapperId,m)??"",image:q.swapperLogo},from:{token:{displayName:q.from.symbol,image:q.from.logo},chain:{displayName:ft(q.from.blockchain,h)??"",image:q.from.blockchainLogo},price:{value:ye===0&&!Ve?M(o.value,6,6):M(q.fromAmount,6,6),usdValue:M((q.from.usdPrice??0)*parseFloat(q.fromAmount),4,4),realValue:ye===0?o.value:q.fromAmount,realUsdValue:new Vl(q.from.usdPrice??0).multipliedBy(q.fromAmount).toString()}},to:{token:{displayName:q.to.symbol,image:q.to.logo},chain:{displayName:ft(q.to.blockchain,h)||"",image:q.to.blockchainLogo},price:{value:M(q.toAmount,6,6),usdValue:M((q.to.usdPrice??0)*parseFloat(q.toAmount),4,4),realValue:q.toAmount,realUsdValue:new Vl(q.to.usdPrice??0).multipliedBy(q.toAmount).toString()}},state:Je,alerts:Eo||jr?$.createElement(qf,{dense:d},$.createElement(Vb,{variant:"alarm",type:Eo?"error":"warning",title:Ro,id:"widget-quote-footer-step-alarm-alert",footer:$.createElement(Gf,null,mt&&$.createElement("div",null,$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(Bn,{direction:"vertical",size:2}),$.createElement(Wn,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},qo.t({id:"Yours: {amount} {symbol}",values:{amount:M(q.fromAmount,6,6),symbol:q?.from.symbol}}))),(ao||On)&&!mt&&$.createElement("div",null,$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[ye]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[ye]}}})),$.createElement(Bn,{direction:"vertical",size:2}),$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Qn(q.estimatedTimeInSeconds),fee:M(Fs(q,g),2,2),internalSwaps:q.internalSwaps?P(q.internalSwaps):void 0}}),"getQuoteSteps"),U=P(e?.swaps??[]),G=U.length,K=f||N(),R=Ad(t.quote.tags||[]),B=!!u,Y=oi(e?.swaps),Z=Qn(Y),le=vi(e?.swaps??[],g),ve=M(le,2,2),Ht=le.gte(new Vl(Sd)),be=Y/Td>=Cd,dt=na(null),kt=Gl(o.value,dt),wt=na(null),F=Gl(n.value,wt),O=na(null),X=Gl(A,O),ee=U[G-1],j=U[0];return!j||!ee?null:d?$.createElement(jb,{selected:c,fee:ve,time:Z,tooltipContainer:Bo(),steps:U,tags:R,campaignTag:b?.campaignTag,id:"widget-quote-full-expanded-quote-container",quoteCost:$.createElement(zl,{quote:e,fullExpandedMode:!0,time:Z,fee:le,feeWarning:Ht,timeWarning:be,showModalFee:p,steps:G}),percentageChange:x,warningLevel:W,outputPrice:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue}}):$.createElement(Yf,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:Zf()},!l&&R.length?$.createElement($.Fragment,null,$.createElement(rg,null,R.map((Q,Ve)=>{let q=`${Q.value}_${Ve}`;return $.createElement($.Fragment,{key:q},Q.value=="CAMPAIGN"&&b?.campaignTag?$.createElement(Kb,{routeTag:Q,...b.campaignTag}):$.createElement(Xb,{label:Q.label,value:Q.value}),$.createElement(Bn,{size:4,direction:"horizontal"}))})),$.createElement(Ki,null),!B&&$.createElement(Bn,{size:4})):null,$.createElement("div",{id:"portal-root",className:Jf()},$.createElement(zl,{quote:e,time:Z,fee:le,feeWarning:Ht,timeWarning:be,showModalFee:p,steps:G}),B&&$.createElement(Xf,{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"}},$.createElement(Wn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},qo.t("See All Routes")))),s==="basic"&&$.createElement(ng,null,$.createElement(Fl,{ref:dt,size:"small",variant:"body"},o.value),kt&&$.createElement(ql,{content:o.value,container:K,open:o.value?void 0:!1},$.createElement(Ql,{size:12,color:"gray"})),$.createElement($l,{size:"small",variant:"body"},U[0]?.from.token.displayName),$.createElement(Wn,{size:"small",variant:"body"},"="),$.createElement(Fl,{ref:wt,size:"small",variant:"body"},n.value),F&&$.createElement(ql,{content:n.value,container:K,open:n.value?void 0:!1},$.createElement(Ql,{size:12,color:"gray"})),$.createElement($l,{size:"small",variant:"body"},ee?.to.token.displayName),$.createElement(Bn,{size:2,direction:"horizontal"}),$.createElement(ig,{ref:O,color:"$neutral600",size:"xsmall",variant:"body"},`($${A})`),X&&$.createElement(ql,{content:n.usdValue,container:K},$.createElement(Ql,{size:12,color:"gray"}))),s==="list-item"&&$.createElement(Zb,{id:"widget-quote-token-amount-container",tooltipContainer:K,type:"output",direction:"vertical",price:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:ee.to.token.displayName,image:ee.to.token.image},chain:{image:ee.to.chain.image},percentageChange:x,warningLevel:W}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(hr,{from:j.from,to:ee.to,percentageChange:x,warningLevel:W}),$.createElement(Bn,{size:4}))),$.createElement(Kf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(Cg,{type:s,quoteRef:w,selected:c,setExpanded:v,container:K,expanded:k,steps:U}),$.createElement(tg,{open:k},$.createElement(og,null),$.createElement("div",{className:jf()},U.map((Q,Ve)=>{let q=`item-${Ve}`;return $.createElement(Yb,{type:"quote-details",className:"widget-quote-step-details-container",key:q,tooltipContainer:K,step:Q,hasSeparator:Ve!==U.length-1,state:Q.state})})))))}i(Kl,"Quote");import{Divider as ox,Skeleton as nx}from"@rango-dev/ui";import Rt from"react";import{darkTheme as Rb,styled as ra}from"@rango-dev/ui";var Tg=ra("div",{$$color:"$colors$neutral100",[`.${Rb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),kg=ra("div",{paddingTop:"$2"}),wg=ra("div",{paddingLeft:"$8"}),vg=ra("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Mg,Divider as It,Skeleton as lt}from"@rango-dev/ui";import V from"react";import{css as ex,styled as Jt}from"@rango-dev/ui";var jl=Jt("div",{display:"flex"}),bg=Jt("div",{padding:"$10 $0 $20"}),xg=Jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Eg=Jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ig=Jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Ag=Jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Ng=Jt("div",{width:"65%",display:"flex",justifyContent:"start"}),Bg=Jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Wg=Jt("div",{padding:"$15 $0 $15 $0"}),Lg=ex({display:"flex",justifyContent:"space-between",alignItems:"center"});function Cr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(Ig,null,V.createElement(Ng,null,V.createElement(Mg,{loading:!0,size:"medium"}),V.createElement(It,{size:8,direction:"horizontal"}),V.createElement(Bg,null,V.createElement(lt,{height:10,width:60,variant:"rounded"}),V.createElement(It,{size:4}),V.createElement(lt,{height:15,variant:"rounded"}))),V.createElement(lt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(jl,null,V.createElement(lt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:65,height:20,variant:"rounded"})),V.createElement(Ki,null),!r&&V.createElement(It,{size:4})),V.createElement("div",{className:Lg()},V.createElement(jl,null,V.createElement(lt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:60,height:10,variant:"rounded"})),r&&V.createElement(lt,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(bg,null,V.createElement(lt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(xg,null,V.createElement(Eg,null,V.createElement(Mg,{loading:!0,size:"medium"}),V.createElement(It,{direction:"horizontal",size:4}),V.createElement(lt,{height:15,width:150,variant:"rounded"})),V.createElement(It,{size:10}),V.createElement(lt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(It,{size:4}),V.createElement(Wg,null,n,V.createElement(Ag,null),n),V.createElement(It,{size:12})))}i(Cr,"QuoteSummarySkeleton");import{ChainToken as Fg,Divider as Yl,NextIcon as tx,Skeleton as ia}from"@rango-dev/ui";import We from"react";import{styled as Tr}from"@rango-dev/ui";var Pg=Tr("div",{display:"flex",alignItems:"start"}),_g=Tr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Xl=Tr("div",{display:"flex",alignItems:"center",flexGrow:1}),Dg=Tr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),$g=Tr("div",{display:"flex",alignItems:"center"});function Dt(t){let{separator:e=!0}=t;return We.createElement(We.Fragment,null,We.createElement($g,null,We.createElement(ia,{height:22,width:22,variant:"circular"}),We.createElement(Yl,{direction:"horizontal",size:8}),We.createElement(ia,{height:15,width:148,variant:"rounded"})),We.createElement(Pg,null,We.createElement(vg,{hideSeparator:!e}),We.createElement(_g,{extraSpace:e},We.createElement(Xl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(Yl,{direction:"horizontal",size:8}),We.createElement(ia,{height:12,variant:"rounded"})),We.createElement(Dg,null,We.createElement(tx,{color:"gray",size:16})),We.createElement(Xl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(Yl,{direction:"horizontal",size:8}),We.createElement(ia,{height:12,variant:"rounded"})))))}i(Dt,"StepSkeleton");function kr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Rt.createElement(Tg,{expanded:o,rounded:e!=="basic"},Rt.createElement(Cr,{type:e,tagHidden:n}),Rt.createElement(kg,null,Rt.createElement(nx,{height:15,variant:"rounded"})),o&&Rt.createElement(wg,null,Rt.createElement(ox,{size:24}),Rt.createElement(Dt,null),Rt.createElement(Dt,null),Rt.createElement(Dt,{separator:!1})))}i(kr,"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:y}=z()(),S=e?.outputAmount?new rx(e?.outputAmount):null,C=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?aa.createElement(Pl,null,aa.createElement(kr,{tagHidden:c,type:o,expanded:s})):v?aa.createElement(Pl,{onClick:()=>l?.(e),id:d},aa.createElement(Kl,{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:y?.toString()??""},output:{value:S?.toString()??"",usdValue:C?.toString()??""}})):null}i(Go,"QuoteInfo");import{warn as lx}from"@rango-dev/logging-core";import{calculatePendingSwap as cx}from"@rango-dev/queue-manager-rango-preset";import{useEffect as px}from"react";import{useRef as ix,useState as ax}from"react";var sx=2e3;function sa({request:t}){let[e,o]=ax(!1),n=ix(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,sx)),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(sa,"useFetch");function Og(){let{fetch:t,loading:e,cancelFetch:o}=sa({request:async(n,r)=>await at().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Og,"useFetchConfirmQuote");function la(t){if(!t.swaps)throw new Error(re().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Zl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(la,"throwErrorIfResponseIsNotValid");function Zl(t){if(Md(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Pd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=Fd(t);if(o){let n=bi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Zl,"getQuoteError");function Ug(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=zd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(Ug,"generateWarnings");function ca(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(ca,"handleQuoteErrors");function Jl(){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(),d=T().blockchains(),f=T().tokens(),{findToken:h}=T(),{swapMode:g}=et(),m=p||l,{fetch:y,cancelFetch:S,loading:C}=Og();return px(()=>S,[]),{loading:C,fetch:i(async v=>{let w=v.selectedWallets,I=v?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=w.reduce((E,x)=>(E[x.chain]=x.address,E),{}),b={requestId:a?.requestId||"",selectedWallets:A,destination:I||void 0};try{return await y(b,!0).then(E=>{let{result:x}=E;if(!x)throw new Error(E.error??"Error fetching updated quote");la({diagnosisMessages:x.diagnosisMessages,requestId:x.requestId,swaps:x.result?.swaps});let W={outputAmount:x.result?.outputAmount,requestId:x.requestId,resultType:x.result?.resultType,swaps:x.result?.swaps||[],validationStatus:x.validationStatus,requestAmount:x.requestAmount};r(W);let P={slippage:m.toString(),disabledSwappersGroups:u},U=Ug({previousQuote:a??void 0,currentQuote:W,meta:{blockchains:d},selectedWallets:w,userSlippage:m,inputUsdValue:n,findToken:h});c();let G=!!U.balance,K=cx({inputAmount:o.toString(),bestRoute:x,wallets:Ud(w),settings:P,validateBalanceOrFee:!G,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:W,swap:K,error:null,warnings:U}})}catch(E){let x=ca(E);return x.type!==2&&lx(new Error("confirm swap error"),{tags:{...x,type:Xe[x.type],initialQuote:a,requestBody:b}}),{swap:null,error:x,warnings:null}}},"fetch"),cancelFetch:S}}i(Jl,"useConfirmSwap");var Tx=fx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${zg}`]:{width:"$48",height:"$48"}}),kx=tc({flexGrow:1,paddingRight:"$10"}),wx=tc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),vx=tc({display:"flex",justifyContent:"space-between",alignItems:"center"});function Hg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z()(),s=Cx(),[c,l]=wr(""),p=!n,[u,d]=wr(!1),[f,h]=wr(!1),{isActiveTab:g}=oe(),m=T().getDisabledLiquiditySources(),y=Sx(m),{manager:S}=ux(),{fetch:C,loading:k,cancelFetch:v}=Jl(),[w,I]=wr({swap:null,error:null,warnings:null}),[A,b]=wr(!1),E=i(async({selectedWallets:B,customDestination:Y})=>{let Z=await C?.({selectedWallets:B,customDestination:Y});return I(Z),Z},"onConfirmSwap"),x=i(async()=>{if(w.swap&&n)try{await S?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let B=`../${D.swaps}/${w.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){l("Error: "+B?.message)}},"addNewSwap"),W=i(async()=>{h(!0),await x(),h(!1)},"onConfirm"),P=i(async()=>{w.warnings?.quote&&xd(w.warnings.quote)&&!a?b(!0):await W()},"onStartConfirmSwap"),U=i(async()=>{I({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(B=>{I(B)}).catch(B=>console.error(B))},"onRefresh");pa(()=>{!!y.current.length&&!m.length&&U(),y.current=m},[m.length]),pa(()=>{p&&v()},[p]),pa(()=>{p&&d(p)},[p]),pa(()=>{p||C({selectedWallets:o,customDestination:r}).then(B=>I(B)).catch(B=>console.error(B))},[]),yx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let G=w.warnings?.quote??null,K=w.error,R=[];if(c&&R.push(De.createElement(dx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),G||K){let B=`../${D.settings}`;R.push(De.createElement(gr,{warning:G,error:K,couldChangeSettings:!1,refetchQuote:U,skipAlerts:K?.type===4||G?.type===2,showWarningModal:A,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(B)}))}return De.createElement(ae,{header:{title:Rl.t("Confirm Swap"),onWallet:()=>{let B=`../${D.wallets}`;s(B)}},footer:De.createElement(Tx,null,De.createElement("div",{className:kx()},De.createElement(mx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!w.error||!g,onClick:P},Rl.t("Start Swap"))),De.createElement(zg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:d.bind(null,!0)},De.createElement(hx,{size:24})))},u&&De.createElement(vf,{open:u,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:E}),De.createElement(ce,null,De.createElement("div",{className:vx()},De.createElement(gx,{variant:"title",size:"small"},Rl.t("You get")),De.createElement("div",{className:wx()},De.createElement(Li,{onClick:!k&&!u&&!A?U:void 0}))),De.createElement(ec,{size:"12"}),ym(R.map((B,Y)=>({element:B,key:`alert-${Y}`})),De.createElement(ec,{size:10})),R.length>0?De.createElement(ec,{size:10}):null,De.createElement(Go,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:w.error,loading:k,warning:w.warnings?.quote??null})))}i(Hg,"ConfirmSwapPage");import{i18n as to}from"@lingui/core";import{Button as mc,CustomTokensZeroStateDarkIcon as Qx,CustomTokensZeroStateIcon as qx,DeleteIcon as Gx,Divider as Ir,IconButton as Vx,MessageBox as Kx,NotFound as jx,styled as gc}from"@rango-dev/ui";import ge,{useState as fc}from"react";import{useNavigate as Xx}from"react-router-dom";import{CloseIcon as bx,IconButton as xx,SearchIcon as Ex,TextField as Ix}from"@rango-dev/ui";import Ln from"react";import{styled as Qg}from"@rango-dev/ui";var qg=Qg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Gg=Qg("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?Ln.createElement(xx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Ln.createElement(bx,{color:"gray",size:10})):null;return p&&(f=p),Ln.createElement(Gg,null,Ln.createElement(Ix,{prefix:Ln.createElement(qg,null,Ln.createElement(Ex,{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 dc}from"@lingui/core";import{Button as Wx,CustomTokenWarning as Lx,darkTheme as nh,Divider as eo,ExternalLinkIcon as Mx,Image as Px,ListItem as _x,NotFound as Dx,PinIcon as $x,Skeleton as Vo,Typography as xr,VirtualizedList as Fx}from"@rango-dev/ui";import L,{useState as Ox}from"react";import{useTranslation as Ux}from"react-i18next";import{Divider as th,ListItem as Bx,Skeleton as br}from"@rango-dev/ui";import Nt from"react";import{css as Mn,darkTheme as oc,ImageContainer as Ax,ListItemButton as Nx,styled as ot,Typography as Vg}from"@rango-dev/ui";var nc=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),rc=Mn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ic=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ac=Mn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${oc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),sc=Mn({}),lc=Mn(),Kg=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),cc=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ua=ot("ul",{flexGrow:1,height:"100%",padding:0,margin:0,display:"flex",flexDirection:"column",listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${rc}`]:{[`& .${ac}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${sc}`]:{bottom:"-15px"},[`& .${nc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ic}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),jg=ot(Nx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),pc=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),uc=ot(Vg,{}),Xg=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${lc}`]:{$$color:"$colors$neutral600",[`.${oc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),vr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),LG=ot("div",{display:"flex",alignItems:"center"}),Yg=ot("div",{position:"relative",[`& ${Ax}`]:{borderRadius:"$xm",overflow:"hidden"}}),Zg=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Jg=ot(Vg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Rg=ot("a",{"& svg:hover":{color:"$colors$info"}}),eh=ot("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":{[`.${oc} &`]:{color:"$foreground"}}}});function oh(t){return Nt.createElement(ua,null,Array.from(Array(t.size),e=>Nt.createElement(Bx,{key:e,hasDivider:!0,start:Nt.createElement(br,{variant:"circular",width:35,height:35}),end:Nt.createElement(vr,null,Nt.createElement(br,{variant:"text",size:"large",width:70}),Nt.createElement(th,{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(th,{size:4}),Nt.createElement(br,{variant:"text",size:"medium",width:90}))})))}i(oh,"LoadingTokenList");var zx=20,Hx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return L.createElement("div",{className:rc()},o?L.createElement("div",{className:nc()},o):L.createElement(cc,{className:ic()},L.createElement(xr,{variant:"title",size:"xmedium"},r.symbol),L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(pc,{css:a},L.createElement(uc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&L.createElement("div",{className:`${ac()} ${!o&&sc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",L.createElement(eo,{size:4,direction:"horizontal"}),L.createElement(Rg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},L.createElement(Mx,{size:12}))))},"renderDesc");function Er(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:d,fetchingWallets:f}=T(),{isTokenPinned:h}=T(),{setFromToken:g,setToToken:m}=z()(),{t:y}=Ux(),S=Qe(),[C,k]=Ox(null),v=i(()=>{c==="source"?g({token:C,meta:{blockchains:u}}):m({token:C,meta:{blockchains:u}})},"updateToken"),w=i(()=>{v(),S()},"handleImportToken"),I=i(E=>{if(E.customToken){let{customToken:W,...P}=E;return L.createElement(Wx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(G=>{G.stopPropagation(),k({...P,warning:!0})},"handleClick")},L.createElement(xr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let x=ii(d(E));return s?s(E):f?L.createElement(vr,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(eo,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:50})):x&&L.createElement(Xg,null,L.createElement(Jg,{variant:"title",size:"small"},x.amount),L.createElement("div",null),x.usdValue&&L.createElement(xr,{variant:"body",className:lc(),size:"xsmall"},`$${x.usdValue}`))},"endRenderer"),A=i(()=>L.createElement(Fx,{style:{flexGrow:1,minHeight:0},itemContent:E=>{let x=e[E];if(x==="skeleton")return L.createElement(_x,{hasDivider:!0,start:L.createElement(Vo,{variant:"circular",width:35,height:35}),end:L.createElement(vr,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(eo,{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(eo,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:90}))});let W=u.find(Y=>Y.name===x?.blockchain);if(!W||!x)return null;let P=x.address,U=el(W.color,"main"),G={$$color:U.main150,[`.${nh} &`]:{$$color:U.main750},backgroundColor:"$$color"},K={$$color:U.main750,[`.${nh} &`]:{$$color:U.main150},color:"$$color"},R=i(()=>{typeof x!="string"&&!x.customToken&&n?.(x)},"handleClick"),B=P?Yr({contractAddress:P,blockchainMeta:W}):void 0;return L.createElement(eh,null,L.createElement(jg,{"tab-index":E,key:`${x.symbol}${P}`,id:`${x.symbol}${P}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:x?.customToken,onClick:R,start:L.createElement(Yg,null,L.createElement(Px,{src:x.image===""?Jr:x.image,size:30}),t.type!=="custom-token"&&x&&h(x,t.type)&&L.createElement(Zg,null,L.createElement($x,{size:12,color:"gray"}))),title:x.name||!x.name&&!P?L.createElement(cc,null,L.createElement(xr,{variant:"title",size:"xmedium"},x.symbol),L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(pc,{css:G},L.createElement(uc,{variant:"body",size:"xsmall",css:K},x.blockchain)),l&&x.warning&&L.createElement(L.Fragment,null,L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(Lx,{container:N()}))):void 0,description:typeof x!="string"&&W.info&&P&&B?Hx({address:P,token:x,customCssForTag:G,customCssForTagTitle:K,name:x.name,url:B}):x.name||void 0,end:I(x)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),b=C?Ao(C?.blockchain,u):null;return L.createElement(L.Fragment,null,a&&L.createElement(L.Fragment,null,L.createElement(xr,{variant:"label",size:"large"},dc.t("Select Token")),L.createElement(eo,{size:4})),L.createElement(Kg,null,L.createElement(eo,{size:4}),p==="loading"&&L.createElement(oh,{size:zx}),p==="success"&&(e.length?L.createElement(L.Fragment,null,L.createElement(ur,{token:C,address:C?.address??"",blockchain:b??void 0,onImport:w,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),L.createElement(ua,{as:"ul"},A())):!!o&&L.createElement(Dx,{title:dc.t("No results found"),description:dc.t("Try using different keywords")}))))}i(Er,"TokenList");var Yx=gc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Zx=gc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Jx=gc(Vx,{"&:hover":{"& svg":{color:"$secondary550"}}});function rh(){let[t,e]=fc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=uo({}),p=Xx(),[u,d]=fc(!1),[f,h]=fc(),g=i(C=>{let k=C.target.value;e(k)},"handleSearch"),m=l==="dark",y=n.filter(C=>rt(C.symbol,t)||rt(C.address||"",t)||rt(C.name||"",t)),S=i(()=>{if(f){let C=a?gt(a):null,k=r?gt(r):null,v=gt(f);C===v?c({token:null}):k===v&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ae,{header:{title:to.t("Custom Tokens")}},ge.createElement(ce,null,ge.createElement(Yx,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(At,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search Token"),onChange:g}),ge.createElement(Ir,{size:16}),ge.createElement(Er,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>ge.createElement(Jx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(C)}},ge.createElement(Gx,{size:12,color:"gray"}))})):ge.createElement(Zx,null,ge.createElement(jx,{icon:m?ge.createElement(Qx,{size:200}):ge.createElement(qx,{size:200}),title:to.t("No custom tokens"),description:to.t("press the button to add your custom token")})),ge.createElement(Ir,{size:20}),ge.createElement(mc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(D.addCustomTokens)},to.t("Add Custom Token"))),ge.createElement(ne,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:N()},ge.createElement(Kx,{title:to.t("Delete Custom Token"),type:"error",description:to.t("Are you sure you want to Delete this Token?")},ge.createElement(Ir,{size:40}),ge.createElement(Ir,{size:10}),ge.createElement(mc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},to.t("Yes, Delete it")),ge.createElement(Ir,{size:12}),ge.createElement(mc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},to.t("No, Continue"))))))}i(rh,"CustomTokensPage");import{i18n as $e}from"@lingui/core";import{useManager as SE}from"@rango-dev/queue-manager-react";import{Button as wc,darkTheme as CE,Divider as Co,MessageBox as TE,NotFound as kE,styled as vc,Tabs as wE,Typography as fa}from"@rango-dev/ui";import{TransactionStatus as Br}from"rango-types";import te,{useMemo as vh,useState as Wr}from"react";import{useNavigate as vE}from"react-router-dom";import{FilterIcon as iE,Popover as aE}from"@rango-dev/ui";import Ko from"react";import{css as Rx,darkTheme as da,IconButton as eE,styled as Ar}from"@rango-dev/ui";var hc=Ar("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${da} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),ih=Ar(eE,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${da} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${da} &`]:{backgroundColor:"$neutral"},[`& ${hc}::before`]:{backgroundColor:"$secondary100",[`.${da} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),ah=Ar("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),sh=Ar("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),lh=Rx({display:"flex",justifyContent:"space-between",alignItems:"center"}),ch=Ar("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as ph}from"@lingui/core";import{Button as tE,Divider as uh,ListItemButton as oE,Radio as nE,RadioRoot as rE,Typography as dh}from"@rango-dev/ui";import ct from"react";function mh(t){let{filterBy:e,onClickItem:o}=t;return ct.createElement(sh,null,ct.createElement("div",{className:lh()},ct.createElement(dh,{size:"small",variant:"body"},ph.t("Status")),ct.createElement(tE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},ph.t("Reset"))),ct.createElement(uh,{size:10}),ct.createElement(rE,{value:e},ct.createElement(ch,null,t.list.map((n,r)=>ct.createElement(oE,{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:ct.createElement(ct.Fragment,null,ct.createElement(uh,{direction:"horizontal",size:4}),ct.createElement(dh,{size:"medium",variant:"body"},n.title)),start:ct.createElement(nE,{value:n.id}),onClick:o})))))}i(mh,"FilterSelectorContent");function yc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Ko.createElement("div",null,Ko.createElement(aE,{open:a,align:"end",onOpenChange:o,container:N(),content:Ko.createElement(mh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Ko.createElement(ih,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Ko.createElement(hc,{isSelect:!!n},Ko.createElement(iE,{size:16,color:"black"}),!!n&&Ko.createElement(ah,null)))))}i(yc,"FilterSelector");import{i18n as cE}from"@lingui/core";import{getCurrentStep as pE}from"@rango-dev/queue-manager-rango-preset";import{Divider as Sh,GroupedVirtualizedList as uE,Skeleton as dE,SwapListItem as Ch,Typography as mE}from"@rango-dev/ui";import Ye,{useCallback as Th,useEffect as fE,useRef as gE,useState as hE}from"react";function fh(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(fh,"calculateGroupsSoFar");import{css as sE,darkTheme as lE,styled as Nr}from"@rango-dev/ui";var Sc=sE(),gh=Nr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Cc=Nr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Sc}`]:{$$color:"$colors$neutral600",[`.${lE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Tc=Nr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),hh=Nr("div",{gap:"$10",display:"flex",flexDirection:"column"}),yh=Nr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var yE=10;function kc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=hE([]),c=gE(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=Th(fh,[]),f=Th(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,yE),s(d(p,c.current)))},[e.length]);if(fE(()=>{r||f()},[r,f]),r){let h=[1,2];return Ye.createElement(Ye.Fragment,null,[h,h].map((m,y)=>Ye.createElement(Cc,{key:y},Ye.createElement(Tc,null,Ye.createElement(dE,{variant:"text",width:60,size:"small"}),Ye.createElement(Sh,{size:16})),Ye.createElement(Sh,{size:4}),Ye.createElement(hh,null,m.map((C,k)=>Ye.createElement(Ch,{isLoading:!0,key:k}))))))}return Ye.createElement(uE,{style:{flexGrow:1,minHeight:0},endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Ye.createElement(Cc,null,Ye.createElement(Tc,null,Ye.createElement(mE,{variant:"label",size:"medium",className:Sc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let y=pE(m),S=m.steps[0],C=m.steps[m.steps.length-1];return!S||!C?null:Ye.createElement(gh,{key:m.requestId},Ye.createElement(Ch,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:y,tooltipContainer:N(),onlyShowTime:u[g]===cE.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:M(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:M(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(kc,"HistoryGroupedList");import{i18n as ma}from"@lingui/core";import kh from"dayjs";var wh=i(t=>{let e=new Map([["today",{title:ma.t("Today"),swaps:[]}],["week",{title:ma.t("This week"),swaps:[]}],["month",{title:ma.t("This month"),swaps:[]}],["year",{title:ma.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=kh();t.forEach(l=>{let p=Number(l.creationTime),u=kh(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 bE=vc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%",minHeight:0,flexGrow:1}),xE=vc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),EE=vc("div",{"._typography":{color:"$neutral700",[`.${CE}&`]:{color:"$neutral900"}}}),IE=i((t,e)=>t?.length?t.filter(o=>Lt(o.fromBlockchain,e)||Lt(o.toBlockchain,e)||Lt(o.toSymbol,e)||Lt(o.fromSymbol,e)).length:!1,"isStepContainsText");function bh(){let t=vE(),{manager:e,state:o}=SE(),n=Ct(e).map(({swap:b})=>b),[r,a]=Wr(""),[s,c]=Wr(!1),l=!o.loadedFromPersistor,[p,u]=Wr(""),[d,f]=Wr(!1),[h,g]=Wr("all"),m=i(b=>{let E=b.target.value;a(E)},"handleSearch"),{isMultiMode:y}=et(),S=[{id:Br.SUCCESS,title:$e.t("Complete")},{id:Br.RUNNING,title:$e.t("Running")},{id:Br.FAILED,title:$e.t("Failed")}],C=[{id:"all",title:$e.t("All")},{id:"swap",title:$e.t("Swap")},{id:"refuel",title:$e.t("Refuel")}],k=vh(()=>!r&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:E,status:x,steps:W,requestId:P,mode:U}=b;return(!r||Lt(E,r)||Lt(x,r)||IE(W,r)||Lt(P,r))&&(!p||p===x)&&(h==="all"?!0:h==="swap"?!U||U==="swap":h==="refuel"?U==="refuel":!1)}),[n,r,p,h]),v=!k?.length&&!l,w=i(()=>f(!1),"onCloseModal"),I=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(b){console.log(b)}},"onClear"),A=vh(()=>!n.some(b=>b.status===Br.SUCCESS||b.status===Br.FAILED),[n]);return te.createElement(ae,{header:{title:$e.t("History"),suffix:te.createElement(mo,null,te.createElement(wc,{id:"widget-history-clear-btn",disabled:A,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},te.createElement(fa,{size:"medium",variant:"label",color:"error"},$e.t("Clear"))))}},te.createElement(ce,null,te.createElement(xE,null,te.createElement(At,{setValue:a,fullWidth:!0,variant:"contained",placeholder:$e.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),te.createElement(Co,{size:10,direction:"horizontal"}),te.createElement(yc,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:S})),te.createElement(Co,{size:"16"}),y&&!l&&te.createElement(te.Fragment,null,te.createElement(wE,{items:C,onChange:b=>g(b.id),value:h,type:"secondary"}),te.createElement(Co,{size:"12"})),te.createElement(bE,null,v&&te.createElement(yh,null,te.createElement(Co,{size:32}),te.createElement(kE,{title:r?$e.t("No results found"):$e.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?$e.t("Try using different keywords"):$e.t("Your transaction history is stored locally and will appear here after you start a swap")})),!v&&te.createElement(kc,{list:k,onSwapClick:t,groupBy:wh,isLoading:l}))),te.createElement(ne,{open:d,onClose:w,id:"widget-history-clear-modal",container:N()},te.createElement(Co,{size:20}),te.createElement(TE,{type:"warning",title:$e.t("Clear Transaction History"),description:te.createElement(EE,null,te.createElement(fa,{variant:"body",size:"medium"},$e.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),te.createElement(Co,{size:"24"}),te.createElement(fa,{variant:"body",size:"small"},$e.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),te.createElement(Co,{size:30}),te.createElement(wc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:I},$e.t("Yes, Clear the history")),te.createElement(Co,{size:10}),te.createElement(wc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:w},te.createElement(fa,{variant:"title",size:"medium",color:"primary"},$e.t("No, Cancel")))))}i(bh,"HistoryPage");import{i18n as ey}from"@lingui/core";import{Button as cI,Divider as $c,styled as pI,WarningIcon as uI}from"@rango-dev/ui";import dI from"bignumber.js";import Se,{useEffect as ty,useState as oy}from"react";import{useNavigate as mI}from"react-router-dom";import{i18n as Eh}from"@lingui/core";import{Alert as NE,Divider as bc,NoRouteIcon as BE,Typography as WE}from"@rango-dev/ui";import jo from"react";import{styled as AE}from"@rango-dev/ui";var xh=AE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function xc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&Qt(t,e)?jo.createElement(xh,null,jo.createElement(bc,{size:10}),jo.createElement(BE,{size:24,color:"gray"}),jo.createElement(bc,{size:4}),jo.createElement(WE,{variant:"title",size:"small"},Eh.t("No Routes Found")),jo.createElement(bc,{size:4}),jo.createElement(NE,{title:Eh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(xc,"SameTokensWarning");import{Alert as LE,Button as ME}from"@rango-dev/ui";import Ah from"react";import{i18n as ga}from"@lingui/core";function Ih(t){let e=null;return t===ci?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ga.t("Reset"),title:ga.t("Slippage cannot be set lower than 0.01%.")},e):t>sn?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ga.t("Change"),title:ga.t("Caution, your slippage is high!")},e):null}i(Ih,"makeAlerts");function Nh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=T(),{onChangeSettings:a}=t,c=Ih(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(li),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Ah.createElement(LE,{title:c.title,type:c.alertType,variant:"alarm",action:Ah.createElement(ME,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(Nh,"SlippageWarningsAndErrors");import{i18n as FE}from"@lingui/core";import{IconButton as OE,ReverseIcon as UE,Skeleton as zE,Tooltip as HE,Typography as Lr}from"@rango-dev/ui";import pt from"react";import ha from"bignumber.js";function Wh(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(Wh,"getSlippageColor");function Lh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ha(e),r=new ha(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(Lh,"getUsdExchangeRate");function Mh(t,e){let o=new ha(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ha.ROUND_DOWN).toFormat(2)}`}i(Mh,"formatTokenValueInUsd");import{darkTheme as DE,styled as Ic,Typography as $E}from"@rango-dev/ui";var Ph=Ic("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),_h=Ic("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${DE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Ac=Ic($E,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Nc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=T(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=uo({}),h=pn(d),g=f==="dark",m=n==="default",y={quoteError:a,slippageError:h?.type==="error"?h.message:null},S={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0]?.from||c,k=p?.swaps[p?.swaps.length-1]?.to||l,v=m?C:k,w=m?k:C,I=Number(m?p?.outputAmount:p?.requestAmount),A=Number(m?p?.requestAmount:p?.outputAmount),b=I||v.usdPrice,E=A||w.usdPrice,{rawValue:x,displayValue:W}=Lh({toTokenUsdPrice:E,fromTokenUsdPrice:b});return pt.createElement(Ph,null,pt.createElement(Lr,{variant:y||S?"label":"body",size:y||S?"medium":"small",color:Wh({error:y,warning:S,isDarkTheme:g})},FE.t("Slippage:")," ",d,"%"),u?pt.createElement(zE,{height:16,width:104,variant:"rounded"}):b&&E&&pt.createElement(_h,null,pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},"1"),pt.createElement(Ac,{className:"rate-text",variant:"body",size:"small"},w.symbol),pt.createElement(OE,{id:"widget-home-page-change-rate-button",onClick:r},pt.createElement(UE,{size:14,color:"secondary"})),pt.createElement(HE,{container:N(),side:"top",sideOffset:4,content:pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},x)},pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},W)),pt.createElement(Ac,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&pt.createElement(Lr,{color:"neutral600",variant:"body",size:"small"},"~",Mh(Number(x),v.usdPrice))))}i(Nc,"SwapMetrics");import{i18n as jE}from"@lingui/core";import{Header as XE}from"@rango-dev/ui";import To,{useEffect as YE,useState as ZE}from"react";import{i18n as qE}from"@lingui/core";import{Divider as Wc,FullExpandedQuote as GE,Typography as VE}from"@rango-dev/ui";import we from"react";import{styled as Bc}from"@rango-dev/ui";var Dh=Bc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),$h=Bc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Fh=Bc("div",{width:"146px"});import{i18n as Mr}from"@lingui/core";import{Select as QE}from"@rango-dev/ui";import Oh from"react";function ya(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),n=[{value:"SMART",label:Mr.t("Smart Routing")},{value:"FEE",label:Mr.t("Lowest Fee")},{value:"SPEED",label:Mr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Mr.t("Maximum Return")},{value:"PRICE",label:Mr.t("Maximum Output")}];return Oh.createElement(Fh,null,Oh.createElement(QE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ya,"SelectStrategy");var Uh=3;function Pr(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}=z()(),{slippage:m,customSlippage:y}=T(),{findToken:S}=T(),C=c||N(),k=!!p&&p.results.length,v=y??m,{config:{__UNSTABLE_OR_INTERNAL__:w}}=T(),I=i(E=>{if(!d||!f||!p)return null;let x={requestAmount:p.requestAmount,validationStatus:null,...E};return Cn({currentQuote:x,userSlippage:v,findToken:S})},"getQuoteWarning"),A=g?.type===0||g?.type===1,b=p?.results?wi(h,p?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement($h,null,we.createElement(VE,{size:"xmedium",variant:"title"},qE.t("Sort by")),we.createElement(ya,{container:C})),we.createElement(Wc,{size:"10"})),e&&Array.from({length:Uh},(E,x)=>we.createElement(we.Fragment,{key:x},s?we.createElement(GE,{campaignTag:w?.campaignTag,loading:!0}):we.createElement(kr,{tagHidden:!1,type:"list-item",expanded:!1}),x!==Uh-1&&we.createElement(Wc,{size:16}))),!e&&we.createElement(we.Fragment,null,k?b.map((E,x)=>{let W=I(E),P=Zl(E.swaps),U=b.length-1===x;return we.createElement(we.Fragment,{key:E.requestId},we.createElement(Go,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:P?.options||null,warning:W,fullExpandedMode:s,onClick:G=>{P||u("warning",W),u("error",P?.options||null),o(G)},type:"list-item"}),!U&&we.createElement(Wc,{size:16}))}):A&&we.createElement(Dh,null,we.createElement(mr,{size:s?"large":"small",error:g,fetch:n}))))}i(Pr,"Quotes");import{darkTheme as KE,styled as zh}from"@rango-dev/ui";var Hh=zh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${KE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Qh=zh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var JE=100;function Lc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=ZE(!1),l=s?"":"is-hidden",{config:p}=T(),u=p?.variant==="full-expanded",d=Bo();return YE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},JE):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),To.createElement(Hh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Di()} widget-expanded-quotes-container`,id:ht.EXPANDED_BOX_ID},To.createElement(XE,{title:jE.t("Routes"),suffix:To.createElement(To.Fragment,null,To.createElement(ya,{container:d}),To.createElement(Uo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),To.createElement(Qh,null,To.createElement(Pr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Bo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Lc,"ExpandedQuotes");import{i18n as Yh}from"@lingui/core";import{SwapInput as Zh}from"@rango-dev/ui";import oI from"bignumber.js";import _r from"react";import{ReverseIcon as tI}from"@rango-dev/ui";import Pc from"react";import{keyframes as RE,styled as qh}from"@rango-dev/ui";var Mc=450,eI=RE({"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)"}}),Gh=qh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Vh=qh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${eI} ${Mc}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 _c(){let t=z().use.switchFromAndTo();return Pc.createElement(Gh,null,Pc.createElement(Vh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Mc),t()}},Pc.createElement(tI,{size:12})))}i(_c,"SwitchFromAndToButton");import{styled as Kh}from"@rango-dev/ui";var jh=Kh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Xh=Kh("div",{position:"relative"});function Dc(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}=z()(),{swapMode:y}=et(),{connectedWallets:S,getBalanceFor:C}=T(),k=a?C(a):null,v=ii(k)?.amount??"0",w=k?new oI(k.amount).shiftedBy(-k.decimals):pe,I=!!s&&wu(S,s.name),A=!$s(m,d,f),b=!$s(m,d,g),E=!f||!g||!g.gt(0)?null:Kt(f.toString(),g.toString());return _r.createElement(jh,null,_r.createElement(Xh,null,_r.createElement(Zh,{label:Yh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:v,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:A?void 0:M(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?re().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:I,tooltipContainer:N(),onSelectMaxBalance:()=>{let x=w.isGreaterThan(pe)?w.toFixed():"";p(x)},anyWalletConnected:S.length>0}),y==="swap"&&_r.createElement(_c,null)),_r.createElement(Zh,{selectionType:y==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:Yh.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:M(Kt(f,g),2,2),warningLevel:jt(E??0),price:{value:M(h,6,6),usdValue:b?void 0:M(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?re().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Dc,"Inputs");import{warn as nI}from"@rango-dev/logging-core";import{useCallback as rI,useEffect as iI,useRef as aI,useState as sI}from"react";function Jh(){let{fetch:t,loading:e,cancelFetch:o}=sa({request:async(n,r)=>await at().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Jh,"useFetchAllQuotes");var lI=600;function Sa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Jh(),{excludeLiquiditySources:n,routing:r}=T().config,{connectedWallets:a}=T(),c=a.some(be=>be.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:y,setSelectedQuote:S,updateQuotePartialState:C}=z()(),{slippage:k,customSlippage:v,affiliatePercent:w,affiliateRef:I,affiliateWallets:A,fetchStatus:b}=T(),E=T().getLiquiditySources(),x=T().getDisabledLiquiditySources(),W=T().excludeLiquiditySources(),{findToken:P}=T(),{swapMode:U}=et(),[G,K]=sI(!0),R=aI(u),B=v??k,Z=!l||!p||Qt(l,p)||!qn(u),le=i(be=>{K(be)},"resetState"),ve=i(be=>{let{fromToken:dt,toToken:kt,inputAmount:wt,liquiditySources:F,excludeLiquiditySources:O,disabledLiquiditySources:X,slippage:ee,affiliateRef:j,affiliatePercent:Q,affiliateWallets:Ve}=be;if(G||le(!0),!Z&&dt&&kt){g();let q=Od({fromToken:dt,toToken:kt,inputAmount:wt,liquiditySources:F,excludeLiquiditySources:O,disabledLiquiditySources:X,wallets:a,slippage:ee,affiliateRef:j,affiliatePercent:Q,affiliateWallets:Ve,contractCall:c});cn("experimental",r)&&(q.experimental=!0),cn("avoidNativeFee",r)&&(q.avoidNativeFee=!0),cn("enableCentralizedSwappers",r)&&(q.enableCentralizedSwappers=!0),r?.maxLength&&(q.maxLength=r.maxLength),U==="refuel"&&(q.maxLength=1),e(q).then(ye=>{let Je=wi(h,ye.results),mt=Id(f,Je,ye.requestAmount);K(!1),C("quotes",ye),S(mt),la({diagnosisMessages:ye.diagnosisMessages,requestId:mt?.requestId||"",swaps:mt?.swaps});let ao=mt&&Cn({currentQuote:mt,userSlippage:B,findToken:P});C("warning",ao)}).catch(ye=>{let Je=ca(ye);(Je.type===0||Je.type===1)&&g(),Je.type!==2&&(C("error",Je),K(!1),nI(new Error("quote error"),{tags:{...Je,type:Xe[Je.type],requestBody:q}}))})}},"fetch"),Ht=rI(Rr(be=>{ve(be)},lI),[Z]);return iI(()=>{if(!t){K(!1);return}if(b!=="success")return;if(Z){K(!1),(f||m||y)&&g();return}if(!qn(u)&&d?.eq(0)){le(!1),o();return}g(),le(!0);let be=ve;return R.current&&R.current!=u&&(be=Ht),R.current=u,be({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:W,disabledLiquiditySources:x,slippage:B,affiliateRef:I,affiliatePercent:w,affiliateWallets:A,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Z,E?.length,n,x.length,B,I,w,c,JSON.stringify(A)]),{fetch:()=>ve({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:W,disabledLiquiditySources:x,slippage:B,affiliateRef:I,affiliatePercent:w,affiliateWallets:A,contractCall:c}),loading:G}}i(Sa,"useSwapInput");function Rh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ke.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Rh,"emitPreventableEvent");var fI=pI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),gI=300;function ny(){let t=mI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=z()(),[h,g]=oy(!1),{isLargeScreen:m,isExtraLargeScreen:y}=Ji(),{fetch:S,loading:C}=Sa({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:w,customSlippage:I,slippage:A,setSlippage:b,setCustomSlippage:E}=T(),{isActiveTab:x}=oe(),[W,P]=oy(!1),U=I!==null?I:A,{swapMode:G}=et(),K=pn(U),B=_d({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),Y=Nu(m,y,k?.variant),Z=!!n&&!!e&&!!o&&new dI(n).gt(0)&&!Vd(e,o),le=Z&&v==="success"&&C,ve=K?.quoteValidation||c,dt=(!Y||Y&&l?.results.length)&&(ve||s),kt=!!e&&!!o,wt=kt&&!!K,F=(r||s)&&!W?S:void 0,O=i(Q=>{Y&&h?(g(!1),setTimeout(()=>{t(Q)},gI)):t(Q)},"onHandleNavigation"),X=i(Q=>{r?.requestId!==Q.requestId&&(P(!1),p(Q))},"onClickOnQuote"),ee=i(Q=>{if(Q){if(si.includes(Q)){b(Q),E(null);return}E(Q)}},"onChangeSlippage"),j=i(Q=>{O(Q==="from"?D.fromSwap:G==="swap"?D.toSwap:D.toSwap+"/"+D.blockchains)},"handleInputTokenClick");return ty(()=>{u(),f("refetchQuote",!0)},[]),ty(()=>{g(Z)},[Z]),Se.createElement(fI,null,Se.createElement(ae,{height:"auto",footer:Se.createElement(cI,{id:`widget-swap-${B.action}-btn`,type:"primary",size:"large",disabled:B.disabled||!x,prefix:B.action==="confirm-warning"&&Se.createElement(uI,null),fullWidth:!0,onClick:()=>{B.action==="connect-wallet"?Rh({type:"clickConnectWallet"},()=>O(D.wallets)):B.action==="confirm-warning"?P(!0):O(D.confirmSwap)}},B.title),header:{onWallet:()=>{O(D.wallets)},hasBackButton:!1,title:k.title||(G==="swap"?ey.t("Swap"):ey.t("Refuel")),suffix:Se.createElement(Uo,{hidden:Y?["refresh"]:void 0,onClickRefresh:F,onClickHistory:()=>O(D.swaps),onClickSettings:()=>{O(D.settings)}})}},Se.createElement(ce,null,Se.createElement(Dc,{fetchingQuote:le,fetchMetaStatus:v,isExpandable:Y,onClickToken:j}),Se.createElement($c,{size:"2"}),Y?null:Se.createElement(Go,{quote:r,loading:le,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:ve,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),O(D.routes)}:void 0}),kt&&Se.createElement(Se.Fragment,null,Se.createElement($c,{size:8}),Se.createElement(Nc,{quoteError:s,quoteWarning:ve,fromToken:e,toToken:o,quote:r,loading:le})),dt?Se.createElement(Se.Fragment,null,Se.createElement(gr,{warning:ve,error:s,skipAlerts:!!K,couldChangeSettings:!0,refetchQuote:S,showWarningModal:W,confirmationDisabled:!x,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:ee,onConfirmWarningModal:()=>{P(!1),d(!0),O(D.confirmSwap)},onChangeSettings:()=>O(D.settings)})):null,wt&&Se.createElement(Se.Fragment,null,Se.createElement($c,{size:"10"}),Se.createElement(Nh,{onChangeSettings:()=>O(D.settings)})),Se.createElement(xc,null))),Y?Se.createElement(Lc,{loading:le,onClickOnQuote:X,fetch:S,onClickRefresh:F,isVisible:h}):null)}i(ny,"Home");import{i18n as ry}from"@lingui/core";import{Alert as hI,Divider as yI,List as SI,ListItemButton as CI,Radio as TI,RadioRoot as kI,Typography as wI}from"@rango-dev/ui";import $t from"react";function ko(){let{setLanguage:t,language:e,config:o}=T(),n=Du,r=o?.language||un;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||un),resetLanguage:()=>t(null)}}i(ko,"useLanguage");function iy(){let{activeLanguage:t,changeLanguage:e,languages:o}=ko(),n=Qe(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:$t.createElement(wI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:$t.createElement(TI,{value:s}),start:$t.createElement(l,null)}});return $t.createElement(ae,{header:{title:ry.t("Language")}},$t.createElement(ce,null,$t.createElement(hI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),$t.createElement(yI,{size:"8"}),$t.createElement(kI,{value:t},$t.createElement(SI,{type:$t.createElement(CI,{title:ry.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(iy,"LanguagePage");import{i18n as oo}from"@lingui/core";import{Button as II,Checkbox as AI,Image as NI,ListItemButton as BI,NotFound as WI,Typography as LI}from"@rango-dev/ui";import Ze,{useState as MI}from"react";import{Checkbox as xI,Skeleton as sy}from"@rango-dev/ui";import $r from"react";import{styled as Fc}from"@rango-dev/ui";var Dr=Fc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Oc=Fc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Uc=Fc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as vI,styled as bI}from"@rango-dev/ui";var ay=bI(vI,{height:61});var EI=30;function zc(){return $r.createElement(Dr,null,Array.from(Array(EI),(t,e)=>$r.createElement(ay,{hasDivider:!0,key:e,start:$r.createElement(sy,{variant:"circular",width:35,height:35}),title:$r.createElement(sy,{variant:"text",size:"large",width:90}),end:$r.createElement(xI,{checked:!1})})))}i(zc,"LoadingLiquiditySourceList");function Hc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=MI(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=pi(o,n),p={Exchanges:oo.t("Exchanges"),Bridges:oo.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(S=>u.includes(S.type)),f=d.length===d.filter(S=>S.selected).length,h=i(()=>{d.forEach(S=>{f?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),g=d.map(S=>{let{selected:C,groupTitle:k,logo:v,id:w,...I}=S;return{id:`widget-setting-liquidity-source-${pu(w.toLowerCase())}-item-btn`,start:Ze.createElement(NI,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Ze.createElement(AI,{checked:C,disabled:c}),title:Ze.createElement(LI,{variant:"title",size:"xmedium"},oo.t(k)),selected:C,groupTitle:k,logo:v,...I}}),m=i(S=>{let C=S.target.value;a(C)},"handleSearch"),y=g;return r&&(y=g.filter(S=>Lt(S.groupTitle,r))),Ze.createElement(ae,{header:{title:oo.t(t),suffix:Ze.createElement(Oc,null,Ze.createElement(II,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?oo.t("Deselect all"):oo.t("Select all")))}},Ze.createElement(ce,{view:!0},Ze.createElement(At,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&Ze.createElement(zc,null),!y.length&&r?Ze.createElement(Uc,null,Ze.createElement(WI,{title:oo.t("No results found"),description:oo.t("Try using different keywords")})):e==="success"&&Ze.createElement(Dr,{disabled:c,className:"widget-liquidity-source-list"},y.map(S=>{let{groupTitle:C,...k}=S;return Ze.createElement(Ze.Fragment,{key:S.id},Ze.createElement(BI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Hc,"LiquiditySourcePage");import{i18n as PI}from"@lingui/core";import Ca from"react";import{useNavigate as _I}from"react-router-dom";function ly(){let t=_I(),e=Qe(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=Sa({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${D.settings}`,d=`../${D.wallets}`;return Ca.createElement(ae,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:PI.t("Routes"),suffix:Ca.createElement(Uo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ca.createElement(ce,null,Ca.createElement(Pr,{fetch:c,loading:l,onClickOnQuote:p})))}i(ly,"RoutesPage");import{i18n as gy}from"@lingui/core";import{Divider as hy,getCategoriesCount as GI,SelectableCategoryList as VI}from"@rango-dev/ui";import no,{useMemo as KI,useState as yy}from"react";import{useNavigate as jI}from"react-router-dom";import{i18n as Qc}from"@lingui/core";import{Divider as OI,Image as UI,ListItemButton as zI,NotFound as HI,Typography as fy}from"@rango-dev/ui";import ut,{useEffect as QI,useState as qI}from"react";var cy=i((t,e,o)=>t.filter(n=>ei(n.type,o)).filter(n=>rt(n.name,e)||rt(n.displayName,e)),"filterBlockchains");import{ImageContainer as DI,styled as py}from"@rango-dev/ui";var uy=py("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ta=py(Sl,{padding:0,margin:0,listStyle:"none",[`& ${DI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as $I,Skeleton as dy}from"@rango-dev/ui";import ka from"react";var FI=20;function my(){return ka.createElement(Ta,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(FI),t=>ka.createElement($I,{key:t,hasDivider:!0,start:ka.createElement(dy,{variant:"circular",width:35,height:35}),title:ka.createElement(dy,{variant:"text",size:"large",width:90})})))}i(my,"LoadingBlockchainList");function qc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=qI(e),{fetchStatus:l}=T();QI(()=>{c([...cy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ut.createElement(HI,{title:Qc.t("No results found"),description:Qc.t("Try using different keywords")}):ut.createElement(Ta,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ut.createElement(zI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ut.createElement(UI,{src:u.logo,size:30}),title:ut.createElement(fy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ut.createElement(ut.Fragment,null,a&&ut.createElement(ut.Fragment,null,ut.createElement(fy,{variant:"label",size:"large"},Qc.t("Select Chain")),ut.createElement(OI,{size:4})),ut.createElement(uy,null,l==="loading"&&ut.createElement(my,null),l==="success"&&p()))}i(qc,"BlockchainList");function wa(t){let{type:e}=t,o=Qe(),[n,r]=yy(""),[a,s]=yy("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:d}=T(),f=jI(),{swapMode:h}=et(),g=T().blockchains({type:e}),m=T().tokens(),y=KI(()=>au(g,m),[g.length,m.length]),S=GI(y),C=!t.hideCategory&&S!==1,k=i(v=>{if(e==="custom-token")f(`..?blockchain=${v.name}`,{replace:!0});else{if(e==="source")l(v);else if(h==="swap")c(v);else{let w=d(v);w&&p({token:w,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return no.createElement(ae,{header:{title:gy.t("Select Chain")}},no.createElement(ce,{view:!0},C&&no.createElement(no.Fragment,null,no.createElement(VI,{setCategory:s,category:a,blockchains:y,isLoading:u==="loading"}),no.createElement(hy,{size:24})),no.createElement(At,{value:n,autoFocus:!0,placeholder:gy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:v=>r(v.target.value)}),no.createElement(hy,{size:16}),no.createElement(qc,{list:y,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:k})))}i(wa,"SelectBlockchainPage");import{i18n as xa}from"@lingui/core";import{Divider as by,Spinner as cA}from"@rango-dev/ui";import wo,{useEffect as pA,useState as uA}from"react";import{useNavigate as dA}from"react-router-dom";import{i18n as Kc}from"@lingui/core";import{BlockchainsChip as va,Divider as ky,Image as wy,Skeleton as eA,Tooltip as tA,Typography as jc}from"@rango-dev/ui";import xe from"react";import{useEffect as ZI}from"react";var Sy=["ETH"];function Gc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(XI),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(YI(s)),r=n.splice(a)}return{list:n,more:r}}i(Gc,"prepare");function XI(t,e){let o=Sy,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(XI,"sortByMostUsedBlockchains");function YI(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(YI,"generateSortByPreferredBlockchainsFor");function Cy(t,e){return!!e.list.find(o=>o.name===t)}i(Cy,"isInVisibleList");function Vc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();ZI(()=>{if(e?.selected){let a=Gc(t,o,e);Cy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Gc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Vc,"usePrepareBlockchainList");import{styled as JI}from"@rango-dev/ui";var Ty=JI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var oA=6,nA=12;function Xc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Vc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=T(),p=z().use.resetToBlockchain(),u=z().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(ky,{size:12}),xe.createElement(jc,{variant:"label",size:"large"},Kc.t("Select Chain"))),xe.createElement(ky,{size:12}),xe.createElement(Ty,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?oA:nA),(m,y)=>xe.createElement(eA,{key:y,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(va,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(jc,{variant:"body",size:"xsmall",color:"secondary500"},Kc.t("All"))),c.list.map(m=>xe.createElement(tA,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(va,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(wy,{src:m.logo,size:30})))),h?xe.createElement(va,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(wy,{src:f.logo,size:30})):null,g?xe.createElement(va,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(jc,{variant:"body",size:"xsmall",color:"secondary500"},Kc._("More +{count}",{count:c.more.length}))):null)))}i(Xc,"BlockchainsSection");import{useCallback as iA,useRef as aA,useState as Yc}from"react";function Zc(){let t=T().blockchains(),e=aA(null),{customTokens:o}=T(),[n,r]=Yc(!1),[a,s]=Yc([]),[c,l]=Yc(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await at().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(C=>Gt(C))),y=new Set(t.map(C=>C.name)),S=g.tokens.filter(C=>y.has(C.blockchain)&&!m.has(Gt(C)));s(S),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=iA(Rr((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(Zc,"useSearchCustomTokens");function ba(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(ba,"shouldSearchForCustomTokens");function vy(t,e,o,n,r){let a=[...t];return ba(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(vy,"prepareTokensList");function Ea(t){let{type:e}=t,o=dA(),n=Qe(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=T(),{fetch:d,loading:f,tokens:h,cancel:g}=Zc(),[m,y]=uA(""),S=e==="source"?r:a,C=S?.name??"",k=T().blockchains({type:e}),v=T().tokens({type:e,blockchain:C,searchFor:m,getBalanceFor:u}),w=vy(v,h,m,f,S?.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:xa.t("Source"),destination:xa.t("Destination")};return pA(()=>(ba(v,m,S?.name)&&d(m,S?.name??void 0),()=>{g()}),[v.length,m,S?.name]),wo.createElement(ae,{header:{title:xa.t("Swap {type}",{type:b[e]})}},wo.createElement(ce,null,wo.createElement(Xc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(D.blockchains),onChange:E=>{I(E)}}),wo.createElement(by,{size:24}),wo.createElement(At,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:xa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:E=>y(E.target.value),suffix:ba(v,m,S?.name)&&f?wo.createElement(cA,{size:12,color:"secondary"}):void 0}),wo.createElement(by,{size:16}),wo.createElement(Er,{list:w,selectedBlockchain:C,searchedFor:m,type:e,onChange:E=>{A(E);let x=k.find(W=>E.blockchain===W.name);x&&I(x),n()}})))}i(Ea,"SelectSwapItemsPage");import{i18n as tp}from"@lingui/core";import{Alert as OA,Button as UA,styled as zA}from"@rango-dev/ui";import Xo from"react";import{useInRouterContext as HA,useSearchParams as QA}from"react-router-dom";import{i18n as By}from"@lingui/core";import{Alert as hA,Divider as Rc,InfoIcon as yA,SlippageIcon as SA,TextField as CA,Tooltip as TA,Typography as Wy}from"@rango-dev/ui";import Oe from"react";import{Chip as mA,styled as Fr,TextField as fA}from"@rango-dev/ui";var xy=Fr("div",{paddingTop:"$5",padding:"$10 $5"}),Ey=Fr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${fA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Iy=Fr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ia=Fr("div",{maxWidth:"280px",padding:"$10"}),Ay=Fr(mA,{width:"61px",flexShrink:0});import{i18n as Jc}from"@lingui/core";import{Typography as gA}from"@rango-dev/ui";import Or from"react";function Ny(){return Or.createElement(Ia,null,Or.createElement(gA,{variant:"label",size:"medium",color:"neutral700"},Jc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Or.createElement("br",null),Or.createElement("br",null),Or.createElement("b",null,Jc.t("Warning")),":\xA0",Jc.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(Ny,"SlippageTooltipContent");function ep(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?pn(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>jn&&(d=jn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;mu(u)||(p.value=u.slice(0,-1))},"onInput");return Oe.createElement(xy,null,Oe.createElement(Iy,null,Oe.createElement(SA,{size:16,color:"gray"}),Oe.createElement(Rc,{direction:"horizontal",size:4}),Oe.createElement(Wy,{variant:"title",size:"xmedium"},By.t("Slippage tolerance per swap")),Oe.createElement(Rc,{direction:"horizontal",size:4}),Oe.createElement(TA,{container:N(),side:"top",sideOffset:4,content:Oe.createElement(Ny,null)},Oe.createElement(yA,{color:"gray"}))),Oe.createElement(Ey,null,si.map((l,p)=>{let u=`slippage-${p}`;return Oe.createElement(Ay,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Oe.createElement(CA,{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&&Oe.createElement(Wy,{variant:"body",size:"small"},"%"),placeholder:By.t("Custom")})),r&&Oe.createElement(Oe.Fragment,null,Oe.createElement(Rc,{size:10}),Oe.createElement(hA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(ep,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as Ly,BridgesIcon as kA,ChevronRightIcon as Aa,DarkModeIcon as My,Divider as Ur,ExchangeIcon as wA,InfinityIcon as vA,InfoIcon as bA,LanguageIcon as xA,LightModeIcon as Py,List as EA,ListItem as IA,ListItemButton as AA,Skeleton as NA,styled as BA,Switch as WA,Tabs as LA,TargetIcon as MA,Tooltip as PA,Typography as nt}from"@rango-dev/ui";import _ from"react";import{useNavigate as _A}from"react-router-dom";var DA=BA("div",{width:"202px",height:"$40"}),$A=[{id:"light",icon:_.createElement(Py,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Light"))},{id:"dark",icon:_.createElement(My,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:_.createElement(Ly,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Auto"))}],FA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return _.createElement(Ly,{...e});case"dark":return _.createElement(My,{...e});default:return _.createElement(Py,{...e})}},"getThemeIcon");function _y(){let t=_A(),{theme:e}=T().config,{setTheme:o,theme:n}=T(),{activeLanguage:r,languages:a}=ko(),s=a.find(B=>B.local===r)?.label,c=T().fetchStatus,l=T().swappers(),p=T().getDisabledLiquiditySources(),{config:{features:u}}=T(),d=T().customTokens(),f=Re("theme",u),h=Re("liquiditySource",u),g=Re("language",u),m=Re("customTokens",u),y=T().infiniteApprove,S=T().toggleInfiniteApprove,C=pi(l,p),k=C.filter(B=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(B.type)),v=k.length,w=k.filter(B=>B.selected).length,I=C.filter(B=>B.type==="DEX"),A=I.length,b=I.filter(B=>B.selected).length,E=i((B,Y)=>{switch(c){case"loading":return _.createElement(NA,{variant:"text",size:"medium",width:50});case"failed":return _.createElement(nt,{variant:"body",size:"medium",color:"$error500"},Tt.t("Loading failed"));default:return _.createElement(nt,{variant:"body",size:"medium"},`${B} / ${Y}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Bridges")),end:_.createElement(_.Fragment,null,E(w,v),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Aa,{color:"black"})),onClick:()=>t(D.bridges),start:_.createElement(kA,{color:"gray",size:16})},W={id:"widget-setting-exchange-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Exchanges")),end:_.createElement(_.Fragment,null,E(b,A),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Aa,{color:"black"})),start:_.createElement(wA,{color:"gray",size:16}),onClick:()=>t(D.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Custom Tokens")),end:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"body",size:"medium"},`${d.length}`),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Aa,{color:"black"})),start:_.createElement(MA,{color:"gray",size:16}),onClick:()=>t(D.customTokens)},U={id:"widget-setting-language-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Language")),start:_.createElement(xA,{color:"gray",size:16}),end:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"body",size:"medium"},s),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Aa,{color:"black"})),onClick:()=>t(D.languages)},G={id:"widget-setting-infinite-approval-item-btn",title:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Infinite approval")),_.createElement(Ur,{direction:"horizontal",size:4}),_.createElement(PA,{side:"top",sideOffset:4,container:N(),content:_.createElement(Ia,null,_.createElement(nt,{variant:"label",size:"medium",color:"neutral700"},_.createElement("b",null,Tt.t("Warning")),":\xA0",Tt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},_.createElement(bA,{color:"gray"}))),start:_.createElement(vA,{color:"gray",size:16}),end:_.createElement(WA,{checked:y}),onClick:S},K={id:"widget-setting-theme-item-btn",type:_.createElement(IA,null),title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:_.createElement(DA,null,_.createElement(LA,{container:N(),items:$A,value:n,className:"widget-setting-theme-item-tabs-container",onChange:B=>o(B.id),type:"primary",borderRadius:"small"})),start:FA(n)},R=h?[]:[x,W];return m||R.push(P),g||R.push(U),R.push(G),!e?.singleTheme&&!f&&R.push(K),_.createElement(EA,{type:_.createElement(AA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:R})}i(_y,"SettingsLists");var qA=zA("div",{paddingLeft:"$8"});function Dy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=QA(),r=HA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Xo.createElement(ae,{header:{title:tp.t("Settings")}},Xo.createElement(ce,null,o&&Xo.createElement(OA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:tp.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(qA,null,Xo.createElement(UA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},tp.t("Reset")))}),Xo.createElement(ep,null),Xo.createElement(_y,null)))}i(Dy,"SettingsPage");import{i18n as e0}from"@lingui/core";import{cancelSwap as t0}from"@rango-dev/queue-manager-rango-preset";import{useManager as o0}from"@rango-dev/queue-manager-react";import{Alert as n0}from"@rango-dev/ui";import Sp from"react";import{useParams as r0}from"react-router-dom";import{i18n as Ot}from"@lingui/core";import{getCurrentNamespaceOfOrNull as UN,getCurrentStep as zN,getRelatedWalletOrNull as HN}from"@rango-dev/queue-manager-rango-preset";import{Button as BS,Divider as QN,QuoteCost as qN,StepDetails as GN,Typography as dp}from"@rango-dev/ui";import{useWallets as VN}from"@rango-dev/wallets-react";import WS from"bignumber.js";import{PendingSwapNetworkStatus as Dn}from"rango-types";import Te,{useEffect as mp,useRef as fp,useState as $a}from"react";import{useNavigate as KN}from"react-router-dom";import{i18n as vo}from"@lingui/core";var GA=[vo.t("Sunday"),vo.t("Monday"),vo.t("Tuesday"),vo.t("Wednesday"),vo.t("Thursday"),vo.t("Friday"),vo.t("Saturday")];function $y(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?vo.t("Today"):`${GA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i($y,"timeSince");function Fy(t){return t.finishTime?$y(parseInt(t.finishTime)):$y(parseInt(t.creationTime))}i(Fy,"getSwapDate");import zr from"react";import{i18n as Na}from"@lingui/core";import{Button as Oy,Divider as op,MessageBox as VA}from"@rango-dev/ui";import bo from"react";var Uy=i(({onCancel:t,onClose:e})=>bo.createElement(bo.Fragment,null,bo.createElement(op,{size:20}),bo.createElement(VA,{type:"error",title:Na.t("Cancel Swap"),description:Na.t("Are you sure you want to cancel this swap?")}),bo.createElement(op,{size:32}),bo.createElement(Oy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Na.t("Yes, Cancel it")),bo.createElement(op,{size:12}),bo.createElement(Oy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Na.t("No, Continue"))),"CancelContent");import{i18n as Ba}from"@lingui/core";import{Button as zy,Divider as np,MessageBox as KA,Typography as jA}from"@rango-dev/ui";import ro from"react";var Hy=i(({onDelete:t,onClose:e})=>ro.createElement(ro.Fragment,null,ro.createElement(np,{size:20}),ro.createElement(KA,{type:"error",title:Ba.t("Delete Transaction"),description:Ba.t("Are you sure you want to delete this swap?")}),ro.createElement(np,{size:32}),ro.createElement(zy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ba.t("Yes, Delete it")),ro.createElement(np,{size:12}),ro.createElement(zy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},ro.createElement(jA,{variant:"title",size:"medium",color:"primary"},Ba.t("No, Cancel")))),"DeleteContent");import{i18n as XA}from"@lingui/core";import{Button as YA,Divider as ZA,MessageBox as JA}from"@rango-dev/ui";import Yo from"react";var Qy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Yo.createElement(Yo.Fragment,null,Yo.createElement(JA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Yo.createElement(Yo.Fragment,null,Yo.createElement(ZA,{size:"30"}),Yo.createElement(YA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},XA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as hN,getCurrentStep as yN,getRelatedWalletOrNull as SN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as CN}from"@rango-dev/ui";import{useWallets as TN}from"@rango-dev/wallets-react";import Yy from"react";import{i18n as Pn}from"@lingui/core";import{Alert as Vy,Button as tN,Checkbox as oN,Divider as Ma,Image as nN,MessageBox as rN,Spinner as iN,WarningIcon as aN}from"@rango-dev/ui";import{useWallets as sN}from"@rango-dev/wallets-react";import he,{useState as lN}from"react";import{css as RA,darkTheme as eN,styled as rp}from"@rango-dev/ui";var qy=RA({wordWrap:"break-word",display:"block"}),Gy=rp("img",{width:"100%"}),Wa=rp("div",{position:"relative"}),La=rp("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${eN} &`]:{$$color:"$warning600"}});var Ky=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=lN(null),{list:s}=vt(),c=oe.use.isActiveTab(),{state:l,connect:p}=sN(),u=s.find(w=>w.type===e.walletType),d=u?.needsNamespace?.data.find(w=>w.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,y=i(()=>m?Pn.t("Done"):r?Pn.t("Try again"):Pn.t("Connect"),"getButtonTitle"),S=i(()=>g?he.createElement(iN,{color:"info"}):r||m?null:he.createElement(oN,{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(w){a(w)}},"handleConnect"),k=i(async()=>{if(m){n();return}C()},"handleClickButton"),v=i(()=>{if(!m)return null;let w=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),I=w?.[w?.length-1];return I?so(I):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(rN,{type:"warning",title:Pn.t("Connect {wallet}",{wallet:u.title}),description:Pn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Wa,null,he.createElement(nN,{src:u.image,size:45}),he.createElement(La,null,he.createElement(aN,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:10}),he.createElement(Vy,{type:"success",variant:"alarm",title:Pn.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:10}),he.createElement(Vy,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:30}),he.createElement(Po,{namespace:d,suffix:S(),error:r?.message,connected:m,address:v()})),he.createElement(Ma,{size:"40"}),he.createElement(tN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},y()))},"ConnectWalletContent");import{i18n as jy}from"@lingui/core";import{Button as cN,Divider as pN,Image as uN,MessageBox as dN,WarningIcon as mN}from"@rango-dev/ui";import{useWallets as fN}from"@rango-dev/wallets-react";import{detectInstallLink as gN}from"@rango-dev/wallets-shared";import io from"react";var Xy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=fN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(gN(n.installLink),"_blank"),"handleButtonClick");return io.createElement(io.Fragment,null,io.createElement(dN,{type:"warning",title:jy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:io.createElement(Wa,null,io.createElement(uN,{src:n.img,size:45}),io.createElement(La,null,io.createElement(mN,{color:"warning",size:10})))}),io.createElement(pN,{size:"40"}),io.createElement(cN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},jy.t("Install")))},"InstallWalletContent");var Zy=i(t=>{let{swap:e,onClose:o}=t,{state:n,getWalletInfo:r}=TN(),a=yN(e),s=a?SN(e,a):null,c=s?.walletType,l=c?Gn(r(c),n(c)):null,p=a?hN(e,a):null;return c?l===CN.NOT_INSTALLED?Yy.createElement(Xy,{walletType:c}):Yy.createElement(Ky,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function ip(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return zr.createElement(ne,{open:e,onClose:r,container:N()},o==="connectWallet"&&zr.createElement(Zy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&zr.createElement(Qy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&zr.createElement(Hy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&zr.createElement(Uy,{onClose:r,onCancel:()=>{r(),s()}}))}i(ip,"SwapDetailsModal");import{i18n as Hr}from"@lingui/core";import{Button as ap,Divider as Qr,MessageBox as eS,TokenAmount as kN,Typography as tS}from"@rango-dev/ui";import Ce from"react";import{Link as wN,useNavigate as vN}from"react-router-dom";var Jy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Ry="/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:d,diagnosisUrl:f}=t,h=vN(),{showProfileBanner:g}=oe();return Ce.createElement(ne,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(ht.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(eS,{type:"success",title:Hr.t("Swap Successful")},Ce.createElement(kN,{direction:"vertical",tooltipContainer:N(),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}),Ce.createElement(Qr,{size:12}),Ce.createElement(tS,{className:qy(),variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement(eS,{type:"error",title:Hr.t("Transaction Failed"),description:d}),Ce.createElement(Qr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,g&&Ce.createElement(Ce.Fragment,null,Ce.createElement(wN,{to:Ry},Ce.createElement(Gy,{src:Jy,alt:"Profile Banner"})),Ce.createElement(Qr,{size:30})),Ce.createElement(ap,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Hr.t("Done"))),Ce.createElement(Qr,{size:12}),f&&Ce.createElement(Ce.Fragment,null,Ce.createElement(ap,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Hr.t("Diagnosis")),Ce.createElement(Qr,{size:12})),Ce.createElement(ap,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(tS,{variant:"title",size:"medium",color:"primary"},Hr.t("See Details"))))}i(sp,"SwapDetailsCompleteModal");import{i18n as Da}from"@lingui/core";import{CopyIcon as _N,DoneIcon as DN,IconButton as $N,RangoExplorerIcon as FN,Tooltip as bS,Typography as xS,useCopyToClipboard as ON}from"@rango-dev/ui";import Bt from"react";import PN from"react";import{i18n as BN}from"@lingui/core";import{Alert as TS,IconButton as WN,LinkIcon as LN}from"@rango-dev/ui";import xo,{Fragment as MN}from"react";import{Alert as xN,ChevronDownIcon as EN,IconButton as IN}from"@rango-dev/ui";import _n,{useState as AN}from"react";import{css as qr,darkTheme as oS,styled as Ft,Typography as bN}from"@rango-dev/ui";var nS=Ft(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${oS} &`]:{color:"$secondary500"}}}}}),rS=Ft("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),iS=Ft("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),aS=Ft("div",{padding:"$0 $20 $20 $20"}),DX=Ft("div",{display:"flex",flexDirection:"column",gap:"$10"}),sS=Ft("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),$X=Ft("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Zo=qr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${oS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),lS=qr({padding:"$5 0"}),Pa=qr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),cS=qr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),pS=qr({width:"100%",padding:"0 $20 $10"}),uS=Ft("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),dS=Ft("div",{display:"flex",flexDirection:"column",gap:"$5"}),_a=Ft(bN,{wordBreak:"break-word"});import{styled as lp}from"@rango-dev/ui";var mS=lp("div",{display:"flex",flexDirection:"column",gap:"$10"}),fS=lp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),gS=lp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function hS(t){let{message:e}=t,[o,n]=AN(!1);return _n.createElement(xN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&_n.createElement(IN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},_n.createElement(fS,{rotated:o},_n.createElement(EN,{size:12,color:"gray"}))),footer:_n.createElement(gS,{open:o},_n.createElement(_a,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(hS,"FailedAlert");import{i18n as yS}from"@lingui/core";import{Alert as cp,Button as SS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as NN}from"rango-types";import Gr from"react";function CS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Gr.createElement(cp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Gr.createElement(SS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},yS.t("Change"))}):a===NN.WaitingForConnectingWallet?Gr.createElement(cp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Gr.createElement(SS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},yS.t("Connect"))}):Gr.createElement(cp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(CS,"WarningAlert");function pp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=lr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return xo.createElement(mS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,y=h===g.length-1,S=(y&&u||p)&&!d,C=y&&s.status==="failed";return xo.createElement(MN,{key:m},xo.createElement(TS,{id:"widget-swap-details-tx-alert",type:y&&(S&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:BN.t("View transaction"),action:f.url&&xo.createElement(WN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},xo.createElement(LN,{size:12}))}))}),d&&xo.createElement(TS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&xo.createElement(CS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&xo.createElement(hS,{message:a}))}i(pp,"SwapDetailsAlerts");var kS=2e3;var wS=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:ft(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:zn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ft(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ft(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:zn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:PN.createElement(pp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function vS(t){if(lr(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(vS,"getStepState");function ES(t){let{requestId:e}=t,[o,n]=ON(kS);return Bt.createElement(iS,{className:Zo()},Bt.createElement(xS,{variant:"label",size:"large",color:"neutral700"},Da.t("Request ID")),Bt.createElement("div",{className:Pa()},Bt.createElement(xS,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(bS,{container:N(),content:o?Da.t("Copied To Clipboard"):Da.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement($N,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(DN,{size:16,color:"secondary"}):Bt.createElement(_N,{size:16,color:"gray"}))),Bt.createElement(uS,{target:"_blank",href:`${Xp}/swap/${e}`},Bt.createElement(bS,{container:N(),content:Da.t("View on Rango Explorer"),side:"bottom"},Bt.createElement(FN,{size:20})))))}i(ES,"RequestIdRow");import{i18n as IS}from"@lingui/core";import{Typography as AS}from"@rango-dev/ui";import up from"react";function NS(t){let{date:e,isFinished:o}=t;return up.createElement("div",{className:Zo()},up.createElement(AS,{variant:"label",size:"large",color:"neutral700"},o?IS.t("Finished at"):IS.t("Created at")),up.createElement(AS,{variant:"label",size:"small",color:"neutral700"},e))}i(NS,"SwapDateRow");var jN=3e3;function gp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=VN(),l=T().blockchains(),p=T().swappers(),{findToken:u}=T(),d=z().use.retry(),f=KN(),h=fp(null),[g,m]=$a(!1),[y,S]=$a(null),[C,k]=$a(null),[v,w]=$a(null),I=fp(y),A=fp(C),b=Ne.use.getNotifications(),E=Ne.use.removeNotification(),x=b(),W=zN(e),P=W?.networkStatus,U=i(Le=>{m(!0),S(Le)},"handleChangeModalState"),G=i(()=>{m(!1)},"handleCloseModal"),K=i(()=>{k({type:"loading",title:Ot.t("Change Network"),description:`We\u2019re switching the connected network to ${Z?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),R=i(()=>{k({type:"success",title:Ot.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),B=i(Le=>{k({type:"error",title:Ot.t("Network Switch Failed"),description:Le?.message||ee.detailedMessage.content})},"handleShowSwitchNetworkFailed"),Y=Qd(e),Z=W?UN(e,W):null,le=W?HN(e,W):null,ve=Fy(e),Ht=qd(e),be=i(Le=>!!c(Le)?.mobileWallet,"checkIsMobileWallet"),dt=!!P&&[Dn.WaitingForNetworkChange,Dn.NetworkChangeFailed].includes(P),kt=!!le?.walletType&&be(le.walletType),wt=!!le&&!!Z&&a(le.walletType,Z.network,Z),F=!!Z&&dt&&(kt||wt),O=i(()=>{F&&(K(),s(le.walletType,[{namespace:Z.namespace,network:Z.network}]).then(()=>{R()}).catch(Le=>{B(Le)}))},"handleSwitchNetwork"),X=i(()=>{U("switchNetwork"),O()},"handleSwitchNetworkClick"),ee=Hd(e,W,c),j=wS({swap:e,switchNetworkIsAvailable:F,handleSwitchNetworkClick:X,showNetworkModal:P,setNetworkModal:U,message:ee,blockchains:l,swappers:p}),Q=j.length,[Ve,q]=[e.steps[0],e.steps[Q-1]],ye=q?.outputAmount||q?.expectedOutputAmountHumanReadable,Je=e.steps.reduce((Le,Wt)=>Le+parseFloat(Wt.feeInUsd||""),0),mt=e.steps.find(Le=>Le.diagnosisUrl)?.diagnosisUrl,ao=M(parseFloat(ye||"0")*(q?.toUsdPrice||0),4,4),On=M(parseFloat(e.inputAmount)*(Ve?.fromUsdPrice||0),4,4),Eo=ye?new WS(ye).multipliedBy(q.toUsdPrice||0).toString():"",jr=new WS(e.inputAmount).multipliedBy(Ve?.fromUsdPrice||0).toString(),Ro=Kt(On,ao),ja=ee.detailedMessage.content||ee.shortMessage,dC=e.status==="success"?Ot.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(ye,6,6),token:j[Q-1]?.to.token.displayName,conciseAddress:so(e.wallets[j[Q-1]?.to.chain.displayName||""]?.address||""),chain:j[Q-1]?.to.chain.displayName}}):Te.createElement(dS,null,Te.createElement(dp,{variant:"body",size:"medium",color:"neutral700",align:"center"},ja?"":Ot.t("Transaction was not sent."),Y?`${Ot.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:Y.outputAmount,symbol:Y.symbol,blockchain:Y.blockchain}})}`:""),ja&&Te.createElement(_a,{align:"center",variant:"body",size:"medium",color:"neutral700"},Te.createElement("b",null,"Reason:")," ",ja));return mp(()=>{x.find(Wt=>Wt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId),G()):v&&w(null))},[e.status,e.requestId]),mp(()=>{if(F){if(U("switchNetwork"),P===Dn.WaitingForNetworkChange){K();return}if(P===Dn.NetworkChangeFailed){B();return}return}if(P===Dn.WaitingForConnectingWallet){U("connectWallet");return}if(P===Dn.NetworkChanged){U("switchNetwork"),R();return}y&&["connectWallet","switchNetwork"].includes(y)&&G()},[P]),mp(()=>{if(I.current=y,A.current=C,y==="switchNetwork"&&C?.type==="success"){let Le=setTimeout(()=>{I.current==="switchNetwork"&&A.current?.type==="success"&&G()},jN);return()=>clearTimeout(Le)}},[y,C]),Te.createElement(ae,{header:{title:Ot.t("Swap Details"),onCancel:e.status==="running"?()=>U("cancel"):void 0,suffix:e.status!=="running"&&Te.createElement(mo,null,Te.createElement(BS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>U("delete")},Te.createElement(dp,{size:"medium",variant:"label",color:"error"},Ot.t("Delete"))))},footer:Ht&&!v&&Te.createElement(BS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Le=ki(e,l,u);d(Le),setTimeout(()=>{f("../../")},0)}},Ot.t("Try again"))},Te.createElement(nS,{compact:!0,ref:h},Te.createElement(ES,{requestId:o}),Te.createElement(NS,{date:ve,isFinished:!!e.finishTime}),Te.createElement("div",{className:cS()},Te.createElement(qN,{fee:M(String(Je),2,2),time:Qn(oi(e.steps)),steps:Q}),Te.createElement(hr,{from:{price:{value:M(e.inputAmount,6,6),usdValue:On,realUsdValue:jr,realValue:e.inputAmount},token:{displayName:j[0]?.from.token.displayName||"",image:j[0]?.from.token.image},chain:{image:j[0]?.from.chain.image,displayName:j[0]?.from.chain.displayName||""}},to:{price:{value:M(ye,6,6),usdValue:ao,realUsdValue:Eo,realValue:ye||""},token:{displayName:j[Q-1]?.to.token.displayName||"",image:j[Q-1]?.to.token.image},chain:{image:j[Q-1]?.to.chain.image,displayName:j[Q-1]?.to.chain.displayName||""}},percentageChange:M(Ro,2,2),warningLevel:jt(Ro??0)})),Te.createElement("div",{className:pS()},Te.createElement(dp,{variant:"title",size:"small"},Ot.t("Swaps steps"))),Te.createElement(QN,{size:8}),Te.createElement(aS,null,j.map((Le,Wt)=>{let Ap=Wt,Un=e.steps[Wt]&&vS(e.steps[Wt]),mC=Un==="error"||Un==="in-progress"||Un==="warning"||Un==="completed"&&Wt===j.length-1;return Te.createElement(GN,{className:"widget-swap-details-step-item-container",key:Ap,step:Le,type:"swap-progress",ref:h,state:Un,hasSeparator:Wt!==0,tabIndex:Ap,isFocused:mC,tooltipContainer:N()})}))),Te.createElement(ip,{isOpen:g,state:y,switchNetworkModalState:C,onClose:G,onCancel:r,onDelete:n,message:ee.detailedMessage.content,swap:e,handleSwitchNetwork:X}),Te.createElement(sp,{open:!!v,diagnosisUrl:mt,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(ye,6,6),usdValue:ao,realUsdValue:Eo,realValue:ye||"",percentageChange:M(Ro,2,2),token:{displayName:j[Q-1]?.to.token.displayName||"",image:j[Q-1]?.to.token.image},chain:{image:j[Q-1]?.to.chain.image},description:dC}))}i(gp,"SwapDetails");import{i18n as Oa}from"@lingui/core";import{Divider as PS,NotFound as RN,Skeleton as Kr,Typography as Ua}from"@rango-dev/ui";import Ie from"react";import{i18n as XN}from"@lingui/core";import{Divider as YN,Skeleton as ZN,Typography as JN}from"@rango-dev/ui";import Ee from"react";import{css as Ut,styled as hp}from"@rango-dev/ui";var LS=hp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Vr=hp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Fa=hp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),p7=Ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),u7=Ut({paddingTop:"$15",display:"flex"}),d7=Ut({padding:"$15 $0"}),m7=Ut({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),f7=Ut({paddingBottom:"$10"}),g7=Ut({display:"flex",justifyContent:"start",alignItems:"center"}),h7=Ut({paddingTop:"$5",display:"flex",alignItems:"center"}),y7=Ut({display:"flex",alignItems:"center"}),S7=Ut({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),MS=Ut({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function yp(){return Ee.createElement(LS,null,Ee.createElement(Cr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(JN,{variant:"title",size:"small"},XN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1}),Ee.createElement("div",{className:MS()},Ee.createElement(YN,{direction:"horizontal",size:20}),Ee.createElement(ZN,{height:22,variant:"rectangular"}))),Ee.createElement(Fa,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1}))))}i(yp,"LoadingSwapDetails");function _S(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ae,{header:{title:Oa.t("Swap Details"),suffix:Ie.createElement(mo,null)}},o&&Ie.createElement(rS,null,Ie.createElement("div",{className:Zo()},Ie.createElement(Ua,{variant:"label",size:"large",color:"neutral700"},`${Oa.t("Request ID")}`),Ie.createElement("div",{className:Pa()},Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"})),Ie.createElement(PS,{direction:"horizontal",size:4}),Ie.createElement(Kr,{width:16,height:16,variant:"rectangular"}),Ie.createElement(PS,{direction:"horizontal",size:4}),Ie.createElement(Kr,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Zo()},Ie.createElement(Ua,{className:lS(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"})),Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"}))),Ie.createElement(yp,null)),!o&&Ie.createElement(sS,null,Ie.createElement(RN,{title:Oa.t("Not found"),description:Oa.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(_S,"SwapDetailsPlaceholder");function DS(){let{manager:t,state:e}=o0(),o=!e.loadedFromPersistor,n=Ct(t),{requestId:r}=r0(),a=Qe(),{fetchStatus:s}=T();if(!r)return Sp.createElement(n0,{containerStyles:{margin:"20px"},type:"error",title:e0.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&&t0(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?Sp.createElement(_S,{requestId:r,showSkeleton:c}):Sp.createElement(gp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(DS,"SwapDetailsPage");import{i18n as $S}from"@lingui/core";import{Divider as i0,getCategoriesCount as a0,SelectableCategoryList as s0,styled as OS,Typography as l0,Wallet as c0}from"@rango-dev/ui";import zt,{useState as FS}from"react";var p0=OS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),u0=OS(ce,{textAlign:"center"});function US(){let{fetchStatus:t}=T(),[e,o]=FS("ALL"),n=T().blockchains(),{config:r}=T(),[a,s]=FS(),c=oe.use.isActiveTab(),{list:l}=vt(),p=bu(l,n),d=a0(p)!==1,f=xu(l,e),h=i(g=>{ru(l,r.multiWallets)||s(g)},"handleWalletItemClick");return zt.createElement(ae,{header:{title:$S.t("Connect Wallets")}},zt.createElement(u0,null,d&&zt.createElement(zt.Fragment,null,zt.createElement(s0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),zt.createElement(i0,{size:24})),zt.createElement(l0,{variant:"title",size:"xmedium",align:"center"},$S.t("Choose a wallet to connect.")),zt.createElement(p0,null,f.map((g,m)=>{let y=`wallet-${m}-${g.type}`;return zt.createElement(c0,{key:y,...g,state:g.state,container:N(),onClick:()=>h(g),isLoading:t==="loading",disabled:!c})}),zt.createElement(ir,{id:"widget-state-full-connect-modal",wallet:a,onClose:()=>{s(void 0)}}))))}i(US,"WalletsPage");function zS(){return tm(),qs(),d0([{path:D.home,element:Ue.createElement(ny,null)},{path:D.routes,element:Ue.createElement(ly,null)},{path:D.fromSwap,children:[{index:!0,element:Ue.createElement(Ea,{type:"source"})},{path:D.blockchains,element:Ue.createElement(wa,{type:"source"})}]},{path:D.toSwap,children:[{index:!0,element:Ue.createElement(Ea,{type:"destination"})},{path:D.blockchains,element:Ue.createElement(wa,{type:"destination"})}]},{path:D.settings,children:[{index:!0,element:Ue.createElement(Dy,null)},{path:D.languages,element:Ue.createElement(iy,null)},{path:D.exchanges,element:Ue.createElement(Hc,{sourceType:"Exchanges"})},{path:D.bridges,element:Ue.createElement(Hc,{sourceType:"Bridges"})},{path:D.customTokens,children:[{index:!0,element:Ue.createElement(rh,null)},{path:D.addCustomTokens,children:[{index:!0,element:Ue.createElement(Jm,null)},{path:D.blockchains,element:Ue.createElement(wa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:D.swaps,children:[{index:!0,element:Ue.createElement(bh,null)},{path:D.swapDetails,element:Ue.createElement(DS,null)}]},{path:D.wallets,element:Ue.createElement(US,null)},{path:D.confirmSwap,element:Ue.createElement(Hg,null)}])}i(zS,"AppRoutes");import{useQueueManager as B0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as W0}from"rango-sdk";import{useContext as L0,useEffect as wp,useState as eC}from"react";import{Provider as S0}from"@rango-dev/wallets-react";import{WalletTypes as VS}from"@rango-dev/wallets-shared";import za,{createContext as C0,useEffect as KS,useMemo as T0,useRef as jS}from"react";import{useEffect as f0}from"react";import{Provider as m0}from"@hub3js/core";function HS(t){return t.map(e=>typeof e=="string"?e:e instanceof m0?e.id:e.config.type).join("-")}i(HS,"hashProviders");function Cp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return f0(()=>{o(),r()},[HS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Cp,"useWalletProviders");import{legacyFormatAddressWithNetwork as g0,legacyReadAccountAddress as QS}from"@rango-dev/wallets-core/legacy";import{Events as $n}from"@rango-dev/wallets-react";import{isEvmBlockchain as h0}from"rango-sdk";function qS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=T(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(h0).map(m=>m.name),u=i((m,y)=>{let[S,,C,k,v]=m,w={walletType:S,network:k.network??void 0,accounts:C};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=as(S,C,p,y.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace,k.derivationPath)},"onAccountsEvent"),d=i((m,y,S,C,k)=>{if(y===$n.ACCOUNTS){let v=Vn(k.supportedBlockchains);S&&u([m,y,S,C,k],{supportedChainNames:v})}y===$n.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),y===$n.NAMESPACE_DISCONNECTED&&n(m,S)},"handleUpdatesForHub"),f=i((m,y,S,C,k)=>{if(y===$n.ACCOUNTS){let v=Vn(k.supportedBlockchains),w=[],I=[];if(S?.forEach(b=>{let{network:E}=QS(b);p.includes(E)?w.push(b):I.push(b)}),r.filter(b=>b.walletType===m).map(b=>g0(b.address,b.chain)).length>0){if(w.length>0){let b=as(m,w,p,v,k.isContractWallet);a(m,{chains:b.map(E=>E.chain)})}I.length>0&&a(m,{chains:I.map(b=>{let{network:E}=QS(b);return E})})}S?u([m,y,S,C,k],{supportedChainNames:v}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,y,S,C,k)=>{if(y===$n.CONNECTED&&S){let v={walletType:m,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(y===$n.NETWORK&&S){let v={walletType:m,network:S,accounts:C.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,y,S,C,k)=>{k.isHub?d(m,y,S,C,k):f(m,y,S,C,k),h(m,y,S,C,k)},"handler")}}i(qS,"useUpdates");import{LegacyEvents as y0}from"@rango-dev/wallets-core/legacy";function GS(t,e){let[o,n,r,a,s]=e;n!==y0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(GS,"propagateEvents");var Ha=C0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function k0(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}=Cp(s.wallets,c),p=jS(),u=jS(),{handler:d}=qS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});KS(()=>{n().catch(console.log)},[]),KS(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=oe.use.isActiveTab(),h=T0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return za.createElement(Ha.Provider,{value:h},za.createElement(S0,{allBlockChains:a,providers:l,onUpdateState:(g,m,y,S,C)=>{let k=[g,m,y,S,C];d(...k),t.onUpdateState&&GS(t.onUpdateState,k)},autoConnect:!!f,configs:{wallets:s.wallets,walletOptions:{[VS.TON_CONNECT]:{provider:{manifestUrl:s.tonConnect?.manifestUrl}},[VS.TREZOR]:{provider:{manifest:s.trezorManifest}}}}},t.children))}i(k0,"Main");function Qa(t){let{config:e,...o}=t;return za.createElement(qu,{config:e},za.createElement(k0,{...o,config:e}))}i(Qa,"WidgetWallets");import{globalCss as w0}from"@rango-dev/ui";var XS=i(()=>w0({"@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 v0}from"@rango-dev/wallets-react";import{useEffect as b0,useRef as x0}from"react";function YS(){let{connect:t,state:e}=v0(),o=x0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);b0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(YS,"useForceAutoConnect");import{isApprovalTX as E0,RouteEventType as ZS,StepEventType as JS,StepExecutionEventStatus as I0,WidgetEvents as qa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as RS}from"react";function Tp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();RS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===JS.TX_EXECUTION&&s.status===I0.TX_SENT&&!E0(c)||s.type===JS.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(y=>y.blockchain===m.blockchain&&y.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&y.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return ke.on(qa.StepEvent,r),()=>ke.off(qa.StepEvent,r)},[ke,e]),RS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===ZS.FAILED||s.type===ZS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ke.on(qa.RouteEvent,r),()=>ke.off(qa.RouteEvent,r)},[ke])}i(Tp,"useSubscribeToWidgetEvents");import{useManager as A0}from"@rango-dev/queue-manager-react";import{useEffect as N0}from"react";function kp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=A0();N0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ct(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(kp,"useSyncNotifications");function vp(){YS(),XS(),Tp(),kp();let t=T().blockchains(),{canSwitchNetworkTo:e}=tC(),[o,n]=eC(null),[r,a]=eC(),s=L0(Ha),c=t.filter(W0);wp(()=>()=>Rd(),[]),wp(()=>()=>em(),[]),B0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),wp(()=>(Mo.init(),Ne.persist.hasHydrated()||Ne.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)}),Mo.destroy),[])}i(vp,"useBootstrap");import{styled as M0}from"@rango-dev/ui";var oC=M0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left",height:"100%","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Jo(){vp();let{config:t}=T(),{activeTheme:e}=uo(t?.theme||{}),{activeLanguage:o}=ko();return bp.createElement(P0,{language:o},bp.createElement(oC,{id:"swap-container",className:e()},bp.createElement(zS,null)))}i(Jo,"Main");import{setSolanaSignerConfig as eB}from"@rango-dev/signer-solana";import Ep,{useEffect as Ip,useMemo as tB}from"react";function nC(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${qt("BASE_URL")}/meta/dapp/config?apiKey=${qt("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(nC,"useFetchApiConfig");import{useState as _0}from"react";var D0=i(()=>{let[t,e]=_0(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=nu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),rC=D0;import{checkWaitingForNetworkChange as $0,makeQueueDefinition as F0}from"@rango-dev/queue-manager-rango-preset";import{Provider as O0}from"@rango-dev/queue-manager-react";import{useWallets as U0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as z0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as H0}from"rango-types";import Q0,{useMemo as q0}from"react";function G0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s,hubProvider:c}=U0(),l=q0(()=>F0({API_KEY:t.apiKey||qt("API_KEY"),BASE_URL:qt("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),{blockchains:p,connectedWallets:u}=T(),d=p(),f={blockchains:u.map(w=>({accounts:[w],name:w.chain}))},h=i(async(w,I)=>a(w,I.network,I)?await r(w,[I]):void 0,"switchNetwork"),g=i(w=>!!s(w).mobileWallet,"isMobileWallet"),m=d.filter(w=>w.enabled).reduce((w,I)=>(w[I.name]=I,w),{}),y=d.filter(H0),S=i(w=>{let{supportedChains:I}=s(w);return Vn(I)},"getSupportedChainNames"),C=e(),k={meta:{blockchains:m,evmBasedChains:y,evmNetworkChainInfo:z0(y),getSupportedChainNames:S},getSigners:o,wallets:f,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g,hubProvider:c},v=oe.use.isActiveTab();return Q0.createElement(O0,{queuesDefs:[l],context:k,onPersistedDataLoaded:w=>{$0(w)},isPaused:!v},t.children)}i(G0,"QueueManager");var iC=G0;import{useManager as Y0}from"@rango-dev/queue-manager-react";import Z0,{createContext as J0,useContext as R0}from"react";function aC(){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:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let y=e.find(S=>S.name===u)??null;n(y)}if(d!==void 0){let y=d?t(d)??null:null;r({meta:m,token:y})}if(f!==void 0){let y=e.find(S=>S.name===f)??null;a(y)}if(h!==void 0){let y=h?t(h)??null:null;s({meta:m,token:y})}g!==void 0&&c(g)},"updateQuoteInputs")}i(aC,"useUpdateQuoteInputs");import{cancelSwap as V0,getCurrentNamespaceOfOrNull as K0,getCurrentStep as j0,getRelatedWalletOrNull as X0}from"@rango-dev/queue-manager-rango-preset";var Ga=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ct(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=ki(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&V0(o)}getCurrentStepInfo(e){let o=j0(e);return{step:o,wallet:o?X0(e,o):null,network:o?K0(e,o)?.network:null}}};var sC=J0(void 0);function xp(t){let{manager:e}=Y0(),o=oe.use.isActiveTab(),n=z().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=T(),l=new Ga(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=T(),u=Su(a()),d=T().blockchains(),f=T().tokens(),h=T().swappers(),g=T().fetchStatus,m=ko().resetLanguage,y=Ne().getNotifications(),S=Ne().clearNotifications,C=aC(),{fromBlockchain:k,toBlockchain:v,fromToken:w,toToken:I,inputAmount:A}=z()(),b={isActiveTab:o,setCurrentTabAsActive:Mo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async E=>c(E)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:y,clearAll:S},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:C}};return Z0.createElement(sC.Provider,{value:b},t.children)}i(xp,"WidgetInfo");function lC(){let t=R0(sC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(lC,"useWidget");function Fn(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=nC(),{handleLoadCustomFont:a}=rC();return Ip(()=>{r().catch(console.log)},[]),Ip(()=>{n&&a(n)},[n]),tB(()=>{Eu({API_KEY:o?.apiKey||Gp(),BASE_URL:o?.apiUrl||jp})},[o.apiKey,o.apiUrl]),Ip(()=>{t.config?.signers?.customSolanaRPC&&eB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Ep.createElement(Qa,{config:o,onUpdateState:e},Ep.createElement(iC,{apiKey:o.apiKey},Ep.createElement(xp,null,t.children)))}i(Fn,"WidgetProvider");function cC(t){let e=t.config?.externalWallets;return Va.createElement(Ci,null,e?Va.createElement(Jo,null):Va.createElement(Fn,{config:t.config??nn},Va.createElement(Jo,null)))}i(cC,"Refuel");import Ka from"react";function pC(t){let e=t.config?.externalWallets;return Ka.createElement(Ci,null,e?Ka.createElement(Jo,null):Ka.createElement(Fn,{config:t.config??nn},Ka.createElement(Jo,null)))}i(pC,"Widget");function uC(){let{on:t,off:e}=ke;return{on:t,off:e}}i(uC,"useWidgetEvents");var gee={DerivationPath:or,Namespaces:Rn,Detached:tr,isOnDerivationPath:rr,isOnNamespace:nr,isOnDetached:Io};export{FR as EventSeverity,ln as MainEvents,jR as Networks,ZR as PendingSwapNetworkStatus,us as QuoteEventTypes,cC as Refuel,OR as RouteEventType,Ra as SUPPORTED_FONTS,gee as StatefulConnect,UR as StepEventType,zR as StepExecutionBlockedEventStatus,HR as StepExecutionEventStatus,gd as SwapModeContext,ht as UI_ID,ms as UiEventTypes,ds as WalletEventTypes,VR as WalletEvents,XR as WalletTypes,pC as Widget,ln as WidgetEvents,Fn as WidgetProvider,Qa as WidgetWallets,rl as customizedThemeTokens,Za as pickProviderVersionWithFallbackToLegacy,qR as readAccountAddress,en as useStatefulConnect,vt as useWalletList,tC as useWallets,lC as useWidget,uC as useWidgetEvents,gT as widgetEventEmitter};
1
+ var fC=Object.defineProperty;var i=(t,e)=>fC(t,"name",{value:e,configurable:!0});import{EventSeverity as UR,RouteEventType as zR,StepEventType as HR,StepExecutionBlockedEventStatus as QR,StepExecutionEventStatus as qR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as VR}from"@rango-dev/wallets-core/legacy";import{useWallets as tC,Events as jR}from"@rango-dev/wallets-react";import{Networks as YR,WalletTypes as ZR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as RR}from"rango-types";import{Divider as Lk}from"@rango-dev/ui";import co,{useEffect as Mk,useRef as Pk,useState as fd}from"react";import{WalletState as gC}from"@rango-dev/ui";import{useWallets as hC}from"@rango-dev/wallets-react";import{useReducer as yC}from"react";function Np(t){return!!t.derivationPath}i(Np,"isStateOnDerivationPathStep");function Bp(t){return!!t.namespace}i(Bp,"isStateOnNamespace");var Xr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Wp(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 Xr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Xr;default:throw new Error("Action hasn't been defined.")}}i(Wp,"reducer");function en(){let{state:t,disconnect:e,connect:o}=hC(),[n,r]=yC(Wp,Xr),a=i(async(d,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(d.type,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";if(h?.disconnectOnError)try{await u(d)}catch{console.warn("An error happened during disconnecting wallet after error on connecting.")}throw new Error(m,{cause:g})}},"runConnect"),s=i(async(d,f)=>{let h=d.state===gC.DISCONNECTED,g=f?.forceConnectToNamespaces;if(h){let m=!!d.isHub,y=m?d.properties?.find(C=>C.name==="namespaces")?.value:d.needsNamespace,S=m?d.properties?.find(C=>C.name==="derivationPath")?.value:d.needsDerivationPath;if(g){let C=g.find(k=>!y?.data?.map(v=>v.value).includes(k));if(C)throw new Error(`One of the forced namespaces is not available in the wallet. Forced namespace: ${C}`);if(g.length>1&&S)throw new Error("Derivation path is not supported when multiple namespaces are selected.");return g.length===1&&g[0]&&S?(r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:g[0]}}),{status:"derivation-path"}):await a(d,g.map(k=>({namespace:k})),{...f,disconnectOnError:!0})}if(!y?.data?.length)return await a(d,void 0,f);if(y?.data.length&&y.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:d,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(y?.data.length===1&&y.data[0]){if(S){let C=y.data[0];return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:C.value}}),{status:"derivation-path"}}return await a(d,y?.data?.map(C=>({namespace:C.value})),f)}}if(d.isHub&&!f?.forceConnectToNamespaces){let m=d.properties?.find(y=>y.name==="namespaces")?.value;if(m?.data.length&&m.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(k=>k.name==="namespaces")?.value:d.needsNamespace,m=h?d.properties?.find(k=>k.name==="derivationPath")?.value:d.needsDerivationPath,y=g?.selection==="single",S=f[0];if(!S)throw new Error("To confirm a namespace, you should select at least one namespace.");if(y&&m)return r({type:"needsDerivationPath",payload:{providerType:d.type,providerImage:d.image,namespace:S}}),{status:"derivation-path"};if(!Bp(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:d,selectedNamespaces:C??null}}),{status:"Detached"}},"handleNamespace"),l=i(async(d,f,h)=>{if(!f)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Np(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=[{namespace:n.derivationPath.namespace,derivationPath:f}],S=!!d.isHub?d.properties?.find(v=>v.name==="namespaces")?.value:d.needsNamespace,C=!!S?.data&&S.data.length>1,k=!!h?.forceConnectToNamespaces;return C&&!k?(r({type:"detached",payload:{targetWallet:d,selectedNamespaces:m??null,derivationPath:f}}),{status:"Detached"}):await a(d,m)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async d=>{let f=t(d.type);return f.connected||f.connecting?(await e(d.type),Io(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(en,"useStatefulConnect");import{WalletState as Ts}from"@rango-dev/ui";import{useWallets as AT}from"@rango-dev/wallets-react";import{detectMobileScreens as NT,WalletTypes as Yn}from"@rango-dev/wallets-shared";import{useCallback as BT,useEffect as WT}from"react";import vT,{createContext as bT,useContext as xT,useEffect as ET,useRef as IT}from"react";import{create as kT}from"zustand";import{persist as wT}from"zustand/middleware";import{allProviders as SC}from"@rango-dev/provider-all";var Xa=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()}},tn=new Xa;import{Provider as Ya}from"@hub3js/core";import{defineVersions as Mp,pickVersion as Pp}from"@hub3js/core/utils";function _p({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=Za(a);return s instanceof Ya?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 Ya?o.push(Mp().version("1.0.0",n).build()):o.push(Mp().version("0.0.0",n).build())}),o}return t}i(_p,"matchAndGenerateProviders");function Za(t){try{return Pp(t,"1.0.0")[1]}catch{return Pp(t,"0.0.0")[1]}}i(Za,"pickProviderVersionWithFallbackToLegacy");function Dp(t){return t.map(o=>Za(o)).map(o=>o instanceof Ya?o.id:o.config.type)}i(Dp,"configWalletsToWalletName");function $p(t,e){return e.find(o=>o.name===t)?.displayName}i($p,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Fp(t,e){return e.find(o=>o.name===t)?.logo}i(Fp,"getBlockchainImage");function zn(t,e){return e.find(o=>o.id===t)?.title}i(zn,"getSwapperDisplayName");function Ao(t,e){return e.find(o=>o.name===t)??null}i(Ao,"findBlockchain");function Ja(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(Ja,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function on(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(on,"isValidTokenAddress");function Yr(t){let{contractAddress:e,blockchainMeta:o}=t;return o.info?.tokenUrl?o.info.tokenUrl.replace("{address}",e):o.info?.addressUrl.replace("{wallet}",e)}i(Yr,"createTokenExplorerUrl");function Hn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=gt(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=gt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Hn,"matchTokensFromConfigWithMeta");function Zr(t){let{config:e}=t,o=e.from?.blockchains||[],n=e.to?.blockchains||[];if(!o.length||!n.length)return[];let r=[...o,...n],a=new Set(r);return Array.from(a)}i(Zr,"getSupportedBlockchainsFromConfig");function Up(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Up,"makeProvidersOptionsFromConfig");var nn={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/assets/refs/heads/main/manifests/tonconnect/manifest.json"}},CC={clientUrl:void 0},TC={liquiditySources:void 0};function Op(t){let e=Up(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return SC(o).map(a=>a())}i(Op,"generateProviders");var zp=i((t,e,o)=>{let n=Op({...nn,...t});return{config:{...nn,...t},iframe:CC,campaignMode:TC,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=Hn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Hn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});tn.set("supportedSourceTokens",l),tn.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=Op(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Up(a);return _p({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as Hp}from"rango-types";var Qp=[Hp.EVM,Hp.SOLANA],Jr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as DC}from"rango-sdk";function qp(){return process.env.REACT_APP_RANGO_API_KEY}i(qp,"getApiKeyFromEnv");function Gp(){let t=qp();if(t)return t;throw new Error("Ensure you have set REACT_APP_RANGO_API_KEY in your env variables.")}i(Gp,"getApiKeyFromEnvOrThrow");function Vp(){return qp()||"NOT_SET"}i(Vp,"getApiKeyFromEnvOrNotSet");import{BlockchainCategories as IC,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as AC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as NC,HYPERLIQUID_SIGN_NETWORK as BC,getBlockChainNameFromId as WC,isEvmAddress as LC,Networks as rs}from"@rango-dev/wallets-shared";import an from"bignumber.js";import kC from"bignumber.js";var pe=new kC(0);var No="~",Kp=[];import{BlockchainCategories as es,WalletState as EC}from"@rango-dev/ui";import{TransactionType as ts}from"rango-sdk";import{UI_ID as wC}from"@rango-dev/ui";var jp="https://api.rango.exchange",Xp="https://explorer.rango.exchange",ht={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...wC};var Yp="Roboto",Ra=[{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 rn(t){return Array.from(new Set(t))}i(rn,"removeDuplicateFrom");function Rr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Rr,"debounce");function rt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(rt,"containsText");function Rp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Rp,"exactText");function eu(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(eu,"startWithText");var N=i(()=>document.getElementById(ht.SWAP_BOX_ID),"getContainer"),Bo=i(()=>document.getElementById(ht.EXPANDED_BOX_ID),"getExpanded");function tu(t,e,o){let n=!!e&&Rp(e,t),r=!!o&&Rp(o,t);return n!==r?n?-1:1:0}i(tu,"compareExactMatchText");function os(t,e,o){let n=!!e&&rt(e,t),r=!!o&&rt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(os,"compareContainsText");function ns(t,e,o){let n=!!e&&eu(e,t),r=!!o&&eu(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ns,"compareStartWithText");function ou(t,e,o){if(!o)return 0;let n=tu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=tu(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ns(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=os(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ns(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=os(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ns(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=os(o,t.address,e.address);if(r!==0)return r}return 0}i(ou,"compareWithSearchFor");var ei=i((t,e)=>{switch(e){case es.ALL:return!0;case es.UTXO:return t===ts.TRANSFER;case es.OTHER:return t!==ts.TRANSFER&&t!==ts.EVM;default:return t===e}},"isBlockchainTypeInCategory"),nu=i(t=>Ra.find(o=>o.value===t)?.url,"getFontUrlByName");function ru(t,e){let o=!!t.find(n=>n.state===EC.CONNECTED);return e===!1&&o}i(ru,"isSingleWalletActive");function iu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(iu,"memoizedResult");function au(t,e){let o=new Set;return e.forEach(n=>{o.add(n.blockchain)}),t.filter(n=>o.has(n.name))}i(au,"filterBlockchainsWithAtLeastOneToken");import{BigNumber as gu}from"bignumber.js";function su(t){return t.replace(/^0+(?=\d)/g,"")}i(su,"removeLeadingZeros");function lu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(lu,"ensureLeadingZeroForDecimal");function cu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(cu,"formatThousandsWithCommas");function pu(t){return t.replace(/\s+/g,"-")}i(pu,"replaceSpacesWithDash");function uu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(uu,"stripTrailingZeros");function du(t){return t=t.replace(/[^\d.]/g,"").replace(/\./g,(e,o,n)=>n.indexOf(".")===o?".":""),t}i(du,"parseNumericValue");function ti(t){return/^0+(?:\.0+)?$/.test(t)}i(ti,"isZeroValue");function mu(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(mu,"isValidCurrencyFormat");function fu(t){return/\d+$/.test(t)}i(fu,"isColorKeyOverridden");var Qn=i(t=>{let e=Math.floor(t%60/15)*15,o=parseInt((t/60).toString());return o>=60?`${Math.floor(o/5)*5}:00`:`${o.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`},"roundedSecondsToString"),M=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new gu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new gu(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 oi=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Lt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),qn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function hu(t){return ti(t)?"0":t.endsWith(".")?t.slice(0,-1):uu(t)}i(hu,"sanitizeInputAmount");function MC(t,e){let o=t?.get("EVM");return o?.network?WC(o.network,e)??o.network:null}i(MC,"getConnectedEvmChainName");function Gn(t,e){return _C(t,e)?it.PARTIALLY_CONNECTED:e.connected?it.CONNECTED:e.connecting?it.CONNECTING:e.installed?it.DISCONNECTED:it.NOT_INSTALLED}i(Gn,"getWalletConnectionStatus");function yu(t,e,o,n){return o.filter(r=>!Kp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,namespaces:l}=t(r);return s&&(!c||!!n&&MC(l,a)!==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=rn(u.map(y=>y.type)),m=Gn(e(r),t(r));return{title:a,image:s,link:NC(c),state:m,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:d,properties:f,isHub:h}})}i(yu,"mapWalletTypesToWalletInfo");function Vn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Vn,"walletAndSupportedChainsNames");function as(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}=AC(l),d=c.length>0,f=c.includes(u),h=u===rs.Unknown;if(d&&!f&&!h)return;let m=u===rs.Unknown&&LC(p);if(h&&!m)return;if(o.includes(u)||m)if(r)s(u,p.toLowerCase(),r);else{let S=c.filter(k=>o.includes(k));S.forEach(k=>{s(k,p.toLowerCase())}),S.includes(BC)&&s(rs.HYPERLIQUID,p.toLowerCase())}else s(u,p)}),a}i(as,"prepareAccountsForWalletStore");function Wo(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(Wo,"getQuoteChains");function Kn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Kn,"isAccountAndWalletMatched");var Su=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?is(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new an(pe));return PC(e.toString())},"calculateWalletUsdValue");function PC(t){let e=t.toString().split(".");return e[0]&&(e[0]=cu(e[0])),e.join(".")}i(PC,"numberWithThousandSeparator");function is(t,e){return new an(t).shiftedBy(-e).toFixed()}i(is,"representAmountInNumber");function ii(t){if(!t)return null;let e=is(t.amount,t.decimals),o=t.usdValue?is(t.usdValue,t.decimals):null,n=M(e,8,8),r=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(ii,"formatBalance");function Cu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new an(t.usdValue).shiftedBy(-t.decimals):pe,n=e&&e.usdValue?new an(e.usdValue).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new an(t.amount).shiftedBy(-t.decimals):pe,n=e&&e.amount?new an(e.amount).shiftedBy(-e.decimals):pe;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Cu,"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 Tu(t){return t.sort((e,o)=>+(o.state===it.CONNECTED)-+(e.state===it.CONNECTED)||+(o.state===it.PARTIALLY_CONNECTED)-+(e.state===it.PARTIALLY_CONNECTED)||+(o.state===it.DISCONNECTED||o.state===it.CONNECTING)-+(e.state===it.DISCONNECTED||e.state===it.CONNECTING))}i(Tu,"sortWalletsBasedOnConnectionState");function so(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(so,"getConciseAddress");function ku({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(ku,"getAddress");var wu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function vu(t){return t.map(e=>e.state).join("-")}i(vu,"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 xu(t,e){return e===IC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(ei(n,e))return!0;return!1})}i(xu,"filterWalletsByCategory");function _C(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(_C,"checkIsWalletPartiallyConnected");var ss={API_KEY:Vp()};function qt(t){return ss[t]||""}i(qt,"getConfig");function Eu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ss=e,ss}i(Eu,"initConfig");var Iu=20,Au=25,ls="theme-widget",cs=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"),ps=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Nu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ai,at=i(()=>ai||(ai=new DC(qt("API_KEY"),qt("BASE_URL")),ai),"httpService");import{i18n as Wu}from"@lingui/core";var si=[.5,1,3],li=1,sn=5,jn=30,ci=0;var Xe=(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))(Xe||{});import{WidgetEvents as Bu}from"@rango-dev/queue-manager-rango-preset";var us=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(us||{}),ds=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ds||{}),ms=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ms||{}),ln=(a=>(a[a.RouteEvent=Bu.RouteEvent]="RouteEvent",a[a.StepEvent=Bu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(ln||{});function pi(t,e){let o=t.map(a=>a.swapperGroup),n=[];return rn(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(pi,"getUniqueSwappersGroups");function Lu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Lu,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function cn(t,e){return e?.[t]==="enabled"}i(cn,"isRoutingEnabled");var Mu=i((t,e,o)=>Re("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function pn(t){return t==ci?{type:"error",message:Wu.t("Slippage must be greater than or equal to 0.01")}:t>sn&&t<=jn?{type:"warning",message:Wu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(pn,"getSlippageValidation");var Pu=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=Zr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>Qp.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=tn.get(u);d?.length||(d=Hn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),tn.set(u,d)),d=Mu(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?!!(rt(g.symbol,o.searchFor)||rt(g.address||"",o.searchFor)||rt(g.name||"",o.searchFor)):!0).sort((g,m)=>{let y=e().isTokenPinned(g,o.type),S=e().isTokenPinned(m,o.type);if(y!==S)return y?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(g),A=o.getBalanceFor(m),b=Cu(I,A);if(b!==0)return b}let C=l.get(g.blockchain),k=l.get(m.blockchain),v=Ja(g,C),w=Ja(m,k);if(v!==w)return v?-1:1;if(g.isPopular!==m.isPopular)return g.isPopular?-1:1;if(o.searchFor){let I=ou(g,m,o.searchFor);if(I)return I}return g.isSecondaryCoin!==m.isSecondaryCoin?g.isSecondaryCoin?1:-1:C&&k?C.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=gt(o),s=n.get(a);return s||(s=r.find(c=>gt(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(Lu)},fetch:async()=>{try{let{routing:o}=e().config,n=cn("enableCentralizedSwappers",o),r=await at().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=r.popularTokens,p=r.swappers.filter(d=>d.enabled);r.blockchains.sort((d,f)=>d.sort-f.sort).forEach(d=>{d.enabled&&a.set(d.name,d)}),r.tokens.forEach(d=>{let f=gt(d);c[d.blockchain]||(c[d.blockchain]=[]),s.set(f,d),c[d.blockchain]?.push(f)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:l,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as $C,Catalonia as FC,Chinese as _u,Denmark as OC,English as UC,Finland as zC,French as HC,German as QC,Greece as qC,Hungary as GC,India as VC,Indonesian as KC,Italian as jC,Japanese as XC,Korea as YC,Lithuania as ZC,Malay as JC,Netherlands as RC,Pakistan as eT,Philippines as tT,Poland as oT,Portuguese as nT,Russian as rT,SaudiArabia as iT,Serbia as aT,Slovakia as sT,SouthAfrica as lT,Spanish as cT,Swahili as pT,Swedish as uT,Thai as dT,Turkish as mT,Ukrainian as fT,Vietnamese as gT}from"@rango-dev/ui";var Du=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:lT},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:iT},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:$C},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:FC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:_u},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:_u},{title:"Danish",label:"Dansk",local:"da",SVGFlag:OC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:RC},{title:"English",label:"English",local:"en",SVGFlag:UC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:tT},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:zC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:HC},{title:"German",label:"Deutsch",local:"de",SVGFlag:QC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:qC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:VC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:GC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:KC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:jC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:XC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:YC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:ZC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:JC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:oT},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:nT},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:rT},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:aT},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:sT},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:cT},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:pT},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:uT},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:dT},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:mT},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:fT},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:eT},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:gT}],un="en";var $u=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:li,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=rn(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Re("theme",n),s=Re("language",n),c=Re("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||un},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||un}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=Zr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Cs from"bignumber.js";import hT from"mitt";var ke=hT(),yT={on:ke.on,off:ke.off};var Fu=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 Ou from"bignumber.js";function Gt(t){return`${t.blockchain}${No}${t.address}${No}${t.symbol}`}i(Gt,"createAssetKey");function Uu(t,e){return`${Gt(e)}${No}${t}`}i(Uu,"createBalanceKey");function Xn(t){let[e,o,n]=t.split(No);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Xn,"extractAssetFromBalanceKey");function gs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Gt(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Ou(r??pe).multipliedBy(o[s].amount).toString():""})})}),o}i(gs,"computeNextBalancesWithNewPrices");function hs(t,e){let o={};return t.balances?.forEach(n=>{let r=Uu(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Ou(c??pe).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(hs,"createBalanceStateForNewAccount");function ys(t,e){for(let o in e){let n=Xn(o);if(n){let r=Gt(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(ys,"updateAggregatedBalanceStateForNewAccount");function ST(t,e){let o=Xn(e);if(!o)return t;let n=Gt(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(ST,"removeBalanceFromAggregatedBalance");function Ss(t,e,o){let n=t.connectedWallets.filter(l=>e.includes(l.walletType));t.connectedWallets.forEach(l=>{e.includes(l.walletType)||(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=Xn(l);if(!p)return;!!n.find(d=>Uu(d.address,{address:p.address,blockchain:d.chain,symbol:p.symbol})===l)?a=ST(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(Ss,"computeNextStateAfterWalletBalanceRemoval");function CT(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(CT,"matchWalletDetailsWithConnectedWallet");var TT=iu(),zu=Fu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Kn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Kn(s,a))?{...a,loading:!1,error:!1,explorerUrl:CT(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Kn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Kn(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 at().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};gs(m,g,d);let y=hs(g,e);f=ys(f,y),d={...d,...y}}),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&&(ke.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}=Ss(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(ke.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=[...new Set(o.map(l=>l.walletType))];e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await at().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};gs(f,d,l);let{_balances:h,_aggregatedBalances:g}=Ss(f,r,{chains:[d.blockChain]});if(p=g,l=h,!e().connectedWallets.find(y=>r.includes(y.walletType)&&y.address===d.address&&y.chain===d.blockChain))return;let m=hs(d,e);p=ys(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=>{let h=e().connectedWallets.find(g=>g.chain===f.blockChain&&g.address)?.walletType;return h?{chain:f.blockChain,walletType:h,address:f.address}:null}).filter(f=>!!f);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=Gt(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 Cs(u.amount),f=new Cs(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(No);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>TT(()=>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=Xn(c);if(p&&p.blockchain===n.chain&&l){let u=e().findToken(p),d=l?.amount?new Cs(l.amount).shiftedBy(-l.decimals):pe;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 Hu(t){return kT()(wT((...e)=>({...zu(...e),...Pu(...e),...$u(...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(Hu,"createAppStore");var Qu=bT(null);function T(){let t=xT(Qu);if(ET(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function qu(t){let e=IT();return e.current||(e.current=Hu(t.config)),vT.createElement(Qu.Provider,{value:e.current},t.children)}i(qu,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{getAvailableProviders:o}=T(),{state:n,getWalletInfo:r}=AT(),{handleDisconnect:a}=en(),s=Dp(o()),c=yu(n,r,s,e);c=NT()?c.filter(f=>f.showOnMobile!==!1&&n(f.type).installed):c;let l=Tu(c),p=BT(()=>{let f=c?.filter(h=>h.state===Ts.CONNECTING)||[];for(let h of f)a(h)},[vu(c)]);WT(()=>()=>{p()},[]);let u=i(f=>{let h=f.find(m=>m.type===Yn.DEFAULT);return!h||h.state===Ts.NOT_INSTALLED?!1:f.filter(m=>m.state!=Ts.NOT_INSTALLED&&![Yn.DEFAULT,Yn.WALLET_CONNECT_2,Yn.LEDGER].includes(m.type)&&r(m.type).supportedChains.filter(y=>y.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i(f=>f==Yn.DEFAULT&&!u(c),"shouldExcludeWallet");return{list:l.filter(f=>!d(f.type)),terminateConnectingWallets:p}}i(vt,"useWalletList");import{Modal as _T}from"@rango-dev/ui";import DT from"react";import{create as PT}from"zustand";var Gu="rango-widget";var Zn=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(Gu),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 MT=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"),lo=MT;var oe=lo(PT()((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})}}))),Mo=new Zn({onInit:()=>oe.setState({tabManagerInitiated:!0}),onClaim:()=>oe.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>oe.setState({isActiveTab:!1})});function ne(t){let{watermark:e}=oe();return DT.createElement(_T,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import{i18n as fn}from"@lingui/core";import{Alert as YT,Button as ZT,Divider as gn,Image as JT,MessageBox as RT,RadioRoot as ek,WalletImageContainer as tk}from"@rango-dev/ui";import se,{useEffect as ok,useMemo as nk,useState as rk}from"react";import{i18n as UT}from"@lingui/core";import{Typography as Ru}from"@rango-dev/ui";import dn from"react";function ui(t,e){return t.find(o=>o.name===e)?.logo}i(ui,"getBlockchainLogo");import{darkTheme as $T,Image as FT,styled as Vt,Typography as OT}from"@rango-dev/ui";var di=Vt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${$T} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),mi=Vt("div",{display:"flex",gap:"$8",alignItems:"center"}),Ku=Vt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),ju=Vt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Xu=Vt("div",{display:"flex",gap:"$6",alignItems:"center"}),Yu=Vt("div",{paddingLeft:"48px"}),Zu=Vt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ju=Vt(OT,{maxWidth:"100px"}),fi=Vt(FT,{variants:{disabled:{true:{opacity:"0.5"}}}});function gi(t){let{namespace:e}=t,o=T().blockchains();return dn.createElement(di,{unsupported:!0},dn.createElement(mi,null,dn.createElement(fi,{src:ui(o,e.id),size:40,disabled:!0}),dn.createElement(ju,null,dn.createElement(Ru,{variant:"label",size:"large"},e.label),dn.createElement(Ru,{variant:"body",size:"xsmall"},UT.t("(Currently not supported)")))))}i(gi,"NamespaceUnsupportedItem");import{Checkbox as KT,Radio as jT}from"@rango-dev/ui";import bs from"react";import{i18n as vs}from"@lingui/core";import{ChevronDownIcon as HT,ChevronUpIcon as QT,Divider as qT,Typography as Jn}from"@rango-dev/ui";import Ae,{useEffect as GT,useState as VT}from"react";import{Image as td,Tooltip as od,Typography as zT}from"@rango-dev/ui";import Mt from"react";import{styled as ed}from"@rango-dev/ui";var ks=ed("div",{display:"flex",alignItems:"center",padding:0,margin:0}),hi=ed("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 ws=3;function nd(t){let{chains:e}=t;return Mt.createElement(ks,{id:"widget-supported-chains-container"},e.slice(0,ws).map((o,n)=>Mt.createElement(od,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Mt.createElement(hi,{firstItem:n===0},Mt.createElement(td,{src:o.logo,size:15})))),e.length>ws&&Mt.createElement(od,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Mt.createElement(ks,null,e.map((o,n)=>Mt.createElement(hi,{key:o.name,firstItem:n===0},Mt.createElement(td,{src:o.logo,size:15}))))},Mt.createElement(hi,null,Mt.createElement(zT,{variant:"body",size:"xsmall"},"+",e.length-ws))))}i(nd,"SupportedChainsList");function Po(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=VT(!1),p=T().blockchains();GT(()=>l(!1),[o]);let u=e.getSupportedChains(p),d=!o&&!r&&u.length>1;return Ae.createElement(di,{hasError:!!o,clickable:!!s,onClick:s},Ae.createElement(mi,null,Ae.createElement(fi,{src:ui(p,e.id),size:40}),Ae.createElement(Ku,{showSupportedChains:d||r||!!o},Ae.createElement(Xu,null,Ae.createElement(Jn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(Jn,{variant:"body",size:"small",color:"success500"},vs.t("Connected")),!!o&&Ae.createElement(Jn,{variant:"body",size:"small",color:"error500"},vs.t("Connection failed"))),d&&Ae.createElement(nd,{chains:u}),r&&Ae.createElement(Ju,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Zu,{onClick:()=>l(f=>!f)},Ae.createElement(Jn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},vs.t("See why")),c?Ae.createElement(QT,{size:12,color:"gray"}):Ae.createElement(HT,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(qT,{size:4}),Ae.createElement(Yu,null,Ae.createElement(Jn,{variant:"body",size:"small",color:"neutral700"},o))))}i(Po,"NamespaceItem");function rd(t){let{onClick:e,type:o,namespace:n}=t;return bs.createElement(Po,{namespace:n,onClick:e,suffix:o==="radio"?bs.createElement(jT,{value:n.value}):bs.createElement(KT,{checked:t.value})})}i(rd,"NamespaceListItem");import{Button as XT,styled as id}from"@rango-dev/ui";var yi=id("ul",{padding:0,paddingBottom:"$20",margin:0}),mn=id(XT,{minHeight:"$40"});function Rn(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=T().blockchains(),[l,p]=rk([]),u=nk(()=>a?.data.filter(m=>!m.unsupported),[e?.type]),d=i(m=>{p(r?[m]:y=>y.includes(m)?y.filter(S=>S!==m):y.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?se.createElement(ek,{value:l?.[0]},m):se.createElement(se.Fragment,null,m),"wrapRadioRoot");return ok(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let m=u.filter(y=>y.getSupportedChains(c).some(S=>t.value.defaultSelectedChains?.includes(S.name)));p(m.map(y=>y.value))}else p(u.map(m=>m.value))},[]),se.createElement(se.Fragment,null,se.createElement(RT,{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:se.createElement(tk,null,se.createElement(JT,{src:s,size:45}))}),r?se.createElement(se.Fragment,null,se.createElement(gn,{size:20,className:"_initial_namespace_list_header_alert_top_divider"}),se.createElement(YT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:fn.t("This wallet can only connect to one chain at a time. ")}),se.createElement(gn,{size:30,className:"_initial_namespace_list_header_alert_bottom_divider"})):se.createElement(se.Fragment,null,se.createElement(gn,{size:30,className:"_initial_namespace_list_header_button_top_divider"}),se.createElement(ZT,{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")),se.createElement(gn,{size:10,className:"_initial_namespace_list_header_button_bottom_divider"})),se.createElement(yi,null,g(se.createElement(se.Fragment,null,a?.data.map((m,y,S)=>se.createElement(se.Fragment,{key:m.id},m.unsupported?se.createElement(gi,{namespace:m}):se.createElement(rd,{value:l.includes(m.value),namespace:m,type:r?"radio":"checkbox",onClick:()=>d(m.value)}),y!==S.length-1&&se.createElement(gn,{size:10})))))),se.createElement(gn,{size:20}),se.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},fn.t("Connect")))}i(Rn,"Namespaces");import{i18n as er}from"@lingui/core";import{Alert as uk,Button as dk,Divider as hn,Image as mk,MessageBox as fk,WalletImageContainer as gk}from"@rango-dev/ui";import{useWallets as hk}from"@rango-dev/wallets-react";import ue from"react";import{styled as ik}from"@rango-dev/ui";var ad=ik("div",{display:"flex",justifyContent:"end"});import{i18n as xs}from"@lingui/core";import{Button as ak,Spinner as sk}from"@rango-dev/ui";import Es,{useLayoutEffect as lk,useRef as ck,useState as pk}from"react";function sd(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=pk(null),p=ck(!1);lk(()=>{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:so(m)},"getConnectedAddress"),h=i(()=>r.connected?xs.t("Disconnect"):c?xs.t("Try again"):xs.t("Connect"),"getButtonText");return Es.createElement(Po,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?Es.createElement(sk,{color:"info"}):Es.createElement(ak,{id:"widget-name-space-connect-btn",variant:"ghost",type:r.connected?"error":"primary",size:"xsmall",onClick:async()=>d(),disabled:n},h())})}i(sd,"NamespaceDetachedItem");function tr(t){let{value:e,selectedNamespaces:o,onConfirm:n,confirmText:r=er.t("Done"),onDisconnectWallet:a,navigateToDerivationPath:s}=t,{targetWallet:c}=e,{connect:l,disconnect:p,state:u}=hk(),d=c.type,f=u(d),h=c.properties?.find(v=>v.name==="namespaces"),g=c.properties?.find(v=>v.name==="derivationPath"),m=h?.value.selection==="single",y=i(async(v,w)=>{m&&await p(d),g&&w?.shouldAskForDerivationPath?s(v):await l(d,[{namespace:v,network:"",derivationPath:w?.derivationPath??void 0}])},"handleConnectNamespace"),S=i(async v=>{await p(d,[v])},"handleDisconnectNamespace"),C=i(()=>m?ue.createElement(ue.Fragment,null,ue.createElement(hn,{size:20,className:"_detached_namespace_list_header_alert_top_divider"}),ue.createElement(uk,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:er.t("This wallet can only connect to one chain at a time.")}),ue.createElement(hn,{size:30,className:"_detached_namespace_list_header_alert_bottom_divider"})):ue.createElement(ue.Fragment,null,ue.createElement(hn,{size:30,className:"_detached_namespace_list_header_button_top_divider"}),ue.createElement(ad,null,ue.createElement(dk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:f.connecting||!f.connected,onClick:a},er.t("Disconnect wallet"))),ue.createElement(hn,{size:16,className:"_detached_namespace_list_header_button_bottom_divider"})),"renderNamespaceListHeader"),k=i(v=>{if(v.unsupported)return ue.createElement(gi,{namespace:v});let w=o?.find(b=>b.namespace===v.value),I=f.namespaces?.get(v.value);if(!I)throw new Error(`State for ${v.value} was not found!`);let A=m&&f.connecting;return ue.createElement(sd,{namespace:v,initialConnect:!!w,disabled:A,state:I,handleConnect:async b=>y(v.value,{derivationPath:w?.derivationPath,shouldAskForDerivationPath:b?.shouldAskForDerivationPath}),handleDisconnect:async()=>S(v.value)})},"renderNamespaceItem");return ue.createElement(ue.Fragment,null,ue.createElement(fk,{type:"info",title:er.t("Connect {wallet}",{wallet:c.title}),description:er.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:ue.createElement(gk,null,ue.createElement(mk,{src:c.image,size:45}))}),C(),ue.createElement(yi,{id:"widget-detached-namespace-list"},c.needsNamespace?.data.map((v,w,I)=>ue.createElement(ue.Fragment,{key:v.id},k(v),w!==I.length-1&&ue.createElement(hn,{size:10})))),ue.createElement(hn,{size:20}),ue.createElement(mn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:n},r))}i(tr,"Detached");import{i18n as yn}from"@lingui/core";import{Divider as Tk,Image as kk,MessageBox as wk,Select as vk,TextField as bk}from"@rango-dev/ui";import bt,{useEffect as xk,useState as cd}from"react";import{namespaces as yk}from"@rango-dev/wallets-shared";var Si={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Is(t){let e=t?yk[t]?.derivationPaths:null;return e?[...e,Si]:[]}i(Is,"getDerivationPaths");import{Button as Sk,styled as As,Typography as Ck}from"@rango-dev/ui";var ld=As("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ns=As(Ck,{paddingLeft:"$10"}),Bs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},HP=As(Sk,{minHeight:"$40"});var pd="0";function or(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=cd(null),[c,l]=cd(pd),p=a===Si.id,u=Is(o),d=i(({value:h})=>{let g=u?.find(m=>m.id===h);g&&(a===Si.id&&Number.isNaN(Number(c))&&l(pd),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 xk(()=>{s(Is(o)[0]?.id||null)},[o]),bt.createElement(bt.Fragment,null,bt.createElement(wk,{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:bt.createElement(kk,{src:n,size:45})}),bt.createElement(ld,{className:"_derivation_path_inputs_container"},bt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},yn.t("Choose Derivation Path Template")),bt.createElement(vk,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Bs}}),bt.createElement(Tk,{size:20}),bt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},p?yn.t("Enter Path"):yn.t("Enter Index")),bt.createElement(bk,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Bs})),bt.createElement(mn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},yn.t("Confirm")))}i(or,"DerivationPath");import{i18n as Sn}from"@lingui/core";import{Image as Ak,MessageBox as Ls,WalletImageContainer as Nk,WalletState as Bk}from"@rango-dev/ui";import{useWallets as Wk}from"@rango-dev/wallets-react";import _o from"react";import{keyframes as Ek,styled as Ws}from"@rango-dev/ui";var RP=Ws("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),ud=Ws("div",{position:"relative"}),Ik=Ek({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),dd=Ws("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Ik} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Ms(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a,getWalletInfo:s}=Wk();return Gn(s(n),a(n))===Bk.CONNECTED?_o.createElement(Ls,{type:"success",title:Sn.t("Wallet Connected"),description:Sn.t("Your wallet is connected, you can use it to swap.")}):o?_o.createElement(Ls,{type:"error",title:Sn.t("Failed to Connect"),description:o||Sn.t("Your wallet is not connected. Please try again.")}):_o.createElement(Ls,{type:"loading",title:Sn.t("Connecting to your wallet"),description:Sn.t("Click connect in your wallet popup."),icon:_o.createElement(ud,null,_o.createElement(Nk,null,_o.createElement(Ak,{src:r,size:45})),_o.createElement(dd,null))})}i(Ms,"ConnectStatus");function md(t,e){return t().status==="init"&&!!e}i(md,"isOnStatus");function nr(t){return t().status==="namespace"}i(nr,"isOnNamespace");function rr(t){return t().status==="derivationPath"}i(rr,"isOnDerivationPath");function Io(t){return t().status==="detached"}i(Io,"isOnDetached");var _k=3e3,Dk=300;function ir(t){let e=Pk(),[o,n]=fd(!1),[r,a]=fd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:d,resetState:f,handleDisconnect:h}=en(),g=i(w=>{u(t.wallet,w).then(k).catch(s)},"handleConfirmNamespaces"),m=i(()=>{S()},"handleDetachedConfirm"),y=i(w=>{if(!w)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(t.wallet,w).then(k).catch(s)},"handleDerivationPathConfirm"),S=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),k=i((w,I)=>{let A=w.status==="connected",b=["disconnected","disconnected-unhandled"].includes(w.status);A?(t.onConnect?.(),I||(e.current=setTimeout(S,_k))):b&&S()},"afterConnected"),v=i(w=>{t.wallet?.needsDerivationPath&&u(t.wallet,[w])},"handleNavigateToDerivationPath");return Mk(()=>{if(t.wallet){C();let w=!1,I=!0;i(()=>{setTimeout(()=>{I=!1,w||n(!0)},Dk)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(b=>{["namespace","Detached","derivation-path"].includes(b.status)||(w=!0),k(b,I)}).catch(s)}},[t.wallet]),co.createElement(ne,{id:t.id,open:o,onClose:S,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},md(d,t.wallet)&&co.createElement(co.Fragment,null,co.createElement(Ms,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),co.createElement(Lk,{direction:"vertical",size:32})),nr(d)&&co.createElement(Rn,{onConfirm:g,value:d().namespace}),rr(d)&&co.createElement(or,{onConfirm:y,value:d().derivationPath}),Io(d)&&co.createElement(tr,{onConfirm:m,onDisconnectWallet:()=>void h(d().namespace.targetWallet),value:d().namespace,selectedNamespaces:d().selectedNamespaces,navigateToDerivationPath:v}))}i(ir,"StatefulConnectModal");import Va from"react";import $k,{Fragment as Fk}from"react";import{MemoryRouter as Ok,useInRouterContext as Uk}from"react-router";function Ci({children:t}){let o=Uk()?Fk:Ok;return $k.createElement(o,null,t)}i(Ci,"AppRouter");import{I18nManager as D0}from"@rango-dev/ui";import bp from"react";import Ue from"react";import{useRoutes as f0}from"react-router-dom";var D={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 Tn,useRef as Ei}from"react";import tt from"bignumber.js";import{create as Kd}from"zustand";import{subscribeWithSelector as jd}from"zustand/middleware";import{createContext as zk,useContext as Hk}from"react";var gd=zk({swapMode:"swap",isMultiMode:!1});function et(){let{swapMode:t,isMultiMode:e}=Hk(gd);return{swapMode:t,isMultiMode:e}}i(et,"useSwapMode");import{i18n as St}from"@lingui/core";import{getRelatedWalletOrNull as Gk,RouteEventType as pD}from"@rango-dev/queue-manager-rango-preset";import He from"bignumber.js";import{PendingSwapNetworkStatus as sr}from"rango-types";import{i18n as ze}from"@lingui/core";var re=i(()=>({genericServerError:ze.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:ze.t("Please reset your liquidity sources."),description:ze.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:ze.t("No Routes Found."),description:ze.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:ze.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:ze.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:ze.t("High Price Impact"),title:ze.t("Price impact is too high!"),description:ze.t("The price impact is significantly higher than the allowed amount."),confirmMessage:ze.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:ze.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:ze.t("USD Price Unknown"),title:ze.t("USD Price Unknown, Cannot calculate Price Impact."),description:ze.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:ze.t("Confirm USD Price Unknown")}}),"errorMessages");function hd(t){return t.type===0?t.diagnosisMessage??re().noResultError.title:t.type===1?t.diagnosisMessage??re().genericServerError:""}i(hd,"getQuoteErrorMessage");import{i18n as Ti}from"@lingui/core";var Do=i(()=>({connectWallet:Ti.t("Connect Wallet"),swap:Ti.t("Swap"),swapAnyway:Ti.t("Swap anyway"),ethWarning:Ti.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ps(t,e){return{"Network Fee":e("Network Fee"),"Swapper Fee":e("Protocol Fee"),"Affiliate Fee":e("Affiliate Fee"),"Outbound network fee":e("Outbound Fee"),"Rango Fee":e("Rango Fee")}[t]}i(Ps,"getFeeLabel");var _s=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],yd=100,Sd=30,Cd=15,Td=60;var kd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],wd=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as qk}from"@rango-dev/queue-manager-rango-preset";import Y_ from"bignumber.js";function bd(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(bd,"getRequiredBalanceOfWallet");function jt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(jt,"getPriceImpactLevel");function ki(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=qk(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=Ao(a?a.toBlockchain:n.fromBlockchain,e),l=Ao(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(ki,"createRetryQuote");function Cn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=ar(o),s=yt(o);if(o&&a&&s){let p=Kt(a.toString(),s.toString());if(!!p&&Nd(a,p)){let d=vi(o?.swaps,n),f=jt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:d,warningLevel:f}}}if(e&&Ld(e,o))return{type:4,usdValueChange:M(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:M(Kt(yt(e)??"1",yt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=bi(o.swaps),l=r>sn;if(Wd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Bd(o,r),minRequiredSlippage:c};return null}i(Cn,"generateQuoteWarnings");function xd(t){return![4].includes(t.type)}i(xd,"isQuoteWarningConfirmationRequired");function Kt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ds(t.toString(),e.toString());return n&&n<0?n:null}i(Kt,"getPriceImpact");var Ed=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"),Id=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"),Ad=i(t=>{let e=i((o,n)=>{let r=_s.indexOf(o.value),a=_s.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Nd(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return kd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new He(r)))}i(Nd,"hasHighValueLoss");function Md(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(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(Md,"hasLimitError");function Pd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new He(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new He(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 He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=St.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=St.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=St.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=St.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=re().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Pd,"getLimitErrorMessage");function _d(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Do().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Do().swap,action:"confirm-swap",disabled:!0}:s?{title:Do().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Do().ethWarning,action:"confirm-warning",disabled:!1}:{title:Do().swap,action:"confirm-swap",disabled:!1}:{title:Do().connectWallet,action:"connect-wallet",disabled:!1}}i(_d,"getSwapButtonState");function $s(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}i($s,"canComputePriceImpact");function Fs(t,e){let o=pe;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 He(r.amount).multipliedBy(a||0))}return o}i(Fs,"getUsdFeeOfStep");function vi(t,e){return t.reduce((o,n)=>o.plus(Fs(n,e)),pe)}i(vi,"getTotalFeeInUsd");function Os(t){let e=pe,o=new He(t.price||0);return e=e.plus(new He(t.amount).multipliedBy(o)),e}i(Os,"getUsdFee");function Dd(t){return t.reduce((e,o)=>e.plus(Os(o)),pe)}i(Dd,"getTotalFeesInUsd");function $d(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($d,"getFeesGroup");function Fd(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(Fd,"checkSlippageErrors");function Bd(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(Bd,"checkSlippageWarnings");function bi(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(bi,"getMinRequiredSlippage");function Wd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Wd,"hasProperSlippage");function Od(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,k)=>(C[k.chain]=k.address,C),{}),y=[];return r?.forEach(C=>{y.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:y,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(Od,"createQuoteRequestBody");function Ud(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Ud,"getWalletsForNewSwap");function ar(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(ar,"getUsdInputFrom");function yt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(yt,"getUsdOutputFrom");function Ds(t,e){return new He(e).div(new He(t)).minus(1).multipliedBy(yd).toNumber()}i(Ds,"getPercentageChange");function Ld(t,e){let o=ar(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=Ds(n.toString(),r.toString());return wd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Ld,"isOutputAmountChangedExcessively");function zd(t,e,o){let n=t.validationStatus,r=Wo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>bd(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=M(new He(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=M(new He(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=St.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=St.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=St.t(" for input and network fee")),St.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:ft(s.asset.blockchain,o)}})})}i(zd,"generateBalanceWarnings");function lr(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==sr.NetworkChanged}i(lr,"isNetworkStatusInWarningState");function Hd(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,"")),lr(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?Gk(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case sr.WaitingForConnectingWallet:r=u?St.t("Connect {wallet}",{wallet:u}):r;break;case sr.WaitingForQueue:r=r||St.t("Waiting for other running tasks to be finished");break;case sr.WaitingForNetworkChange:r=r||St.t("Waiting for changing wallet network");break;case sr.NetworkChangeFailed:r=r||St.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(Hd,"getSwapMessages");function Qd(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(Qd,"getLastConvertedTokenInFailedSwap");function qd(t){return t.status==="failed"}i(qd,"shouldRetrySwap");function Gd(t,e,o,n,r,a){if(!n||t)return!0;let s=Wo({filter:"all",quote:n}),c=Wo({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?on(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Gd,"isConfirmSwapDisabled");function Vd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Vd,"isTokensIdentical");var xi=i((t,e)=>t?.usdPrice?new tt(e||pe).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),Xd=i(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new tt(0),outputUsdValue:new tt(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=pe,a=o.inputUsdValue;return qn(o.inputAmount)?(e&&(n=e?.outputAmount?new tt(e?.outputAmount):null,a=ar(e)??pe,r=yt(e)??pe),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new tt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new tt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new tt(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:xi(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 tt(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=hu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=du(e);ti(e)||(o=su(o),o=lu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new tt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:xi(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:xi(n??null,s),outputUsdValue:new tt(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?xi(e.toToken,e.outputAmount?.toString()||""):new tt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new tt(0),inputUsdValue:new tt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new tt(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"),Yd=Kd()(jd(Xd)),Zd=Kd()(jd(Xd)),Vk=lo(Yd),Kk=lo(Zd);function z(){let{swapMode:t}=et();return lo(t==="refuel"?Zd:Yd)}i(z,"useQuoteStore");var Jd=i((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ke.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&&ke.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"),Rd=Vk.subscribe(Jd),em=Kk.subscribe(Jd);function tm(){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,d=T().fetchStatus,f=T().blockchains(),{findToken:h}=T(),{setAffiliateRef:g,setAffiliatePercent:m,setAffiliateWallets:y}=T(),S=u?.from?.tokens,C=u?.from?.blockchains,k=u?.to?.tokens,v=u?.to?.blockchains,w=Ei(void 0),I=Ei(void 0),A=Ei(void 0),b=Ei(void 0);Tn(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),Tn(()=>{if(d==="success"){r();let E=f.find(P=>P.name===u?.from?.blockchain),x=u?.from?.token,W=x&&h(x);(E||!E&&A.current)&&n(E??null),W?a({token:W,meta:{blockchains:f}}):!W&&w.current&&a({token:null}),A.current=u?.from?.blockchain,w.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,d]),Tn(()=>{cs(s,S)&&a({token:null}),ps(l,C)&&n(null)},[S,C]),Tn(()=>{cs(c,k)&&a({token:null}),ps(p,v)&&o(null)},[k,v]),Tn(()=>{if(d==="success"){r();let E=f.find(P=>P.name===u?.to?.blockchain),x=u?.to?.token,W=x&&h(x);(E||!E&&b.current)&&o(E??null),W?e({token:W,meta:{blockchains:f}}):!W&&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,d]),Tn(()=>{g(u?.affiliate?.ref??null),m(u?.affiliate?.percent??null),y(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(tm,"useSyncStoresWithConfig");import{useEffect as Hs,useRef as jk}from"react";import{useInRouterContext as Xk,useLocation as Yk,useSearchParams as Zk}from"react-router-dom";function Us(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Us,"convertTokenSearchParamToAsset");function zs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(zs,"tokenToSearchParam");function qs(){let t=Yk(),[e,o]=Zk(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:d,setInputAmount:f}=z()(),h=T().fetchStatus,g=T().blockchains(),m=Xk(),{updateIframe:y,updateCampaignMode:S}=T(),C=T().isInCampaignMode(),k=jk(),{findToken:v}=T(),w=i(()=>{let A={};for(let[B,Y]of e.entries())(B.startsWith("utm_")||B.startsWith("privy_"))&&(A[B]=Y);let b=e.get("fromAmount"),E=e.get("fromBlockchain"),x=e.get("fromToken"),W=e.get("toBlockchain"),P=e.get("toToken"),U=e.get("autoConnect"),G=e.get("clientUrl"),K=e.get("liquiditySources"),R=e.get("blockchain");return{fromAmount:b,fromBlockchain:E,fromToken:x,toBlockchain:W,toToken:P,autoConnect:U,clientUrl:G,liquiditySources:K,extraQueryParams:A,blockchain:R}},"getUrlSearchParams"),I=i(A=>{for(let b in A)A[b]||delete A[b];o(A,{replace:!0})},"updateUrlSearchParams");Hs(()=>{let{autoConnect:A,clientUrl:b,extraQueryParams:E,blockchain:x}=w();m&&h==="success"&&I({fromBlockchain:n?.name,fromToken:zs(a),toBlockchain:r?.name,toToken:zs(s),fromAmount:c,autoConnect:A??void 0,clientUrl:b??void 0,blockchain:x??void 0,liquiditySources:C?k.current:void 0,...E})},[t.pathname,c,n,a,r,s,C,h]),Hs(()=>{if(!m)return;let A=w();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&f(A.fromAmount),h==="success"){let b=g.find(G=>G.name===A.fromBlockchain),E=A.fromToken&&b&&Us(A.fromToken,b),x=E?v(E):void 0,W=g.find(G=>G.name===A.toBlockchain),P=A.toToken&&W&&Us(A.toToken,W),U=P?v(P):void 0;b&&(l(b),x&&u({token:x,meta:{blockchains:g}})),W&&(p(W),U&&d({token:U,meta:{blockchains:g}}))}},[h]),Hs(()=>{let{clientUrl:A,liquiditySources:b}=w();y("clientUrl",A||void 0),S("liquiditySources",b?.split(",")??void 0)},[])}i(qs,"useSyncUrlAndStore");import{i18n as vn}from"@lingui/core";import{Alert as Sv,Button as Cv,darkTheme as Tv,Divider as Tl,DoneIcon as kv,styled as wv,TextField as vv,Typography as bv}from"@rango-dev/ui";import qe,{useState as xv}from"react";import{useNavigate as Ev,useSearchParams as Iv}from"react-router-dom";import{ChevronRightIcon as Jk,Divider as am,Image as Rk,Typography as sm}from"@rango-dev/ui";import xt from"react";import{darkTheme as om,styled as Gs}from"@rango-dev/ui";var nm=Gs("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${om} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${om} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),rm=Gs("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),im=Gs("div",{display:"flex"});function Vs(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return xt.createElement(rm,null,xt.createElement(sm,{size:"large",variant:"label"},n),xt.createElement(am,{size:10}),xt.createElement(nm,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},xt.createElement(im,null,r&&xt.createElement(xt.Fragment,null,xt.createElement(Rk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),xt.createElement(am,{size:4,direction:"horizontal"})),xt.createElement(sm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),xt.createElement(Jk,{size:12,color:"black"})))}i(Vs,"BlockchainSelectorButton");import{i18n as Ys}from"@lingui/core";import{Button as sw,Divider as dm,MessageBox as lw}from"@rango-dev/ui";import po,{useEffect as mm,useState as Zs}from"react";import{i18n as Ii}from"@lingui/core";import{Divider as $o,ExternalLinkIcon as ow,Image as nw,InfoIcon as rw,Tooltip as iw,Typography as pr}from"@rango-dev/ui";import de from"react";var lm="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";import{Button as ew,darkTheme as kn,styled as cr,Typography as tw}from"@rango-dev/ui";var Ks=cr("a",{textDecoration:"none",color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${kn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${kn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),cm=cr("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${kn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${kn} &`]:{color:"$colors$neutral900"}}}),js=cr(ew,{minHeight:"$40"}),pm=cr(tw,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),um=cr("div",{display:"flex",justifyContent:"center",alignItems:"center"});var aw=9;function Xs(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=n.address?Yr({contractAddress:n.address,blockchainMeta:s}):void 0,l=i(()=>window.open(lm,"_blank"),"onClickLearnMore");return de.createElement(ne,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},de.createElement(cm,null,de.createElement(nw,{src:n.image===""?Jr:n.image,size:45,type:"circular"}),de.createElement($o,{size:4}),de.createElement(um,null,de.createElement(pm,{variant:"title",size:"medium"},n.symbol),n.symbol.length>aw&&de.createElement(iw,{content:n.symbol,container:N()},de.createElement(rw,{size:12,color:"gray"}))),de.createElement(pr,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),de.createElement($o,{size:4}),de.createElement(pr,{variant:"body",size:"medium"},c?de.createElement(Ks,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,de.createElement(ow,{size:12,color:"gray"})):de.createElement(Ks,null,n.address)),de.createElement($o,{size:4}),n.coinSource&&de.createElement(pr,{className:"_coin-source",variant:"body",size:"xsmall"},Ii.t("via")," ",de.createElement(pr,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),de.createElement($o,{size:"32"}),de.createElement(pr,{size:"medium",variant:"body",className:"_custom-token-description"},Ii.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."))),de.createElement($o,{size:40}),de.createElement($o,{size:10}),de.createElement(js,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ii.t("Import Anyway")),de.createElement($o,{size:10}),de.createElement(js,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ii.t("Learn More")))}i(Xs,"CustomTokenModal");function ur(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=T(),[d,f]=Zs(!1),[h,g]=Zs(!1),[m,y]=Zs(!1),S=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),k=i(()=>{y(!0),C()},"handleErrorModalButtonClick"),v=i(()=>{m&&n?.type==="network-error"&&(y(!1),S()),l()},"handleExit"),w=i(()=>{e&&(u(e),c())},"handleSubmit");return mm(()=>{n&&f(!0)},[n]),mm(()=>{o&&e&&g(!0)},[o,e]),po.createElement(po.Fragment,null,po.createElement(ne,{open:d,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:v,container:N()},po.createElement(lw,{title:n?.title??"",type:"error",description:n?.message||Ys.t("Failed Network, Please retry.")},po.createElement(dm,{size:40}),po.createElement(dm,{size:10}),po.createElement(sw,{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"?Ys.t("Retry"):Ys.t("Add another custom token")))),o&&e&&po.createElement(Xs,{blockchain:o,token:e,onSubmitClick:w,onClose:()=>g(!1),open:h,onExit:p}))}i(ur,"ImportCustomToken");import{useManager as dv}from"@rango-dev/queue-manager-react";import{BottomLogo as mv,Divider as Km,Header as fv}from"@rango-dev/ui";import Be,{useEffect as $i,useLayoutEffect as gv,useRef as jm,useState as Xm}from"react";import{useRef as cw}from"react";function Ai(){return window.self!==window.top}i(Ai,"isAppLoadedIntoIframe");function Js(){let t=cw(null),{iframe:e}=T(),o=Ai()&&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(Js,"useIframe");import{useNavigate as pw}from"react-router-dom";function Qe(){let t=pw();return()=>t(-1)}i(Qe,"useNavigateBack");import{createTheme as il,darkTheme as vw,lightTheme as bw}from"@rango-dev/ui";import{useEffect as xw,useState as Ew}from"react";import{theme as kw,darkColors as ww}from"@rango-dev/ui";import nl from"react";var Ni=16,Bi=255,fm=.11;function uw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(uw,"expandShortHexColor");function dw(t,e){return t.padStart(e,"0")}i(dw,"pad");function Rs(t){let e=Math.min(Math.max(Math.round(t),0),Bi);return dw(e.toString(Ni),2)}i(Rs,"intToHex");function mw(t){return`#${Rs(t.red)}${Rs(t.green)}${Rs(t.blue)}`}i(mw,"rgbToHex");function fw(t){let e=parseInt(t.slice(1,3),Ni),o=parseInt(t.slice(3,5),Ni),n=parseInt(t.slice(5,7),Ni);return{red:e,green:o,blue:n}}i(fw,"hexToRGB");function gw(t,e){let o=1-fm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(gw,"generateShade");function hw(t,e){let o=fm*e;return{red:t.red+(Bi-t.red)*o,green:t.green+(Bi-t.green)*o,blue:t.blue+(Bi-t.blue)*o}}i(hw,"generateTint");function yw(t){return gm(t,gw)}i(yw,"calculateShades");function Sw(t){return gm(t,hw)}i(Sw,"calculateTints");function gm(t,e){let o=fw(t),n=[];for(let r=1;r<9;r++)n.push(mw(e(o,r)));return n}i(gm,"calculateColors");function el(t,e,o){let a=Sw(t).reverse().concat(t),s=yw(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(el,"createTintsAndShades");function tl(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)&&!fu(r)){let l=uw(a);Object.assign(n,el(l,r,s))}}return{...n,...e}}i(tl,"expandToGenerateThemeColors");var hm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Cw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=hm(o%52)+e;return hm(o%52)+e},"toAlphabeticName"),Tw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ol=i(t=>Cw(Tw(5381,JSON.stringify(t))>>>0),"toHash");function rl(t){let e=kw.colors,o={...e,...ww},n,r;if(t?.light){let s={colors:tl(e,t.light)};n={id:`${ls}-light-${ol(s)}`,tokens:s}}if(t?.dark){let s={colors:tl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ls}-dark-${ol(s)}`,tokens:s}}return{light:n,dark:r}}i(rl,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>nl.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(nl.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(nl.cloneElement(e,{key:c}))}}),o}i(ym,"joinList");function Sm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Sm,"doesWindowPreferDarkColorScheme");function uo(t){let{colors:e,fontFamily:o=Yp,borderRadius:n=Iu,secondaryBorderRadius:r=Au}=t,[a,s]=Ew(Sm()?"dark":"light"),{theme:c}=T(),{dark:l,light:p}=rl(e),u=il({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,bw.className],f=[u.className,vw.className];if(p){let g=il(p.id,p.tokens);d.push(g.className)}if(l){let g=il(l.id,l.tokens);f.push(g.className)}return xw(()=>{let g=i(m=>{m.matches?s("dark"):s("light")},"switchThemeListener");return Sm()&&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(uo,"useTheme");var Ct=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 Cm}from"@lingui/core";import{Alert as Iw,Button as Aw}from"@rango-dev/ui";import Tm from"react";function al(t){return Tm.createElement(Iw,{action:Tm.createElement(Aw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Cm.t("Activate this tab")),type:"warning",variant:"alarm",title:Cm.t("Another tab is open and handles transactions.")})}i(al,"ActivateTabAlert");import{i18n as sl}from"@lingui/core";import{Button as Nw,Divider as Bw,MessageBox as Ww}from"@rango-dev/ui";import Wi from"react";function ll(t){let{open:e,onClose:o,onConfirm:n}=t;return Wi.createElement(ne,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Wi.createElement(Ww,{title:sl.t("Activate current tab"),type:"warning",description:sl.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.")},Wi.createElement(Bw,{size:20}),Wi.createElement(Nw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},sl.t("Confirm"))))}i(ll,"ActivateTabModal");import{ChevronLeftIcon as Pw}from"@rango-dev/ui";import Am from"react";import{css as Lw,darkTheme as km,IconButton as Mw,styled as Fo}from"@rango-dev/ui";var Pt=Fo(Mw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${km} &`]:{backgroundColor:"$neutral"}}}),wm=Fo("div",{position:"absolute",background:"$secondary500",[`.${km} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),mo=Fo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vm=Fo("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"}}}}),bm=Fo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xm=Fo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Em=Lw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Im=Fo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function cl(t){return Am.createElement(Pt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(Pw,{color:"black",size:16}))}i(cl,"BackButton");import{i18n as _w}from"@lingui/core";import{Button as Dw,Typography as $w}from"@rango-dev/ui";import pl from"react";function ul(t){return pl.createElement(mo,null,pl.createElement(Dw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},pl.createElement($w,{variant:"label",size:"medium",color:"error500"},_w.t("Cancel"))))}i(ul,"CancelButton");import{i18n as Fw}from"@lingui/core";import{Image as Ow,Tooltip as Uw,WalletIcon as zw,WalletState as Nm}from"@rango-dev/ui";import Oo from"react";function dl(t){let{list:e}=vt(),o=e.filter(r=>r.state===Nm.CONNECTED||r.state===Nm.PARTIALLY_CONNECTED),n=o.length?Oo.createElement("div",{className:Em()},o.map(r=>Oo.createElement(Im,{key:r.title},Oo.createElement(Ow,{src:r.image,size:14})))):Fw.t("Connect Wallet");return Oo.createElement(Uw,{container:t.container,side:"bottom",content:n},Oo.createElement(Pt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Oo.createElement(wm,null),Oo.createElement(zw,{size:18,color:"black"})))}i(dl,"WalletButton");import{i18n as Mi}from"@lingui/core";import{NotificationsIcon as nv,Popover as rv,SettingsIcon as iv,Tooltip as Pi,TransactionIcon as av}from"@rango-dev/ui";import Me from"react";import{Notifications as Gw}from"@rango-dev/ui";import Vw from"react";import{useNavigate as Kw}from"react-router-dom";import{create as Hw}from"zustand";import{persist as Qw,subscribeWithSelector as qw}from"zustand/middleware";var Ne=lo(Hw()(Qw(qw((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 ml(){let t=Kw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=T().blockchains(),{findToken:a}=T();return Vw.createElement(Gw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Fp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${D.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(ml,"NotificationContent");import{useManager as jw}from"@rango-dev/queue-manager-react";import{InProgressIcon as Xw}from"@rango-dev/ui";import Bm from"react";var Yw=i(()=>{let{manager:t}=jw();return Ct(t).map(({swap:o})=>o).find(o=>o.status==="running")?Bm.createElement(xm,{id:"widget-header-history-badge-container"},Bm.createElement(Xw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Wm=Yw;import{EventSeverity as Zw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Jw}from"@rango-dev/ui";import Lm from"react";function Mm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Zw.WARNING);return o?Lm.createElement(vm,{isSever:n},Lm.createElement(Jw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Mm,"NotificationsBadge");import{RefreshProgressButton as Rw}from"@rango-dev/ui";import fl,{useEffect as ev,useState as Pm}from"react";var tv=1e3,_m=60,ov=100;function Li({onClick:t}){let[e,o]=Pm(0),[n,r]=Pm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");ev(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===_m&&c()},tv):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 fl.createElement(Pt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},fl.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},fl.createElement(Rw,{size:22,color:t?"black":"gray",progress:e/_m*ov})))}i(Li,"RefreshButton");function Uo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=T(),c=Re("notification",s)||r.includes("notifications");return Me.createElement(Me.Fragment,null,!r.includes("refresh")&&Me.createElement(Pi,{container:a||N(),side:"top",content:Mi.t("Refresh")},Me.createElement(Li,{onClick:e})),!c&&Me.createElement(rv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Me.createElement(ml,null)},Me.createElement("div",null,Me.createElement(Pi,{container:N(),side:"top",content:Mi.t("Notifications")},Me.createElement(Pt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Me.createElement(nv,{size:18,color:"black"}),Me.createElement(Mm,null))))),!r.includes("settings")&&Me.createElement(Pi,{container:N(),side:"top",content:Mi.t("Settings")},Me.createElement(Pt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Me.createElement(iv,{size:18,color:"black"}))),!r.includes("history")&&Me.createElement(Pi,{container:N(),side:"top",content:Mi.t("History")},Me.createElement(Pt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Me.createElement(av,{size:18,color:"black"}),Me.createElement(Wm,null))))}i(Uo,"HeaderButtons");import{i18n as gl}from"@lingui/core";import{Divider as $m,MessageBox as cv,RefreshIcon as pv}from"@rango-dev/ui";import wn from"react";import{Button as sv,styled as lv}from"@rango-dev/ui";var Dm=lv(sv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function hl(t){let{open:e,onClose:o}=t;return wn.createElement(ne,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},wn.createElement(cv,{title:gl.t("Something went wrong"),type:"error",description:gl.t("Something went wrong. Please refresh the app.")},wn.createElement($m,{size:30}),wn.createElement(Dm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},wn.createElement(pv,{size:20,color:"primary"}),wn.createElement($m,{size:4,direction:"horizontal"}),gl.t("Refresh"))))}i(hl,"RefreshModal");var Fm="700px",Om="425px",Um="550px",zm="640px",Hm="800px";function yl(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(yl,"onScrollContentAttachStatusToContainer");import{css as uv,styled as _i}from"@rango-dev/ui";var Di=uv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Qm=_i("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",maxHeight:Fm,variants:{height:{auto:{height:"auto"},fixed:{height:"100%",minHeight:Om,[`@media screen and (min-height: ${Hm})`]:{minHeight:Um}}},showBanner:{true:{overflow:"visible"}}}}),qm=_i("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Gm=_i("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"}}}),Vm=_i("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ae(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Js(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=T(),[u,d]=Xm(!1),{config:{features:f,theme:h}}=T(),{watermark:g}=oe(),m=g==="FULL",{activeTheme:y}=uo(h||{}),[S,C]=Xm(!1),k=Re("connectWalletButton",f),{isActiveTab:v,tabManagerInitiated:w,showActivateTabModal:I,setShowActivateTabModal:A,activateCurrentTab:b,setShowCompactTokenSelector:E}=oe(),x=Qe(),{manager:W}=dv(),U=Ct(W).map(({swap:Z})=>Z).some(Z=>Z.status==="running"),G=i(()=>b(Mo.forceClaim,U),"onActivateTab"),K=i(()=>{r.onWallet?.()},"onConnectWallet"),R=typeof r.hasBackButton>"u"||r.hasBackButton,B=jm(null),Y=jm(null);return $i(()=>{let Z=(p?.swapBoxBanner?.routes?.length??0)===0,le=!!p?.swapBoxBanner?.routes?.some(ve=>location.pathname.endsWith(ve));C(!!p?.swapBoxBanner&&(Z||le))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),$i(()=>(Ai()&&Y.current&&e(Y.current),()=>{o()}),[]),$i(()=>(B.current?.addEventListener("scroll",yl),()=>{B.current?.removeEventListener("scroll",yl)}),[]),$i(()=>{d(c==="failed")},[c]),gv(()=>{if(!Y.current)return;let Z=new ResizeObserver(le=>{for(let ve of le)ve.contentRect&&E(ve.contentRect.height<parseInt(zm))});return Z.observe(Y.current),()=>Z.disconnect()},[]),Be.createElement(Qm,{height:s,id:ht.SWAP_BOX_ID,className:`${y()} ${Di()}`,ref:Y,showBanner:S},Be.createElement(fv,{prefix:R?Be.createElement(cl,{onClick:()=>{x(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!k&&Be.createElement(dl,{container:N(),onClick:K,isConnected:!!l?.length}),r.onCancel&&Be.createElement(ul,{onClick:r.onCancel}))}),Be.createElement(qm,{ref:B},n),Be.createElement(ll,{open:I,onClose:()=>A(!1),onConfirm:G}),Be.createElement(Gm,null,Be.createElement("div",{className:"footer__content"},w&&!v&&Be.createElement("div",{className:"footer__alert"},Be.createElement(al,{onActivateTab:G}),Be.createElement(Km,{size:10})),a),Be.createElement(Km,{size:12}),Be.createElement("div",{className:`footer__logo ${m?"logo__show":"logo__hidden"}`},Be.createElement(mv,null))),S&&Be.createElement(Vm,null,p?.swapBoxBanner?.element),Be.createElement(hl,{open:u,onClose:()=>d(!1)}))}i(ae,"Layout");import{styled as hv}from"@rango-dev/ui";var Ym="$20 $20 $10 $20",Sl=hv("div",{padding:Ym,overflowY:"auto",flexGrow:1});import{styled as yv}from"@rango-dev/ui";var ce=yv("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 fo}from"@lingui/core";import{useState as Cl}from"react";function Zm(){let[t,e]=Cl(!1),[o,n]=Cl(null),[r,a]=Cl(null),{findToken:s}=T(),c=T().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(d,f){switch(d){case"duplicated":return{type:d,title:fo.t("Duplicate Token"),message:fo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:d,title:fo.t("Token Already Exists"),message:fo.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:fo.t("Token Not Found"),message:fo.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:fo.t("Network error"),message:fo.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(S=>S.address?.toLowerCase()===f.toLowerCase())){let S=p("duplicated");n(S);return}let g=await at().getCustomToken({blockchain:d,address:f});if(!g||!g.token||g.error){let S=p("not-found",d);n(S);return}let m=g.token;if(s({blockchain:m.blockchain,address:m.address,symbol:m.symbol})){let S=p("token-exist");n(S);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(Zm,"useFetchCustomToken");var Av=wv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${Tv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Jm(){let t=Ev(),[e]=Iv(),o=Qe(),n=T().blockchains(),r=e.get("blockchain")||"",a=Ao(r,n),[s,c]=xv(""),{fetchCustomToken:l,token:p,loading:u,error:d,resetState:f}=Zm(),h=!!a&&on(a,s),g=!a||!s||!h,m=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return qe.createElement(ae,{header:{title:vn.t("Add Custom Token")}},qe.createElement(ce,null,qe.createElement(Av,null,qe.createElement("div",null,qe.createElement(Vs,{onClick:()=>t(D.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")}),qe.createElement(Tl,{size:"24"}),qe.createElement(bv,{size:"large",variant:"label"},vn.t("Enter Address")),qe.createElement(Tl,{size:10}),qe.createElement(vv,{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&&qe.createElement(kv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!h&&!!s&&qe.createElement(qe.Fragment,null,qe.createElement(Tl,{size:4}),qe.createElement(Sv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),qe.createElement(Cv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:m},vn.t("Import"))),qe.createElement(ur,{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(Jm,"AddCustomTokenPage");import{i18n as Rl}from"@lingui/core";import{useManager as mx}from"@rango-dev/queue-manager-react";import{Alert as fx,Button as gx,css as tc,Divider as ec,IconButton as zg,styled as hx,Typography as yx,WalletIcon as Sx}from"@rango-dev/ui";import De,{useEffect as pa,useLayoutEffect as Cx,useRef as Tx,useState as wr}from"react";import{useNavigate as kx}from"react-router-dom";import{i18n as Ho}from"@lingui/core";import{Alert as Xv,BalanceErrors as Yv,Button as kf,ChevronLeftIcon as Zv,Divider as El,MessageBox as Jv,Typography as Il}from"@rango-dev/ui";import ie,{useCallback as Rv,useEffect as wf,useMemo as eb,useState as xn}from"react";import{useNavigate as tb}from"react-router-dom";import{i18n as bl}from"@lingui/core";import{Alert as Mv,ChevronDownIcon as Pv,CloseIcon as _v,Divider as af,IconButton as sf,PasteIcon as Dv,Typography as $v,WalletIcon as Fv}from"@rango-dev/ui";import Pe,{useEffect as Ov,useRef as Uv}from"react";import zi,{useRef as Wv}from"react";import*as bn from"@radix-ui/react-collapsible";import{keyframes as Rm,styled as Fi}from"@rango-dev/ui";var kl=300,Nv=Rm({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Bv=Rm({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),ef=Fi(bn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),wl=Fi(bn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Oi=Fi(bn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Nv} ${kl}ms ease-out`},false:{animation:`${Bv} ${kl}ms ease-out`}}}}),Ui=Fi("div",{transition:`all ${kl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Hi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Wv(null);return zi.createElement(ef,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&zi.createElement(wl,{className:"collapsible_trigger",onClick:a},s),zi.createElement(Oi,{className:"collapsible_content",open:e},r),c==="bottom"&&zi.createElement(wl,{className:"collapsible_trigger",onClick:a},s))}i(Hi,"CustomCollapsible");import{darkTheme as tf,styled as vl,TextField as Lv}from"@rango-dev/ui";var of=vl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),nf=vl(Lv,{backgroundColor:"$neutral100"}),rf=vl("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${tf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${tf} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function lf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=z()(),{config:s}=T(),c=T().blockchains(),l=$p(e.name,c),p=Uv(null),u=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!on(e,r),g=i(()=>{a("")},"handleClear"),m=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),y=i(()=>r?Pe.createElement(sf,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},Pe.createElement(_v,{size:12,color:"gray"})):d?null:Pe.createElement(sf,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},Pe.createElement(Dv,{size:16})),"renderSuffix");return Ov(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),Pe.createElement(of,null,Pe.createElement(Hi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Pe.createElement(rf,{id:"widget-custom-destination-collapsible-btn"},Pe.createElement("div",{className:"button__content"},Pe.createElement(Fv,{size:18,color:"info"}),Pe.createElement(af,{size:4,direction:"horizontal"}),Pe.createElement($v,{variant:"label",size:"medium",color:n?"$neutral600":void 0},bl.t("Send to a different address"))),Pe.createElement(Ui,{orientation:n?"up":"down"},Pe.createElement(Pv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Pe.createElement(nf,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:bl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:y(),onChange:S=>{let C=S.target.value;a(C)}})),h&&Pe.createElement(Pe.Fragment,null,Pe.createElement(af,{size:4}),Pe.createElement(Mv,{variant:"alarm",type:"error",title:bl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(lf,"CustomDestination");import{css as zv,IconButton as Hv,SelectableWalletButton as Qv,styled as go}from"@rango-dev/ui";var cf=go("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),pf=go("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),uf=go(Qv,{justifyContent:"center"}),df=go("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),mf=go(Hv,{position:"absolute",left:"$20"}),ff=go("div",{paddingTop:"$20"}),gf=zv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),hf=go("div",{display:"flex"}),yf=go("div",{overflow:"visible",width:"100%"});import{i18n as Sf}from"@lingui/core";import{warn as qv}from"@rango-dev/logging-core";import{makeInfo as Gv,SelectableWallet as Vv,Typography as Cf,WalletState as dr}from"@rango-dev/ui";import zo,{useEffect as Kv,useState as Tf}from"react";var jv=7;function xl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=oe.use.isActiveTab(),{connectedWallets:l}=T(),[p,u]=Tf(),{list:d}=vt({chain:e}),[f,h]=Tf(d),g=d.length,m=a&&g-a>0;return Kv(()=>{h(y=>{let S=d.findIndex(C=>n(C.type,e));return m&&S>1?[d[S]].concat(d.filter((C,k)=>k!==S)):y.map(C=>d.find(k=>k.type===C.type)??C)})},[JSON.stringify(d)]),zo.createElement(zo.Fragment,null,f.slice(0,a).map(y=>{let S=ku({connectedWallets:l,walletType:y.type,chain:e}),C=y.state===dr.CONNECTED||y.state===dr.PARTIALLY_CONNECTED,k=S?so(S,jv):"",v=C&&!!y.needsNamespace&&!k,w=i(async()=>{y.state===dr.DISCONNECTED||v?u(y):r({walletType:y.type,chain:e,address:S??""})},"onSelectableWalletClick"),I=Gv(y.state),A=i(()=>v?Sf.t("Chain not connected"):k||I.description,"getWalletDescription"),b=i(()=>y.state===dr.CONNECTED||y.state===dr.PARTIALLY_CONNECTED?v?"neutral600":"neutral700":I.color,"getWalletDescriptionColor");return zo.createElement(Vv,{key:y.type,id:"widget-wallets-list-selectable-wallet-btn",description:A(),descriptionColor:b(),onClick:w,selected:n(y.type,e),disabled:!c,...y})}),zo.createElement(ir,{id:"widget-wallets-list-stateful-connect-modal",wallet:p,options:{defaultSelectedChains:o||[e]},onClose:()=>{u(void 0)},onConnect:()=>{t.onConnect&&(p?.type?t.onConnect(p.type):qv(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),m&&zo.createElement(uf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},zo.createElement(Cf,{variant:"label",size:"medium"},Sf.t("Show more wallets"),zo.createElement(Cf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",g-(a??0)))))}i(xl,"WalletList");var ob=2;function vf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=tb(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:d,customDestination:f,setCustomDestination:h}=z()(),{config:g,connectedWallets:m,setWalletsAsSelected:y}=T(),[S,C]=xn(""),[k,v]=xn([]),[w,I]=xn(""),[A,b]=xn(!!f),E=eb(()=>Wo({filter:"all",quote:l}),[l]),x=Wo({filter:"required",quote:l}),W=c.find(F=>F.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),P=i(F=>x.includes(F),"isWalletRequiredFor"),U=Rv(()=>m.filter(F=>F.selected&&E.includes(F.chain)),[m,E]),[G,K]=xn(U()),[R,B]=xn([]),Y=i((F,O)=>B(X=>X.concat({blockchain:F,walletType:O})),"addNextSelectedWallets"),Z=k.length>0,le=i((F,O)=>!!G.find(X=>X.walletType===F&&X.chain===O&&X.selected&&(P(O)||!P(O)&&!f)),"isSelected"),ve=i((F,O,X)=>{let ee=!1;return F.map(j=>{if(j.chain===O){let Q=j.selected;return!ee&&X?(ee=!0,Q=!0):X||(Q=!1),{...j,selected:Q}}return j})},"updateSelectableWallets"),Ht=i(F=>{b(F),F?P(W?.name??"")||K(O=>ve(O,W?.name||"",!1)):(h(""),K(O=>ve(O,W?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),be=i(F=>{if(S&&C(""),le(F.walletType,F.chain))return;let X=m.find(ee=>ee.walletType===F.walletType&&ee.chain===F.chain);X&&(n(),F.chain===W?.name&&A&&!P(W.name)&&(b(!1),h(null)),K(ee=>ee.filter(j=>j.chain!==F.chain).concat({...X,selected:!0})))},"onChange"),dt=i(()=>{let F=G.filter(O=>O.selected);y(F),p(F),d(!0),o()},"onConfirmBalance"),kt=i(async()=>{v([]),I("");let F=await r?.({selectedWallets:G.filter(X=>X.selected),customDestination:f}),O=F.warnings;O?.balance?.messages&&v(O.balance.messages),F.error&&I(hd(F.error)),!F.error&&!O?.balance?.messages.length?dt():v(O?.balance?.messages??[])},"onConfirmWallets");wf(()=>{K(F=>{let O=[];return F.forEach(X=>{!m.some(j=>j.chain===X.chain&&j.walletType===X.walletType&&j.address===X.address)||O.push(X)}),O=O.concat(m.filter(X=>!!!O.find(j=>j.chain===X.chain)&&X.selected&&E.includes(X.chain))),O})},[m,E]),wf(()=>{let F=[];R.length>0&&(R.forEach(O=>{let X=m.find(ee=>ee.chain===O.blockchain&&ee.walletType===O.walletType);X?be(X):F.push(O)}),B(F))},[m,R]);let wt=document.getElementById(ht.SWAP_BOX_ID);return ie.createElement(ne,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!S,container:wt,...!S&&{styles:{container:{height:"100%"}},footer:ie.createElement(hf,null,ie.createElement(kf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Gd(a,A,f,l,G,W),onClick:kt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Ho.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:ie.createElement(df,null,ie.createElement(mf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ie.createElement(Zv,{size:16})),ie.createElement(Il,{variant:"headline",size:"small"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:ft(S,c)}})))},anchor:"center"},ie.createElement(ne,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:Z,onClose:v.bind(null,[]),container:wt},ie.createElement(Jv,{title:Ho.t("Insufficient account balance"),type:"error",description:ie.createElement(Yv,{messages:k??[]})},ie.createElement(kf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:dt},Ho.t("Proceed anyway")))),S&&ie.createElement(ff,null,ie.createElement("div",{className:gf()},ie.createElement(xl,{chain:S,quoteChains:E,isSelected:le,selectWallet:be,onShowMore:()=>C(S),onConnect:F=>{Y(S,F)}}))),!S&&ie.createElement(ie.Fragment,null,w&&ie.createElement(ie.Fragment,null,ie.createElement(Xv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Ho.t(w)}),ie.createElement(El,{size:12})),ie.createElement(yf,null,E.map((F,O)=>{let X=c.find(Ve=>Ve.name===F),ee=`wallet-${O}`,j=O===E.length-1,Q=j&&W&&g?.customDestination!==!1;return ie.createElement("div",{key:ee},ie.createElement(cf,null,ie.createElement(Il,{variant:"title",size:"xmedium"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),ie.createElement(Il,{variant:"label",color:"$neutral700",size:"medium"},Ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),ie.createElement(El,{size:24}),ie.createElement(pf,null,ie.createElement(xl,{chain:F,quoteChains:E,isSelected:le,selectWallet:be,limit:ob,onShowMore:()=>C(X?.name??""),onConnect:Ve=>{Y(F,Ve)}})),!j&&ie.createElement(El,{size:32}),Q&&ie.createElement(lf,{blockchain:W,open:A,handleOpenChange:Ht}))}))))}i(vf,"ConfirmWalletsModal");import{i18n as Ab}from"@lingui/core";import{Alert as Nb,Button as Bb,Divider as Qf,InfoIcon as Wb}from"@rango-dev/ui";import Fe from"react";import{Alert as ib,Button as ab,Divider as Bl,NoRouteIcon as sb,RefreshIcon as lb,Typography as Bf}from"@rango-dev/ui";import st from"react";import{i18n as bf}from"@lingui/core";var nb=24,rb=60;function xf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:re().genericServerError,action:{onClick:n,title:bf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:re().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:bf.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(xf,"makeInfo");var Al=(o=>(o[o.small=nb]="small",o[o.large=rb]="large",o))(Al||{}),Nl=(o=>(o.small="small",o.large="medium",o))(Nl||{});import{styled as Qi}from"@rango-dev/ui";var Ef=Qi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),If=Qi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Af=Qi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Nf=Qi("div",{padding:"$6 $0"});function mr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=T().getDisabledLiquiditySources(),s=T().toggleAllLiquiditySources,c=T().swappers(),l=xf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),st.createElement(Ef,{id:"widget-no-result-container"},st.createElement(sb,{size:Al[n],color:"gray"}),st.createElement(Bl,{size:4}),st.createElement(Bf,{variant:"title",size:Nl[n]},re().noResultError.title),n==="large"&&st.createElement(Bl,{size:4}),!!l.description&&st.createElement(If,{size:n},st.createElement(Bf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),st.createElement(Bl,{size:n==="large"?"24":"4"}),!!l.alert&&st.createElement(Af,{size:n},st.createElement(ib,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&st.createElement(ab,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:st.createElement(Nf,null,st.createElement(lb,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(mr,"NoResult");import{i18n as fr}from"@lingui/core";import{Button as hb,Divider as yb,MessageBox as Sb,Typography as Cb,WarningIcon as Tb}from"@rango-dev/ui";import Xt from"react";import{InfoIcon as db,Tooltip as mb,Typography as fb}from"@rango-dev/ui";import En from"react";import{Button as cb,darkTheme as pb,styled as Qo,Typography as ub}from"@rango-dev/ui";var Wf=Qo("div",{width:"100%"}),Wl=Qo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Lf=Qo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${pb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Mf=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),Pf=Qo(ub,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),_f=Qo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Df=Qo(cb,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var gb=35;function $f(t){let{title:e,value:o,valueColor:n}=t,r=N();return En.createElement(Lf,null,En.createElement(fb,{size:"medium",variant:"label",className:"_title"},e),En.createElement(Mf,null,En.createElement(Pf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`),o.length>gb&&En.createElement(mb,{content:o,container:r},En.createElement(db,{size:12,color:"gray"}))))}i($f,"QuoteErrorsModalItem");function Ff(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:fr.t("Swapping"),value:M(r.inputUsdValue)},{title:fr.t("Gas cost"),value:M(r.totalFee,2,2)},{title:fr.t("Receiving"),value:M(r.outputUsdValue)},{title:fr.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return Xt.createElement(ne,{id:"widget-high-value-loss-warning-modal",footer:Xt.createElement(hb,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xt.createElement(Tb,null),fullWidth:!0,disabled:a,onClick:n},re().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Xt.createElement(Sb,{type:s,title:re().highValueLossError.impactTitle,description:re().highValueLossError.description}),Xt.createElement(Wl,null,Xt.createElement(yb,{size:"4"}),Xt.createElement(Cb,{size:"small",variant:"title"},fr.t("Details")),Xt.createElement(Wl,null,c.map((l,p)=>Xt.createElement($f,{key:p,...l})))))}i(Ff,"HighValueLossWarningModal");import{i18n as In}from"@lingui/core";function Of(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=In.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=In.t("Increase")),o;if(t){switch(t.type){case 0:{jt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=re().highValueLossError.title;break}case 4:{o.title=In.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=In.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=In.t("Increase");break}case 3:{o.title=In.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Of,"makeAlerts");function Uf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(Uf,"getRequiredSlippage");import{i18n as An}from"@lingui/core";import{Button as kb,Divider as Ll,MessageBox as wb,WarningIcon as vb}from"@rango-dev/ui";import So from"react";import{useNavigate as bb}from"react-router-dom";function zf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=bb();return So.createElement(ne,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},So.createElement(wb,{type:"warning",title:r.type===3?An.t("High slippage"):An.t("Low slippage"),description:r.type===3?An.t("Caution, your slippage is high. Your trade may be front run."):An.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},So.createElement(Ll,{size:18}),So.createElement(Ll,{size:32}),So.createElement(Df,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},So.createElement(vb,{color:"white",size:16}),An.t("Swap anyway")),So.createElement(Ll,{size:10}),So.createElement(kb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+D.settings)},An.t("Change Slippage"))))}i(zf,"SlippageWarningModal");import{Button as xb,MessageBox as Eb,WarningIcon as Ib}from"@rango-dev/ui";import qi from"react";function Hf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return qi.createElement(ne,{id:"widget-unknown-price-warning-modal",footer:qi.createElement(xb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:qi.createElement(Ib,null),fullWidth:!0,disabled:r,onClick:n},re().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},qi.createElement(Eb,{type:"warning",title:re().unknownPriceError.impactTitle,description:re().unknownPriceError.description}))}i(Hf,"UnknownPriceWarningModal");function gr(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=Of(e,o?.type===3||o?.type===4?o:null);m&&!n&&(m.action=null);let y=!!m&&!s,S=i(C=>{if(C==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=Uf(e,k);f?.(v)}else C==="change-settings"&&d()},"onclickActionButton");return Fe.createElement(Fe.Fragment,null,g&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Qf,{size:10}),Fe.createElement(mr,{skipAlerts:s,error:o,fetch:c})),y&&Fe.createElement(Wf,null,Fe.createElement(Qf,{size:10}),Fe.createElement(Nb,{id:"widget-quote-warning-and-errors-alert",title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Fe.createElement(_f,{onClick:l},Fe.createElement(Wb,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Fe.createElement(Bb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>S(m.action)},m.actionButtonTitle||Ab.t("Change"))}})),e&&Fe.createElement(Fe.Fragment,null,e.type===0&&Fe.createElement(Ff,{...h,warning:e}),(e.type===3||e.type===2)&&Fe.createElement(zf,{...h,warning:e}),e.type===1&&Fe.createElement(Hf,{...h,warning:e})))}i(gr,"QuoteWarningsAndErrors");import ax from"bignumber.js";import aa from"react";import{i18n as qo}from"@lingui/core";import{Alert as jb,CampaignQuoteTag as Xb,Divider as Bn,FullExpandedQuote as Yb,InfoIcon as Ql,NumericTooltip as ql,QuoteTag as Zb,StepDetails as Jb,TokenAmount as Rb,Typography as Wn,useIsTruncated as Gl}from"@rango-dev/ui";import Vl from"bignumber.js";import $,{useRef as na,useState as ex}from"react";import{styled as Ml}from"@rango-dev/ui";var Pl=Ml("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),qf=Ml("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),Gf=Ml("div",{width:"100%",display:"flex"});import*as Gi from"@radix-ui/react-collapsible";import{Button as Lb,css as Vi,darkTheme as _e,Image as Vf,styled as Ge,Typography as _l}from"@rango-dev/ui";var Mb=300,Kf=Ge(Gi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${_e} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),jf=Vi({padding:"$10 $15"}),Xf=Ge(Lb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${_e} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${_e} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${_e} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Yf=Ge("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${_e} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${_e} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${_e} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${_e} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${_e} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${_e} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${_e} &`]:{backgroundColor:"$neutral400"}}}}]}),Zf=Vi({width:"100%",padding:"$15 $15 $10 $15"}),Jf=Vi({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Nn=Vi({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Rf=Ge(Gi.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:{[`& ${Vf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Vf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${_e} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${_e} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),eg=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),tg=Ge(Oi,{width:"100%",background:"inherit"}),Dl=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Mb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),DH=Ge("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),og=Ge("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${_e} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),ng=Ge("div",{display:"flex",flexDirection:"row",alignItems:"center",gap:"$2",flex:"1 1 auto",minWidth:0}),$l=Ge(_l,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),Fl=Ge(_l,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),Ol=Ge("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),rg=Ge("div",{display:"flex"}),Ki=Ge("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${_e} &`]:{borderTopColor:"$neutral800"}}),ig=Ge(_l,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as _t}from"@lingui/core";import{ChevronDownIcon as _b,CloseIcon as Db,Divider as Yi,IconButton as $b,NumericTooltip as Fb,QuoteCost as Ob,Typography as Et}from"@rango-dev/ui";import J,{useState as cg}from"react";import{css as Pb,styled as ji}from"@rango-dev/ui";var Xi=ji("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Ul=ji("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),ag=ji("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),sg=ji("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),lg=Pb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Ub=i(t=>t.fee.isZero()?null:J.createElement(Xi,null,J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},t.label),J.createElement(Et,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function zl(t){let[e,o]=cg(!1),[n,r]=cg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:d,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?Bo():N(),m=$d(h),y=M(c,2,2);return J.createElement(J.Fragment,null,J.createElement(Ob,{onClickFee:d?S=>{S.stopPropagation(),o(!e)}:void 0,fee:y,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:d?_t.t("View more info"):void 0,tooltipContainer:g}),J.createElement(ne,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:J.createElement(sg,{style:{textAlign:f?"left":"center"}},J.createElement(Et,{variant:"title",size:"medium"},_t.t("Gas & Fee Explanation")),J.createElement($b,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},J.createElement(Db,{color:"gray",size:14}))),onClose:()=>{o(!1)}},J.createElement(ag,null,J.createElement(Et,{variant:"title",size:"small"},_t.t("Details")),J.createElement(Yi,{size:10}),Object.entries(m.payable).flatMap(([S,C])=>C.map((k,v)=>{let w=`payable-fee-${v}`,I=Os(k);return J.createElement(Xi,{key:w},J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Ps(S,_t.t)),J.createElement(Fb,{content:k.amount,container:g},J.createElement(Et,{variant:"label",size:"medium"},M(k.amount,2,2),k.asset.symbol," ($",M(I,4,4),")")))})),J.createElement(Xi,{className:"total_payable_fee"},J.createElement(Et,{variant:"label",size:"medium"},_t.t("Total Payable Fee")),J.createElement(Et,{variant:"label",size:"medium"},"$",M(c,4,4))),J.createElement(Ul,null),!!Object.keys(m.nonePayable).length&&J.createElement(Hi,{triggerAnchor:"bottom",onClickTrigger:()=>r(S=>!S),trigger:J.createElement("div",{className:lg()},J.createElement(Et,{size:"small",variant:"body",color:"neutral700"},n?_t.t("Hide non-payable fees"):_t.t("Show non-payable fees")),J.createElement(Yi,{size:4,direction:"horizontal"}),J.createElement(Ui,{orientation:n?"up":"down"},J.createElement(_b,{size:12,color:"gray"}))),open:n},J.createElement(Et,{size:"small",variant:"title"},_t.t("Description")),J.createElement(Yi,{size:4}),J.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.`)),J.createElement(Yi,{size:10}),Object.entries(m.nonePayable).map(([S,C],k)=>{let v=Dd(C),w=Ps(S,_t.t),I=`non-payable-fee-${k}`;return J.createElement(Ub,{key:I,fee:v,label:w})}),J.createElement(Ul,null)))))}i(zl,"QuoteCostDetails");import{i18n as dg}from"@lingui/core";import{TokenAmount as mg}from"@rango-dev/ui";import Zi from"react";import{css as zb,styled as Hb}from"@rango-dev/ui";var pg=Hb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),ug=zb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function hr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Zi.createElement(pg,null,Zi.createElement(mg,{direction:"horizontal",label:dg.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Zi.createElement("div",{className:ug()}),Zi.createElement(mg,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:dg.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(hr,"QuoteSummary");import{i18n as Sg}from"@lingui/core";import{ChevronDownIcon as Gb,ChevronRightIcon as Vb,Divider as Hl,Image as Kb,Tooltip as oa,Typography as Ri}from"@rango-dev/ui";import H from"react";import{useLayoutEffect as Qb,useState as yr}from"react";var fg=480,gg=768,hg=1024,yg=1200,qb=i(()=>{let[t,e]=yr(!1),[o,n]=yr(!1),[r,a]=yr(!1),[s,c]=yr(!1),[l,p]=yr(!1),u=i(()=>{e(window.innerWidth<=fg),n(window.innerWidth>fg&&window.innerWidth<=gg),a(window.innerWidth>gg&&window.innerWidth<=hg),c(window.innerWidth>hg&&window.innerWidth<=yg),p(window.innerWidth>yg)},"handleResize");return Qb(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),Ji=qb;var ea=4,ta=6,Sr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return H.createElement(oa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},H.createElement(eg,{className:n,state:a},H.createElement(Kb,{src:o,size:16})))},"ImageComponent");function Cg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=Ed(r),{isTablet:d,isMobile:f}=Ji();return H.createElement(Rf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},H.createElement("div",{className:Nn()},H.createElement(Ri,{variant:"body",size:"xsmall"},Sg.t("Via:")),H.createElement(Hl,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,y=H.createElement(Dl,null,H.createElement(Vb,{size:12,color:"black"}));return f||d?H.createElement(H.Fragment,{key:m},H.createElement(Sr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,y)):H.createElement(H.Fragment,{key:m},p<=ea||p>ea&&g<ea-1?H.createElement(H.Fragment,null,H.createElement(Sr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&H.createElement(H.Fragment,null,y)):g===ea-1&&H.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:Nn()},y,r.map((S,C)=>{let k=`image-${C}`;return C>=g&&H.createElement(H.Fragment,{key:k},H.createElement(Sr,{content:S.swapper.displayName,src:S.swapper.image??"",state:S.state,open:!1}),C!==p-1&&H.createElement(H.Fragment,null,y))}))},H.createElement(Ol,{state:r.find((S,C)=>C>=g&&(S.state==="error"||S.state==="warning"))?.state},H.createElement(Ri,{size:"xsmall",variant:"body"},"+",p-g))))})),H.createElement("div",{className:Nn()},H.createElement("div",{className:"blockchains_section"},H.createElement("div",{className:Nn()},H.createElement(Ri,{variant:"body",size:"xsmall"},Sg.t("Chains:")),H.createElement(Hl,{direction:"horizontal",size:4}),u.map((h,g)=>H.createElement(H.Fragment,{key:h.displayName},u.length<=ta||u.length>ta&&g<ta-1?H.createElement(oa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},H.createElement(Sr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ta-1&&H.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:H.createElement("div",{className:Nn()},u.map((m,y)=>y>=g&&H.createElement(Sr,{key:m.displayName,content:"",src:m.image??"",open:!1,className:y>g?"blockchainImage":"",container:c})))},H.createElement(Ol,{className:"blockchainImage"},H.createElement(Ri,{size:"xsmall",variant:"body"},"+",u.length-g))))),H.createElement(Hl,{direction:"horizontal",size:32}))),H.createElement(Dl,{orientation:a?"up":"down"},H.createElement(Gb,{size:12,color:"black"}))))}i(Cg,"QuoteTrigger");function Kl(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=T().blockchains(),{findToken:g}=T(),m=T().swappers(),{customSlippage:y,slippage:S}=T(),C=y||S,[k,v]=ex(t.expanded),w=na(null),I=M(n.value,6,6),A=n.usdValue?M(n.usdValue,4,4):"",{config:{__UNSTABLE_OR_INTERNAL__:b}}=T(),E=Kt(o.usdValue,n.usdValue??null),x=M(E,2,2),W=jt(E??0),P=i((Q,Ve)=>Q.map((q,ye)=>{let Je,mt=r?.type===3&&r.swap.swapperId===q.swapperId,ao=r?.type===4&&!!r.recommendedSlippages?.[ye],On=a?.type===2&&!!a.recommendedSlippages?.[ye],Eo=mt||ao,jr=On;Eo?Je="error":jr&&(Je="warning");let Ro=Eo?qo.t("Slippage Error"):qo.t("Slippage Warning");return mt&&(Ro=qo.t("Bridge Limit Error")),{swapper:{displayName:zn(q.swapperId,m)??"",image:q.swapperLogo},from:{token:{displayName:q.from.symbol,image:q.from.logo},chain:{displayName:ft(q.from.blockchain,h)??"",image:q.from.blockchainLogo},price:{value:ye===0&&!Ve?M(o.value,6,6):M(q.fromAmount,6,6),usdValue:M((q.from.usdPrice??0)*parseFloat(q.fromAmount),4,4),realValue:ye===0?o.value:q.fromAmount,realUsdValue:new Vl(q.from.usdPrice??0).multipliedBy(q.fromAmount).toString()}},to:{token:{displayName:q.to.symbol,image:q.to.logo},chain:{displayName:ft(q.to.blockchain,h)||"",image:q.to.blockchainLogo},price:{value:M(q.toAmount,6,6),usdValue:M((q.to.usdPrice??0)*parseFloat(q.toAmount),4,4),realValue:q.toAmount,realUsdValue:new Vl(q.to.usdPrice??0).multipliedBy(q.toAmount).toString()}},state:Je,alerts:Eo||jr?$.createElement(qf,{dense:d},$.createElement(jb,{variant:"alarm",type:Eo?"error":"warning",title:Ro,id:"widget-quote-footer-step-alarm-alert",footer:$.createElement(Gf,null,mt&&$.createElement("div",null,$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),$.createElement(Bn,{direction:"vertical",size:2}),$.createElement(Wn,{size:"xsmall",variant:"body",className:"from-amount-text",color:"neutral900"},qo.t({id:"Yours: {amount} {symbol}",values:{amount:M(q.fromAmount,6,6),symbol:q?.from.symbol}}))),(ao||On)&&!mt&&$.createElement("div",null,$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[ye]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[ye]}}})),$.createElement(Bn,{direction:"vertical",size:2}),$.createElement(Wn,{size:"xsmall",variant:"body",color:"neutral900"},qo.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Qn(q.estimatedTimeInSeconds),fee:M(Fs(q,g),2,2),internalSwaps:q.internalSwaps?P(q.internalSwaps):void 0}}),"getQuoteSteps"),U=P(e?.swaps??[]),G=U.length,K=f||N(),R=Ad(t.quote.tags||[]),B=!!u,Y=oi(e?.swaps),Z=Qn(Y),le=vi(e?.swaps??[],g),ve=M(le,2,2),Ht=le.gte(new Vl(Sd)),be=Y/Td>=Cd,dt=na(null),kt=Gl(o.value,dt),wt=na(null),F=Gl(n.value,wt),O=na(null),X=Gl(A,O),ee=U[G-1],j=U[0];return!j||!ee?null:d?$.createElement(Yb,{selected:c,fee:ve,time:Z,tooltipContainer:Bo(),steps:U,tags:R,campaignTag:b?.campaignTag,id:"widget-quote-full-expanded-quote-container",quoteCost:$.createElement(zl,{quote:e,fullExpandedMode:!0,time:Z,fee:le,feeWarning:Ht,timeWarning:be,showModalFee:p,steps:G}),percentageChange:x,warningLevel:W,outputPrice:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue}}):$.createElement(Yf,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},$.createElement("div",{className:Zf()},!l&&R.length?$.createElement($.Fragment,null,$.createElement(rg,null,R.map((Q,Ve)=>{let q=`${Q.value}_${Ve}`;return $.createElement($.Fragment,{key:q},Q.value=="CAMPAIGN"&&b?.campaignTag?$.createElement(Xb,{routeTag:Q,...b.campaignTag}):$.createElement(Zb,{label:Q.label,value:Q.value}),$.createElement(Bn,{size:4,direction:"horizontal"}))})),$.createElement(Ki,null),!B&&$.createElement(Bn,{size:4})):null,$.createElement("div",{id:"portal-root",className:Jf()},$.createElement(zl,{quote:e,time:Z,fee:le,feeWarning:Ht,timeWarning:be,showModalFee:p,steps:G}),B&&$.createElement(Xf,{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"}},$.createElement(Wn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},qo.t("See All Routes")))),s==="basic"&&$.createElement(ng,null,$.createElement(Fl,{ref:dt,size:"small",variant:"body"},o.value),kt&&$.createElement(ql,{content:o.value,container:K,open:o.value?void 0:!1},$.createElement(Ql,{size:12,color:"gray"})),$.createElement($l,{size:"small",variant:"body"},U[0]?.from.token.displayName),$.createElement(Wn,{size:"small",variant:"body"},"="),$.createElement(Fl,{ref:wt,size:"small",variant:"body"},n.value),F&&$.createElement(ql,{content:n.value,container:K,open:n.value?void 0:!1},$.createElement(Ql,{size:12,color:"gray"})),$.createElement($l,{size:"small",variant:"body"},ee?.to.token.displayName),$.createElement(Bn,{size:2,direction:"horizontal"}),$.createElement(ig,{ref:O,color:"$neutral600",size:"xsmall",variant:"body"},`($${A})`),X&&$.createElement(ql,{content:n.usdValue,container:K},$.createElement(Ql,{size:12,color:"gray"}))),s==="list-item"&&$.createElement(Rb,{id:"widget-quote-token-amount-container",tooltipContainer:K,type:"output",direction:"vertical",price:{value:I,usdValue:A,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:ee.to.token.displayName,image:ee.to.token.image},chain:{image:ee.to.chain.image},percentageChange:x,warningLevel:W}),s==="swap-preview"&&$.createElement($.Fragment,null,$.createElement(hr,{from:j.from,to:ee.to,percentageChange:x,warningLevel:W}),$.createElement(Bn,{size:4}))),$.createElement(Kf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},$.createElement(Cg,{type:s,quoteRef:w,selected:c,setExpanded:v,container:K,expanded:k,steps:U}),$.createElement(tg,{open:k},$.createElement(og,null),$.createElement("div",{className:jf()},U.map((Q,Ve)=>{let q=`item-${Ve}`;return $.createElement(Jb,{type:"quote-details",className:"widget-quote-step-details-container",key:q,tooltipContainer:K,step:Q,hasSeparator:Ve!==U.length-1,state:Q.state})})))))}i(Kl,"Quote");import{Divider as rx,Skeleton as ix}from"@rango-dev/ui";import Rt from"react";import{darkTheme as tx,styled as ra}from"@rango-dev/ui";var Tg=ra("div",{$$color:"$colors$neutral100",[`.${tx} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),kg=ra("div",{paddingTop:"$2"}),wg=ra("div",{paddingLeft:"$8"}),vg=ra("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Mg,Divider as It,Skeleton as lt}from"@rango-dev/ui";import V from"react";import{css as ox,styled as Jt}from"@rango-dev/ui";var jl=Jt("div",{display:"flex"}),bg=Jt("div",{padding:"$10 $0 $20"}),xg=Jt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Eg=Jt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ig=Jt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Ag=Jt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Ng=Jt("div",{width:"65%",display:"flex",justifyContent:"start"}),Bg=Jt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Wg=Jt("div",{padding:"$15 $0 $15 $0"}),Lg=ox({display:"flex",justifyContent:"space-between",alignItems:"center"});function Cr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(Ig,null,V.createElement(Ng,null,V.createElement(Mg,{loading:!0,size:"medium"}),V.createElement(It,{size:8,direction:"horizontal"}),V.createElement(Bg,null,V.createElement(lt,{height:10,width:60,variant:"rounded"}),V.createElement(It,{size:4}),V.createElement(lt,{height:15,variant:"rounded"}))),V.createElement(lt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(jl,null,V.createElement(lt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:65,height:20,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:65,height:20,variant:"rounded"})),V.createElement(Ki,null),!r&&V.createElement(It,{size:4})),V.createElement("div",{className:Lg()},V.createElement(jl,null,V.createElement(lt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:60,height:10,variant:"rounded"}),V.createElement(It,{size:4,direction:"horizontal"}),V.createElement(lt,{width:60,height:10,variant:"rounded"})),r&&V.createElement(lt,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(bg,null,V.createElement(lt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(xg,null,V.createElement(Eg,null,V.createElement(Mg,{loading:!0,size:"medium"}),V.createElement(It,{direction:"horizontal",size:4}),V.createElement(lt,{height:15,width:150,variant:"rounded"})),V.createElement(It,{size:10}),V.createElement(lt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(It,{size:4}),V.createElement(Wg,null,n,V.createElement(Ag,null),n),V.createElement(It,{size:12})))}i(Cr,"QuoteSummarySkeleton");import{ChainToken as Fg,Divider as Yl,NextIcon as nx,Skeleton as ia}from"@rango-dev/ui";import We from"react";import{styled as Tr}from"@rango-dev/ui";var Pg=Tr("div",{display:"flex",alignItems:"start"}),_g=Tr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Xl=Tr("div",{display:"flex",alignItems:"center",flexGrow:1}),Dg=Tr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),$g=Tr("div",{display:"flex",alignItems:"center"});function Dt(t){let{separator:e=!0}=t;return We.createElement(We.Fragment,null,We.createElement($g,null,We.createElement(ia,{height:22,width:22,variant:"circular"}),We.createElement(Yl,{direction:"horizontal",size:8}),We.createElement(ia,{height:15,width:148,variant:"rounded"})),We.createElement(Pg,null,We.createElement(vg,{hideSeparator:!e}),We.createElement(_g,{extraSpace:e},We.createElement(Xl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(Yl,{direction:"horizontal",size:8}),We.createElement(ia,{height:12,variant:"rounded"})),We.createElement(Dg,null,We.createElement(nx,{color:"gray",size:16})),We.createElement(Xl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(Yl,{direction:"horizontal",size:8}),We.createElement(ia,{height:12,variant:"rounded"})))))}i(Dt,"StepSkeleton");function kr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Rt.createElement(Tg,{expanded:o,rounded:e!=="basic"},Rt.createElement(Cr,{type:e,tagHidden:n}),Rt.createElement(kg,null,Rt.createElement(ix,{height:15,variant:"rounded"})),o&&Rt.createElement(wg,null,Rt.createElement(rx,{size:24}),Rt.createElement(Dt,null),Rt.createElement(Dt,null),Rt.createElement(Dt,{separator:!1})))}i(kr,"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:y}=z()(),S=e?.outputAmount?new ax(e?.outputAmount):null,C=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?aa.createElement(Pl,null,aa.createElement(kr,{tagHidden:c,type:o,expanded:s})):v?aa.createElement(Pl,{onClick:()=>l?.(e),id:d},aa.createElement(Kl,{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:y?.toString()??""},output:{value:S?.toString()??"",usdValue:C?.toString()??""}})):null}i(Go,"QuoteInfo");import{warn as px}from"@rango-dev/logging-core";import{calculatePendingSwap as ux}from"@rango-dev/queue-manager-rango-preset";import{useEffect as dx}from"react";import{useRef as sx,useState as lx}from"react";var cx=2e3;function sa({request:t}){let[e,o]=lx(!1),n=sx(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,cx)),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(sa,"useFetch");function Og(){let{fetch:t,loading:e,cancelFetch:o}=sa({request:async(n,r)=>await at().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Og,"useFetchConfirmQuote");function la(t){if(!t.swaps)throw new Error(re().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Zl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(la,"throwErrorIfResponseIsNotValid");function Zl(t){if(Md(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Pd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=Fd(t);if(o){let n=bi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Zl,"getQuoteError");function Ug(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=zd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(Ug,"generateWarnings");function ca(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(ca,"handleQuoteErrors");function Jl(){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(),d=T().blockchains(),f=T().tokens(),{findToken:h}=T(),{swapMode:g}=et(),m=p||l,{fetch:y,cancelFetch:S,loading:C}=Og();return dx(()=>S,[]),{loading:C,fetch:i(async v=>{let w=v.selectedWallets,I=v?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=w.reduce((E,x)=>(E[x.chain]=x.address,E),{}),b={requestId:a?.requestId||"",selectedWallets:A,destination:I||void 0};try{return await y(b,!0).then(E=>{let{result:x}=E;if(!x)throw new Error(E.error??"Error fetching updated quote");la({diagnosisMessages:x.diagnosisMessages,requestId:x.requestId,swaps:x.result?.swaps});let W={outputAmount:x.result?.outputAmount,requestId:x.requestId,resultType:x.result?.resultType,swaps:x.result?.swaps||[],validationStatus:x.validationStatus,requestAmount:x.requestAmount};r(W);let P={slippage:m.toString(),disabledSwappersGroups:u},U=Ug({previousQuote:a??void 0,currentQuote:W,meta:{blockchains:d},selectedWallets:w,userSlippage:m,inputUsdValue:n,findToken:h});c();let G=!!U.balance,K=ux({inputAmount:o.toString(),bestRoute:x,wallets:Ud(w),settings:P,validateBalanceOrFee:!G,meta:{blockchains:d,tokens:f},swapMode:g});return{quote:W,swap:K,error:null,warnings:U}})}catch(E){let x=ca(E);return x.type!==2&&px(new Error("confirm swap error"),{tags:{...x,type:Xe[x.type],initialQuote:a,requestBody:b}}),{swap:null,error:x,warnings:null}}},"fetch"),cancelFetch:S}}i(Jl,"useConfirmSwap");var wx=hx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${zg}`]:{width:"$48",height:"$48"}}),vx=tc({flexGrow:1,paddingRight:"$10"}),bx=tc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),xx=tc({display:"flex",justifyContent:"space-between",alignItems:"center"});function Hg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z()(),s=kx(),[c,l]=wr(""),p=!n,[u,d]=wr(!1),[f,h]=wr(!1),{isActiveTab:g}=oe(),m=T().getDisabledLiquiditySources(),y=Tx(m),{manager:S}=mx(),{fetch:C,loading:k,cancelFetch:v}=Jl(),[w,I]=wr({swap:null,error:null,warnings:null}),[A,b]=wr(!1),E=i(async({selectedWallets:B,customDestination:Y})=>{let Z=await C?.({selectedWallets:B,customDestination:Y});return I(Z),Z},"onConfirmSwap"),x=i(async()=>{if(w.swap&&n)try{await S?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let B=`../${D.swaps}/${w.swap.requestId}`;s(B,{replace:!0}),setTimeout(()=>{e("")},0)}catch(B){l("Error: "+B?.message)}},"addNewSwap"),W=i(async()=>{h(!0),await x(),h(!1)},"onConfirm"),P=i(async()=>{w.warnings?.quote&&xd(w.warnings.quote)&&!a?b(!0):await W()},"onStartConfirmSwap"),U=i(async()=>{I({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(B=>{I(B)}).catch(B=>console.error(B))},"onRefresh");pa(()=>{!!y.current.length&&!m.length&&U(),y.current=m},[m.length]),pa(()=>{p&&v()},[p]),pa(()=>{p&&d(p)},[p]),pa(()=>{p||C({selectedWallets:o,customDestination:r}).then(B=>I(B)).catch(B=>console.error(B))},[]),Cx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let G=w.warnings?.quote??null,K=w.error,R=[];if(c&&R.push(De.createElement(fx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),G||K){let B=`../${D.settings}`;R.push(De.createElement(gr,{warning:G,error:K,couldChangeSettings:!1,refetchQuote:U,skipAlerts:K?.type===4||G?.type===2,showWarningModal:A,confirmationDisabled:!g,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(B)}))}return De.createElement(ae,{header:{title:Rl.t("Confirm Swap"),onWallet:()=>{let B=`../${D.wallets}`;s(B)}},footer:De.createElement(wx,null,De.createElement("div",{className:vx()},De.createElement(gx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!w.error||!g,onClick:P},Rl.t("Start Swap"))),De.createElement(zg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||f,disabled:!g,onClick:d.bind(null,!0)},De.createElement(Sx,{size:24})))},u&&De.createElement(vf,{open:u,onClose:()=>d(!1),onCancel:v,loading:k,onCheckBalance:E}),De.createElement(ce,null,De.createElement("div",{className:xx()},De.createElement(yx,{variant:"title",size:"small"},Rl.t("You get")),De.createElement("div",{className:bx()},De.createElement(Li,{onClick:!k&&!u&&!A?U:void 0}))),De.createElement(ec,{size:"12"}),ym(R.map((B,Y)=>({element:B,key:`alert-${Y}`})),De.createElement(ec,{size:10})),R.length>0?De.createElement(ec,{size:10}):null,De.createElement(Go,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:w.error,loading:k,warning:w.warnings?.quote??null})))}i(Hg,"ConfirmSwapPage");import{i18n as to}from"@lingui/core";import{Button as mc,CustomTokensZeroStateDarkIcon as Gx,CustomTokensZeroStateIcon as Vx,DeleteIcon as Kx,Divider as Ir,IconButton as jx,MessageBox as Xx,NotFound as Yx,styled as gc}from"@rango-dev/ui";import ge,{useState as fc}from"react";import{useNavigate as Zx}from"react-router-dom";import{CloseIcon as Ex,IconButton as Ix,SearchIcon as Ax,TextField as Nx}from"@rango-dev/ui";import Ln from"react";import{styled as Qg}from"@rango-dev/ui";var qg=Qg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Gg=Qg("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?Ln.createElement(Ix,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Ln.createElement(Ex,{color:"gray",size:10})):null;return p&&(f=p),Ln.createElement(Gg,null,Ln.createElement(Nx,{prefix:Ln.createElement(qg,null,Ln.createElement(Ax,{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 dc}from"@lingui/core";import{Button as Mx,CustomTokenWarning as Px,darkTheme as nh,Divider as eo,ExternalLinkIcon as _x,Image as Dx,ListItem as $x,NotFound as Fx,PinIcon as Ox,Skeleton as Vo,Typography as xr,VirtualizedList as Ux}from"@rango-dev/ui";import L,{useState as zx}from"react";import{useTranslation as Hx}from"react-i18next";import{Divider as th,ListItem as Lx,Skeleton as br}from"@rango-dev/ui";import Nt from"react";import{css as Mn,darkTheme as oc,ImageContainer as Bx,ListItemButton as Wx,styled as ot,Typography as Vg}from"@rango-dev/ui";var nc=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),rc=Mn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ic=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ac=Mn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${oc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),sc=Mn({}),lc=Mn(),Kg=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),cc=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ua=ot("ul",{flexGrow:1,height:"100%",padding:0,margin:0,display:"flex",flexDirection:"column",listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${rc}`]:{[`& .${ac}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${sc}`]:{bottom:"-15px"},[`& .${nc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ic}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),jg=ot(Wx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),pc=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),uc=ot(Vg,{}),Xg=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${lc}`]:{$$color:"$colors$neutral600",[`.${oc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),vr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),PG=ot("div",{display:"flex",alignItems:"center"}),Yg=ot("div",{position:"relative",[`& ${Bx}`]:{borderRadius:"$xm",overflow:"hidden"}}),Zg=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Jg=ot(Vg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Rg=ot("a",{"& svg:hover":{color:"$colors$info"}}),eh=ot("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":{[`.${oc} &`]:{color:"$foreground"}}}});function oh(t){return Nt.createElement(ua,null,Array.from(Array(t.size),e=>Nt.createElement(Lx,{key:e,hasDivider:!0,start:Nt.createElement(br,{variant:"circular",width:35,height:35}),end:Nt.createElement(vr,null,Nt.createElement(br,{variant:"text",size:"large",width:70}),Nt.createElement(th,{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(th,{size:4}),Nt.createElement(br,{variant:"text",size:"medium",width:90}))})))}i(oh,"LoadingTokenList");var Qx=20,qx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return L.createElement("div",{className:rc()},o?L.createElement("div",{className:nc()},o):L.createElement(cc,{className:ic()},L.createElement(xr,{variant:"title",size:"xmedium"},r.symbol),L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(pc,{css:a},L.createElement(uc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&L.createElement("div",{className:`${ac()} ${!o&&sc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",L.createElement(eo,{size:4,direction:"horizontal"}),L.createElement(Rg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},L.createElement(_x,{size:12}))))},"renderDesc");function Er(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:d,fetchingWallets:f}=T(),{isTokenPinned:h}=T(),{setFromToken:g,setToToken:m}=z()(),{t:y}=Hx(),S=Qe(),[C,k]=zx(null),v=i(()=>{c==="source"?g({token:C,meta:{blockchains:u}}):m({token:C,meta:{blockchains:u}})},"updateToken"),w=i(()=>{v(),S()},"handleImportToken"),I=i(E=>{if(E.customToken){let{customToken:W,...P}=E;return L.createElement(Mx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(G=>{G.stopPropagation(),k({...P,warning:!0})},"handleClick")},L.createElement(xr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let x=ii(d(E));return s?s(E):f?L.createElement(vr,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(eo,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:50})):x&&L.createElement(Xg,null,L.createElement(Jg,{variant:"title",size:"small"},x.amount),L.createElement("div",null),x.usdValue&&L.createElement(xr,{variant:"body",className:lc(),size:"xsmall"},`$${x.usdValue}`))},"endRenderer"),A=i(()=>L.createElement(Ux,{style:{flexGrow:1,minHeight:0},itemContent:E=>{let x=e[E];if(x==="skeleton")return L.createElement($x,{hasDivider:!0,start:L.createElement(Vo,{variant:"circular",width:35,height:35}),end:L.createElement(vr,null,L.createElement(Vo,{variant:"text",size:"large",width:70}),L.createElement(eo,{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(eo,{size:4}),L.createElement(Vo,{variant:"text",size:"medium",width:90}))});let W=u.find(Y=>Y.name===x?.blockchain);if(!W||!x)return null;let P=x.address,U=el(W.color,"main"),G={$$color:U.main150,[`.${nh} &`]:{$$color:U.main750},backgroundColor:"$$color"},K={$$color:U.main750,[`.${nh} &`]:{$$color:U.main150},color:"$$color"},R=i(()=>{typeof x!="string"&&!x.customToken&&n?.(x)},"handleClick"),B=P?Yr({contractAddress:P,blockchainMeta:W}):void 0;return L.createElement(eh,null,L.createElement(jg,{"tab-index":E,key:`${x.symbol}${P}`,id:`${x.symbol}${P}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:x?.customToken,onClick:R,start:L.createElement(Yg,null,L.createElement(Dx,{src:x.image===""?Jr:x.image,size:30}),t.type!=="custom-token"&&x&&h(x,t.type)&&L.createElement(Zg,null,L.createElement(Ox,{size:12,color:"gray"}))),title:x.name||!x.name&&!P?L.createElement(cc,null,L.createElement(xr,{variant:"title",size:"xmedium"},x.symbol),L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(pc,{css:G},L.createElement(uc,{variant:"body",size:"xsmall",css:K},x.blockchain)),l&&x.warning&&L.createElement(L.Fragment,null,L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(Px,{container:N()}))):void 0,description:typeof x!="string"&&W.info&&P&&B?qx({address:P,token:x,customCssForTag:G,customCssForTagTitle:K,name:x.name,url:B}):x.name||void 0,end:I(x)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),b=C?Ao(C?.blockchain,u):null;return L.createElement(L.Fragment,null,a&&L.createElement(L.Fragment,null,L.createElement(xr,{variant:"label",size:"large"},dc.t("Select Token")),L.createElement(eo,{size:4})),L.createElement(Kg,null,L.createElement(eo,{size:4}),p==="loading"&&L.createElement(oh,{size:Qx}),p==="success"&&(e.length?L.createElement(L.Fragment,null,L.createElement(ur,{token:C,address:C?.address??"",blockchain:b??void 0,onImport:w,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),L.createElement(ua,{as:"ul"},A())):!!o&&L.createElement(Fx,{title:dc.t("No results found"),description:dc.t("Try using different keywords")}))))}i(Er,"TokenList");var Jx=gc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Rx=gc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),eE=gc(jx,{"&:hover":{"& svg":{color:"$secondary550"}}});function rh(){let[t,e]=fc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=uo({}),p=Zx(),[u,d]=fc(!1),[f,h]=fc(),g=i(C=>{let k=C.target.value;e(k)},"handleSearch"),m=l==="dark",y=n.filter(C=>rt(C.symbol,t)||rt(C.address||"",t)||rt(C.name||"",t)),S=i(()=>{if(f){let C=a?gt(a):null,k=r?gt(r):null,v=gt(f);C===v?c({token:null}):k===v&&s({token:null}),o(f)}d(!1)},"handleDeleteCustomToken");return ge.createElement(ae,{header:{title:to.t("Custom Tokens")}},ge.createElement(ce,null,ge.createElement(Jx,null,n.length?ge.createElement(ge.Fragment,null,ge.createElement(At,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search Token"),onChange:g}),ge.createElement(Ir,{size:16}),ge.createElement(Er,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>ge.createElement(eE,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(C)}},ge.createElement(Kx,{size:12,color:"gray"}))})):ge.createElement(Rx,null,ge.createElement(Yx,{icon:m?ge.createElement(Gx,{size:200}):ge.createElement(Vx,{size:200}),title:to.t("No custom tokens"),description:to.t("press the button to add your custom token")})),ge.createElement(Ir,{size:20}),ge.createElement(mc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(D.addCustomTokens)},to.t("Add Custom Token"))),ge.createElement(ne,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>d(!1),container:N()},ge.createElement(Xx,{title:to.t("Delete Custom Token"),type:"error",description:to.t("Are you sure you want to Delete this Token?")},ge.createElement(Ir,{size:40}),ge.createElement(Ir,{size:10}),ge.createElement(mc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},to.t("Yes, Delete it")),ge.createElement(Ir,{size:12}),ge.createElement(mc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},to.t("No, Continue"))))))}i(rh,"CustomTokensPage");import{i18n as $e}from"@lingui/core";import{useManager as TE}from"@rango-dev/queue-manager-react";import{Button as wc,darkTheme as kE,Divider as Co,MessageBox as wE,NotFound as vE,styled as vc,Tabs as bE,Typography as fa}from"@rango-dev/ui";import{TransactionStatus as Br}from"rango-types";import te,{useMemo as vh,useState as Wr}from"react";import{useNavigate as xE}from"react-router-dom";import{FilterIcon as sE,Popover as lE}from"@rango-dev/ui";import Ko from"react";import{css as tE,darkTheme as da,IconButton as oE,styled as Ar}from"@rango-dev/ui";var hc=Ar("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${da} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),ih=Ar(oE,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${da} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${da} &`]:{backgroundColor:"$neutral"},[`& ${hc}::before`]:{backgroundColor:"$secondary100",[`.${da} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),ah=Ar("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),sh=Ar("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),lh=tE({display:"flex",justifyContent:"space-between",alignItems:"center"}),ch=Ar("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as ph}from"@lingui/core";import{Button as nE,Divider as uh,ListItemButton as rE,Radio as iE,RadioRoot as aE,Typography as dh}from"@rango-dev/ui";import ct from"react";function mh(t){let{filterBy:e,onClickItem:o}=t;return ct.createElement(sh,null,ct.createElement("div",{className:lh()},ct.createElement(dh,{size:"small",variant:"body"},ph.t("Status")),ct.createElement(nE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},ph.t("Reset"))),ct.createElement(uh,{size:10}),ct.createElement(aE,{value:e},ct.createElement(ch,null,t.list.map((n,r)=>ct.createElement(rE,{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:ct.createElement(ct.Fragment,null,ct.createElement(uh,{direction:"horizontal",size:4}),ct.createElement(dh,{size:"medium",variant:"body"},n.title)),start:ct.createElement(iE,{value:n.id}),onClick:o})))))}i(mh,"FilterSelectorContent");function yc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Ko.createElement("div",null,Ko.createElement(lE,{open:a,align:"end",onOpenChange:o,container:N(),content:Ko.createElement(mh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Ko.createElement(ih,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Ko.createElement(hc,{isSelect:!!n},Ko.createElement(sE,{size:16,color:"black"}),!!n&&Ko.createElement(ah,null)))))}i(yc,"FilterSelector");import{i18n as uE}from"@lingui/core";import{getCurrentStep as dE}from"@rango-dev/queue-manager-rango-preset";import{Divider as Sh,GroupedVirtualizedList as mE,Skeleton as fE,SwapListItem as Ch,Typography as gE}from"@rango-dev/ui";import Ye,{useCallback as Th,useEffect as hE,useRef as yE,useState as SE}from"react";function fh(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(fh,"calculateGroupsSoFar");import{css as cE,darkTheme as pE,styled as Nr}from"@rango-dev/ui";var Sc=cE(),gh=Nr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Cc=Nr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Sc}`]:{$$color:"$colors$neutral600",[`.${pE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Tc=Nr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),hh=Nr("div",{gap:"$10",display:"flex",flexDirection:"column"}),yh=Nr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var CE=10;function kc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=SE([]),c=yE(0),{swaps:l,groupCounts:p,groups:u}=n(e),d=Th(fh,[]),f=Th(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,CE),s(d(p,c.current)))},[e.length]);if(hE(()=>{r||f()},[r,f]),r){let h=[1,2];return Ye.createElement(Ye.Fragment,null,[h,h].map((m,y)=>Ye.createElement(Cc,{key:y},Ye.createElement(Tc,null,Ye.createElement(fE,{variant:"text",width:60,size:"small"}),Ye.createElement(Sh,{size:16})),Ye.createElement(Sh,{size:4}),Ye.createElement(hh,null,m.map((C,k)=>Ye.createElement(Ch,{isLoading:!0,key:k}))))))}return Ye.createElement(mE,{style:{flexGrow:1,minHeight:0},endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Ye.createElement(Cc,null,Ye.createElement(Tc,null,Ye.createElement(gE,{variant:"label",size:"medium",className:Sc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let y=dE(m),S=m.steps[0],C=m.steps[m.steps.length-1];return!S||!C?null:Ye.createElement(gh,{key:m.requestId},Ye.createElement(Ch,{className:"widget-history-group-list-swap-item-btn",requestId:m.requestId,creationTime:m.creationTime,status:m.status,onClick:o,currentStep:y,tooltipContainer:N(),onlyShowTime:u[g]===uE.t("Today"),swapTokenData:{from:{token:{image:S.fromLogo,displayName:S.fromSymbol},blockchain:{image:S.fromBlockchainLogo||""},amount:M(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:M(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(kc,"HistoryGroupedList");import{i18n as ma}from"@lingui/core";import kh from"dayjs";var wh=i(t=>{let e=new Map([["today",{title:ma.t("Today"),swaps:[]}],["week",{title:ma.t("This week"),swaps:[]}],["month",{title:ma.t("This month"),swaps:[]}],["year",{title:ma.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=kh();t.forEach(l=>{let p=Number(l.creationTime),u=kh(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 EE=vc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%",minHeight:0,flexGrow:1}),IE=vc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),AE=vc("div",{"._typography":{color:"$neutral700",[`.${kE}&`]:{color:"$neutral900"}}}),NE=i((t,e)=>t?.length?t.filter(o=>Lt(o.fromBlockchain,e)||Lt(o.toBlockchain,e)||Lt(o.toSymbol,e)||Lt(o.fromSymbol,e)).length:!1,"isStepContainsText");function bh(){let t=xE(),{manager:e,state:o}=TE(),n=Ct(e).map(({swap:b})=>b),[r,a]=Wr(""),[s,c]=Wr(!1),l=!o.loadedFromPersistor,[p,u]=Wr(""),[d,f]=Wr(!1),[h,g]=Wr("all"),m=i(b=>{let E=b.target.value;a(E)},"handleSearch"),{isMultiMode:y}=et(),S=[{id:Br.SUCCESS,title:$e.t("Complete")},{id:Br.RUNNING,title:$e.t("Running")},{id:Br.FAILED,title:$e.t("Failed")}],C=[{id:"all",title:$e.t("All")},{id:"swap",title:$e.t("Swap")},{id:"refuel",title:$e.t("Refuel")}],k=vh(()=>!r&&!p&&h==="all"?n:n.filter(b=>{let{inputAmount:E,status:x,steps:W,requestId:P,mode:U}=b;return(!r||Lt(E,r)||Lt(x,r)||NE(W,r)||Lt(P,r))&&(!p||p===x)&&(h==="all"?!0:h==="swap"?!U||U==="swap":h==="refuel"?U==="refuel":!1)}),[n,r,p,h]),v=!k?.length&&!l,w=i(()=>f(!1),"onCloseModal"),I=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(b){console.log(b)}},"onClear"),A=vh(()=>!n.some(b=>b.status===Br.SUCCESS||b.status===Br.FAILED),[n]);return te.createElement(ae,{header:{title:$e.t("History"),suffix:te.createElement(mo,null,te.createElement(wc,{id:"widget-history-clear-btn",disabled:A,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},te.createElement(fa,{size:"medium",variant:"label",color:"error"},$e.t("Clear"))))}},te.createElement(ce,null,te.createElement(IE,null,te.createElement(At,{setValue:a,fullWidth:!0,variant:"contained",placeholder:$e.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:m,style:{height:36},value:r}),te.createElement(Co,{size:10,direction:"horizontal"}),te.createElement(yc,{filterBy:p,open:s,onOpenChange:b=>c(b),onClickItem:b=>u(b),list:S})),te.createElement(Co,{size:"16"}),y&&!l&&te.createElement(te.Fragment,null,te.createElement(bE,{items:C,onChange:b=>g(b.id),value:h,type:"secondary"}),te.createElement(Co,{size:"12"})),te.createElement(EE,null,v&&te.createElement(yh,null,te.createElement(Co,{size:32}),te.createElement(vE,{title:r?$e.t("No results found"):$e.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?$e.t("Try using different keywords"):$e.t("Your transaction history is stored locally and will appear here after you start a swap")})),!v&&te.createElement(kc,{list:k,onSwapClick:t,groupBy:wh,isLoading:l}))),te.createElement(ne,{open:d,onClose:w,id:"widget-history-clear-modal",container:N()},te.createElement(Co,{size:20}),te.createElement(wE,{type:"warning",title:$e.t("Clear Transaction History"),description:te.createElement(AE,null,te.createElement(fa,{variant:"body",size:"medium"},$e.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),te.createElement(Co,{size:"24"}),te.createElement(fa,{variant:"body",size:"small"},$e.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),te.createElement(Co,{size:30}),te.createElement(wc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:I},$e.t("Yes, Clear the history")),te.createElement(Co,{size:10}),te.createElement(wc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:w},te.createElement(fa,{variant:"title",size:"medium",color:"primary"},$e.t("No, Cancel")))))}i(bh,"HistoryPage");import{i18n as ey}from"@lingui/core";import{Button as uI,Divider as $c,styled as dI,WarningIcon as mI}from"@rango-dev/ui";import fI from"bignumber.js";import Se,{useEffect as ty,useState as oy}from"react";import{useNavigate as gI}from"react-router-dom";import{i18n as Eh}from"@lingui/core";import{Alert as WE,Divider as bc,NoRouteIcon as LE,Typography as ME}from"@rango-dev/ui";import jo from"react";import{styled as BE}from"@rango-dev/ui";var xh=BE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function xc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&Qt(t,e)?jo.createElement(xh,null,jo.createElement(bc,{size:10}),jo.createElement(LE,{size:24,color:"gray"}),jo.createElement(bc,{size:4}),jo.createElement(ME,{variant:"title",size:"small"},Eh.t("No Routes Found")),jo.createElement(bc,{size:4}),jo.createElement(WE,{title:Eh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(xc,"SameTokensWarning");import{Alert as PE,Button as _E}from"@rango-dev/ui";import Ah from"react";import{i18n as ga}from"@lingui/core";function Ih(t){let e=null;return t===ci?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ga.t("Reset"),title:ga.t("Slippage cannot be set lower than 0.01%.")},e):t>sn?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ga.t("Change"),title:ga.t("Caution, your slippage is high!")},e):null}i(Ih,"makeAlerts");function Nh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=T(),{onChangeSettings:a}=t,c=Ih(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(li),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Ah.createElement(PE,{title:c.title,type:c.alertType,variant:"alarm",action:Ah.createElement(_E,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(Nh,"SlippageWarningsAndErrors");import{i18n as UE}from"@lingui/core";import{IconButton as zE,ReverseIcon as HE,Skeleton as QE,Tooltip as qE,Typography as Lr}from"@rango-dev/ui";import pt from"react";import ha from"bignumber.js";function Wh(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(Wh,"getSlippageColor");function Lh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ha(e),r=new ha(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(Lh,"getUsdExchangeRate");function Mh(t,e){let o=new ha(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ha.ROUND_DOWN).toFormat(2)}`}i(Mh,"formatTokenValueInUsd");import{darkTheme as FE,styled as Ic,Typography as OE}from"@rango-dev/ui";var Ph=Ic("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),_h=Ic("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${FE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Ac=Ic(OE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Nc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=T(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,d=o!==null?o:e,{mode:f}=uo({}),h=pn(d),g=f==="dark",m=n==="default",y={quoteError:a,slippageError:h?.type==="error"?h.message:null},S={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0]?.from||c,k=p?.swaps[p?.swaps.length-1]?.to||l,v=m?C:k,w=m?k:C,I=Number(m?p?.outputAmount:p?.requestAmount),A=Number(m?p?.requestAmount:p?.outputAmount),b=I||v.usdPrice,E=A||w.usdPrice,{rawValue:x,displayValue:W}=Lh({toTokenUsdPrice:E,fromTokenUsdPrice:b});return pt.createElement(Ph,null,pt.createElement(Lr,{variant:y||S?"label":"body",size:y||S?"medium":"small",color:Wh({error:y,warning:S,isDarkTheme:g})},UE.t("Slippage:")," ",d,"%"),u?pt.createElement(QE,{height:16,width:104,variant:"rounded"}):b&&E&&pt.createElement(_h,null,pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},"1"),pt.createElement(Ac,{className:"rate-text",variant:"body",size:"small"},w.symbol),pt.createElement(zE,{id:"widget-home-page-change-rate-button",onClick:r},pt.createElement(HE,{size:14,color:"secondary"})),pt.createElement(qE,{container:N(),side:"top",sideOffset:4,content:pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},x)},pt.createElement(Lr,{className:"rate-text",variant:"body",size:"small"},W)),pt.createElement(Ac,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&pt.createElement(Lr,{color:"neutral600",variant:"body",size:"small"},"~",Mh(Number(x),v.usdPrice))))}i(Nc,"SwapMetrics");import{i18n as YE}from"@lingui/core";import{Header as ZE}from"@rango-dev/ui";import To,{useEffect as JE,useState as RE}from"react";import{i18n as VE}from"@lingui/core";import{Divider as Wc,FullExpandedQuote as KE,Typography as jE}from"@rango-dev/ui";import we from"react";import{styled as Bc}from"@rango-dev/ui";var Dh=Bc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),$h=Bc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Fh=Bc("div",{width:"146px"});import{i18n as Mr}from"@lingui/core";import{Select as GE}from"@rango-dev/ui";import Oh from"react";function ya(t){let{updateQuotePartialState:e,sortStrategy:o}=z()(),n=[{value:"SMART",label:Mr.t("Smart Routing")},{value:"FEE",label:Mr.t("Lowest Fee")},{value:"SPEED",label:Mr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Mr.t("Maximum Return")},{value:"PRICE",label:Mr.t("Maximum Output")}];return Oh.createElement(Fh,null,Oh.createElement(GE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ya,"SelectStrategy");var Uh=3;function Pr(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}=z()(),{slippage:m,customSlippage:y}=T(),{findToken:S}=T(),C=c||N(),k=!!p&&p.results.length,v=y??m,{config:{__UNSTABLE_OR_INTERNAL__:w}}=T(),I=i(E=>{if(!d||!f||!p)return null;let x={requestAmount:p.requestAmount,validationStatus:null,...E};return Cn({currentQuote:x,userSlippage:v,findToken:S})},"getQuoteWarning"),A=g?.type===0||g?.type===1,b=p?.results?wi(h,p?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement($h,null,we.createElement(jE,{size:"xmedium",variant:"title"},VE.t("Sort by")),we.createElement(ya,{container:C})),we.createElement(Wc,{size:"10"})),e&&Array.from({length:Uh},(E,x)=>we.createElement(we.Fragment,{key:x},s?we.createElement(KE,{campaignTag:w?.campaignTag,loading:!0}):we.createElement(kr,{tagHidden:!1,type:"list-item",expanded:!1}),x!==Uh-1&&we.createElement(Wc,{size:16}))),!e&&we.createElement(we.Fragment,null,k?b.map((E,x)=>{let W=I(E),P=Zl(E.swaps),U=b.length-1===x;return we.createElement(we.Fragment,{key:E.requestId},we.createElement(Go,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:P?.options||null,warning:W,fullExpandedMode:s,onClick:G=>{P||u("warning",W),u("error",P?.options||null),o(G)},type:"list-item"}),!U&&we.createElement(Wc,{size:16}))}):A&&we.createElement(Dh,null,we.createElement(mr,{size:s?"large":"small",error:g,fetch:n}))))}i(Pr,"Quotes");import{darkTheme as XE,styled as zh}from"@rango-dev/ui";var Hh=zh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${XE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Qh=zh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var eI=100;function Lc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=RE(!1),l=s?"":"is-hidden",{config:p}=T(),u=p?.variant==="full-expanded",d=Bo();return JE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},eI):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),To.createElement(Hh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Di()} widget-expanded-quotes-container`,id:ht.EXPANDED_BOX_ID},To.createElement(ZE,{title:YE.t("Routes"),suffix:To.createElement(To.Fragment,null,To.createElement(ya,{container:d}),To.createElement(Uo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),To.createElement(Qh,null,To.createElement(Pr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Bo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Lc,"ExpandedQuotes");import{i18n as Yh}from"@lingui/core";import{SwapInput as Zh}from"@rango-dev/ui";import rI from"bignumber.js";import _r from"react";import{ReverseIcon as nI}from"@rango-dev/ui";import Pc from"react";import{keyframes as tI,styled as qh}from"@rango-dev/ui";var Mc=450,oI=tI({"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)"}}),Gh=qh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Vh=qh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${oI} ${Mc}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 _c(){let t=z().use.switchFromAndTo();return Pc.createElement(Gh,null,Pc.createElement(Vh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Mc),t()}},Pc.createElement(nI,{size:12})))}i(_c,"SwitchFromAndToButton");import{styled as Kh}from"@rango-dev/ui";var jh=Kh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Xh=Kh("div",{position:"relative"});function Dc(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}=z()(),{swapMode:y}=et(),{connectedWallets:S,getBalanceFor:C}=T(),k=a?C(a):null,v=ii(k)?.amount??"0",w=k?new rI(k.amount).shiftedBy(-k.decimals):pe,I=!!s&&wu(S,s.name),A=!$s(m,d,f),b=!$s(m,d,g),E=!f||!g||!g.gt(0)?null:Kt(f.toString(),g.toString());return _r.createElement(jh,null,_r.createElement(Xh,null,_r.createElement(Zh,{label:Yh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:v,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:d,usdValue:A?void 0:M(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?re().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:I,tooltipContainer:N(),onSelectMaxBalance:()=>{let x=w.isGreaterThan(pe)?w.toFixed():"";p(x)},anyWalletConnected:S.length>0}),y==="swap"&&_r.createElement(_c,null)),_r.createElement(Zh,{selectionType:y==="swap"?"token":"chain",sharpBottomStyle:!r&&(!!m||e),label:Yh.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:M(Kt(f,g),2,2),warningLevel:jt(E??0),price:{value:M(h,6,6),usdValue:b?void 0:M(g,4,4),realValue:h?.toString(),realUsdValue:b?void 0:g?.toString(),error:b?re().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(Dc,"Inputs");import{warn as iI}from"@rango-dev/logging-core";import{useCallback as aI,useEffect as sI,useRef as lI,useState as cI}from"react";function Jh(){let{fetch:t,loading:e,cancelFetch:o}=sa({request:async(n,r)=>await at().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Jh,"useFetchAllQuotes");var pI=600;function Sa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Jh(),{excludeLiquiditySources:n,routing:r}=T().config,{connectedWallets:a}=T(),c=a.some(be=>be.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:d,selectedQuote:f,sortStrategy:h,resetQuote:g,error:m,warning:y,setSelectedQuote:S,updateQuotePartialState:C}=z()(),{slippage:k,customSlippage:v,affiliatePercent:w,affiliateRef:I,affiliateWallets:A,fetchStatus:b}=T(),E=T().getLiquiditySources(),x=T().getDisabledLiquiditySources(),W=T().excludeLiquiditySources(),{findToken:P}=T(),{swapMode:U}=et(),[G,K]=cI(!0),R=lI(u),B=v??k,Z=!l||!p||Qt(l,p)||!qn(u),le=i(be=>{K(be)},"resetState"),ve=i(be=>{let{fromToken:dt,toToken:kt,inputAmount:wt,liquiditySources:F,excludeLiquiditySources:O,disabledLiquiditySources:X,slippage:ee,affiliateRef:j,affiliatePercent:Q,affiliateWallets:Ve}=be;if(G||le(!0),!Z&&dt&&kt){g();let q=Od({fromToken:dt,toToken:kt,inputAmount:wt,liquiditySources:F,excludeLiquiditySources:O,disabledLiquiditySources:X,wallets:a,slippage:ee,affiliateRef:j,affiliatePercent:Q,affiliateWallets:Ve,contractCall:c});cn("experimental",r)&&(q.experimental=!0),cn("avoidNativeFee",r)&&(q.avoidNativeFee=!0),cn("enableCentralizedSwappers",r)&&(q.enableCentralizedSwappers=!0),r?.maxLength&&(q.maxLength=r.maxLength),U==="refuel"&&(q.maxLength=1),e(q).then(ye=>{let Je=wi(h,ye.results),mt=Id(f,Je,ye.requestAmount);K(!1),C("quotes",ye),S(mt),la({diagnosisMessages:ye.diagnosisMessages,requestId:mt?.requestId||"",swaps:mt?.swaps});let ao=mt&&Cn({currentQuote:mt,userSlippage:B,findToken:P});C("warning",ao)}).catch(ye=>{let Je=ca(ye);(Je.type===0||Je.type===1)&&g(),Je.type!==2&&(C("error",Je),K(!1),iI(new Error("quote error"),{tags:{...Je,type:Xe[Je.type],requestBody:q}}))})}},"fetch"),Ht=aI(Rr(be=>{ve(be)},pI),[Z]);return sI(()=>{if(!t){K(!1);return}if(b!=="success")return;if(Z){K(!1),(f||m||y)&&g();return}if(!qn(u)&&d?.eq(0)){le(!1),o();return}g(),le(!0);let be=ve;return R.current&&R.current!=u&&(be=Ht),R.current=u,be({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:W,disabledLiquiditySources:x,slippage:B,affiliateRef:I,affiliatePercent:w,affiliateWallets:A,contractCall:c}),o},[b,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,Z,E?.length,n,x.length,B,I,w,c,JSON.stringify(A)]),{fetch:()=>ve({inputAmount:u,fromToken:l,toToken:p,liquiditySources:E,excludeLiquiditySources:W,disabledLiquiditySources:x,slippage:B,affiliateRef:I,affiliatePercent:w,affiliateWallets:A,contractCall:c}),loading:G}}i(Sa,"useSwapInput");function Rh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ke.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Rh,"emitPreventableEvent");var hI=dI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),yI=300;function ny(){let t=gI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:d,updateQuotePartialState:f}=z()(),[h,g]=oy(!1),{isLargeScreen:m,isExtraLargeScreen:y}=Ji(),{fetch:S,loading:C}=Sa({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:w,customSlippage:I,slippage:A,setSlippage:b,setCustomSlippage:E}=T(),{isActiveTab:x}=oe(),[W,P]=oy(!1),U=I!==null?I:A,{swapMode:G}=et(),K=pn(U),B=_d({fetchMetaStatus:v,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),Y=Nu(m,y,k?.variant),Z=!!n&&!!e&&!!o&&new fI(n).gt(0)&&!Vd(e,o),le=Z&&v==="success"&&C,ve=K?.quoteValidation||c,dt=(!Y||Y&&l?.results.length)&&(ve||s),kt=!!e&&!!o,wt=kt&&!!K,F=(r||s)&&!W?S:void 0,O=i(Q=>{Y&&h?(g(!1),setTimeout(()=>{t(Q)},yI)):t(Q)},"onHandleNavigation"),X=i(Q=>{r?.requestId!==Q.requestId&&(P(!1),p(Q))},"onClickOnQuote"),ee=i(Q=>{if(Q){if(si.includes(Q)){b(Q),E(null);return}E(Q)}},"onChangeSlippage"),j=i(Q=>{O(Q==="from"?D.fromSwap:G==="swap"?D.toSwap:D.toSwap+"/"+D.blockchains)},"handleInputTokenClick");return ty(()=>{u(),f("refetchQuote",!0)},[]),ty(()=>{g(Z)},[Z]),Se.createElement(hI,null,Se.createElement(ae,{height:"auto",footer:Se.createElement(uI,{id:`widget-swap-${B.action}-btn`,type:"primary",size:"large",disabled:B.disabled||!x,prefix:B.action==="confirm-warning"&&Se.createElement(mI,null),fullWidth:!0,onClick:()=>{B.action==="connect-wallet"?Rh({type:"clickConnectWallet"},()=>O(D.wallets)):B.action==="confirm-warning"?P(!0):O(D.confirmSwap)}},B.title),header:{onWallet:()=>{O(D.wallets)},hasBackButton:!1,title:k.title||(G==="swap"?ey.t("Swap"):ey.t("Refuel")),suffix:Se.createElement(Uo,{hidden:Y?["refresh"]:void 0,onClickRefresh:F,onClickHistory:()=>O(D.swaps),onClickSettings:()=>{O(D.settings)}})}},Se.createElement(ce,null,Se.createElement(Dc,{fetchingQuote:le,fetchMetaStatus:v,isExpandable:Y,onClickToken:j}),Se.createElement($c,{size:"2"}),Y?null:Se.createElement(Go,{quote:r,loading:le,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:ve,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),O(D.routes)}:void 0}),kt&&Se.createElement(Se.Fragment,null,Se.createElement($c,{size:8}),Se.createElement(Nc,{quoteError:s,quoteWarning:ve,fromToken:e,toToken:o,quote:r,loading:le})),dt?Se.createElement(Se.Fragment,null,Se.createElement(gr,{warning:ve,error:s,skipAlerts:!!K,couldChangeSettings:!0,refetchQuote:S,showWarningModal:W,confirmationDisabled:!x,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:ee,onConfirmWarningModal:()=>{P(!1),d(!0),O(D.confirmSwap)},onChangeSettings:()=>O(D.settings)})):null,wt&&Se.createElement(Se.Fragment,null,Se.createElement($c,{size:"10"}),Se.createElement(Nh,{onChangeSettings:()=>O(D.settings)})),Se.createElement(xc,null))),Y?Se.createElement(Lc,{loading:le,onClickOnQuote:X,fetch:S,onClickRefresh:F,isVisible:h}):null)}i(ny,"Home");import{i18n as ry}from"@lingui/core";import{Alert as SI,Divider as CI,List as TI,ListItemButton as kI,Radio as wI,RadioRoot as vI,Typography as bI}from"@rango-dev/ui";import $t from"react";function ko(){let{setLanguage:t,language:e,config:o}=T(),n=Du,r=o?.language||un;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||un),resetLanguage:()=>t(null)}}i(ko,"useLanguage");function iy(){let{activeLanguage:t,changeLanguage:e,languages:o}=ko(),n=Qe(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:$t.createElement(bI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:$t.createElement(wI,{value:s}),start:$t.createElement(l,null)}});return $t.createElement(ae,{header:{title:ry.t("Language")}},$t.createElement(ce,null,$t.createElement(SI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),$t.createElement(CI,{size:"8"}),$t.createElement(vI,{value:t},$t.createElement(TI,{type:$t.createElement(kI,{title:ry.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(iy,"LanguagePage");import{i18n as oo}from"@lingui/core";import{Button as NI,Checkbox as BI,Image as WI,ListItemButton as LI,NotFound as MI,Typography as PI}from"@rango-dev/ui";import Ze,{useState as _I}from"react";import{Checkbox as II,Skeleton as sy}from"@rango-dev/ui";import $r from"react";import{styled as Fc}from"@rango-dev/ui";var Dr=Fc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Oc=Fc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Uc=Fc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as xI,styled as EI}from"@rango-dev/ui";var ay=EI(xI,{height:61});var AI=30;function zc(){return $r.createElement(Dr,null,Array.from(Array(AI),(t,e)=>$r.createElement(ay,{hasDivider:!0,key:e,start:$r.createElement(sy,{variant:"circular",width:35,height:35}),title:$r.createElement(sy,{variant:"text",size:"large",width:90}),end:$r.createElement(II,{checked:!1})})))}i(zc,"LoadingLiquiditySourceList");function Hc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=_I(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=pi(o,n),p={Exchanges:oo.t("Exchanges"),Bridges:oo.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=l.filter(S=>u.includes(S.type)),f=d.length===d.filter(S=>S.selected).length,h=i(()=>{d.forEach(S=>{f?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),g=d.map(S=>{let{selected:C,groupTitle:k,logo:v,id:w,...I}=S;return{id:`widget-setting-liquidity-source-${pu(w.toLowerCase())}-item-btn`,start:Ze.createElement(WI,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Ze.createElement(BI,{checked:C,disabled:c}),title:Ze.createElement(PI,{variant:"title",size:"xmedium"},oo.t(k)),selected:C,groupTitle:k,logo:v,...I}}),m=i(S=>{let C=S.target.value;a(C)},"handleSearch"),y=g;return r&&(y=g.filter(S=>Lt(S.groupTitle,r))),Ze.createElement(ae,{header:{title:oo.t(t),suffix:Ze.createElement(Oc,null,Ze.createElement(NI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?oo.t("Deselect all"):oo.t("Select all")))}},Ze.createElement(ce,{view:!0},Ze.createElement(At,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:oo.t("Search {sourceType}",{sourceType:p[t]}),onChange:m}),e==="loading"&&Ze.createElement(zc,null),!y.length&&r?Ze.createElement(Uc,null,Ze.createElement(MI,{title:oo.t("No results found"),description:oo.t("Try using different keywords")})):e==="success"&&Ze.createElement(Dr,{disabled:c,className:"widget-liquidity-source-list"},y.map(S=>{let{groupTitle:C,...k}=S;return Ze.createElement(Ze.Fragment,{key:S.id},Ze.createElement(LI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Hc,"LiquiditySourcePage");import{i18n as DI}from"@lingui/core";import Ca from"react";import{useNavigate as $I}from"react-router-dom";function ly(){let t=$I(),e=Qe(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=z()(),{fetch:c,loading:l}=Sa({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${D.settings}`,d=`../${D.wallets}`;return Ca.createElement(ae,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:DI.t("Routes"),suffix:Ca.createElement(Uo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ca.createElement(ce,null,Ca.createElement(Pr,{fetch:c,loading:l,onClickOnQuote:p})))}i(ly,"RoutesPage");import{i18n as gy}from"@lingui/core";import{Divider as hy,getCategoriesCount as KI,SelectableCategoryList as jI}from"@rango-dev/ui";import no,{useMemo as XI,useState as yy}from"react";import{useNavigate as YI}from"react-router-dom";import{i18n as Qc}from"@lingui/core";import{Divider as zI,Image as HI,ListItemButton as QI,NotFound as qI,Typography as fy}from"@rango-dev/ui";import ut,{useEffect as GI,useState as VI}from"react";var cy=i((t,e,o)=>t.filter(n=>ei(n.type,o)).filter(n=>rt(n.name,e)||rt(n.displayName,e)),"filterBlockchains");import{ImageContainer as FI,styled as py}from"@rango-dev/ui";var uy=py("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ta=py(Sl,{padding:0,margin:0,listStyle:"none",[`& ${FI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as OI,Skeleton as dy}from"@rango-dev/ui";import ka from"react";var UI=20;function my(){return ka.createElement(Ta,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(UI),t=>ka.createElement(OI,{key:t,hasDivider:!0,start:ka.createElement(dy,{variant:"circular",width:35,height:35}),title:ka.createElement(dy,{variant:"text",size:"large",width:90})})))}i(my,"LoadingBlockchainList");function qc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=VI(e),{fetchStatus:l}=T();GI(()=>{c([...cy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ut.createElement(qI,{title:Qc.t("No results found"),description:Qc.t("Try using different keywords")}):ut.createElement(Ta,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ut.createElement(QI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ut.createElement(HI,{src:u.logo,size:30}),title:ut.createElement(fy,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ut.createElement(ut.Fragment,null,a&&ut.createElement(ut.Fragment,null,ut.createElement(fy,{variant:"label",size:"large"},Qc.t("Select Chain")),ut.createElement(zI,{size:4})),ut.createElement(uy,null,l==="loading"&&ut.createElement(my,null),l==="success"&&p()))}i(qc,"BlockchainList");function wa(t){let{type:e}=t,o=Qe(),[n,r]=yy(""),[a,s]=yy("ALL"),c=z().use.setToBlockchain(),l=z().use.setFromBlockchain(),p=z().use.setToToken(),{fetchStatus:u,findNativeToken:d}=T(),f=YI(),{swapMode:h}=et(),g=T().blockchains({type:e}),m=T().tokens(),y=XI(()=>au(g,m),[g.length,m.length]),S=KI(y),C=!t.hideCategory&&S!==1,k=i(v=>{if(e==="custom-token")f(`..?blockchain=${v.name}`,{replace:!0});else{if(e==="source")l(v);else if(h==="swap")c(v);else{let w=d(v);w&&p({token:w,meta:{blockchains:g}})}o()}},"handleBlockchainChange");return no.createElement(ae,{header:{title:gy.t("Select Chain")}},no.createElement(ce,{view:!0},C&&no.createElement(no.Fragment,null,no.createElement(jI,{setCategory:s,category:a,blockchains:y,isLoading:u==="loading"}),no.createElement(hy,{size:24})),no.createElement(At,{value:n,autoFocus:!0,placeholder:gy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:v=>r(v.target.value)}),no.createElement(hy,{size:16}),no.createElement(qc,{list:y,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:k})))}i(wa,"SelectBlockchainPage");import{i18n as xa}from"@lingui/core";import{Divider as by,Spinner as uA}from"@rango-dev/ui";import wo,{useEffect as dA,useState as mA}from"react";import{useNavigate as fA}from"react-router-dom";import{i18n as Kc}from"@lingui/core";import{BlockchainsChip as va,Divider as ky,Image as wy,Skeleton as oA,Tooltip as nA,Typography as jc}from"@rango-dev/ui";import xe from"react";import{useEffect as RI}from"react";var Sy=["ETH"];function Gc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(ZI),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(JI(s)),r=n.splice(a)}return{list:n,more:r}}i(Gc,"prepare");function ZI(t,e){let o=Sy,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(ZI,"sortByMostUsedBlockchains");function JI(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(JI,"generateSortByPreferredBlockchainsFor");function Cy(t,e){return!!e.list.find(o=>o.name===t)}i(Cy,"isInVisibleList");function Vc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();RI(()=>{if(e?.selected){let a=Gc(t,o,e);Cy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Gc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Vc,"usePrepareBlockchainList");import{styled as eA}from"@rango-dev/ui";var Ty=eA("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var rA=6,iA=12;function Xc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Vc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=T(),p=z().use.resetToBlockchain(),u=z().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(ky,{size:12}),xe.createElement(jc,{variant:"label",size:"large"},Kc.t("Select Chain"))),xe.createElement(ky,{size:12}),xe.createElement(Ty,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?rA:iA),(m,y)=>xe.createElement(oA,{key:y,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(va,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(jc,{variant:"body",size:"xsmall",color:"secondary500"},Kc.t("All"))),c.list.map(m=>xe.createElement(nA,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(va,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(wy,{src:m.logo,size:30})))),h?xe.createElement(va,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(wy,{src:f.logo,size:30})):null,g?xe.createElement(va,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(jc,{variant:"body",size:"xsmall",color:"secondary500"},Kc._("More +{count}",{count:c.more.length}))):null)))}i(Xc,"BlockchainsSection");import{useCallback as sA,useRef as lA,useState as Yc}from"react";function Zc(){let t=T().blockchains(),e=lA(null),{customTokens:o}=T(),[n,r]=Yc(!1),[a,s]=Yc([]),[c,l]=Yc(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await at().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),m=new Set(o().map(C=>Gt(C))),y=new Set(t.map(C=>C.name)),S=g.tokens.filter(C=>y.has(C.blockchain)&&!m.has(Gt(C)));s(S),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=sA(Rr((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(Zc,"useSearchCustomTokens");function ba(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(ba,"shouldSearchForCustomTokens");function vy(t,e,o,n,r){let a=[...t];return ba(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(vy,"prepareTokensList");function Ea(t){let{type:e}=t,o=fA(),n=Qe(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=z()(),{getBalanceFor:u}=T(),{fetch:d,loading:f,tokens:h,cancel:g}=Zc(),[m,y]=mA(""),S=e==="source"?r:a,C=S?.name??"",k=T().blockchains({type:e}),v=T().tokens({type:e,blockchain:C,searchFor:m,getBalanceFor:u}),w=vy(v,h,m,f,S?.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:xa.t("Source"),destination:xa.t("Destination")};return dA(()=>(ba(v,m,S?.name)&&d(m,S?.name??void 0),()=>{g()}),[v.length,m,S?.name]),wo.createElement(ae,{header:{title:xa.t("Swap {type}",{type:b[e]})}},wo.createElement(ce,null,wo.createElement(Xc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(D.blockchains),onChange:E=>{I(E)}}),wo.createElement(by,{size:24}),wo.createElement(At,{value:m,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:xa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:E=>y(E.target.value),suffix:ba(v,m,S?.name)&&f?wo.createElement(uA,{size:12,color:"secondary"}):void 0}),wo.createElement(by,{size:16}),wo.createElement(Er,{list:w,selectedBlockchain:C,searchedFor:m,type:e,onChange:E=>{A(E);let x=k.find(W=>E.blockchain===W.name);x&&I(x),n()}})))}i(Ea,"SelectSwapItemsPage");import{i18n as tp}from"@lingui/core";import{Alert as zA,Button as HA,styled as QA}from"@rango-dev/ui";import Xo from"react";import{useInRouterContext as qA,useSearchParams as GA}from"react-router-dom";import{i18n as By}from"@lingui/core";import{Alert as SA,Divider as Rc,InfoIcon as CA,SlippageIcon as TA,TextField as kA,Tooltip as wA,Typography as Wy}from"@rango-dev/ui";import Oe from"react";import{Chip as gA,styled as Fr,TextField as hA}from"@rango-dev/ui";var xy=Fr("div",{paddingTop:"$5",padding:"$10 $5"}),Ey=Fr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${hA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Iy=Fr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ia=Fr("div",{maxWidth:"280px",padding:"$10"}),Ay=Fr(gA,{width:"61px",flexShrink:0});import{i18n as Jc}from"@lingui/core";import{Typography as yA}from"@rango-dev/ui";import Or from"react";function Ny(){return Or.createElement(Ia,null,Or.createElement(yA,{variant:"label",size:"medium",color:"neutral700"},Jc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Or.createElement("br",null),Or.createElement("br",null),Or.createElement("b",null,Jc.t("Warning")),":\xA0",Jc.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(Ny,"SlippageTooltipContent");function ep(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?pn(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let d=u;u>jn&&(d=jn),n(d)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;mu(u)||(p.value=u.slice(0,-1))},"onInput");return Oe.createElement(xy,null,Oe.createElement(Iy,null,Oe.createElement(TA,{size:16,color:"gray"}),Oe.createElement(Rc,{direction:"horizontal",size:4}),Oe.createElement(Wy,{variant:"title",size:"xmedium"},By.t("Slippage tolerance per swap")),Oe.createElement(Rc,{direction:"horizontal",size:4}),Oe.createElement(wA,{container:N(),side:"top",sideOffset:4,content:Oe.createElement(Ny,null)},Oe.createElement(CA,{color:"gray"}))),Oe.createElement(Ey,null,si.map((l,p)=>{let u=`slippage-${p}`;return Oe.createElement(Ay,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),Oe.createElement(kA,{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&&Oe.createElement(Wy,{variant:"body",size:"small"},"%"),placeholder:By.t("Custom")})),r&&Oe.createElement(Oe.Fragment,null,Oe.createElement(Rc,{size:10}),Oe.createElement(SA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(ep,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as Ly,BridgesIcon as vA,ChevronRightIcon as Aa,DarkModeIcon as My,Divider as Ur,ExchangeIcon as bA,InfinityIcon as xA,InfoIcon as EA,LanguageIcon as IA,LightModeIcon as Py,List as AA,ListItem as NA,ListItemButton as BA,Skeleton as WA,styled as LA,Switch as MA,Tabs as PA,TargetIcon as _A,Tooltip as DA,Typography as nt}from"@rango-dev/ui";import _ from"react";import{useNavigate as $A}from"react-router-dom";var FA=LA("div",{width:"202px",height:"$40"}),OA=[{id:"light",icon:_.createElement(Py,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Light"))},{id:"dark",icon:_.createElement(My,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:_.createElement(Ly,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Auto"))}],UA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return _.createElement(Ly,{...e});case"dark":return _.createElement(My,{...e});default:return _.createElement(Py,{...e})}},"getThemeIcon");function _y(){let t=$A(),{theme:e}=T().config,{setTheme:o,theme:n}=T(),{activeLanguage:r,languages:a}=ko(),s=a.find(B=>B.local===r)?.label,c=T().fetchStatus,l=T().swappers(),p=T().getDisabledLiquiditySources(),{config:{features:u}}=T(),d=T().customTokens(),f=Re("theme",u),h=Re("liquiditySource",u),g=Re("language",u),m=Re("customTokens",u),y=T().infiniteApprove,S=T().toggleInfiniteApprove,C=pi(l,p),k=C.filter(B=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(B.type)),v=k.length,w=k.filter(B=>B.selected).length,I=C.filter(B=>B.type==="DEX"),A=I.length,b=I.filter(B=>B.selected).length,E=i((B,Y)=>{switch(c){case"loading":return _.createElement(WA,{variant:"text",size:"medium",width:50});case"failed":return _.createElement(nt,{variant:"body",size:"medium",color:"$error500"},Tt.t("Loading failed"));default:return _.createElement(nt,{variant:"body",size:"medium"},`${B} / ${Y}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Bridges")),end:_.createElement(_.Fragment,null,E(w,v),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Aa,{color:"black"})),onClick:()=>t(D.bridges),start:_.createElement(vA,{color:"gray",size:16})},W={id:"widget-setting-exchange-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Exchanges")),end:_.createElement(_.Fragment,null,E(b,A),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Aa,{color:"black"})),start:_.createElement(bA,{color:"gray",size:16}),onClick:()=>t(D.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Custom Tokens")),end:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"body",size:"medium"},`${d.length}`),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Aa,{color:"black"})),start:_.createElement(_A,{color:"gray",size:16}),onClick:()=>t(D.customTokens)},U={id:"widget-setting-language-item-btn",title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Language")),start:_.createElement(IA,{color:"gray",size:16}),end:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"body",size:"medium"},s),_.createElement(Ur,{direction:"horizontal",size:8}),_.createElement(Aa,{color:"black"})),onClick:()=>t(D.languages)},G={id:"widget-setting-infinite-approval-item-btn",title:_.createElement(_.Fragment,null,_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Infinite approval")),_.createElement(Ur,{direction:"horizontal",size:4}),_.createElement(DA,{side:"top",sideOffset:4,container:N(),content:_.createElement(Ia,null,_.createElement(nt,{variant:"label",size:"medium",color:"neutral700"},_.createElement("b",null,Tt.t("Warning")),":\xA0",Tt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},_.createElement(EA,{color:"gray"}))),start:_.createElement(xA,{color:"gray",size:16}),end:_.createElement(MA,{checked:y}),onClick:S},K={id:"widget-setting-theme-item-btn",type:_.createElement(NA,null),title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:_.createElement(FA,null,_.createElement(PA,{container:N(),items:OA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:B=>o(B.id),type:"primary",borderRadius:"small"})),start:UA(n)},R=h?[]:[x,W];return m||R.push(P),g||R.push(U),R.push(G),!e?.singleTheme&&!f&&R.push(K),_.createElement(AA,{type:_.createElement(BA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:R})}i(_y,"SettingsLists");var VA=QA("div",{paddingLeft:"$8"});function Dy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=GA(),r=qA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Xo.createElement(ae,{header:{title:tp.t("Settings")}},Xo.createElement(ce,null,o&&Xo.createElement(zA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:tp.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(VA,null,Xo.createElement(HA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},tp.t("Reset")))}),Xo.createElement(ep,null),Xo.createElement(_y,null)))}i(Dy,"SettingsPage");import{i18n as o0}from"@lingui/core";import{cancelSwap as n0}from"@rango-dev/queue-manager-rango-preset";import{useManager as r0}from"@rango-dev/queue-manager-react";import{Alert as i0}from"@rango-dev/ui";import Sp from"react";import{useParams as a0}from"react-router-dom";import{i18n as Ot}from"@lingui/core";import{getCurrentNamespaceOfOrNull as HN,getCurrentStep as QN,getRelatedWalletOrNull as qN}from"@rango-dev/queue-manager-rango-preset";import{Button as BS,Divider as GN,QuoteCost as VN,StepDetails as KN,Typography as dp}from"@rango-dev/ui";import{useWallets as jN}from"@rango-dev/wallets-react";import WS from"bignumber.js";import{PendingSwapNetworkStatus as Dn}from"rango-types";import Te,{useEffect as mp,useRef as fp,useState as $a}from"react";import{useNavigate as XN}from"react-router-dom";import{i18n as vo}from"@lingui/core";var KA=[vo.t("Sunday"),vo.t("Monday"),vo.t("Tuesday"),vo.t("Wednesday"),vo.t("Thursday"),vo.t("Friday"),vo.t("Saturday")];function $y(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?vo.t("Today"):`${KA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i($y,"timeSince");function Fy(t){return t.finishTime?$y(parseInt(t.finishTime)):$y(parseInt(t.creationTime))}i(Fy,"getSwapDate");import zr from"react";import{i18n as Na}from"@lingui/core";import{Button as Oy,Divider as op,MessageBox as jA}from"@rango-dev/ui";import bo from"react";var Uy=i(({onCancel:t,onClose:e})=>bo.createElement(bo.Fragment,null,bo.createElement(op,{size:20}),bo.createElement(jA,{type:"error",title:Na.t("Cancel Swap"),description:Na.t("Are you sure you want to cancel this swap?")}),bo.createElement(op,{size:32}),bo.createElement(Oy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Na.t("Yes, Cancel it")),bo.createElement(op,{size:12}),bo.createElement(Oy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Na.t("No, Continue"))),"CancelContent");import{i18n as Ba}from"@lingui/core";import{Button as zy,Divider as np,MessageBox as XA,Typography as YA}from"@rango-dev/ui";import ro from"react";var Hy=i(({onDelete:t,onClose:e})=>ro.createElement(ro.Fragment,null,ro.createElement(np,{size:20}),ro.createElement(XA,{type:"error",title:Ba.t("Delete Transaction"),description:Ba.t("Are you sure you want to delete this swap?")}),ro.createElement(np,{size:32}),ro.createElement(zy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ba.t("Yes, Delete it")),ro.createElement(np,{size:12}),ro.createElement(zy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},ro.createElement(YA,{variant:"title",size:"medium",color:"primary"},Ba.t("No, Cancel")))),"DeleteContent");import{i18n as ZA}from"@lingui/core";import{Button as JA,Divider as RA,MessageBox as eN}from"@rango-dev/ui";import Yo from"react";var Qy=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Yo.createElement(Yo.Fragment,null,Yo.createElement(eN,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Yo.createElement(Yo.Fragment,null,Yo.createElement(RA,{size:"30"}),Yo.createElement(JA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},ZA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as SN,getCurrentStep as CN,getRelatedWalletOrNull as TN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as kN}from"@rango-dev/ui";import{useWallets as wN}from"@rango-dev/wallets-react";import Yy from"react";import{i18n as Pn}from"@lingui/core";import{Alert as Vy,Button as nN,Checkbox as rN,Divider as Ma,Image as iN,MessageBox as aN,Spinner as sN,WarningIcon as lN}from"@rango-dev/ui";import{useWallets as cN}from"@rango-dev/wallets-react";import he,{useState as pN}from"react";import{css as tN,darkTheme as oN,styled as rp}from"@rango-dev/ui";var qy=tN({wordWrap:"break-word",display:"block"}),Gy=rp("img",{width:"100%"}),Wa=rp("div",{position:"relative"}),La=rp("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${oN} &`]:{$$color:"$warning600"}});var Ky=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=pN(null),{list:s}=vt(),c=oe.use.isActiveTab(),{state:l,connect:p}=cN(),u=s.find(w=>w.type===e.walletType),d=u?.needsNamespace?.data.find(w=>w.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,y=i(()=>m?Pn.t("Done"):r?Pn.t("Try again"):Pn.t("Connect"),"getButtonTitle"),S=i(()=>g?he.createElement(sN,{color:"info"}):r||m?null:he.createElement(rN,{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(w){a(w)}},"handleConnect"),k=i(async()=>{if(m){n();return}C()},"handleClickButton"),v=i(()=>{if(!m)return null;let w=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),I=w?.[w?.length-1];return I?so(I):null},"getAddress");return he.createElement(he.Fragment,null,he.createElement(aN,{type:"warning",title:Pn.t("Connect {wallet}",{wallet:u.title}),description:Pn.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:he.createElement(Wa,null,he.createElement(iN,{src:u.image,size:45}),he.createElement(La,null,he.createElement(lN,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:10}),he.createElement(Vy,{type:"success",variant:"alarm",title:Pn.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:10}),he.createElement(Vy,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(Ma,{size:30}),he.createElement(Po,{namespace:d,suffix:S(),error:r?.message,connected:m,address:v()})),he.createElement(Ma,{size:"40"}),he.createElement(nN,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:k,disabled:!c},y()))},"ConnectWalletContent");import{i18n as jy}from"@lingui/core";import{Button as uN,Divider as dN,Image as mN,MessageBox as fN,WarningIcon as gN}from"@rango-dev/ui";import{useWallets as hN}from"@rango-dev/wallets-react";import{detectInstallLink as yN}from"@rango-dev/wallets-shared";import io from"react";var Xy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=hN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(yN(n.installLink),"_blank"),"handleButtonClick");return io.createElement(io.Fragment,null,io.createElement(fN,{type:"warning",title:jy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:io.createElement(Wa,null,io.createElement(mN,{src:n.img,size:45}),io.createElement(La,null,io.createElement(gN,{color:"warning",size:10})))}),io.createElement(dN,{size:"40"}),io.createElement(uN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},jy.t("Install")))},"InstallWalletContent");var Zy=i(t=>{let{swap:e,onClose:o}=t,{state:n,getWalletInfo:r}=wN(),a=CN(e),s=a?TN(e,a):null,c=s?.walletType,l=c?Gn(r(c),n(c)):null,p=a?SN(e,a):null;return c?l===kN.NOT_INSTALLED?Yy.createElement(Xy,{walletType:c}):Yy.createElement(Ky,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function ip(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return zr.createElement(ne,{open:e,onClose:r,container:N()},o==="connectWallet"&&zr.createElement(Zy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&zr.createElement(Qy,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&zr.createElement(Hy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&zr.createElement(Uy,{onClose:r,onCancel:()=>{r(),s()}}))}i(ip,"SwapDetailsModal");import{i18n as Hr}from"@lingui/core";import{Button as ap,Divider as Qr,MessageBox as eS,TokenAmount as vN,Typography as tS}from"@rango-dev/ui";import Ce from"react";import{Link as bN,useNavigate as xN}from"react-router-dom";var Jy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Ry="/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:d,diagnosisUrl:f}=t,h=xN(),{showProfileBanner:g}=oe();return Ce.createElement(ne,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(ht.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(eS,{type:"success",title:Hr.t("Swap Successful")},Ce.createElement(vN,{direction:"vertical",tooltipContainer:N(),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}),Ce.createElement(Qr,{size:12}),Ce.createElement(tS,{className:qy(),variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement(eS,{type:"error",title:Hr.t("Transaction Failed"),description:d}),Ce.createElement(Qr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,g&&Ce.createElement(Ce.Fragment,null,Ce.createElement(bN,{to:Ry},Ce.createElement(Gy,{src:Jy,alt:"Profile Banner"})),Ce.createElement(Qr,{size:30})),Ce.createElement(ap,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Hr.t("Done"))),Ce.createElement(Qr,{size:12}),f&&Ce.createElement(Ce.Fragment,null,Ce.createElement(ap,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Hr.t("Diagnosis")),Ce.createElement(Qr,{size:12})),Ce.createElement(ap,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(tS,{variant:"title",size:"medium",color:"primary"},Hr.t("See Details"))))}i(sp,"SwapDetailsCompleteModal");import{i18n as Da}from"@lingui/core";import{CopyIcon as $N,DoneIcon as FN,IconButton as ON,RangoExplorerIcon as UN,Tooltip as bS,Typography as xS,useCopyToClipboard as zN}from"@rango-dev/ui";import Bt from"react";import DN from"react";import{i18n as LN}from"@lingui/core";import{Alert as TS,IconButton as MN,LinkIcon as PN}from"@rango-dev/ui";import xo,{Fragment as _N}from"react";import{Alert as IN,ChevronDownIcon as AN,IconButton as NN}from"@rango-dev/ui";import _n,{useState as BN}from"react";import{css as qr,darkTheme as oS,styled as Ft,Typography as EN}from"@rango-dev/ui";var nS=Ft(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${oS} &`]:{color:"$secondary500"}}}}}),rS=Ft("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),iS=Ft("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),aS=Ft("div",{padding:"$0 $20 $20 $20"}),FX=Ft("div",{display:"flex",flexDirection:"column",gap:"$10"}),sS=Ft("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),OX=Ft("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Zo=qr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${oS} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),lS=qr({padding:"$5 0"}),Pa=qr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),cS=qr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),pS=qr({width:"100%",padding:"0 $20 $10"}),uS=Ft("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),dS=Ft("div",{display:"flex",flexDirection:"column",gap:"$5"}),_a=Ft(EN,{wordBreak:"break-word"});import{styled as lp}from"@rango-dev/ui";var mS=lp("div",{display:"flex",flexDirection:"column",gap:"$10"}),fS=lp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),gS=lp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function hS(t){let{message:e}=t,[o,n]=BN(!1);return _n.createElement(IN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&_n.createElement(NN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},_n.createElement(fS,{rotated:o},_n.createElement(AN,{size:12,color:"gray"}))),footer:_n.createElement(gS,{open:o},_n.createElement(_a,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(hS,"FailedAlert");import{i18n as yS}from"@lingui/core";import{Alert as cp,Button as SS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as WN}from"rango-types";import Gr from"react";function CS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?Gr.createElement(cp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:Gr.createElement(SS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},yS.t("Change"))}):a===WN.WaitingForConnectingWallet?Gr.createElement(cp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Gr.createElement(SS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},yS.t("Connect"))}):Gr.createElement(cp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(CS,"WarningAlert");function pp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=lr(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,d=u&&!c||p&&!s.explorerUrl?.length;return xo.createElement(mS,null,s.explorerUrl?.map((f,h,g)=>{let m=h+f.url,y=h===g.length-1,S=(y&&u||p)&&!d,C=y&&s.status==="failed";return xo.createElement(_N,{key:m},xo.createElement(TS,{id:"widget-swap-details-tx-alert",type:y&&(S&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:LN.t("View transaction"),action:f.url&&xo.createElement(MN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},xo.createElement(PN,{size:12}))}))}),d&&xo.createElement(TS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&xo.createElement(CS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&xo.createElement(hS,{message:a}))}i(pp,"SwapDetailsAlerts");var kS=2e3;var wS=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:ft(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:zn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ft(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ft(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:zn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:DN.createElement(pp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function vS(t){if(lr(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(vS,"getStepState");function ES(t){let{requestId:e}=t,[o,n]=zN(kS);return Bt.createElement(iS,{className:Zo()},Bt.createElement(xS,{variant:"label",size:"large",color:"neutral700"},Da.t("Request ID")),Bt.createElement("div",{className:Pa()},Bt.createElement(xS,{variant:"label",size:"small",color:"neutral700"},e),Bt.createElement(bS,{container:N(),content:o?Da.t("Copied To Clipboard"):Da.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Bt.createElement(ON,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(FN,{size:16,color:"secondary"}):Bt.createElement($N,{size:16,color:"gray"}))),Bt.createElement(uS,{target:"_blank",href:`${Xp}/swap/${e}`},Bt.createElement(bS,{container:N(),content:Da.t("View on Rango Explorer"),side:"bottom"},Bt.createElement(UN,{size:20})))))}i(ES,"RequestIdRow");import{i18n as IS}from"@lingui/core";import{Typography as AS}from"@rango-dev/ui";import up from"react";function NS(t){let{date:e,isFinished:o}=t;return up.createElement("div",{className:Zo()},up.createElement(AS,{variant:"label",size:"large",color:"neutral700"},o?IS.t("Finished at"):IS.t("Created at")),up.createElement(AS,{variant:"label",size:"small",color:"neutral700"},e))}i(NS,"SwapDateRow");var YN=3e3;function gp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=jN(),l=T().blockchains(),p=T().swappers(),{findToken:u}=T(),d=z().use.retry(),f=XN(),h=fp(null),[g,m]=$a(!1),[y,S]=$a(null),[C,k]=$a(null),[v,w]=$a(null),I=fp(y),A=fp(C),b=Ne.use.getNotifications(),E=Ne.use.removeNotification(),x=b(),W=QN(e),P=W?.networkStatus,U=i(Le=>{m(!0),S(Le)},"handleChangeModalState"),G=i(()=>{m(!1)},"handleCloseModal"),K=i(()=>{k({type:"loading",title:Ot.t("Change Network"),description:`We\u2019re switching the connected network to ${Z?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),R=i(()=>{k({type:"success",title:Ot.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),B=i(Le=>{k({type:"error",title:Ot.t("Network Switch Failed"),description:Le?.message||ee.detailedMessage.content})},"handleShowSwitchNetworkFailed"),Y=Qd(e),Z=W?HN(e,W):null,le=W?qN(e,W):null,ve=Fy(e),Ht=qd(e),be=i(Le=>!!c(Le)?.mobileWallet,"checkIsMobileWallet"),dt=!!P&&[Dn.WaitingForNetworkChange,Dn.NetworkChangeFailed].includes(P),kt=!!le?.walletType&&be(le.walletType),wt=!!le&&!!Z&&a(le.walletType,Z.network,Z),F=!!Z&&dt&&(kt||wt),O=i(()=>{F&&(K(),s(le.walletType,[{namespace:Z.namespace,network:Z.network}]).then(()=>{R()}).catch(Le=>{B(Le)}))},"handleSwitchNetwork"),X=i(()=>{U("switchNetwork"),O()},"handleSwitchNetworkClick"),ee=Hd(e,W,c),j=wS({swap:e,switchNetworkIsAvailable:F,handleSwitchNetworkClick:X,showNetworkModal:P,setNetworkModal:U,message:ee,blockchains:l,swappers:p}),Q=j.length,[Ve,q]=[e.steps[0],e.steps[Q-1]],ye=q?.outputAmount||q?.expectedOutputAmountHumanReadable,Je=e.steps.reduce((Le,Wt)=>Le+parseFloat(Wt.feeInUsd||""),0),mt=e.steps.find(Le=>Le.diagnosisUrl)?.diagnosisUrl,ao=M(parseFloat(ye||"0")*(q?.toUsdPrice||0),4,4),On=M(parseFloat(e.inputAmount)*(Ve?.fromUsdPrice||0),4,4),Eo=ye?new WS(ye).multipliedBy(q.toUsdPrice||0).toString():"",jr=new WS(e.inputAmount).multipliedBy(Ve?.fromUsdPrice||0).toString(),Ro=Kt(On,ao),ja=ee.detailedMessage.content||ee.shortMessage,dC=e.status==="success"?Ot.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(ye,6,6),token:j[Q-1]?.to.token.displayName,conciseAddress:so(e.wallets[j[Q-1]?.to.chain.displayName||""]?.address||""),chain:j[Q-1]?.to.chain.displayName}}):Te.createElement(dS,null,Te.createElement(dp,{variant:"body",size:"medium",color:"neutral700",align:"center"},ja?"":Ot.t("Transaction was not sent."),Y?`${Ot.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:Y.outputAmount,symbol:Y.symbol,blockchain:Y.blockchain}})}`:""),ja&&Te.createElement(_a,{align:"center",variant:"body",size:"medium",color:"neutral700"},Te.createElement("b",null,"Reason:")," ",ja));return mp(()=>{x.find(Wt=>Wt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),E(e.requestId),G()):v&&w(null))},[e.status,e.requestId]),mp(()=>{if(F){if(U("switchNetwork"),P===Dn.WaitingForNetworkChange){K();return}if(P===Dn.NetworkChangeFailed){B();return}return}if(P===Dn.WaitingForConnectingWallet){U("connectWallet");return}if(P===Dn.NetworkChanged){U("switchNetwork"),R();return}y&&["connectWallet","switchNetwork"].includes(y)&&G()},[P]),mp(()=>{if(I.current=y,A.current=C,y==="switchNetwork"&&C?.type==="success"){let Le=setTimeout(()=>{I.current==="switchNetwork"&&A.current?.type==="success"&&G()},YN);return()=>clearTimeout(Le)}},[y,C]),Te.createElement(ae,{header:{title:Ot.t("Swap Details"),onCancel:e.status==="running"?()=>U("cancel"):void 0,suffix:e.status!=="running"&&Te.createElement(mo,null,Te.createElement(BS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>U("delete")},Te.createElement(dp,{size:"medium",variant:"label",color:"error"},Ot.t("Delete"))))},footer:Ht&&!v&&Te.createElement(BS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Le=ki(e,l,u);d(Le),setTimeout(()=>{f("../../")},0)}},Ot.t("Try again"))},Te.createElement(nS,{compact:!0,ref:h},Te.createElement(ES,{requestId:o}),Te.createElement(NS,{date:ve,isFinished:!!e.finishTime}),Te.createElement("div",{className:cS()},Te.createElement(VN,{fee:M(String(Je),2,2),time:Qn(oi(e.steps)),steps:Q}),Te.createElement(hr,{from:{price:{value:M(e.inputAmount,6,6),usdValue:On,realUsdValue:jr,realValue:e.inputAmount},token:{displayName:j[0]?.from.token.displayName||"",image:j[0]?.from.token.image},chain:{image:j[0]?.from.chain.image,displayName:j[0]?.from.chain.displayName||""}},to:{price:{value:M(ye,6,6),usdValue:ao,realUsdValue:Eo,realValue:ye||""},token:{displayName:j[Q-1]?.to.token.displayName||"",image:j[Q-1]?.to.token.image},chain:{image:j[Q-1]?.to.chain.image,displayName:j[Q-1]?.to.chain.displayName||""}},percentageChange:M(Ro,2,2),warningLevel:jt(Ro??0)})),Te.createElement("div",{className:pS()},Te.createElement(dp,{variant:"title",size:"small"},Ot.t("Swaps steps"))),Te.createElement(GN,{size:8}),Te.createElement(aS,null,j.map((Le,Wt)=>{let Ap=Wt,Un=e.steps[Wt]&&vS(e.steps[Wt]),mC=Un==="error"||Un==="in-progress"||Un==="warning"||Un==="completed"&&Wt===j.length-1;return Te.createElement(KN,{className:"widget-swap-details-step-item-container",key:Ap,step:Le,type:"swap-progress",ref:h,state:Un,hasSeparator:Wt!==0,tabIndex:Ap,isFocused:mC,tooltipContainer:N()})}))),Te.createElement(ip,{isOpen:g,state:y,switchNetworkModalState:C,onClose:G,onCancel:r,onDelete:n,message:ee.detailedMessage.content,swap:e,handleSwitchNetwork:X}),Te.createElement(sp,{open:!!v,diagnosisUrl:mt,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:M(ye,6,6),usdValue:ao,realUsdValue:Eo,realValue:ye||"",percentageChange:M(Ro,2,2),token:{displayName:j[Q-1]?.to.token.displayName||"",image:j[Q-1]?.to.token.image},chain:{image:j[Q-1]?.to.chain.image},description:dC}))}i(gp,"SwapDetails");import{i18n as Oa}from"@lingui/core";import{Divider as PS,NotFound as t0,Skeleton as Kr,Typography as Ua}from"@rango-dev/ui";import Ie from"react";import{i18n as ZN}from"@lingui/core";import{Divider as JN,Skeleton as RN,Typography as e0}from"@rango-dev/ui";import Ee from"react";import{css as Ut,styled as hp}from"@rango-dev/ui";var LS=hp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Vr=hp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Fa=hp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),d7=Ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),m7=Ut({paddingTop:"$15",display:"flex"}),f7=Ut({padding:"$15 $0"}),g7=Ut({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),h7=Ut({paddingBottom:"$10"}),y7=Ut({display:"flex",justifyContent:"start",alignItems:"center"}),S7=Ut({paddingTop:"$5",display:"flex",alignItems:"center"}),C7=Ut({display:"flex",alignItems:"center"}),T7=Ut({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),MS=Ut({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function yp(){return Ee.createElement(LS,null,Ee.createElement(Cr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(e0,{variant:"title",size:"small"},ZN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1}),Ee.createElement("div",{className:MS()},Ee.createElement(JN,{direction:"horizontal",size:20}),Ee.createElement(RN,{height:22,variant:"rectangular"}))),Ee.createElement(Fa,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1}))))}i(yp,"LoadingSwapDetails");function _S(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ae,{header:{title:Oa.t("Swap Details"),suffix:Ie.createElement(mo,null)}},o&&Ie.createElement(rS,null,Ie.createElement("div",{className:Zo()},Ie.createElement(Ua,{variant:"label",size:"large",color:"neutral700"},`${Oa.t("Request ID")}`),Ie.createElement("div",{className:Pa()},Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"})),Ie.createElement(PS,{direction:"horizontal",size:4}),Ie.createElement(Kr,{width:16,height:16,variant:"rectangular"}),Ie.createElement(PS,{direction:"horizontal",size:4}),Ie.createElement(Kr,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Zo()},Ie.createElement(Ua,{className:lS(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"})),Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Kr,{width:60,height:10,variant:"rounded"}))),Ie.createElement(yp,null)),!o&&Ie.createElement(sS,null,Ie.createElement(t0,{title:Oa.t("Not found"),description:Oa.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(_S,"SwapDetailsPlaceholder");function DS(){let{manager:t,state:e}=r0(),o=!e.loadedFromPersistor,n=Ct(t),{requestId:r}=a0(),a=Qe(),{fetchStatus:s}=T();if(!r)return Sp.createElement(i0,{containerStyles:{margin:"20px"},type:"error",title:o0.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&&n0(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?Sp.createElement(_S,{requestId:r,showSkeleton:c}):Sp.createElement(gp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(DS,"SwapDetailsPage");import{i18n as $S}from"@lingui/core";import{Divider as s0,getCategoriesCount as l0,SelectableCategoryList as c0,styled as OS,Typography as p0,Wallet as u0}from"@rango-dev/ui";import zt,{useState as FS}from"react";var d0=OS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),m0=OS(ce,{textAlign:"center"});function US(){let{fetchStatus:t}=T(),[e,o]=FS("ALL"),n=T().blockchains(),{config:r}=T(),[a,s]=FS(),c=oe.use.isActiveTab(),{list:l}=vt(),p=bu(l,n),d=l0(p)!==1,f=xu(l,e),h=i(g=>{ru(l,r.multiWallets)||s(g)},"handleWalletItemClick");return zt.createElement(ae,{header:{title:$S.t("Connect Wallets")}},zt.createElement(m0,null,d&&zt.createElement(zt.Fragment,null,zt.createElement(c0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),zt.createElement(s0,{size:24})),zt.createElement(p0,{variant:"title",size:"xmedium",align:"center"},$S.t("Choose a wallet to connect.")),zt.createElement(d0,null,f.map((g,m)=>{let y=`wallet-${m}-${g.type}`;return zt.createElement(u0,{key:y,...g,state:g.state,container:N(),onClick:()=>h(g),isLoading:t==="loading",disabled:!c})}),zt.createElement(ir,{id:"widget-state-full-connect-modal",wallet:a,onClose:()=>{s(void 0)}}))))}i(US,"WalletsPage");function zS(){return tm(),qs(),f0([{path:D.home,element:Ue.createElement(ny,null)},{path:D.routes,element:Ue.createElement(ly,null)},{path:D.fromSwap,children:[{index:!0,element:Ue.createElement(Ea,{type:"source"})},{path:D.blockchains,element:Ue.createElement(wa,{type:"source"})}]},{path:D.toSwap,children:[{index:!0,element:Ue.createElement(Ea,{type:"destination"})},{path:D.blockchains,element:Ue.createElement(wa,{type:"destination"})}]},{path:D.settings,children:[{index:!0,element:Ue.createElement(Dy,null)},{path:D.languages,element:Ue.createElement(iy,null)},{path:D.exchanges,element:Ue.createElement(Hc,{sourceType:"Exchanges"})},{path:D.bridges,element:Ue.createElement(Hc,{sourceType:"Bridges"})},{path:D.customTokens,children:[{index:!0,element:Ue.createElement(rh,null)},{path:D.addCustomTokens,children:[{index:!0,element:Ue.createElement(Jm,null)},{path:D.blockchains,element:Ue.createElement(wa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:D.swaps,children:[{index:!0,element:Ue.createElement(bh,null)},{path:D.swapDetails,element:Ue.createElement(DS,null)}]},{path:D.wallets,element:Ue.createElement(US,null)},{path:D.confirmSwap,element:Ue.createElement(Hg,null)}])}i(zS,"AppRoutes");import{useQueueManager as L0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as M0}from"rango-sdk";import{useContext as P0,useEffect as wp,useState as eC}from"react";import{Provider as T0}from"@rango-dev/wallets-react";import{WalletTypes as VS}from"@rango-dev/wallets-shared";import za,{createContext as k0,useEffect as KS,useMemo as w0,useRef as jS}from"react";import{useEffect as h0}from"react";import{Provider as g0}from"@hub3js/core";function HS(t){return t.map(e=>typeof e=="string"?e:e instanceof g0?e.id:e.config.type).join("-")}i(HS,"hashProviders");function Cp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return h0(()=>{o(),r()},[HS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Cp,"useWalletProviders");import{legacyFormatAddressWithNetwork as y0,legacyReadAccountAddress as QS}from"@rango-dev/wallets-core/legacy";import{Events as $n}from"@rango-dev/wallets-react";import{isEvmBlockchain as S0}from"rango-sdk";function qS(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=T(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(S0).map(m=>m.name),u=i((m,y)=>{let[S,,C,k,v]=m,w={walletType:S,network:k.network??void 0,accounts:C};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=as(S,C,p,y.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace,k.derivationPath)},"onAccountsEvent"),d=i((m,y,S,C,k)=>{if(y===$n.ACCOUNTS){let v=Vn(k.supportedBlockchains);S&&u([m,y,S,C,k],{supportedChainNames:v})}y===$n.PROVIDER_DISCONNECTED&&(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),y===$n.NAMESPACE_DISCONNECTED&&n(m,S)},"handleUpdatesForHub"),f=i((m,y,S,C,k)=>{if(y===$n.ACCOUNTS){let v=Vn(k.supportedBlockchains),w=[],I=[];if(S?.forEach(b=>{let{network:E}=QS(b);p.includes(E)?w.push(b):I.push(b)}),r.filter(b=>b.walletType===m).map(b=>y0(b.address,b.chain)).length>0){if(w.length>0){let b=as(m,w,p,v,k.isContractWallet);a(m,{chains:b.map(E=>E.chain)})}I.length>0&&a(m,{chains:I.map(b=>{let{network:E}=QS(b);return E})})}S?u([m,y,S,C,k],{supportedChainNames:v}):(o(m),l.current?l.current(m):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((m,y,S,C,k)=>{if(y===$n.CONNECTED&&S){let v={walletType:m,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(y===$n.NETWORK&&S){let v={walletType:m,network:S,accounts:C.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((m,y,S,C,k)=>{k.isHub?d(m,y,S,C,k):f(m,y,S,C,k),h(m,y,S,C,k)},"handler")}}i(qS,"useUpdates");import{LegacyEvents as C0}from"@rango-dev/wallets-core/legacy";function GS(t,e){let[o,n,r,a,s]=e;n!==C0.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(GS,"propagateEvents");var Ha=k0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function v0(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}=Cp(s.wallets,c),p=jS(),u=jS(),{handler:d}=qS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});KS(()=>{n().catch(console.log)},[]),KS(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=oe.use.isActiveTab(),h=w0(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return za.createElement(Ha.Provider,{value:h},za.createElement(T0,{allBlockChains:a,providers:l,onUpdateState:(g,m,y,S,C)=>{let k=[g,m,y,S,C];d(...k),t.onUpdateState&&GS(t.onUpdateState,k)},autoConnect:!!f,configs:{wallets:s.wallets,walletOptions:{[VS.TON_CONNECT]:{provider:{manifestUrl:s.tonConnect?.manifestUrl}},[VS.TREZOR]:{provider:{manifest:s.trezorManifest}}}}},t.children))}i(v0,"Main");function Qa(t){let{config:e,...o}=t;return za.createElement(qu,{config:e},za.createElement(v0,{...o,config:e}))}i(Qa,"WidgetWallets");import{globalCss as b0}from"@rango-dev/ui";var XS=i(()=>b0({"@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 x0}from"@rango-dev/wallets-react";import{useEffect as E0,useRef as I0}from"react";function YS(){let{connect:t,state:e}=x0(),o=I0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);E0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(YS,"useForceAutoConnect");import{isApprovalTX as A0,RouteEventType as ZS,StepEventType as JS,StepExecutionEventStatus as N0,WidgetEvents as qa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as RS}from"react";function Tp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();RS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===JS.TX_EXECUTION&&s.status===N0.TX_SENT&&!A0(c)||s.type===JS.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(y=>y.blockchain===m.blockchain&&y.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&y.symbol?.toLocaleLowerCase()===m.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return ke.on(qa.StepEvent,r),()=>ke.off(qa.StepEvent,r)},[ke,e]),RS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===ZS.FAILED||s.type===ZS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ke.on(qa.RouteEvent,r),()=>ke.off(qa.RouteEvent,r)},[ke])}i(Tp,"useSubscribeToWidgetEvents");import{useManager as B0}from"@rango-dev/queue-manager-react";import{useEffect as W0}from"react";function kp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=B0();W0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ct(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(kp,"useSyncNotifications");function vp(){YS(),XS(),Tp(),kp();let t=T().blockchains(),{canSwitchNetworkTo:e}=tC(),[o,n]=eC(null),[r,a]=eC(),s=P0(Ha),c=t.filter(M0);wp(()=>()=>Rd(),[]),wp(()=>()=>em(),[]),L0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),wp(()=>(Mo.init(),Ne.persist.hasHydrated()||Ne.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)}),Mo.destroy),[])}i(vp,"useBootstrap");import{styled as _0}from"@rango-dev/ui";var oC=_0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left",height:"100%","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Jo(){vp();let{config:t}=T(),{activeTheme:e}=uo(t?.theme||{}),{activeLanguage:o}=ko();return bp.createElement(D0,{language:o},bp.createElement(oC,{id:"swap-container",className:e()},bp.createElement(zS,null)))}i(Jo,"Main");import{setSolanaSignerConfig as oB}from"@rango-dev/signer-solana";import Ep,{useEffect as Ip,useMemo as nB}from"react";function nC(){let{setWatermark:t,setShowProfileBanner:e}=oe();return{fetchApiConfig:i(async()=>{let n=await fetch(`${qt("BASE_URL")}/meta/dapp/config?apiKey=${qt("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(nC,"useFetchApiConfig");import{useState as $0}from"react";var F0=i(()=>{let[t,e]=$0(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=nu(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),rC=F0;import{checkWaitingForNetworkChange as O0,makeQueueDefinition as U0}from"@rango-dev/queue-manager-rango-preset";import{Provider as z0}from"@rango-dev/queue-manager-react";import{useWallets as H0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Q0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as q0}from"rango-types";import G0,{useMemo as V0}from"react";function K0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s,hubProvider:c}=H0(),l=V0(()=>U0({API_KEY:t.apiKey||qt("API_KEY"),BASE_URL:qt("BASE_URL"),emitter:{emit:ke.emit}}),[t.apiKey]),{blockchains:p,connectedWallets:u}=T(),d=p(),f={blockchains:u.map(w=>({accounts:[w],name:w.chain}))},h=i(async(w,I)=>a(w,I.network,I)?await r(w,[I]):void 0,"switchNetwork"),g=i(w=>!!s(w).mobileWallet,"isMobileWallet"),m=d.filter(w=>w.enabled).reduce((w,I)=>(w[I.name]=I,w),{}),y=d.filter(q0),S=i(w=>{let{supportedChains:I}=s(w);return Vn(I)},"getSupportedChainNames"),C=e(),k={meta:{blockchains:m,evmBasedChains:y,evmNetworkChainInfo:Q0(y),getSupportedChainNames:S},getSigners:o,wallets:f,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g,hubProvider:c},v=oe.use.isActiveTab();return G0.createElement(z0,{queuesDefs:[l],context:k,onPersistedDataLoaded:w=>{O0(w)},isPaused:!v},t.children)}i(K0,"QueueManager");var iC=K0;import{useManager as J0}from"@rango-dev/queue-manager-react";import R0,{createContext as eB,useContext as tB}from"react";function aC(){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:d,toBlockchain:f,toToken:h,requestAmount:g}=p,m={blockchains:e,tokens:o};if(u!==void 0){let y=e.find(S=>S.name===u)??null;n(y)}if(d!==void 0){let y=d?t(d)??null:null;r({meta:m,token:y})}if(f!==void 0){let y=e.find(S=>S.name===f)??null;a(y)}if(h!==void 0){let y=h?t(h)??null:null;s({meta:m,token:y})}g!==void 0&&c(g)},"updateQuoteInputs")}i(aC,"useUpdateQuoteInputs");import{cancelSwap as j0,getCurrentNamespaceOfOrNull as X0,getCurrentStep as Y0,getRelatedWalletOrNull as Z0}from"@rango-dev/queue-manager-rango-preset";var Ga=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ct(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=ki(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&j0(o)}getCurrentStepInfo(e){let o=Y0(e);return{step:o,wallet:o?Z0(e,o):null,network:o?X0(e,o)?.network:null}}};var sC=eB(void 0);function xp(t){let{manager:e}=J0(),o=oe.use.isActiveTab(),n=z().use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=T(),l=new Ga(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=T(),u=Su(a()),d=T().blockchains(),f=T().tokens(),h=T().swappers(),g=T().fetchStatus,m=ko().resetLanguage,y=Ne().getNotifications(),S=Ne().clearNotifications,C=aC(),{fromBlockchain:k,toBlockchain:v,fromToken:w,toToken:I,inputAmount:A}=z()(),b={isActiveTab:o,setCurrentTabAsActive:Mo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async E=>c(E)},meta:{blockchains:d,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:m,notifications:{list:y,clearAll:S},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:C}};return R0.createElement(sC.Provider,{value:b},t.children)}i(xp,"WidgetInfo");function lC(){let t=tB(sC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(lC,"useWidget");function Fn(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=nC(),{handleLoadCustomFont:a}=rC();return Ip(()=>{r().catch(console.log)},[]),Ip(()=>{n&&a(n)},[n]),nB(()=>{Eu({API_KEY:o?.apiKey||Gp(),BASE_URL:o?.apiUrl||jp})},[o.apiKey,o.apiUrl]),Ip(()=>{t.config?.signers?.customSolanaRPC&&oB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Ep.createElement(Qa,{config:o,onUpdateState:e},Ep.createElement(iC,{apiKey:o.apiKey},Ep.createElement(xp,null,t.children)))}i(Fn,"WidgetProvider");function cC(t){let e=t.config?.externalWallets;return Va.createElement(Ci,null,e?Va.createElement(Jo,null):Va.createElement(Fn,{config:t.config??nn},Va.createElement(Jo,null)))}i(cC,"Refuel");import Ka from"react";function pC(t){let e=t.config?.externalWallets;return Ka.createElement(Ci,null,e?Ka.createElement(Jo,null):Ka.createElement(Fn,{config:t.config??nn},Ka.createElement(Jo,null)))}i(pC,"Widget");function uC(){let{on:t,off:e}=ke;return{on:t,off:e}}i(uC,"useWidgetEvents");var yee={DerivationPath:or,Namespaces:Rn,Detached:tr,isOnDerivationPath:rr,isOnNamespace:nr,isOnDetached:Io};export{UR as EventSeverity,ln as MainEvents,YR as Networks,RR as PendingSwapNetworkStatus,us as QuoteEventTypes,cC as Refuel,zR as RouteEventType,Ra as SUPPORTED_FONTS,yee as StatefulConnect,HR as StepEventType,QR as StepExecutionBlockedEventStatus,qR as StepExecutionEventStatus,gd as SwapModeContext,ht as UI_ID,ms as UiEventTypes,ds as WalletEventTypes,jR as WalletEvents,ZR as WalletTypes,pC as Widget,ln as WidgetEvents,Fn as WidgetProvider,Qa as WidgetWallets,rl as customizedThemeTokens,Za as pickProviderVersionWithFallbackToLegacy,VR as readAccountAddress,en as useStatefulConnect,vt as useWalletList,tC as useWallets,lC as useWidget,uC as useWidgetEvents,yT as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map