@rango-dev/widget-embedded 0.0.0-experimental-e17e4765-20260615 → 0.0.0-experimental-cb7aed39-20260617
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/components/WalletStatefulConnect/NamespaceDetachedItem.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/dist/utils/wallets.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +7 -7
- package/src/components/WalletStatefulConnect/NamespaceDetachedItem.tsx +1 -7
- package/src/utils/wallets.ts +20 -2
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var mC=Object.defineProperty;var i=(t,e)=>mC(t,"name",{value:e,configurable:!0});import{EventSeverity as OR,RouteEventType as UR,StepEventType as zR,StepExecutionBlockedEventStatus as HR,StepExecutionEventStatus as QR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as GR}from"@rango-dev/wallets-core/legacy";import{useWallets as eC,Events as KR}from"@rango-dev/wallets-react";import{Networks as XR,WalletTypes as YR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as JR}from"rango-types";import{Divider as Nk}from"@rango-dev/ui";import co,{useEffect as Bk,useRef as Wk,useState as fd}from"react";import{WalletState as fC}from"@rango-dev/ui";import{useWallets as gC}from"@rango-dev/wallets-react";import{useReducer as hC}from"react";function Ap(t){return!!t.derivationPath}i(Ap,"isStateOnDerivationPathStep");function Np(t){return!!t.namespace}i(Np,"isStateOnNamespace");var Xr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Bp(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(Bp,"reducer");function en(){let{state:t,disconnect:e,connect:o}=gC(),[n,r]=hC(Bp,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===fC.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(!Np(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(!Ap(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 Cs}from"@rango-dev/ui";import{useWallets as bT}from"@rango-dev/wallets-react";import{detectMobileScreens as xT,WalletTypes as Yn}from"@rango-dev/wallets-shared";import{useCallback as ET,useEffect as IT}from"react";import CT,{createContext as TT,useContext as kT,useEffect as wT,useRef as vT}from"react";import{create as yT}from"zustand";import{persist as ST}from"zustand/middleware";import{allProviders as yC}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 Lp,pickVersion as Mp}from"@hub3js/core/utils";function Pp({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(Lp().version("1.0.0",n).build()):o.push(Lp().version("0.0.0",n).build())}),o}return t}i(Pp,"matchAndGenerateProviders");function Za(t){try{return Mp(t,"1.0.0")[1]}catch{return Mp(t,"0.0.0")[1]}}i(Za,"pickProviderVersionWithFallbackToLegacy");function _p(t){return t.map(o=>Za(o)).map(o=>o instanceof Ya?o.id:o.config.type)}i(_p,"configWalletsToWalletName");function Dp(t,e){return e.find(o=>o.name===t)?.displayName}i(Dp,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function $p(t,e){return e.find(o=>o.name===t)?.logo}i($p,"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 Op(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Op,"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"}},SC={clientUrl:void 0},CC={liquiditySources:void 0};function Fp(t){let e=Op(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return yC(o).map(a=>a())}i(Fp,"generateProviders");var Up=i((t,e,o)=>{let n=Fp({...nn,...t});return{config:{...nn,...t},iframe:SC,campaignMode:CC,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=Fp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Op(a);return Pp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as zp}from"rango-types";var Hp=[zp.EVM,zp.SOLANA],Jr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as LC}from"rango-sdk";function Qp(){return process.env.REACT_APP_RANGO_API_KEY}i(Qp,"getApiKeyFromEnv");function qp(){let t=Qp();if(t)return t;throw new Error("Ensure you have set REACT_APP_RANGO_API_KEY in your env variables.")}i(qp,"getApiKeyFromEnvOrThrow");function Gp(){return Qp()||"NOT_SET"}i(Gp,"getApiKeyFromEnvOrNotSet");import{BlockchainCategories as EC,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as IC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as AC,isEvmAddress as NC,Networks as hu}from"@rango-dev/wallets-shared";import an from"bignumber.js";import TC from"bignumber.js";var pe=new TC(0);var No="~",Vp=[];import{BlockchainCategories as es,WalletState as xC}from"@rango-dev/ui";import{TransactionType as ts}from"rango-sdk";import{UI_ID as kC}from"@rango-dev/ui";var Kp="https://api.rango.exchange",jp="https://explorer.rango.exchange",ht={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...kC};var Xp="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 Jp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Jp,"exactText");function Rp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Rp,"startWithText");var N=i(()=>document.getElementById(ht.SWAP_BOX_ID),"getContainer"),Bo=i(()=>document.getElementById(ht.EXPANDED_BOX_ID),"getExpanded");function eu(t,e,o){let n=!!e&&Jp(e,t),r=!!o&&Jp(o,t);return n!==r?n?-1:1:0}i(eu,"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&&Rp(e,t),r=!!o&&Rp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ns,"compareStartWithText");function tu(t,e,o){if(!o)return 0;let n=eu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=eu(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(tu,"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"),ou=i(t=>Ra.find(o=>o.value===t)?.url,"getFontUrlByName");function nu(t,e){let o=!!t.find(n=>n.state===xC.CONNECTED);return e===!1&&o}i(nu,"isSingleWalletActive");function ru(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(ru,"memoizedResult");function iu(t,e){let o=new Set;return e.forEach(n=>{o.add(n.blockchain)}),t.filter(n=>o.has(n.name))}i(iu,"filterBlockchainsWithAtLeastOneToken");import{BigNumber as fu}from"bignumber.js";function au(t){return t.replace(/^0+(?=\d)/g,"")}i(au,"removeLeadingZeros");function su(t){return t.replace(/^\.(\d+)/,"0.$1")}i(su,"ensureLeadingZeroForDecimal");function lu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(lu,"formatThousandsWithCommas");function cu(t){return t.replace(/\s+/g,"-")}i(cu,"replaceSpacesWithDash");function pu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(pu,"stripTrailingZeros");function uu(t){return t=t.replace(/[^\d.]/g,"").replace(/\./g,(e,o,n)=>n.indexOf(".")===o?".":""),t}i(uu,"parseNumericValue");function ti(t){return/^0+(?:\.0+)?$/.test(t)}i(ti,"isZeroValue");function du(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(du,"isValidCurrencyFormat");function mu(t){return/\d+$/.test(t)}i(mu,"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 fu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new fu(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 gu(t){return ti(t)?"0":t.endsWith(".")?t.slice(0,-1):pu(t)}i(gu,"sanitizeInputAmount");function Gn(t,e){return WC(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=>!Vp.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:AC(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 is(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}=IC(l),d=c.length>0,f=c.includes(u),h=u===hu.Unknown;if(d&&!f&&!h)return;let m=u===hu.Unknown&&NC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(is,"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?rs(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new an(pe));return BC(e.toString())},"calculateWalletUsdValue");function BC(t){let e=t.toString().split(".");return e[0]&&(e[0]=lu(e[0])),e.join(".")}i(BC,"numberWithThousandSeparator");function rs(t,e){return new an(t).shiftedBy(-e).toFixed()}i(rs,"representAmountInNumber");function ii(t){if(!t)return null;let e=rs(t.amount,t.decimals),o=t.usdValue?rs(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===EC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(ei(n,e))return!0;return!1})}i(xu,"filterWalletsByCategory");function WC(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(WC,"checkIsWalletPartiallyConnected");var as={API_KEY:Gp()};function qt(t){return as[t]||""}i(qt,"getConfig");function Eu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),as=e,as}i(Eu,"initConfig");var Iu=20,Au=25,ss="theme-widget",ls=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"),cs=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 LC(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 ps=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ps||{}),us=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(us||{}),ds=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ds||{}),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=>Hp.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=tu(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 MC,Catalonia as PC,Chinese as _u,Denmark as _C,English as DC,Finland as $C,French as FC,German as OC,Greece as UC,Hungary as zC,India as HC,Indonesian as QC,Italian as qC,Japanese as GC,Korea as VC,Lithuania as KC,Malay as jC,Netherlands as XC,Pakistan as YC,Philippines as ZC,Poland as JC,Portuguese as RC,Russian as eT,SaudiArabia as tT,Serbia as oT,Slovakia as nT,SouthAfrica as rT,Spanish as iT,Swahili as aT,Swedish as sT,Thai as lT,Turkish as cT,Ukrainian as pT,Vietnamese as uT}from"@rango-dev/ui";var Du=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:rT},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:tT},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:MC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:PC},{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:XC},{title:"English",label:"English",local:"en",SVGFlag:DC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:ZC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:$C},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:FC},{title:"German",label:"Deutsch",local:"de",SVGFlag:OC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:UC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:HC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:zC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:QC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:qC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:GC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:VC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:KC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:jC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:JC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:RC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:eT},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:oT},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:nT},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:iT},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:aT},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:sT},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:lT},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:cT},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:pT},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:YC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:uT}],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 Ss from"bignumber.js";import dT from"mitt";var ke=dT(),mT={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 fs(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(fs,"computeNextBalancesWithNewPrices");function gs(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(gs,"createBalanceStateForNewAccount");function hs(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(hs,"updateAggregatedBalanceStateForNewAccount");function fT(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(fT,"removeBalanceFromAggregatedBalance");function ys(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=fT(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(ys,"computeNextStateAfterWalletBalanceRemoval");function gT(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(gT,"matchWalletDetailsWithConnectedWallet");var hT=ru(),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:gT(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};fs(m,g,d);let y=gs(g,e);f=hs(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}=ys(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};fs(f,d,l);let{_balances:h,_aggregatedBalances:g}=ys(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=gs(d,e);p=hs(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 Ss(u.amount),f=new Ss(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:()=>hT(()=>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 Ss(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 yT()(ST((...e)=>({...zu(...e),...Pu(...e),...$u(...e),...Up(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=TT(null);function T(){let t=kT(Qu);if(wT(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function qu(t){let e=vT();return e.current||(e.current=Hu(t.config)),CT.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}=bT(),{handleDisconnect:a}=en(),s=_p(o()),c=yu(n,r,s,e);c=xT()?c.filter(f=>f.showOnMobile!==!1&&n(f.type).installed):c;let l=Tu(c),p=ET(()=>{let f=c?.filter(h=>h.state===Cs.CONNECTING)||[];for(let h of f)a(h)},[vu(c)]);IT(()=>()=>{p()},[]);let u=i(f=>{let h=f.find(m=>m.type===Yn.DEFAULT);return!h||h.state===Cs.NOT_INSTALLED?!1:f.filter(m=>m.state!=Cs.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 WT}from"@rango-dev/ui";import LT from"react";import{create as BT}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 NT=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=NT;var oe=lo(BT()((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 LT.createElement(WT,{hasWatermark:e==="FULL",...t},t.children)}i(ne,"WatermarkedModal");import{i18n as fn}from"@lingui/core";import{Alert as VT,Button as KT,Divider as gn,Image as jT,MessageBox as XT,RadioRoot as YT,WalletImageContainer as ZT}from"@rango-dev/ui";import se,{useEffect as JT,useMemo as RT,useState as ek}from"react";import{i18n as DT}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 MT,Image as PT,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",[`.${MT} &`]:{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(PT,{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"},DT.t("(Currently not supported)")))))}i(gi,"NamespaceUnsupportedItem");import{Checkbox as QT,Radio as qT}from"@rango-dev/ui";import vs from"react";import{i18n as ws}from"@lingui/core";import{ChevronDownIcon as FT,ChevronUpIcon as OT,Divider as UT,Typography as Jn}from"@rango-dev/ui";import Ae,{useEffect as zT,useState as HT}from"react";import{Image as td,Tooltip as od,Typography as $T}from"@rango-dev/ui";import Mt from"react";import{styled as ed}from"@rango-dev/ui";var Ts=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 ks=3;function nd(t){let{chains:e}=t;return Mt.createElement(Ts,{id:"widget-supported-chains-container"},e.slice(0,ks).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>ks&&Mt.createElement(od,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Mt.createElement(Ts,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($T,{variant:"body",size:"xsmall"},"+",e.length-ks))))}i(nd,"SupportedChainsList");function Po(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=HT(!1),p=T().blockchains();zT(()=>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"},ws.t("Connected")),!!o&&Ae.createElement(Jn,{variant:"body",size:"small",color:"error500"},ws.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"}},ws.t("See why")),c?Ae.createElement(OT,{size:12,color:"gray"}):Ae.createElement(FT,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(UT,{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 vs.createElement(Po,{namespace:n,onClick:e,suffix:o==="radio"?vs.createElement(qT,{value:n.value}):vs.createElement(QT,{checked:t.value})})}i(rd,"NamespaceListItem");import{Button as GT,styled as id}from"@rango-dev/ui";var yi=id("ul",{padding:0,paddingBottom:"$20",margin:0}),mn=id(GT,{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]=ek([]),u=RT(()=>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(YT,{value:l?.[0]},m):se.createElement(se.Fragment,null,m),"wrapRadioRoot");return JT(()=>{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(XT,{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(ZT,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(VT,{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(KT,{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 lk,Button as ck,Divider as hn,Image as pk,MessageBox as uk,WalletImageContainer as dk}from"@rango-dev/ui";import{useWallets as mk}from"@rango-dev/wallets-react";import ue from"react";import{styled as tk}from"@rango-dev/ui";var ad=tk("div",{display:"flex",justifyContent:"end"});import{i18n as bs}from"@lingui/core";import{debug as ok}from"@rango-dev/logging-core";import{Button as nk,Spinner as rk}from"@rango-dev/ui";import xs,{useLayoutEffect as ik,useRef as ak,useState as sk}from"react";function sd(t){let{namespace:e,initialConnect:o,disabled:n,state:r,handleConnect:a,handleDisconnect:s}=t,[c,l]=sk(null),p=ak(!1);ik(()=>{o&&!p.current&&u()},[]);let u=i(async g=>{try{p.current=!0,await a(g)}catch(m){let y=m instanceof Error?m:new Error(String(m));ok(y,{context:{namespace:e,state:r,connectOptions:g},tags:{type:"wallet-error"}}),l(y)}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?bs.t("Disconnect"):c?bs.t("Try again"):bs.t("Connect"),"getButtonText");return xs.createElement(Po,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?xs.createElement(rk,{color:"info"}):xs.createElement(nk,{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}=mk(),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(lk,{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(ck,{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(uk,{type:"info",title:er.t("Connect {wallet}",{wallet:c.type}),description:er.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:ue.createElement(dk,null,ue.createElement(pk,{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 yk,Image as Sk,MessageBox as Ck,Select as Tk,TextField as kk}from"@rango-dev/ui";import bt,{useEffect as wk,useState as cd}from"react";import{namespaces as fk}from"@rango-dev/wallets-shared";var Si={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Es(t){let e=t?fk[t]?.derivationPaths:null;return e?[...e,Si]:[]}i(Es,"getDerivationPaths");import{Button as gk,styled as Is,Typography as hk}from"@rango-dev/ui";var ld=Is("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),As=Is(hk,{paddingLeft:"$10"}),Ns={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},zP=Is(gk,{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=Es(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 wk(()=>{s(Es(o)[0]?.id||null)},[o]),bt.createElement(bt.Fragment,null,bt.createElement(Ck,{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(Sk,{src:n,size:45})}),bt.createElement(ld,{className:"_derivation_path_inputs_container"},bt.createElement(As,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},yn.t("Choose Derivation Path Template")),bt.createElement(Tk,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ns}}),bt.createElement(yk,{size:20}),bt.createElement(As,{variant:"body",size:"xsmall",color:"$neutral600",className:"_derivation_path_input_label"},p?yn.t("Enter Path"):yn.t("Enter Index")),bt.createElement(kk,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Ns})),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 xk,MessageBox as Ws,WalletImageContainer as Ek,WalletState as Ik}from"@rango-dev/ui";import{useWallets as Ak}from"@rango-dev/wallets-react";import _o from"react";import{keyframes as vk,styled as Bs}from"@rango-dev/ui";var JP=Bs("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),ud=Bs("div",{position:"relative"}),bk=vk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),dd=Bs("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${bk} 1s linear infinite`,top:0,bottom:0,right:0,left:0});function Ls(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a,getWalletInfo:s}=Ak();return Gn(s(n),a(n))===Ik.CONNECTED?_o.createElement(Ws,{type:"success",title:Sn.t("Wallet Connected"),description:Sn.t("Your wallet is connected, you can use it to swap.")}):o?_o.createElement(Ws,{type:"error",title:Sn.t("Failed to Connect"),description:o||Sn.t("Your wallet is not connected. Please try again.")}):_o.createElement(Ws,{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(Ek,null,_o.createElement(xk,{src:r,size:45})),_o.createElement(dd,null))})}i(Ls,"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 Lk=3e3,Mk=300;function ir(t){let e=Wk(),[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,Lk))):b&&S()},"afterConnected"),v=i(w=>{t.wallet?.needsDerivationPath&&u(t.wallet,[w])},"handleNavigateToDerivationPath");return Bk(()=>{if(t.wallet){C();let w=!1,I=!0;i(()=>{setTimeout(()=>{I=!1,w||n(!0)},Mk)},"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(Ls,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),co.createElement(Nk,{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 Pk,{Fragment as _k}from"react";import{MemoryRouter as Dk,useInRouterContext as $k}from"react-router";function Ci({children:t}){let o=$k()?_k:Dk;return Pk.createElement(o,null,t)}i(Ci,"AppRouter");import{I18nManager as P0}from"@rango-dev/ui";import vp from"react";import Ue from"react";import{useRoutes as u0}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 Fk,useContext as Ok}from"react";var gd=Fk({swapMode:"swap",isMultiMode:!1});function et(){let{swapMode:t,isMultiMode:e}=Ok(gd);return{swapMode:t,isMultiMode:e}}i(et,"useSwapMode");import{i18n as St}from"@lingui/core";import{getRelatedWalletOrNull as Hk,RouteEventType as cD}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 Ms(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(Ms,"getFeeLabel");var Ps=["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 zk}from"@rango-dev/queue-manager-rango-preset";import X_ 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=zk(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:_s(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=Ps.indexOf(o.value),a=Ps.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 Ds(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}i(Ds,"canComputePriceImpact");function $s(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($s,"getUsdFeeOfStep");function vi(t,e){return t.reduce((o,n)=>o.plus($s(n,e)),pe)}i(vi,"getTotalFeeInUsd");function Fs(t){let e=pe,o=new He(t.price||0);return e=e.plus(new He(t.amount).multipliedBy(o)),e}i(Fs,"getUsdFee");function Dd(t){return t.reduce((e,o)=>e.plus(Fs(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 _s(t,e){return new He(e).div(new He(t)).minus(1).multipliedBy(yd).toNumber()}i(_s,"getPercentageChange");function Ld(t,e){let o=ar(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=_s(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?Hk(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=gu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=uu(e);ti(e)||(o=au(o),o=su(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),qk=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=qk.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(()=>{ls(s,S)&&a({token:null}),cs(l,C)&&n(null)},[S,C]),Tn(()=>{ls(c,k)&&a({token:null}),cs(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 zs,useRef as Gk}from"react";import{useInRouterContext as Vk,useLocation as Kk,useSearchParams as jk}from"react-router-dom";function Os(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Os,"convertTokenSearchParamToAsset");function Us(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Us,"tokenToSearchParam");function Qs(){let t=Kk(),[e,o]=jk(),{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=Vk(),{updateIframe:y,updateCampaignMode:S}=T(),C=T().isInCampaignMode(),k=Gk(),{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");zs(()=>{let{autoConnect:A,clientUrl:b,extraQueryParams:E,blockchain:x}=w();m&&h==="success"&&I({fromBlockchain:n?.name,fromToken:Us(a),toBlockchain:r?.name,toToken:Us(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]),zs(()=>{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&&Os(A.fromToken,b),x=E?v(E):void 0,W=g.find(G=>G.name===A.toBlockchain),P=A.toToken&&W&&Os(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]),zs(()=>{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 gv,Button as hv,darkTheme as yv,Divider as Cl,DoneIcon as Sv,styled as Cv,TextField as Tv,Typography as kv}from"@rango-dev/ui";import qe,{useState as wv}from"react";import{useNavigate as vv,useSearchParams as bv}from"react-router-dom";import{ChevronRightIcon as Xk,Divider as am,Image as Yk,Typography as sm}from"@rango-dev/ui";import xt from"react";import{darkTheme as om,styled as qs}from"@rango-dev/ui";var nm=qs("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=qs("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),im=qs("div",{display:"flex"});function Gs(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(Yk,{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(Xk,{size:12,color:"black"})))}i(Gs,"BlockchainSelectorButton");import{i18n as Xs}from"@lingui/core";import{Button as rw,Divider as dm,MessageBox as iw}from"@rango-dev/ui";import po,{useEffect as mm,useState as Ys}from"react";import{i18n as Ii}from"@lingui/core";import{Divider as $o,ExternalLinkIcon as Rk,Image as ew,InfoIcon as tw,Tooltip as ow,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 Zk,darkTheme as kn,styled as cr,Typography as Jk}from"@rango-dev/ui";var Vs=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"}}}),Ks=cr(Zk,{minHeight:"$40"}),pm=cr(Jk,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"96px"}),um=cr("div",{display:"flex",justifyContent:"center",alignItems:"center"});var nw=9;function js(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(ew,{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>nw&&de.createElement(ow,{content:n.symbol,container:N()},de.createElement(tw,{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(Vs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,de.createElement(Rk,{size:12,color:"gray"})):de.createElement(Vs,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(Ks,{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(Ks,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ii.t("Learn More")))}i(js,"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]=Ys(!1),[h,g]=Ys(!1),[m,y]=Ys(!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(iw,{title:n?.title??"",type:"error",description:n?.message||Xs.t("Failed Network, Please retry.")},po.createElement(dm,{size:40}),po.createElement(dm,{size:10}),po.createElement(rw,{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"?Xs.t("Retry"):Xs.t("Add another custom token")))),o&&e&&po.createElement(js,{blockchain:o,token:e,onSubmitClick:w,onClose:()=>g(!1),open:h,onExit:p}))}i(ur,"ImportCustomToken");import{useManager as cv}from"@rango-dev/queue-manager-react";import{BottomLogo as pv,Divider as Km,Header as uv}from"@rango-dev/ui";import Be,{useEffect as $i,useLayoutEffect as dv,useRef as jm,useState as Xm}from"react";import{useRef as aw}from"react";function Ai(){return window.self!==window.top}i(Ai,"isAppLoadedIntoIframe");function Zs(){let t=aw(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(Zs,"useIframe");import{useNavigate as sw}from"react-router-dom";function Qe(){let t=sw();return()=>t(-1)}i(Qe,"useNavigateBack");import{createTheme as rl,darkTheme as Tw,lightTheme as kw}from"@rango-dev/ui";import{useEffect as ww,useState as vw}from"react";import{theme as Sw,darkColors as Cw}from"@rango-dev/ui";import ol from"react";var Ni=16,Bi=255,fm=.11;function lw(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(lw,"expandShortHexColor");function cw(t,e){return t.padStart(e,"0")}i(cw,"pad");function Js(t){let e=Math.min(Math.max(Math.round(t),0),Bi);return cw(e.toString(Ni),2)}i(Js,"intToHex");function pw(t){return`#${Js(t.red)}${Js(t.green)}${Js(t.blue)}`}i(pw,"rgbToHex");function uw(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(uw,"hexToRGB");function dw(t,e){let o=1-fm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(dw,"generateShade");function mw(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(mw,"generateTint");function fw(t){return gm(t,dw)}i(fw,"calculateShades");function gw(t){return gm(t,mw)}i(gw,"calculateTints");function gm(t,e){let o=uw(t),n=[];for(let r=1;r<9;r++)n.push(pw(e(o,r)));return n}i(gm,"calculateColors");function Rs(t,e,o){let a=gw(t).reverse().concat(t),s=fw(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(Rs,"createTintsAndShades");function el(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)&&!mu(r)){let l=lw(a);Object.assign(n,Rs(l,r,s))}}return{...n,...e}}i(el,"expandToGenerateThemeColors");var hm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),hw=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"),yw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),tl=i(t=>hw(yw(5381,JSON.stringify(t))>>>0),"toHash");function nl(t){let e=Sw.colors,o={...e,...Cw},n,r;if(t?.light){let s={colors:el(e,t.light)};n={id:`${ss}-light-${tl(s)}`,tokens:s}}if(t?.dark){let s={colors:el(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ss}-dark-${tl(s)}`,tokens:s}}return{light:n,dark:r}}i(nl,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ol.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ol.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(ol.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=Xp,borderRadius:n=Iu,secondaryBorderRadius:r=Au}=t,[a,s]=vw(Sm()?"dark":"light"),{theme:c}=T(),{dark:l,light:p}=nl(e),u=rl({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[u.className,kw.className],f=[u.className,Tw.className];if(p){let g=rl(p.id,p.tokens);d.push(g.className)}if(l){let g=rl(l.id,l.tokens);f.push(g.className)}return ww(()=>{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 bw,Button as xw}from"@rango-dev/ui";import Tm from"react";function il(t){return Tm.createElement(bw,{action:Tm.createElement(xw,{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(il,"ActivateTabAlert");import{i18n as al}from"@lingui/core";import{Button as Ew,Divider as Iw,MessageBox as Aw}from"@rango-dev/ui";import Wi from"react";function sl(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(Aw,{title:al.t("Activate current tab"),type:"warning",description:al.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(Iw,{size:20}),Wi.createElement(Ew,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},al.t("Confirm"))))}i(sl,"ActivateTabModal");import{ChevronLeftIcon as Ww}from"@rango-dev/ui";import Am from"react";import{css as Nw,darkTheme as km,IconButton as Bw,styled as Fo}from"@rango-dev/ui";var Pt=Fo(Bw,{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=Nw({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 ll(t){return Am.createElement(Pt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(Ww,{color:"black",size:16}))}i(ll,"BackButton");import{i18n as Lw}from"@lingui/core";import{Button as Mw,Typography as Pw}from"@rango-dev/ui";import cl from"react";function pl(t){return cl.createElement(mo,null,cl.createElement(Mw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},cl.createElement(Pw,{variant:"label",size:"medium",color:"error500"},Lw.t("Cancel"))))}i(pl,"CancelButton");import{i18n as _w}from"@lingui/core";import{Image as Dw,Tooltip as $w,WalletIcon as Fw,WalletState as Nm}from"@rango-dev/ui";import Oo from"react";function ul(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(Dw,{src:r.image,size:14})))):_w.t("Connect Wallet");return Oo.createElement($w,{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(Fw,{size:18,color:"black"})))}i(ul,"WalletButton");import{i18n as Mi}from"@lingui/core";import{NotificationsIcon as ev,Popover as tv,SettingsIcon as ov,Tooltip as Pi,TransactionIcon as nv}from"@rango-dev/ui";import Me from"react";import{Notifications as Hw}from"@rango-dev/ui";import Qw from"react";import{useNavigate as qw}from"react-router-dom";import{create as Ow}from"zustand";import{persist as Uw,subscribeWithSelector as zw}from"zustand/middleware";var Ne=lo(Ow()(Uw(zw((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 dl(){let t=qw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=T().blockchains(),{findToken:a}=T();return Qw.createElement(Hw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>$p(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${D.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(dl,"NotificationContent");import{useManager as Gw}from"@rango-dev/queue-manager-react";import{InProgressIcon as Vw}from"@rango-dev/ui";import Bm from"react";var Kw=i(()=>{let{manager:t}=Gw();return Ct(t).map(({swap:o})=>o).find(o=>o.status==="running")?Bm.createElement(xm,{id:"widget-header-history-badge-container"},Bm.createElement(Vw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Wm=Kw;import{EventSeverity as jw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Xw}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===jw.WARNING);return o?Lm.createElement(vm,{isSever:n},Lm.createElement(Xw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Mm,"NotificationsBadge");import{RefreshProgressButton as Yw}from"@rango-dev/ui";import ml,{useEffect as Zw,useState as Pm}from"react";var Jw=1e3,_m=60,Rw=100;function Li({onClick:t}){let[e,o]=Pm(0),[n,r]=Pm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Zw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===_m&&c()},Jw):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 ml.createElement(Pt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},ml.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},ml.createElement(Yw,{size:22,color:t?"black":"gray",progress:e/_m*Rw})))}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(tv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Me.createElement(dl,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(ev,{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(ov,{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(nv,{size:18,color:"black"}),Me.createElement(Wm,null))))}i(Uo,"HeaderButtons");import{i18n as fl}from"@lingui/core";import{Divider as $m,MessageBox as av,RefreshIcon as sv}from"@rango-dev/ui";import wn from"react";import{Button as rv,styled as iv}from"@rango-dev/ui";var Dm=iv(rv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function gl(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(av,{title:fl.t("Something went wrong"),type:"error",description:fl.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(sv,{size:20,color:"primary"}),wn.createElement($m,{size:4,direction:"horizontal"}),fl.t("Refresh"))))}i(gl,"RefreshModal");var Fm="700px",Om="425px",Um="550px",zm="640px",Hm="800px";function hl(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(hl,"onScrollContentAttachStatusToContainer");import{css as lv,styled as _i}from"@rango-dev/ui";var Di=lv({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}=Zs(),{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}=cv(),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",hl),()=>{B.current?.removeEventListener("scroll",hl)}),[]),$i(()=>{d(c==="failed")},[c]),dv(()=>{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(uv,{prefix:R?Be.createElement(ll,{onClick:()=>{x(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!k&&Be.createElement(ul,{container:N(),onClick:K,isConnected:!!l?.length}),r.onCancel&&Be.createElement(pl,{onClick:r.onCancel}))}),Be.createElement(qm,{ref:B},n),Be.createElement(sl,{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(il,{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(pv,null))),S&&Be.createElement(Vm,null,p?.swapBoxBanner?.element),Be.createElement(gl,{open:u,onClose:()=>d(!1)}))}i(ae,"Layout");import{styled as mv}from"@rango-dev/ui";var Ym="$20 $20 $10 $20",yl=mv("div",{padding:Ym,overflowY:"auto",flexGrow:1});import{styled as fv}from"@rango-dev/ui";var ce=fv("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 Sl}from"react";function Zm(){let[t,e]=Sl(!1),[o,n]=Sl(null),[r,a]=Sl(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 xv=Cv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${yv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Jm(){let t=vv(),[e]=bv(),o=Qe(),n=T().blockchains(),r=e.get("blockchain")||"",a=Ao(r,n),[s,c]=wv(""),{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(xv,null,qe.createElement("div",null,qe.createElement(Gs,{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(Cl,{size:"24"}),qe.createElement(kv,{size:"large",variant:"label"},vn.t("Enter Address")),qe.createElement(Cl,{size:10}),qe.createElement(Tv,{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(Sv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!h&&!!s&&qe.createElement(qe.Fragment,null,qe.createElement(Cl,{size:4}),qe.createElement(gv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),qe.createElement(hv,{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 Jl}from"@lingui/core";import{useManager as px}from"@rango-dev/queue-manager-react";import{Alert as ux,Button as dx,css as ec,Divider as Rl,IconButton as zg,styled as mx,Typography as fx,WalletIcon as gx}from"@rango-dev/ui";import De,{useEffect as pa,useLayoutEffect as hx,useRef as yx,useState as wr}from"react";import{useNavigate as Sx}from"react-router-dom";import{i18n as Ho}from"@lingui/core";import{Alert as Vv,BalanceErrors as Kv,Button as kf,ChevronLeftIcon as jv,Divider as xl,MessageBox as Xv,Typography as El}from"@rango-dev/ui";import ie,{useCallback as Yv,useEffect as wf,useMemo as Zv,useState as xn}from"react";import{useNavigate as Jv}from"react-router-dom";import{i18n as vl}from"@lingui/core";import{Alert as Bv,ChevronDownIcon as Wv,CloseIcon as Lv,Divider as af,IconButton as sf,PasteIcon as Mv,Typography as Pv,WalletIcon as _v}from"@rango-dev/ui";import Pe,{useEffect as Dv,useRef as $v}from"react";import zi,{useRef as Av}from"react";import*as bn from"@radix-ui/react-collapsible";import{keyframes as Rm,styled as Fi}from"@rango-dev/ui";var Tl=300,Ev=Rm({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Iv=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"}}}}),kl=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:`${Ev} ${Tl}ms ease-out`},false:{animation:`${Iv} ${Tl}ms ease-out`}}}}),Ui=Fi("div",{transition:`all ${Tl}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=Av(null);return zi.createElement(ef,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&zi.createElement(kl,{className:"collapsible_trigger",onClick:a},s),zi.createElement(Oi,{className:"collapsible_content",open:e},r),c==="bottom"&&zi.createElement(kl,{className:"collapsible_trigger",onClick:a},s))}i(Hi,"CustomCollapsible");import{darkTheme as tf,styled as wl,TextField as Nv}from"@rango-dev/ui";var of=wl("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=wl(Nv,{backgroundColor:"$neutral100"}),rf=wl("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=Dp(e.name,c),p=$v(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(Lv,{size:12,color:"gray"})):d?null:Pe.createElement(sf,{id:"widget-custom-destination-paste-icon-btn",onClick:m,variant:"ghost"},Pe.createElement(Mv,{size:16})),"renderSuffix");return Dv(()=>{!!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(_v,{size:18,color:"info"}),Pe.createElement(af,{size:4,direction:"horizontal"}),Pe.createElement(Pv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},vl.t("Send to a different address"))),Pe.createElement(Ui,{orientation:n?"up":"down"},Pe.createElement(Wv,{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:vl.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(Bv,{variant:"alarm",type:"error",title:vl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(lf,"CustomDestination");import{css as Fv,IconButton as Ov,SelectableWalletButton as Uv,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(Uv,{justifyContent:"center"}),df=go("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),mf=go(Ov,{position:"absolute",left:"$20"}),ff=go("div",{paddingTop:"$20"}),gf=Fv({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 zv}from"@rango-dev/logging-core";import{makeInfo as Hv,SelectableWallet as Qv,Typography as Cf,WalletState as dr}from"@rango-dev/ui";import zo,{useEffect as qv,useState as Tf}from"react";var Gv=7;function bl(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 qv(()=>{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,Gv):"",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=Hv(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):zv(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(bl,"WalletList");var Rv=2;function vf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Jv(),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=Zv(()=>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=Yv(()=>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(jv,{size:16})),ie.createElement(El,{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(Xv,{title:Ho.t("Insufficient account balance"),type:"error",description:ie.createElement(Kv,{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(bl,{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(Vv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Ho.t(w)}),ie.createElement(xl,{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(El,{variant:"title",size:"xmedium"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),ie.createElement(El,{variant:"label",color:"$neutral700",size:"medium"},Ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),ie.createElement(xl,{size:24}),ie.createElement(pf,null,ie.createElement(bl,{chain:F,quoteChains:E,isSelected:le,selectWallet:be,limit:Rv,onShowMore:()=>C(X?.name??""),onConnect:Ve=>{Y(F,Ve)}})),!j&&ie.createElement(xl,{size:32}),Q&&ie.createElement(lf,{blockchain:W,open:A,handleOpenChange:Ht}))}))))}i(vf,"ConfirmWalletsModal");import{i18n as xb}from"@lingui/core";import{Alert as Eb,Button as Ib,Divider as Qf,InfoIcon as Ab}from"@rango-dev/ui";import Fe from"react";import{Alert as ob,Button as nb,Divider as Nl,NoRouteIcon as rb,RefreshIcon as ib,Typography as Bf}from"@rango-dev/ui";import st from"react";import{i18n as bf}from"@lingui/core";var eb=24,tb=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 Il=(o=>(o[o.small=eb]="small",o[o.large=tb]="large",o))(Il||{}),Al=(o=>(o.small="small",o.large="medium",o))(Al||{});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(rb,{size:Il[n],color:"gray"}),st.createElement(Nl,{size:4}),st.createElement(Bf,{variant:"title",size:Al[n]},re().noResultError.title),n==="large"&&st.createElement(Nl,{size:4}),!!l.description&&st.createElement(If,{size:n},st.createElement(Bf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),st.createElement(Nl,{size:n==="large"?"24":"4"}),!!l.alert&&st.createElement(Af,{size:n},st.createElement(ob,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&st.createElement(nb,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:st.createElement(Nf,null,st.createElement(ib,{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 mb,Divider as fb,MessageBox as gb,Typography as hb,WarningIcon as yb}from"@rango-dev/ui";import Xt from"react";import{InfoIcon as cb,Tooltip as pb,Typography as ub}from"@rango-dev/ui";import En from"react";import{Button as ab,darkTheme as sb,styled as Qo,Typography as lb}from"@rango-dev/ui";var Wf=Qo("div",{width:"100%"}),Bl=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",[`.${sb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Mf=Qo("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$2"}),Pf=Qo(lb,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"250px"}),_f=Qo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Df=Qo(ab,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});var db=35;function $f(t){let{title:e,value:o,valueColor:n}=t,r=N();return En.createElement(Lf,null,En.createElement(ub,{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>db&&En.createElement(pb,{content:o,container:r},En.createElement(cb,{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(mb,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Xt.createElement(yb,null),fullWidth:!0,disabled:a,onClick:n},re().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},Xt.createElement(gb,{type:s,title:re().highValueLossError.impactTitle,description:re().highValueLossError.description}),Xt.createElement(Bl,null,Xt.createElement(fb,{size:"4"}),Xt.createElement(hb,{size:"small",variant:"title"},fr.t("Details")),Xt.createElement(Bl,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 Sb,Divider as Wl,MessageBox as Cb,WarningIcon as Tb}from"@rango-dev/ui";import So from"react";import{useNavigate as kb}from"react-router-dom";function zf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=kb();return So.createElement(ne,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},So.createElement(Cb,{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(Wl,{size:18}),So.createElement(Wl,{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(Tb,{color:"white",size:16}),An.t("Swap anyway")),So.createElement(Wl,{size:10}),So.createElement(Sb,{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 wb,MessageBox as vb,WarningIcon as bb}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(wb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:qi.createElement(bb,null),fullWidth:!0,disabled:r,onClick:n},re().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},qi.createElement(vb,{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(Eb,{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(Ab,{size:12,color:"gray"}))},...(m.action==="change-settings"||m.action==="change-slippage")&&{action:Fe.createElement(Ib,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:m.alertType,onClick:()=>S(m.action)},m.actionButtonTitle||xb.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 nx from"bignumber.js";import aa from"react";import{i18n as qo}from"@lingui/core";import{Alert as Gb,CampaignQuoteTag as Vb,Divider as Bn,FullExpandedQuote as Kb,InfoIcon as Hl,NumericTooltip as Ql,QuoteTag as jb,StepDetails as Xb,TokenAmount as Yb,Typography as Wn,useIsTruncated as ql}from"@rango-dev/ui";import Gl from"bignumber.js";import $,{useRef as na,useState as Zb}from"react";import{styled as Ll}from"@rango-dev/ui";var Ml=Ll("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),qf=Ll("div",{paddingBottom:"$15","& .from-amount-text":{wordBreak:"break-word"},variants:{dense:{true:{paddingBottom:0}}}}),Gf=Ll("div",{width:"100%",display:"flex"});import*as Gi from"@radix-ui/react-collapsible";import{Button as Nb,css as Vi,darkTheme as _e,Image as Vf,styled as Ge,Typography as Pl}from"@rango-dev/ui";var Bb=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(Nb,{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"}),_l=Ge("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Bb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),_H=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}),Dl=Ge(Pl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),$l=Ge(Pl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),Fl=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(Pl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as _t}from"@lingui/core";import{ChevronDownIcon as Lb,CloseIcon as Mb,Divider as Yi,IconButton as Pb,NumericTooltip as _b,QuoteCost as Db,Typography as Et}from"@rango-dev/ui";import J,{useState as cg}from"react";import{css as Wb,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"}}),Ol=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=Wb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var $b=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 Ul(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(Db,{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(Pb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},J.createElement(Mb,{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=Fs(k);return J.createElement(Xi,{key:w},J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Ms(S,_t.t)),J.createElement(_b,{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(Ol,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(Lb,{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=Ms(S,_t.t),I=`non-payable-fee-${k}`;return J.createElement($b,{key:I,fee:v,label:w})}),J.createElement(Ol,null)))))}i(Ul,"QuoteCostDetails");import{i18n as dg}from"@lingui/core";import{TokenAmount as mg}from"@rango-dev/ui";import Zi from"react";import{css as Fb,styled as Ob}from"@rango-dev/ui";var pg=Ob("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),ug=Fb({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 Hb,ChevronRightIcon as Qb,Divider as zl,Image as qb,Tooltip as oa,Typography as Ri}from"@rango-dev/ui";import H from"react";import{useLayoutEffect as Ub,useState as yr}from"react";var fg=480,gg=768,hg=1024,yg=1200,zb=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 Ub(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),Ji=zb;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(qb,{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(zl,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,y=H.createElement(_l,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(Fl,{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(zl,{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(Fl,{className:"blockchainImage"},H.createElement(Ri,{size:"xsmall",variant:"body"},"+",u.length-g))))),H.createElement(zl,{direction:"horizontal",size:32}))),H.createElement(_l,{orientation:a?"up":"down"},H.createElement(Hb,{size:12,color:"black"}))))}i(Cg,"QuoteTrigger");function Vl(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]=Zb(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 Gl(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 Gl(q.to.usdPrice??0).multipliedBy(q.toAmount).toString()}},state:Je,alerts:Eo||jr?$.createElement(qf,{dense:d},$.createElement(Gb,{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($s(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 Gl(Sd)),be=Y/Td>=Cd,dt=na(null),kt=ql(o.value,dt),wt=na(null),F=ql(n.value,wt),O=na(null),X=ql(A,O),ee=U[G-1],j=U[0];return!j||!ee?null:d?$.createElement(Kb,{selected:c,fee:ve,time:Z,tooltipContainer:Bo(),steps:U,tags:R,campaignTag:b?.campaignTag,id:"widget-quote-full-expanded-quote-container",quoteCost:$.createElement(Ul,{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(Vb,{routeTag:Q,...b.campaignTag}):$.createElement(jb,{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(Ul,{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($l,{ref:dt,size:"small",variant:"body"},o.value),kt&&$.createElement(Ql,{content:o.value,container:K,open:o.value?void 0:!1},$.createElement(Hl,{size:12,color:"gray"})),$.createElement(Dl,{size:"small",variant:"body"},U[0]?.from.token.displayName),$.createElement(Wn,{size:"small",variant:"body"},"="),$.createElement($l,{ref:wt,size:"small",variant:"body"},n.value),F&&$.createElement(Ql,{content:n.value,container:K,open:n.value?void 0:!1},$.createElement(Hl,{size:12,color:"gray"})),$.createElement(Dl,{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(Hl,{size:12,color:"gray"}))),s==="list-item"&&$.createElement(Yb,{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(Xb,{type:"quote-details",className:"widget-quote-step-details-container",key:q,tooltipContainer:K,step:Q,hasSeparator:Ve!==U.length-1,state:Q.state})})))))}i(Vl,"Quote");import{Divider as tx,Skeleton as ox}from"@rango-dev/ui";import Rt from"react";import{darkTheme as Jb,styled as ra}from"@rango-dev/ui";var Tg=ra("div",{$$color:"$colors$neutral100",[`.${Jb} &`]:{$$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 Rb,styled as Jt}from"@rango-dev/ui";var Kl=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=Rb({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(Kl,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(Kl,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 Xl,NextIcon as ex,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"}}}}),jl=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(Xl,{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(jl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(Xl,{direction:"horizontal",size:8}),We.createElement(ia,{height:12,variant:"rounded"})),We.createElement(Dg,null,We.createElement(ex,{color:"gray",size:16})),We.createElement(jl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(Xl,{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(ox,{height:15,variant:"rounded"})),o&&Rt.createElement(wg,null,Rt.createElement(tx,{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 nx(e?.outputAmount):null,C=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?aa.createElement(Ml,null,aa.createElement(kr,{tagHidden:c,type:o,expanded:s})):v?aa.createElement(Ml,{onClick:()=>l?.(e),id:d},aa.createElement(Vl,{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 sx}from"@rango-dev/logging-core";import{calculatePendingSwap as lx}from"@rango-dev/queue-manager-rango-preset";import{useEffect as cx}from"react";import{useRef as rx,useState as ix}from"react";var ax=2e3;function sa({request:t}){let[e,o]=ix(!1),n=rx(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,ax)),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=Yl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(la,"throwErrorIfResponseIsNotValid");function Yl(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(Yl,"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 Zl(){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 cx(()=>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=lx({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&&sx(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(Zl,"useConfirmSwap");var Cx=mx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${zg}`]:{width:"$48",height:"$48"}}),Tx=ec({flexGrow:1,paddingRight:"$10"}),kx=ec({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),wx=ec({display:"flex",justifyContent:"space-between",alignItems:"center"});function Hg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=z()(),s=Sx(),[c,l]=wr(""),p=!n,[u,d]=wr(!1),[f,h]=wr(!1),{isActiveTab:g}=oe(),m=T().getDisabledLiquiditySources(),y=yx(m),{manager:S}=px(),{fetch:C,loading:k,cancelFetch:v}=Zl(),[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))},[]),hx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let G=w.warnings?.quote??null,K=w.error,R=[];if(c&&R.push(De.createElement(ux,{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:Jl.t("Confirm Swap"),onWallet:()=>{let B=`../${D.wallets}`;s(B)}},footer:De.createElement(Cx,null,De.createElement("div",{className:Tx()},De.createElement(dx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||f,disabled:!!w.error||!g,onClick:P},Jl.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(gx,{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:wx()},De.createElement(fx,{variant:"title",size:"small"},Jl.t("You get")),De.createElement("div",{className:kx()},De.createElement(Li,{onClick:!k&&!u&&!A?U:void 0}))),De.createElement(Rl,{size:"12"}),ym(R.map((B,Y)=>({element:B,key:`alert-${Y}`})),De.createElement(Rl,{size:10})),R.length>0?De.createElement(Rl,{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 dc,CustomTokensZeroStateDarkIcon as Hx,CustomTokensZeroStateIcon as Qx,DeleteIcon as qx,Divider as Ir,IconButton as Gx,MessageBox as Vx,NotFound as Kx,styled as fc}from"@rango-dev/ui";import ge,{useState as mc}from"react";import{useNavigate as jx}from"react-router-dom";import{CloseIcon as vx,IconButton as bx,SearchIcon as xx,TextField as Ex}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(bx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Ln.createElement(vx,{color:"gray",size:10})):null;return p&&(f=p),Ln.createElement(Gg,null,Ln.createElement(Ex,{prefix:Ln.createElement(qg,null,Ln.createElement(xx,{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 uc}from"@lingui/core";import{Button as Bx,CustomTokenWarning as Wx,darkTheme as nh,Divider as eo,ExternalLinkIcon as Lx,Image as Mx,ListItem as Px,NotFound as _x,PinIcon as Dx,Skeleton as Vo,Typography as xr,VirtualizedList as $x}from"@rango-dev/ui";import L,{useState as Fx}from"react";import{useTranslation as Ox}from"react-i18next";import{Divider as th,ListItem as Nx,Skeleton as br}from"@rango-dev/ui";import Nt from"react";import{css as Mn,darkTheme as tc,ImageContainer as Ix,ListItemButton as Ax,styled as ot,Typography as Vg}from"@rango-dev/ui";var oc=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),nc=Mn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),rc=Mn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ic=Mn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${tc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),ac=Mn({}),sc=Mn(),Kg=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),lc=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":{[`& .${nc}`]:{[`& .${ic}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${ac}`]:{bottom:"-15px"},[`& .${oc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${rc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),jg=ot(Ax,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),cc=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),pc=ot(Vg,{}),Xg=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${sc}`]:{$$color:"$colors$neutral600",[`.${tc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),vr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),MG=ot("div",{display:"flex",alignItems:"center"}),Yg=ot("div",{position:"relative",[`& ${Ix}`]:{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":{[`.${tc} &`]:{color:"$foreground"}}}});function oh(t){return Nt.createElement(ua,null,Array.from(Array(t.size),e=>Nt.createElement(Nx,{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 Ux=20,zx=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return L.createElement("div",{className:nc()},o?L.createElement("div",{className:oc()},o):L.createElement(lc,{className:rc()},L.createElement(xr,{variant:"title",size:"xmedium"},r.symbol),L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(cc,{css:a},L.createElement(pc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&L.createElement("div",{className:`${ic()} ${!o&&ac()}`},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(Lx,{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}=Ox(),S=Qe(),[C,k]=Fx(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(Bx,{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:sc(),size:"xsmall"},`$${x.usdValue}`))},"endRenderer"),A=i(()=>L.createElement($x,{style:{flexGrow:1,minHeight:0},itemContent:E=>{let x=e[E];if(x==="skeleton")return L.createElement(Px,{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=Rs(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(Mx,{src:x.image===""?Jr:x.image,size:30}),t.type!=="custom-token"&&x&&h(x,t.type)&&L.createElement(Zg,null,L.createElement(Dx,{size:12,color:"gray"}))),title:x.name||!x.name&&!P?L.createElement(lc,null,L.createElement(xr,{variant:"title",size:"xmedium"},x.symbol),L.createElement(eo,{direction:"horizontal",size:4}),L.createElement(cc,{css:G},L.createElement(pc,{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(Wx,{container:N()}))):void 0,description:typeof x!="string"&&W.info&&P&&B?zx({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"},uc.t("Select Token")),L.createElement(eo,{size:4})),L.createElement(Kg,null,L.createElement(eo,{size:4}),p==="loading"&&L.createElement(oh,{size:Ux}),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(_x,{title:uc.t("No results found"),description:uc.t("Try using different keywords")}))))}i(Er,"TokenList");var Xx=fc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Yx=fc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Zx=fc(Gx,{"&:hover":{"& svg":{color:"$secondary550"}}});function rh(){let[t,e]=mc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=uo({}),p=jx(),[u,d]=mc(!1),[f,h]=mc(),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(Xx,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(Zx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),h(C)}},ge.createElement(qx,{size:12,color:"gray"}))})):ge.createElement(Yx,null,ge.createElement(Kx,{icon:m?ge.createElement(Hx,{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(dc,{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(Vx,{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(dc,{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(dc,{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 yE}from"@rango-dev/queue-manager-react";import{Button as kc,darkTheme as SE,Divider as Co,MessageBox as CE,NotFound as TE,styled as wc,Tabs as kE,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 wE}from"react-router-dom";import{FilterIcon as rE,Popover as iE}from"@rango-dev/ui";import Ko from"react";import{css as Jx,darkTheme as da,IconButton as Rx,styled as Ar}from"@rango-dev/ui";var gc=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(Rx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${da} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${da} &`]:{backgroundColor:"$neutral"},[`& ${gc}::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=Jx({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 eE,Divider as uh,ListItemButton as tE,Radio as oE,RadioRoot as nE,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(eE,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},ph.t("Reset"))),ct.createElement(uh,{size:10}),ct.createElement(nE,{value:e},ct.createElement(ch,null,t.list.map((n,r)=>ct.createElement(tE,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ct.createElement(ct.Fragment,null,ct.createElement(uh,{direction:"horizontal",size:4}),ct.createElement(dh,{size:"medium",variant:"body"},n.title)),start:ct.createElement(oE,{value:n.id}),onClick:o})))))}i(mh,"FilterSelectorContent");function hc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Ko.createElement("div",null,Ko.createElement(iE,{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(gc,{isSelect:!!n},Ko.createElement(rE,{size:16,color:"black"}),!!n&&Ko.createElement(ah,null)))))}i(hc,"FilterSelector");import{i18n as lE}from"@lingui/core";import{getCurrentStep as cE}from"@rango-dev/queue-manager-rango-preset";import{Divider as Sh,GroupedVirtualizedList as pE,Skeleton as uE,SwapListItem as Ch,Typography as dE}from"@rango-dev/ui";import Ye,{useCallback as Th,useEffect as mE,useRef as fE,useState as gE}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 aE,darkTheme as sE,styled as Nr}from"@rango-dev/ui";var yc=aE(),gh=Nr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Sc=Nr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${yc}`]:{$$color:"$colors$neutral600",[`.${sE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Cc=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 hE=10;function Tc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=gE([]),c=fE(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,hE),s(d(p,c.current)))},[e.length]);if(mE(()=>{r||f()},[r,f]),r){let h=[1,2];return Ye.createElement(Ye.Fragment,null,[h,h].map((m,y)=>Ye.createElement(Sc,{key:y},Ye.createElement(Cc,null,Ye.createElement(uE,{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(pE,{style:{flexGrow:1,minHeight:0},endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Ye.createElement(Sc,null,Ye.createElement(Cc,null,Ye.createElement(dE,{variant:"label",size:"medium",className:yc()},u[h]))),itemContent:(h,g)=>{let m=l[h];if(!m)return null;let y=cE(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]===lE.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(Tc,"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 vE=wc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%",minHeight:0,flexGrow:1}),bE=wc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),xE=wc("div",{"._typography":{color:"$neutral700",[`.${SE}&`]:{color:"$neutral900"}}}),EE=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=wE(),{manager:e,state:o}=yE(),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)||EE(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(kc,{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(bE,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(hc,{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(kE,{items:C,onChange:b=>g(b.id),value:h,type:"secondary"}),te.createElement(Co,{size:"12"})),te.createElement(vE,null,v&&te.createElement(yh,null,te.createElement(Co,{size:32}),te.createElement(TE,{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(Tc,{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(CE,{type:"warning",title:$e.t("Clear Transaction History"),description:te.createElement(xE,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(kc,{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(kc,{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 lI,Divider as Dc,styled as cI,WarningIcon as pI}from"@rango-dev/ui";import uI from"bignumber.js";import Se,{useEffect as ty,useState as oy}from"react";import{useNavigate as dI}from"react-router-dom";import{i18n as Eh}from"@lingui/core";import{Alert as AE,Divider as vc,NoRouteIcon as NE,Typography as BE}from"@rango-dev/ui";import jo from"react";import{styled as IE}from"@rango-dev/ui";var xh=IE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function bc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&Qt(t,e)?jo.createElement(xh,null,jo.createElement(vc,{size:10}),jo.createElement(NE,{size:24,color:"gray"}),jo.createElement(vc,{size:4}),jo.createElement(BE,{variant:"title",size:"small"},Eh.t("No Routes Found")),jo.createElement(vc,{size:4}),jo.createElement(AE,{title:Eh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(bc,"SameTokensWarning");import{Alert as WE,Button as LE}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(WE,{title:c.title,type:c.alertType,variant:"alarm",action:Ah.createElement(LE,{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 $E}from"@lingui/core";import{IconButton as FE,ReverseIcon as OE,Skeleton as UE,Tooltip as zE,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 _E,styled as Ec,Typography as DE}from"@rango-dev/ui";var Ph=Ec("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),_h=Ec("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${_E} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Ic=Ec(DE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Ac(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})},$E.t("Slippage:")," ",d,"%"),u?pt.createElement(UE,{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(Ic,{className:"rate-text",variant:"body",size:"small"},w.symbol),pt.createElement(FE,{id:"widget-home-page-change-rate-button",onClick:r},pt.createElement(OE,{size:14,color:"secondary"})),pt.createElement(zE,{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(Ic,{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(Ac,"SwapMetrics");import{i18n as KE}from"@lingui/core";import{Header as jE}from"@rango-dev/ui";import To,{useEffect as XE,useState as YE}from"react";import{i18n as QE}from"@lingui/core";import{Divider as Bc,FullExpandedQuote as qE,Typography as GE}from"@rango-dev/ui";import we from"react";import{styled as Nc}from"@rango-dev/ui";var Dh=Nc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),$h=Nc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Fh=Nc("div",{width:"146px"});import{i18n as Mr}from"@lingui/core";import{Select as HE}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(HE,{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(GE,{size:"xmedium",variant:"title"},QE.t("Sort by")),we.createElement(ya,{container:C})),we.createElement(Bc,{size:"10"})),e&&Array.from({length:Uh},(E,x)=>we.createElement(we.Fragment,{key:x},s?we.createElement(qE,{campaignTag:w?.campaignTag,loading:!0}):we.createElement(kr,{tagHidden:!1,type:"list-item",expanded:!1}),x!==Uh-1&&we.createElement(Bc,{size:16}))),!e&&we.createElement(we.Fragment,null,k?b.map((E,x)=>{let W=I(E),P=Yl(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(Bc,{size:16}))}):A&&we.createElement(Dh,null,we.createElement(mr,{size:s?"large":"small",error:g,fetch:n}))))}i(Pr,"Quotes");import{darkTheme as VE,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",[`.${VE} &`]:{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 ZE=100;function Wc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=YE(!1),l=s?"":"is-hidden",{config:p}=T(),u=p?.variant==="full-expanded",d=Bo();return XE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},ZE):(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(jE,{title:KE.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(Wc,"ExpandedQuotes");import{i18n as Yh}from"@lingui/core";import{SwapInput as Zh}from"@rango-dev/ui";import tI from"bignumber.js";import _r from"react";import{ReverseIcon as eI}from"@rango-dev/ui";import Mc from"react";import{keyframes as JE,styled as qh}from"@rango-dev/ui";var Lc=450,RE=JE({"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:`${RE} ${Lc}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 Pc(){let t=z().use.switchFromAndTo();return Mc.createElement(Gh,null,Mc.createElement(Vh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Lc),t()}},Mc.createElement(eI,{size:12})))}i(Pc,"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 _c(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 tI(k.amount).shiftedBy(-k.decimals):pe,I=!!s&&wu(S,s.name),A=!Ds(m,d,f),b=!Ds(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(Pc,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(_c,"Inputs");import{warn as oI}from"@rango-dev/logging-core";import{useCallback as nI,useEffect as rI,useRef as iI,useState as aI}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 sI=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]=aI(!0),R=iI(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),oI(new Error("quote error"),{tags:{...Je,type:Xe[Je.type],requestBody:q}}))})}},"fetch"),Ht=nI(Rr(be=>{ve(be)},sI),[Z]);return rI(()=>{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 mI=cI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),fI=300;function ny(){let t=dI(),{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 uI(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)},fI)):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(mI,null,Se.createElement(ae,{height:"auto",footer:Se.createElement(lI,{id:`widget-swap-${B.action}-btn`,type:"primary",size:"large",disabled:B.disabled||!x,prefix:B.action==="confirm-warning"&&Se.createElement(pI,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(_c,{fetchingQuote:le,fetchMetaStatus:v,isExpandable:Y,onClickToken:j}),Se.createElement(Dc,{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(Dc,{size:8}),Se.createElement(Ac,{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(Dc,{size:"10"}),Se.createElement(Nh,{onChangeSettings:()=>O(D.settings)})),Se.createElement(bc,null))),Y?Se.createElement(Wc,{loading:le,onClickOnQuote:X,fetch:S,onClickRefresh:F,isVisible:h}):null)}i(ny,"Home");import{i18n as ry}from"@lingui/core";import{Alert as gI,Divider as hI,List as yI,ListItemButton as SI,Radio as CI,RadioRoot as TI,Typography as kI}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(kI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:$t.createElement(CI,{value:s}),start:$t.createElement(l,null)}});return $t.createElement(ae,{header:{title:ry.t("Language")}},$t.createElement(ce,null,$t.createElement(gI,{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(hI,{size:"8"}),$t.createElement(TI,{value:t},$t.createElement(yI,{type:$t.createElement(SI,{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 EI,Checkbox as II,Image as AI,ListItemButton as NI,NotFound as BI,Typography as WI}from"@rango-dev/ui";import Ze,{useState as LI}from"react";import{Checkbox as bI,Skeleton as sy}from"@rango-dev/ui";import $r from"react";import{styled as $c}from"@rango-dev/ui";var Dr=$c("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Fc=$c("div",{width:80,display:"flex",justifyContent:"flex-end"}),Oc=$c("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as wI,styled as vI}from"@rango-dev/ui";var ay=vI(wI,{height:61});var xI=30;function Uc(){return $r.createElement(Dr,null,Array.from(Array(xI),(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(bI,{checked:!1})})))}i(Uc,"LoadingLiquiditySourceList");function zc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=LI(""),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-${cu(w.toLowerCase())}-item-btn`,start:Ze.createElement(AI,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Ze.createElement(II,{checked:C,disabled:c}),title:Ze.createElement(WI,{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(Fc,null,Ze.createElement(EI,{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(Uc,null),!y.length&&r?Ze.createElement(Oc,null,Ze.createElement(BI,{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(NI,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(zc,"LiquiditySourcePage");import{i18n as MI}from"@lingui/core";import Ca from"react";import{useNavigate as PI}from"react-router-dom";function ly(){let t=PI(),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:MI.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 qI,SelectableCategoryList as GI}from"@rango-dev/ui";import no,{useMemo as VI,useState as yy}from"react";import{useNavigate as KI}from"react-router-dom";import{i18n as Hc}from"@lingui/core";import{Divider as FI,Image as OI,ListItemButton as UI,NotFound as zI,Typography as fy}from"@rango-dev/ui";import ut,{useEffect as HI,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 _I,styled as py}from"@rango-dev/ui";var uy=py("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ta=py(yl,{padding:0,margin:0,listStyle:"none",[`& ${_I}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as DI,Skeleton as dy}from"@rango-dev/ui";import ka from"react";var $I=20;function my(){return ka.createElement(Ta,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array($I),t=>ka.createElement(DI,{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();HI(()=>{c([...cy(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ut.createElement(zI,{title:Hc.t("No results found"),description:Hc.t("Try using different keywords")}):ut.createElement(Ta,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ut.createElement(UI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ut.createElement(OI,{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"},Hc.t("Select Chain")),ut.createElement(FI,{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=KI(),{swapMode:h}=et(),g=T().blockchains({type:e}),m=T().tokens(),y=VI(()=>iu(g,m),[g.length,m.length]),S=qI(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(GI,{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 lA}from"@rango-dev/ui";import wo,{useEffect as cA,useState as pA}from"react";import{useNavigate as uA}from"react-router-dom";import{i18n as Vc}from"@lingui/core";import{BlockchainsChip as va,Divider as ky,Image as wy,Skeleton as RI,Tooltip as eA,Typography as Kc}from"@rango-dev/ui";import xe from"react";import{useEffect as YI}from"react";var Sy=["ETH"];function qc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(jI),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(XI(s)),r=n.splice(a)}return{list:n,more:r}}i(qc,"prepare");function jI(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(jI,"sortByMostUsedBlockchains");function XI(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(XI,"generateSortByPreferredBlockchainsFor");function Cy(t,e){return!!e.list.find(o=>o.name===t)}i(Cy,"isInVisibleList");function Gc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();YI(()=>{if(e?.selected){let a=qc(t,o,e);Cy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=qc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Gc,"usePrepareBlockchainList");import{styled as ZI}from"@rango-dev/ui";var Ty=ZI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var tA=6,oA=12;function jc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Gc(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(Kc,{variant:"label",size:"large"},Vc.t("Select Chain"))),xe.createElement(ky,{size:12}),xe.createElement(Ty,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?tA:oA),(m,y)=>xe.createElement(RI,{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(Kc,{variant:"body",size:"xsmall",color:"secondary500"},Vc.t("All"))),c.list.map(m=>xe.createElement(eA,{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(Kc,{variant:"body",size:"xsmall",color:"secondary500"},Vc._("More +{count}",{count:c.more.length}))):null)))}i(jc,"BlockchainsSection");import{useCallback as rA,useRef as iA,useState as Xc}from"react";function Yc(){let t=T().blockchains(),e=iA(null),{customTokens:o}=T(),[n,r]=Xc(!1),[a,s]=Xc([]),[c,l]=Xc(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=rA(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(Yc,"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=uA(),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}=Yc(),[m,y]=pA(""),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 cA(()=>(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(jc,{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(lA,{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 ep}from"@lingui/core";import{Alert as FA,Button as OA,styled as UA}from"@rango-dev/ui";import Xo from"react";import{useInRouterContext as zA,useSearchParams as HA}from"react-router-dom";import{i18n as By}from"@lingui/core";import{Alert as gA,Divider as Jc,InfoIcon as hA,SlippageIcon as yA,TextField as SA,Tooltip as CA,Typography as Wy}from"@rango-dev/ui";import Oe from"react";import{Chip as dA,styled as Fr,TextField as mA}from"@rango-dev/ui";var xy=Fr("div",{paddingTop:"$5",padding:"$10 $5"}),Ey=Fr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${mA}`]:{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(dA,{width:"61px",flexShrink:0});import{i18n as Zc}from"@lingui/core";import{Typography as fA}from"@rango-dev/ui";import Or from"react";function Ny(){return Or.createElement(Ia,null,Or.createElement(fA,{variant:"label",size:"medium",color:"neutral700"},Zc.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,Zc.t("Warning")),":\xA0",Zc.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 Rc(){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;du(u)||(p.value=u.slice(0,-1))},"onInput");return Oe.createElement(xy,null,Oe.createElement(Iy,null,Oe.createElement(yA,{size:16,color:"gray"}),Oe.createElement(Jc,{direction:"horizontal",size:4}),Oe.createElement(Wy,{variant:"title",size:"xmedium"},By.t("Slippage tolerance per swap")),Oe.createElement(Jc,{direction:"horizontal",size:4}),Oe.createElement(CA,{container:N(),side:"top",sideOffset:4,content:Oe.createElement(Ny,null)},Oe.createElement(hA,{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(SA,{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(Jc,{size:10}),Oe.createElement(gA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(Rc,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as Ly,BridgesIcon as TA,ChevronRightIcon as Aa,DarkModeIcon as My,Divider as Ur,ExchangeIcon as kA,InfinityIcon as wA,InfoIcon as vA,LanguageIcon as bA,LightModeIcon as Py,List as xA,ListItem as EA,ListItemButton as IA,Skeleton as AA,styled as NA,Switch as BA,Tabs as WA,TargetIcon as LA,Tooltip as MA,Typography as nt}from"@rango-dev/ui";import _ from"react";import{useNavigate as PA}from"react-router-dom";var _A=NA("div",{width:"202px",height:"$40"}),DA=[{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"))}],$A=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=PA(),{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(AA,{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(TA,{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(kA,{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(LA,{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(bA,{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(MA,{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(vA,{color:"gray"}))),start:_.createElement(wA,{color:"gray",size:16}),end:_.createElement(BA,{checked:y}),onClick:S},K={id:"widget-setting-theme-item-btn",type:_.createElement(EA,null),title:_.createElement(nt,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:_.createElement(_A,null,_.createElement(WA,{container:N(),items:DA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:B=>o(B.id),type:"primary",borderRadius:"small"})),start:$A(n)},R=h?[]:[x,W];return m||R.push(P),g||R.push(U),R.push(G),!e?.singleTheme&&!f&&R.push(K),_.createElement(xA,{type:_.createElement(IA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:R})}i(_y,"SettingsLists");var QA=UA("div",{paddingLeft:"$8"});function Dy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=HA(),r=zA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Xo.createElement(ae,{header:{title:ep.t("Settings")}},Xo.createElement(ce,null,o&&Xo.createElement(FA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:ep.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(OA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},ep.t("Reset")))}),Xo.createElement(Rc,null),Xo.createElement(_y,null)))}i(Dy,"SettingsPage");import{i18n as RN}from"@lingui/core";import{cancelSwap as e0}from"@rango-dev/queue-manager-rango-preset";import{useManager as t0}from"@rango-dev/queue-manager-react";import{Alert as o0}from"@rango-dev/ui";import yp from"react";import{useParams as n0}from"react-router-dom";import{i18n as Ot}from"@lingui/core";import{getCurrentNamespaceOfOrNull as ON,getCurrentStep as UN,getRelatedWalletOrNull as zN}from"@rango-dev/queue-manager-rango-preset";import{Button as BS,Divider as HN,QuoteCost as QN,StepDetails as qN,Typography as up}from"@rango-dev/ui";import{useWallets as GN}from"@rango-dev/wallets-react";import WS from"bignumber.js";import{PendingSwapNetworkStatus as Dn}from"rango-types";import Te,{useEffect as dp,useRef as mp,useState as $a}from"react";import{useNavigate as VN}from"react-router-dom";import{i18n as vo}from"@lingui/core";var qA=[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"):`${qA[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 tp,MessageBox as GA}from"@rango-dev/ui";import bo from"react";var Uy=i(({onCancel:t,onClose:e})=>bo.createElement(bo.Fragment,null,bo.createElement(tp,{size:20}),bo.createElement(GA,{type:"error",title:Na.t("Cancel Swap"),description:Na.t("Are you sure you want to cancel this swap?")}),bo.createElement(tp,{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(tp,{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 op,MessageBox as VA,Typography as KA}from"@rango-dev/ui";import ro from"react";var Hy=i(({onDelete:t,onClose:e})=>ro.createElement(ro.Fragment,null,ro.createElement(op,{size:20}),ro.createElement(VA,{type:"error",title:Ba.t("Delete Transaction"),description:Ba.t("Are you sure you want to delete this swap?")}),ro.createElement(op,{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(op,{size:12}),ro.createElement(zy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},ro.createElement(KA,{variant:"title",size:"medium",color:"primary"},Ba.t("No, Cancel")))),"DeleteContent");import{i18n as jA}from"@lingui/core";import{Button as XA,Divider as YA,MessageBox as ZA}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(ZA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Yo.createElement(Yo.Fragment,null,Yo.createElement(YA,{size:"30"}),Yo.createElement(XA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},jA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as gN,getCurrentStep as hN,getRelatedWalletOrNull as yN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as SN}from"@rango-dev/ui";import{useWallets as CN}from"@rango-dev/wallets-react";import Yy from"react";import{i18n as Pn}from"@lingui/core";import{Alert as Vy,Button as eN,Checkbox as tN,Divider as Ma,Image as oN,MessageBox as nN,Spinner as rN,WarningIcon as iN}from"@rango-dev/ui";import{useWallets as aN}from"@rango-dev/wallets-react";import he,{useState as sN}from"react";import{css as JA,darkTheme as RA,styled as np}from"@rango-dev/ui";var qy=JA({wordWrap:"break-word",display:"block"}),Gy=np("img",{width:"100%"}),Wa=np("div",{position:"relative"}),La=np("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${RA} &`]:{$$color:"$warning600"}});var Ky=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=sN(null),{list:s}=vt(),c=oe.use.isActiveTab(),{state:l,connect:p}=aN(),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(rN,{color:"info"}):r||m?null:he.createElement(tN,{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(nN,{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(oN,{src:u.image,size:45}),he.createElement(La,null,he.createElement(iN,{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(eN,{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 lN,Divider as cN,Image as pN,MessageBox as uN,WarningIcon as dN}from"@rango-dev/ui";import{useWallets as mN}from"@rango-dev/wallets-react";import{detectInstallLink as fN}from"@rango-dev/wallets-shared";import io from"react";var Xy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=mN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(fN(n.installLink),"_blank"),"handleButtonClick");return io.createElement(io.Fragment,null,io.createElement(uN,{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(pN,{src:n.img,size:45}),io.createElement(La,null,io.createElement(dN,{color:"warning",size:10})))}),io.createElement(cN,{size:"40"}),io.createElement(lN,{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}=CN(),a=hN(e),s=a?yN(e,a):null,c=s?.walletType,l=c?Gn(r(c),n(c)):null,p=a?gN(e,a):null;return c?l===SN.NOT_INSTALLED?Yy.createElement(Xy,{walletType:c}):Yy.createElement(Ky,{wallet:s,namespace:p,onClose:o}):null},"WalletStateContent");function rp(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(rp,"SwapDetailsModal");import{i18n as Hr}from"@lingui/core";import{Button as ip,Divider as Qr,MessageBox as eS,TokenAmount as TN,Typography as tS}from"@rango-dev/ui";import Ce from"react";import{Link as kN,useNavigate as wN}from"react-router-dom";var Jy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Ry="/profile";function ap(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=wN(),{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(TN,{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(kN,{to:Ry},Ce.createElement(Gy,{src:Jy,alt:"Profile Banner"})),Ce.createElement(Qr,{size:30})),Ce.createElement(ip,{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(ip,{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(ip,{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(ap,"SwapDetailsCompleteModal");import{i18n as Da}from"@lingui/core";import{CopyIcon as PN,DoneIcon as _N,IconButton as DN,RangoExplorerIcon as $N,Tooltip as bS,Typography as xS,useCopyToClipboard as FN}from"@rango-dev/ui";import Bt from"react";import MN from"react";import{i18n as NN}from"@lingui/core";import{Alert as TS,IconButton as BN,LinkIcon as WN}from"@rango-dev/ui";import xo,{Fragment as LN}from"react";import{Alert as bN,ChevronDownIcon as xN,IconButton as EN}from"@rango-dev/ui";import _n,{useState as IN}from"react";import{css as qr,darkTheme as oS,styled as Ft,Typography as vN}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"}),$X=Ft("div",{display:"flex",flexDirection:"column",gap:"$10"}),sS=Ft("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),FX=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(vN,{wordBreak:"break-word"});import{styled as sp}from"@rango-dev/ui";var mS=sp("div",{display:"flex",flexDirection:"column",gap:"$10"}),fS=sp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),gS=sp("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]=IN(!1);return _n.createElement(bN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&_n.createElement(EN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},_n.createElement(fS,{rotated:o},_n.createElement(xN,{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 lp,Button as SS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as AN}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(lp,{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===AN.WaitingForConnectingWallet?Gr.createElement(lp,{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(lp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(CS,"WarningAlert");function cp(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(LN,{key:m},xo.createElement(TS,{id:"widget-swap-details-tx-alert",type:y&&(S&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:NN.t("View transaction"),action:f.url&&xo.createElement(BN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},xo.createElement(WN,{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(cp,"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:MN.createElement(cp,{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]=FN(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(DN,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Bt.createElement(_N,{size:16,color:"secondary"}):Bt.createElement(PN,{size:16,color:"gray"}))),Bt.createElement(uS,{target:"_blank",href:`${jp}/swap/${e}`},Bt.createElement(bS,{container:N(),content:Da.t("View on Rango Explorer"),side:"bottom"},Bt.createElement($N,{size:20})))))}i(ES,"RequestIdRow");import{i18n as IS}from"@lingui/core";import{Typography as AS}from"@rango-dev/ui";import pp from"react";function NS(t){let{date:e,isFinished:o}=t;return pp.createElement("div",{className:Zo()},pp.createElement(AS,{variant:"label",size:"large",color:"neutral700"},o?IS.t("Finished at"):IS.t("Created at")),pp.createElement(AS,{variant:"label",size:"small",color:"neutral700"},e))}i(NS,"SwapDateRow");var KN=3e3;function fp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=GN(),l=T().blockchains(),p=T().swappers(),{findToken:u}=T(),d=z().use.retry(),f=VN(),h=mp(null),[g,m]=$a(!1),[y,S]=$a(null),[C,k]=$a(null),[v,w]=$a(null),I=mp(y),A=mp(C),b=Ne.use.getNotifications(),E=Ne.use.removeNotification(),x=b(),W=UN(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?ON(e,W):null,le=W?zN(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,uC=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(up,{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 dp(()=>{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]),dp(()=>{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]),dp(()=>{if(I.current=y,A.current=C,y==="switchNetwork"&&C?.type==="success"){let Le=setTimeout(()=>{I.current==="switchNetwork"&&A.current?.type==="success"&&G()},KN);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(up,{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(up,{variant:"title",size:"small"},Ot.t("Swaps steps"))),Te.createElement(HN,{size:8}),Te.createElement(aS,null,j.map((Le,Wt)=>{let Ip=Wt,Un=e.steps[Wt]&&vS(e.steps[Wt]),dC=Un==="error"||Un==="in-progress"||Un==="warning"||Un==="completed"&&Wt===j.length-1;return Te.createElement(qN,{className:"widget-swap-details-step-item-container",key:Ip,step:Le,type:"swap-progress",ref:h,state:Un,hasSeparator:Wt!==0,tabIndex:Ip,isFocused:dC,tooltipContainer:N()})}))),Te.createElement(rp,{isOpen:g,state:y,switchNetworkModalState:C,onClose:G,onCancel:r,onDelete:n,message:ee.detailedMessage.content,swap:e,handleSwitchNetwork:X}),Te.createElement(ap,{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:uC}))}i(fp,"SwapDetails");import{i18n as Oa}from"@lingui/core";import{Divider as PS,NotFound as JN,Skeleton as Kr,Typography as Ua}from"@rango-dev/ui";import Ie from"react";import{i18n as jN}from"@lingui/core";import{Divider as XN,Skeleton as YN,Typography as ZN}from"@rango-dev/ui";import Ee from"react";import{css as Ut,styled as gp}from"@rango-dev/ui";var LS=gp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Vr=gp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Fa=gp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),u7=Ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),d7=Ut({paddingTop:"$15",display:"flex"}),m7=Ut({padding:"$15 $0"}),f7=Ut({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),g7=Ut({paddingBottom:"$10"}),h7=Ut({display:"flex",justifyContent:"start",alignItems:"center"}),y7=Ut({paddingTop:"$5",display:"flex",alignItems:"center"}),S7=Ut({display:"flex",alignItems:"center"}),C7=Ut({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),MS=Ut({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function hp(){return Ee.createElement(LS,null,Ee.createElement(Cr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(ZN,{variant:"title",size:"small"},jN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Vr,null,Ee.createElement(Dt,{separator:!1}),Ee.createElement("div",{className:MS()},Ee.createElement(XN,{direction:"horizontal",size:20}),Ee.createElement(YN,{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(hp,"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(hp,null)),!o&&Ie.createElement(sS,null,Ie.createElement(JN,{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}=t0(),o=!e.loadedFromPersistor,n=Ct(t),{requestId:r}=n0(),a=Qe(),{fetchStatus:s}=T();if(!r)return yp.createElement(o0,{containerStyles:{margin:"20px"},type:"error",title:RN.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&&e0(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?yp.createElement(_S,{requestId:r,showSkeleton:c}):yp.createElement(fp,{swap:d,requestId:r,onCancel:p,onDelete:u})}i(DS,"SwapDetailsPage");import{i18n as $S}from"@lingui/core";import{Divider as r0,getCategoriesCount as i0,SelectableCategoryList as a0,styled as OS,Typography as s0,Wallet as l0}from"@rango-dev/ui";import zt,{useState as FS}from"react";var c0=OS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),p0=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=i0(p)!==1,f=xu(l,e),h=i(g=>{nu(l,r.multiWallets)||s(g)},"handleWalletItemClick");return zt.createElement(ae,{header:{title:$S.t("Connect Wallets")}},zt.createElement(p0,null,d&&zt.createElement(zt.Fragment,null,zt.createElement(a0,{setCategory:o,category:e,blockchains:p,isLoading:t==="loading"}),zt.createElement(r0,{size:24})),zt.createElement(s0,{variant:"title",size:"xmedium",align:"center"},$S.t("Choose a wallet to connect.")),zt.createElement(c0,null,f.map((g,m)=>{let y=`wallet-${m}-${g.type}`;return zt.createElement(l0,{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(),u0([{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(zc,{sourceType:"Exchanges"})},{path:D.bridges,element:Ue.createElement(zc,{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 kp,useState as RS}from"react";import{Provider as y0}from"@rango-dev/wallets-react";import{WalletTypes as S0}from"@rango-dev/wallets-shared";import za,{createContext as C0,useEffect as VS,useMemo as T0,useRef as KS}from"react";import{useEffect as m0}from"react";import{Provider as d0}from"@hub3js/core";function HS(t){return t.map(e=>typeof e=="string"?e:e instanceof d0?e.id:e.config.type).join("-")}i(HS,"hashProviders");function Sp(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return m0(()=>{o(),r()},[HS(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(Sp,"useWalletProviders");import{legacyFormatAddressWithNetwork as f0,legacyReadAccountAddress as QS}from"@rango-dev/wallets-core/legacy";import{Events as $n}from"@rango-dev/wallets-react";import{isEvmBlockchain as g0}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(g0).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=is(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=>f0(b.address,b.chain)).length>0){if(w.length>0){let b=is(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 h0}from"@rango-dev/wallets-core/legacy";function GS(t,e){let[o,n,r,a,s]=e;n!==h0.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}=Sp(s.wallets,c),p=KS(),u=KS(),{handler:d}=qS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});VS(()=>{n().catch(console.log)},[]),VS(()=>{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(y0,{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:{[S0.TON_CONNECT]:{provider:{manifestUrl:s.tonConnect?.manifestUrl}}}}},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 jS=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 XS(){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(XS,"useForceAutoConnect");import{isApprovalTX as E0,RouteEventType as YS,StepEventType as ZS,StepExecutionEventStatus as I0,WidgetEvents as qa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as JS}from"react";function Cp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();JS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===ZS.TX_EXECUTION&&s.status===I0.TX_SENT&&!E0(c)||s.type===ZS.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]),JS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===YS.FAILED||s.type===YS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ke.on(qa.RouteEvent,r),()=>ke.off(qa.RouteEvent,r)},[ke])}i(Cp,"useSubscribeToWidgetEvents");import{useManager as A0}from"@rango-dev/queue-manager-react";import{useEffect as N0}from"react";function Tp(){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(Tp,"useSyncNotifications");function wp(){XS(),jS(),Cp(),Tp();let t=T().blockchains(),{canSwitchNetworkTo:e}=eC(),[o,n]=RS(null),[r,a]=RS(),s=L0(Ha),c=t.filter(W0);kp(()=>()=>Rd(),[]),kp(()=>()=>em(),[]),B0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),kp(()=>(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(wp,"useBootstrap");import{styled as M0}from"@rango-dev/ui";var tC=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(){wp();let{config:t}=T(),{activeTheme:e}=uo(t?.theme||{}),{activeLanguage:o}=ko();return vp.createElement(P0,{language:o},vp.createElement(tC,{id:"swap-container",className:e()},vp.createElement(zS,null)))}i(Jo,"Main");import{setSolanaSignerConfig as eB}from"@rango-dev/signer-solana";import xp,{useEffect as Ep,useMemo as tB}from"react";function oC(){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(oC,"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=ou(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),nC=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 rC=G0;import{useManager as Y0}from"@rango-dev/queue-manager-react";import Z0,{createContext as J0,useContext as R0}from"react";function iC(){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(iC,"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 aC=J0(void 0);function bp(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=iC(),{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(aC.Provider,{value:b},t.children)}i(bp,"WidgetInfo");function sC(){let t=R0(aC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(sC,"useWidget");function Fn(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=oC(),{handleLoadCustomFont:a}=nC();return Ep(()=>{r().catch(console.log)},[]),Ep(()=>{n&&a(n)},[n]),tB(()=>{Eu({API_KEY:o?.apiKey||qp(),BASE_URL:o?.apiUrl||Kp})},[o.apiKey,o.apiUrl]),Ep(()=>{t.config?.signers?.customSolanaRPC&&eB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),xp.createElement(Qa,{config:o,onUpdateState:e},xp.createElement(rC,{apiKey:o.apiKey},xp.createElement(bp,null,t.children)))}i(Fn,"WidgetProvider");function lC(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(lC,"Refuel");import Ka from"react";function cC(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(cC,"Widget");function pC(){let{on:t,off:e}=ke;return{on:t,off:e}}i(pC,"useWidgetEvents");var hee={DerivationPath:or,Namespaces:Rn,Detached:tr,isOnDerivationPath:rr,isOnNamespace:nr,isOnDetached:Io};export{OR as EventSeverity,ln as MainEvents,XR as Networks,JR as PendingSwapNetworkStatus,ps as QuoteEventTypes,lC as Refuel,UR as RouteEventType,Ra as SUPPORTED_FONTS,hee as StatefulConnect,zR as StepEventType,HR as StepExecutionBlockedEventStatus,QR as StepExecutionEventStatus,gd as SwapModeContext,ht as UI_ID,ds as UiEventTypes,us as WalletEventTypes,KR as WalletEvents,YR as WalletTypes,cC as Widget,ln as WidgetEvents,Fn as WidgetProvider,Qa as WidgetWallets,nl as customizedThemeTokens,Za as pickProviderVersionWithFallbackToLegacy,GR as readAccountAddress,en as useStatefulConnect,vt as useWalletList,eC as useWallets,sC as useWidget,pC as useWidgetEvents,mT as widgetEventEmitter};
|
|
1
|
+
var mC=Object.defineProperty;var i=(t,e)=>mC(t,"name",{value:e,configurable:!0});import{EventSeverity as OR,RouteEventType as UR,StepEventType as zR,StepExecutionBlockedEventStatus as HR,StepExecutionEventStatus as QR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as GR}from"@rango-dev/wallets-core/legacy";import{useWallets as eC,Events as KR}from"@rango-dev/wallets-react";import{Networks as XR,WalletTypes as YR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as JR}from"rango-types";import{Divider as Bk}from"@rango-dev/ui";import co,{useEffect as Wk,useRef as Mk,useState as fd}from"react";import{WalletState as fC}from"@rango-dev/ui";import{useWallets as gC}from"@rango-dev/wallets-react";import{useReducer as hC}from"react";function Ap(t){return!!t.derivationPath}i(Ap,"isStateOnDerivationPathStep");function Np(t){return!!t.namespace}i(Np,"isStateOnNamespace");var Xr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Bp(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(Bp,"reducer");function en(){let{state:t,disconnect:e,connect:o}=gC(),[n,r]=hC(Bp,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===fC.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(!Np(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(!Ap(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 Cs}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 yC}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 Lp}from"@hub3js/core/utils";function Pp({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(Pp,"matchAndGenerateProviders");function Za(t){try{return Lp(t,"1.0.0")[1]}catch{return Lp(t,"0.0.0")[1]}}i(Za,"pickProviderVersionWithFallbackToLegacy");function _p(t){return t.map(o=>Za(o)).map(o=>o instanceof Ya?o.id:o.config.type)}i(_p,"configWalletsToWalletName");function Dp(t,e){return e.find(o=>o.name===t)?.displayName}i(Dp,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function $p(t,e){return e.find(o=>o.name===t)?.logo}i($p,"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 Op(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Op,"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"}},SC={clientUrl:void 0},CC={liquiditySources:void 0};function Fp(t){let e=Op(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return yC(o).map(a=>a())}i(Fp,"generateProviders");var Up=i((t,e,o)=>{let n=Fp({...nn,...t});return{config:{...nn,...t},iframe:SC,campaignMode:CC,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=Fp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Op(a);return Pp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as zp}from"rango-types";var Hp=[zp.EVM,zp.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 qp(){let t=Qp();if(t)return t;throw new Error("Ensure you have set REACT_APP_RANGO_API_KEY in your env variables.")}i(qp,"getApiKeyFromEnvOrThrow");function Gp(){return Qp()||"NOT_SET"}i(Gp,"getApiKeyFromEnvOrNotSet");import{BlockchainCategories as EC,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as IC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as AC,getBlockChainNameFromId as NC,isEvmAddress as BC,Networks as hu}from"@rango-dev/wallets-shared";import an from"bignumber.js";import TC from"bignumber.js";var pe=new TC(0);var No="~",Vp=[];import{BlockchainCategories as es,WalletState as xC}from"@rango-dev/ui";import{TransactionType as ts}from"rango-sdk";import{UI_ID as kC}from"@rango-dev/ui";var Kp="https://api.rango.exchange",jp="https://explorer.rango.exchange",ht={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...kC};var Xp="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 Jp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Jp,"exactText");function Rp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Rp,"startWithText");var N=i(()=>document.getElementById(ht.SWAP_BOX_ID),"getContainer"),Bo=i(()=>document.getElementById(ht.EXPANDED_BOX_ID),"getExpanded");function eu(t,e,o){let n=!!e&&Jp(e,t),r=!!o&&Jp(o,t);return n!==r?n?-1:1:0}i(eu,"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&&Rp(e,t),r=!!o&&Rp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ns,"compareStartWithText");function tu(t,e,o){if(!o)return 0;let n=eu(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=eu(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(tu,"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"),ou=i(t=>Ra.find(o=>o.value===t)?.url,"getFontUrlByName");function nu(t,e){let o=!!t.find(n=>n.state===xC.CONNECTED);return e===!1&&o}i(nu,"isSingleWalletActive");function ru(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(ru,"memoizedResult");function iu(t,e){let o=new Set;return e.forEach(n=>{o.add(n.blockchain)}),t.filter(n=>o.has(n.name))}i(iu,"filterBlockchainsWithAtLeastOneToken");import{BigNumber as fu}from"bignumber.js";function au(t){return t.replace(/^0+(?=\d)/g,"")}i(au,"removeLeadingZeros");function su(t){return t.replace(/^\.(\d+)/,"0.$1")}i(su,"ensureLeadingZeroForDecimal");function lu(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(lu,"formatThousandsWithCommas");function cu(t){return t.replace(/\s+/g,"-")}i(cu,"replaceSpacesWithDash");function pu(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(pu,"stripTrailingZeros");function uu(t){return t=t.replace(/[^\d.]/g,"").replace(/\./g,(e,o,n)=>n.indexOf(".")===o?".":""),t}i(uu,"parseNumericValue");function ti(t){return/^0+(?:\.0+)?$/.test(t)}i(ti,"isZeroValue");function du(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(du,"isValidCurrencyFormat");function mu(t){return/\d+$/.test(t)}i(mu,"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"),L=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new fu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new fu(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 Mt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),qn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function gu(t){return ti(t)?"0":t.endsWith(".")?t.slice(0,-1):pu(t)}i(gu,"sanitizeInputAmount");function WC(t,e){let o=t?.get("EVM");return o?.network?NC(o.network,e)??o.network:null}i(WC,"getConnectedEvmChainName");function Gn(t,e){return LC(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=>!Vp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,namespaces:l}=t(r);return s&&(!c||!!n&&WC(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:AC(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 is(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}=IC(l),d=c.length>0,f=c.includes(u),h=u===hu.Unknown;if(d&&!f&&!h)return;let m=u===hu.Unknown&&BC(p);if(h&&!m)return;o.includes(u)||m?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(is,"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?rs(n.usdValue,n.decimals):pe.toFixed();return o.plus(r)},new an(pe));return MC(e.toString())},"calculateWalletUsdValue");function MC(t){let e=t.toString().split(".");return e[0]&&(e[0]=lu(e[0])),e.join(".")}i(MC,"numberWithThousandSeparator");function rs(t,e){return new an(t).shiftedBy(-e).toFixed()}i(rs,"representAmountInNumber");function ii(t){if(!t)return null;let e=rs(t.amount,t.decimals),o=t.usdValue?rs(t.usdValue,t.decimals):null,n=L(e,8,8),r=o?L(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===EC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(ei(n,e))return!0;return!1})}i(xu,"filterWalletsByCategory");function LC(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(LC,"checkIsWalletPartiallyConnected");var as={API_KEY:Gp()};function qt(t){return as[t]||""}i(qt,"getConfig");function Eu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),as=e,as}i(Eu,"initConfig");var Iu=20,Au=25,ss="theme-widget",ls=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"),cs=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 ps=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ps||{}),us=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(us||{}),ds=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ds||{}),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 Mu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Mu,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function cn(t,e){return e?.[t]==="enabled"}i(cn,"isRoutingEnabled");var Lu=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=>Hp.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=Lu(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=tu(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(Mu)},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 Ss 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 fs(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(fs,"computeNextBalancesWithNewPrices");function gs(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(gs,"createBalanceStateForNewAccount");function hs(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(hs,"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 ys(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(ys,"computeNextStateAfterWalletBalanceRemoval");function yT(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(yT,"matchWalletDetailsWithConnectedWallet");var ST=ru(),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};fs(m,g,d);let y=gs(g,e);f=hs(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}=ys(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};fs(f,d,l);let{_balances:h,_aggregatedBalances:g}=ys(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=gs(d,e);p=hs(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 Ss(u.amount),f=new Ss(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 Ss(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),...Up(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=_p(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===Cs.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===Cs.NOT_INSTALLED?!1:f.filter(m=>m.state!=Cs.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 LT}from"@rango-dev/ui";import PT from"react";import{create as MT}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(MT()((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})}}))),Lo=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(LT,{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 vs from"react";import{i18n as ws}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 Lt from"react";import{styled as ed}from"@rango-dev/ui";var Ts=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 ks=3;function nd(t){let{chains:e}=t;return Lt.createElement(Ts,{id:"widget-supported-chains-container"},e.slice(0,ks).map((o,n)=>Lt.createElement(od,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Lt.createElement(hi,{firstItem:n===0},Lt.createElement(td,{src:o.logo,size:15})))),e.length>ks&&Lt.createElement(od,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Lt.createElement(Ts,null,e.map((o,n)=>Lt.createElement(hi,{key:o.name,firstItem:n===0},Lt.createElement(td,{src:o.logo,size:15}))))},Lt.createElement(hi,null,Lt.createElement(OT,{variant:"body",size:"xsmall"},"+",e.length-ks))))}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"},ws.t("Connected")),!!o&&Ae.createElement(Jn,{variant:"body",size:"small",color:"error500"},ws.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"}},ws.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 vs.createElement(Po,{namespace:n,onClick:e,suffix:o==="radio"?vs.createElement(VT,{value:n.value}):vs.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 bs}from"@lingui/core";import{Button as rk,Spinner as ik}from"@rango-dev/ui";import xs,{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?bs.t("Disconnect"):c?bs.t("Try again"):bs.t("Connect"),"getButtonText");return xs.createElement(Po,{namespace:e,connected:r.connected,error:c?.message,address:f(),suffix:r.connecting?xs.createElement(ik,{color:"info"}):xs.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.type}),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 Es(t){let e=t?gk[t]?.derivationPaths:null;return e?[...e,Si]:[]}i(Es,"getDerivationPaths");import{Button as hk,styled as Is,Typography as yk}from"@rango-dev/ui";var ld=Is("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),As=Is(yk,{paddingLeft:"$10"}),Ns={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},zP=Is(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=Es(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(Es(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(As,{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:Ns}}),bt.createElement(Sk,{size:20}),bt.createElement(As,{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:Ns})),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 Ws,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 Bs}from"@rango-dev/ui";var JP=Bs("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),ud=Bs("div",{position:"relative"}),xk=bk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),dd=Bs("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(Ws,{type:"success",title:Sn.t("Wallet Connected"),description:Sn.t("Your wallet is connected, you can use it to swap.")}):o?_o.createElement(Ws,{type:"error",title:Sn.t("Failed to Connect"),description:o||Sn.t("Your wallet is not connected. Please try again.")}):_o.createElement(Ws,{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 Lk=3e3,Pk=300;function ir(t){let e=Mk(),[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,Lk))):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 _0}from"@rango-dev/ui";import vp 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 cD}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 Ls(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(Ls,"getFeeLabel");var Ps=["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 X_ 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&&Md(e,o))return{type:4,usdValueChange:L(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:L(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:_s(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=Ps.indexOf(o.value),a=Ps.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 Ld(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(Ld,"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:L(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:L(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:L(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:L(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 Ds(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(pe))&&e&&e!=="0"&&n!==0)}i(Ds,"canComputePriceImpact");function $s(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($s,"getUsdFeeOfStep");function vi(t,e){return t.reduce((o,n)=>o.plus($s(n,e)),pe)}i(vi,"getTotalFeeInUsd");function Fs(t){let e=pe,o=new He(t.price||0);return e=e.plus(new He(t.amount).multipliedBy(o)),e}i(Fs,"getUsdFee");function Dd(t){return t.reduce((e,o)=>e.plus(Fs(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 _s(t,e){return new He(e).div(new He(t)).minus(1).multipliedBy(yd).toNumber()}i(_s,"getPercentageChange");function Md(t,e){let o=ar(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=_s(n.toString(),r.toString());return wd.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Md,"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=L(new He(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=L(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=gu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=uu(e);ti(e)||(o=au(o),o=su(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(()=>{ls(s,S)&&a({token:null}),cs(l,C)&&n(null)},[S,C]),Tn(()=>{ls(c,k)&&a({token:null}),cs(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 zs,useRef as Vk}from"react";import{useInRouterContext as Kk,useLocation as jk,useSearchParams as Xk}from"react-router-dom";function Os(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(Os,"convertTokenSearchParamToAsset");function Us(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Us,"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");zs(()=>{let{autoConnect:A,clientUrl:b,extraQueryParams:E,blockchain:x}=w();m&&h==="success"&&I({fromBlockchain:n?.name,fromToken:Us(a),toBlockchain:r?.name,toToken:Us(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]),zs(()=>{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&&Os(A.fromToken,b),x=E?v(E):void 0,W=g.find(G=>G.name===A.toBlockchain),P=A.toToken&&W&&Os(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]),zs(()=>{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 Cl,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 qs}from"@rango-dev/ui";var nm=qs("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=qs("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),im=qs("div",{display:"flex"});function Gs(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(Gs,"BlockchainSelectorButton");import{i18n as Xs}from"@lingui/core";import{Button as iw,Divider as dm,MessageBox as aw}from"@rango-dev/ui";import po,{useEffect as mm,useState as Ys}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 Vs=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"}}}),Ks=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 js(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(Vs,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,de.createElement(ew,{size:12,color:"gray"})):de.createElement(Vs,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(Ks,{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(Ks,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ii.t("Learn More")))}i(js,"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]=Ys(!1),[h,g]=Ys(!1),[m,y]=Ys(!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||Xs.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"?Xs.t("Retry"):Xs.t("Add another custom token")))),o&&e&&po.createElement(js,{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 Zs(){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(Zs,"useIframe");import{useNavigate as lw}from"react-router-dom";function Qe(){let t=lw();return()=>t(-1)}i(Qe,"useNavigateBack");import{createTheme as rl,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 ol 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 Js(t){let e=Math.min(Math.max(Math.round(t),0),Bi);return pw(e.toString(Ni),2)}i(Js,"intToHex");function uw(t){return`#${Js(t.red)}${Js(t.green)}${Js(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 Rs(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(Rs,"createTintsAndShades");function el(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)&&!mu(r)){let l=cw(a);Object.assign(n,Rs(l,r,s))}}return{...n,...e}}i(el,"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"),tl=i(t=>yw(Sw(5381,JSON.stringify(t))>>>0),"toHash");function nl(t){let e=Cw.colors,o={...e,...Tw},n,r;if(t?.light){let s={colors:el(e,t.light)};n={id:`${ss}-light-${tl(s)}`,tokens:s}}if(t?.dark){let s={colors:el(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ss}-dark-${tl(s)}`,tokens:s}}return{light:n,dark:r}}i(nl,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ol.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ol.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(ol.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=Xp,borderRadius:n=Iu,secondaryBorderRadius:r=Au}=t,[a,s]=bw(Sm()?"dark":"light"),{theme:c}=T(),{dark:l,light:p}=nl(e),u=rl({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=rl(p.id,p.tokens);d.push(g.className)}if(l){let g=rl(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 il(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(il,"ActivateTabAlert");import{i18n as al}from"@lingui/core";import{Button as Iw,Divider as Aw,MessageBox as Nw}from"@rango-dev/ui";import Wi from"react";function sl(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:al.t("Activate current tab"),type:"warning",description:al.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},al.t("Confirm"))))}i(sl,"ActivateTabModal");import{ChevronLeftIcon as Mw}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 ll(t){return Am.createElement(Pt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(Mw,{color:"black",size:16}))}i(ll,"BackButton");import{i18n as Lw}from"@lingui/core";import{Button as Pw,Typography as _w}from"@rango-dev/ui";import cl from"react";function pl(t){return cl.createElement(mo,null,cl.createElement(Pw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},cl.createElement(_w,{variant:"label",size:"medium",color:"error500"},Lw.t("Cancel"))))}i(pl,"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 ul(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(ul,"WalletButton");import{i18n as Li}from"@lingui/core";import{NotificationsIcon as tv,Popover as ov,SettingsIcon as nv,Tooltip as Pi,TransactionIcon as rv}from"@rango-dev/ui";import Le 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 dl(){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=>$p(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${D.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(dl,"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 Mm from"react";function Lm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Xw.WARNING);return o?Mm.createElement(vm,{isSever:n},Mm.createElement(Yw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Lm,"NotificationsBadge");import{RefreshProgressButton as Zw}from"@rango-dev/ui";import ml,{useEffect as Jw,useState as Pm}from"react";var Rw=1e3,_m=60,ev=100;function Mi({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 ml.createElement(Pt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},ml.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},ml.createElement(Zw,{size:22,color:t?"black":"gray",progress:e/_m*ev})))}i(Mi,"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 Le.createElement(Le.Fragment,null,!r.includes("refresh")&&Le.createElement(Pi,{container:a||N(),side:"top",content:Li.t("Refresh")},Le.createElement(Mi,{onClick:e})),!c&&Le.createElement(ov,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Le.createElement(dl,null)},Le.createElement("div",null,Le.createElement(Pi,{container:N(),side:"top",content:Li.t("Notifications")},Le.createElement(Pt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Le.createElement(tv,{size:18,color:"black"}),Le.createElement(Lm,null))))),!r.includes("settings")&&Le.createElement(Pi,{container:N(),side:"top",content:Li.t("Settings")},Le.createElement(Pt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Le.createElement(nv,{size:18,color:"black"}))),!r.includes("history")&&Le.createElement(Pi,{container:N(),side:"top",content:Li.t("History")},Le.createElement(Pt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Le.createElement(rv,{size:18,color:"black"}),Le.createElement(Wm,null))))}i(Uo,"HeaderButtons");import{i18n as fl}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 gl(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:fl.t("Something went wrong"),type:"error",description:fl.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"}),fl.t("Refresh"))))}i(gl,"RefreshModal");var Fm="700px",Om="425px",Um="550px",zm="640px",Hm="800px";function hl(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(hl,"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}=Zs(),{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(Lo.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",hl),()=>{B.current?.removeEventListener("scroll",hl)}),[]),$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(ll,{onClick:()=>{x(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!k&&Be.createElement(ul,{container:N(),onClick:K,isConnected:!!l?.length}),r.onCancel&&Be.createElement(pl,{onClick:r.onCancel}))}),Be.createElement(qm,{ref:B},n),Be.createElement(sl,{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(il,{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(gl,{open:u,onClose:()=>d(!1)}))}i(ae,"Layout");import{styled as fv}from"@rango-dev/ui";var Ym="$20 $20 $10 $20",yl=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 Sl}from"react";function Zm(){let[t,e]=Sl(!1),[o,n]=Sl(null),[r,a]=Sl(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(Gs,{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(Cl,{size:"24"}),qe.createElement(wv,{size:"large",variant:"label"},vn.t("Enter Address")),qe.createElement(Cl,{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(Cl,{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 Jl}from"@lingui/core";import{useManager as ux}from"@rango-dev/queue-manager-react";import{Alert as dx,Button as mx,css as ec,Divider as Rl,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 xl,MessageBox as Yv,Typography as El}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 vl}from"@lingui/core";import{Alert as Wv,ChevronDownIcon as Mv,CloseIcon as Lv,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 Tl=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"}}}}),kl=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} ${Tl}ms ease-out`},false:{animation:`${Av} ${Tl}ms ease-out`}}}}),Ui=Fi("div",{transition:`all ${Tl}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(kl,{className:"collapsible_trigger",onClick:a},s),zi.createElement(Oi,{className:"collapsible_content",open:e},r),c==="bottom"&&zi.createElement(kl,{className:"collapsible_trigger",onClick:a},s))}i(Hi,"CustomCollapsible");import{darkTheme as tf,styled as wl,TextField as Bv}from"@rango-dev/ui";var of=wl("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=wl(Bv,{backgroundColor:"$neutral100"}),rf=wl("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=Dp(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(Lv,{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},vl.t("Send to a different address"))),Pe.createElement(Ui,{orientation:n?"up":"down"},Pe.createElement(Mv,{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:vl.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:vl.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 bl(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(bl,"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(El,{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(bl,{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(xl,{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(El,{variant:"title",size:"xmedium"},Ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:X?.shortName}})),ie.createElement(El,{variant:"label",color:"$neutral700",size:"medium"},Ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:X?.shortName}}))),ie.createElement(xl,{size:24}),ie.createElement(pf,null,ie.createElement(bl,{chain:F,quoteChains:E,isSelected:le,selectWallet:be,limit:eb,onShowMore:()=>C(X?.name??""),onConnect:Ve=>{Y(F,Ve)}})),!j&&ie.createElement(xl,{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 Nl,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 Il=(o=>(o[o.small=tb]="small",o[o.large=ob]="large",o))(Il||{}),Al=(o=>(o.small="small",o.large="medium",o))(Al||{});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:Il[n],color:"gray"}),st.createElement(Nl,{size:4}),st.createElement(Bf,{variant:"title",size:Al[n]},re().noResultError.title),n==="large"&&st.createElement(Nl,{size:4}),!!l.description&&st.createElement(If,{size:n},st.createElement(Bf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),st.createElement(Nl,{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%"}),Bl=Qo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Mf=Qo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${lb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Lf=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(Mf,null,En.createElement(db,{size:"medium",variant:"label",className:"_title"},e),En.createElement(Lf,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:L(r.inputUsdValue)},{title:fr.t("Gas cost"),value:L(r.totalFee,2,2)},{title:fr.t("Receiving"),value:L(r.outputUsdValue)},{title:fr.t("Price impact"),value:L(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(Bl,null,Xt.createElement(gb,{size:"4"}),Xt.createElement(yb,{size:"small",variant:"title"},fr.t("Details")),Xt.createElement(Bl,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 Wl,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(Wl,{size:18}),So.createElement(Wl,{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(Wl,{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 Hl,NumericTooltip as Ql,QuoteTag as Xb,StepDetails as Yb,TokenAmount as Zb,Typography as Wn,useIsTruncated as ql}from"@rango-dev/ui";import Gl from"bignumber.js";import $,{useRef as na,useState as Jb}from"react";import{styled as Ml}from"@rango-dev/ui";var Ll=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 Pl}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"}),_l=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)"}}}}),_H=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}),Dl=Ge(Pl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:"$30"}),$l=Ge(Pl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0,flex:"0 1 auto"}),Fl=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(Pl,{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto",minWidth:0,flexShrink:3});import{i18n as _t}from"@lingui/core";import{ChevronDownIcon as Lb,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 Mb,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"}}),Ol=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=Mb({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"},"$",L(t.fee,4,4))),"NonPayableFee");function Ul(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=L(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=Fs(k);return J.createElement(Xi,{key:w},J.createElement(Et,{variant:"label",size:"medium",color:"neutral600"},Ls(S,_t.t)),J.createElement(Db,{content:k.amount,container:g},J.createElement(Et,{variant:"label",size:"medium"},L(k.amount,2,2),k.asset.symbol," ($",L(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"},"$",L(c,4,4))),J.createElement(Ol,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(Lb,{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=Ls(S,_t.t),I=`non-payable-fee-${k}`;return J.createElement(Fb,{key:I,fee:v,label:w})}),J.createElement(Ol,null)))))}i(Ul,"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 zl,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(zl,{direction:"horizontal",size:4}),r.map((h,g)=>{let m=`item-${g}`,y=H.createElement(_l,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(Fl,{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(zl,{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(Fl,{className:"blockchainImage"},H.createElement(Ri,{size:"xsmall",variant:"body"},"+",u.length-g))))),H.createElement(zl,{direction:"horizontal",size:32}))),H.createElement(_l,{orientation:a?"up":"down"},H.createElement(Qb,{size:12,color:"black"}))))}i(Cg,"QuoteTrigger");function Vl(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=L(n.value,6,6),A=n.usdValue?L(n.usdValue,4,4):"",{config:{__UNSTABLE_OR_INTERNAL__:b}}=T(),E=Kt(o.usdValue,n.usdValue??null),x=L(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?L(o.value,6,6):L(q.fromAmount,6,6),usdValue:L((q.from.usdPrice??0)*parseFloat(q.fromAmount),4,4),realValue:ye===0?o.value:q.fromAmount,realUsdValue:new Gl(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:L(q.toAmount,6,6),usdValue:L((q.to.usdPrice??0)*parseFloat(q.toAmount),4,4),realValue:q.toAmount,realUsdValue:new Gl(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:L(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:L($s(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=L(le,2,2),Ht=le.gte(new Gl(Sd)),be=Y/Td>=Cd,dt=na(null),kt=ql(o.value,dt),wt=na(null),F=ql(n.value,wt),O=na(null),X=ql(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(Ul,{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(Ul,{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($l,{ref:dt,size:"small",variant:"body"},o.value),kt&&$.createElement(Ql,{content:o.value,container:K,open:o.value?void 0:!1},$.createElement(Hl,{size:12,color:"gray"})),$.createElement(Dl,{size:"small",variant:"body"},U[0]?.from.token.displayName),$.createElement(Wn,{size:"small",variant:"body"},"="),$.createElement($l,{ref:wt,size:"small",variant:"body"},n.value),F&&$.createElement(Ql,{content:n.value,container:K,open:n.value?void 0:!1},$.createElement(Hl,{size:12,color:"gray"})),$.createElement(Dl,{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(Hl,{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(Vl,"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 Lg,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 Kl=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"}),Mg=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(Lg,{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(Kl,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:Mg()},V.createElement(Kl,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(Lg,{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 Xl,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"}}}}),jl=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(Xl,{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(jl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(Xl,{direction:"horizontal",size:8}),We.createElement(ia,{height:12,variant:"rounded"})),We.createElement(Dg,null,We.createElement(tx,{color:"gray",size:16})),We.createElement(jl,null,We.createElement(Fg,{size:"small",loading:!0}),We.createElement(Xl,{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(Ll,null,aa.createElement(kr,{tagHidden:c,type:o,expanded:s})):v?aa.createElement(Ll,{onClick:()=>l?.(e),id:d},aa.createElement(Vl,{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=Yl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(la,"throwErrorIfResponseIsNotValid");function Yl(t){if(Ld(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(Yl,"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 Zl(){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(Zl,"useConfirmSwap");var Tx=fx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${zg}`]:{width:"$48",height:"$48"}}),kx=ec({flexGrow:1,paddingRight:"$10"}),wx=ec({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),vx=ec({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}=Zl(),[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:Jl.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},Jl.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"},Jl.t("You get")),De.createElement("div",{className:wx()},De.createElement(Mi,{onClick:!k&&!u&&!A?U:void 0}))),De.createElement(Rl,{size:"12"}),ym(R.map((B,Y)=>({element:B,key:`alert-${Y}`})),De.createElement(Rl,{size:10})),R.length>0?De.createElement(Rl,{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 dc,CustomTokensZeroStateDarkIcon as Qx,CustomTokensZeroStateIcon as qx,DeleteIcon as Gx,Divider as Ir,IconButton as Vx,MessageBox as Kx,NotFound as jx,styled as fc}from"@rango-dev/ui";import ge,{useState as mc}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 Mn 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?Mn.createElement(xx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},Mn.createElement(bx,{color:"gray",size:10})):null;return p&&(f=p),Mn.createElement(Gg,null,Mn.createElement(Ix,{prefix:Mn.createElement(qg,null,Mn.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 uc}from"@lingui/core";import{Button as Wx,CustomTokenWarning as Mx,darkTheme as nh,Divider as eo,ExternalLinkIcon as Lx,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 M,{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 Ln,darkTheme as tc,ImageContainer as Ax,ListItemButton as Nx,styled as ot,Typography as Vg}from"@rango-dev/ui";var oc=Ln({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),nc=Ln({position:"relative",height:12,width:"30%",maxWidth:"150px"}),rc=Ln({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),ic=Ln({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${tc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),ac=Ln({}),sc=Ln(),Kg=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),lc=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":{[`& .${nc}`]:{[`& .${ic}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${ac}`]:{bottom:"-15px"},[`& .${oc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${rc}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),jg=ot(Nx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),cc=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),pc=ot(Vg,{}),Xg=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${sc}`]:{$$color:"$colors$neutral600",[`.${tc} &`]:{$$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":{[`.${tc} &`]:{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 M.createElement("div",{className:nc()},o?M.createElement("div",{className:oc()},o):M.createElement(lc,{className:rc()},M.createElement(xr,{variant:"title",size:"xmedium"},r.symbol),M.createElement(eo,{direction:"horizontal",size:4}),M.createElement(cc,{css:a},M.createElement(pc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&M.createElement("div",{className:`${ic()} ${!o&&ac()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",M.createElement(eo,{size:4,direction:"horizontal"}),M.createElement(Rg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},M.createElement(Lx,{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 M.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")},M.createElement(xr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let x=ii(d(E));return s?s(E):f?M.createElement(vr,null,M.createElement(Vo,{variant:"text",size:"large",width:70}),M.createElement(eo,{size:4}),M.createElement(Vo,{variant:"text",size:"medium",width:50})):x&&M.createElement(Xg,null,M.createElement(Jg,{variant:"title",size:"small"},x.amount),M.createElement("div",null),x.usdValue&&M.createElement(xr,{variant:"body",className:sc(),size:"xsmall"},`$${x.usdValue}`))},"endRenderer"),A=i(()=>M.createElement(Fx,{style:{flexGrow:1,minHeight:0},itemContent:E=>{let x=e[E];if(x==="skeleton")return M.createElement(_x,{hasDivider:!0,start:M.createElement(Vo,{variant:"circular",width:35,height:35}),end:M.createElement(vr,null,M.createElement(Vo,{variant:"text",size:"large",width:70}),M.createElement(eo,{size:4}),M.createElement(Vo,{variant:"text",size:"medium",width:50})),title:M.createElement("div",null,M.createElement(Vo,{variant:"text",size:"large",width:90}),M.createElement(eo,{size:4}),M.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=Rs(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 M.createElement(eh,null,M.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:M.createElement(Yg,null,M.createElement(Px,{src:x.image===""?Jr:x.image,size:30}),t.type!=="custom-token"&&x&&h(x,t.type)&&M.createElement(Zg,null,M.createElement($x,{size:12,color:"gray"}))),title:x.name||!x.name&&!P?M.createElement(lc,null,M.createElement(xr,{variant:"title",size:"xmedium"},x.symbol),M.createElement(eo,{direction:"horizontal",size:4}),M.createElement(cc,{css:G},M.createElement(pc,{variant:"body",size:"xsmall",css:K},x.blockchain)),l&&x.warning&&M.createElement(M.Fragment,null,M.createElement(eo,{direction:"horizontal",size:4}),M.createElement(Mx,{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 M.createElement(M.Fragment,null,a&&M.createElement(M.Fragment,null,M.createElement(xr,{variant:"label",size:"large"},uc.t("Select Token")),M.createElement(eo,{size:4})),M.createElement(Kg,null,M.createElement(eo,{size:4}),p==="loading"&&M.createElement(oh,{size:zx}),p==="success"&&(e.length?M.createElement(M.Fragment,null,M.createElement(ur,{token:C,address:C?.address??"",blockchain:b??void 0,onImport:w,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),M.createElement(ua,{as:"ul"},A())):!!o&&M.createElement(Dx,{title:uc.t("No results found"),description:uc.t("Try using different keywords")}))))}i(Er,"TokenList");var Yx=fc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Zx=fc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Jx=fc(Vx,{"&:hover":{"& svg":{color:"$secondary550"}}});function rh(){let[t,e]=mc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=z()(),{mode:l}=uo({}),p=Xx(),[u,d]=mc(!1),[f,h]=mc(),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(dc,{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(dc,{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(dc,{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 kc,darkTheme as CE,Divider as Co,MessageBox as TE,NotFound as kE,styled as wc,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 gc=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"},[`& ${gc}::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 hc(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(gc,{isSelect:!!n},Ko.createElement(iE,{size:16,color:"black"}),!!n&&Ko.createElement(ah,null)))))}i(hc,"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 yc=sE(),gh=Nr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),Sc=Nr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${yc}`]:{$$color:"$colors$neutral600",[`.${lE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Cc=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 Tc(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(Sc,{key:y},Ye.createElement(Cc,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(Sc,null,Ye.createElement(Cc,null,Ye.createElement(mE,{variant:"label",size:"medium",className:yc()},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:L(m.inputAmount,6,6),realAmount:m.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:L(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(Tc,"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=wc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%",minHeight:0,flexGrow:1}),xE=wc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),EE=wc("div",{"._typography":{color:"$neutral700",[`.${CE}&`]:{color:"$neutral900"}}}),IE=i((t,e)=>t?.length?t.filter(o=>Mt(o.fromBlockchain,e)||Mt(o.toBlockchain,e)||Mt(o.toSymbol,e)||Mt(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||Mt(E,r)||Mt(x,r)||IE(W,r)||Mt(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(kc,{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(hc,{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(Tc,{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(kc,{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(kc,{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 Dc,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 vc,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 bc(){let{fromToken:t,toToken:e}=z()();return!!t&&!!e&&Qt(t,e)?jo.createElement(xh,null,jo.createElement(vc,{size:10}),jo.createElement(BE,{size:24,color:"gray"}),jo.createElement(vc,{size:4}),jo.createElement(WE,{variant:"title",size:"small"},Eh.t("No Routes Found")),jo.createElement(vc,{size:4}),jo.createElement(NE,{title:Eh.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(bc,"SameTokensWarning");import{Alert as ME,Button as LE}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(ME,{title:c.title,type:c.alertType,variant:"alarm",action:Ah.createElement(LE,{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 Mr}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 Mh(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(Mh,"getUsdExchangeRate");function Lh(t,e){let o=new ha(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ha.ROUND_DOWN).toFormat(2)}`}i(Lh,"formatTokenValueInUsd");import{darkTheme as DE,styled as Ec,Typography as $E}from"@rango-dev/ui";var Ph=Ec("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),_h=Ec("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${DE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Ic=Ec($E,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Ac(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}=Mh({toTokenUsdPrice:E,fromTokenUsdPrice:b});return pt.createElement(Ph,null,pt.createElement(Mr,{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(Mr,{className:"rate-text",variant:"body",size:"small"},"1"),pt.createElement(Ic,{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(Mr,{className:"rate-text",variant:"body",size:"small"},x)},pt.createElement(Mr,{className:"rate-text",variant:"body",size:"small"},W)),pt.createElement(Ic,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&pt.createElement(Mr,{color:"neutral600",variant:"body",size:"small"},"~",Lh(Number(x),v.usdPrice))))}i(Ac,"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 Bc,FullExpandedQuote as GE,Typography as VE}from"@rango-dev/ui";import we from"react";import{styled as Nc}from"@rango-dev/ui";var Dh=Nc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),$h=Nc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Fh=Nc("div",{width:"146px"});import{i18n as Lr}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:Lr.t("Smart Routing")},{value:"FEE",label:Lr.t("Lowest Fee")},{value:"SPEED",label:Lr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Lr.t("Maximum Return")},{value:"PRICE",label:Lr.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(Bc,{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(Bc,{size:16}))),!e&&we.createElement(we.Fragment,null,k?b.map((E,x)=>{let W=I(E),P=Yl(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(Bc,{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 Wc(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(Wc,"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 Lc 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 Pc(){let t=z().use.switchFromAndTo();return Lc.createElement(Gh,null,Lc.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()}},Lc.createElement(tI,{size:12})))}i(Pc,"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 _c(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=!Ds(m,d,f),b=!Ds(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:L(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(Pc,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:L(Kt(f,g),2,2),warningLevel:jt(E??0),price:{value:L(h,6,6),usdValue:b?void 0:L(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(_c,"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(_c,{fetchingQuote:le,fetchMetaStatus:v,isExpandable:Y,onClickToken:j}),Se.createElement(Dc,{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(Dc,{size:8}),Se.createElement(Ac,{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(Dc,{size:"10"}),Se.createElement(Nh,{onChangeSettings:()=>O(D.settings)})),Se.createElement(bc,null))),Y?Se.createElement(Wc,{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 MI}from"@rango-dev/ui";import Ze,{useState as LI}from"react";import{Checkbox as xI,Skeleton as sy}from"@rango-dev/ui";import $r from"react";import{styled as $c}from"@rango-dev/ui";var Dr=$c("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Fc=$c("div",{width:80,display:"flex",justifyContent:"flex-end"}),Oc=$c("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 Uc(){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(Uc,"LoadingLiquiditySourceList");function zc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=LI(""),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-${cu(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(MI,{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=>Mt(S.groupTitle,r))),Ze.createElement(ae,{header:{title:oo.t(t),suffix:Ze.createElement(Fc,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(Uc,null),!y.length&&r?Ze.createElement(Oc,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(zc,"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 Hc}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(yl,{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:Hc.t("No results found"),description:Hc.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"},Hc.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(()=>iu(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 Vc}from"@lingui/core";import{BlockchainsChip as va,Divider as ky,Image as wy,Skeleton as eA,Tooltip as tA,Typography as Kc}from"@rango-dev/ui";import xe from"react";import{useEffect as ZI}from"react";var Sy=["ETH"];function qc(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(qc,"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 Gc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();ZI(()=>{if(e?.selected){let a=qc(t,o,e);Cy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=qc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Gc,"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 jc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=oe(),c=Gc(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(Kc,{variant:"label",size:"large"},Vc.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(Kc,{variant:"body",size:"xsmall",color:"secondary500"},Vc.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(Kc,{variant:"body",size:"xsmall",color:"secondary500"},Vc._("More +{count}",{count:c.more.length}))):null)))}i(jc,"BlockchainsSection");import{useCallback as iA,useRef as aA,useState as Xc}from"react";function Yc(){let t=T().blockchains(),e=aA(null),{customTokens:o}=T(),[n,r]=Xc(!1),[a,s]=Xc([]),[c,l]=Xc(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(Yc,"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}=Yc(),[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(jc,{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 ep}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 Jc,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 Zc}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"},Zc.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,Zc.t("Warning")),":\xA0",Zc.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 Rc(){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;du(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(Jc,{direction:"horizontal",size:4}),Oe.createElement(Wy,{variant:"title",size:"xmedium"},By.t("Slippage tolerance per swap")),Oe.createElement(Jc,{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(Jc,{size:10}),Oe.createElement(hA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(Rc,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as My,BridgesIcon as kA,ChevronRightIcon as Aa,DarkModeIcon as Ly,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 MA,TargetIcon as LA,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(Ly,{color:"black",size:24}),tooltip:_.createElement(nt,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:_.createElement(My,{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(My,{...e});case"dark":return _.createElement(Ly,{...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(LA,{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(MA,{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:ep.t("Settings")}},Xo.createElement(ce,null,o&&Xo.createElement(OA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:ep.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},ep.t("Reset")))}),Xo.createElement(Rc,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 yp 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 up}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 dp,useRef as mp,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 tp,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(tp,{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(tp,{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(tp,{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 op,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(op,{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(op,{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(op,{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 La,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 np}from"@rango-dev/ui";var qy=RA({wordWrap:"break-word",display:"block"}),Gy=np("img",{width:"100%"}),Wa=np("div",{position:"relative"}),Ma=np("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(Ma,null,he.createElement(aN,{color:"warning",size:10})))}),m&&!d&&he.createElement(he.Fragment,null,he.createElement(La,{size:10}),he.createElement(Vy,{type:"success",variant:"alarm",title:Pn.t("Wallet connected successfully.")})),r&&!d&&he.createElement(he.Fragment,null,he.createElement(La,{size:10}),he.createElement(Vy,{type:"error",title:r?.message,variant:"alarm"})),d&&he.createElement(he.Fragment,null,he.createElement(La,{size:30}),he.createElement(Po,{namespace:d,suffix:S(),error:r?.message,connected:m,address:v()})),he.createElement(La,{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(Ma,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 rp(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(rp,"SwapDetailsModal");import{i18n as Hr}from"@lingui/core";import{Button as ip,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 ap(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(ip,{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(ip,{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(ip,{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(ap,"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 MN}from"@rango-dev/ui";import xo,{Fragment as LN}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"}),$X=Ft("div",{display:"flex",flexDirection:"column",gap:"$10"}),sS=Ft("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),FX=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 sp}from"@rango-dev/ui";var mS=sp("div",{display:"flex",flexDirection:"column",gap:"$10"}),fS=sp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),gS=sp("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 lp,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(lp,{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(lp,{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(lp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(CS,"WarningAlert");function cp(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(LN,{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(MN,{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(cp,"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:L(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:L(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(cp,{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:`${jp}/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 pp from"react";function NS(t){let{date:e,isFinished:o}=t;return pp.createElement("div",{className:Zo()},pp.createElement(AS,{variant:"label",size:"large",color:"neutral700"},o?IS.t("Finished at"):IS.t("Created at")),pp.createElement(AS,{variant:"label",size:"small",color:"neutral700"},e))}i(NS,"SwapDateRow");var jN=3e3;function fp(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=mp(null),[g,m]=$a(!1),[y,S]=$a(null),[C,k]=$a(null),[v,w]=$a(null),I=mp(y),A=mp(C),b=Ne.use.getNotifications(),E=Ne.use.removeNotification(),x=b(),W=zN(e),P=W?.networkStatus,U=i(Me=>{m(!0),S(Me)},"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(Me=>{k({type:"error",title:Ot.t("Network Switch Failed"),description:Me?.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(Me=>!!c(Me)?.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(Me=>{B(Me)}))},"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((Me,Wt)=>Me+parseFloat(Wt.feeInUsd||""),0),mt=e.steps.find(Me=>Me.diagnosisUrl)?.diagnosisUrl,ao=L(parseFloat(ye||"0")*(q?.toUsdPrice||0),4,4),On=L(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,uC=e.status==="success"?Ot.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:L(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(up,{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 dp(()=>{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]),dp(()=>{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]),dp(()=>{if(I.current=y,A.current=C,y==="switchNetwork"&&C?.type==="success"){let Me=setTimeout(()=>{I.current==="switchNetwork"&&A.current?.type==="success"&&G()},jN);return()=>clearTimeout(Me)}},[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(up,{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 Me=ki(e,l,u);d(Me),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:L(String(Je),2,2),time:Qn(oi(e.steps)),steps:Q}),Te.createElement(hr,{from:{price:{value:L(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:L(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:L(Ro,2,2),warningLevel:jt(Ro??0)})),Te.createElement("div",{className:pS()},Te.createElement(up,{variant:"title",size:"small"},Ot.t("Swaps steps"))),Te.createElement(QN,{size:8}),Te.createElement(aS,null,j.map((Me,Wt)=>{let Ip=Wt,Un=e.steps[Wt]&&vS(e.steps[Wt]),dC=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:Ip,step:Me,type:"swap-progress",ref:h,state:Un,hasSeparator:Wt!==0,tabIndex:Ip,isFocused:dC,tooltipContainer:N()})}))),Te.createElement(rp,{isOpen:g,state:y,switchNetworkModalState:C,onClose:G,onCancel:r,onDelete:n,message:ee.detailedMessage.content,swap:e,handleSwitchNetwork:X}),Te.createElement(ap,{open:!!v,diagnosisUrl:mt,onClose:()=>w(null),status:e.status==="success"?"success":"failed",priceValue:L(ye,6,6),usdValue:ao,realUsdValue:Eo,realValue:ye||"",percentageChange:L(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:uC}))}i(fp,"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 gp}from"@rango-dev/ui";var MS=gp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Vr=gp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Fa=gp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),u7=Ut({display:"flex",justifyContent:"space-between",alignItems:"center"}),d7=Ut({paddingTop:"$15",display:"flex"}),m7=Ut({padding:"$15 $0"}),f7=Ut({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),g7=Ut({paddingBottom:"$10"}),h7=Ut({display:"flex",justifyContent:"start",alignItems:"center"}),y7=Ut({paddingTop:"$5",display:"flex",alignItems:"center"}),S7=Ut({display:"flex",alignItems:"center"}),C7=Ut({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),LS=Ut({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function hp(){return Ee.createElement(MS,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:LS()},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(hp,"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(hp,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 yp.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?yp.createElement(_S,{requestId:r,showSkeleton:c}):yp.createElement(fp,{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=>{nu(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(zc,{sourceType:"Exchanges"})},{path:D.bridges,element:Ue.createElement(zc,{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 W0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as M0}from"rango-sdk";import{useContext as L0,useEffect as kp,useState as RS}from"react";import{Provider as S0}from"@rango-dev/wallets-react";import{WalletTypes as C0}from"@rango-dev/wallets-shared";import za,{createContext as T0,useEffect as VS,useMemo as k0,useRef as KS}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 Sp(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(Sp,"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=is(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=is(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=T0({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function w0(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}=Sp(s.wallets,c),p=KS(),u=KS(),{handler:d}=qS({onConnectWalletHandler:p,onDisconnectWalletHandler:u});VS(()=>{n().catch(console.log)},[]),VS(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=oe.use.isActiveTab(),h=k0(()=>({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:{[C0.TON_CONNECT]:{provider:{manifestUrl:s.tonConnect?.manifestUrl}}}}},t.children))}i(w0,"Main");function Qa(t){let{config:e,...o}=t;return za.createElement(qu,{config:e},za.createElement(w0,{...o,config:e}))}i(Qa,"WidgetWallets");import{globalCss as v0}from"@rango-dev/ui";var jS=i(()=>v0({"@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 b0}from"@rango-dev/wallets-react";import{useEffect as x0,useRef as E0}from"react";function XS(){let{connect:t,state:e}=b0(),o=E0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);x0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(XS,"useForceAutoConnect");import{isApprovalTX as I0,RouteEventType as YS,StepEventType as ZS,StepExecutionEventStatus as A0,WidgetEvents as qa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as JS}from"react";function Cp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();JS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===ZS.TX_EXECUTION&&s.status===A0.TX_SENT&&!I0(c)||s.type===ZS.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]),JS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===YS.FAILED||s.type===YS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return ke.on(qa.RouteEvent,r),()=>ke.off(qa.RouteEvent,r)},[ke])}i(Cp,"useSubscribeToWidgetEvents");import{useManager as N0}from"@rango-dev/queue-manager-react";import{useEffect as B0}from"react";function Tp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=N0();B0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(Ct(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Tp,"useSyncNotifications");function wp(){XS(),jS(),Cp(),Tp();let t=T().blockchains(),{canSwitchNetworkTo:e}=eC(),[o,n]=RS(null),[r,a]=RS(),s=L0(Ha),c=t.filter(M0);kp(()=>()=>Rd(),[]),kp(()=>()=>em(),[]),W0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),kp(()=>(Lo.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)}),Lo.destroy),[])}i(wp,"useBootstrap");import{styled as P0}from"@rango-dev/ui";var tC=P0("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(){wp();let{config:t}=T(),{activeTheme:e}=uo(t?.theme||{}),{activeLanguage:o}=ko();return vp.createElement(_0,{language:o},vp.createElement(tC,{id:"swap-container",className:e()},vp.createElement(zS,null)))}i(Jo,"Main");import{setSolanaSignerConfig as tB}from"@rango-dev/signer-solana";import xp,{useEffect as Ep,useMemo as oB}from"react";function oC(){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(oC,"useFetchApiConfig");import{useState as D0}from"react";var $0=i(()=>{let[t,e]=D0(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=ou(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),nC=$0;import{checkWaitingForNetworkChange as F0,makeQueueDefinition as O0}from"@rango-dev/queue-manager-rango-preset";import{Provider as U0}from"@rango-dev/queue-manager-react";import{useWallets as z0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as H0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Q0}from"rango-types";import q0,{useMemo as G0}from"react";function V0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s,hubProvider:c}=z0(),l=G0(()=>O0({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:H0(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(U0,{queuesDefs:[l],context:k,onPersistedDataLoaded:w=>{F0(w)},isPaused:!v},t.children)}i(V0,"QueueManager");var rC=V0;import{useManager as Z0}from"@rango-dev/queue-manager-react";import J0,{createContext as R0,useContext as eB}from"react";function iC(){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(iC,"useUpdateQuoteInputs");import{cancelSwap as K0,getCurrentNamespaceOfOrNull as j0,getCurrentStep as X0,getRelatedWalletOrNull as Y0}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&&K0(o)}getCurrentStepInfo(e){let o=X0(e);return{step:o,wallet:o?Y0(e,o):null,network:o?j0(e,o)?.network:null}}};var aC=R0(void 0);function bp(t){let{manager:e}=Z0(),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=iC(),{fromBlockchain:k,toBlockchain:v,fromToken:w,toToken:I,inputAmount:A}=z()(),b={isActiveTab:o,setCurrentTabAsActive:Lo.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 J0.createElement(aC.Provider,{value:b},t.children)}i(bp,"WidgetInfo");function sC(){let t=eB(aC);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(sC,"useWidget");function Fn(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{fetchApiConfig:r}=oC(),{handleLoadCustomFont:a}=nC();return Ep(()=>{r().catch(console.log)},[]),Ep(()=>{n&&a(n)},[n]),oB(()=>{Eu({API_KEY:o?.apiKey||qp(),BASE_URL:o?.apiUrl||Kp})},[o.apiKey,o.apiUrl]),Ep(()=>{t.config?.signers?.customSolanaRPC&&tB("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),xp.createElement(Qa,{config:o,onUpdateState:e},xp.createElement(rC,{apiKey:o.apiKey},xp.createElement(bp,null,t.children)))}i(Fn,"WidgetProvider");function lC(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(lC,"Refuel");import Ka from"react";function cC(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(cC,"Widget");function pC(){let{on:t,off:e}=ke;return{on:t,off:e}}i(pC,"useWidgetEvents");var hee={DerivationPath:or,Namespaces:Rn,Detached:tr,isOnDerivationPath:rr,isOnNamespace:nr,isOnDetached:Io};export{OR as EventSeverity,ln as MainEvents,XR as Networks,JR as PendingSwapNetworkStatus,ps as QuoteEventTypes,lC as Refuel,UR as RouteEventType,Ra as SUPPORTED_FONTS,hee as StatefulConnect,zR as StepEventType,HR as StepExecutionBlockedEventStatus,QR as StepExecutionEventStatus,gd as SwapModeContext,ht as UI_ID,ds as UiEventTypes,us as WalletEventTypes,KR as WalletEvents,YR as WalletTypes,cC as Widget,ln as WidgetEvents,Fn as WidgetProvider,Qa as WidgetWallets,nl as customizedThemeTokens,Za as pickProviderVersionWithFallbackToLegacy,GR as readAccountAddress,en as useStatefulConnect,vt as useWalletList,eC as useWallets,sC as useWidget,pC as useWidgetEvents,gT as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|