@rango-dev/widget-embedded 0.38.1-next.1 → 0.38.1-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var Fh=Object.defineProperty;var i=(t,e)=>Fh(t,"name",{value:e,configurable:!0});import{EventSeverity as Kj,RouteEventType as jj,StepEventType as Xj,StepExecutionBlockedEventStatus as Yj,StepExecutionEventStatus as Zj}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as Rj}from"@rango-dev/wallets-core/legacy";import{useWallets as jr,Events as t3}from"@rango-dev/wallets-react";import{Networks as n3,WalletTypes as r3}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as a3}from"rango-types";import{Divider as BS}from"@rango-dev/ui";import co,{useEffect as MS,useRef as LS,useState as Np}from"react";import{WalletState as Oh}from"@rango-dev/ui";import{useWallets as Uh}from"@rango-dev/wallets-react";import{useReducer as zh}from"react";function tc(t){return!!t.derivationPath}i(tc,"isStateOnDerivationPathStep");function oc(t){return!!t.namespace}i(oc,"isStateOnNamespace");var nr={status:"init",namespace:null,derivationPath:null};function nc(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"reset":return nr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:nr;default:throw new Error("Action hasn't been defined.")}}i(nc,"reducer");function Gt(){let{state:t,disconnect:e,connect:o}=Uh(),[n,r]=zh(nc,nr),a=i(async(p,d,h)=>{r({type:"reset"});try{let f=d?.map(m=>({...m,network:void 0}));return await o(p,f),{status:"connected"}}catch(f){let m=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:f})}},"runConnect"),s=i(async(p,d)=>{if(p.state===Oh.DISCONNECTED){if(!!p.isHub&&p.properties?.find(k=>k.name==="detached")&&p.state!=="connected")return r({type:"needsNamespace",payload:{targetWallet:p}}),{status:"namespace"};if(!p.needsNamespace)return await a(p.type,void 0,d);let m=p.needsNamespace.data.length>1,g=p.needsDerivationPath;if(m)return r({type:"needsNamespace",payload:{targetWallet:p}}),{status:"namespace"};if(g){let C=p.needsNamespace.data[0];return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:C.value}}),{status:"derivation-path"}}return await a(p.type,p.needsNamespace?.data.map(C=>({namespace:C.value})),d)}return d?.disconnectIfConnected?(await u(p.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(p,d)=>{let h=p.needsNamespace?.selection==="single",f=p.needsDerivationPath,m=d[0];if(!m)throw new Error("To confirm a namespace, you should select at least one namespace.");if(h&&f)return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:m}}),{status:"derivation-path"};if(!oc(n))throw new Error("Something went wrong on handling namespace. Please retry.");let g=n.namespace.targetWallet.type,C=d.map(S=>({namespace:S}));return await a(g,C)},"handleNamespace"),c=i(async p=>{if(!p)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!tc(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let d=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:p}];return await a(d,f)},"handleDerivationPath"),u=i(async p=>{let d=t(p);return d.connected||d.connecting?(await e(p),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:l,handleDerivationPath:c,getState:()=>n,resetState:p=>{r(p==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Gt,"useStatefulConnect");import{WalletState as fa}from"@rango-dev/ui";import{useWallets as Xy}from"@rango-dev/wallets-react";import{detectMobileScreens as Yy,KEPLR_COMPATIBLE_WALLETS as Zy,WalletTypes as dn}from"@rango-dev/wallets-shared";import{useCallback as Jy,useEffect as Ry}from"react";import Hy,{createContext as Gy,useContext as Vy,useEffect as Ky,useRef as jy}from"react";import{create as Qy}from"zustand";import{persist as qy}from"zustand/middleware";import{allProviders as Qh}from"@rango-dev/provider-all";var Yi=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()}},xo=new Yi;import{defineVersions as ic,pickVersion as ac,Provider as Zi}from"@rango-dev/wallets-core";function sc({allProviders:t,configWallets:e,options:o}){if(e){let n=[];return e.forEach(r=>{if(typeof r=="string"){let a=t.find(s=>{let l=lc(s,o);return l instanceof Zi?l.id===r:l.config.type===r});a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else r instanceof Zi?n.push(ic().version("1.0.0",r).build()):n.push(ic().version("0.0.0",r).build())}),n}return t}i(sc,"matchAndGenerateProviders");function lc(t,e){let{experimentalWallet:o="enabled"}=e||{},n=o=="disabled"?"0.0.0":"1.0.0";try{return ac(t,n)[1]}catch{return ac(t,"0.0.0")[1]}}i(lc,"pickProviderVersionWithFallbackToLegacy");function cc(t,e){return t.map(n=>lc(n,e)).map(n=>n instanceof Zi?n.id:n.config.type)}i(cc,"configWalletsToWalletName");function rr(t,e){return e.find(o=>o.name===t)?.displayName}i(rr,"getBlockchainDisplayNameFor");function st(t,e){return e.find(o=>o.name===t)?.shortName}i(st,"getBlockchainShortNameFor");function pc(t,e){return e.find(o=>o.name===t)?.logo}i(pc,"getBlockchainImage");function on(t,e){return e.find(o=>o.id===t)?.title}i(on,"getSwapperDisplayName");function nn(t,e){return e.find(o=>o.name===t)??null}i(nn,"findBlockchain");function Ji(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(Ji,"isTokenNative");function lt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(lt,"createTokenHash");function Eo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Eo,"isValidTokenAddress");function rn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(c=>{typeof c!="string"&&(c=lt(c));let u=o.tokensMapByTokenHash.get(c);u&&(n[c]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(c=>{l.has(c)||a(o.tokensMapByBlockchainName[c])})}return s.forEach(l=>{let c=r[l];if(!c&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}c&&(c.isExcluded?(a(o.tokensMapByBlockchainName[l]),c.tokens.forEach(u=>{let p=lt(u);delete n[p]})):a(c.tokens))}),Object.values(n)}i(rn,"matchTokensFromConfigWithMeta");function ir(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(ir,"getSupportedBlockchainsFromConfig");function dc(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,experimentalWallet:t.features?.experimentalWallet}}i(dc,"makeProvidersOptionsFromConfig");var ar={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"},features:{experimentalWallet:"enabled"}},qh={clientUrl:void 0},Hh={liquiditySources:void 0};function uc(t){let e=dc(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 Qh(o).map(a=>a())}i(uc,"generateProviders");var mc=i((t,e,o)=>{let n=uc({...ar,...t});return{config:{...ar,...t},iframe:qh,campaignMode:Hh,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l}=o(),c=rn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}}),u=rn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}});xo.set("supportedSourceTokens",c),xo.set("supportedDestinationTokens",u),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=uc(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=dc(a);return sc({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as fc}from"rango-types";var gc=[fc.EVM,fc.SOLANA];import{RangoClient as iy}from"rango-sdk";import{UI_ID as Gh}from"@rango-dev/ui";var sr="c6381a79-2817-4602-83bf-6a641a409e32",hc="https://api.rango.exchange",yc="https://explorer.rango.exchange",De={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Gh};import{BlockchainCategories as Jh,WalletState as bt}from"@rango-dev/ui";import{legacyReadAccountAddress as Rh}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as ey,getCosmosExperimentalChainInfo as ty,isEvmAddress as oy,KEPLR_COMPATIBLE_WALLETS as eA,Networks as Wc}from"@rango-dev/wallets-shared";import ro from"bignumber.js";import{isCosmosBlockchain as ny}from"rango-types";import Vh from"bignumber.js";var ue=new Vh(0);import{WalletTypes as Kh}from"@rango-dev/wallets-shared";var Sc=[Kh.LEAP];import{BlockchainCategories as ea,WalletState as Zh}from"@rango-dev/ui";import{TransactionType as lr}from"rango-sdk";var Cc="Roboto",Ri=[{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 Io(t){return Array.from(new Set(t))}i(Io,"removeDuplicateFrom");function xc(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(xc,"debounce");function Je(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Je,"containsText");function vc(t,e){return t.toLowerCase()===e.toLowerCase()}i(vc,"exactText");function wc(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(wc,"startWithText");var W=i(()=>document.getElementById(De.SWAP_BOX_ID),"getContainer"),no=i(()=>document.getElementById(De.EXPANDED_BOX_ID),"getExpanded");function bc(t,e,o){let n=!!e&&vc(e,t),r=!!o&&vc(o,t);return n!==r?n?-1:1:0}i(bc,"compareExactMatchText");function ta(t,e,o){let n=!!e&&Je(e,t),r=!!o&&Je(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ta,"compareContainsText");function oa(t,e,o){let n=!!e&&wc(e,t),r=!!o&&wc(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(oa,"compareStartWithText");function Ec(t,e,o){if(!o)return 0;let n=bc(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=bc(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=oa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ta(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=oa(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ta(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=oa(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ta(o,t.address,e.address);if(r!==0)return r}return 0}i(Ec,"compareWithSearchFor");var cr=i((t,e)=>{switch(e){case ea.ALL:return!0;case ea.UTXO:return t===lr.TRANSFER;case ea.OTHER:return t!==lr.TRANSFER&&t!==lr.COSMOS&&t!==lr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Ic=i(t=>Ri.find(o=>o.value===t)?.url,"getFontUrlByName");function Ac(t,e){let o=!!t.find(n=>n.state===Zh.CONNECTED);return e===!1&&o}i(Ac,"isSingleWalletActive");import{BigNumber as Nc}from"bignumber.js";var an=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 Nc(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Nc(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var pr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var wt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),sn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ln(t){switch(!0){case t.connected:return bt.CONNECTED;case t.connecting:return bt.CONNECTING;case!t.installed:return bt.NOT_INSTALLED;default:return bt.DISCONNECTED}}i(ln,"mapStatusToWalletState");function Bc(t,e,o,n){return o.filter(r=>!Sc.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:c}=t(r);return s&&(!l||!!n&&c!==n)?!1:n?!!a.find(p=>p.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:c,needsNamespace:u,supportedChains:p,needsDerivationPath:d,properties:h,isHub:f}=e(r),m=Io(p.map(C=>C.type)),g=ln(t(r));return{title:a,image:s,link:ey(l),state:g,type:r,showOnMobile:c,needsNamespace:u,blockchainTypes:m,needsDerivationPath:d,properties:h,isHub:f}})}i(Bc,"mapWalletTypesToWalletInfo");function mr(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(mr,"walletAndSupportedChainsNames");function na(t,e,o,n,r){let a=[];function s(c,u){if(!!!a.find(d=>d.chain===c)){let d={address:u,chain:c,walletType:t};a.push(d)}}i(s,"addAccount");let l=n||[];return e.forEach(c=>{let{address:u,network:p}=Rh(c),d=l.length>0,h=l.includes(p),f=p===Wc.Unknown;if(d&&!h&&!f)return;let g=p===Wc.Unknown&&oy(u);if(f&&!g)return;o.includes(p)||g?r?s(p,u.toLowerCase()):l.filter(k=>o.includes(k)).forEach(k=>{s(k,u.toLowerCase())}):s(p,u)}),a}i(na,"prepareAccountsForWalletStore");function io(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:c}=r;c.forEach((u,p)=>{let d=u.from.blockchain,h=u.to.blockchain,f=a===o.swaps.length-1,m=p===c.length-1;(!f&&!m||f&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(h)})}e==="all"&&n.add(l)}),Array.from(n)}i(io,"getQuoteWallets");function Mc(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Mc,"isAccountAndWalletMatched");var Lc=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=cn(n);return r?.usdValue?o.plus(r.usdValue):o},new ro(ue));return ry(e.toString())},"calculateWalletUsdValue");function ry(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ry,"numberWithThousandSeparator");var fr=i((t,e)=>{let o=ty(Object.entries(t).map(([,n])=>n).filter(ny));return o&&o[e]?.experimental},"isExperimentalChain");function cn(t){if(!t)return null;let e=new ro(t.amount).shiftedBy(-t.decimals).toFixed(),o=t.usdValue?new ro(t.usdValue).shiftedBy(-t.decimals).toFixed():null,n=M(e,8,8),r=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(cn,"formatBalance");function Pc(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new ro(t.usdValue).shiftedBy(-t.decimals):ue,n=e&&e.usdValue?new ro(e.usdValue).shiftedBy(-e.decimals):ue;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new ro(t.amount).shiftedBy(-t.decimals):ue,n=e&&e.amount?new ro(e.amount).shiftedBy(-e.decimals):ue;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Pc,"compareTokenBalance");function Mt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Mt,"areTokensEqual");function _c(t){return t.sort((e,o)=>+(o.state===bt.CONNECTED)-+(e.state===bt.CONNECTED)||+(o.state===bt.DISCONNECTED||o.state===bt.CONNECTING)-+(e.state===bt.DISCONNECTED||e.state===bt.CONNECTING))}i(_c,"sortWalletsBasedOnConnectionState");function gr(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(gr,"getConciseAddress");function Dc({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Dc,"getAddress");var $c=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Fc(t){return t.map(e=>e.state).join("-")}i(Fc,"hashWalletsState");function Oc(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(Oc,"filterBlockchainsByWalletTypes");function Uc(t,e){return e===Jh.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(cr(n,e))return!0;return!1})}i(Uc,"filterWalletsByCategory");var ra={API_KEY:sr};function Lt(t){return ra[t]||""}i(Lt,"getConfig");function zc(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ra=e,ra}i(zc,"initConfig");var Qc=20,qc=25,ia="theme-widget",aa=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Mt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Mt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),sa=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Hc=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var hr,xt=i(()=>hr||(hr=new iy(Lt("API_KEY"),Lt("BASE_URL")),hr),"httpService");function yr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Io(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(c=>c===s.swapperGroup)),l&&s.types.map(c=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:c,selected:!e.includes(s.swapperGroup)})})}}),n}i(yr,"getUniqueSwappersGroups");function Gc(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Gc,"sortLiquiditySourcesByGroupTitle");function Ve(t,e){return e?.[t]==="hidden"}i(Ve,"isFeatureHidden");function Vc(t,e){return e?.[t]==="enabled"}i(Vc,"isFeatureEnabled");function Ao(t,e){return e?.[t]==="enabled"}i(Ao,"isRoutingEnabled");var Kc=i((t,e,o)=>Ve("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var jc=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let c=ir({config:a}),u=r;return c.length>0&&(u=u.filter(p=>c.includes(p.name))),u.filter(p=>gc.includes(p.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(c=>!(s.length>0&&!s.includes(c.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),l=Array.from(n.values()),c=e()._blockchainsMapByName;if(!o||!o.type)return l;let u=o.type==="source"?"from":"to",p=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=xo.get(p);d?.length||(d=rn({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),xo.set(p,d)),d=Kc(d,s,a.features);let h=e().blockchains({type:o.type});return d.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!h.some(g=>g.name===m.blockchain)?!1:o.searchFor?!!(Je(m.symbol,o.searchFor)||Je(m.address||"",o.searchFor)||Je(m.name||"",o.searchFor)):!0).sort((m,g)=>{let C=e().isTokenPinned(m,o.type),S=e().isTokenPinned(g,o.type);if(C!==S)return C?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(m),L=o.getBalanceFor(g),b=Pc(A,L);if(b!==0)return b}let k=c.get(m.blockchain),T=c.get(g.blockchain),v=Ji(m,k),w=Ji(g,T);if(v!==w)return v?-1:1;if(m.isPopular!==g.isPopular)return m.isPopular?-1:1;if(o.searchFor){let A=Ec(m,g,o.searchFor);if(A)return A}return m.isSecondaryCoin!==g.isSecondaryCoin?m.isSecondaryCoin?1:-1:k&&T?k.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=lt(o),s=n.get(a);return s||(s=r.find(l=>lt(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Mt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let p=a?.includes(u.swapperGroup);return s||!a||a.length===0?!p:p}).sort(Gc)},fetch:async()=>{try{let{routing:o}=e().config,n=Ao("enableCentralizedSwappers",o),r=await xt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},c=[],u=r.popularTokens,p=r.swappers.filter(f=>f.enabled),d=new Set;r.tokens.forEach(f=>{d.add(f.blockchain),c.push(f)}),r.blockchains.sort((f,m)=>f.sort-m.sort).forEach(f=>{f.enabled&&d.has(f.name)&&a.set(f.name,f)}),c.forEach(f=>{let m=lt(f);l[f.blockchain]||(l[f.blockchain]=[]),s.set(m,f),l[f.blockchain].push(m)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:u,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as ay,Catalonia as sy,Chinese as Xc,Denmark as ly,English as cy,Finland as py,French as uy,German as dy,Greece as my,Hungary as fy,India as gy,Indonesian as hy,Italian as yy,Japanese as Sy,Korea as Cy,Lithuania as ky,Malay as Ty,Netherlands as vy,Pakistan as wy,Philippines as by,Poland as xy,Portuguese as Ey,Russian as Iy,SaudiArabia as Ay,Serbia as Ny,Slovakia as Wy,SouthAfrica as By,Spanish as My,Swahili as Ly,Swedish as Py,Thai as _y,Turkish as Dy,Ukrainian as $y,Vietnamese as Fy}from"@rango-dev/ui";var Yc=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:By},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:Ay},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:ay},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:sy},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Xc},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Xc},{title:"Danish",label:"Dansk",local:"da",SVGFlag:ly},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:vy},{title:"English",label:"English",local:"en",SVGFlag:cy},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:by},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:py},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:uy},{title:"German",label:"Deutsch",local:"de",SVGFlag:dy},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:my},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:gy},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:fy},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:hy},{title:"Italian",label:"Italiana",local:"it",SVGFlag:yy},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Sy},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:Cy},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:ky},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:Ty},{title:"Polish",label:"Polski",local:"pl",SVGFlag:xy},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Ey},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Iy},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:Ny},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:Wy},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:My},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:Ly},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:Py},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:_y},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:Dy},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:$y},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:wy},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:Fy}],No="en";var Zc=[.5,1,3],Jc=1,Rc=5,ep=100,tp=0;var op=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Jc,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let c=s===o,u=l<=9;return c&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=Io(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=Ve("theme",n),s=Ve("language",n),l=Ve("liquiditySource",n),c=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...c&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||No},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||No}})},setCustomToken:o=>t(n=>({_customTokens:[o,...n._customTokens]})),deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=ir({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ma from"bignumber.js";import Oy from"mitt";var he=Oy(),Uy={on:he.on,off:he.off};import{WidgetEvents as np}from"@rango-dev/queue-manager-rango-preset";var ca=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ca||{}),pa=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(pa||{}),ua=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ua||{}),Wo=(a=>(a[a.RouteEvent=np.RouteEvent]="RouteEvent",a[a.StepEvent=np.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Wo||{});import zy from"bignumber.js";function pn(t){return`${t.blockchain}-${t.address}-${t.symbol}`}i(pn,"createAssetKey");function da(t,e){return`${pn(e)}-${t}`}i(da,"createBalanceKey");function un(t){let[e,o,n]=t.split("-");return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(un,"extractAssetFromBalanceKey");function rp(t,e){let o={};return t.balances?.forEach(n=>{let r=da(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,l=e().findToken(n.asset)?.usdPrice,c=l?new zy(l??ue).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:c};o[r]=u}),o}i(rp,"createBalanceStateForNewAccount");function ip(t,e){for(let o in e){let n=un(o),r=pn(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(ip,"updateAggregatedBalanceStateForNewAccount");function ap(t,e){let o=un(e),n=pn(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(ap,"removeBalanceFromAggregatedBalance");var sp=i((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!1,error:!1}:r)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:o=>{let n=e().connectedWallets,r=o.filter(a=>!n.some(s=>Mc(a,s)));if(r.length>0){let a=r.map(s=>{let l=!n.some(c=>c.chain===s.chain&&c.selected&&c.walletType!==s.walletType);return{address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!1,error:!1}});t(s=>({connectedWallets:[...s.connectedWallets.filter(c=>!a.some(u=>u.walletType===c.walletType&&u.chain===c.chain)),...a]}))}},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async o=>{he.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r=e().connectedWallets.filter(u=>u.walletType===o);e().connectedWallets.forEach(u=>{u.walletType!==o&&(r=r.filter(p=>!(p.chain===u.chain&&p.address===u.address)))}),n?.chains&&n.chains.length>0&&(r=r.filter(u=>n.chains?.includes(u.chain)));let a={},s=e()._aggregatedBalances,l=e()._balances;Object.keys(l).forEach(u=>{let p=un(u),d=!!r.find(h=>da(h.address,{address:p.address,blockchain:h.chain,symbol:p.symbol})===u);d||(a[u]=l[u]),d&&(s=ap(s,u))}),t({_balances:a,_aggregatedBalances:s})},disconnectWallet:o=>{if(e().connectedWallets.find(r=>r.walletType===o)){he.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),e().removeBalancesForWallet(o);let r=e().connectedWallets.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain),a=e().connectedWallets.filter(s=>s.walletType!==o);r.length>0&&(a=a.map(s=>r.includes(s.chain)?(r=r.filter(l=>l!==s.chain),{...s,selected:!0}):s)),t({connectedWallets:a})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let r=o[0].walletType;e().setConnectedWalletAsRefetching(r);let a=o.map(c=>({address:c.address,blockchain:c.chain})),l=(await xt().getWalletsDetails(a)).wallets;if(l){let{retryOnFailedBalances:c=!0}=n||{};if(c){let d=l.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));d.length>0&&e().fetchBalances(d,{retryOnFailedBalances:!1})}let u={},p=e()._aggregatedBalances;l.forEach(d=>{if(d.failed)return;let h=rp(d,e);p=ip(p,h),u={...u,...h}}),t(d=>({_balances:{...d._balances,...u},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(r)}else throw e().setConnectedWalletHasError(r),new Error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=pn(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let c=a[0];return n[c]}let l=n[a[0]];return a.forEach(c=>{let u=n[c],p=new ma(u.amount),d=new ma(l.amount);p.isGreaterThan(d)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,l)=>{let c=n[l],[,,,u]=l.split("-");return u===o&&(s[l]=c),s},{})},getConnectedWalletsDetails:()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,l)=>{let c=r[l],u=un(l);if(u.blockchain===n.chain){let p=e().findToken(u);if(p){let d=c.amount?new ma(c.amount).shiftedBy(-c.decimals):ue;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:c.amount,decimal:c.decimals,amount:d.toString(),logo:p.image,usdPrice:p.usdPrice})}else console.debug("Looking for asset but it couldn't be found in tokens store. May not be provided in meta.'",u)}return s},[])}})}),"createWalletsSlice");function lp(t){return Qy()(qy((...e)=>({...sp(...e),...jc(...e),...op(...e),...mc(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})}))}i(lp,"createAppStore");var cp=Gy(null);function y(){let t=Vy(cp);if(Ky(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function pp(t){let e=jy();return e.current||(e.current=lp(t.config)),Hy.createElement(cp.Provider,{value:e.current},t.children)}i(pp,"AppStoreProvider");function ft(t){let{chain:e}=t||{},{config:o,connectedWallets:n,getAvailableProviders:r}=y(),{state:a,getWalletInfo:s}=Xy(),l=y().blockchains(),{handleDisconnect:c}=Gt(),u=cc(r(),{trezorManifest:o?.trezorManifest,walletConnectProjectId:o?.walletConnectProjectId,walletConnectListedDesktopWalletLink:o.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,tonConnect:o.tonConnect}),p=Bc(a,s,u,e);p=Yy()?p.filter(C=>C.showOnMobile!==!1&&a(C.type).installed):p;let d=_c(p),h=i(C=>!n.find(S=>S.walletType===C&&S.chain===e),"isExperimentalChainNotAdded"),f=Jy(()=>{let C=p?.filter(S=>S.state===fa.CONNECTING)||[];for(let S of C)c(S.type)},[Fc(p)]);Ry(()=>()=>{f()},[]);let m=i(C=>{let S=C.find(T=>T.type===dn.DEFAULT);return!S||S.state===fa.NOT_INSTALLED?!1:C.filter(T=>T.state!=fa.NOT_INSTALLED&&![dn.DEFAULT,dn.WALLET_CONNECT_2,dn.LEDGER].includes(T.type)&&s(T.type).supportedChains.filter(v=>v.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),g=i((C,S,k)=>fr(k,S)&&h(C)&&!Zy.includes(C)||C==dn.DEFAULT&&!m(p),"shouldExcludeWallet");return{list:d.filter(C=>!g(C.type,e??"",l)),terminateConnectingWallets:f}}i(ft,"useWalletList");import{Modal as nS}from"@rango-dev/ui";import rS from"react";import{create as oS}from"zustand";var up="rango-widget";var mn=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(up),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 tS=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"),Bo=tS;var re=Bo(oS()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})}}))),ao=new mn({onInit:()=>re.setState({tabManagerInitiated:!0}),onClaim:()=>re.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>re.setState({isActiveTab:!1})});function Z(t){let{watermark:e}=re();return rS.createElement(nS,{hasWatermark:e==="FULL",...t},t.children)}i(Z,"WatermarkedModal");import{i18n as ga}from"@lingui/core";import{Button as pS,Checkbox as uS,Divider as dS,Image as Tp,ListItemButton as mS,MessageBox as fS,Radio as gS,RadioRoot as hS}from"@rango-dev/ui";import we,{useState as yS}from"react";import{css as iS,darkTheme as mp,IconButton as aS,styled as so}from"@rango-dev/ui";var Et=so(aS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${mp} &`]:{backgroundColor:"$neutral"}}}),fp=so("div",{position:"absolute",background:"$secondary500",[`.${mp} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Vt=so("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),gp=so("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"}}}}),hp=so("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),yp=so("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Sp=iS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Sr=so("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as sS,styled as Cr}from"@rango-dev/ui";var nN=Cr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Mo=Cr("div",{position:"relative"}),lS=sS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Lo=Cr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${lS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),kr=Cr("div",{"& img":{borderRadius:"50%"}});function Cp(t,e){return t.find(o=>o.name===e)?.logo}i(Cp,"getBlockchainLogo");import{styled as cS}from"@rango-dev/ui";var kp=cS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function fn(t){let{targetWallet:e}=t.value,o=e.needsNamespace?.selection==="single",n=e.image,[r,a]=yS([]),s=y().blockchains(),l=i(u=>{a(o?[u]:p=>p.includes(u)?p.filter(d=>d!==u):p.concat(u))},"onSelect"),c=i(u=>o?we.createElement(hS,{value:r?.[0]},u):we.createElement(we.Fragment,null,u),"wrapRadioRoot");return we.createElement(we.Fragment,null,we.createElement(dS,{size:20}),we.createElement(fS,{type:"info",title:ga.t("Select chain types"),description:ga.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:we.createElement(Mo,null,we.createElement(Sr,null,we.createElement(Tp,{src:n,size:45})),we.createElement(Lo,null))}),we.createElement(kp,null,c(we.createElement(we.Fragment,null,e.needsNamespace?.data.map(u=>we.createElement(mS,{key:u.id,id:u.id,title:u.label,hasDivider:!0,style:{height:60},onClick:()=>l(u.value),start:we.createElement(Tp,{src:Cp(s,u.id),size:22}),end:o?we.createElement(gS,{value:u.value}):we.createElement(uS,{checked:r.includes(u.value)})}))))),we.createElement(pS,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},ga.t("Confirm")))}i(fn,"Namespaces");import{i18n as Po}from"@lingui/core";import{Button as kS,Divider as bp,Image as TS,MessageBox as vS,Select as wS,TextField as bS}from"@rango-dev/ui";import Oe,{useEffect as xS,useState as xp}from"react";import{namespaces as SS}from"@rango-dev/wallets-shared";var Tr={id:"custom",label:"Custom",generateDerivationPath:t=>t};function ha(t){let e=t?SS[t].derivationPaths:null;return e?[...e,Tr]:[]}i(ha,"getDerivationPaths");import{styled as vp,Typography as CS}from"@rango-dev/ui";var wp=vp("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),ya=vp(CS,{paddingLeft:"$10"}),Sa={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Ep="0";function gn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=xp(null),[l,c]=xp(Ep),u=a===Tr.id,p=ha(o),d=i(({value:f})=>{let m=p?.find(g=>g.id===f);m&&(a===Tr.id&&Number.isNaN(Number(l))&&c(Ep),s(m.id))},"handleDerivationPathItemClick"),h=i(()=>{let f=p.find(m=>m.id===a);if(f)e(f.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return xS(()=>{s(ha(o)[0]?.id||null)},[o]),Oe.createElement(Oe.Fragment,null,Oe.createElement(bp,{size:20}),Oe.createElement(vS,{type:"info",title:Po.t("Select Derivation Path"),description:Po.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:Oe.createElement(Mo,null,Oe.createElement(kr,null,Oe.createElement(TS,{src:n,size:45})),Oe.createElement(Lo,null))}),Oe.createElement(wp,null,Oe.createElement(ya,{variant:"body",size:"xsmall",color:"$neutral600"},Po.t("Choose Derivation Path Template")),Oe.createElement(wS,{value:a||"",options:p.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:d,styles:{trigger:Sa}}),Oe.createElement(bp,{size:20}),Oe.createElement(ya,{variant:"body",size:"xsmall",color:"$neutral600"},u?Po.t("Enter Path"):Po.t("Enter Index")),Oe.createElement(bS,{type:u?"text":"number",variant:"contained",value:l,onChange:f=>c(f.target.value),style:Sa})),Oe.createElement(kS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!p||!a||!l},Po.t("Confirm")))}i(gn,"DerivationPath");import{i18n as _o}from"@lingui/core";import{Image as ES,MessageBox as Ca,WalletState as IS}from"@rango-dev/ui";import{useWallets as AS}from"@rango-dev/wallets-react";import lo from"react";function ka(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=AS();return ln(a(n))===IS.CONNECTED?lo.createElement(Ca,{type:"success",title:_o.t("Wallet Connected"),description:_o.t("Your wallet is connected, you can use it to swap.")}):o?lo.createElement(Ca,{type:"error",title:_o.t("Failed to Connect"),description:o||_o.t("Your wallet is not connected. Please try again.")}):lo.createElement(Ca,{type:"loading",title:_o.t("Connecting to your wallet"),description:_o.t("Click connect in your wallet popup."),icon:lo.createElement(Mo,null,lo.createElement(kr,null,lo.createElement(ES,{src:r,size:45})),lo.createElement(Lo,null))})}i(ka,"ConnectStatus");import{i18n as Ta}from"@lingui/core";import{Button as NS,Divider as Ip,MessageBox as WS}from"@rango-dev/ui";import vr from"react";function va(t){let{displayName:e,onConfirm:o}=t;return vr.createElement(WS,{title:Ta.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ta.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},vr.createElement(Ip,{size:18}),vr.createElement(Ip,{size:32}),vr.createElement(NS,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ta.t("Confirm")))}i(va,"ExperimentalChain");function Ap(t,e){return t().status==="init"&&!!e}i(Ap,"isOnStatus");function hn(t){return t().status==="namespace"}i(hn,"isOnNamespace");function yn(t){return t().status==="derivationPath"}i(yn,"isOnDerivationPath");var PS=3e3,_S=300;function po(t){let e=LS(),[o,n]=Np(!1),[r,a]=Np(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=ft(),{handleConnect:c,handleDerivationPath:u,handleNamespace:p,getState:d,resetState:h}=Gt(),f=i(k=>{p(t.wallet,k).then(S).catch(s)},"handleConfirmNamespaces"),m=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(k).then(S).catch(s)},"handleDerivationPathConfirm"),g=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),S=i((k,T)=>{let v=k.status==="connected",w=["disconnected","disconnected-unhandled"].includes(k.status);v?(t.onConnect?.(),T||(e.current=setTimeout(g,PS))):w&&g()},"afterConnected");return MS(()=>{if(t.wallet){C();let k=!1,T=!0;i(()=>{setTimeout(()=>{T=!1,k||n(!0)},_S)},"beforeConnecting")(),c(t.wallet,{disconnectIfConnected:!0}).then(w=>{["namespace","derivation-path"].includes(w.status)||(k=!0),S(w,T)}).catch(s)}},[t.wallet]),co.createElement(Z,{open:o,onClose:g,onExit:()=>{C(),l(),t.onClose&&t.onClose()},container:W()},Ap(d,t.wallet)&&co.createElement(co.Fragment,null,co.createElement(ka,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),co.createElement(BS,{direction:"vertical",size:32})),hn(d)&&co.createElement(fn,{onConfirm:f,value:d().namespace}),yn(d)&&co.createElement(gn,{onConfirm:m,value:d().derivationPath}))}i(po,"StatefulConnectModal");import{legacyFormatAddressWithNetwork as $S,legacyReadAccountAddress as Bp}from"@rango-dev/wallets-core/legacy";import{Events as wr,Provider as FS}from"@rango-dev/wallets-react";import{isEvmBlockchain as OS}from"rango-sdk";import br,{createContext as US,useEffect as Mp,useMemo as zS,useRef as Lp}from"react";import{useEffect as DS}from"react";function Wp(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Wp,"hashProviders");function wa(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=y(),a=n();return DS(()=>{o(),r()},[Wp(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(wa,"useWalletProviders");var xr=US({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function QS(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r,removeBalancesForWallet:a}=y(),s=y().blockchains(),{newWalletConnected:l,disconnectWallet:c,connectedWallets:u}=y(),p=y().config,d={walletConnectProjectId:p?.walletConnectProjectId,trezorManifest:p?.trezorManifest,tonConnect:p.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,experimentalWallet:t.config.features?.experimentalWallet},{providers:h}=wa(p.wallets,d),f=Lp(),m=Lp();Mp(()=>{n().catch(console.log)},[]),Mp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:p,dappConfig:t.config})},[t.config,r]);let g=s.filter(OS).map(T=>T.name),C=i((T,v,w,A,L)=>{if(v===wr.ACCOUNTS){let b=mr(L.supportedBlockchains),E=[],x=[];if(w?.forEach(I=>{let{network:B}=Bp(I);g.includes(B)?E.push(I):x.push(I)}),u.filter(I=>I.walletType===T).map(I=>$S(I.address,I.chain)).length>0){if(E.length>0){let I=na(T,E,g,b,L.isContractWallet);a(T,{chains:I.map(B=>B.chain)})}x.length>0&&a(T,{chains:x.map(I=>{let{network:B}=Bp(I);return B})})}if(w){let I=na(T,w,g,b,L.isContractWallet);I.length&&l(I)}else c(T),m.current?m.current(T):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")}if(v===wr.ACCOUNTS&&A.connected||v===wr.ACCOUNTS&&L.isHub){let b=`${T}-${A.network}-${w}`;f.current?f.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(v===wr.NETWORK&&A.network){let b=`${T}-${A.network}`;f.current?f.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(T,v,w,A,L)},"onUpdateState"),S=re.use.isActiveTab(),k=zS(()=>({onConnectWallet:T=>{f.current=T},onDisconnectWallet:T=>{m.current=T}}),[]);return br.createElement(xr.Provider,{value:k},br.createElement(FS,{allBlockChains:s,providers:h,onUpdateState:C,autoConnect:!!S,configs:{wallets:p.wallets,isExperimentalEnabled:Vc("experimentalWallet",p.features)}},t.children))}i(QS,"Main");function Er(t){let{config:e,...o}=t;return br.createElement(pp,{config:e},br.createElement(QS,{...o,config:e}))}i(Er,"WidgetWallets");import Xi from"react";import qS,{Fragment as HS}from"react";import{MemoryRouter as GS,useInRouterContext as VS}from"react-router";function Pp({children:t}){let o=VS()?HS:GS;return qS.createElement(o,null,t)}i(Pp,"AppRouter");import{I18nManager as IE}from"@rango-dev/ui";import Zl from"react";import _e from"react";import{useRoutes as mE}from"react-router-dom";var $={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 $o,useRef as _r}from"react";import Ke from"bignumber.js";import{create as XS}from"zustand";import{subscribeWithSelector as YS}from"zustand/middleware";import{i18n as gt}from"@lingui/core";import{RouteEventType as pB}from"@rango-dev/queue-manager-rango-preset";import Ue from"bignumber.js";import{PendingSwapNetworkStatus as Lr}from"rango-types";import{i18n as $e}from"@lingui/core";var R=i(()=>({genericServerError:$e.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:$e.t("Please reset your liquidity sources."),description:$e.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:$e.t("No Routes Found."),description:$e.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:$e.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:$e.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:$e.t("High Price Impact"),title:$e.t("Price impact is too high!"),description:$e.t("The price impact is significantly higher than the allowed amount."),confirmMessage:$e.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:$e.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:$e.t("USD Price Unknown"),title:$e.t("USD Price Unknown, Cannot calculate Price Impact."),description:$e.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:$e.t("Confirm USD Price Unknown")}}),"errorMessages");function _p(t){switch(t.type){case 0:return t.diagnosisMessage??R().noResultError.title;case 1:return R().genericServerError;default:return""}}i(_p,"getQuoteErrorMessage");import{i18n as Ir}from"@lingui/core";var uo=i(()=>({connectWallet:Ir.t("Connect Wallet"),swap:Ir.t("Swap"),swapAnyway:Ir.t("Swap anyway"),ethWarning:Ir.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ba(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(ba,"getFeeLabel");var xa=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Dp=100,$p=30,Fp=15,Op=60;var Up=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],zp=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as jS}from"@rango-dev/queue-manager-rango-preset";import YW from"bignumber.js";function qp(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(qp,"getRequiredBalanceOfWallet");function _t(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(_t,"getPriceImpactLevel");function Nr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=jS(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=nn(a?a.toBlockchain:n.fromBlockchain,e),c=nn(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),p=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:c,toToken:p,inputAmount:d}}i(Nr,"createRetryQuote");function Do(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Sn(o),s=ct(o);if(o&&a&&s){let u=Pt(a.toString(),s.toString());if(!!u&&jp(a,u)){let d=Br(o?.swaps,n),h=_t(u);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:u,totalFee:d,warningLevel:h}}}if(e&&Zp(e,o))return{type:4,usdValueChange:M(ct(o)?.minus(ct(e)??0).toString()??"0",null,2),percentageChange:M(Pt(ct(e)??"1",ct(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let l=Mr(o.swaps),c=r>Rc;if(Yp(t.userSlippage.toString(),l)){if(c&&parseFloat(l??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Xp(o,r),minRequiredSlippage:l};return null}i(Do,"generateQuoteWarnings");function Hp(t){return![4].includes(t.type)}i(Hp,"isQuoteWarningConfirmationRequired");function Pt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ea(t.toString(),e.toString());return n&&n<0?n:null}i(Pt,"getPriceImpact");var Gp=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"),Wr=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(p=>p.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),c=n.requestId.toLowerCase();return l.localeCompare(c)}),"sortQuotesBy"),Vp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),Kp=i(t=>{let e=i((o,n)=>{let r=xa.indexOf(o.value),a=xa.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function jp(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return Up.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ue(r)))}i(jp,"hasHighValueLoss");function Jp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(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(Jp,"hasLimitError");function Rp(t){let e=(t||[]).filter(l=>{let c=l.fromAmountMinValue?new Ue(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Ue(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?c?.gte(l.fromAmount)||u?.lte(l.fromAmount):c?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=gt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=gt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=gt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=gt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Rp,"getLimitErrorMessage");function eu(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:c}=t;return e!=="success"?{title:uo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:uo().swap,action:"confirm-swap",disabled:!0}:s?{title:uo().swapAnyway,action:"confirm-warning",disabled:!1}:c?{title:uo().ethWarning,action:"confirm-warning",disabled:!1}:{title:uo().swap,action:"confirm-swap",disabled:!1}:{title:uo().connectWallet,action:"connect-wallet",disabled:!1}}i(eu,"getSwapButtonState");function Ia(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ue))&&e&&e!=="0"&&n!==0)}i(Ia,"canComputePriceImpact");function Aa(t,e){let o=ue;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ue(r.amount).multipliedBy(a||0))}return o}i(Aa,"getUsdFeeOfStep");function Br(t,e){return t.reduce((o,n)=>o.plus(Aa(n,e)),ue)}i(Br,"getTotalFeeInUsd");function Na(t){let e=ue;return e=e.plus(new Ue(t.amount).multipliedBy(t.price||0)),e}i(Na,"getUsdFee");function tu(t){return t.reduce((e,o)=>e.plus(Na(o)),ue)}i(tu,"getTotalFeesInUsd");function ou(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(ou,"getFeesGroup");function nu(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(nu,"checkSlippageErrors");function Xp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(Xp,"checkSlippageWarnings");function Mr(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(Mr,"getMinRequiredSlippage");function Yp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Yp,"hasProperSlippage");function ru(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:c,slippage:u,affiliateRef:p,affiliatePercent:d,affiliateWallets:h,destination:f}=t,m=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),g=[];return r?.forEach(S=>{g.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:p??void 0,affiliatePercent:d??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:g,selectedWallets:m??{},slippage:u.toString(),...f&&{destination:f},...c&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!c&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(ru,"createQuoteRequestBody");function iu(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(iu,"getWalletsForNewSwap");function Sn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ue(e).multipliedBy(o)}i(Sn,"getUsdInputFrom");function ct(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new Ue(e).multipliedBy(o)}i(ct,"getUsdOutputFrom");function Ea(t,e){return new Ue(e).div(new Ue(t)).minus(1).multipliedBy(Dp).toNumber()}i(Ea,"getPercentageChange");function Zp(t,e){let o=Sn(t),n=ct(t),r=ct(e);if(!o||!n||!r)return!1;let a=Ea(n.toString(),r.toString());return zp.some(({threshold:s,minInput:l})=>a<=s&&o.isGreaterThanOrEqualTo(l))}i(Zp,"isOutputAmountChangedExcessively");function au(t,e,o){let n=t.validationStatus,r=io({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>qp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,c=M(new Ue(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Ue(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),p="";return s.reason==="FEE"&&(p=gt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(p=gt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(p=gt.t(" for input and network fee")),gt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:p,currentAmount:c,blockchain:st(s.asset.blockchain,o)}})})}i(au,"generateBalanceWarnings");function Cn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Lr.NetworkChanged}i(Cn,"isNetworkStatusInWarningState");function su(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Cn(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Lr.WaitingForConnectingWallet:n=n||gt.t("Waiting for connecting wallet");break;case Lr.WaitingForQueue:n=n||gt.t("Waiting for other running tasks to be finished");break;case Lr.WaitingForNetworkChange:n=n||gt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(su,"getSwapMessages");function lu(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(lu,"getLastConvertedTokenInFailedSwap");function cu(t){return t.status==="failed"}i(cu,"shouldRetrySwap");function pu(t,e,o,n,r,a){if(!n||t)return!0;let s=io({filter:"all",quote:n}),l=io({filter:"required",quote:n}),c=s.every(d=>r.some(h=>h.chain===d)),u=l.every(d=>r.some(h=>h.chain===d)),p=o&&a?Eo(a,o):!1;return!e&&!c||e&&!o||e&&!!o&&(!p||!u)}i(pu,"isConfirmSwapDisabled");function uu(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(uu,"isTokensIdentical");var Pr=i((t,e)=>t?.usdPrice?new Ke(e||ue).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Bo(XS()(YS(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Ke(0),outputUsdValue:new Ke(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=ue,a=o.inputUsdValue;return sn(o.inputAmount)?(e&&(n=e?.outputAmount?new Ke(e?.outputAmount):null,a=Sn(e)??ue,r=ct(e)??ue),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Ke(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Ke(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Ke(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:Pr(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 Ke(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:null,outputUsdValue:new Ke(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Pr(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Pr(n??null,s),outputUsdValue:new Ke(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?Pr(e.toToken,e.outputAmount?.toString()||""):new Ke(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Ke(0),inputUsdValue:new Ke(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Ke(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})})))),du=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&he.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&he.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function mu(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:c,toBlockchain:u}=O(),p=y().config,d=y().fetchStatus,h=y().blockchains(),f=y().tokens(),{findToken:m}=y(),{setAffiliateRef:g,setAffiliatePercent:C,setAffiliateWallets:S}=y(),k=p?.from?.tokens,T=p?.from?.blockchains,v=p?.to?.tokens,w=p?.to?.blockchains,A=_r(void 0),L=_r(void 0),b=_r(void 0),E=_r(void 0);$o(()=>{typeof p.amount<"u"&&t(p.amount.toString())},[p?.amount]),$o(()=>{if(d==="success"){r();let x=h.find(B=>B.name===p?.from?.blockchain),N=p?.from?.token,I=N&&m(N);(x||!x&&b.current)&&n(x??null),I?a({token:I,meta:{blockchains:h,tokens:f}}):!I&&A.current&&a({token:null}),b.current=p?.from?.blockchain,A.current=p?.from?.token}},[p?.from?.token?.symbol,p?.from?.token?.address,p?.from?.token?.blockchain,p?.from?.blockchain,d]),$o(()=>{aa(s,k)&&a({token:null}),sa(c,T)&&n(null)},[k,T]),$o(()=>{aa(l,v)&&a({token:null}),sa(u,w)&&o(null)},[v,w]),$o(()=>{if(d==="success"){r();let x=h.find(B=>B.name===p?.to?.blockchain),N=p?.to?.token,I=N&&m(N);(x||!x&&E.current)&&o(x??null),I?e({token:I,meta:{blockchains:h,tokens:f}}):!I&&L.current&&e({token:null}),E.current=p?.to?.blockchain,L.current=p?.to?.token}},[p?.to?.token?.symbol,p?.to?.token?.address,p?.to?.token?.blockchain,p?.to?.blockchain,d]),$o(()=>{g(p?.affiliate?.ref??null),C(p?.affiliate?.percent??null),S(p?.affiliate?.wallets??null)},[p?.affiliate?.ref,p?.affiliate?.percent,p?.affiliate?.wallets])}i(mu,"useSyncStoresWithConfig");import{useEffect as Ma,useRef as ZS}from"react";import{useInRouterContext as JS,useLocation as RS,useSearchParams as eC}from"react-router-dom";function Wa(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Wa,"convertTokenSearchParamToAsset");function Ba(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ba,"tokenToSearchParam");function Pa(){let t=RS(),[e,o]=eC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:c,setToBlockchain:u,setFromToken:p,setToToken:d,setInputAmount:h}=O(),f=y().fetchStatus,m=y().blockchains(),g=y().tokens(),C=JS(),{updateIframe:S,updateCampaignMode:k}=y(),T=y().isInCampaignMode(),v=ZS(),{findToken:w}=y(),A=i(()=>{let b={};for(let[X,se]of e.entries())X.startsWith("utm_")&&(b[X]=se);let E=e.get("fromAmount"),x=e.get("fromBlockchain"),N=e.get("fromToken"),I=e.get("toBlockchain"),B=e.get("toToken"),j=e.get("autoConnect"),te=e.get("clientUrl"),J=e.get("liquiditySources"),P=e.get("blockchain");return{fromAmount:E,fromBlockchain:x,fromToken:N,toBlockchain:I,toToken:B,autoConnect:j,clientUrl:te,liquiditySources:J,utmQueryParams:b,blockchain:P}},"getUrlSearchParams"),L=i(b=>{for(let E in b)b[E]||delete b[E];o(b,{replace:!0})},"updateUrlSearchParams");Ma(()=>{let{autoConnect:b,clientUrl:E,utmQueryParams:x,blockchain:N}=A();C&&f==="success"&&L({fromBlockchain:n?.name,fromToken:Ba(a),toBlockchain:r?.name,toToken:Ba(s),fromAmount:l,autoConnect:b??void 0,clientUrl:E??void 0,blockchain:N??void 0,liquiditySources:T?v.current:void 0,...x})},[t.pathname,l,n,a,r,s,T]),Ma(()=>{if(!C)return;let b=A();if(!v.current&&b.liquiditySources&&(v.current=b.liquiditySources),b.fromAmount&&h(b.fromAmount),f==="success"){let E=m.find(B=>B.name===b.fromBlockchain),x=b.fromToken&&E?w(Wa(b.fromToken,E)):void 0,N=m.find(B=>B.name===b.toBlockchain),I=b.toToken&&N?w(Wa(b.toToken,N)):void 0;E&&(c(E),x&&p({token:x,meta:{blockchains:m,tokens:g}})),N&&(u(N),I&&d({token:I,meta:{blockchains:m,tokens:g}}))}},[f]),Ma(()=>{let{clientUrl:b,liquiditySources:E}=A();S("clientUrl",b||void 0),k("liquiditySources",E?.split(",")??void 0)},[])}i(Pa,"useSyncUrlAndStore");import{i18n as It}from"@lingui/core";import{Alert as fk,Button as Ku,darkTheme as gk,Divider as vn,DoneIcon as hk,MessageBox as yk,styled as Sk,TextField as Ck,Typography as kk}from"@rango-dev/ui";import ye,{useEffect as Tk,useState as Qr}from"react";import{useNavigate as vk,useSearchParams as wk}from"react-router-dom";import{ChevronRightIcon as tC,Divider as Su,Image as oC,Typography as Cu}from"@rango-dev/ui";import ht from"react";import{darkTheme as fu,styled as _a}from"@rango-dev/ui";var gu=_a("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${fu} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${fu} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),hu=_a("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),yu=_a("div",{display:"flex"});function Da(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return ht.createElement(hu,null,ht.createElement(Cu,{size:"large",variant:"label"},n),ht.createElement(Su,{size:10}),ht.createElement(gu,{onClick:s?void 0:e,disabled:s},ht.createElement(yu,null,r&&ht.createElement(ht.Fragment,null,ht.createElement(oC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),ht.createElement(Su,{size:4,direction:"horizontal"})),ht.createElement(Cu,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),ht.createElement(tC,{size:12,color:"black"})))}i(Da,"BlockchainSelectorButton");import{i18n as Fa}from"@lingui/core";import{Button as nC,Divider as kn,ExternalLinkIcon as rC,Image as iC,Typography as Oo}from"@rango-dev/ui";import Ne from"react";function ku(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(ku,"generateExplorerLink");import{darkTheme as Fo,styled as Tu}from"@rango-dev/ui";var $a=Tu("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Fo} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Fo} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),vu=Tu("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Fo} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"}}});function Oa(t){let{open:e,onClose:o,token:n,onSubmitClick:r,blockchain:a}=t,s=ku(n.address,a);return Ne.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},Ne.createElement(vu,null,Ne.createElement(iC,{src:n.image,size:45,type:"circular"}),Ne.createElement(Oo,{variant:"title",size:"medium"},n.name),Ne.createElement(Oo,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),Ne.createElement(kn,{size:4}),Ne.createElement(Oo,{variant:"body",size:"medium"},s?Ne.createElement($a,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,Ne.createElement(rC,{size:12,color:"gray"})):Ne.createElement($a,null,n.address)),Ne.createElement(kn,{size:4}),n.coinSource&&Ne.createElement(Oo,{className:"_coin-source",variant:"body",size:"xsmall"},Fa.t("via")," ",Ne.createElement(Oo,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Ne.createElement(kn,{size:"32"}),Ne.createElement(Oo,{size:"medium",variant:"body",className:"_custom-token-description"},Fa.t("This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."))),Ne.createElement(kn,{size:40}),Ne.createElement(kn,{size:10}),Ne.createElement(nC,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:r},Fa.t("Import")))}i(Oa,"CustomTokenModal");import{useManager as lk}from"@rango-dev/queue-manager-react";import{BottomLogo as ck,Divider as Qu,Header as pk}from"@rango-dev/ui";import Be,{useEffect as ss,useRef as qu,useState as uk}from"react";import{useRef as aC}from"react";function Dr(){return window.self!==window.top}i(Dr,"isAppLoadedIntoIframe");function Ua(){let t=aC(null),{iframe:e}=y(),o=Dr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let c of l)n({type:"widget_height",data:{height:c.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ua,"useIframe");import{useNavigate as sC}from"react-router-dom";function je(){let t=sC();return()=>t(-1)}i(je,"useNavigateBack");import{createTheme as Ka,darkTheme as TC,lightTheme as vC}from"@rango-dev/ui";import{useEffect as wC,useState as bC}from"react";import{theme as CC,darkColors as kC}from"@rango-dev/ui";import Ga from"react";function lC(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(lC,"expandShortHexColor");function cC(t){return/[0-9]+$/.test(t)}i(cC,"isOverridingColor");function pC(t,e){return t.padStart(e,"0")}i(pC,"pad");function za(t){let e=Math.min(Math.max(Math.round(t),0),255);return pC(e.toString(16),2)}i(za,"intToHex");function uC(t){return`#${za(t.red)}${za(t.green)}${za(t.blue)}`}i(uC,"rgbToHex");function dC(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(dC,"hexToRGB");function mC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(mC,"generateShade");function fC(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(fC,"generateTint");function gC(t){return wu(t,mC)}i(gC,"calculateShades");function hC(t){return wu(t,fC)}i(hC,"calculateTints");function wu(t,e){let o=dC(t),n=[];for(let r=1;r<9;r++)n.push(uC(e(o,r)));return n}i(wu,"calculateColors");function Qa(t,e,o){let a=hC(t).reverse().concat(t),s=gC(t),l=a.concat(s),c={},u=l.length;for(let p=0;p<u;p++){let d=100+(o?u-1-p:p)*50;c[`${e}${d}`]=l[p]}return c}i(Qa,"createTintsAndShades");function qa(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)&&!cC(r)){let c=lC(a);Object.assign(n,Qa(c,r,s))}}return{...n,...e}}i(qa,"expandToGenerateThemeColors");var bu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),yC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=bu(o%52)+e;return bu(o%52)+e},"toAlphabeticName"),SC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ha=i(t=>yC(SC(5381,JSON.stringify(t))>>>0),"toHash");function Va(t){let e=CC.colors,o={...e,...kC},n,r;if(t?.light){let s={colors:qa(e,t.light)};n={id:`${ia}-light-${Ha(s)}`,tokens:s}}if(t?.dark){let s={colors:qa(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ia}-dark-${Ha(s)}`,tokens:s}}return{light:n,dark:r}}i(Va,"customizedThemeTokens");function xu(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ga.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ga.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Ga.cloneElement(e,{key:l}))}}),o}i(xu,"joinList");function Eu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Eu,"doesWindowPreferDarkColorScheme");function Uo(t){let{colors:e,fontFamily:o=Cc,borderRadius:n=Qc,secondaryBorderRadius:r=qc}=t,[a,s]=bC(Eu()?"dark":"light"),{theme:l}=y(),{dark:c,light:u}=Va(e),p=Ka({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[p.className,vC.className],h=[p.className,TC.className];if(u){let m=Ka(u.id,u.tokens);d.push(m.className)}if(c){let m=Ka(c.id,c.tokens);h.push(m.className)}return wC(()=>{let m=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return Eu()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",m),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",m)}},[]),{activeTheme:i(()=>{let m=d.join(" "),g=h.join(" ");return l==="auto"?a==="dark"?g:m:l==="dark"?g:m},"getActiveTheme"),mode:l==="auto"?a:l}}i(Uo,"useTheme");var pt=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 Iu}from"@lingui/core";import{Alert as xC,Button as EC}from"@rango-dev/ui";import Au from"react";function ja(t){return Au.createElement(xC,{action:Au.createElement(EC,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Iu.t("Activate this tab")),type:"warning",variant:"alarm",title:Iu.t("Another tab is open and handles transactions.")})}i(ja,"ActivateTabAlert");import{i18n as Xa}from"@lingui/core";import{Button as IC,Divider as AC,MessageBox as NC}from"@rango-dev/ui";import $r from"react";function Ya(t){let{open:e,onClose:o,onConfirm:n}=t;return $r.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},$r.createElement(NC,{title:Xa.t("Activate current tab"),type:"warning",description:Xa.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.")},$r.createElement(AC,{size:20}),$r.createElement(IC,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Xa.t("Confirm"))))}i(Ya,"ActivateTabModal");import{ChevronLeftIcon as WC}from"@rango-dev/ui";import Nu from"react";function Za(t){return Nu.createElement(Et,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Nu.createElement(WC,{color:"black",size:16}))}i(Za,"BackButton");import{i18n as BC}from"@lingui/core";import{Button as MC,Typography as LC}from"@rango-dev/ui";import Ja from"react";function Ra(t){return Ja.createElement(Vt,null,Ja.createElement(MC,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},Ja.createElement(LC,{variant:"label",size:"medium",color:"error500"},BC.t("Cancel"))))}i(Ra,"CancelButton");import{i18n as PC}from"@lingui/core";import{Image as _C,Tooltip as DC,WalletIcon as $C}from"@rango-dev/ui";import mo from"react";function es(t){let{list:e}=ft(),o=e.filter(r=>r.state==="connected"),n=o.length?mo.createElement("div",{className:Sp()},o.map(r=>mo.createElement(Sr,{key:r.title},mo.createElement(_C,{src:r.image,size:14})))):PC.t("Connect Wallet");return mo.createElement(DC,{container:t.container,side:"bottom",content:n},mo.createElement(Et,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&mo.createElement(fp,null),mo.createElement($C,{size:18,color:"black"})))}i(es,"WalletButton");import{i18n as Or}from"@lingui/core";import{NotificationsIcon as RC,Popover as ek,SettingsIcon as tk,Tooltip as Ur,TransactionIcon as ok}from"@rango-dev/ui";import We from"react";import{Notifications as zC}from"@rango-dev/ui";import QC from"react";import{useNavigate as qC}from"react-router-dom";import{create as FC}from"zustand";import{persist as OC,subscribeWithSelector as UC}from"zustand/middleware";var be=Bo(FC()(OC(UC((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(c=>c.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(c=>c.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function ts(){let t=qC(),{getNotifications:e,clearNotifications:o}=be(),n=e(),r=y().blockchains(),{findToken:a}=y();return QC.createElement(zC,{list:n,getBlockchainImage:l=>pc(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${$.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(ts,"NotificationContent");import{useManager as HC}from"@rango-dev/queue-manager-react";import{InProgressIcon as GC}from"@rango-dev/ui";import Wu from"react";var VC=i(()=>{let{manager:t}=HC();return pt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Wu.createElement(yp,null,Wu.createElement(GC,{color:"info",size:6})):null},"InProgressTransactionBadge"),Bu=VC;import{EventSeverity as KC}from"@rango-dev/queue-manager-rango-preset";import{Typography as jC}from"@rango-dev/ui";import Mu from"react";function Lu(){let{getNotifications:t}=be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===KC.WARNING);return o?Mu.createElement(gp,{isSever:n},Mu.createElement(jC,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Lu,"NotificationsBadge");import{RefreshProgressButton as XC}from"@rango-dev/ui";import os,{useEffect as YC,useState as Pu}from"react";var ZC=1e3,_u=60,JC=100;function Fr({onClick:t}){let[e,o]=Pu(0),[n,r]=Pu(!1),a=i(c=>{document.hidden&&c&&s(c)},"handleVisibilityChange");YC(()=>{let c;return t?c=window.setInterval(()=>{o(u=>u+1),e===_u&&l()},ZC):s(c),document.addEventListener("visibilitychange",()=>a(c)),()=>{document.removeEventListener("visibilitychange",()=>a(c)),c&&clearInterval(c)}},[e,t]);let s=i(c=>{c&&clearInterval(c),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return os.createElement(Et,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},os.createElement(hp,{onTransitionEnd:()=>r(!1),isRefetched:n},os.createElement(XC,{size:22,color:t?"black":"gray",progress:e/_u*JC})))}i(Fr,"RefreshButton");function fo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ve("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Ur,{container:a||W(),side:"top",content:Or.t("Refresh")},We.createElement(Fr,{onClick:e})),!l&&We.createElement(ek,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:We.createElement(ts,null)},We.createElement("div",null,We.createElement(Ur,{container:W(),side:"top",content:Or.t("Notifications")},We.createElement(Et,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},We.createElement(RC,{size:18,color:"black"}),We.createElement(Lu,null))))),!r.includes("settings")&&We.createElement(Ur,{container:W(),side:"top",content:Or.t("Settings")},We.createElement(Et,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},We.createElement(tk,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Ur,{container:W(),side:"top",content:Or.t("History")},We.createElement(Et,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},We.createElement(ok,{size:18,color:"black"}),We.createElement(Bu,null))))}i(fo,"HeaderButtons");import{i18n as ns}from"@lingui/core";import{Divider as $u,MessageBox as ik,RefreshIcon as ak}from"@rango-dev/ui";import zo from"react";import{Button as nk,styled as rk}from"@rango-dev/ui";var Du=rk(nk,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function rs(t){let{open:e,onClose:o}=t;return zo.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},zo.createElement(ik,{title:ns.t("Something went wrong"),type:"error",description:ns.t("Something went wrong. Please refresh the app.")},zo.createElement($u,{size:30}),zo.createElement(Du,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},zo.createElement(ak,{size:20,color:"primary"}),zo.createElement($u,{size:4,direction:"horizontal"}),ns.t("Refresh"))))}i(rs,"RefreshModal");function is(t){let e=t.target;if(e){let o=e.scrollTop,n=W();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(is,"onScrollContentAttachStatusToContainer");import{css as sk,styled as as}from"@rango-dev/ui";var Fu="700px",zr=sk({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Ou=as("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Fu},fixed:{height:Fu}}}}),Uu=as("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),zu=as("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"}}});function oe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ua(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:c}=y(),[u,p]=uk(!1),{config:{features:d,theme:h}}=y(),{watermark:f}=re(),m=f==="FULL",{activeTheme:g}=Uo(h||{}),C=Ve("connectWalletButton",d),{isActiveTab:S,tabManagerInitiated:k,showActivateTabModal:T,setShowActivateTabModal:v,activateCurrentTab:w}=re(),A=je(),{manager:L}=lk(),E=pt(L).map(({swap:te})=>te).some(te=>te.status==="running"),x=i(()=>w(ao.forceClaim,E),"onActivateTab"),N=i(()=>{r.onWallet?.()},"onConnectWallet"),I=typeof r.hasBackButton>"u"||r.hasBackButton,B=qu(null),j=qu(null);return ss(()=>(Dr()&&j.current&&e(j.current),()=>{o()}),[]),ss(()=>(B.current?.addEventListener("scroll",is),()=>{B.current?.removeEventListener("scroll",is)}),[]),ss(()=>{p(l==="failed")},[l]),Be.createElement(Ou,{height:s,id:De.SWAP_BOX_ID,className:`${g()} ${zr()}`,ref:j},Be.createElement(pk,{prefix:I?Be.createElement(Za,{onClick:()=>{A(),r.onBack&&r.onBack()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!C&&Be.createElement(es,{container:W(),onClick:N,isConnected:!!c?.length}),r.onCancel&&Be.createElement(Ra,{onClick:r.onCancel}))}),Be.createElement(Uu,{ref:B},n),Be.createElement(Ya,{open:T,onClose:()=>v(!1),onConfirm:x}),Be.createElement(zu,null,Be.createElement("div",{className:"footer__content"},k&&!S&&Be.createElement("div",{className:"footer__alert"},Be.createElement(ja,{onActivateTab:x}),Be.createElement(Qu,{size:10})),a),Be.createElement(Qu,{size:12}),Be.createElement("div",{className:`footer__logo ${m?"logo__show":"logo__hidden"}`},Be.createElement(ck,null))),Be.createElement(rs,{open:u,onClose:()=>p(!1)}))}i(oe,"Layout");import{styled as dk}from"@rango-dev/ui";var Hu="$20 $20 $10 $20",Tn=dk("div",{padding:Hu,overflowY:"auto",flexGrow:1});import{styled as mk}from"@rango-dev/ui";var ie=mk("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 Qo}from"@lingui/core";import{useState as Gu}from"react";function Vu(){let[t,e]=Gu(!1),[o,n]=Gu(void 0),{findToken:r}=y(),a=y().customTokens();function s(c,u){switch(c){case"duplicated":return{title:Qo.t("Duplicate Token"),message:Qo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:Qo.t("Token Already Exists"),message:Qo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:Qo.t("Token Not Found"),message:Qo.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:u}})}}}return i(s,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:c,tokenAddress:u})=>{e(!0);try{if(a.some(m=>m.address?.toLowerCase()===u.toLowerCase())){let m=s("duplicated");n(m);return}let d=await xt().getCustomToken({blockchain:c,address:u});if(!d||!d.token||d.error){let m=s("not-found",c);n(m);return}let h=d.token;if(r({blockchain:h.blockchain,address:h.address,symbol:h.symbol})){let m=s("token-exist");n(m);return}return h}catch(p){if(p?.code==="ERR_BAD_REQUEST"){let d=s("not-found",c);n(d);return}throw n(void 0),new Error(p.message)}finally{e(!1)}},"fetchCustomToken"),loading:t,error:o}}i(Vu,"useFetchCustomToken");var bk=Sk("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${gk} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),xk=1e3;function ju(){let t=vk(),[e]=wk(),o=je(),{setCustomToken:n}=y(),r=y().blockchains(),a=e.get("blockchain")||"",s=nn(a,r),[l,c]=Qr(""),[u,p]=Qr(!1),[d,h]=Qr(),{fetchCustomToken:f,loading:m,error:g}=Vu(),[C,S]=Qr(""),k=!!s&&Eo(s,l),T=!s||!l||!k,v=i(async()=>{if(s)try{let L=await f({blockchain:a,tokenAddress:l});S(""),L&&h(L)}catch(L){L.message==="Failed to fetch"&&(S(It.t("Network Error")),p(!0))}},"getCustomToken"),w=i(()=>{g&&c(""),p(!1)},"closeErrorModal"),A=i(async()=>{C&&setTimeout(async()=>{await v()},xk),w()},"handleErrorModalButtonClick");return Tk(()=>{g&&p(!0)},[g]),ye.createElement(oe,{header:{title:It.t("Add Custom Token")}},ye.createElement(ie,null,ye.createElement(bk,null,ye.createElement("div",null,ye.createElement(Da,{onClick:()=>t($.blockchains,{replace:!0}),hasLogo:!!s?.logo,value:s?{name:s.displayName,logo:s.logo}:void 0,title:It.t("Select chain"),placeholder:It.t("Select chain")}),ye.createElement(vn,{size:"24"}),ye.createElement(kk,{size:"large",variant:"label"},It.t("Enter Address")),ye.createElement(vn,{size:10}),ye.createElement(Ck,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:It.t("Enter token address"),size:"large",value:l,suffix:!!l&&k&&ye.createElement(hk,{color:"success",size:12}),onChange:L=>c(L.target.value)}),!k&&!!l&&ye.createElement(ye.Fragment,null,ye.createElement(vn,{size:4}),ye.createElement(fk,{type:"error",variant:"alarm",title:"Invalid Address"}))),ye.createElement(Ku,{id:"widget-add-custom-token-import-btn",disabled:T,type:"primary",variant:"contained",loading:m,size:"large",onClick:v},It.t("Import"))),ye.createElement(Z,{open:u,dismissible:!0,onClose:w,container:W()},ye.createElement(yk,{title:g?.title||C,type:"error",description:g?.message||It.t("Failed Network, Please retry.")},ye.createElement(vn,{size:40}),ye.createElement(vn,{size:10}),ye.createElement(Ku,{id:`widget-add-custom-token-${C?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:A},C?It.t("Retry"):It.t("Add another custom token")))),s&&d&&ye.createElement(Oa,{blockchain:s,token:d,onSubmitClick:()=>{d&&(n(d),h(void 0),o())},onClose:()=>h(void 0),open:!!s&&!!d})))}i(ju,"AddCustomTokenPage");import{i18n as $s}from"@lingui/core";import{useManager as lv}from"@rango-dev/queue-manager-react";import{Alert as cv,Button as pv,css as Os,Divider as Fs,IconButton as Qm,styled as uv,Typography as dv,WalletIcon as mv}from"@rango-dev/ui";import Le,{useEffect as hi,useLayoutEffect as fv,useRef as gv,useState as _n}from"react";import{useNavigate as hv}from"react-router-dom";import{i18n as go}from"@lingui/core";import{Alert as Yk,BalanceErrors as Zk,Button as vd,ChevronLeftIcon as Jk,Divider as gs,MessageBox as Rk,Typography as hs}from"@rango-dev/ui";import ee,{useCallback as eT,useEffect as wd,useMemo as tT,useState as Go}from"react";import{useNavigate as oT}from"react-router-dom";import{i18n as us}from"@lingui/core";import{Alert as Wk,ChevronDownIcon as Bk,CloseIcon as Mk,Divider as td,IconButton as od,PasteIcon as Lk,Typography as Pk,WalletIcon as _k}from"@rango-dev/ui";import Me,{useEffect as Dk,useRef as $k}from"react";import Vr,{useRef as Ak}from"react";import*as qo from"@radix-ui/react-collapsible";import{keyframes as Xu,styled as qr}from"@rango-dev/ui";var ls=300,Ek=Xu({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ik=Xu({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Yu=qr(qo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),cs=qr(qo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Hr=qr(qo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Ek} ${ls}ms ease-out`},false:{animation:`${Ik} ${ls}ms ease-out`}}}}),Gr=qr("div",{transition:`all ${ls}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Kr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,c=Ak(null);return Vr.createElement(Yu,{ref:c,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Vr.createElement(cs,{className:"collapsible_trigger",onClick:a},s),Vr.createElement(Hr,{className:"collapsible_content",open:e},r),l==="bottom"&&Vr.createElement(cs,{className:"collapsible_trigger",onClick:a},s))}i(Kr,"CustomCollapsible");import{darkTheme as Zu,styled as ps,TextField as Nk}from"@rango-dev/ui";var Ju=ps("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Ru=ps(Nk,{backgroundColor:"$neutral100",padding:"$15"}),ed=ps("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Zu} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Zu} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function nd(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=y(),l=y().blockchains(),c=rr(e.name,l),u=$k(null),p=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!Eo(e,r),m=i(()=>{a("")},"handleClear"),g=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let k=await navigator.clipboard.readText();a(k),u?.current?.focus()}},"handlePaste"),C=i(()=>r?Me.createElement(od,{id:"widget-custom-destination-close-icon-btn",onClick:m,variant:"ghost"},Me.createElement(Mk,{size:12,color:"gray"})):d?null:Me.createElement(od,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Me.createElement(Lk,{size:16})),"renderSuffix");return Dk(()=>{!!p&&r===null&&(a(p),o(!0))},[p]),Me.createElement(Ju,null,Me.createElement(Kr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Me.createElement(ed,null,Me.createElement("div",{className:"button__content"},Me.createElement(_k,{size:18,color:"info"}),Me.createElement(td,{size:4,direction:"horizontal"}),Me.createElement(Pk,{variant:"label",size:"medium",color:n?"$neutral600":void 0},us.t("Send to a different address"))),Me.createElement(Gr,{orientation:n?"up":"down"},Me.createElement(Bk,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Me.createElement(Ru,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:us.t("Enter {blockchainName} address",{blockchainName:c}),value:r||"",suffix:C(),onChange:S=>{let k=S.target.value;a(k)}})),f&&Me.createElement(Me.Fragment,null,Me.createElement(td,{size:4}),Me.createElement(Wk,{variant:"alarm",type:"error",title:us.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(nd,"CustomDestination");import{css as Fk,darkTheme as ds,IconButton as Ok,styled as Dt}from"@rango-dev/ui";var rd=Dt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),id=Dt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Uk=Dt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ds} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ds} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ds} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),ad=Dt(Uk,{alignSelf:"stretch",minHeight:"93px"}),sd=Dt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),ld=Dt(Ok,{position:"absolute",left:"$20"}),cd=Dt("div",{paddingTop:"$20"}),pd=Fk({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ud=Dt("div",{display:"flex"}),dd=Dt("div",{overflow:"visible",width:"100%"});import{i18n as Sd}from"@lingui/core";import{warn as Gk}from"@rango-dev/logging-core";import{Divider as Vk,SelectableWallet as Kk,Typography as Cd,WalletState as kd}from"@rango-dev/ui";import Xe,{useEffect as Td,useState as bn}from"react";import{Image as qk,MessageBox as Hk}from"@rango-dev/ui";import wn from"react";import{keyframes as zk,styled as ms}from"@rango-dev/ui";var md=ms("div",{position:"relative"}),Qk=zk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fd=ms("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Qk} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),gd=ms("div",{"& img":{borderRadius:"50%"}});import{i18n as Ho}from"@lingui/core";function hd(t,e){switch(t){case"in-progress":return{type:"loading",title:Ho.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Ho.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Ho.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Ho.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Ho.t("Request Rejected"),description:Ho.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(hd,"generateMessageByStatus");function yd(t){let{status:e,displayName:o,image:n}=t,r=hd(e,o),a=e=="in-progress";return wn.createElement(Hk,{type:r.type,title:r.title,description:r.description,icon:a?wn.createElement(md,null,wn.createElement(gd,null,wn.createElement(qk,{src:n,size:45})),wn.createElement(fd,null)):void 0})}i(yd,"ExperimentalChainStatus");var jk=7,Xk=3e3;function fs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=re.use.isActiveTab(),{blockchains:l,connectedWallets:c}=y(),[u,p]=bn(),[d,h]=bn(null),[f,m]=bn(!1),[g,C]=bn(null),{suggestAndConnect:S}=jr(),{handleDisconnect:k}=Gt(),{list:T}=ft({chain:e}),[v,w]=bn(T),A=T.length,L=r&&A-r>0,b=i(async x=>{m(!1),C("in-progress");try{await S(x.walletType,x.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");Td(()=>{w(x=>{let N=T.findIndex(I=>o(I.type,e));return L&&N>1?[T[N]].concat(T.filter((I,B)=>B!==N)):x.map(I=>T.find(B=>B.type===I.type)??I)})},[JSON.stringify(T)]);let E=document.getElementById(De.SWAP_BOX_ID);return Td(()=>{let x=null;return(g==="completed"||g==="rejected")&&(x=setTimeout(()=>C(null),Xk)),()=>{x&&clearTimeout(x)}},[g]),Xe.createElement(Xe.Fragment,null,v.slice(0,r).map(x=>{let N=Dc({connectedWallets:c,walletType:x.type,chain:e}),I=N?gr(N,jk):"",B=fr(l(),e),j=!c.find(se=>se.walletType===x.type&&se.chain===e),te=B&&j&&x.state===kd.CONNECTED,J=te?Sd.t({id:"Add {chain} chain",values:{chain:e}}):I,P=i(async()=>{let se=x.state===kd.DISCONNECTED,z=(x.isHub||!!x.needsNamespace)&&!I;se?p(x):z?(await k(x.type),p(x)):te?(h({walletType:x.type,chain:e,address:N??""}),m(!0)):n({walletType:x.type,chain:e,address:N??""})},"onSelectableWalletClick"),X=d?.chain?rr(d.chain,l()):void 0;return Xe.createElement(Xe.Fragment,{key:`${x.title}_${X}`},!!d&&Xe.createElement(Z,{open:!!d&&f,container:E,onClose:()=>{h(null)}},Xe.createElement(va,{displayName:X,onConfirm:()=>{b(d)}})),g&&Xe.createElement(Z,{open:!!g,onClose:C.bind(null,null),container:E},Xe.createElement(yd,{status:g,displayName:X,image:x.image}),Xe.createElement(Vk,{direction:"vertical",size:32})),Xe.createElement(Kk,{key:x.type,description:J,onClick:P,selected:o(x.type,e),disabled:!s,...x}))}),Xe.createElement(po,{wallet:u,onClose:()=>{p(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):Gk(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),L&&Xe.createElement(ad,{selected:!1,onClick:a},Xe.createElement(Cd,{variant:"label",size:"medium"},Sd.t("Show more wallets"),Xe.createElement(Cd,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(r??0)))))}i(fs,"WalletList");var nT=2;function bd(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=oT(),l=y().blockchains(),{selectedQuote:c,setSelectedWallets:u,quoteWalletsConfirmed:p,setQuoteWalletConfirmed:d,customDestination:h,setCustomDestination:f}=O(),{config:m,connectedWallets:g,setWalletsAsSelected:C}=y(),[S,k]=Go(""),[T,v]=Go([]),[w,A]=Go(""),[L,b]=Go(!!h),E=tT(()=>io({filter:"all",quote:c}),[c]),x=io({filter:"required",quote:c}),N=l.find(_=>_.name===c?.swaps[c?.swaps.length-1].to.blockchain),I=i(_=>x.includes(_),"isWalletRequiredFor"),B=eT(()=>g.filter(_=>_.selected&&E.includes(_.chain)),[g,E]),[j,te]=Go(B()),[J,P]=Go([]),X=i((_,H)=>P(V=>V.concat({blockchain:_,walletType:H})),"addNextSelectedWallets"),se=T.length>0,z=i((_,H)=>!!j.find(V=>V.walletType===_&&V.chain===H&&V.selected&&(I(H)||!I(H)&&!h)),"isSelected"),me=i((_,H,V)=>{let fe=!1;return _.map(ne=>{if(ne.chain===H){let ge=ne.selected;return!fe&&V?(fe=!0,ge=!0):V||(ge=!1),{...ne,selected:ge}}return ne})},"updateSelectableWallets"),vt=i(_=>{b(_),_?I(N?.name??"")||te(H=>me(H,N?.name||"",!1)):(f(""),te(H=>me(H,N?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),Ze=i(_=>{if(S&&k(""),z(_.walletType,_.chain))return;let V=g.find(fe=>fe.walletType===_.walletType&&fe.chain===_.chain);V&&(n(),_.chain===N?.name&&L&&!I(N.name)&&(b(!1),f(null)),te(fe=>fe.filter(ne=>ne.chain!==_.chain).concat({...V,selected:!0})))},"onChange"),le=i(()=>{let _=j.filter(H=>H.selected);C(_),u(_),d(!0),o()},"onConfirmBalance"),at=i(async()=>{v([]),A("");let _=await r?.({selectedWallets:j.filter(V=>V.selected),customDestination:h}),H=_.warnings;H?.balance?.messages&&v(H.balance.messages),_.error&&A(_p(_.error)),!_.error&&!H?.balance?.messages.length?le():v(H?.balance?.messages??[])},"onConfirmWallets");wd(()=>{te(_=>{let H=[];return _.forEach(V=>{!g.some(ne=>ne.chain===V.chain&&ne.walletType===V.walletType&&ne.address===V.address)||H.push(V)}),H=H.concat(g.filter(V=>!!!H.find(ne=>ne.chain===V.chain)&&V.selected&&E.includes(V.chain))),H})},[g,E]),wd(()=>{let _=[];J.length>0&&(J.forEach(H=>{let V=g.find(fe=>fe.chain===H.blockchain&&fe.walletType===H.walletType);V?Ze(V):_.push(H)}),P(_))},[g,J]);let G=document.getElementById(De.SWAP_BOX_ID);return ee.createElement(Z,{open:e,onClose:()=>{p||s("../",{replace:!0}),o()},dismissible:!S,container:G,...!S&&{styles:{container:{height:"100%"}},footer:ee.createElement(ud,null,ee.createElement(vd,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:pu(a,L,h,c,j,N),onClick:at,variant:"contained",type:"primary",fullWidth:!0,size:"large"},go.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:ee.createElement(sd,null,ee.createElement(ld,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:k.bind(null,"")},ee.createElement(Jk,{size:16})),ee.createElement(hs,{variant:"headline",size:"small"},go.t({id:"Your {blockchainName} wallets",values:{blockchainName:st(S,l)}})))},anchor:"center"},ee.createElement(Z,{open:se,onClose:v.bind(null,[]),container:G},ee.createElement(Rk,{title:go.t("Insufficient account balance"),type:"error",description:ee.createElement(Zk,{messages:T??[]})},ee.createElement(vd,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:le},go.t("Proceed anyway")))),S&&ee.createElement(cd,null,ee.createElement("div",{className:pd()},ee.createElement(fs,{chain:S,isSelected:z,selectWallet:Ze,onShowMore:()=>k(S),onConnect:_=>{X(S,_)}}))),!S&&ee.createElement(ee.Fragment,null,w&&ee.createElement(ee.Fragment,null,ee.createElement(Yk,{variant:"alarm",type:"error",title:go.t(w)}),ee.createElement(gs,{size:12})),ee.createElement(dd,null,E.map((_,H)=>{let V=l.find(Fe=>Fe.name===_),fe=`wallet-${H}`,ne=H===E.length-1,ge=ne&&N&&m?.customDestination!==!1;return ee.createElement("div",{key:fe},ee.createElement(rd,null,ee.createElement(hs,{variant:"title",size:"xmedium"},go.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),ee.createElement(hs,{variant:"label",color:"$neutral700",size:"medium"},go.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),ee.createElement(gs,{size:24}),ee.createElement(id,null,ee.createElement(fs,{chain:_,isSelected:z,selectWallet:Ze,limit:nT,onShowMore:()=>k(V?.name??""),onConnect:Fe=>{X(_,Fe)}})),!ne&&ee.createElement(gs,{size:32}),ge&&ee.createElement(nd,{blockchain:N,open:L,handleOpenChange:vt}))}))))}i(bd,"ConfirmWalletsModal");import{i18n as vT}from"@lingui/core";import{Alert as wT,Button as bT,InfoIcon as xT}from"@rango-dev/ui";import et from"react";import{Alert as aT,Button as sT,Divider as Cs,NoRouteIcon as lT,RefreshIcon as cT,Typography as Bd}from"@rango-dev/ui";import Re from"react";import{i18n as xd}from"@lingui/core";var rT=24,iT=60;function Ed(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:R().genericServerError,action:{onClick:n,title:xd.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:R().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:xd.t("Reset")}},description:R().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:R().noResultError.description}}i(Ed,"makeInfo");var ys=(o=>(o[o.small=rT]="small",o[o.large=iT]="large",o))(ys||{}),Ss=(o=>(o.small="small",o.large="medium",o))(Ss||{});import{styled as Xr}from"@rango-dev/ui";var Id=Xr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Ad=Xr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Nd=Xr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Wd=Xr("div",{padding:"$6 $0"});function xn(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Ed(o,r,()=>a(s,!0),e);return Re.createElement(Id,null,Re.createElement(lT,{size:ys[n],color:"gray"}),Re.createElement(Cs,{size:4}),Re.createElement(Bd,{variant:"title",size:Ss[n]},R().noResultError.title),n==="large"&&Re.createElement(Cs,{size:4}),!!l.description&&Re.createElement(Ad,{size:n},Re.createElement(Bd,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Re.createElement(Cs,{size:n==="large"?"24":"4"}),!!l.alert&&Re.createElement(Nd,{size:n},Re.createElement(aT,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Re.createElement(sT,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:Re.createElement(Wd,null,Re.createElement(cT,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(xn,"NoResult");import{i18n as En}from"@lingui/core";import{Button as uT,Divider as dT,MessageBox as mT,Typography as fT,WarningIcon as gT}from"@rango-dev/ui";import $t from"react";import{Typography as _d}from"@rango-dev/ui";import Ts from"react";import{darkTheme as pT,styled as Yr}from"@rango-dev/ui";var Md=Yr("div",{width:"100%"}),ks=Yr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Ld=Yr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${pT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Pd=Yr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Dd(t){let{title:e,value:o,valueColor:n}=t;return Ts.createElement(Ld,null,Ts.createElement(_d,{size:"medium",variant:"label",className:"_title"},e),Ts.createElement(_d,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Dd,"QuoteErrorsModalItem");function $d(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:En.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:En.t("Gas cost"),value:M(r.totalFee,2,2)},{title:En.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:En.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return $t.createElement(Z,{footer:$t.createElement(uT,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:$t.createElement(gT,null),fullWidth:!0,disabled:a,onClick:n},R().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},$t.createElement(mT,{type:s,title:R().highValueLossError.impactTitle,description:R().highValueLossError.description}),$t.createElement(ks,null,$t.createElement(dT,{size:"4"}),$t.createElement(fT,{size:"small",variant:"title"},En.t("Details")),$t.createElement(ks,null,l.map((c,u)=>$t.createElement(Dd,{key:u,...c})))))}i($d,"HighValueLossWarningModal");import{i18n as Zr}from"@lingui/core";function Fd(t,e){let o={alertType:"warning",title:"",action:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Zr.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o;if(t){switch(t.type){case 0:{_t(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=R().highValueLossError.title;break}case 4:{o.title=Zr.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=R().unknownPriceError.title;break}case 2:{o.title=Zr.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings";break}case 3:{o.title=Zr.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Fd,"makeAlerts");import{i18n as Vo}from"@lingui/core";import{Button as Od,Divider as Ud,MessageBox as hT,Typography as yT}from"@rango-dev/ui";import ho from"react";import{useNavigate as ST}from"react-router-dom";function zd(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,c=ST(),u=e??o;return ho.createElement(Z,{anchor:"bottom",open:n,prefix:ho.createElement(Od,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>c("../"+$.settings)},ho.createElement(yT,{variant:"label",size:"medium",color:"$neutral900"},Vo.t("Change settings"))),container:W(),onClose:r},ho.createElement(hT,{type:"warning",title:s.type===3?Vo.t("High slippage"):Vo.t("Low slippage"),description:s.type===3?Vo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Vo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},ho.createElement(Ud,{size:18}),ho.createElement(Ud,{size:32}),ho.createElement(Od,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Vo.t("Confirm anyway"))))}i(zd,"SlippageWarningModal");import{Button as CT,MessageBox as kT,WarningIcon as TT}from"@rango-dev/ui";import Jr from"react";function Qd(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Jr.createElement(Z,{footer:Jr.createElement(CT,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Jr.createElement(TT,null),fullWidth:!0,disabled:r,onClick:n},R().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},Jr.createElement(kT,{type:"warning",title:R().unknownPriceError.impactTitle,description:R().unknownPriceError.description}))}i(Qd,"UnknownPriceWarningModal");function In(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:c,onConfirmWarningModal:u,onChangeSettings:p}=t,d={confirmationDisabled:a,open:r,onClose:c,onConfirm:u},h=o?.type===0||o?.type===1,f=Fd(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),et.createElement(et.Fragment,null,h&&et.createElement(xn,{error:o,fetch:s}),!!f&&et.createElement(Md,null,et.createElement(wT,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:et.createElement(Pd,{onClick:l},et.createElement(xT,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:et.createElement(bT,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:p},vT.t("Change"))}})),e&&et.createElement(et.Fragment,null,e.type===0&&et.createElement($d,{...d,warning:e}),(e.type===3||e.type===2)&&et.createElement(zd,{...d,warning:e}),e.type===1&&et.createElement(Qd,{...d,warning:e})))}i(In,"QuoteWarningsAndErrors");import ov from"bignumber.js";import di from"react";import{i18n as yo}from"@lingui/core";import{Alert as qT,Divider as jo,FullExpandedQuote as HT,InfoIcon as GT,NumericTooltip as km,QuoteTag as VT,StepDetails as KT,TokenAmount as jT,Typography as Xo}from"@rango-dev/ui";import Ws from"bignumber.js";import F,{useRef as XT,useState as YT}from"react";import{styled as vs}from"@rango-dev/ui";var ws=vs("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),qd=vs("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Hd=vs("div",{width:"100%",display:"flex"});import*as Rr from"@radix-ui/react-collapsible";import{Button as ET,css as An,darkTheme as xe,Image as Gd,styled as ze,Typography as IT}from"@rango-dev/ui";var AT=300,Vd=ze(Rr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Kd=An({padding:"$10 $15"}),jd=ze(ET,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${xe} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${xe} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${xe} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Xd=ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${xe} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}}}}]}),Yd=An({width:"100%",padding:"$15 $15 $10 $15"}),Zd=An({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Ko=An({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Jd=An({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${xe} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Rd=ze(Rr.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:{[`& ${Gd}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Gd}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),em=ze("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"}}}}),tm=ze(Hr,{width:"100%",background:"inherit"}),bs=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${AT}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),PF=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),om=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${xe} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),nm=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),xs=ze(IT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),rm=ze("div",{display:"flex",flexWrap:"wrap"}),Es=ze("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"}}}}),im=ze("div",{display:"flex"}),ei=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${xe} &`]:{borderTopColor:"$neutral800"}});import{i18n as At}from"@lingui/core";import{ChevronDownIcon as WT,CloseIcon as BT,Divider as ni,IconButton as MT,NumericTooltip as LT,QuoteCost as PT,Typography as yt}from"@rango-dev/ui";import Y,{useState as cm}from"react";import{css as NT,styled as ti}from"@rango-dev/ui";var oi=ti("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Is=ti("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),am=ti("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),sm=ti("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),lm=NT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var _T=i(t=>t.fee.isZero()?null:Y.createElement(oi,null,Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(yt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function As(t){let[e,o]=cm(!1),[n,r]=cm(!1),{steps:a,quote:s,fee:l,time:c,feeWarning:u,timeWarning:p,showModalFee:d,fullExpandedMode:h=!1}=t,f=s?.swaps??[],m=h?no():W(),g=ou(f);return Y.createElement(Y.Fragment,null,Y.createElement(PT,{onClickFee:d?C=>{C.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,timeWarning:p,time:c,steps:a,tooltipGas:d?At.t("View more info"):void 0,tooltipContainer:m}),Y.createElement(Z,{container:m,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Y.createElement(sm,{style:{textAlign:h?"left":"center"}},Y.createElement(yt,{variant:"title",size:"medium"},At.t("Gas & Fee Explanation")),Y.createElement(MT,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(BT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(am,null,Y.createElement(yt,{variant:"title",size:"small"},At.t("Details")),Y.createElement(ni,{size:10}),Object.entries(g.payable).flatMap(([C,S])=>S.map((k,T)=>{let v=`payable-fee-${T}`,w=Na(k);return Y.createElement(oi,{key:v},Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},ba(C,At.t)),Y.createElement(LT,{content:k.amount,container:m},Y.createElement(yt,{variant:"label",size:"medium"},M(k.amount,2,2)," ",k.asset.symbol," ($",M(w,4,4),")")))})),Y.createElement(oi,{className:"total_payable_fee"},Y.createElement(yt,{variant:"label",size:"medium"},At.t("Total Payable Fee")),Y.createElement(yt,{variant:"label",size:"medium"},"$",M(l,4,4))),Y.createElement(Is,null),Object.keys(g.nonePayable).length&&Y.createElement(Kr,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Y.createElement("div",{className:lm()},Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},n?At.t("Hide non-payable fees"):At.t("Show non-payable fees")),Y.createElement(ni,{size:4,direction:"horizontal"}),Y.createElement(Gr,{orientation:n?"up":"down"},Y.createElement(WT,{size:12,color:"gray"}))),open:n},Y.createElement(yt,{size:"small",variant:"title"},At.t("Description")),Y.createElement(ni,{size:4}),Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},At.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),Y.createElement(ni,{size:10}),Object.entries(g.nonePayable).map(([C,S],k)=>{let T=tu(S),v=ba(C,At.t),w=`non-payable-fee-${k}`;return Y.createElement(_T,{key:w,fee:T,label:v})}),Y.createElement(Is,null)))))}i(As,"QuoteCostDetails");import{i18n as dm}from"@lingui/core";import{TokenAmount as mm}from"@rango-dev/ui";import ri from"react";import{css as DT,styled as $T}from"@rango-dev/ui";var pm=$T("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),um=DT({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function Nn(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ri.createElement(pm,null,ri.createElement(mm,{direction:"horizontal",label:dm.t("Swap input"),type:"input",tooltipContainer:W(),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}}),ri.createElement("div",{className:um()}),ri.createElement(mm,{direction:"horizontal",tooltipContainer:W(),label:dm.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(Nn,"QuoteSummary");import{i18n as Sm}from"@lingui/core";import{ChevronDownIcon as UT,ChevronRightIcon as zT,Divider as Ns,Image as QT,Tooltip as ci,Typography as ai}from"@rango-dev/ui";import U from"react";import{useLayoutEffect as FT,useState as Wn}from"react";var fm=480,gm=768,hm=1024,ym=1200,OT=i(()=>{let[t,e]=Wn(!1),[o,n]=Wn(!1),[r,a]=Wn(!1),[s,l]=Wn(!1),[c,u]=Wn(!1),p=i(()=>{e(window.innerWidth<=fm),n(window.innerWidth>fm&&window.innerWidth<=gm),a(window.innerWidth>gm&&window.innerWidth<=hm),l(window.innerWidth>hm&&window.innerWidth<=ym),u(window.innerWidth>ym)},"handleResize");return FT(()=>(p(),window.addEventListener("resize",p),()=>window.removeEventListener("resize",p)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:c}},"useScreenDetect"),ii=OT;var si=4,li=6,Bn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||W();return U.createElement(ci,{container:l,side:"bottom",sideOffset:4,open:r,content:e},U.createElement(em,{className:n,state:a},U.createElement(QT,{src:o,size:16})))},"ImageComponent");function Cm(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,c=l||W(),u=r.length,p=Gp(r),{isTablet:d,isMobile:h}=ii();return U.createElement(Rd,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(m=>!m)}},U.createElement("div",{className:Ko()},U.createElement(ai,{variant:"body",size:"xsmall"},Sm.t("Via:")),U.createElement(Ns,{direction:"horizontal",size:4}),r.map((f,m)=>{let g=`item-${m}`,C=U.createElement(bs,null,U.createElement(zT,{size:12,color:"black"}));return h||d?U.createElement(U.Fragment,{key:g},U.createElement(Bn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),m!==u-1&&U.createElement(U.Fragment,null,C)):U.createElement(U.Fragment,{key:g},u<=si||u>si&&m<si-1?U.createElement(U.Fragment,null,U.createElement(Bn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),m!==u-1&&U.createElement(U.Fragment,null,C)):m===si-1&&U.createElement(ci,{container:c,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Ko()},C,r.map((S,k)=>{let T=`image-${k}`;return k>=m&&U.createElement(U.Fragment,{key:T},U.createElement(Bn,{content:S.swapper.displayName,src:S.swapper.image,state:S.state,open:!1}),k!==u-1&&U.createElement(U.Fragment,null,C))}))},U.createElement(Es,{state:r.find((S,k)=>k>=m&&(S.state==="error"||S.state==="warning"))?.state},U.createElement(ai,{size:"xsmall",variant:"body"},"+",u-m))))})),U.createElement("div",{className:Ko()},U.createElement("div",{className:"blockchains_section"},U.createElement("div",{className:Ko()},U.createElement(ai,{variant:"body",size:"xsmall"},Sm.t("Chains:")),U.createElement(Ns,{direction:"horizontal",size:4}),p.map((f,m)=>U.createElement(U.Fragment,{key:f.displayName},p.length<=li||p.length>li&&m<li-1?U.createElement(ci,{container:c,side:"bottom",content:f.displayName,sideOffset:4},U.createElement(Bn,{content:"",src:f.image,open:!1,className:m!==0?"blockchainImage":""})):m===li-1&&U.createElement(ci,{container:c,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Ko()},p.map((g,C)=>C>=m&&U.createElement(Bn,{key:g.displayName,content:"",src:g.image,open:!1,className:C>m?"blockchainImage":"",container:l})))},U.createElement(Es,{className:"blockchainImage"},U.createElement(ai,{size:"xsmall",variant:"body"},"+",p.length-m))))),U.createElement(Ns,{direction:"horizontal",size:32}))),U.createElement(bs,{orientation:a?"up":"down"},U.createElement(UT,{size:12,color:"black"}))))}i(Cm,"QuoteTrigger");function Bs(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:c=!0,showModalFee:u=!0,onClickAllRoutes:p,fullExpandedMode:d=!1,container:h}=t,f=y().blockchains(),{findToken:m}=y(),g=y().swappers(),{customSlippage:C,slippage:S}=y(),k=C||S,[T,v]=YT(t.expanded),w=XT(null),A=M(o.value,6,6),L=M(n.value,6,6),b=n.usdValue?M(n.usdValue,4,4):"",E=Pt(o.usdValue,n.usdValue??null),x=M(E,2,2),N=_t(E??0),I=i((le,at)=>le.map((G,_)=>{let H,V=r?.type===3&&r.swap.swapperId===G.swapperId,fe=r?.type===4&&r.recommendedSlippages?.has(_),ne=a?.type===2&&a.recommendedSlippages?.has(_),ge=V||fe,Fe=ne;ge?H="error":Fe&&(H="warning");let ve=ge?yo.t("Slippage Error"):yo.t("Slippage Warning");return V&&(ve=yo.t("Bridge Limit Error")),{swapper:{displayName:on(G.swapperId,g)??"",image:G.swapperLogo},from:{token:{displayName:G.from.symbol,image:G.from.logo},chain:{displayName:st(G.from.blockchain,f)??"",image:G.from.blockchainLogo},price:{value:_===0&&!at?M(o.value,6,6):M(G.fromAmount,6,6),usdValue:M((G.from.usdPrice??0)*parseFloat(G.fromAmount),4,4),realValue:_===0?o.value:G.fromAmount,realUsdValue:new Ws(G.from.usdPrice??0).multipliedBy(G.fromAmount).toString()}},to:{token:{displayName:G.to.symbol,image:G.to.logo},chain:{displayName:st(G.to.blockchain,f)||"",image:G.to.blockchainLogo},price:{value:M(G.toAmount,6,6),usdValue:M((G.to.usdPrice??0)*parseFloat(G.toAmount),4,4),realValue:G.toAmount,realUsdValue:new Ws(G.to.usdPrice??0).multipliedBy(G.toAmount).toString()}},state:H,alerts:ge||Fe?F.createElement(qd,{dense:d},F.createElement(qT,{variant:"alarm",type:ge?"error":"warning",title:ve,footer:F.createElement(Hd,null,V&&F.createElement("div",null,F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(jo,{direction:"vertical",size:2}),F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},yo.t({id:"Yours: {amount} {symbol}",values:{amount:M(G.fromAmount,6,6),symbol:G?.from.symbol}}))),(fe||ne)&&!V&&F.createElement("div",null,F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},yo.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(_)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(_)}}})),F.createElement(jo,{direction:"vertical",size:2}),F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},yo.t({id:"Yours: {userSlippage}",values:{userSlippage:k}}))))})):void 0,time:an(G.estimatedTimeInSeconds),fee:M(Aa(G,m),2,2),internalSwaps:G.internalSwaps?I(G.internalSwaps):void 0}}),"getQuoteSteps"),B=I(e?.swaps??[]),j=B.length,te=h||W(),J=Kp(t.quote.tags||[]),P=!!p,X=pr(e?.swaps),se=an(X),z=Br(e?.swaps??[],m),me=M(z,2,2),vt=z.gte(new Ws($p)),Ze=X/Op>=Fp;return d?F.createElement(HT,{selected:l,fee:me,time:se,tooltipContainer:no(),steps:B,tags:J,quoteCost:F.createElement(As,{quote:e,fullExpandedMode:!0,time:se,fee:me,feeWarning:vt,timeWarning:Ze,showModalFee:u,steps:j}),percentageChange:x,warningLevel:N,outputPrice:{value:L,usdValue:b,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Xd,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Yd()},!c&&J.length?F.createElement(F.Fragment,null,F.createElement(im,null,J.map((le,at)=>{let G=`${le.value}_${at}`;return F.createElement(F.Fragment,{key:G},F.createElement(VT,{label:le.label,value:le.value}),F.createElement(jo,{size:4,direction:"horizontal"}))})),F.createElement(ei,null),!P&&F.createElement(jo,{size:4})):null,F.createElement("div",{id:"portal-root",className:Zd()},F.createElement(As,{quote:e,time:se,fee:me,feeWarning:vt,timeWarning:Ze,showModalFee:u,steps:j}),P&&F.createElement(jd,{onClick:le=>{le.stopPropagation(),p()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Xo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},yo.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Jd()},F.createElement(nm,null,F.createElement(GT,{size:12,color:"gray"})),F.createElement(rm,null,F.createElement(xs,{size:"small",variant:"body"},`${A} ${B[0].from.token.displayName} = `),F.createElement(km,{content:n.value,container:te,open:n.value?void 0:!1},F.createElement(xs,{size:"small",variant:"body"},"\xA0",`${L} ${B[B.length-1].to.token.displayName}`))),F.createElement(km,{content:n.usdValue,container:te},F.createElement(jo,{size:2,direction:"horizontal"}),F.createElement(Xo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${b})`))),s==="list-item"&&F.createElement(jT,{tooltipContainer:te,type:"output",direction:"vertical",price:{value:L,usdValue:b,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:B[j-1].to.token.displayName,image:B[j-1].to.token.image},chain:{image:B[j-1].to.chain.image},percentageChange:x,warningLevel:N}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(Nn,{from:B[0].from,to:B[j-1].to,percentageChange:x,warningLevel:N}),F.createElement(jo,{size:4}))),F.createElement(Vd,{selected:l,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:v},F.createElement(Cm,{type:s,quoteRef:w,selected:l,setExpanded:v,container:te,expanded:T,steps:B}),F.createElement(tm,{open:T},F.createElement(om,null),F.createElement("div",{className:Kd()},B.map((le,at)=>{let G=`item-${at}`;return F.createElement(KT,{type:"quote-details",key:G,tooltipContainer:te,step:le,hasSeparator:at!==B.length-1,state:le.state})})))))}i(Bs,"Quote");import{Divider as ev,Skeleton as tv}from"@rango-dev/ui";import Ot from"react";import{darkTheme as ZT,styled as pi}from"@rango-dev/ui";var Tm=pi("div",{$$color:"$colors$neutral100",[`.${ZT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),vm=pi("div",{paddingTop:"$2"}),wm=pi("div",{paddingLeft:"$8"}),bm=pi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Pm,Divider as St,Skeleton as tt}from"@rango-dev/ui";import Q from"react";import{css as JT,styled as Ft}from"@rango-dev/ui";var Ms=Ft("div",{display:"flex"}),xm=Ft("div",{padding:"$10 $0 $20"}),Em=Ft("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Im=Ft("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Am=Ft("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Nm=Ft("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Wm=Ft("div",{width:"65%",display:"flex",justifyContent:"start"}),Bm=Ft("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Mm=Ft("div",{padding:"$15 $0 $15 $0"}),Lm=JT({display:"flex",justifyContent:"space-between",alignItems:"center"});function Mn(t){let{type:e,tagHidden:o=!0}=t,n=Q.createElement(Am,null,Q.createElement(Wm,null,Q.createElement(Pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),Q.createElement(St,{size:8,direction:"horizontal"}),Q.createElement(Bm,null,Q.createElement(tt,{height:10,width:60,variant:"rounded"}),Q.createElement(St,{size:4}),Q.createElement(tt,{height:15,variant:"rounded"}))),Q.createElement(tt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return Q.createElement("div",null,!o&&Q.createElement(Q.Fragment,null,Q.createElement(Ms,null,Q.createElement(tt,{width:65,height:20,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:65,height:20,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:65,height:20,variant:"rounded"})),Q.createElement(ei,null),!r&&Q.createElement(St,{size:4})),Q.createElement("div",{className:Lm()},Q.createElement(Ms,null,Q.createElement(tt,{width:60,height:10,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:60,height:10,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:60,height:10,variant:"rounded"})),r&&Q.createElement(tt,{width:85,height:24,variant:"rounded"})),e==="basic"&&Q.createElement(xm,null,Q.createElement(tt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&Q.createElement(Em,null,Q.createElement(Im,null,Q.createElement(Pm,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),Q.createElement(St,{direction:"horizontal",size:4}),Q.createElement(tt,{height:15,width:150,variant:"rounded"})),Q.createElement(St,{size:10}),Q.createElement(tt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&Q.createElement(Q.Fragment,null,Q.createElement(St,{size:4}),Q.createElement(Mm,null,n,Q.createElement(Nm,null),n),Q.createElement(St,{size:12})))}i(Mn,"QuoteSummarySkeleton");import{ChainToken as Om,Divider as Ps,NextIcon as RT,Skeleton as ui}from"@rango-dev/ui";import Ee from"react";import{styled as Ln}from"@rango-dev/ui";var _m=Ln("div",{display:"flex",alignItems:"start"}),Dm=Ln("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ls=Ln("div",{display:"flex",alignItems:"center",flexGrow:1}),$m=Ln("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Fm=Ln("div",{display:"flex",alignItems:"center"});function Nt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(Fm,null,Ee.createElement(ui,{height:22,width:22,variant:"circular"}),Ee.createElement(Ps,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:15,width:148,variant:"rounded"})),Ee.createElement(_m,null,Ee.createElement(bm,{hideSeparator:!e}),Ee.createElement(Dm,{extraSpace:e},Ee.createElement(Ls,null,Ee.createElement(Om,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Ps,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:12,variant:"rounded"})),Ee.createElement($m,null,Ee.createElement(RT,{color:"gray",size:16})),Ee.createElement(Ls,null,Ee.createElement(Om,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(Ps,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:12,variant:"rounded"})))))}i(Nt,"StepSkeleton");function Pn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Ot.createElement(Tm,{expanded:o,rounded:e!=="basic"},Ot.createElement(Mn,{type:e,tagHidden:n}),Ot.createElement(vm,null,Ot.createElement(tv,{height:15,variant:"rounded"})),o&&Ot.createElement(wm,null,Ot.createElement(ev,{size:24}),Ot.createElement(Nt,null),Ot.createElement(Nt,null),Ot.createElement(Nt,{separator:!1})))}i(Pn,"QuoteSkeleton");function So(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:c,showModalFee:u,selected:p,onClickAllRoutes:d,fullExpandedMode:h=!1,container:f}=t,{inputAmount:m,inputUsdValue:g}=O(),C=e?.outputAmount?new ov(e?.outputAmount):null,S=e?ct(e):null,T=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?di.createElement(ws,null,di.createElement(Pn,{tagHidden:l,type:o,expanded:s})):T?di.createElement(ws,{onClick:()=>c?.(e)},di.createElement(Bs,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:p,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:h,input:{value:m,usdValue:g?.toString()??""},output:{value:C?.toString()??"",usdValue:S?.toString()??""}})):null}i(So,"QuoteInfo");import{calculatePendingSwap as av}from"@rango-dev/queue-manager-rango-preset";import{useEffect as sv}from"react";import{useRef as nv,useState as rv}from"react";var iv=2e3;function mi({request:t}){let[e,o]=rv(!1),n=nv(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(c=>setTimeout(c,iv)),await s(l,!1)),"retryFetch"),s=i(async(l,c=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(c)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(mi,"useFetch");function Um(){let{fetch:t,loading:e,cancelFetch:o}=mi({request:async(n,r)=>await xt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Um,"useFetchConfirmQuote");function fi(t){if(!t.swaps)throw new Error(R().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=_s(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(fi,"throwErrorIfResponseIsNotValid");function _s(t){if(Jp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Rp(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=nu(t);if(o){let n=Mr(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(_s,"getQuoteError");function zm(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,l={quote:null,balance:null},c=Do({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});c&&(l.quote=c);let u=au(e,r,n.blockchains);return u.length===0||(l.balance={messages:u}),l}i(zm,"generateWarnings");function gi(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1},warnings:null}}i(gi,"handleQuoteErrors");function Ds(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:l}=O(),{slippage:c,customSlippage:u}=y(),p=y().getDisabledLiquiditySources(),d=y().blockchains(),h=y().tokens(),{findToken:f}=y(),m=u||c,{fetch:g,cancelFetch:C,loading:S}=Um();return sv(()=>C,[]),{loading:S,fetch:i(async T=>{let v=T.selectedWallets,w=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=v.reduce((b,E)=>(b[E.chain]=E.address,b),{}),L={requestId:a?.requestId||"",selectedWallets:A,destination:w||void 0};try{return await g(L,!0).then(b=>{let{result:E}=b;if(!E)throw new Error("Error fetching updated route");fi({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let x={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};r(x);let N={slippage:m.toString(),disabledSwappersGroups:p},I=zm({previousQuote:a??void 0,currentQuote:x,meta:{blockchains:d},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:f});l();let B=!!I.balance,j=av(o.toString(),E,iu(v),N,!B,{blockchains:d,tokens:h});return{quote:x,swap:j,error:null,warnings:I}})}catch(b){return gi(b)}},"fetch"),cancelFetch:C}}i(Ds,"useConfirmSwap");var yv=uv("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Qm}`]:{width:"$48",height:"$48"}}),Sv=Os({flexGrow:1,paddingRight:"$10"}),Cv=Os({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),kv=Os({display:"flex",justifyContent:"space-between",alignItems:"center"});function qm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=hv(),[l,c]=_n(""),u=!n,[p,d]=_n(!1),[h,f]=_n(!1),{isActiveTab:m}=re(),g=y().getDisabledLiquiditySources(),C=gv(g),{manager:S}=lv(),{fetch:k,loading:T,cancelFetch:v}=Ds(),[w,A]=_n({swap:null,error:null,warnings:null}),[L,b]=_n(!1),E=i(async({selectedWallets:P,customDestination:X})=>{let se=await k?.({selectedWallets:P,customDestination:X});return A(se),se},"onConfirmSwap"),x=i(async()=>{if(w.swap&&n)try{await S?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let P=`../${$.swaps}/${w.swap.requestId}`;s(P,{replace:!0}),setTimeout(()=>{e("")},0)}catch(P){c("Error: "+P?.message)}},"addNewSwap"),N=i(async()=>{f(!0),await x(),f(!1)},"onConfirm"),I=i(async()=>{w.warnings?.quote&&Hp(w.warnings.quote)&&!a?b(!0):await N()},"onStartConfirmSwap"),B=i(async()=>{A({error:null,swap:null,warnings:null}),k({selectedWallets:o,customDestination:r}).then(P=>{A(P)}).catch(P=>console.error(P))},"onRefresh");hi(()=>{!!C.current.length&&!g.length&&B(),C.current=g},[g.length]),hi(()=>{u&&v()},[u]),hi(()=>{u&&d(u)},[u]),hi(()=>{u||k({selectedWallets:o,customDestination:r}).then(P=>A(P)).catch(P=>console.error(P))},[]),fv(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let j=w.warnings?.quote??null,te=w.error,J=[];if(l&&J.push(Le.createElement(cv,{type:"error",variant:"alarm",title:l})),j||te){let P=`../${$.settings}`;J.push(Le.createElement(In,{warning:j,error:te,couldChangeSettings:!1,refetchQuote:B,showWarningModal:L,confirmationDisabled:!m,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(P)}))}return Le.createElement(oe,{header:{title:$s.t("Confirm Swap"),onWallet:()=>{let P=`../${$.wallets}`;s(P)}},footer:Le.createElement(yv,null,Le.createElement("div",{className:Sv()},Le.createElement(pv,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||h,disabled:!!w.error||!m,onClick:I},$s.t("Start Swap"))),Le.createElement(Qm,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||h,disabled:!m,onClick:d.bind(null,!0)},Le.createElement(mv,{size:24})))},p&&Le.createElement(bd,{open:p,onClose:()=>d(!1),onCancel:v,loading:T,onCheckBalance:E}),Le.createElement(ie,null,Le.createElement("div",{className:kv()},Le.createElement(dv,{variant:"title",size:"small"},$s.t("You get")),Le.createElement("div",{className:Cv()},Le.createElement(Fr,{onClick:!T&&!p&&!L?B:void 0}))),Le.createElement(Fs,{size:"12"}),xu(J.map((P,X)=>({element:P,key:`alert-${X}`})),Le.createElement(Fs,{size:10})),J.length>0?Le.createElement(Fs,{size:10}):null,Le.createElement(So,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:w.error,loading:T,warning:w.warnings?.quote??null})))}i(qm,"ConfirmSwapPage");import{i18n as Ut}from"@lingui/core";import{Button as Ys,CustomTokensZeroStateDarkIcon as Dv,CustomTokensZeroStateIcon as $v,DeleteIcon as Fv,Divider as On,IconButton as Ov,MessageBox as Uv,NotFound as zv,styled as Js}from"@rango-dev/ui";import de,{useState as Zs}from"react";import{useNavigate as Qv}from"react-router-dom";import{CloseIcon as vv,IconButton as wv,SearchIcon as bv,TextField as xv}from"@rango-dev/ui";import Dn from"react";import{styled as Tv}from"@rango-dev/ui";var Hm=Tv("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Ct(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:c,...u}=t;return Dn.createElement(xv,{prefix:Dn.createElement(Hm,null,Dn.createElement(bv,{color:"black"})),suffix:!!s.length&&Dn.createElement(wv,{variant:"ghost",onClick:()=>c?.(""),size:"small"},Dn.createElement(vv,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...u})}i(Ct,"SearchInput");import{i18n as Xs}from"@lingui/core";import{darkTheme as tf,Divider as Zo,ExternalLinkIcon as Av,Image as Nv,ListItemButton as Wv,NotFound as Bv,PinIcon as Mv,Skeleton as of,Typography as Ci,VirtualizedList as Lv}from"@rango-dev/ui";import q from"react";import{Divider as Rm,ListItem as Iv,Skeleton as $n}from"@rango-dev/ui";import kt from"react";import{css as Yo,darkTheme as Gm,ImageContainer as Ev,styled as ut,Typography as Vm}from"@rango-dev/ui";var Us=Yo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),zs=Yo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Qs=Yo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),qs=Yo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Gm} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Hs=Yo({}),Gs=Yo(),Km=ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Vs=ut("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),yi=ut("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${zs}`]:{[`& .${qs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Hs}`]:{bottom:"-15px"},[`& .${Us}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Qs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Ks=ut("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),js=ut(Vm,{}),jm=ut("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Gs}`]:{$$color:"$colors$neutral600",[`.${Gm} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Si=ut("div",{display:"flex",alignItems:"end",flexDirection:"column"}),AU=ut("div",{display:"flex",alignItems:"center"}),Xm=ut("div",{position:"relative",[`& ${Ev}`]:{borderRadius:"$xm",overflow:"hidden"}}),Ym=ut("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Zm=ut(Vm,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Jm=ut("a",{"& svg:hover":{color:"$colors$info"}});function ef(t){return kt.createElement(yi,null,Array.from(Array(t.size),e=>kt.createElement(Iv,{key:e,hasDivider:!0,start:kt.createElement($n,{variant:"circular",width:35,height:35}),end:kt.createElement(Si,null,kt.createElement($n,{variant:"text",size:"large",width:70}),kt.createElement(Rm,{size:4}),kt.createElement($n,{variant:"text",size:"medium",width:50})),title:kt.createElement("div",null,kt.createElement($n,{variant:"text",size:"large",width:90}),kt.createElement(Rm,{size:4}),kt.createElement($n,{variant:"text",size:"medium",width:90}))})))}i(ef,"LoadingTokenList");var Pv=20,_v=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return q.createElement("div",{className:zs()},o?q.createElement("div",{className:Us()},o):q.createElement(Vs,{className:Qs()},q.createElement(Ci,{variant:"title",size:"xmedium"},r.symbol),q.createElement(Zo,{direction:"horizontal",size:4}),q.createElement(Ks,{css:a},q.createElement(js,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&q.createElement("div",{className:`${qs()} ${!o&&Hs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",q.createElement(Zo,{size:4,direction:"horizontal"}),q.createElement(Jm,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:c=>c.stopPropagation()},q.createElement(Av,{size:12}))))},"renderDesc");function Fn(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s}=t,l=y().fetchStatus,c=y().blockchains(),{getBalanceFor:u,fetchingWallets:p}=y(),{isTokenPinned:d}=y(),h=i(m=>{let g=cn(u(m));return s?s(m):p?q.createElement(Si,null,q.createElement(of,{variant:"text",size:"large",width:70}),q.createElement(Zo,{size:4}),q.createElement(of,{variant:"text",size:"medium",width:50})):g&&q.createElement(jm,null,q.createElement(Zm,{variant:"title",size:"small"},g.amount),q.createElement("div",null),g.usdValue&&q.createElement(Ci,{variant:"body",className:Gs(),size:"xsmall"},`$${g.usdValue}`))},"endRenderer"),f=i(()=>q.createElement(Lv,{itemContent:m=>{let g=e[m],C=g.address||"",S=c.find(w=>w.name===g.blockchain),k=Qa(S.color,"main"),T={$$color:k.main150,[`.${tf} &`]:{$$color:k.main750},backgroundColor:"$$color"},v={$$color:k.main750,[`.${tf} &`]:{$$color:k.main150},color:"$$color"};return q.createElement("div",{style:{paddingRight:5}},q.createElement(Wv,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":m,key:`${g.symbol}${g.address}`,id:`${g.symbol}${g.address}`,className:"widget-token-list-item-btn",hasDivider:!0,onClick:()=>n&&n(e[m]),start:q.createElement(Xm,null,q.createElement(Nv,{src:g.image,size:30}),t.type!=="custom-token"&&d(g,t.type)&&q.createElement(Ym,null,q.createElement(Mv,{size:12,color:"gray"}))),title:S?.type==="COSMOS"||g.name||!g.name&&!C?q.createElement(Vs,null,q.createElement(Ci,{variant:"title",size:"xmedium"},g.symbol),q.createElement(Zo,{direction:"horizontal",size:4}),q.createElement(Ks,{css:T},q.createElement(js,{variant:"body",size:"xsmall",css:v},g.blockchain))):void 0,description:S?.info&&C&&S.type!=="COSMOS"?_v({address:C,token:e[m],customCssForTag:T,customCssForTagTitle:v,name:g.name,url:S.info.addressUrl.split("{wallet}").join(C)}):g.name||void 0,end:h(g)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList");return q.createElement(q.Fragment,null,a&&q.createElement(q.Fragment,null,q.createElement(Ci,{variant:"label",size:"large"},Xs.t("Select Token")),q.createElement(Zo,{size:4})),q.createElement(Km,null,q.createElement(Zo,{size:4}),l==="loading"&&q.createElement(ef,{size:Pv}),l==="success"&&(e.length?q.createElement(yi,{as:"ul"},f()):!!o&&q.createElement(Bv,{title:Xs.t("No results found"),description:Xs.t("Try using different keywords")}))))}i(Fn,"TokenList");var qv=Js("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Hv=Js("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Gv=Js(Ov,{"&:hover":{"& svg":{color:"$secondary550"}}});function nf(){let[t,e]=Zs(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=O(),{mode:c}=Uo({}),u=Qv(),[p,d]=Zs(!1),[h,f]=Zs(),m=i(k=>{let T=k.target.value;e(T)},"handleSearch"),g=c==="dark",C=n.filter(k=>Je(k.symbol,t)||Je(k.address||"",t)||Je(k.name||"",t)),S=i(()=>{if(h){let k=a?lt(a):null,T=r?lt(r):null,v=lt(h);k===v?l({token:null}):T===v&&s({token:null}),o(h)}d(!1)},"handleDeleteCustomToken");return de.createElement(oe,{header:{title:Ut.t("Custom Tokens")}},de.createElement(ie,null,de.createElement(qv,null,n.length?de.createElement(de.Fragment,null,de.createElement(Ct,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Ut.t("Search Token"),onChange:m}),de.createElement(On,{size:16}),de.createElement(Fn,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,action:k=>de.createElement(Gv,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),f(k)}},de.createElement(Fv,{size:12,color:"gray"}))})):de.createElement(Hv,null,de.createElement(zv,{icon:g?de.createElement(Dv,{size:200}):de.createElement($v,{size:200}),title:Ut.t("No custom tokens"),description:Ut.t("press the button to add your custom token")})),de.createElement(On,{size:20}),de.createElement(Ys,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u($.addCustomTokens)},Ut.t("Add Custom Token"))),de.createElement(Z,{open:p,dismissible:!0,onClose:()=>d(!1),container:W()},de.createElement(Uv,{title:Ut.t("Delete Custom Token"),type:"error",description:Ut.t("Are you sure you want to Delete this Token?")},de.createElement(On,{size:40}),de.createElement(On,{size:10}),de.createElement(Ys,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},Ut.t("Yes, Delete it")),de.createElement(On,{size:12}),de.createElement(Ys,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},Ut.t("No, Continue"))))))}i(nf,"CustomTokensPage");import{i18n as qe}from"@lingui/core";import{useManager as pw}from"@rango-dev/queue-manager-react";import{Button as il,darkTheme as uw,Divider as ko,MessageBox as dw,NotFound as mw,styled as al,Typography as vi}from"@rango-dev/ui";import{TransactionStatus as Qn}from"rango-types";import ae,{useMemo as wf,useState as wi}from"react";import{useNavigate as fw}from"react-router-dom";import{FilterIcon as Jv,Popover as Rv}from"@rango-dev/ui";import Co from"react";import{css as Vv,darkTheme as ki,IconButton as Kv,styled as Un}from"@rango-dev/ui";var Rs=Un("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ki} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),rf=Un(Kv,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ki} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ki} &`]:{backgroundColor:"$neutral"},[`& ${Rs}::before`]:{backgroundColor:"$secondary100",[`.${ki} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),af=Un("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),sf=Un("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),lf=Vv({display:"flex",justifyContent:"space-between",alignItems:"center"}),cf=Un("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as pf}from"@lingui/core";import{Button as jv,Divider as uf,ListItemButton as Xv,Radio as Yv,RadioRoot as Zv,Typography as df}from"@rango-dev/ui";import ot from"react";function mf(t){let{filterBy:e,onClickItem:o}=t;return ot.createElement(sf,null,ot.createElement("div",{className:lf()},ot.createElement(df,{size:"small",variant:"body"},pf.t("Status")),ot.createElement(jv,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},pf.t("Reset"))),ot.createElement(uf,{size:10}),ot.createElement(Zv,{value:e},ot.createElement(cf,null,t.list.map((n,r)=>ot.createElement(Xv,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ot.createElement(ot.Fragment,null,ot.createElement(uf,{direction:"horizontal",size:4}),ot.createElement(df,{size:"medium",variant:"body"},n.title)),start:ot.createElement(Yv,{value:n.id}),onClick:o})))))}i(mf,"FilterSelectorContent");function el(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Co.createElement("div",null,Co.createElement(Rv,{open:a,align:"end",onOpenChange:o,container:W(),content:Co.createElement(mf,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Co.createElement(rf,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Co.createElement(Rs,{isSelect:!!n},Co.createElement(Jv,{size:16,color:"black"}),!!n&&Co.createElement(af,null)))))}i(el,"FilterSelector");import{i18n as ow}from"@lingui/core";import{Divider as Sf,GroupedVirtualizedList as nw,Skeleton as rw,SwapListItem as Cf,Typography as iw}from"@rango-dev/ui";import Qe,{useCallback as kf,useEffect as aw,useRef as sw,useState as lw}from"react";function ff(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(ff,"calculateGroupsSoFar");import{css as ew,darkTheme as tw,styled as zn}from"@rango-dev/ui";var tl=ew(),gf=zn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ol=zn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${tl}`]:{$$color:"$colors$neutral600",[`.${tw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),nl=zn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),hf=zn("div",{gap:"$10",display:"flex",flexDirection:"column"}),yf=zn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var cw=10;function rl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=lw([]),l=sw(0),{swaps:c,groupCounts:u,groups:p}=n(e),d=kf(ff,[]),h=kf(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,cw),s(d(u,l.current)))},[e.length]);if(aw(()=>{r||h()},[r,h]),r){let f=[1,2];return Qe.createElement(Qe.Fragment,null,[f,f].map((g,C)=>Qe.createElement(ol,{key:C},Qe.createElement(nl,null,Qe.createElement(rw,{variant:"text",width:60,size:"small"}),Qe.createElement(Sf,{size:16})),Qe.createElement(Sf,{size:4}),Qe.createElement(hf,null,g.map((k,T)=>Qe.createElement(Cf,{isLoading:!0,key:T}))))))}return Qe.createElement(nw,{endReached:()=>{l.current<e.length&&h()},groupCounts:a,groupContent:f=>Qe.createElement(ol,null,Qe.createElement(nl,null,Qe.createElement(iw,{variant:"label",size:"medium",className:tl()},p[f]))),itemContent:(f,m)=>{let g=c[f];if(!g)return null;let C=g.steps[0],S=g.steps[g.steps.length-1];return Qe.createElement(gf,{key:g.requestId},Qe.createElement(Cf,{requestId:g.requestId,creationTime:g.creationTime,status:g.status,onClick:o,tooltipContainer:W(),onlyShowTime:p[m]===ow.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(g.inputAmount,6,6),realAmount:g.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:M(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(rl,"HistoryGroupedList");import{i18n as Ti}from"@lingui/core";import Tf from"dayjs";var vf=i(t=>{let e=new Map([["today",{title:Ti.t("Today"),swaps:[]}],["week",{title:Ti.t("This week"),swaps:[]}],["month",{title:Ti.t("This month"),swaps:[]}],["year",{title:Ti.t("This year"),swaps:[]}]]);function o(c,u){e.has(c)||e.set(c,{title:c,swaps:[]}),e.get(c)?.swaps.push(u)}i(o,"addYearsToOutput");let n=Tf();t.forEach(c=>{let u=Number(c.creationTime),p=Tf(u);if(n.isSame(p,"day"))e.get("today")?.swaps.push(c);else if(n.isSame(p,"week"))e.get("week")?.swaps.push(c);else if(n.isSame(p,"month"))e.get("month")?.swaps.push(c);else if(n.isSame(p,"year"))e.get("year")?.swaps.push(c);else{let d=new Date(u).getFullYear().toString();o(d,c)}});let r=Array.from(e.values()).filter(c=>c.swaps.length>0),a=r.flatMap(c=>c.swaps),s=r.map(c=>c.swaps.length),l=r.map(c=>c.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var gw=al("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),hw=al("div",{display:"flex",justifyContent:"center",alignItems:"center"}),yw=al("div",{"._typography":{color:"$neutral700",[`.${uw}&`]:{color:"$neutral900"}}}),Sw=[{id:Qn.SUCCESS,title:qe.t("Complete")},{id:Qn.RUNNING,title:qe.t("Running")},{id:Qn.FAILED,title:qe.t("Failed")}],Cw=i((t,e)=>t?.length?t.filter(o=>wt(o.fromBlockchain,e)||wt(o.toBlockchain,e)||wt(o.toSymbol,e)||wt(o.fromSymbol,e)).length:!1,"isStepContainsText");function bf(){let t=fw(),{manager:e,state:o}=pw(),n=pt(e).map(({swap:T})=>T),[r,a]=wi(""),[s,l]=wi(!1),c=!o.loadedFromPersistor,[u,p]=wi(""),[d,h]=wi(!1),f=i(T=>{let v=T.target.value;a(v)},"handleSearch"),m=wf(()=>!r&&!u?n:n.filter(T=>{let{inputAmount:v,status:w,steps:A,requestId:L}=T;return(!r||wt(v,r)||wt(w,r)||Cw(A,r)||wt(L,r))&&(!u||u===w)}),[n,r,u]),g=!m?.length&&!c,C=i(()=>h(!1),"onCloseModal"),S=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(T){console.log(T)}},"onClear"),k=wf(()=>!n.some(T=>T.status===Qn.SUCCESS||T.status===Qn.FAILED),[n]);return ae.createElement(oe,{header:{title:qe.t("History"),suffix:ae.createElement(Vt,null,ae.createElement(il,{id:"widget-history-clear-btn",disabled:k,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},ae.createElement(vi,{size:"medium",variant:"label",color:"error"},qe.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(hw,null,ae.createElement(Ct,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qe.t("Search Transaction"),autoFocus:!0,onChange:f,style:{height:36},value:r}),ae.createElement(ko,{size:10,direction:"horizontal"}),ae.createElement(el,{filterBy:u,open:s,onOpenChange:T=>l(T),onClickItem:T=>p(T),list:Sw})),ae.createElement(ko,{size:"16"}),ae.createElement(gw,null,g&&ae.createElement(yf,null,ae.createElement(ko,{size:32}),ae.createElement(mw,{title:r?qe.t("No results found"):qe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?qe.t("Try using different keywords"):qe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!g&&ae.createElement(rl,{list:m,onSwapClick:t,groupBy:vf,isLoading:c}))),ae.createElement(Z,{open:d,onClose:C,container:W()},ae.createElement(ko,{size:20}),ae.createElement(dw,{type:"warning",title:qe.t("Clear Transaction History"),description:ae.createElement(yw,null,ae.createElement(vi,{variant:"body",size:"medium"},qe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(ko,{size:"24"}),ae.createElement(vi,{variant:"body",size:"small"},qe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(ko,{size:30}),ae.createElement(il,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},qe.t("Yes, Clear the history")),ae.createElement(ko,{size:10}),ae.createElement(il,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:C},ae.createElement(vi,{variant:"title",size:"medium",color:"primary"},qe.t("No, Cancel")))))}i(bf,"HistoryPage");import{i18n as qw}from"@lingui/core";import{Button as Hw,Divider as Gf,styled as Gw,WarningIcon as Vw}from"@rango-dev/ui";import Kw from"bignumber.js";import He,{useEffect as Vf,useState as Kf}from"react";import{useNavigate as jw}from"react-router-dom";import{i18n as Ef}from"@lingui/core";import{Alert as Tw,Divider as sl,NoRouteIcon as vw,Typography as ww}from"@rango-dev/ui";import To from"react";import{styled as kw}from"@rango-dev/ui";var xf=kw("div",{display:"flex",flexDirection:"column",alignItems:"center"});function ll(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Mt(t,e)?To.createElement(xf,null,To.createElement(sl,{size:10}),To.createElement(vw,{size:24,color:"gray"}),To.createElement(sl,{size:4}),To.createElement(ww,{variant:"title",size:"small"},Ef.t("No Routes Found")),To.createElement(sl,{size:4}),To.createElement(Tw,{title:Ef.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(ll,"SameTokensWarning");import{i18n as Nw}from"@lingui/core";import{Header as Ww}from"@rango-dev/ui";import Jt,{useEffect as Bw,useState as Mw}from"react";import{i18n as xw}from"@lingui/core";import{Divider as pl,FullExpandedQuote as Ew,Typography as Iw}from"@rango-dev/ui";import Se from"react";import{styled as cl}from"@rango-dev/ui";var If=cl("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Af=cl("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Nf=cl("div",{width:"146px"});import{i18n as qn}from"@lingui/core";import{Select as bw}from"@rango-dev/ui";import Wf from"react";function bi(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:qn.t("Smart Routing")},{value:"FEE",label:qn.t("Lowest Fee")},{value:"SPEED",label:qn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:qn.t("Maximum Return")},{value:"PRICE",label:qn.t("Maximum Output")}];return Wf.createElement(Nf,null,Wf.createElement(bw,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(bi,"SelectStrategy");var Bf=3;function Hn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:c,quotes:u,updateQuotePartialState:p,fromToken:d,toToken:h,sortStrategy:f,error:m}=O(),{slippage:g,customSlippage:C}=y(),{findToken:S}=y(),k=l||W(),T=!!u&&u.results.length,v=C??g,w=i(b=>{if(!d||!h||!u)return null;let E={requestAmount:u.requestAmount,validationStatus:null,...b};return Do({currentQuote:E,userSlippage:v,findToken:S})},"getQuoteWarning"),A=m?.type===0||m?.type===1,L=u?.results?Wr(f,u?.results):[];return Se.createElement(Se.Fragment,null,a&&Se.createElement(Se.Fragment,null,Se.createElement(Af,null,Se.createElement(Iw,{size:"xmedium",variant:"title"},xw.t("Sort by")),Se.createElement(bi,{container:k})),Se.createElement(pl,{size:"10"})),e&&Array.from({length:Bf},(b,E)=>Se.createElement(Se.Fragment,{key:E},s?Se.createElement(Ew,{loading:!0}):Se.createElement(Pn,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Bf-1&&Se.createElement(pl,{size:16}))),!e&&Se.createElement(Se.Fragment,null,T?L.map((b,E)=>{let x=w(b),N=_s(b.swaps),I=L.length-1===E;return Se.createElement(Se.Fragment,{key:b.requestId},Se.createElement(So,{showModalFee:r,container:k,selected:c?.requestId===b.requestId,tagHidden:!1,quote:{...b,requestAmount:u.requestAmount,validationStatus:null},loading:e,error:N?.options||null,warning:x,fullExpandedMode:s,onClick:B=>{N||p("warning",x),p("error",N?.options||null),o(B)},type:"list-item"}),!I&&Se.createElement(pl,{size:16}))}):A&&Se.createElement(If,null,Se.createElement(xn,{size:s?"large":"small",error:m,fetch:n}))))}i(Hn,"Quotes");import{darkTheme as Aw,styled as Mf}from"@rango-dev/ui";var Lf=Mf("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${Aw} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Pf=Mf("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var Lw=100;function ul(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=Mw(!1),c=s?"":"is-hidden",{config:u}=y(),p=u?.variant==="full-expanded",d=no();return Bw(()=>{let h=null;return a?h=setTimeout(()=>{l(!0)},Lw):(l(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),Jt.createElement(Lf,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${c} ${zr()}`,id:De.EXPANDED_BOX_ID},Jt.createElement(Ww,{title:Nw.t("Routes"),suffix:Jt.createElement(Jt.Fragment,null,Jt.createElement(bi,{container:d}),Jt.createElement(fo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Jt.createElement(Pf,null,Jt.createElement(Hn,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:no(),onClickOnQuote:n,fullExpandedMode:p})))}i(ul,"ExpandedQuotes");import{i18n as zf}from"@lingui/core";import{SwapInput as Qf}from"@rango-dev/ui";import $w from"bignumber.js";import Gn from"react";import{ReverseIcon as Dw}from"@rango-dev/ui";import ml from"react";import{keyframes as Pw,styled as _f}from"@rango-dev/ui";var dl=450,_w=Pw({"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)"}}),Df=_f("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),$f=_f("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${_w} ${dl}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 fl(){let t=O.use.switchFromAndTo();return ml.createElement(Df,null,ml.createElement($f,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},dl),t()}},ml.createElement(Dw,{size:12})))}i(fl,"SwitchFromAndToButton");import{styled as Ff}from"@rango-dev/ui";var Of=Ff("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Uf=Ff("div",{position:"relative"});function gl(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:c,setInputAmount:u,inputAmount:p,inputUsdValue:d,outputAmount:h,outputUsdValue:f,selectedQuote:m}=O(),{connectedWallets:g,getBalanceFor:C}=y(),S=a?C(a):null,k=cn(S)?.amount??"0",T=S?new $w(S.amount).shiftedBy(-S.decimals):ue,v=!!s&&$c(g,s.name),w=!Ia(m,p,d),A=!Ia(m,p,f),L=!d||!f||!f.gt(0)?null:Pt(d.toString(),f.toString());return Gn.createElement(Of,null,Gn.createElement(Uf,null,Gn.createElement(Qf,{label:zf.t("From"),mode:"From",onInputChange:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:p,usdValue:w?void 0:M(d,4,4),realUsdValue:w?void 0:d?.toString(),error:w?R().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:W(),onSelectMaxBalance:()=>{let b=M(T,S?.decimals),E=S?.amount?b:"";u(E)},anyWalletConnected:g.length>0}),Gn.createElement(fl,null)),Gn.createElement(Qf,{sharpBottomStyle:!r&&(!!m||e),label:zf.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:c?.displayName||"",image:c?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(Pt(d,f),2,2),warningLevel:_t(L??0),price:{value:M(h,6,6),usdValue:A?void 0:M(f,4,4),realValue:h?.toString(),realUsdValue:A?void 0:f?.toString(),error:A?R().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}i(gl,"Inputs");import{useCallback as Fw,useEffect as Ow,useRef as Uw,useState as zw}from"react";function qf(){let{fetch:t,loading:e,cancelFetch:o}=mi({request:async(n,r)=>await xt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(qf,"useFetchAllQuotes");var Qw=600;function xi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=qf(),{excludeLiquiditySources:n,routing:r}=y().config,{connectedWallets:a}=y(),{fromToken:s,toToken:l,inputAmount:c,inputUsdValue:u,selectedQuote:p,sortStrategy:d,resetQuote:h,error:f,warning:m,setSelectedQuote:g,updateQuotePartialState:C}=O(),{slippage:S,customSlippage:k,affiliatePercent:T,affiliateRef:v,affiliateWallets:w,fetchStatus:A}=y(),L=y().getLiquiditySources(),b=y().getDisabledLiquiditySources(),E=y().excludeLiquiditySources(),{findToken:x}=y(),[N,I]=zw(!0),B=Uw(c),j=k??S,J=!s||!l||Mt(s,l)||!sn(c),P=i(z=>{I(z)},"resetState"),X=i(z=>{let{fromToken:me,toToken:vt,inputAmount:Ze,liquiditySources:le,excludeLiquiditySources:at,disabledLiquiditySources:G,slippage:_,affiliateRef:H,affiliatePercent:V,affiliateWallets:fe}=z;if(N||P(!0),!J&&me&&vt){h();let ne=ru({fromToken:me,toToken:vt,inputAmount:Ze,liquiditySources:le,excludeLiquiditySources:at,disabledLiquiditySources:G,wallets:a,slippage:_,affiliateRef:H,affiliatePercent:V,affiliateWallets:fe});Ao("experimental",r)&&(ne.experimental=!0),Ao("avoidNativeFee",r)&&(ne.avoidNativeFee=!0),Ao("enableCentralizedSwappers",r)&&(ne.enableCentralizedSwappers=!0),r?.maxLength&&(ne.maxLength=r.maxLength),e(ne).then(ge=>{let Fe=Wr(d,ge.results),ve=Vp(p,Fe,ge.requestAmount);I(!1),C("quotes",ge),g(ve),fi({diagnosisMessages:ge.diagnosisMessages,requestId:ve?.requestId||"",swaps:ve?.swaps});let mt=ve&&Do({currentQuote:ve,userSlippage:j,findToken:x});C("warning",mt)}).catch(ge=>{let{error:Fe}=gi(ge);(Fe?.type===0||Fe?.type===1)&&h(),Fe?.type!==2&&(C("error",Fe),I(!1))})}},"fetch"),se=Fw(xc(z=>{X(z)},Qw),[J]);return Ow(()=>{if(!t){I(!1);return}if(A!=="success")return;if(J){I(!1),(p||f||m)&&h();return}if(!sn(c)||u?.eq(0)){P(!1),o();return}h(),P(!0);let z=X;return B.current&&B.current!=c&&(z=se),B.current=c,z({inputAmount:c,fromToken:s,toToken:l,liquiditySources:L,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:v,affiliatePercent:T,affiliateWallets:w}),o},[A,c,s?.symbol,s?.address,s?.blockchain,l?.symbol,l?.address,l?.blockchain,J,L?.length,n,b.length,j,v,T,JSON.stringify(w)]),{fetch:()=>X({inputAmount:c,fromToken:s,toToken:l,liquiditySources:L,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:v,affiliatePercent:T,affiliateWallets:w}),loading:N}}i(xi,"useSwapInput");function Hf(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};he.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Hf,"emitPreventableEvent");var Xw=Gw("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Yw=300;function jf(){let t=jw(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:c,setSelectedQuote:u,resetQuoteWallets:p,setQuoteWarningsConfirmed:d,updateQuotePartialState:h}=O(),[f,m]=Kf(!1),{isLargeScreen:g,isExtraLargeScreen:C}=ii(),{fetch:S,loading:k}=xi({refetchQuote:a}),{config:T,fetchStatus:v,connectedWallets:w}=y(),{isActiveTab:A}=re(),[L,b]=Kf(!1),x=eu({fetchMetaStatus:v,fetchingQuote:k,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),N=Hc(g,C,T?.variant),I=!!n&&!!e&&!!o&&new Kw(n).gt(0)&&!uu(e,o),B=I&&v==="success"&&k,J=(!N||N&&c?.results.length)&&(l||s);Vf(()=>{p(),h("refetchQuote",!0)},[]),Vf(()=>{m(I)},[I]);let P=(r||s)&&!L?S:void 0,X=i(z=>{N&&f?(m(!1),setTimeout(()=>{t(z)},Yw)):t(z)},"onHandleNavigation"),se=i(z=>{r?.requestId!==z.requestId&&(b(!1),u(z))},"onClickOnQuote");return He.createElement(Xw,null,He.createElement(oe,{height:"auto",footer:He.createElement(Hw,{id:`widget-swap-${x.action}-btn`,type:"primary",size:"large",disabled:x.disabled||!A,prefix:x.action==="confirm-warning"&&He.createElement(Vw,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?Hf({type:"clickConnectWallet"},()=>X($.wallets)):x.action==="confirm-warning"?b(!0):X($.confirmSwap)}},x.title),header:{onWallet:()=>{X($.wallets)},hasBackButton:!1,title:T.title||qw.t("Swap"),suffix:He.createElement(fo,{hidden:N?["refresh"]:void 0,onClickRefresh:P,onClickHistory:()=>X($.swaps),onClickSettings:()=>{X($.settings)}})}},He.createElement(ie,null,He.createElement(gl,{fetchingQuote:B,fetchMetaStatus:v,isExpandable:N,onClickToken:z=>{X(z==="from"?$.fromSwap:$.toSwap)}}),He.createElement(Gf,{size:"2"}),N?null:He.createElement(So,{quote:r,loading:B,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:c&&c.results.length>1?()=>{h("refetchQuote",!1),X($.routes)}:void 0}),J?He.createElement(He.Fragment,null,He.createElement(Gf,{size:"10"}),He.createElement(In,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:S,showWarningModal:L,confirmationDisabled:!A,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:()=>{b(!1),d(!0),X($.confirmSwap)},onChangeSettings:()=>X($.settings)})):null,He.createElement(ll,null))),N?He.createElement(ul,{loading:B,onClickOnQuote:se,fetch:S,onClickRefresh:P,isVisible:f}):null)}i(jf,"Home");import{i18n as Xf}from"@lingui/core";import{Alert as Zw,Divider as Jw,List as Rw,ListItemButton as eb,Radio as tb,RadioRoot as ob,Typography as nb}from"@rango-dev/ui";import Wt from"react";function Rt(){let{setLanguage:t,language:e,config:o}=y(),n=Yc,r=o?.language||No;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||No),resetLanguage:()=>t(null)}}i(Rt,"useLanguage");function Yf(){let{activeLanguage:t,changeLanguage:e,languages:o}=Rt(),n=je(),r=o.map(a=>{let{local:s,label:l,SVGFlag:c}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Wt.createElement(nb,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Wt.createElement(tb,{value:s}),start:Wt.createElement(c,null)}});return Wt.createElement(oe,{header:{title:Xf.t("Language")}},Wt.createElement(ie,null,Wt.createElement(Zw,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Wt.createElement(Jw,{size:"8"}),Wt.createElement(ob,{value:t},Wt.createElement(Rw,{type:Wt.createElement(eb,{title:Xf.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Yf,"LanguagePage");import{i18n as zt}from"@lingui/core";import{Button as lb,Checkbox as cb,Image as pb,ListItemButton as ub,NotFound as db,Typography as mb}from"@rango-dev/ui";import Ge,{useState as fb}from"react";import{Checkbox as ab,Skeleton as Jf}from"@rango-dev/ui";import Kn from"react";import{styled as hl}from"@rango-dev/ui";var Vn=hl("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),yl=hl("div",{width:80,display:"flex",justifyContent:"flex-end"}),Sl=hl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as rb,styled as ib}from"@rango-dev/ui";var Zf=ib(rb,{height:61});var sb=30;function Cl(){return Kn.createElement(Vn,null,Array.from(Array(sb),(t,e)=>Kn.createElement(Zf,{hasDivider:!0,key:e,start:Kn.createElement(Jf,{variant:"circular",width:35,height:35}),title:Kn.createElement(Jf,{variant:"text",size:"large",width:90}),end:Kn.createElement(ab,{checked:!1})})))}i(Cl,"LoadingLiquiditySourceList");function kl({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=fb(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),c=yr(o,n),u={Exchanges:zt.t("Exchanges"),Bridges:zt.t("Bridges")},p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&p.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=c.filter(S=>p.includes(S.type)),h=d.length===d.filter(S=>S.selected).length,f=i(()=>{d.forEach(S=>{h?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),m=d.map(S=>{let{selected:k,groupTitle:T,logo:v,id:w,...A}=S;return{id:`widget-setting-liquidity-source-${w.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:Ge.createElement(pb,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(T)},end:Ge.createElement(cb,{checked:k,disabled:l}),title:Ge.createElement(mb,{variant:"title",size:"xmedium"},zt.t(T)),selected:k,groupTitle:T,logo:v,...A}}),g=i(S=>{let k=S.target.value;a(k)},"handleSearch"),C=m;return r&&(C=m.filter(S=>wt(S.groupTitle,r))),Ge.createElement(oe,{header:{title:zt.t(t),suffix:Ge.createElement(yl,null,Ge.createElement(lb,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:f},h?zt.t("Deselect all"):zt.t("Select all")))}},Ge.createElement(ie,{view:!0},Ge.createElement(Ct,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:zt.t("Search {sourceType}",{sourceType:u[t]}),onChange:g}),e==="loading"&&Ge.createElement(Cl,null),!C.length&&r?Ge.createElement(Sl,null,Ge.createElement(db,{title:zt.t("No results found"),description:zt.t("Try using different keywords")})):e==="success"&&Ge.createElement(Vn,{disabled:l},C.map(S=>{let{groupTitle:k,...T}=S;return Ge.createElement(Ge.Fragment,{key:S.id},Ge.createElement(ub,{style:{height:"61px"},...T,selected:!1,hasDivider:!0}))}))))}i(kl,"LiquiditySourcePage");import{i18n as gb}from"@lingui/core";import Ei from"react";import{useNavigate as hb}from"react-router-dom";function Rf(){let t=hb(),e=je(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:l,loading:c}=xi({refetchQuote:n}),u=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),p=`../${$.settings}`,d=`../${$.wallets}`;return Ei.createElement(oe,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:gb.t("Routes"),suffix:Ei.createElement(fo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(p),a("refetchQuote",!0)}})}},Ei.createElement(ie,null,Ei.createElement(Hn,{fetch:l,loading:c,onClickOnQuote:u})))}i(Rf,"RoutesPage");import{i18n as ag}from"@lingui/core";import{Divider as sg,getCategoriesCount as Eb,SelectableCategoryList as Ib}from"@rango-dev/ui";import Qt,{useState as lg}from"react";import{useNavigate as Ab}from"react-router-dom";import{i18n as Tl}from"@lingui/core";import{Divider as kb,Image as Tb,ListItemButton as vb,NotFound as wb,Typography as ig}from"@rango-dev/ui";import nt,{useEffect as bb,useState as xb}from"react";var eg=i((t,e,o)=>t.filter(n=>cr(n.type,o)).filter(n=>Je(n.name,e)||Je(n.displayName,e)),"filterBlockchains");import{ImageContainer as yb,styled as tg}from"@rango-dev/ui";var og=tg("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ii=tg(Tn,{padding:0,margin:0,listStyle:"none",[`& ${yb}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Sb,Skeleton as ng}from"@rango-dev/ui";import Ai from"react";var Cb=20;function rg(){return Ai.createElement(Ii,null,Array.from(Array(Cb),t=>Ai.createElement(Sb,{key:t,hasDivider:!0,start:Ai.createElement(ng,{variant:"circular",width:35,height:35}),title:Ai.createElement(ng,{variant:"text",size:"large",width:90})})))}i(rg,"LoadingBlockchainList");function vl(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=xb(e),{fetchStatus:c}=y();bb(()=>{l([...eg(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?nt.createElement(wb,{title:Tl.t("No results found"),description:Tl.t("Try using different keywords")}):nt.createElement(Ii,{as:"ul",key:`${r}-${o}`},s.map(p=>nt.createElement(vb,{key:`${p.name}-${p.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(p),start:nt.createElement(Tb,{src:p.logo,size:30}),title:nt.createElement(ig,{variant:"title",size:"medium"},p.displayName),id:p.name}))),"renderList");return nt.createElement(nt.Fragment,null,a&&nt.createElement(nt.Fragment,null,nt.createElement(ig,{variant:"label",size:"large"},Tl.t("Select Chain")),nt.createElement(kb,{size:4})),nt.createElement(og,null,c==="loading"&&nt.createElement(rg,null),c==="success"&&u()))}i(vl,"BlockchainList");function Ni(t){let{type:e}=t,o=je(),[n,r]=lg(""),[a,s]=lg("ALL"),l=O.use.setToBlockchain(),c=O.use.setFromBlockchain(),{fetchStatus:u}=y(),p=Ab(),d=y().blockchains({type:e}),h=Eb(d),f=!t.hideCategory&&h!==1;return Qt.createElement(oe,{header:{title:ag.t("Select Chain")}},Qt.createElement(ie,{view:!0},f&&Qt.createElement(Qt.Fragment,null,Qt.createElement(Ib,{setCategory:s,category:a,blockchains:d,isLoading:u==="loading"}),Qt.createElement(sg,{size:24})),Qt.createElement(Ct,{value:n,autoFocus:!0,placeholder:ag.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Qt.createElement(sg,{size:16}),Qt.createElement(vl,{list:d,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:m=>{e==="custom-token"?p(`..?blockchain=${m.name}`,{replace:!0}):(e==="source"?c(m):l(m),o())}})))}i(Ni,"SelectBlockchainPage");import{i18n as Bi}from"@lingui/core";import{Divider as fg}from"@rango-dev/ui";import vo,{useState as Db}from"react";import{useNavigate as $b}from"react-router-dom";import{i18n as xl}from"@lingui/core";import{BlockchainsChip as Wi,Divider as dg,Image as mg,Skeleton as Lb,Tooltip as Pb,Typography as El}from"@rango-dev/ui";import Pe from"react";import{useEffect as Bb}from"react";var cg=["ETH","COSMOS","OSMOSIS"];function wl(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Nb),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let c=0;c<=l;c++){let u=n[c];s=s.filter(p=>u.name!==p)}}n.sort(Wb(s)),r=n.splice(a)}return{list:n,more:r}}i(wl,"prepare");function Nb(t,e){let o=cg,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(Nb,"sortByMostUsedBlockchains");function Wb(t){return i(function(o,n){let r=t.findIndex(c=>c===o.name),a=t.findIndex(c=>c===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(Wb,"generateSortByPreferredBlockchainsFor");function pg(t,e){return!!e.list.find(o=>o.name===t)}i(pg,"isInVisibleList");function bl(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();Bb(()=>{if(e?.selected){let a=wl(t,o,e);pg(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=wl(t,o,e);return{list:r.list,more:r.more,history:[]}}i(bl,"usePrepareBlockchainList");import{styled as Mb}from"@rango-dev/ui";var ug=Mb("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var _b=12;function Il(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=bl(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),c=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),p=s.more.length>0,d=s.more.length===1,h=!d&&p;return Pe.createElement(Pe.Fragment,null,Pe.createElement(dg,{size:12}),Pe.createElement(El,{variant:"label",size:"large"},xl.t("Select Chain")),Pe.createElement(dg,{size:12}),Pe.createElement(ug,null,l==="loading"&&Array.from(Array(_b),f=>Pe.createElement(Lb,{key:f,variant:"rounded",height:50})),l==="success"&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Wi,{selected:!n,onClick:()=>{o==="from"?u():c()}},Pe.createElement(El,{variant:"body",size:"xsmall",color:"secondary500"},xl.t("All"))),s.list.map(f=>Pe.createElement(Pb,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:W()},Pe.createElement(Wi,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Pe.createElement(mg,{src:f.logo,size:30})))),d?Pe.createElement(Wi,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Pe.createElement(mg,{src:s.more[0].logo,size:30})):null,h?Pe.createElement(Wi,{onClick:a,key:"more-blockchains"},Pe.createElement(El,{variant:"body",size:"xsmall",color:"secondary500"},xl._("More +{count}",{count:s.more.length}))):null)))}i(Il,"BlockchainsSection");function Al(t){let{type:e}=t,o=$b(),n=je(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:c,setToBlockchain:u}=O(),{getBalanceFor:p}=y(),[d,h]=Db(""),m=(e==="source"?r:a)?.name??"",g=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:m,searchFor:d,getBalanceFor:p}),S=i(v=>{e==="source"?c(v):u(v)},"updateBlockchain"),k=i(v=>{e==="source"?s({token:v,meta:{blockchains:g,tokens:C}}):l({token:v,meta:{blockchains:g,tokens:C}})},"updateToken"),T={source:Bi.t("Source"),destination:Bi.t("Destination")};return vo.createElement(oe,{header:{title:Bi.t("Swap {type}",{type:T[e]})}},vo.createElement(ie,null,vo.createElement(Il,{blockchains:g,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o($.blockchains),onChange:v=>{S(v)}}),vo.createElement(fg,{size:24}),vo.createElement(Ct,{value:d,autoFocus:!0,placeholder:Bi.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>h(""),onChange:v=>h(v.target.value)}),vo.createElement(fg,{size:16}),vo.createElement(Fn,{list:C,selectedBlockchain:m,searchedFor:d,type:e,onChange:v=>{k(v);let w=g.find(A=>v.blockchain===A.name);w&&S(w),n()}})))}i(Al,"SelectSwapItemsPage");import{i18n as Bl}from"@lingui/core";import{Alert as cx,Button as px,styled as ux}from"@rango-dev/ui";import wo from"react";import{useInRouterContext as dx,useSearchParams as mx}from"react-router-dom";import{i18n as kg}from"@lingui/core";import{Divider as Tg,InfoIcon as zb,SlippageIcon as Qb,TextField as qb,Tooltip as Hb,Typography as vg}from"@rango-dev/ui";import rt from"react";import{Chip as Fb,styled as jn,TextField as Ob}from"@rango-dev/ui";var gg=jn("div",{paddingTop:"$5",padding:"$10 $5"}),hg=jn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ob}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),yg=jn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Mi=jn("div",{maxWidth:"280px",padding:"$10"}),Sg=jn(Fb,{width:"61px",flexShrink:0});import{i18n as Nl}from"@lingui/core";import{Typography as Ub}from"@rango-dev/ui";import Xn from"react";function Cg(){return Xn.createElement(Mi,null,Xn.createElement(Ub,{variant:"label",size:"medium",color:"neutral700"},Nl.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Xn.createElement("br",null),Xn.createElement("br",null),Xn.createElement("b",null,Nl.t("Warning")),":\xA0",Nl.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(Cg,"SlippageTooltipContent");function Wl(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return rt.createElement(gg,null,rt.createElement(yg,null,rt.createElement(Qb,{size:16,color:"gray"}),rt.createElement(Tg,{direction:"horizontal",size:4}),rt.createElement(vg,{variant:"title",size:"xmedium"},kg.t("Slippage tolerance per swap")),rt.createElement(Tg,{direction:"horizontal",size:4}),rt.createElement(Hb,{container:W(),side:"top",sideOffset:4,content:rt.createElement(Cg,null)},rt.createElement(zb,{color:"gray"}))),rt.createElement(hg,null,Zc.map((r,a)=>{let s=`slippage-${a}`;return rt.createElement(Sg,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),rt.createElement(qb,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=tp&&s<=ep?n(s):n(null)},suffix:o&&rt.createElement(vg,{variant:"body",size:"small"},"%"),placeholder:kg.t("Custom")})))}i(Wl,"Slippage");import{i18n as dt}from"@lingui/core";import{AutoThemeIcon as wg,BridgesIcon as Gb,ChevronRightIcon as Li,DarkModeIcon as bg,Divider as Yn,ExchangeIcon as Vb,InfinityIcon as Kb,InfoIcon as jb,LanguageIcon as Xb,LightModeIcon as xg,List as Yb,ListItem as Zb,ListItemButton as Jb,Skeleton as Rb,styled as ex,Switch as tx,Tabs as ox,TargetIcon as nx,Tooltip as rx,Typography as Ye}from"@rango-dev/ui";import D from"react";import{useNavigate as ix}from"react-router-dom";var ax=ex("div",{width:"202px",height:"$40"}),sx=[{id:"light",icon:D.createElement(xg,{color:"black",size:24}),tooltip:D.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Light"))},{id:"dark",icon:D.createElement(bg,{color:"black",size:24}),tooltip:D.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Dark"))},{id:"auto",icon:D.createElement(wg,{color:"black",size:24}),tooltip:D.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Auto"))}],lx=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(wg,{...e});case"dark":return D.createElement(bg,{...e});default:return D.createElement(xg,{...e})}},"getThemeIcon");function Eg(){let t=ix(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=Rt(),s=a.find(P=>P.local===r)?.label,l=y().fetchStatus,c=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:p}}=y(),d=y().customTokens(),h=Ve("theme",p),f=Ve("liquiditySource",p),m=Ve("language",p),g=Ve("customTokens",p),C=y().infiniteApprove,S=y().toggleInfiniteApprove,k=yr(c,u),T=k.filter(P=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(P.type)),v=T.length,w=T.filter(P=>P.selected).length,A=k.filter(P=>P.type==="DEX"),L=A.length,b=A.filter(P=>P.selected).length,E=i((P,X)=>{switch(l){case"loading":return D.createElement(Rb,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(Ye,{variant:"body",size:"medium",color:"$error500"},dt.t("Loading failed"));default:return D.createElement(Ye,{variant:"body",size:"medium"},`${P} / ${X}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Bridges")),end:D.createElement(D.Fragment,null,E(w,v),D.createElement(Yn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),onClick:()=>t($.bridges),start:D.createElement(Gb,{color:"gray",size:16})},N={id:"widget-setting-exchange-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Exchanges")),end:D.createElement(D.Fragment,null,E(b,L),D.createElement(Yn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),start:D.createElement(Vb,{color:"gray",size:16}),onClick:()=>t($.exchanges)},I={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(Ye,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Yn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),start:D.createElement(nx,{color:"gray",size:16}),onClick:()=>t($.customTokens)},B={id:"widget-setting-language-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Language")),start:D.createElement(Xb,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(Ye,{variant:"body",size:"medium"},s),D.createElement(Yn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),onClick:()=>t($.languages)},j={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Infinite approval")),D.createElement(Yn,{direction:"horizontal",size:4}),D.createElement(rx,{side:"top",sideOffset:4,container:W(),content:D.createElement(Mi,null,D.createElement(Ye,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,dt.t("Warning")),":\xA0",dt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(jb,{color:"gray"}))),start:D.createElement(Kb,{color:"gray",size:16}),end:D.createElement(tx,{checked:C}),onClick:S},te={id:"widget-setting-theme-item-btn",type:D.createElement(Zb,null),title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Theme")),end:D.createElement(ax,null,D.createElement(ox,{container:W(),items:sx,value:n,onChange:P=>o(P.id),type:"primary",borderRadius:"small"})),start:lx(n)},J=f?[]:[x,N];return g||J.push(I),m||J.push(B),J.push(j),!e?.singleTheme&&!h&&J.push(te),D.createElement(Yb,{type:D.createElement(Jb,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:J})}i(Eg,"SettingsLists");var fx=ux("div",{paddingLeft:"$8"});function Ig(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=mx(),r=dx(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return wo.createElement(oe,{header:{title:Bl.t("Settings")}},wo.createElement(ie,null,o&&wo.createElement(cx,{type:"info",variant:"alarm",title:Bl.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:wo.createElement(fx,null,wo.createElement(px,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Bl.t("Reset")))}),wo.createElement(Wl,null),wo.createElement(Eg,null)))}i(Ig,"SettingsPage");import{i18n as tE}from"@lingui/core";import{cancelSwap as oE}from"@rango-dev/queue-manager-rango-preset";import{useManager as nE}from"@rango-dev/queue-manager-react";import{Alert as rE}from"@rango-dev/ui";import Kl from"react";import{useParams as iE}from"react-router-dom";import{i18n as it}from"@lingui/core";import{getCurrentNamespaceOfOrNull as Dx,getCurrentStep as $x,getRelatedWalletOrNull as Fx}from"@rango-dev/queue-manager-rango-preset";import{Button as ih,CopyIcon as Ox,Divider as Ux,DoneIcon as zx,IconButton as Qx,QuoteCost as qx,RangoExplorerIcon as Hx,StepDetails as Gx,Tooltip as ah,Typography as bo,useCopyToClipboard as Vx}from"@rango-dev/ui";import{useWallets as Kx}from"@rango-dev/wallets-react";import sh from"bignumber.js";import{PendingSwapNetworkStatus as zi}from"rango-types";import K,{useEffect as lh,useRef as jx,useState as ch}from"react";import{useNavigate as Xx}from"react-router-dom";import{i18n as eo}from"@lingui/core";var gx=[eo.t("Sunday"),eo.t("Monday"),eo.t("Tuesday"),eo.t("Wednesday"),eo.t("Thursday"),eo.t("Friday"),eo.t("Saturday")];function Ag(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?eo.t("Today"):`${gx[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ag,"timeSince");function Ng(t){return t.finishTime?Ag(parseInt(t.finishTime)):Ag(parseInt(t.creationTime))}i(Ng,"getSwapDate");import{PendingSwapNetworkStatus as Di}from"rango-types";import $i from"react";import{i18n as Pi}from"@lingui/core";import{Button as Wg,Divider as Ml,MessageBox as hx}from"@rango-dev/ui";import to from"react";var Bg=i(({onCancel:t,onClose:e})=>to.createElement(to.Fragment,null,to.createElement(Ml,{size:20}),to.createElement(hx,{type:"error",title:Pi.t("Cancel Swap"),description:Pi.t("Are you sure you want to cancel this swap?")}),to.createElement(Ml,{size:32}),to.createElement(Wg,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Pi.t("Yes, Cancel it")),to.createElement(Ml,{size:12}),to.createElement(Wg,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Pi.t("No, Continue"))),"CancelContent");import{i18n as _i}from"@lingui/core";import{Button as Mg,Divider as Ll,MessageBox as yx,Typography as Sx}from"@rango-dev/ui";import qt from"react";var Lg=i(({onDelete:t,onClose:e})=>qt.createElement(qt.Fragment,null,qt.createElement(Ll,{size:20}),qt.createElement(yx,{type:"error",title:_i.t("Delete Transaction"),description:_i.t("Are you sure you want to delete this swap?")}),qt.createElement(Ll,{size:32}),qt.createElement(Mg,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},_i.t("Yes, Delete it")),qt.createElement(Ll,{size:12}),qt.createElement(Mg,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},qt.createElement(Sx,{variant:"title",size:"medium",color:"primary"},_i.t("No, Cancel")))),"DeleteContent");import{i18n as Pl}from"@lingui/core";import{PendingSwapNetworkStatus as _l}from"rango-types";var Dl={[_l.WaitingForNetworkChange]:{type:"loading",title:Pl.t("Change Network")},[_l.WaitingForConnectingWallet]:{type:"warning",title:Pl.t("Connect Wallet")},[_l.NetworkChanged]:{type:"success",title:Pl.t("Network Changed")}};import{warn as Cx}from"@rango-dev/logging-core";import{MessageBox as kx,Wallet as Tx}from"@rango-dev/ui";import{useWallets as vx}from"@rango-dev/wallets-react";import Jo,{useState as wx}from"react";import{styled as Pg}from"@rango-dev/ui";var _g=Pg("div",{display:"flex",justifyContent:"center"}),l5=Pg("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Dg=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,c]=wx(),{getWalletInfo:u,state:p}=vx(),d=n?.walletType,h=d?ln(p(d)):null,f=d?u(d):null,m=a&&!!d&&!!h&&!!f,{list:g}=ft(),C=i(()=>{if(d){let S=g.find(k=>k.type===d);S?c(S):Cx(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${S}`))}},"handleWalletItemClick");return Jo.createElement(Jo.Fragment,null,Jo.createElement(kx,{type:e,title:o,description:r}),m&&Jo.createElement(_g,null,Jo.createElement(Tx,{container:W(),title:f.name,image:f.img,type:d,state:h,link:f.installLink,disabled:s,onClick:C})),Jo.createElement(po,{wallet:l,onClose:()=>{c(void 0)}}))},"WalletStateContent");function $l(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,c=e===Di.WaitingForNetworkChange||e===Di.WaitingForConnectingWallet||e===Di.NetworkChanged;return $i.createElement(Z,{open:!!e,onClose:o,container:document.getElementById(De.SWAP_BOX_ID)||document.body},c&&$i.createElement(Dg,{type:Dl[e].type,title:Dl[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==Di.WaitingForNetworkChange}),e==="delete"&&$i.createElement(Lg,{onClose:o,onDelete:n}),e==="cancel"&&$i.createElement(Bg,{onClose:o,onCancel:r}))}i($l,"SwapDetailsModal");import{i18n as Zn}from"@lingui/core";import{Button as Fl,Divider as Jn,MessageBox as $g,TokenAmount as bx,Typography as Fg}from"@rango-dev/ui";import Ce from"react";import{useNavigate as xx}from"react-router-dom";function Ol(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:c,chain:u,percentageChange:p,description:d,diagnosisUrl:h}=t,f=xx(),{showProfileBanner:m}=re();return Ce.createElement(Z,{open:e,onClose:o,container:document.getElementById(De.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement($g,{type:"success",title:Zn.t("Swap Successful")},Ce.createElement(bx,{direction:"vertical",tooltipContainer:W(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:c,chain:u,percentageChange:p}),Ce.createElement(Jn,{size:12}),Ce.createElement(Fg,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement($g,{type:"error",title:Zn.t("Transaction Failed"),description:d}),Ce.createElement(Jn,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,m&&Ce.createElement(Ce.Fragment,null,Ce.createElement("img",{src:"https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.png",alt:"Profile Banner"}),Ce.createElement(Jn,{size:30})),Ce.createElement(Fl,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Zn.t("Done"))),Ce.createElement(Jn,{size:12}),h&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Fl,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},Zn.t("Diagnosis")),Ce.createElement(Jn,{size:12})),Ce.createElement(Fl,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(Fg,{variant:"title",size:"medium",color:"primary"},Zn.t("See Details"))))}i(Ol,"SwapDetailsCompleteModal");import _x from"react";import{i18n as Bx}from"@lingui/core";import{Alert as th,IconButton as Mx,LinkIcon as Lx}from"@rango-dev/ui";import oo,{Fragment as Px}from"react";import{Alert as Ix,ChevronDownIcon as Ax,IconButton as Nx}from"@rango-dev/ui";import en,{useState as Wx}from"react";import{css as Rn,darkTheme as Og,styled as Ht,Typography as Ex}from"@rango-dev/ui";var Ug=Ht("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Fi=Ht("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Og} &`]:{color:"$secondary500"}}}}}),zg=Ht(Tn,{padding:"$0 $20 $20 $20"}),V5=Ht("div",{display:"flex",flexDirection:"column",gap:"$10"}),Qg=Ht("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),K5=Ht("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Ro=Rn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Og} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),qg=Rn({padding:"$5 0"}),Oi=Rn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Hg=Rn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Gg=Rn({width:"100%",padding:"0 $20 $10"}),Vg=Ht("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Kg=Ht("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ui=Ht(Ex,{wordBreak:"break-word"});import{styled as Ul}from"@rango-dev/ui";var jg=Ul("div",{display:"flex",flexDirection:"column",gap:"$10"}),Xg=Ul("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Yg=Ul("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Zg(t){let{message:e}=t,[o,n]=Wx(!1);return en.createElement(Ix,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&en.createElement(Nx,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},en.createElement(Xg,{rotated:o},en.createElement(Ax,{size:12,color:"gray"}))),footer:en.createElement(Yg,{open:o},en.createElement(Ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Zg,"FailedAlert");import{i18n as Jg}from"@lingui/core";import{Alert as zl,Button as Rg}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Ql}from"rango-types";import er from"react";function eh(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?er.createElement(zl,{type:"warning",title:n.shortMessage,action:er.createElement(Rg,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Ql.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Jg.t("Change"))}):r===Ql.WaitingForConnectingWallet?er.createElement(zl,{type:"warning",title:n.shortMessage,action:er.createElement(Rg,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Ql.WaitingForConnectingWallet)}},Jg.t("Connect"))}):er.createElement(zl,{type:"warning",title:n.shortMessage})}i(eh,"WarningAlert");function ql(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Cn(a),c=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,p=u&&!s||c&&!a.explorerUrl?.length;return oo.createElement(jg,null,a.explorerUrl?.map((d,h,f)=>{let m=h+d.url,g=h===f.length-1,C=(g&&u||c)&&!p,S=g&&a.status==="failed";return oo.createElement(Px,{key:m},oo.createElement(th,{type:g&&(C&&"loading"||S&&"error")||"success",title:d.description?`${d.description} Tx`:Bx.t("View transaction"),action:d.url&&oo.createElement(Mx,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},oo.createElement(Lx,{size:12}))}))}),p&&oo.createElement(th,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&oo.createElement(eh,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&oo.createElement(Zg,{message:r}))}i(ql,"SwapDetailsAlerts");var oh=2e3;var nh=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:st(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:st(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:on(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(c=>({from:{chain:{displayName:st(c.fromBlockchain,e)??"",image:c.fromBlockchainLogo??""}},to:{chain:{displayName:st(c.toBlockchain,e)??"",image:c.toBlockchainLogo??""}},swapper:{displayName:on(c.swapperId,o)??"",image:c.swapperLogo??"",type:c.swapperType}})):[],alerts:_x.createElement(ql,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function rh(t){if(Cn(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(rh,"getStepState");function Hl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Kx(),c=y().blockchains(),u=y().swappers(),{findToken:p}=y(),d=O.use.retry(),h=re.use.isActiveTab(),f=Xx(),[m,g]=Vx(oh),C=jx(null),[S,k]=ch(null),[T,v]=ch(null),w=i(()=>{r(),k(null)},"onCancel"),A=be.use.getNotifications(),L=be.use.removeNotification(),b=A(),E=$x(e),x=E?.networkStatus;lh(()=>{b.find(mt=>mt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),L(e.requestId)):T&&v(null))},[e.status,e.requestId]),lh(()=>{P?k(zi.WaitingForNetworkChange):x===zi.WaitingForConnectingWallet||x===zi.NetworkChanged?k(x):k(null)},[x]);let N=lu(e),I=E?Dx(e,E):null,B=E?Fx(e,E):null,j=Ng(e),te=cu(e),J=i(ve=>!!l(ve)?.mobileWallet,"isMobileWallet"),P=x===zi.WaitingForNetworkChange&&!!I&&!!B?.walletType&&(J(B.walletType)||a(B.walletType,I.network)),X=P?s.bind(null,B.walletType,[{namespace:I.namespace,network:I.network}]):void 0,se=su(e,E),z=nh({swap:e,switchNetwork:X,showNetworkModal:x,setNetworkModal:k,message:se,blockchains:c,swappers:u}),me=z.length,[vt,Ze]=[e.steps[0],e.steps[me-1]],le=Ze.outputAmount||Ze.expectedOutputAmountHumanReadable,at=e.steps.reduce((ve,mt)=>ve+parseFloat(mt.feeInUsd||""),0),G=e.steps.find(ve=>ve.diagnosisUrl)?.diagnosisUrl,_=M(parseFloat(le||"0")*(Ze.toUsdPrice||0),4,4),H=M(parseFloat(e.inputAmount)*(vt.fromUsdPrice||0),4,4),V=le?new sh(le).multipliedBy(Ze.toUsdPrice||0).toString():"",fe=new sh(e.inputAmount).multipliedBy(vt.fromUsdPrice||0).toString(),ne=Pt(H,_),ge=se.detailedMessage.content||se.shortMessage,Fe=e.status==="success"?it.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(le,6,6),token:z[me-1].to.token.displayName,conciseAddress:gr(e.wallets[z[me-1].to.chain.displayName]?.address||""),chain:z[me-1].to.chain.displayName}}):K.createElement(Kg,null,K.createElement(bo,{variant:"body",size:"medium",color:"neutral700",align:"center"},ge?"":it.t("Transaction was not sent."),N?`${it.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:N.outputAmount,symbol:N.symbol,blockchain:N.blockchain}})}`:""),ge&&K.createElement(Ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},K.createElement("b",null,"Reason:")," ",ge));return K.createElement(oe,{header:{title:it.t("Swap Details"),onCancel:e.status==="running"?()=>k("cancel"):void 0,suffix:e.status!=="running"&&K.createElement(Vt,null,K.createElement(ih,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>k("delete")},K.createElement(bo,{size:"medium",variant:"label",color:"error"},it.t("Delete"))))},footer:te&&!T&&K.createElement(ih,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let ve=Nr(e,c,p);d(ve),setTimeout(()=>{f("../../")},0)}},it.t("Try again"))},K.createElement(ie,{compact:!0,view:!0},K.createElement(Fi,null,K.createElement("div",{className:Ro()},K.createElement(bo,{variant:"label",size:"large",color:"neutral700"},`${it.t("Request ID")}`),K.createElement("div",{className:Oi()},K.createElement(bo,{variant:"label",size:"small",color:"neutral700"},o),K.createElement(ah,{container:W(),content:m?it.t("Copied To Clipboard"):it.t("Copy Request ID"),open:m||void 0,side:"bottom",alignOffset:-16,align:"end"},K.createElement(Qx,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:g.bind(null,o||"")},m?K.createElement(zx,{size:16,color:"secondary"}):K.createElement(Ox,{size:16,color:"gray"}))),K.createElement(Vg,{target:"_blank",href:`${yc}/swap/${o}`},K.createElement(ah,{container:W(),content:it.t("View on Rango Explorer"),side:"bottom"},K.createElement(Hx,{size:20}))))),K.createElement("div",{className:Ro()},K.createElement(bo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?it.t("Finished at"):it.t("Created at")),K.createElement(bo,{variant:"label",size:"small",color:"neutral700"},j))),K.createElement("div",{className:Hg()},K.createElement(qx,{fee:M(String(at),2,2),time:an(pr(e.steps)),steps:me}),K.createElement(Nn,{from:{price:{value:M(e.inputAmount,6,6),usdValue:H,realUsdValue:fe,realValue:e.inputAmount},token:{displayName:z[0].from.token.displayName,image:z[0].from.token.image},chain:{image:z[0].from.chain.image,displayName:z[0].from.chain.displayName}},to:{price:{value:M(le,6,6),usdValue:_,realUsdValue:V,realValue:le||""},token:{displayName:z[me-1].to.token.displayName,image:z[me-1].to.token.image},chain:{image:z[me-1].to.chain.image,displayName:z[me-1].to.chain.displayName}},percentageChange:M(ne,2,2),warningLevel:_t(ne??0)})),K.createElement("div",{className:Gg()},K.createElement(bo,{variant:"title",size:"small"},it.t("Swaps steps"))),K.createElement(Ux,{size:8}),K.createElement(zg,{ref:C},z.map((ve,mt)=>{let ec=mt,tn=rh(e.steps[mt]),$h=tn==="error"||tn==="in-progress"||tn==="warning"||tn==="completed"&&mt===z.length-1;return K.createElement(Gx,{key:ec,step:ve,type:"swap-progress",ref:C,state:tn,hasSeparator:mt!==0,tabIndex:ec,isFocused:$h,tooltipContainer:W()})}))),K.createElement($l,{state:S,onClose:()=>k(null),onCancel:w,onDelete:n,message:se.detailedMessage.content,currentStepWallet:B,walletButtonDisabled:!h}),K.createElement(Ol,{open:!!T,diagnosisUrl:G,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(le,6,6),usdValue:_,realUsdValue:V,realValue:le||"",percentageChange:M(ne,2,2),token:{displayName:z[me-1].to.token.displayName,image:z[me-1].to.token.image},chain:{image:z[me-1].to.chain.image},description:Fe}))}i(Hl,"SwapDetails");import{i18n as qi}from"@lingui/core";import{Divider as dh,NotFound as eE,Skeleton as or,Typography as Hi}from"@rango-dev/ui";import ke from"react";import{i18n as Yx}from"@lingui/core";import{Divider as Zx,Skeleton as Jx,Typography as Rx}from"@rango-dev/ui";import Te from"react";import{css as Tt,styled as Gl}from"@rango-dev/ui";var ph=Gl("div",{width:"100%",height:"100%",padding:"$10 $20"}),tr=Gl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Qi=Gl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),iK=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),aK=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),sK=Tt({paddingTop:"$15",display:"flex"}),lK=Tt({padding:"$15 $0"}),cK=Tt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),pK=Tt({paddingBottom:"$10"}),uK=Tt({display:"flex",justifyContent:"start",alignItems:"center"}),dK=Tt({paddingTop:"$5",display:"flex",alignItems:"center"}),mK=Tt({display:"flex",alignItems:"center"}),fK=Tt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),uh=Tt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Vl(){return Te.createElement(ph,null,Te.createElement(Mn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(Rx,{variant:"title",size:"small"},Yx.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(tr,null,Te.createElement(Nt,{separator:!1}),Te.createElement("div",{className:uh()},Te.createElement(Zx,{direction:"horizontal",size:20}),Te.createElement(Jx,{height:22,variant:"rectangular"}))),Te.createElement(Qi,null),Te.createElement(tr,null,Te.createElement(Nt,{separator:!1})),Te.createElement(Qi,null),Te.createElement(tr,null,Te.createElement(Nt,{separator:!1})),Te.createElement(Qi,null),Te.createElement(tr,null,Te.createElement(Nt,{separator:!1}))))}i(Vl,"LoadingSwapDetails");function mh(t){let{requestId:e,showSkeleton:o}=t;return ke.createElement(oe,{header:{title:qi.t("Swap Details"),suffix:ke.createElement(Vt,null)}},o&&ke.createElement(Ug,null,ke.createElement(Fi,null,ke.createElement("div",{className:Ro()},ke.createElement(Hi,{variant:"label",size:"large",color:"neutral700"},`${qi.t("Request ID")}`),ke.createElement("div",{className:Oi()},ke.createElement(Hi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(or,{width:60,height:10,variant:"rounded"})),ke.createElement(dh,{direction:"horizontal",size:4}),ke.createElement(or,{width:16,height:16,variant:"rectangular"}),ke.createElement(dh,{direction:"horizontal",size:4}),ke.createElement(or,{width:16,height:16,variant:"rectangular"}))),ke.createElement("div",{className:Ro()},ke.createElement(Hi,{className:qg(),variant:"label",size:"large",color:"neutral700"},ke.createElement(or,{width:60,height:10,variant:"rounded"})),ke.createElement(Hi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(or,{width:60,height:10,variant:"rounded"})))),ke.createElement(Vl,null)),!o&&ke.createElement(Qg,null,ke.createElement(eE,{title:qi.t("Not found"),description:qi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(mh,"SwapDetailsPlaceholder");function fh(){let{manager:t,state:e}=nE(),o=!e.loadedFromPersistor,n=pt(t),{requestId:r}=iE(),a=je(),{fetchStatus:s}=y();if(!r)return Kl.createElement(rE,{containerStyles:{margin:"20px"},type:"error",title:tE.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",c=r?n.find(({swap:h})=>h.requestId===r):void 0,u=i(()=>{if(c?.id){let h=t?.get(c.id);h&&oE(h)}},"onCancel"),p=i(async()=>{if(c?.id)try{t?.deleteQueue(c.id),a()}catch(h){console.log(h)}},"onDelete"),d=c?.swap;return!d||l?Kl.createElement(mh,{requestId:r,showSkeleton:l}):Kl.createElement(Hl,{swap:d,requestId:r,onCancel:u,onDelete:p})}i(fh,"SwapDetailsPage");import{i18n as gh}from"@lingui/core";import{Divider as aE,getCategoriesCount as sE,SelectableCategoryList as lE,styled as yh,Typography as cE,Wallet as pE}from"@rango-dev/ui";import Bt,{useState as hh}from"react";var uE=yh("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),dE=yh(ie,{textAlign:"center"});function Sh(){let{fetchStatus:t}=y(),[e,o]=hh("ALL"),n=y().blockchains(),{config:r}=y(),[a,s]=hh(),l=re.use.isActiveTab(),{list:c}=ft(),u=Oc(c,n),d=sE(u)!==1,h=Uc(c,e),f=i(m=>{Ac(c,r.multiWallets)||s(m)},"handleWalletItemClick");return Bt.createElement(oe,{header:{title:gh.t("Connect Wallets")}},Bt.createElement(dE,null,d&&Bt.createElement(Bt.Fragment,null,Bt.createElement(lE,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Bt.createElement(aE,{size:24})),Bt.createElement(cE,{variant:"title",size:"xmedium",align:"center"},gh.t("Choose a wallet to connect.")),Bt.createElement(uE,null,h.map((m,g)=>{let C=`wallet-${g}-${m.type}`;return Bt.createElement(pE,{key:C,...m,container:W(),onClick:()=>f(m),isLoading:t==="loading",disabled:!l})}),Bt.createElement(po,{wallet:a,onClose:()=>{s(void 0)}}))))}i(Sh,"WalletsPage");function Ch(){return mu(),Pa(),mE([{path:$.home,element:_e.createElement(jf,null)},{path:$.routes,element:_e.createElement(Rf,null)},{path:$.fromSwap,children:[{index:!0,element:_e.createElement(Al,{type:"source"})},{path:$.blockchains,element:_e.createElement(Ni,{type:"source"})}]},{path:$.toSwap,children:[{index:!0,element:_e.createElement(Al,{type:"destination"})},{path:$.blockchains,element:_e.createElement(Ni,{type:"destination"})}]},{path:$.settings,children:[{index:!0,element:_e.createElement(Ig,null)},{path:$.languages,element:_e.createElement(Yf,null)},{path:$.exchanges,element:_e.createElement(kl,{sourceType:"Exchanges"})},{path:$.bridges,element:_e.createElement(kl,{sourceType:"Bridges"})},{path:$.customTokens,children:[{index:!0,element:_e.createElement(nf,null)},{path:$.addCustomTokens,children:[{index:!0,element:_e.createElement(ju,null)},{path:$.blockchains,element:_e.createElement(Ni,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:$.swaps,children:[{index:!0,element:_e.createElement(bf,null)},{path:$.swapDetails,element:_e.createElement(fh,null)}]},{path:$.wallets,element:_e.createElement(Sh,null)},{path:$.confirmSwap,element:_e.createElement(qm,null)}])}i(Ch,"AppRoutes");import{useQueueManager as vE}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as wE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as bE}from"rango-sdk";import{useContext as xE,useEffect as Eh,useState as Ih}from"react";import{globalCss as fE}from"@rango-dev/ui";var kh=i(()=>fE({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function Th(){let{setWatermark:t,setShowProfileBanner:e}=re();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Lt("BASE_URL")}/meta/dapp/config?apiKey=${Lt("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(Th,"useFetchApiConfig");import{useWallets as gE}from"@rango-dev/wallets-react";import{useEffect as hE,useRef as yE}from"react";function vh(){let{connect:t,state:e}=gE(),o=yE({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);hE(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(vh,"useForceAutoConnect");import{isApprovalTX as SE,RouteEventType as wh,StepEventType as bh,StepExecutionEventStatus as CE,WidgetEvents as Gi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as xh}from"react";function jl(){let t=be.use.setNotification(),{connectedWallets:e,fetchBalances:o}=y();xh(()=>{let n=i(r=>{let{event:a,step:s,route:l}=r;if(a.type===bh.TX_EXECUTION&&a.status===CE.TX_SENT&&!SE(s)||a.type===bh.SUCCEEDED){let u=e.find(d=>d.chain===s?.fromBlockchain),p=s?.fromBlockchain!==s?.toBlockchain&&e.find(d=>d.chain===s?.toBlockchain);u&&o([u]),p&&o([p])}t(a,l)},"handleStepEvent");return he.on(Gi.StepEvent,n),()=>he.off(Gi.StepEvent,n)},[he,e]),xh(()=>{let n=i(r=>{let{event:a,route:s}=r;(a.type===wh.FAILED||a.type===wh.SUCCEEDED)&&t(a,s)},"handleRouteEvent");return he.on(Gi.RouteEvent,n),()=>he.off(Gi.RouteEvent,n)},[he])}i(jl,"useSubscribeToWidgetEvents");import{useManager as kE}from"@rango-dev/queue-manager-react";import{useEffect as TE}from"react";function Xl(){let{isSynced:t,syncNotifications:e}=be(),{manager:o,state:n}=kE();TE(()=>{be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(pt(o))},[be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Xl,"useSyncNotifications");function Yl(){vh(),kh(),jl(),Xl();let t=y().blockchains(),{canSwitchNetworkTo:e}=jr(),[o,n]=Ih(""),[r,a]=Ih(),s=xE(xr),l=t.filter(bE),{fetchApiConfig:c}=Th();Eh(()=>()=>du(),[]),vE({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Eh(()=>(ao.init(),be.persist.hasHydrated()||be.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===wE(o)?.[0]&&n("")}),c().catch(console.log),ao.destroy),[])}i(Yl,"useBootstrap");import{styled as EE}from"@rango-dev/ui";var Ah=EE("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Vi(){Yl();let{config:t}=y(),{activeTheme:e}=Uo(t?.theme||{}),{activeLanguage:o}=Rt();return Zl.createElement(IE,{language:o},Zl.createElement(Ah,{id:"swap-container",className:e()},Zl.createElement(Ch,null)))}i(Vi,"Main");import{setSolanaSignerConfig as KE}from"@rango-dev/signer-solana";import Rl,{useEffect as Ph,useMemo as jE}from"react";import{useState as AE}from"react";var NE=i(()=>{let[t,e]=AE(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=Ic(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Nh=NE;import{checkWaitingForNetworkChange as WE,makeQueueDefinition as BE}from"@rango-dev/queue-manager-rango-preset";import{Provider as ME}from"@rango-dev/queue-manager-react";import{useWallets as LE}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as PE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as _E}from"rango-types";import DE,{useMemo as $E}from"react";function FE(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=LE(),l=$E(()=>BE({API_KEY:t.apiKey||Lt("API_KEY"),BASE_URL:Lt("BASE_URL"),emitter:{emit:he.emit}}),[t.apiKey]),{blockchains:c,connectedWallets:u}=y(),p=c(),d={blockchains:u.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,w)=>a(v,w.network)?await r(v,[w]):void 0,"switchNetwork"),f=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=p.filter(v=>v.enabled).reduce((v,w)=>(v[w.name]=w,v),{}),g=p.filter(_E),C=i(v=>{let{supportedChains:w}=s(v);return mr(w)},"getSupportedChainNames"),S=e(),k={meta:{blockchains:m,evmBasedChains:g,evmNetworkChainInfo:PE(g),getSupportedChainNames:C},getSigners:o,wallets:d,providers:S,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:f},T=re.use.isActiveTab();return DE.createElement(ME,{queuesDefs:[l],context:k,onPersistedDataLoaded:v=>{WE(v)},isPaused:!T},t.children)}i(FE,"QueueManager");var Wh=FE;import{useManager as qE}from"@rango-dev/queue-manager-react";import HE,{createContext as GE,useContext as VE}from"react";function Bh(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=O();return i(u=>{let{fromBlockchain:p,fromToken:d,toBlockchain:h,toToken:f,requestAmount:m}=u,g={blockchains:e,tokens:o};if(p!==void 0){let C=e.find(S=>S.name===p)??null;n(C)}if(d!==void 0){let C=d?t(d)??null:null;r({meta:g,token:C})}if(h!==void 0){let C=e.find(S=>S.name===h)??null;a(C)}if(f!==void 0){let C=f?t(f)??null:null;s({meta:g,token:C})}m!==void 0&&l(m)},"updateQuoteInputs")}i(Bh,"useUpdateQuoteInputs");import{cancelSwap as OE,getCurrentNamespaceOfOrNull as UE,getCurrentStep as zE,getRelatedWalletOrNull as QE}from"@rango-dev/queue-manager-rango-preset";var Ki=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return pt(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=Nr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&OE(o)}getCurrentStepInfo(e){let o=zE(e);return{step:o,wallet:o?QE(e,o):null,network:o?UE(e,o)?.network:null}}};var Mh=GE(void 0);function Jl(t){let{manager:e}=qE(),o=re.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:l}=y(),c=new Ki(e,{retrySwap:n,findToken:r}),{fetchingWallets:u}=y(),p=Lc(a()),d=y().blockchains(),h=y().tokens(),f=y().swappers(),m=y().fetchStatus,g=Rt().resetLanguage,C=be().getNotifications(),S=be().clearNotifications,k=Bh(),{fromBlockchain:T,toBlockchain:v,fromToken:w,toToken:A,inputAmount:L}=O(),b={isActiveTab:o,setCurrentTabAsActive:ao.forceClaim,history:c,wallets:{isLoading:u,details:s(),totalBalance:p,refetch:async E=>l(E)},meta:{blockchains:d,tokens:h,swappers:f,loadingStatus:m,findToken:r},resetLanguage:g,notifications:{list:C,clearAll:S},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,toBlockchain:v?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:L},updateQuoteInputs:k}};return HE.createElement(Mh.Provider,{value:b},t.children)}i(Jl,"WidgetInfo");function Lh(){let t=VE(Mh);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Lh,"useWidget");function ji(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Nh();return Ph(()=>{n&&r(n)},[n]),jE(()=>{zc({API_KEY:o?.apiKey||sr,BASE_URL:o?.apiUrl||hc})},[o.apiKey,o.apiUrl]),Ph(()=>{t.config?.signers?.customSolanaRPC&&KE("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),Rl.createElement(Er,{config:o,onUpdateState:e},Rl.createElement(Wh,{apiKey:o.apiKey},Rl.createElement(Jl,null,t.children)))}i(ji,"WidgetProvider");function _h(t){let e=t.config?.externalWallets;return Xi.createElement(Pp,null,e?Xi.createElement(Vi,null):Xi.createElement(ji,{config:t.config??ar},Xi.createElement(Vi,null)))}i(_h,"Widget");function Dh(){let{on:t,off:e}=he;return{on:t,off:e}}i(Dh,"useWidgetEvents");var T3={DerivationPath:gn,Namespaces:fn,isOnDerivationPath:yn,isOnNamespace:hn};export{Kj as EventSeverity,Wo as MainEvents,n3 as Networks,a3 as PendingSwapNetworkStatus,ca as QuoteEventTypes,jj as RouteEventType,Ri as SUPPORTED_FONTS,T3 as StatefulConnect,Xj as StepEventType,Yj as StepExecutionBlockedEventStatus,Zj as StepExecutionEventStatus,De as UI_ID,ua as UiEventTypes,pa as WalletEventTypes,t3 as WalletEvents,r3 as WalletTypes,_h as Widget,Wo as WidgetEvents,ji as WidgetProvider,Er as WidgetWallets,Va as customizedThemeTokens,Rj as readAccountAddress,Gt as useStatefulConnect,ft as useWalletList,jr as useWallets,Lh as useWidget,Dh as useWidgetEvents,Uy as widgetEventEmitter};
1
+ var Oh=Object.defineProperty;var i=(t,e)=>Oh(t,"name",{value:e,configurable:!0});import{EventSeverity as jj,RouteEventType as Xj,StepEventType as Yj,StepExecutionBlockedEventStatus as Zj,StepExecutionEventStatus as Jj}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as e3}from"@rango-dev/wallets-core/legacy";import{useWallets as jr,Events as o3}from"@rango-dev/wallets-react";import{Networks as r3,WalletTypes as i3}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as s3}from"rango-types";import{Divider as MS}from"@rango-dev/ui";import lo,{useEffect as LS,useRef as PS,useState as Wp}from"react";import{WalletState as Uh}from"@rango-dev/ui";import{useWallets as zh}from"@rango-dev/wallets-react";import{useReducer as Qh}from"react";function oc(t){return!!t.derivationPath}i(oc,"isStateOnDerivationPathStep");function nc(t){return!!t.namespace}i(nc,"isStateOnNamespace");var or={status:"init",namespace:null,derivationPath:null};function rc(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"reset":return or;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:or;default:throw new Error("Action hasn't been defined.")}}i(rc,"reducer");function Gt(){let{state:t,disconnect:e,connect:o}=zh(),[n,r]=Qh(rc,or),a=i(async(p,d,h)=>{r({type:"reset"});try{let f=d?.map(m=>({...m,network:void 0}));return await o(p,f),{status:"connected"}}catch(f){let m=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:f})}},"runConnect"),s=i(async(p,d)=>{if(p.state===Uh.DISCONNECTED){if(!!p.isHub&&p.properties?.find(k=>k.name==="detached")&&p.state!=="connected")return r({type:"needsNamespace",payload:{targetWallet:p}}),{status:"namespace"};if(!p.needsNamespace)return await a(p.type,void 0,d);let m=p.needsNamespace.data.length>1,g=p.needsDerivationPath;if(m)return r({type:"needsNamespace",payload:{targetWallet:p}}),{status:"namespace"};if(g){let C=p.needsNamespace.data[0];return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:C.value}}),{status:"derivation-path"}}return await a(p.type,p.needsNamespace?.data.map(C=>({namespace:C.value})),d)}return d?.disconnectIfConnected?(await u(p.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(p,d)=>{let h=p.needsNamespace?.selection==="single",f=p.needsDerivationPath,m=d[0];if(!m)throw new Error("To confirm a namespace, you should select at least one namespace.");if(h&&f)return r({type:"needsDerivationPath",payload:{providerType:p.type,providerImage:p.image,namespace:m}}),{status:"derivation-path"};if(!nc(n))throw new Error("Something went wrong on handling namespace. Please retry.");let g=n.namespace.targetWallet.type,C=d.map(S=>({namespace:S}));return await a(g,C)},"handleNamespace"),c=i(async p=>{if(!p)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!oc(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let d=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:p}];return await a(d,f)},"handleDerivationPath"),u=i(async p=>{let d=t(p);return d.connected||d.connecting?(await e(p),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:l,handleDerivationPath:c,getState:()=>n,resetState:p=>{r(p==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Gt,"useStatefulConnect");import{WalletState as ga}from"@rango-dev/ui";import{useWallets as Yy}from"@rango-dev/wallets-react";import{detectMobileScreens as Zy,KEPLR_COMPATIBLE_WALLETS as Jy,WalletTypes as un}from"@rango-dev/wallets-shared";import{useCallback as Ry,useEffect as eS}from"react";import Gy,{createContext as Vy,useContext as Ky,useEffect as jy,useRef as Xy}from"react";import{create as qy}from"zustand";import{persist as Hy}from"zustand/middleware";import{allProviders as qh}from"@rango-dev/provider-all";var Yi=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()}},bo=new Yi;import{defineVersions as ac,pickVersion as sc,Provider as Zi}from"@rango-dev/wallets-core";function lc({allProviders:t,configWallets:e,options:o}){if(e){let n=[];return e.forEach(r=>{if(typeof r=="string"){let a=t.find(s=>{let l=cc(s,o);return l instanceof Zi?l.id===r:l.config.type===r});a?n.push(a):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else r instanceof Zi?n.push(ac().version("1.0.0",r).build()):n.push(ac().version("0.0.0",r).build())}),n}return t}i(lc,"matchAndGenerateProviders");function cc(t,e){let{experimentalWallet:o="enabled"}=e||{},n=o=="disabled"?"0.0.0":"1.0.0";try{return sc(t,n)[1]}catch{return sc(t,"0.0.0")[1]}}i(cc,"pickProviderVersionWithFallbackToLegacy");function pc(t,e){return t.map(n=>cc(n,e)).map(n=>n instanceof Zi?n.id:n.config.type)}i(pc,"configWalletsToWalletName");function nr(t,e){return e.find(o=>o.name===t)?.displayName}i(nr,"getBlockchainDisplayNameFor");function st(t,e){return e.find(o=>o.name===t)?.shortName}i(st,"getBlockchainShortNameFor");function uc(t,e){return e.find(o=>o.name===t)?.logo}i(uc,"getBlockchainImage");function on(t,e){return e.find(o=>o.id===t)?.title}i(on,"getSwapperDisplayName");function nn(t,e){return e.find(o=>o.name===t)??null}i(nn,"findBlockchain");function Ji(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(Ji,"isTokenNative");function lt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(lt,"createTokenHash");function xo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(xo,"isValidTokenAddress");function rn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(c=>{typeof c!="string"&&(c=lt(c));let u=o.tokensMapByTokenHash.get(c);u&&(n[c]=u)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let l=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(c=>{l.has(c)||a(o.tokensMapByBlockchainName[c])})}return s.forEach(l=>{let c=r[l];if(!c&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}c&&(c.isExcluded?(a(o.tokensMapByBlockchainName[l]),c.tokens.forEach(u=>{let p=lt(u);delete n[p]})):a(c.tokens))}),Object.values(n)}i(rn,"matchTokensFromConfigWithMeta");function rr(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(rr,"getSupportedBlockchainsFromConfig");function mc(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,experimentalWallet:t.features?.experimentalWallet}}i(mc,"makeProvidersOptionsFromConfig");var ir={apiKey:"",title:void 0,multiWallets:!0,excludeLiquiditySources:!0,customDestination:!0,variant:"default",trezorManifest:{appUrl:"https://widget.rango.exchange/",email:"hi+trezorwidget@rango.exchange"},tonConnect:{manifestUrl:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/manifests/tonconnect-manifest.json"},features:{experimentalWallet:"enabled"}},Hh={clientUrl:void 0},Gh={liquiditySources:void 0};function dc(t){let e=mc(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 qh(o).map(a=>a())}i(dc,"generateProviders");var fc=i((t,e,o)=>{let n=dc({...ir,...t});return{config:{...ir,...t},iframe:Hh,campaignMode:Gh,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l}=o(),c=rn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}}),u=rn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:l,tokensMapByTokenHash:s}});bo.set("supportedSourceTokens",c),bo.set("supportedDestinationTokens",u),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=dc(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=mc(a);return lc({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as gc}from"rango-types";var hc=[gc.EVM,gc.SOLANA];import{RangoClient as ay}from"rango-sdk";import{UI_ID as Vh}from"@rango-dev/ui";var ar="c6381a79-2817-4602-83bf-6a641a409e32",yc="https://api.rango.exchange",Sc="https://explorer.rango.exchange",De={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Vh};import{BlockchainCategories as Rh,WalletState as bt}from"@rango-dev/ui";import{legacyReadAccountAddress as ey}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as ty,getCosmosExperimentalChainInfo as oy,isEvmAddress as ny,KEPLR_COMPATIBLE_WALLETS as tA,Networks as Bc}from"@rango-dev/wallets-shared";import Io from"bignumber.js";import{isCosmosBlockchain as ry}from"rango-types";import Kh from"bignumber.js";var ce=new Kh(0);import{WalletTypes as jh}from"@rango-dev/wallets-shared";var Cc=[jh.LEAP];import{BlockchainCategories as ea,WalletState as Jh}from"@rango-dev/ui";import{TransactionType as sr}from"rango-sdk";var kc="Roboto",Ri=[{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 Eo(t){return Array.from(new Set(t))}i(Eo,"removeDuplicateFrom");function Ec(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Ec,"debounce");function Je(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Je,"containsText");function wc(t,e){return t.toLowerCase()===e.toLowerCase()}i(wc,"exactText");function bc(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(bc,"startWithText");var W=i(()=>document.getElementById(De.SWAP_BOX_ID),"getContainer"),no=i(()=>document.getElementById(De.EXPANDED_BOX_ID),"getExpanded");function xc(t,e,o){let n=!!e&&wc(e,t),r=!!o&&wc(o,t);return n!==r?n?-1:1:0}i(xc,"compareExactMatchText");function ta(t,e,o){let n=!!e&&Je(e,t),r=!!o&&Je(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ta,"compareContainsText");function oa(t,e,o){let n=!!e&&bc(e,t),r=!!o&&bc(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(oa,"compareStartWithText");function Ic(t,e,o){if(!o)return 0;let n=xc(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=xc(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=oa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ta(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=oa(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ta(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=oa(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ta(o,t.address,e.address);if(r!==0)return r}return 0}i(Ic,"compareWithSearchFor");var lr=i((t,e)=>{switch(e){case ea.ALL:return!0;case ea.UTXO:return t===sr.TRANSFER;case ea.OTHER:return t!==sr.TRANSFER&&t!==sr.COSMOS&&t!==sr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Ac=i(t=>Ri.find(o=>o.value===t)?.url,"getFontUrlByName");function Nc(t,e){let o=!!t.find(n=>n.state===Jh.CONNECTED);return e===!1&&o}i(Nc,"isSingleWalletActive");import{BigNumber as Wc}from"bignumber.js";var an=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 Wc(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Wc(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 cr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var wt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),sn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function ln(t){switch(!0){case t.connected:return bt.CONNECTED;case t.connecting:return bt.CONNECTING;case!t.installed:return bt.NOT_INSTALLED;default:return bt.DISCONNECTED}}i(ln,"mapStatusToWalletState");function Mc(t,e,o,n){return o.filter(r=>!Cc.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:c}=t(r);return s&&(!l||!!n&&c!==n)?!1:n?!!a.find(p=>p.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:c,needsNamespace:u,supportedChains:p,needsDerivationPath:d,properties:h,isHub:f}=e(r),m=Eo(p.map(C=>C.type)),g=ln(t(r));return{title:a,image:s,link:ty(l),state:g,type:r,showOnMobile:c,needsNamespace:u,blockchainTypes:m,needsDerivationPath:d,properties:h,isHub:f}})}i(Mc,"mapWalletTypesToWalletInfo");function dr(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(dr,"walletAndSupportedChainsNames");function ra(t,e,o,n,r){let a=[];function s(c,u){if(!!!a.find(d=>d.chain===c)){let d={address:u,chain:c,walletType:t};a.push(d)}}i(s,"addAccount");let l=n||[];return e.forEach(c=>{let{address:u,network:p}=ey(c),d=l.length>0,h=l.includes(p),f=p===Bc.Unknown;if(d&&!h&&!f)return;let g=p===Bc.Unknown&&ny(u);if(f&&!g)return;o.includes(p)||g?r?s(p,u.toLowerCase()):l.filter(k=>o.includes(k)).forEach(k=>{s(k,u.toLowerCase())}):s(p,u)}),a}i(ra,"prepareAccountsForWalletStore");function ro(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,l=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:c}=r;c.forEach((u,p)=>{let d=u.from.blockchain,h=u.to.blockchain,f=a===o.swaps.length-1,m=p===c.length-1;(!f&&!m||f&&l!==d||e==="all")&&n.add(d),e==="all"&&n.add(h)})}e==="all"&&n.add(l)}),Array.from(n)}i(ro,"getQuoteWallets");function Lc(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Lc,"isAccountAndWalletMatched");var Pc=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?na(n.usdValue,n.decimals):ce.toFixed();return o.plus(r)},new Io(ce));return iy(e.toString())},"calculateWalletUsdValue");function iy(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(iy,"numberWithThousandSeparator");var mr=i((t,e)=>{let o=oy(Object.entries(t).map(([,n])=>n).filter(ry));return o&&o[e]?.experimental},"isExperimentalChain");function na(t,e){return new Io(t).shiftedBy(-e).toFixed()}i(na,"representAmountInNumber");function fr(t){if(!t)return null;let e=na(t.amount,t.decimals),o=t.usdValue?na(t.usdValue,t.decimals):null,n=M(e,8,8),r=o?M(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(fr,"formatBalance");function _c(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Io(t.usdValue).shiftedBy(-t.decimals):ce,n=e&&e.usdValue?new Io(e.usdValue).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Io(t.amount).shiftedBy(-t.decimals):ce,n=e&&e.amount?new Io(e.amount).shiftedBy(-e.decimals):ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(_c,"compareTokenBalance");function Mt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Mt,"areTokensEqual");function Dc(t){return t.sort((e,o)=>+(o.state===bt.CONNECTED)-+(e.state===bt.CONNECTED)||+(o.state===bt.DISCONNECTED||o.state===bt.CONNECTING)-+(e.state===bt.DISCONNECTED||e.state===bt.CONNECTING))}i(Dc,"sortWalletsBasedOnConnectionState");function gr(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(gr,"getConciseAddress");function $c({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i($c,"getAddress");var Fc=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Oc(t){return t.map(e=>e.state).join("-")}i(Oc,"hashWalletsState");function Uc(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(Uc,"filterBlockchainsByWalletTypes");function zc(t,e){return e===Rh.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(lr(n,e))return!0;return!1})}i(zc,"filterWalletsByCategory");var ia={API_KEY:ar};function Lt(t){return ia[t]||""}i(Lt,"getConfig");function Qc(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),ia=e,ia}i(Qc,"initConfig");var qc=20,Hc=25,aa="theme-widget",sa=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Mt(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Mt(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),la=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Gc=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var hr,xt=i(()=>hr||(hr=new ay(Lt("API_KEY"),Lt("BASE_URL")),hr),"httpService");function yr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Eo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(c=>c===s.swapperGroup)),l&&s.types.map(c=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:c,selected:!e.includes(s.swapperGroup)})})}}),n}i(yr,"getUniqueSwappersGroups");function Vc(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Vc,"sortLiquiditySourcesByGroupTitle");function Ve(t,e){return e?.[t]==="hidden"}i(Ve,"isFeatureHidden");function Kc(t,e){return e?.[t]==="enabled"}i(Kc,"isFeatureEnabled");function Ao(t,e){return e?.[t]==="enabled"}i(Ao,"isRoutingEnabled");var jc=i((t,e,o)=>Ve("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var Xc=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let c=rr({config:a}),u=r;return c.length>0&&(u=u.filter(p=>c.includes(p.name))),u.filter(p=>hc.includes(p.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(c=>!(s.length>0&&!s.includes(c.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),l=Array.from(n.values()),c=e()._blockchainsMapByName;if(!o||!o.type)return l;let u=o.type==="source"?"from":"to",p=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",d=bo.get(p);d?.length||(d=rn({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),bo.set(p,d)),d=jc(d,s,a.features);let h=e().blockchains({type:o.type});return d.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!h.some(g=>g.name===m.blockchain)?!1:o.searchFor?!!(Je(m.symbol,o.searchFor)||Je(m.address||"",o.searchFor)||Je(m.name||"",o.searchFor)):!0).sort((m,g)=>{let C=e().isTokenPinned(m,o.type),S=e().isTokenPinned(g,o.type);if(C!==S)return C?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(m),L=o.getBalanceFor(g),b=_c(A,L);if(b!==0)return b}let k=c.get(m.blockchain),T=c.get(g.blockchain),v=Ji(m,k),w=Ji(g,T);if(v!==w)return v?-1:1;if(m.isPopular!==g.isPopular)return m.isPopular?-1:1;if(o.searchFor){let A=Ic(m,g,o.searchFor);if(A)return A}return m.isSecondaryCoin!==g.isSecondaryCoin?m.isSecondaryCoin?1:-1:k&&T?k.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=lt(o),s=n.get(a);return s||(s=r.find(l=>lt(l)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Mt(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(u=>{let p=a?.includes(u.swapperGroup);return s||!a||a.length===0?!p:p}).sort(Vc)},fetch:async()=>{try{let{routing:o}=e().config,n=Ao("enableCentralizedSwappers",o),r=await xt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},c=[],u=r.popularTokens,p=r.swappers.filter(f=>f.enabled),d=new Set;r.tokens.forEach(f=>{d.add(f.blockchain),c.push(f)}),r.blockchains.sort((f,m)=>f.sort-m.sort).forEach(f=>{f.enabled&&d.has(f.name)&&a.set(f.name,f)}),c.forEach(f=>{let m=lt(f);l[f.blockchain]||(l[f.blockchain]=[]),s.set(m,f),l[f.blockchain].push(m)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:u,_swappers:p})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as sy,Catalonia as ly,Chinese as Yc,Denmark as cy,English as py,Finland as uy,French as dy,German as my,Greece as fy,Hungary as gy,India as hy,Indonesian as yy,Italian as Sy,Japanese as Cy,Korea as ky,Lithuania as Ty,Malay as vy,Netherlands as wy,Pakistan as by,Philippines as xy,Poland as Ey,Portuguese as Iy,Russian as Ay,SaudiArabia as Ny,Serbia as Wy,Slovakia as By,SouthAfrica as My,Spanish as Ly,Swahili as Py,Swedish as _y,Thai as Dy,Turkish as $y,Ukrainian as Fy,Vietnamese as Oy}from"@rango-dev/ui";var Zc=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:My},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:Ny},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:sy},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:ly},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Yc},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Yc},{title:"Danish",label:"Dansk",local:"da",SVGFlag:cy},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:wy},{title:"English",label:"English",local:"en",SVGFlag:py},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:xy},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:uy},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:dy},{title:"German",label:"Deutsch",local:"de",SVGFlag:my},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:fy},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:hy},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:gy},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:yy},{title:"Italian",label:"Italiana",local:"it",SVGFlag:Sy},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Cy},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:ky},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:Ty},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:vy},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Ey},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Iy},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Ay},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:Wy},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:By},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Ly},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:Py},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:_y},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:Dy},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:$y},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:Fy},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:by},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:Oy}],No="en";var Jc=[.5,1,3],Rc=1,ep=5,tp=100,op=0;var np=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Rc,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let c=s===o,u=l<=9;return c&&u}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=Eo(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=Ve("theme",n),s=Ve("language",n),l=Ve("liquiditySource",n),c=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...c&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||No},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||No}})},setCustomToken:o=>t(n=>({_customTokens:[o,...n._customTokens]})),deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=rr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import fa from"bignumber.js";import Uy from"mitt";var he=Uy(),zy={on:he.on,off:he.off};import{WidgetEvents as rp}from"@rango-dev/queue-manager-rango-preset";var pa=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(pa||{}),ua=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ua||{}),da=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(da||{}),Wo=(a=>(a[a.RouteEvent=rp.RouteEvent]="RouteEvent",a[a.StepEvent=rp.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Wo||{});import Qy from"bignumber.js";function cn(t){return`${t.blockchain}-${t.address}-${t.symbol}`}i(cn,"createAssetKey");function ma(t,e){return`${cn(e)}-${t}`}i(ma,"createBalanceKey");function pn(t){let[e,o,n]=t.split("-");return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(pn,"extractAssetFromBalanceKey");function ip(t,e){let o={};return t.balances?.forEach(n=>{let r=ma(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,l=e().findToken(n.asset)?.usdPrice,c=l?new Qy(l??ce).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:c};o[r]=u}),o}i(ip,"createBalanceStateForNewAccount");function ap(t,e){for(let o in e){let n=pn(o),r=cn(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(ap,"updateAggregatedBalanceStateForNewAccount");function sp(t,e){let o=pn(e),n=cn(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(sp,"removeBalanceFromAggregatedBalance");var lp=i((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!1,error:!1}:r)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>r.walletType===o?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:o=>{let n=e().connectedWallets,r=o.filter(a=>!n.some(s=>Lc(a,s)));if(r.length>0){let a=r.map(s=>{let l=!n.some(c=>c.chain===s.chain&&c.selected&&c.walletType!==s.walletType);return{address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:l,loading:!1,error:!1}});t(s=>({connectedWallets:[...s.connectedWallets.filter(c=>!a.some(u=>u.walletType===c.walletType&&u.chain===c.chain)),...a]}))}},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),s=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async o=>{he.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r=e().connectedWallets.filter(u=>u.walletType===o);e().connectedWallets.forEach(u=>{u.walletType!==o&&(r=r.filter(p=>!(p.chain===u.chain&&p.address===u.address)))}),n?.chains&&n.chains.length>0&&(r=r.filter(u=>n.chains?.includes(u.chain)));let a={},s=e()._aggregatedBalances,l=e()._balances;Object.keys(l).forEach(u=>{let p=pn(u),d=!!r.find(h=>ma(h.address,{address:p.address,blockchain:h.chain,symbol:p.symbol})===u);d||(a[u]=l[u]),d&&(s=sp(s,u))}),t({_balances:a,_aggregatedBalances:s})},disconnectWallet:o=>{if(e().connectedWallets.find(r=>r.walletType===o)){he.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),e().removeBalancesForWallet(o);let r=e().connectedWallets.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain),a=e().connectedWallets.filter(s=>s.walletType!==o);r.length>0&&(a=a.map(s=>r.includes(s.chain)?(r=r.filter(l=>l!==s.chain),{...s,selected:!0}):s)),t({connectedWallets:a})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let r=o[0].walletType;e().setConnectedWalletAsRefetching(r);let a=o.map(c=>({address:c.address,blockchain:c.chain})),l=(await xt().getWalletsDetails(a)).wallets;if(l){let{retryOnFailedBalances:c=!0}=n||{};if(c){let d=l.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));d.length>0&&e().fetchBalances(d,{retryOnFailedBalances:!1})}let u={},p=e()._aggregatedBalances;l.forEach(d=>{if(d.failed)return;let h=ip(d,e);p=ap(p,h),u={...u,...h}}),t(d=>({_balances:{...d._balances,...u},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(r)}else throw e().setConnectedWalletHasError(r),new Error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=cn(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let c=a[0];return n[c]}let l=n[a[0]];return a.forEach(c=>{let u=n[c],p=new fa(u.amount),d=new fa(l.amount);p.isGreaterThan(d)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,l)=>{let c=n[l],[,,,u]=l.split("-");return u===o&&(s[l]=c),s},{})},getConnectedWalletsDetails:()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,l)=>{let c=r[l],u=pn(l);if(u.blockchain===n.chain){let p=e().findToken(u);if(p){let d=c.amount?new fa(c.amount).shiftedBy(-c.decimals):ce;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:c.amount,decimal:c.decimals,amount:d.toString(),logo:p.image,usdPrice:p.usdPrice})}else console.debug("Looking for asset but it couldn't be found in tokens store. May not be provided in meta.'",u)}return s},[])}})}),"createWalletsSlice");function cp(t){return qy()(Hy((...e)=>({...lp(...e),...Xc(...e),...np(...e),...fc(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})}))}i(cp,"createAppStore");var pp=Vy(null);function y(){let t=Ky(pp);if(jy(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function up(t){let e=Xy();return e.current||(e.current=cp(t.config)),Gy.createElement(pp.Provider,{value:e.current},t.children)}i(up,"AppStoreProvider");function ft(t){let{chain:e}=t||{},{config:o,connectedWallets:n,getAvailableProviders:r}=y(),{state:a,getWalletInfo:s}=Yy(),l=y().blockchains(),{handleDisconnect:c}=Gt(),u=pc(r(),{trezorManifest:o?.trezorManifest,walletConnectProjectId:o?.walletConnectProjectId,walletConnectListedDesktopWalletLink:o.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,tonConnect:o.tonConnect}),p=Mc(a,s,u,e);p=Zy()?p.filter(C=>C.showOnMobile!==!1&&a(C.type).installed):p;let d=Dc(p),h=i(C=>!n.find(S=>S.walletType===C&&S.chain===e),"isExperimentalChainNotAdded"),f=Ry(()=>{let C=p?.filter(S=>S.state===ga.CONNECTING)||[];for(let S of C)c(S.type)},[Oc(p)]);eS(()=>()=>{f()},[]);let m=i(C=>{let S=C.find(T=>T.type===un.DEFAULT);return!S||S.state===ga.NOT_INSTALLED?!1:C.filter(T=>T.state!=ga.NOT_INSTALLED&&![un.DEFAULT,un.WALLET_CONNECT_2,un.LEDGER].includes(T.type)&&s(T.type).supportedChains.filter(v=>v.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),g=i((C,S,k)=>mr(k,S)&&h(C)&&!Jy.includes(C)||C==un.DEFAULT&&!m(p),"shouldExcludeWallet");return{list:d.filter(C=>!g(C.type,e??"",l)),terminateConnectingWallets:f}}i(ft,"useWalletList");import{Modal as rS}from"@rango-dev/ui";import iS from"react";import{create as nS}from"zustand";var dp="rango-widget";var dn=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(dp),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 oS=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"),Bo=oS;var re=Bo(nS()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})}}))),io=new dn({onInit:()=>re.setState({tabManagerInitiated:!0}),onClaim:()=>re.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>re.setState({isActiveTab:!1})});function Z(t){let{watermark:e}=re();return iS.createElement(rS,{hasWatermark:e==="FULL",...t},t.children)}i(Z,"WatermarkedModal");import{i18n as ha}from"@lingui/core";import{Button as uS,Checkbox as dS,Divider as mS,Image as vp,ListItemButton as fS,MessageBox as gS,Radio as hS,RadioRoot as yS}from"@rango-dev/ui";import we,{useState as SS}from"react";import{css as aS,darkTheme as fp,IconButton as sS,styled as ao}from"@rango-dev/ui";var Et=ao(sS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${fp} &`]:{backgroundColor:"$neutral"}}}),gp=ao("div",{position:"absolute",background:"$secondary500",[`.${fp} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Vt=ao("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),hp=ao("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"}}}}),yp=ao("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),Sp=ao("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Cp=aS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Sr=ao("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as lS,styled as Cr}from"@rango-dev/ui";var rN=Cr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Mo=Cr("div",{position:"relative"}),cS=lS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Lo=Cr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${cS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),kr=Cr("div",{"& img":{borderRadius:"50%"}});function kp(t,e){return t.find(o=>o.name===e)?.logo}i(kp,"getBlockchainLogo");import{styled as pS}from"@rango-dev/ui";var Tp=pS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function mn(t){let{targetWallet:e}=t.value,o=e.needsNamespace?.selection==="single",n=e.image,[r,a]=SS([]),s=y().blockchains(),l=i(u=>{a(o?[u]:p=>p.includes(u)?p.filter(d=>d!==u):p.concat(u))},"onSelect"),c=i(u=>o?we.createElement(yS,{value:r?.[0]},u):we.createElement(we.Fragment,null,u),"wrapRadioRoot");return we.createElement(we.Fragment,null,we.createElement(mS,{size:20}),we.createElement(gS,{type:"info",title:ha.t("Select chain types"),description:ha.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:we.createElement(Mo,null,we.createElement(Sr,null,we.createElement(vp,{src:n,size:45})),we.createElement(Lo,null))}),we.createElement(Tp,null,c(we.createElement(we.Fragment,null,e.needsNamespace?.data.map(u=>we.createElement(fS,{key:u.id,id:u.id,title:u.label,hasDivider:!0,style:{height:60},onClick:()=>l(u.value),start:we.createElement(vp,{src:kp(s,u.id),size:22}),end:o?we.createElement(hS,{value:u.value}):we.createElement(dS,{checked:r.includes(u.value)})}))))),we.createElement(uS,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},ha.t("Confirm")))}i(mn,"Namespaces");import{i18n as Po}from"@lingui/core";import{Button as TS,Divider as xp,Image as vS,MessageBox as wS,Select as bS,TextField as xS}from"@rango-dev/ui";import Oe,{useEffect as ES,useState as Ep}from"react";import{namespaces as CS}from"@rango-dev/wallets-shared";var Tr={id:"custom",label:"Custom",generateDerivationPath:t=>t};function ya(t){let e=t?CS[t].derivationPaths:null;return e?[...e,Tr]:[]}i(ya,"getDerivationPaths");import{styled as wp,Typography as kS}from"@rango-dev/ui";var bp=wp("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Sa=wp(kS,{paddingLeft:"$10"}),Ca={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Ip="0";function fn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Ep(null),[l,c]=Ep(Ip),u=a===Tr.id,p=ya(o),d=i(({value:f})=>{let m=p?.find(g=>g.id===f);m&&(a===Tr.id&&Number.isNaN(Number(l))&&c(Ip),s(m.id))},"handleDerivationPathItemClick"),h=i(()=>{let f=p.find(m=>m.id===a);if(f)e(f.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return ES(()=>{s(ya(o)[0]?.id||null)},[o]),Oe.createElement(Oe.Fragment,null,Oe.createElement(xp,{size:20}),Oe.createElement(wS,{type:"info",title:Po.t("Select Derivation Path"),description:Po.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:Oe.createElement(Mo,null,Oe.createElement(kr,null,Oe.createElement(vS,{src:n,size:45})),Oe.createElement(Lo,null))}),Oe.createElement(bp,null,Oe.createElement(Sa,{variant:"body",size:"xsmall",color:"$neutral600"},Po.t("Choose Derivation Path Template")),Oe.createElement(bS,{value:a||"",options:p.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:d,styles:{trigger:Ca}}),Oe.createElement(xp,{size:20}),Oe.createElement(Sa,{variant:"body",size:"xsmall",color:"$neutral600"},u?Po.t("Enter Path"):Po.t("Enter Index")),Oe.createElement(xS,{type:u?"text":"number",variant:"contained",value:l,onChange:f=>c(f.target.value),style:Ca})),Oe.createElement(TS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!p||!a||!l},Po.t("Confirm")))}i(fn,"DerivationPath");import{i18n as _o}from"@lingui/core";import{Image as IS,MessageBox as ka,WalletState as AS}from"@rango-dev/ui";import{useWallets as NS}from"@rango-dev/wallets-react";import so from"react";function Ta(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=NS();return ln(a(n))===AS.CONNECTED?so.createElement(ka,{type:"success",title:_o.t("Wallet Connected"),description:_o.t("Your wallet is connected, you can use it to swap.")}):o?so.createElement(ka,{type:"error",title:_o.t("Failed to Connect"),description:o||_o.t("Your wallet is not connected. Please try again.")}):so.createElement(ka,{type:"loading",title:_o.t("Connecting to your wallet"),description:_o.t("Click connect in your wallet popup."),icon:so.createElement(Mo,null,so.createElement(kr,null,so.createElement(IS,{src:r,size:45})),so.createElement(Lo,null))})}i(Ta,"ConnectStatus");import{i18n as va}from"@lingui/core";import{Button as WS,Divider as Ap,MessageBox as BS}from"@rango-dev/ui";import vr from"react";function wa(t){let{displayName:e,onConfirm:o}=t;return vr.createElement(BS,{title:va.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:va.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},vr.createElement(Ap,{size:18}),vr.createElement(Ap,{size:32}),vr.createElement(WS,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},va.t("Confirm")))}i(wa,"ExperimentalChain");function Np(t,e){return t().status==="init"&&!!e}i(Np,"isOnStatus");function gn(t){return t().status==="namespace"}i(gn,"isOnNamespace");function hn(t){return t().status==="derivationPath"}i(hn,"isOnDerivationPath");var _S=3e3,DS=300;function co(t){let e=PS(),[o,n]=Wp(!1),[r,a]=Wp(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=ft(),{handleConnect:c,handleDerivationPath:u,handleNamespace:p,getState:d,resetState:h}=Gt(),f=i(k=>{p(t.wallet,k).then(S).catch(s)},"handleConfirmNamespaces"),m=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(k).then(S).catch(s)},"handleDerivationPathConfirm"),g=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),S=i((k,T)=>{let v=k.status==="connected",w=["disconnected","disconnected-unhandled"].includes(k.status);v?(t.onConnect?.(),T||(e.current=setTimeout(g,_S))):w&&g()},"afterConnected");return LS(()=>{if(t.wallet){C();let k=!1,T=!0;i(()=>{setTimeout(()=>{T=!1,k||n(!0)},DS)},"beforeConnecting")(),c(t.wallet,{disconnectIfConnected:!0}).then(w=>{["namespace","derivation-path"].includes(w.status)||(k=!0),S(w,T)}).catch(s)}},[t.wallet]),lo.createElement(Z,{open:o,onClose:g,onExit:()=>{C(),l(),t.onClose&&t.onClose()},container:W()},Np(d,t.wallet)&&lo.createElement(lo.Fragment,null,lo.createElement(Ta,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),lo.createElement(MS,{direction:"vertical",size:32})),gn(d)&&lo.createElement(mn,{onConfirm:f,value:d().namespace}),hn(d)&&lo.createElement(fn,{onConfirm:m,value:d().derivationPath}))}i(co,"StatefulConnectModal");import{legacyFormatAddressWithNetwork as FS,legacyReadAccountAddress as Mp}from"@rango-dev/wallets-core/legacy";import{Events as wr,Provider as OS}from"@rango-dev/wallets-react";import{isEvmBlockchain as US}from"rango-sdk";import br,{createContext as zS,useEffect as Lp,useMemo as QS,useRef as Pp}from"react";import{useEffect as $S}from"react";function Bp(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Bp,"hashProviders");function ba(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=y(),a=n();return $S(()=>{o(),r()},[Bp(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(ba,"useWalletProviders");var xr=zS({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function qS(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r,removeBalancesForWallet:a}=y(),s=y().blockchains(),{newWalletConnected:l,disconnectWallet:c,connectedWallets:u}=y(),p=y().config,d={walletConnectProjectId:p?.walletConnectProjectId,trezorManifest:p?.trezorManifest,tonConnect:p.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,experimentalWallet:t.config.features?.experimentalWallet},{providers:h}=ba(p.wallets,d),f=Pp(),m=Pp();Lp(()=>{n().catch(console.log)},[]),Lp(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:p,dappConfig:t.config})},[t.config,r]);let g=s.filter(US).map(T=>T.name),C=i((T,v,w,A,L)=>{if(v===wr.ACCOUNTS){let b=dr(L.supportedBlockchains),E=[],x=[];if(w?.forEach(I=>{let{network:B}=Mp(I);g.includes(B)?E.push(I):x.push(I)}),u.filter(I=>I.walletType===T).map(I=>FS(I.address,I.chain)).length>0){if(E.length>0){let I=ra(T,E,g,b,L.isContractWallet);a(T,{chains:I.map(B=>B.chain)})}x.length>0&&a(T,{chains:x.map(I=>{let{network:B}=Mp(I);return B})})}if(w){let I=ra(T,w,g,b,L.isContractWallet);I.length&&l(I)}else c(T),m.current?m.current(T):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")}if(v===wr.ACCOUNTS&&A.connected||v===wr.ACCOUNTS&&L.isHub){let b=`${T}-${A.network}-${w}`;f.current?f.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(v===wr.NETWORK&&A.network){let b=`${T}-${A.network}`;f.current?f.current(b):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(T,v,w,A,L)},"onUpdateState"),S=re.use.isActiveTab(),k=QS(()=>({onConnectWallet:T=>{f.current=T},onDisconnectWallet:T=>{m.current=T}}),[]);return br.createElement(xr.Provider,{value:k},br.createElement(OS,{allBlockChains:s,providers:h,onUpdateState:C,autoConnect:!!S,configs:{wallets:p.wallets,isExperimentalEnabled:Kc("experimentalWallet",p.features)}},t.children))}i(qS,"Main");function Er(t){let{config:e,...o}=t;return br.createElement(up,{config:e},br.createElement(qS,{...o,config:e}))}i(Er,"WidgetWallets");import Xi from"react";import HS,{Fragment as GS}from"react";import{MemoryRouter as VS,useInRouterContext as KS}from"react-router";function _p({children:t}){let o=KS()?GS:VS;return HS.createElement(o,null,t)}i(_p,"AppRouter");import{I18nManager as AE}from"@rango-dev/ui";import Jl from"react";import _e from"react";import{useRoutes as fE}from"react-router-dom";var $={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 $o,useRef as _r}from"react";import Ke from"bignumber.js";import{create as YS}from"zustand";import{subscribeWithSelector as ZS}from"zustand/middleware";import{i18n as gt}from"@lingui/core";import{RouteEventType as uB}from"@rango-dev/queue-manager-rango-preset";import Ue from"bignumber.js";import{PendingSwapNetworkStatus as Lr}from"rango-types";import{i18n as $e}from"@lingui/core";var R=i(()=>({genericServerError:$e.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:$e.t("Please reset your liquidity sources."),description:$e.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:$e.t("No Routes Found."),description:$e.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:$e.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:$e.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:$e.t("High Price Impact"),title:$e.t("Price impact is too high!"),description:$e.t("The price impact is significantly higher than the allowed amount."),confirmMessage:$e.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:$e.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:$e.t("USD Price Unknown"),title:$e.t("USD Price Unknown, Cannot calculate Price Impact."),description:$e.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:$e.t("Confirm USD Price Unknown")}}),"errorMessages");function Dp(t){switch(t.type){case 0:return t.diagnosisMessage??R().noResultError.title;case 1:return R().genericServerError;default:return""}}i(Dp,"getQuoteErrorMessage");import{i18n as Ir}from"@lingui/core";var po=i(()=>({connectWallet:Ir.t("Connect Wallet"),swap:Ir.t("Swap"),swapAnyway:Ir.t("Swap anyway"),ethWarning:Ir.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function xa(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(xa,"getFeeLabel");var Ea=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],$p=100,Fp=30,Op=15,Up=60;var zp=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Qp=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as XS}from"@rango-dev/queue-manager-rango-preset";import ZW from"bignumber.js";function Hp(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(Hp,"getRequiredBalanceOfWallet");function _t(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(_t,"getPriceImpactLevel");function Nr(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=XS(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=nn(a?a.toBlockchain:n.fromBlockchain,e),c=nn(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),p=o(s),d=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:c,toToken:p,inputAmount:d}}i(Nr,"createRetryQuote");function Do(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=yn(o),s=ct(o);if(o&&a&&s){let u=Pt(a.toString(),s.toString());if(!!u&&Xp(a,u)){let d=Br(o?.swaps,n),h=_t(u);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:u,totalFee:d,warningLevel:h}}}if(e&&Jp(e,o))return{type:4,usdValueChange:M(ct(o)?.minus(ct(e)??0).toString()??"0",null,2),percentageChange:M(Pt(ct(e)??"1",ct(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let l=Mr(o.swaps),c=r>ep;if(Zp(t.userSlippage.toString(),l)){if(c&&parseFloat(l??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Yp(o,r),minRequiredSlippage:l};return null}i(Do,"generateQuoteWarnings");function Gp(t){return![4].includes(t.type)}i(Gp,"isQuoteWarningConfirmationRequired");function Pt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Ia(t.toString(),e.toString());return n&&n<0?n:null}i(Pt,"getPriceImpact");var Vp=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"),Wr=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(p=>p.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),c=n.requestId.toLowerCase();return l.localeCompare(c)}),"sortQuotesBy"),Kp=i((t,e,o)=>{if(!e.length)return null;if(!t)return{requestAmount:o,validationStatus:null,...e[0]};let n=new Set(t.swaps.map(a=>a.swapperId)),r=e.find(a=>{let s=new Set(a.swaps.map(l=>l.swapperId));return Array.from(n).every(l=>s.has(l))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),jp=i(t=>{let e=i((o,n)=>{let r=Ea.indexOf(o.value),a=Ea.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function Xp(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return zp.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ue(r)))}i(Xp,"hasHighValueLoss");function Rp(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(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(Rp,"hasLimitError");function eu(t){let e=(t||[]).filter(l=>{let c=l.fromAmountMinValue?new Ue(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Ue(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?c?.gte(l.fromAmount)||u?.lte(l.fromAmount):c?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new Ue(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ue(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=gt.t({id:"Required: >= {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=gt.t({id:"Required: > {min} {symbol}",values:{min:M(o,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=gt.t({id:"Required: <= {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=gt.t({id:"Required: < {max} {symbol}",values:{max:M(n,6,6),symbol:e.from.symbol}}),s=R().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(eu,"getLimitErrorMessage");function tu(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:c}=t;return e!=="success"?{title:po().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:po().swap,action:"confirm-swap",disabled:!0}:s?{title:po().swapAnyway,action:"confirm-warning",disabled:!1}:c?{title:po().ethWarning,action:"confirm-warning",disabled:!1}:{title:po().swap,action:"confirm-swap",disabled:!1}:{title:po().connectWallet,action:"connect-wallet",disabled:!1}}i(tu,"getSwapButtonState");function Aa(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(ce))&&e&&e!=="0"&&n!==0)}i(Aa,"canComputePriceImpact");function Na(t,e){let o=ce;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ue(r.amount).multipliedBy(a||0))}return o}i(Na,"getUsdFeeOfStep");function Br(t,e){return t.reduce((o,n)=>o.plus(Na(n,e)),ce)}i(Br,"getTotalFeeInUsd");function Wa(t){let e=ce;return e=e.plus(new Ue(t.amount).multipliedBy(t.price||0)),e}i(Wa,"getUsdFee");function ou(t){return t.reduce((e,o)=>e.plus(Wa(o)),ce)}i(ou,"getTotalFeesInUsd");function nu(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(nu,"getFeesGroup");function ru(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(ru,"checkSlippageErrors");function Yp(t,e){let o=new Map;return t?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(Yp,"checkSlippageWarnings");function Mr(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(Mr,"getMinRequiredSlippage");function Zp(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Zp,"hasProperSlippage");function iu(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:c,slippage:u,affiliateRef:p,affiliatePercent:d,affiliateWallets:h,destination:f}=t,m=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),g=[];return r?.forEach(S=>{g.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:p??void 0,affiliatePercent:d??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:g,selectedWallets:m??{},slippage:u.toString(),...f&&{destination:f},...c&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!c&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(iu,"createQuoteRequestBody");function au(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(au,"getWalletsForNewSwap");function yn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new Ue(e).multipliedBy(o)}i(yn,"getUsdInputFrom");function ct(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new Ue(e).multipliedBy(o)}i(ct,"getUsdOutputFrom");function Ia(t,e){return new Ue(e).div(new Ue(t)).minus(1).multipliedBy($p).toNumber()}i(Ia,"getPercentageChange");function Jp(t,e){let o=yn(t),n=ct(t),r=ct(e);if(!o||!n||!r)return!1;let a=Ia(n.toString(),r.toString());return Qp.some(({threshold:s,minInput:l})=>a<=s&&o.isGreaterThanOrEqualTo(l))}i(Jp,"isOutputAmountChangedExcessively");function su(t,e,o){let n=t.validationStatus,r=ro({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>Hp(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,c=M(new Ue(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=M(new Ue(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),p="";return s.reason==="FEE"&&(p=gt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(p=gt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(p=gt.t(" for input and network fee")),gt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:p,currentAmount:c,blockchain:st(s.asset.blockchain,o)}})})}i(su,"generateBalanceWarnings");function Sn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Lr.NetworkChanged}i(Sn,"isNetworkStatusInWarningState");function lu(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Sn(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Lr.WaitingForConnectingWallet:n=n||gt.t("Waiting for connecting wallet");break;case Lr.WaitingForQueue:n=n||gt.t("Waiting for other running tasks to be finished");break;case Lr.WaitingForNetworkChange:n=n||gt.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(lu,"getSwapMessages");function cu(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(cu,"getLastConvertedTokenInFailedSwap");function pu(t){return t.status==="failed"}i(pu,"shouldRetrySwap");function uu(t,e,o,n,r,a){if(!n||t)return!0;let s=ro({filter:"all",quote:n}),l=ro({filter:"required",quote:n}),c=s.every(d=>r.some(h=>h.chain===d)),u=l.every(d=>r.some(h=>h.chain===d)),p=o&&a?xo(a,o):!1;return!e&&!c||e&&!o||e&&!!o&&(!p||!u)}i(uu,"isConfirmSwapDisabled");function du(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(du,"isTokensIdentical");var Pr=i((t,e)=>t?.usdPrice?new Ke(e||ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Bo(YS()(ZS(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Ke(0),outputUsdValue:new Ke(0),toBlockchain:null,toToken:null,refetchQuote:!0,sortStrategy:"SMART",selectedQuote:null,quotes:null,error:null,warning:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:null,quoteWarningsConfirmed:!1,updateQuotePartialState:(e,o)=>t(n=>({...n,[e]:o})),setSelectedQuote:e=>t(o=>{let n=null,r=ce,a=o.inputUsdValue;return sn(o.inputAmount)?(e&&(n=e?.outputAmount?new Ke(e?.outputAmount):null,a=yn(e)??ce,r=ct(e)??ce),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new Ke(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Ke(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Ke(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:Pr(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 Ke(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:null,outputUsdValue:new Ke(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Pr(o.fromToken,e)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Pr(n??null,s),outputUsdValue:new Ke(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?Pr(e.toToken,e.outputAmount?.toString()||""):new Ke(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Ke(0),inputUsdValue:new Ke(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Ke(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})})))),mu=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&he.emit("quoteEvent",{type:"quoteInputUpdate",payload:{fromBlockchain:t.fromBlockchain?.name,toBlockchain:t.toBlockchain?.name,fromToken:t.fromToken?{symbol:t.fromToken.symbol,name:t.fromToken.name,address:t.fromToken.address}:void 0,toToken:t.toToken?{symbol:t.toToken.symbol,name:t.toToken.name,address:t.toToken.address}:void 0,requestAmount:t.inputAmount}}),t.selectedQuote?.requestId!==e.selectedQuote?.requestId&&he.emit("quoteEvent",{type:"quoteOutputUpdate",payload:t.selectedQuote?{requestAmount:t.selectedQuote.requestAmount,swaps:t.selectedQuote.swaps,outputAmount:t.selectedQuote.outputAmount,resultType:t.selectedQuote.resultType,tags:t.selectedQuote.tags}:null})});function fu(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:c,toBlockchain:u}=O(),p=y().config,d=y().fetchStatus,h=y().blockchains(),f=y().tokens(),{findToken:m}=y(),{setAffiliateRef:g,setAffiliatePercent:C,setAffiliateWallets:S}=y(),k=p?.from?.tokens,T=p?.from?.blockchains,v=p?.to?.tokens,w=p?.to?.blockchains,A=_r(void 0),L=_r(void 0),b=_r(void 0),E=_r(void 0);$o(()=>{typeof p.amount<"u"&&t(p.amount.toString())},[p?.amount]),$o(()=>{if(d==="success"){r();let x=h.find(B=>B.name===p?.from?.blockchain),N=p?.from?.token,I=N&&m(N);(x||!x&&b.current)&&n(x??null),I?a({token:I,meta:{blockchains:h,tokens:f}}):!I&&A.current&&a({token:null}),b.current=p?.from?.blockchain,A.current=p?.from?.token}},[p?.from?.token?.symbol,p?.from?.token?.address,p?.from?.token?.blockchain,p?.from?.blockchain,d]),$o(()=>{sa(s,k)&&a({token:null}),la(c,T)&&n(null)},[k,T]),$o(()=>{sa(l,v)&&a({token:null}),la(u,w)&&o(null)},[v,w]),$o(()=>{if(d==="success"){r();let x=h.find(B=>B.name===p?.to?.blockchain),N=p?.to?.token,I=N&&m(N);(x||!x&&E.current)&&o(x??null),I?e({token:I,meta:{blockchains:h,tokens:f}}):!I&&L.current&&e({token:null}),E.current=p?.to?.blockchain,L.current=p?.to?.token}},[p?.to?.token?.symbol,p?.to?.token?.address,p?.to?.token?.blockchain,p?.to?.blockchain,d]),$o(()=>{g(p?.affiliate?.ref??null),C(p?.affiliate?.percent??null),S(p?.affiliate?.wallets??null)},[p?.affiliate?.ref,p?.affiliate?.percent,p?.affiliate?.wallets])}i(fu,"useSyncStoresWithConfig");import{useEffect as La,useRef as JS}from"react";import{useInRouterContext as RS,useLocation as eC,useSearchParams as tC}from"react-router-dom";function Ba(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Ba,"convertTokenSearchParamToAsset");function Ma(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ma,"tokenToSearchParam");function _a(){let t=eC(),[e,o]=tC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:c,setToBlockchain:u,setFromToken:p,setToToken:d,setInputAmount:h}=O(),f=y().fetchStatus,m=y().blockchains(),g=y().tokens(),C=RS(),{updateIframe:S,updateCampaignMode:k}=y(),T=y().isInCampaignMode(),v=JS(),{findToken:w}=y(),A=i(()=>{let b={};for(let[X,se]of e.entries())X.startsWith("utm_")&&(b[X]=se);let E=e.get("fromAmount"),x=e.get("fromBlockchain"),N=e.get("fromToken"),I=e.get("toBlockchain"),B=e.get("toToken"),j=e.get("autoConnect"),te=e.get("clientUrl"),J=e.get("liquiditySources"),P=e.get("blockchain");return{fromAmount:E,fromBlockchain:x,fromToken:N,toBlockchain:I,toToken:B,autoConnect:j,clientUrl:te,liquiditySources:J,utmQueryParams:b,blockchain:P}},"getUrlSearchParams"),L=i(b=>{for(let E in b)b[E]||delete b[E];o(b,{replace:!0})},"updateUrlSearchParams");La(()=>{let{autoConnect:b,clientUrl:E,utmQueryParams:x,blockchain:N}=A();C&&f==="success"&&L({fromBlockchain:n?.name,fromToken:Ma(a),toBlockchain:r?.name,toToken:Ma(s),fromAmount:l,autoConnect:b??void 0,clientUrl:E??void 0,blockchain:N??void 0,liquiditySources:T?v.current:void 0,...x})},[t.pathname,l,n,a,r,s,T]),La(()=>{if(!C)return;let b=A();if(!v.current&&b.liquiditySources&&(v.current=b.liquiditySources),b.fromAmount&&h(b.fromAmount),f==="success"){let E=m.find(B=>B.name===b.fromBlockchain),x=b.fromToken&&E?w(Ba(b.fromToken,E)):void 0,N=m.find(B=>B.name===b.toBlockchain),I=b.toToken&&N?w(Ba(b.toToken,N)):void 0;E&&(c(E),x&&p({token:x,meta:{blockchains:m,tokens:g}})),N&&(u(N),I&&d({token:I,meta:{blockchains:m,tokens:g}}))}},[f]),La(()=>{let{clientUrl:b,liquiditySources:E}=A();S("clientUrl",b||void 0),k("liquiditySources",E?.split(",")??void 0)},[])}i(_a,"useSyncUrlAndStore");import{i18n as It}from"@lingui/core";import{Alert as gk,Button as ju,darkTheme as hk,Divider as Tn,DoneIcon as yk,MessageBox as Sk,styled as Ck,TextField as kk,Typography as Tk}from"@rango-dev/ui";import ye,{useEffect as vk,useState as Qr}from"react";import{useNavigate as wk,useSearchParams as bk}from"react-router-dom";import{ChevronRightIcon as oC,Divider as Cu,Image as nC,Typography as ku}from"@rango-dev/ui";import ht from"react";import{darkTheme as gu,styled as Da}from"@rango-dev/ui";var hu=Da("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${gu} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${gu} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),yu=Da("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Su=Da("div",{display:"flex"});function $a(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return ht.createElement(yu,null,ht.createElement(ku,{size:"large",variant:"label"},n),ht.createElement(Cu,{size:10}),ht.createElement(hu,{onClick:s?void 0:e,disabled:s},ht.createElement(Su,null,r&&ht.createElement(ht.Fragment,null,ht.createElement(nC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),ht.createElement(Cu,{size:4,direction:"horizontal"})),ht.createElement(ku,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),ht.createElement(oC,{size:12,color:"black"})))}i($a,"BlockchainSelectorButton");import{i18n as Oa}from"@lingui/core";import{Button as rC,Divider as Cn,ExternalLinkIcon as iC,Image as aC,Typography as Oo}from"@rango-dev/ui";import Ne from"react";function Tu(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Tu,"generateExplorerLink");import{darkTheme as Fo,styled as vu}from"@rango-dev/ui";var Fa=vu("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Fo} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Fo} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),wu=vu("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Fo} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Fo} &`]:{color:"$colors$neutral900"}}});function Ua(t){let{open:e,onClose:o,token:n,onSubmitClick:r,blockchain:a}=t,s=Tu(n.address,a);return Ne.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},Ne.createElement(wu,null,Ne.createElement(aC,{src:n.image,size:45,type:"circular"}),Ne.createElement(Oo,{variant:"title",size:"medium"},n.name),Ne.createElement(Oo,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),Ne.createElement(Cn,{size:4}),Ne.createElement(Oo,{variant:"body",size:"medium"},s?Ne.createElement(Fa,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,Ne.createElement(iC,{size:12,color:"gray"})):Ne.createElement(Fa,null,n.address)),Ne.createElement(Cn,{size:4}),n.coinSource&&Ne.createElement(Oo,{className:"_coin-source",variant:"body",size:"xsmall"},Oa.t("via")," ",Ne.createElement(Oo,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Ne.createElement(Cn,{size:"32"}),Ne.createElement(Oo,{size:"medium",variant:"body",className:"_custom-token-description"},Oa.t("This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."))),Ne.createElement(Cn,{size:40}),Ne.createElement(Cn,{size:10}),Ne.createElement(rC,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:r},Oa.t("Import")))}i(Ua,"CustomTokenModal");import{useManager as ck}from"@rango-dev/queue-manager-react";import{BottomLogo as pk,Divider as qu,Header as uk}from"@rango-dev/ui";import Be,{useEffect as ls,useRef as Hu,useState as dk}from"react";import{useRef as sC}from"react";function Dr(){return window.self!==window.top}i(Dr,"isAppLoadedIntoIframe");function za(){let t=sC(null),{iframe:e}=y(),o=Dr()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(l=>{for(let c of l)n({type:"widget_height",data:{height:c.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(za,"useIframe");import{useNavigate as lC}from"react-router-dom";function je(){let t=lC();return()=>t(-1)}i(je,"useNavigateBack");import{createTheme as ja,darkTheme as vC,lightTheme as wC}from"@rango-dev/ui";import{useEffect as bC,useState as xC}from"react";import{theme as kC,darkColors as TC}from"@rango-dev/ui";import Va from"react";function cC(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(cC,"expandShortHexColor");function pC(t){return/[0-9]+$/.test(t)}i(pC,"isOverridingColor");function uC(t,e){return t.padStart(e,"0")}i(uC,"pad");function Qa(t){let e=Math.min(Math.max(Math.round(t),0),255);return uC(e.toString(16),2)}i(Qa,"intToHex");function dC(t){return`#${Qa(t.red)}${Qa(t.green)}${Qa(t.blue)}`}i(dC,"rgbToHex");function mC(t){let e=parseInt(t.slice(1,3),16),o=parseInt(t.slice(3,5),16),n=parseInt(t.slice(5,7),16);return{red:e,green:o,blue:n}}i(mC,"hexToRGB");function fC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(fC,"generateShade");function gC(t,e){let o=.11*e;return{red:t.red+(255-t.red)*o,green:t.green+(255-t.green)*o,blue:t.blue+(255-t.blue)*o}}i(gC,"generateTint");function hC(t){return bu(t,fC)}i(hC,"calculateShades");function yC(t){return bu(t,gC)}i(yC,"calculateTints");function bu(t,e){let o=mC(t),n=[];for(let r=1;r<9;r++)n.push(dC(e(o,r)));return n}i(bu,"calculateColors");function qa(t,e,o){let a=yC(t).reverse().concat(t),s=hC(t),l=a.concat(s),c={},u=l.length;for(let p=0;p<u;p++){let d=100+(o?u-1-p:p)*50;c[`${e}${d}`]=l[p]}return c}i(qa,"createTintsAndShades");function Ha(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)&&!pC(r)){let c=cC(a);Object.assign(n,qa(c,r,s))}}return{...n,...e}}i(Ha,"expandToGenerateThemeColors");var xu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),SC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=xu(o%52)+e;return xu(o%52)+e},"toAlphabeticName"),CC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Ga=i(t=>SC(CC(5381,JSON.stringify(t))>>>0),"toHash");function Ka(t){let e=kC.colors,o={...e,...TC},n,r;if(t?.light){let s={colors:Ha(e,t.light)};n={id:`${aa}-light-${Ga(s)}`,tokens:s}}if(t?.dark){let s={colors:Ha(o,t.dark,{reverseNeutralRange:!0})};r={id:`${aa}-dark-${Ga(s)}`,tokens:s}}return{light:n,dark:r}}i(Ka,"customizedThemeTokens");function Eu(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Va.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Va.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(Va.cloneElement(e,{key:l}))}}),o}i(Eu,"joinList");function Iu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Iu,"doesWindowPreferDarkColorScheme");function Uo(t){let{colors:e,fontFamily:o=kc,borderRadius:n=qc,secondaryBorderRadius:r=Hc}=t,[a,s]=xC(Iu()?"dark":"light"),{theme:l}=y(),{dark:c,light:u}=Ka(e),p=ja({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),d=[p.className,wC.className],h=[p.className,vC.className];if(u){let m=ja(u.id,u.tokens);d.push(m.className)}if(c){let m=ja(c.id,c.tokens);h.push(m.className)}return bC(()=>{let m=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return Iu()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",m),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",m)}},[]),{activeTheme:i(()=>{let m=d.join(" "),g=h.join(" ");return l==="auto"?a==="dark"?g:m:l==="dark"?g:m},"getActiveTheme"),mode:l==="auto"?a:l}}i(Uo,"useTheme");var pt=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 Au}from"@lingui/core";import{Alert as EC,Button as IC}from"@rango-dev/ui";import Nu from"react";function Xa(t){return Nu.createElement(EC,{action:Nu.createElement(IC,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Au.t("Activate this tab")),type:"warning",variant:"alarm",title:Au.t("Another tab is open and handles transactions.")})}i(Xa,"ActivateTabAlert");import{i18n as Ya}from"@lingui/core";import{Button as AC,Divider as NC,MessageBox as WC}from"@rango-dev/ui";import $r from"react";function Za(t){let{open:e,onClose:o,onConfirm:n}=t;return $r.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},$r.createElement(WC,{title:Ya.t("Activate current tab"),type:"warning",description:Ya.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.")},$r.createElement(NC,{size:20}),$r.createElement(AC,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Ya.t("Confirm"))))}i(Za,"ActivateTabModal");import{ChevronLeftIcon as BC}from"@rango-dev/ui";import Wu from"react";function Ja(t){return Wu.createElement(Et,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Wu.createElement(BC,{color:"black",size:16}))}i(Ja,"BackButton");import{i18n as MC}from"@lingui/core";import{Button as LC,Typography as PC}from"@rango-dev/ui";import Ra from"react";function es(t){return Ra.createElement(Vt,null,Ra.createElement(LC,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},Ra.createElement(PC,{variant:"label",size:"medium",color:"error500"},MC.t("Cancel"))))}i(es,"CancelButton");import{i18n as _C}from"@lingui/core";import{Image as DC,Tooltip as $C,WalletIcon as FC}from"@rango-dev/ui";import uo from"react";function ts(t){let{list:e}=ft(),o=e.filter(r=>r.state==="connected"),n=o.length?uo.createElement("div",{className:Cp()},o.map(r=>uo.createElement(Sr,{key:r.title},uo.createElement(DC,{src:r.image,size:14})))):_C.t("Connect Wallet");return uo.createElement($C,{container:t.container,side:"bottom",content:n},uo.createElement(Et,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&uo.createElement(gp,null),uo.createElement(FC,{size:18,color:"black"})))}i(ts,"WalletButton");import{i18n as Or}from"@lingui/core";import{NotificationsIcon as ek,Popover as tk,SettingsIcon as ok,Tooltip as Ur,TransactionIcon as nk}from"@rango-dev/ui";import We from"react";import{Notifications as QC}from"@rango-dev/ui";import qC from"react";import{useNavigate as HC}from"react-router-dom";import{create as OC}from"zustand";import{persist as UC,subscribeWithSelector as zC}from"zustand/middleware";var be=Bo(OC()(UC(zC((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1],s={event:o,creationTime:Date.now(),requestId:n.requestId,route:{creationTime:parseInt(n.creationTime),from:{blockchain:r.fromBlockchain,address:r.fromSymbolAddress,symbol:r.fromSymbol},to:{blockchain:a.toBlockchain,address:a.toSymbolAddress,symbol:a.toSymbol}}},l=e().notifications.filter(c=>c.requestId!==n.requestId);t(()=>({notifications:[...l,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(c=>c.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function os(){let t=HC(),{getNotifications:e,clearNotifications:o}=be(),n=e(),r=y().blockchains(),{findToken:a}=y();return qC.createElement(QC,{list:n,getBlockchainImage:l=>uc(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${$.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(os,"NotificationContent");import{useManager as GC}from"@rango-dev/queue-manager-react";import{InProgressIcon as VC}from"@rango-dev/ui";import Bu from"react";var KC=i(()=>{let{manager:t}=GC();return pt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Bu.createElement(Sp,null,Bu.createElement(VC,{color:"info",size:6})):null},"InProgressTransactionBadge"),Mu=KC;import{EventSeverity as jC}from"@rango-dev/queue-manager-rango-preset";import{Typography as XC}from"@rango-dev/ui";import Lu from"react";function Pu(){let{getNotifications:t}=be(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===jC.WARNING);return o?Lu.createElement(hp,{isSever:n},Lu.createElement(XC,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Pu,"NotificationsBadge");import{RefreshProgressButton as YC}from"@rango-dev/ui";import ns,{useEffect as ZC,useState as _u}from"react";var JC=1e3,Du=60,RC=100;function Fr({onClick:t}){let[e,o]=_u(0),[n,r]=_u(!1),a=i(c=>{document.hidden&&c&&s(c)},"handleVisibilityChange");ZC(()=>{let c;return t?c=window.setInterval(()=>{o(u=>u+1),e===Du&&l()},JC):s(c),document.addEventListener("visibilitychange",()=>a(c)),()=>{document.removeEventListener("visibilitychange",()=>a(c)),c&&clearInterval(c)}},[e,t]);let s=i(c=>{c&&clearInterval(c),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ns.createElement(Et,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ns.createElement(yp,{onTransitionEnd:()=>r(!1),isRefetched:n},ns.createElement(YC,{size:22,color:t?"black":"gray",progress:e/Du*RC})))}i(Fr,"RefreshButton");function mo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ve("notification",s)||r.includes("notifications");return We.createElement(We.Fragment,null,!r.includes("refresh")&&We.createElement(Ur,{container:a||W(),side:"top",content:Or.t("Refresh")},We.createElement(Fr,{onClick:e})),!l&&We.createElement(tk,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:W(),content:We.createElement(os,null)},We.createElement("div",null,We.createElement(Ur,{container:W(),side:"top",content:Or.t("Notifications")},We.createElement(Et,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},We.createElement(ek,{size:18,color:"black"}),We.createElement(Pu,null))))),!r.includes("settings")&&We.createElement(Ur,{container:W(),side:"top",content:Or.t("Settings")},We.createElement(Et,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},We.createElement(ok,{size:18,color:"black"}))),!r.includes("history")&&We.createElement(Ur,{container:W(),side:"top",content:Or.t("History")},We.createElement(Et,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},We.createElement(nk,{size:18,color:"black"}),We.createElement(Mu,null))))}i(mo,"HeaderButtons");import{i18n as rs}from"@lingui/core";import{Divider as Fu,MessageBox as ak,RefreshIcon as sk}from"@rango-dev/ui";import zo from"react";import{Button as rk,styled as ik}from"@rango-dev/ui";var $u=ik(rk,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function is(t){let{open:e,onClose:o}=t;return zo.createElement(Z,{open:e,dismissible:!0,onClose:o,container:W()},zo.createElement(ak,{title:rs.t("Something went wrong"),type:"error",description:rs.t("Something went wrong. Please refresh the app.")},zo.createElement(Fu,{size:30}),zo.createElement($u,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},zo.createElement(sk,{size:20,color:"primary"}),zo.createElement(Fu,{size:4,direction:"horizontal"}),rs.t("Refresh"))))}i(is,"RefreshModal");function as(t){let e=t.target;if(e){let o=e.scrollTop,n=W();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(as,"onScrollContentAttachStatusToContainer");import{css as lk,styled as ss}from"@rango-dev/ui";var Ou="700px",zr=lk({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Uu=ss("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Ou},fixed:{height:Ou}}}}),zu=ss("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Qu=ss("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"}}});function oe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=za(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:c}=y(),[u,p]=dk(!1),{config:{features:d,theme:h}}=y(),{watermark:f}=re(),m=f==="FULL",{activeTheme:g}=Uo(h||{}),C=Ve("connectWalletButton",d),{isActiveTab:S,tabManagerInitiated:k,showActivateTabModal:T,setShowActivateTabModal:v,activateCurrentTab:w}=re(),A=je(),{manager:L}=ck(),E=pt(L).map(({swap:te})=>te).some(te=>te.status==="running"),x=i(()=>w(io.forceClaim,E),"onActivateTab"),N=i(()=>{r.onWallet?.()},"onConnectWallet"),I=typeof r.hasBackButton>"u"||r.hasBackButton,B=Hu(null),j=Hu(null);return ls(()=>(Dr()&&j.current&&e(j.current),()=>{o()}),[]),ls(()=>(B.current?.addEventListener("scroll",as),()=>{B.current?.removeEventListener("scroll",as)}),[]),ls(()=>{p(l==="failed")},[l]),Be.createElement(Uu,{height:s,id:De.SWAP_BOX_ID,className:`${g()} ${zr()}`,ref:j},Be.createElement(uk,{prefix:I?Be.createElement(Ja,{onClick:()=>{A(),r.onBack&&r.onBack()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!C&&Be.createElement(ts,{container:W(),onClick:N,isConnected:!!c?.length}),r.onCancel&&Be.createElement(es,{onClick:r.onCancel}))}),Be.createElement(zu,{ref:B},n),Be.createElement(Za,{open:T,onClose:()=>v(!1),onConfirm:x}),Be.createElement(Qu,null,Be.createElement("div",{className:"footer__content"},k&&!S&&Be.createElement("div",{className:"footer__alert"},Be.createElement(Xa,{onActivateTab:x}),Be.createElement(qu,{size:10})),a),Be.createElement(qu,{size:12}),Be.createElement("div",{className:`footer__logo ${m?"logo__show":"logo__hidden"}`},Be.createElement(pk,null))),Be.createElement(is,{open:u,onClose:()=>p(!1)}))}i(oe,"Layout");import{styled as mk}from"@rango-dev/ui";var Gu="$20 $20 $10 $20",kn=mk("div",{padding:Gu,overflowY:"auto",flexGrow:1});import{styled as fk}from"@rango-dev/ui";var ie=fk("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 Qo}from"@lingui/core";import{useState as Vu}from"react";function Ku(){let[t,e]=Vu(!1),[o,n]=Vu(void 0),{findToken:r}=y(),a=y().customTokens();function s(c,u){switch(c){case"duplicated":return{title:Qo.t("Duplicate Token"),message:Qo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:Qo.t("Token Already Exists"),message:Qo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:Qo.t("Token Not Found"),message:Qo.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:u}})}}}return i(s,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:c,tokenAddress:u})=>{e(!0);try{if(a.some(m=>m.address?.toLowerCase()===u.toLowerCase())){let m=s("duplicated");n(m);return}let d=await xt().getCustomToken({blockchain:c,address:u});if(!d||!d.token||d.error){let m=s("not-found",c);n(m);return}let h=d.token;if(r({blockchain:h.blockchain,address:h.address,symbol:h.symbol})){let m=s("token-exist");n(m);return}return h}catch(p){if(p?.code==="ERR_BAD_REQUEST"){let d=s("not-found",c);n(d);return}throw n(void 0),new Error(p.message)}finally{e(!1)}},"fetchCustomToken"),loading:t,error:o}}i(Ku,"useFetchCustomToken");var xk=Ck("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${hk} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),Ek=1e3;function Xu(){let t=wk(),[e]=bk(),o=je(),{setCustomToken:n}=y(),r=y().blockchains(),a=e.get("blockchain")||"",s=nn(a,r),[l,c]=Qr(""),[u,p]=Qr(!1),[d,h]=Qr(),{fetchCustomToken:f,loading:m,error:g}=Ku(),[C,S]=Qr(""),k=!!s&&xo(s,l),T=!s||!l||!k,v=i(async()=>{if(s)try{let L=await f({blockchain:a,tokenAddress:l});S(""),L&&h(L)}catch(L){L.message==="Failed to fetch"&&(S(It.t("Network Error")),p(!0))}},"getCustomToken"),w=i(()=>{g&&c(""),p(!1)},"closeErrorModal"),A=i(async()=>{C&&setTimeout(async()=>{await v()},Ek),w()},"handleErrorModalButtonClick");return vk(()=>{g&&p(!0)},[g]),ye.createElement(oe,{header:{title:It.t("Add Custom Token")}},ye.createElement(ie,null,ye.createElement(xk,null,ye.createElement("div",null,ye.createElement($a,{onClick:()=>t($.blockchains,{replace:!0}),hasLogo:!!s?.logo,value:s?{name:s.displayName,logo:s.logo}:void 0,title:It.t("Select chain"),placeholder:It.t("Select chain")}),ye.createElement(Tn,{size:"24"}),ye.createElement(Tk,{size:"large",variant:"label"},It.t("Enter Address")),ye.createElement(Tn,{size:10}),ye.createElement(kk,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:It.t("Enter token address"),size:"large",value:l,suffix:!!l&&k&&ye.createElement(yk,{color:"success",size:12}),onChange:L=>c(L.target.value)}),!k&&!!l&&ye.createElement(ye.Fragment,null,ye.createElement(Tn,{size:4}),ye.createElement(gk,{type:"error",variant:"alarm",title:"Invalid Address"}))),ye.createElement(ju,{id:"widget-add-custom-token-import-btn",disabled:T,type:"primary",variant:"contained",loading:m,size:"large",onClick:v},It.t("Import"))),ye.createElement(Z,{open:u,dismissible:!0,onClose:w,container:W()},ye.createElement(Sk,{title:g?.title||C,type:"error",description:g?.message||It.t("Failed Network, Please retry.")},ye.createElement(Tn,{size:40}),ye.createElement(Tn,{size:10}),ye.createElement(ju,{id:`widget-add-custom-token-${C?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:A},C?It.t("Retry"):It.t("Add another custom token")))),s&&d&&ye.createElement(Ua,{blockchain:s,token:d,onSubmitClick:()=>{d&&(n(d),h(void 0),o())},onClose:()=>h(void 0),open:!!s&&!!d})))}i(Xu,"AddCustomTokenPage");import{i18n as Fs}from"@lingui/core";import{useManager as cv}from"@rango-dev/queue-manager-react";import{Alert as pv,Button as uv,css as Us,Divider as Os,IconButton as qm,styled as dv,Typography as mv,WalletIcon as fv}from"@rango-dev/ui";import Le,{useEffect as hi,useLayoutEffect as gv,useRef as hv,useState as Pn}from"react";import{useNavigate as yv}from"react-router-dom";import{i18n as fo}from"@lingui/core";import{Alert as Zk,BalanceErrors as Jk,Button as wd,ChevronLeftIcon as Rk,Divider as hs,MessageBox as eT,Typography as ys}from"@rango-dev/ui";import ee,{useCallback as tT,useEffect as bd,useMemo as oT,useState as Go}from"react";import{useNavigate as nT}from"react-router-dom";import{i18n as ds}from"@lingui/core";import{Alert as Bk,ChevronDownIcon as Mk,CloseIcon as Lk,Divider as od,IconButton as nd,PasteIcon as Pk,Typography as _k,WalletIcon as Dk}from"@rango-dev/ui";import Me,{useEffect as $k,useRef as Fk}from"react";import Vr,{useRef as Nk}from"react";import*as qo from"@radix-ui/react-collapsible";import{keyframes as Yu,styled as qr}from"@rango-dev/ui";var cs=300,Ik=Yu({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ak=Yu({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Zu=qr(qo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ps=qr(qo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Hr=qr(qo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Ik} ${cs}ms ease-out`},false:{animation:`${Ak} ${cs}ms ease-out`}}}}),Gr=qr("div",{transition:`all ${cs}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Kr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,c=Nk(null);return Vr.createElement(Zu,{ref:c,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Vr.createElement(ps,{className:"collapsible_trigger",onClick:a},s),Vr.createElement(Hr,{className:"collapsible_content",open:e},r),l==="bottom"&&Vr.createElement(ps,{className:"collapsible_trigger",onClick:a},s))}i(Kr,"CustomCollapsible");import{darkTheme as Ju,styled as us,TextField as Wk}from"@rango-dev/ui";var Ru=us("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),ed=us(Wk,{backgroundColor:"$neutral100",padding:"$15"}),td=us("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Ju} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Ju} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function rd(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=y(),l=y().blockchains(),c=nr(e.name,l),u=Fk(null),p=s?.defaultCustomDestinations?.[e.name],d=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!xo(e,r),m=i(()=>{a("")},"handleClear"),g=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let k=await navigator.clipboard.readText();a(k),u?.current?.focus()}},"handlePaste"),C=i(()=>r?Me.createElement(nd,{id:"widget-custom-destination-close-icon-btn",onClick:m,variant:"ghost"},Me.createElement(Lk,{size:12,color:"gray"})):d?null:Me.createElement(nd,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Me.createElement(Pk,{size:16})),"renderSuffix");return $k(()=>{!!p&&r===null&&(a(p),o(!0))},[p]),Me.createElement(Ru,null,Me.createElement(Kr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Me.createElement(td,null,Me.createElement("div",{className:"button__content"},Me.createElement(Dk,{size:18,color:"info"}),Me.createElement(od,{size:4,direction:"horizontal"}),Me.createElement(_k,{variant:"label",size:"medium",color:n?"$neutral600":void 0},ds.t("Send to a different address"))),Me.createElement(Gr,{orientation:n?"up":"down"},Me.createElement(Mk,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Me.createElement(ed,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:ds.t("Enter {blockchainName} address",{blockchainName:c}),value:r||"",suffix:C(),onChange:S=>{let k=S.target.value;a(k)}})),f&&Me.createElement(Me.Fragment,null,Me.createElement(od,{size:4}),Me.createElement(Bk,{variant:"alarm",type:"error",title:ds.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(rd,"CustomDestination");import{css as Ok,darkTheme as ms,IconButton as Uk,styled as Dt}from"@rango-dev/ui";var id=Dt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),ad=Dt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),zk=Dt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${ms} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${ms} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${ms} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),sd=Dt(zk,{alignSelf:"stretch",minHeight:"93px"}),ld=Dt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),cd=Dt(Uk,{position:"absolute",left:"$20"}),pd=Dt("div",{paddingTop:"$20"}),ud=Ok({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),dd=Dt("div",{display:"flex"}),md=Dt("div",{overflow:"visible",width:"100%"});import{i18n as Cd}from"@lingui/core";import{warn as Vk}from"@rango-dev/logging-core";import{Divider as Kk,SelectableWallet as jk,Typography as kd,WalletState as Td}from"@rango-dev/ui";import Xe,{useEffect as vd,useState as wn}from"react";import{Image as Hk,MessageBox as Gk}from"@rango-dev/ui";import vn from"react";import{keyframes as Qk,styled as fs}from"@rango-dev/ui";var fd=fs("div",{position:"relative"}),qk=Qk({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),gd=fs("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${qk} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),hd=fs("div",{"& img":{borderRadius:"50%"}});import{i18n as Ho}from"@lingui/core";function yd(t,e){switch(t){case"in-progress":return{type:"loading",title:Ho.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Ho.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Ho.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Ho.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Ho.t("Request Rejected"),description:Ho.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:e}})};default:throw new Error(`Showing information about an experimentation chain status needs to be defined first. status: ${t}`)}}i(yd,"generateMessageByStatus");function Sd(t){let{status:e,displayName:o,image:n}=t,r=yd(e,o),a=e=="in-progress";return vn.createElement(Gk,{type:r.type,title:r.title,description:r.description,icon:a?vn.createElement(fd,null,vn.createElement(hd,null,vn.createElement(Hk,{src:n,size:45})),vn.createElement(gd,null)):void 0})}i(Sd,"ExperimentalChainStatus");var Xk=7,Yk=3e3;function gs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=re.use.isActiveTab(),{blockchains:l,connectedWallets:c}=y(),[u,p]=wn(),[d,h]=wn(null),[f,m]=wn(!1),[g,C]=wn(null),{suggestAndConnect:S}=jr(),{handleDisconnect:k}=Gt(),{list:T}=ft({chain:e}),[v,w]=wn(T),A=T.length,L=r&&A-r>0,b=i(async x=>{m(!1),C("in-progress");try{await S(x.walletType,x.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");vd(()=>{w(x=>{let N=T.findIndex(I=>o(I.type,e));return L&&N>1?[T[N]].concat(T.filter((I,B)=>B!==N)):x.map(I=>T.find(B=>B.type===I.type)??I)})},[JSON.stringify(T)]);let E=document.getElementById(De.SWAP_BOX_ID);return vd(()=>{let x=null;return(g==="completed"||g==="rejected")&&(x=setTimeout(()=>C(null),Yk)),()=>{x&&clearTimeout(x)}},[g]),Xe.createElement(Xe.Fragment,null,v.slice(0,r).map(x=>{let N=$c({connectedWallets:c,walletType:x.type,chain:e}),I=N?gr(N,Xk):"",B=mr(l(),e),j=!c.find(se=>se.walletType===x.type&&se.chain===e),te=B&&j&&x.state===Td.CONNECTED,J=te?Cd.t({id:"Add {chain} chain",values:{chain:e}}):I,P=i(async()=>{let se=x.state===Td.DISCONNECTED,z=(x.isHub||!!x.needsNamespace)&&!I;se?p(x):z?(await k(x.type),p(x)):te?(h({walletType:x.type,chain:e,address:N??""}),m(!0)):n({walletType:x.type,chain:e,address:N??""})},"onSelectableWalletClick"),X=d?.chain?nr(d.chain,l()):void 0;return Xe.createElement(Xe.Fragment,{key:`${x.title}_${X}`},!!d&&Xe.createElement(Z,{open:!!d&&f,container:E,onClose:()=>{h(null)}},Xe.createElement(wa,{displayName:X,onConfirm:()=>{b(d)}})),g&&Xe.createElement(Z,{open:!!g,onClose:C.bind(null,null),container:E},Xe.createElement(Sd,{status:g,displayName:X,image:x.image}),Xe.createElement(Kk,{direction:"vertical",size:32})),Xe.createElement(jk,{key:x.type,description:J,onClick:P,selected:o(x.type,e),disabled:!s,...x}))}),Xe.createElement(co,{wallet:u,onClose:()=>{p(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):Vk(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),L&&Xe.createElement(sd,{selected:!1,onClick:a},Xe.createElement(kd,{variant:"label",size:"medium"},Cd.t("Show more wallets"),Xe.createElement(kd,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(r??0)))))}i(gs,"WalletList");var rT=2;function xd(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=nT(),l=y().blockchains(),{selectedQuote:c,setSelectedWallets:u,quoteWalletsConfirmed:p,setQuoteWalletConfirmed:d,customDestination:h,setCustomDestination:f}=O(),{config:m,connectedWallets:g,setWalletsAsSelected:C}=y(),[S,k]=Go(""),[T,v]=Go([]),[w,A]=Go(""),[L,b]=Go(!!h),E=oT(()=>ro({filter:"all",quote:c}),[c]),x=ro({filter:"required",quote:c}),N=l.find(_=>_.name===c?.swaps[c?.swaps.length-1].to.blockchain),I=i(_=>x.includes(_),"isWalletRequiredFor"),B=tT(()=>g.filter(_=>_.selected&&E.includes(_.chain)),[g,E]),[j,te]=Go(B()),[J,P]=Go([]),X=i((_,H)=>P(V=>V.concat({blockchain:_,walletType:H})),"addNextSelectedWallets"),se=T.length>0,z=i((_,H)=>!!j.find(V=>V.walletType===_&&V.chain===H&&V.selected&&(I(H)||!I(H)&&!h)),"isSelected"),me=i((_,H,V)=>{let fe=!1;return _.map(ne=>{if(ne.chain===H){let ge=ne.selected;return!fe&&V?(fe=!0,ge=!0):V||(ge=!1),{...ne,selected:ge}}return ne})},"updateSelectableWallets"),vt=i(_=>{b(_),_?I(N?.name??"")||te(H=>me(H,N?.name||"",!1)):(f(""),te(H=>me(H,N?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),Ze=i(_=>{if(S&&k(""),z(_.walletType,_.chain))return;let V=g.find(fe=>fe.walletType===_.walletType&&fe.chain===_.chain);V&&(n(),_.chain===N?.name&&L&&!I(N.name)&&(b(!1),f(null)),te(fe=>fe.filter(ne=>ne.chain!==_.chain).concat({...V,selected:!0})))},"onChange"),le=i(()=>{let _=j.filter(H=>H.selected);C(_),u(_),d(!0),o()},"onConfirmBalance"),at=i(async()=>{v([]),A("");let _=await r?.({selectedWallets:j.filter(V=>V.selected),customDestination:h}),H=_.warnings;H?.balance?.messages&&v(H.balance.messages),_.error&&A(Dp(_.error)),!_.error&&!H?.balance?.messages.length?le():v(H?.balance?.messages??[])},"onConfirmWallets");bd(()=>{te(_=>{let H=[];return _.forEach(V=>{!g.some(ne=>ne.chain===V.chain&&ne.walletType===V.walletType&&ne.address===V.address)||H.push(V)}),H=H.concat(g.filter(V=>!!!H.find(ne=>ne.chain===V.chain)&&V.selected&&E.includes(V.chain))),H})},[g,E]),bd(()=>{let _=[];J.length>0&&(J.forEach(H=>{let V=g.find(fe=>fe.chain===H.blockchain&&fe.walletType===H.walletType);V?Ze(V):_.push(H)}),P(_))},[g,J]);let G=document.getElementById(De.SWAP_BOX_ID);return ee.createElement(Z,{open:e,onClose:()=>{p||s("../",{replace:!0}),o()},dismissible:!S,container:G,...!S&&{styles:{container:{height:"100%"}},footer:ee.createElement(dd,null,ee.createElement(wd,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:uu(a,L,h,c,j,N),onClick:at,variant:"contained",type:"primary",fullWidth:!0,size:"large"},fo.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:ee.createElement(ld,null,ee.createElement(cd,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:k.bind(null,"")},ee.createElement(Rk,{size:16})),ee.createElement(ys,{variant:"headline",size:"small"},fo.t({id:"Your {blockchainName} wallets",values:{blockchainName:st(S,l)}})))},anchor:"center"},ee.createElement(Z,{open:se,onClose:v.bind(null,[]),container:G},ee.createElement(eT,{title:fo.t("Insufficient account balance"),type:"error",description:ee.createElement(Jk,{messages:T??[]})},ee.createElement(wd,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:le},fo.t("Proceed anyway")))),S&&ee.createElement(pd,null,ee.createElement("div",{className:ud()},ee.createElement(gs,{chain:S,isSelected:z,selectWallet:Ze,onShowMore:()=>k(S),onConnect:_=>{X(S,_)}}))),!S&&ee.createElement(ee.Fragment,null,w&&ee.createElement(ee.Fragment,null,ee.createElement(Zk,{variant:"alarm",type:"error",title:fo.t(w)}),ee.createElement(hs,{size:12})),ee.createElement(md,null,E.map((_,H)=>{let V=l.find(Fe=>Fe.name===_),fe=`wallet-${H}`,ne=H===E.length-1,ge=ne&&N&&m?.customDestination!==!1;return ee.createElement("div",{key:fe},ee.createElement(id,null,ee.createElement(ys,{variant:"title",size:"xmedium"},fo.t({id:"Your {blockchainName} wallets",values:{blockchainName:V?.shortName}})),ee.createElement(ys,{variant:"label",color:"$neutral700",size:"medium"},fo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:V?.shortName}}))),ee.createElement(hs,{size:24}),ee.createElement(ad,null,ee.createElement(gs,{chain:_,isSelected:z,selectWallet:Ze,limit:rT,onShowMore:()=>k(V?.name??""),onConnect:Fe=>{X(_,Fe)}})),!ne&&ee.createElement(hs,{size:32}),ge&&ee.createElement(rd,{blockchain:N,open:L,handleOpenChange:vt}))}))))}i(xd,"ConfirmWalletsModal");import{i18n as wT}from"@lingui/core";import{Alert as bT,Button as xT,InfoIcon as ET}from"@rango-dev/ui";import et from"react";import{Alert as sT,Button as lT,Divider as ks,NoRouteIcon as cT,RefreshIcon as pT,Typography as Md}from"@rango-dev/ui";import Re from"react";import{i18n as Ed}from"@lingui/core";var iT=24,aT=60;function Id(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:R().genericServerError,action:{onClick:n,title:Ed.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:R().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Ed.t("Reset")}},description:R().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:R().noResultError.description}}i(Id,"makeInfo");var Ss=(o=>(o[o.small=iT]="small",o[o.large=aT]="large",o))(Ss||{}),Cs=(o=>(o.small="small",o.large="medium",o))(Cs||{});import{styled as Xr}from"@rango-dev/ui";var Ad=Xr("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Nd=Xr("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Wd=Xr("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Bd=Xr("div",{padding:"$6 $0"});function bn(t){let{fetch:e,error:o,size:n="small"}=t,r=y().getDisabledLiquiditySources(),a=y().toggleAllLiquiditySources,s=y().swappers(),l=Id(o,r,()=>a(s,!0),e);return Re.createElement(Ad,null,Re.createElement(cT,{size:Ss[n],color:"gray"}),Re.createElement(ks,{size:4}),Re.createElement(Md,{variant:"title",size:Cs[n]},R().noResultError.title),n==="large"&&Re.createElement(ks,{size:4}),!!l.description&&Re.createElement(Nd,{size:n},Re.createElement(Md,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Re.createElement(ks,{size:n==="large"?"24":"4"}),!!l.alert&&Re.createElement(Wd,{size:n},Re.createElement(sT,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Re.createElement(lT,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:Re.createElement(Bd,null,Re.createElement(pT,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(bn,"NoResult");import{i18n as xn}from"@lingui/core";import{Button as dT,Divider as mT,MessageBox as fT,Typography as gT,WarningIcon as hT}from"@rango-dev/ui";import $t from"react";import{Typography as Dd}from"@rango-dev/ui";import vs from"react";import{darkTheme as uT,styled as Yr}from"@rango-dev/ui";var Ld=Yr("div",{width:"100%"}),Ts=Yr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Pd=Yr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${uT} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),_d=Yr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function $d(t){let{title:e,value:o,valueColor:n}=t;return vs.createElement(Pd,null,vs.createElement(Dd,{size:"medium",variant:"label",className:"_title"},e),vs.createElement(Dd,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i($d,"QuoteErrorsModalItem");function Fd(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",l=[{title:xn.t("Swapping"),value:M(r.inputUsdValue,4,4)},{title:xn.t("Gas cost"),value:M(r.totalFee,2,2)},{title:xn.t("Receiving"),value:M(r.outputUsdValue,4,4)},{title:xn.t("Price impact"),value:M(r.priceImpact,2,2),valueColor:`${s}500`}];return $t.createElement(Z,{footer:$t.createElement(dT,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:$t.createElement(hT,null),fullWidth:!0,disabled:a,onClick:n},R().highValueLossError.confirmMessage),open:e,onClose:o,container:W()},$t.createElement(fT,{type:s,title:R().highValueLossError.impactTitle,description:R().highValueLossError.description}),$t.createElement(Ts,null,$t.createElement(mT,{size:"4"}),$t.createElement(gT,{size:"small",variant:"title"},xn.t("Details")),$t.createElement(Ts,null,l.map((c,u)=>$t.createElement($d,{key:u,...c})))))}i(Fd,"HighValueLossWarningModal");import{i18n as Zr}from"@lingui/core";function Od(t,e){let o={alertType:"warning",title:"",action:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Zr.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o;if(t){switch(t.type){case 0:{_t(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=R().highValueLossError.title;break}case 4:{o.title=Zr.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=R().unknownPriceError.title;break}case 2:{o.title=Zr.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings";break}case 3:{o.title=Zr.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Od,"makeAlerts");import{i18n as Vo}from"@lingui/core";import{Button as Ud,Divider as zd,MessageBox as yT,Typography as ST}from"@rango-dev/ui";import go from"react";import{useNavigate as CT}from"react-router-dom";function Qd(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,c=CT(),u=e??o;return go.createElement(Z,{anchor:"bottom",open:n,prefix:go.createElement(Ud,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>c("../"+$.settings)},go.createElement(ST,{variant:"label",size:"medium",color:"$neutral900"},Vo.t("Change settings"))),container:W(),onClose:r},go.createElement(yT,{type:"warning",title:s.type===3?Vo.t("High slippage"):Vo.t("Low slippage"),description:s.type===3?Vo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Vo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},go.createElement(zd,{size:18}),go.createElement(zd,{size:32}),go.createElement(Ud,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Vo.t("Confirm anyway"))))}i(Qd,"SlippageWarningModal");import{Button as kT,MessageBox as TT,WarningIcon as vT}from"@rango-dev/ui";import Jr from"react";function qd(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Jr.createElement(Z,{footer:Jr.createElement(kT,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Jr.createElement(vT,null),fullWidth:!0,disabled:r,onClick:n},R().unknownPriceError.confirmMessage),open:e,onClose:o,container:W()},Jr.createElement(TT,{type:"warning",title:R().unknownPriceError.impactTitle,description:R().unknownPriceError.description}))}i(qd,"UnknownPriceWarningModal");function En(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:c,onConfirmWarningModal:u,onChangeSettings:p}=t,d={confirmationDisabled:a,open:r,onClose:c,onConfirm:u},h=o?.type===0||o?.type===1,f=Od(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),et.createElement(et.Fragment,null,h&&et.createElement(bn,{error:o,fetch:s}),!!f&&et.createElement(Ld,null,et.createElement(bT,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:et.createElement(_d,{onClick:l},et.createElement(ET,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:et.createElement(xT,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:p},wT.t("Change"))}})),e&&et.createElement(et.Fragment,null,e.type===0&&et.createElement(Fd,{...d,warning:e}),(e.type===3||e.type===2)&&et.createElement(Qd,{...d,warning:e}),e.type===1&&et.createElement(qd,{...d,warning:e})))}i(En,"QuoteWarningsAndErrors");import nv from"bignumber.js";import di from"react";import{i18n as ho}from"@lingui/core";import{Alert as HT,Divider as jo,FullExpandedQuote as GT,InfoIcon as VT,NumericTooltip as Tm,QuoteTag as KT,StepDetails as jT,TokenAmount as XT,Typography as Xo}from"@rango-dev/ui";import Bs from"bignumber.js";import F,{useRef as YT,useState as ZT}from"react";import{styled as ws}from"@rango-dev/ui";var bs=ws("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Hd=ws("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Gd=ws("div",{width:"100%",display:"flex"});import*as Rr from"@radix-ui/react-collapsible";import{Button as IT,css as In,darkTheme as xe,Image as Vd,styled as ze,Typography as AT}from"@rango-dev/ui";var NT=300,Kd=ze(Rr.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),jd=In({padding:"$10 $15"}),Xd=ze(IT,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${xe} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${xe} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${xe} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Yd=ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${xe} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${xe} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${xe} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${xe} &`]:{backgroundColor:"$neutral400"}}}}]}),Zd=In({width:"100%",padding:"$15 $15 $10 $15"}),Jd=In({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Ko=In({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Rd=In({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${xe} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),em=ze(Rr.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:{[`& ${Vd}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Vd}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${xe} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${xe} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),tm=ze("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"}}}}),om=ze(Hr,{width:"100%",background:"inherit"}),xs=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${NT}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),_F=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),nm=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${xe} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),rm=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Es=ze(AT,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),im=ze("div",{display:"flex",flexWrap:"wrap"}),Is=ze("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"}}}}),am=ze("div",{display:"flex"}),ei=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${xe} &`]:{borderTopColor:"$neutral800"}});import{i18n as At}from"@lingui/core";import{ChevronDownIcon as BT,CloseIcon as MT,Divider as ni,IconButton as LT,NumericTooltip as PT,QuoteCost as _T,Typography as yt}from"@rango-dev/ui";import Y,{useState as pm}from"react";import{css as WT,styled as ti}from"@rango-dev/ui";var oi=ti("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),As=ti("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),sm=ti("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),lm=ti("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),cm=WT({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var DT=i(t=>t.fee.isZero()?null:Y.createElement(oi,null,Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(yt,{variant:"label",size:"medium"},"$",M(t.fee,4,4))),"NonPayableFee");function Ns(t){let[e,o]=pm(!1),[n,r]=pm(!1),{steps:a,quote:s,fee:l,time:c,feeWarning:u,timeWarning:p,showModalFee:d,fullExpandedMode:h=!1}=t,f=s?.swaps??[],m=h?no():W(),g=nu(f);return Y.createElement(Y.Fragment,null,Y.createElement(_T,{onClickFee:d?C=>{C.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,timeWarning:p,time:c,steps:a,tooltipGas:d?At.t("View more info"):void 0,tooltipContainer:m}),Y.createElement(Z,{container:m,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Y.createElement(lm,{style:{textAlign:h?"left":"center"}},Y.createElement(yt,{variant:"title",size:"medium"},At.t("Gas & Fee Explanation")),Y.createElement(LT,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(MT,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(sm,null,Y.createElement(yt,{variant:"title",size:"small"},At.t("Details")),Y.createElement(ni,{size:10}),Object.entries(g.payable).flatMap(([C,S])=>S.map((k,T)=>{let v=`payable-fee-${T}`,w=Wa(k);return Y.createElement(oi,{key:v},Y.createElement(yt,{variant:"label",size:"medium",color:"neutral600"},xa(C,At.t)),Y.createElement(PT,{content:k.amount,container:m},Y.createElement(yt,{variant:"label",size:"medium"},M(k.amount,2,2)," ",k.asset.symbol," ($",M(w,4,4),")")))})),Y.createElement(oi,{className:"total_payable_fee"},Y.createElement(yt,{variant:"label",size:"medium"},At.t("Total Payable Fee")),Y.createElement(yt,{variant:"label",size:"medium"},"$",M(l,4,4))),Y.createElement(As,null),Object.keys(g.nonePayable).length&&Y.createElement(Kr,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Y.createElement("div",{className:cm()},Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},n?At.t("Hide non-payable fees"):At.t("Show non-payable fees")),Y.createElement(ni,{size:4,direction:"horizontal"}),Y.createElement(Gr,{orientation:n?"up":"down"},Y.createElement(BT,{size:12,color:"gray"}))),open:n},Y.createElement(yt,{size:"small",variant:"title"},At.t("Description")),Y.createElement(ni,{size:4}),Y.createElement(yt,{size:"small",variant:"body",color:"neutral700"},At.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),Y.createElement(ni,{size:10}),Object.entries(g.nonePayable).map(([C,S],k)=>{let T=ou(S),v=xa(C,At.t),w=`non-payable-fee-${k}`;return Y.createElement(DT,{key:w,fee:T,label:v})}),Y.createElement(As,null)))))}i(Ns,"QuoteCostDetails");import{i18n as mm}from"@lingui/core";import{TokenAmount as fm}from"@rango-dev/ui";import ri from"react";import{css as $T,styled as FT}from"@rango-dev/ui";var um=FT("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),dm=$T({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function An(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return ri.createElement(um,null,ri.createElement(fm,{direction:"horizontal",label:mm.t("Swap input"),type:"input",tooltipContainer:W(),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}}),ri.createElement("div",{className:dm()}),ri.createElement(fm,{direction:"horizontal",tooltipContainer:W(),label:mm.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(An,"QuoteSummary");import{i18n as Cm}from"@lingui/core";import{ChevronDownIcon as zT,ChevronRightIcon as QT,Divider as Ws,Image as qT,Tooltip as ci,Typography as ai}from"@rango-dev/ui";import U from"react";import{useLayoutEffect as OT,useState as Nn}from"react";var gm=480,hm=768,ym=1024,Sm=1200,UT=i(()=>{let[t,e]=Nn(!1),[o,n]=Nn(!1),[r,a]=Nn(!1),[s,l]=Nn(!1),[c,u]=Nn(!1),p=i(()=>{e(window.innerWidth<=gm),n(window.innerWidth>gm&&window.innerWidth<=hm),a(window.innerWidth>hm&&window.innerWidth<=ym),l(window.innerWidth>ym&&window.innerWidth<=Sm),u(window.innerWidth>Sm)},"handleResize");return OT(()=>(p(),window.addEventListener("resize",p),()=>window.removeEventListener("resize",p)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:c}},"useScreenDetect"),ii=UT;var si=4,li=6,Wn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||W();return U.createElement(ci,{container:l,side:"bottom",sideOffset:4,open:r,content:e},U.createElement(tm,{className:n,state:a},U.createElement(qT,{src:o,size:16})))},"ImageComponent");function km(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,c=l||W(),u=r.length,p=Vp(r),{isTablet:d,isMobile:h}=ii();return U.createElement(em,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(m=>!m)}},U.createElement("div",{className:Ko()},U.createElement(ai,{variant:"body",size:"xsmall"},Cm.t("Via:")),U.createElement(Ws,{direction:"horizontal",size:4}),r.map((f,m)=>{let g=`item-${m}`,C=U.createElement(xs,null,U.createElement(QT,{size:12,color:"black"}));return h||d?U.createElement(U.Fragment,{key:g},U.createElement(Wn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),m!==u-1&&U.createElement(U.Fragment,null,C)):U.createElement(U.Fragment,{key:g},u<=si||u>si&&m<si-1?U.createElement(U.Fragment,null,U.createElement(Wn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),m!==u-1&&U.createElement(U.Fragment,null,C)):m===si-1&&U.createElement(ci,{container:c,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Ko()},C,r.map((S,k)=>{let T=`image-${k}`;return k>=m&&U.createElement(U.Fragment,{key:T},U.createElement(Wn,{content:S.swapper.displayName,src:S.swapper.image,state:S.state,open:!1}),k!==u-1&&U.createElement(U.Fragment,null,C))}))},U.createElement(Is,{state:r.find((S,k)=>k>=m&&(S.state==="error"||S.state==="warning"))?.state},U.createElement(ai,{size:"xsmall",variant:"body"},"+",u-m))))})),U.createElement("div",{className:Ko()},U.createElement("div",{className:"blockchains_section"},U.createElement("div",{className:Ko()},U.createElement(ai,{variant:"body",size:"xsmall"},Cm.t("Chains:")),U.createElement(Ws,{direction:"horizontal",size:4}),p.map((f,m)=>U.createElement(U.Fragment,{key:f.displayName},p.length<=li||p.length>li&&m<li-1?U.createElement(ci,{container:c,side:"bottom",content:f.displayName,sideOffset:4},U.createElement(Wn,{content:"",src:f.image,open:!1,className:m!==0?"blockchainImage":""})):m===li-1&&U.createElement(ci,{container:c,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Ko()},p.map((g,C)=>C>=m&&U.createElement(Wn,{key:g.displayName,content:"",src:g.image,open:!1,className:C>m?"blockchainImage":"",container:l})))},U.createElement(Is,{className:"blockchainImage"},U.createElement(ai,{size:"xsmall",variant:"body"},"+",p.length-m))))),U.createElement(Ws,{direction:"horizontal",size:32}))),U.createElement(xs,{orientation:a?"up":"down"},U.createElement(zT,{size:12,color:"black"}))))}i(km,"QuoteTrigger");function Ms(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:c=!0,showModalFee:u=!0,onClickAllRoutes:p,fullExpandedMode:d=!1,container:h}=t,f=y().blockchains(),{findToken:m}=y(),g=y().swappers(),{customSlippage:C,slippage:S}=y(),k=C||S,[T,v]=ZT(t.expanded),w=YT(null),A=M(o.value,6,6),L=M(n.value,6,6),b=n.usdValue?M(n.usdValue,4,4):"",E=Pt(o.usdValue,n.usdValue??null),x=M(E,2,2),N=_t(E??0),I=i((le,at)=>le.map((G,_)=>{let H,V=r?.type===3&&r.swap.swapperId===G.swapperId,fe=r?.type===4&&r.recommendedSlippages?.has(_),ne=a?.type===2&&a.recommendedSlippages?.has(_),ge=V||fe,Fe=ne;ge?H="error":Fe&&(H="warning");let ve=ge?ho.t("Slippage Error"):ho.t("Slippage Warning");return V&&(ve=ho.t("Bridge Limit Error")),{swapper:{displayName:on(G.swapperId,g)??"",image:G.swapperLogo},from:{token:{displayName:G.from.symbol,image:G.from.logo},chain:{displayName:st(G.from.blockchain,f)??"",image:G.from.blockchainLogo},price:{value:_===0&&!at?M(o.value,6,6):M(G.fromAmount,6,6),usdValue:M((G.from.usdPrice??0)*parseFloat(G.fromAmount),4,4),realValue:_===0?o.value:G.fromAmount,realUsdValue:new Bs(G.from.usdPrice??0).multipliedBy(G.fromAmount).toString()}},to:{token:{displayName:G.to.symbol,image:G.to.logo},chain:{displayName:st(G.to.blockchain,f)||"",image:G.to.blockchainLogo},price:{value:M(G.toAmount,6,6),usdValue:M((G.to.usdPrice??0)*parseFloat(G.toAmount),4,4),realValue:G.toAmount,realUsdValue:new Bs(G.to.usdPrice??0).multipliedBy(G.toAmount).toString()}},state:H,alerts:ge||Fe?F.createElement(Hd,{dense:d},F.createElement(HT,{variant:"alarm",type:ge?"error":"warning",title:ve,footer:F.createElement(Gd,null,V&&F.createElement("div",null,F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(jo,{direction:"vertical",size:2}),F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},ho.t({id:"Yours: {amount} {symbol}",values:{amount:M(G.fromAmount,6,6),symbol:G?.from.symbol}}))),(fe||ne)&&!V&&F.createElement("div",null,F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},ho.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(_)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(_)}}})),F.createElement(jo,{direction:"vertical",size:2}),F.createElement(Xo,{size:"xsmall",variant:"body",color:"neutral900"},ho.t({id:"Yours: {userSlippage}",values:{userSlippage:k}}))))})):void 0,time:an(G.estimatedTimeInSeconds),fee:M(Na(G,m),2,2),internalSwaps:G.internalSwaps?I(G.internalSwaps):void 0}}),"getQuoteSteps"),B=I(e?.swaps??[]),j=B.length,te=h||W(),J=jp(t.quote.tags||[]),P=!!p,X=cr(e?.swaps),se=an(X),z=Br(e?.swaps??[],m),me=M(z,2,2),vt=z.gte(new Bs(Fp)),Ze=X/Up>=Op;return d?F.createElement(GT,{selected:l,fee:me,time:se,tooltipContainer:no(),steps:B,tags:J,quoteCost:F.createElement(Ns,{quote:e,fullExpandedMode:!0,time:se,fee:me,feeWarning:vt,timeWarning:Ze,showModalFee:u,steps:j}),percentageChange:x,warningLevel:N,outputPrice:{value:L,usdValue:b,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(Yd,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:Zd()},!c&&J.length?F.createElement(F.Fragment,null,F.createElement(am,null,J.map((le,at)=>{let G=`${le.value}_${at}`;return F.createElement(F.Fragment,{key:G},F.createElement(KT,{label:le.label,value:le.value}),F.createElement(jo,{size:4,direction:"horizontal"}))})),F.createElement(ei,null),!P&&F.createElement(jo,{size:4})):null,F.createElement("div",{id:"portal-root",className:Jd()},F.createElement(Ns,{quote:e,time:se,fee:me,feeWarning:vt,timeWarning:Ze,showModalFee:u,steps:j}),P&&F.createElement(Xd,{onClick:le=>{le.stopPropagation(),p()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Xo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},ho.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:Rd()},F.createElement(rm,null,F.createElement(VT,{size:12,color:"gray"})),F.createElement(im,null,F.createElement(Es,{size:"small",variant:"body"},`${A} ${B[0].from.token.displayName} = `),F.createElement(Tm,{content:n.value,container:te,open:n.value?void 0:!1},F.createElement(Es,{size:"small",variant:"body"},"\xA0",`${L} ${B[B.length-1].to.token.displayName}`))),F.createElement(Tm,{content:n.usdValue,container:te},F.createElement(jo,{size:2,direction:"horizontal"}),F.createElement(Xo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${b})`))),s==="list-item"&&F.createElement(XT,{tooltipContainer:te,type:"output",direction:"vertical",price:{value:L,usdValue:b,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:B[j-1].to.token.displayName,image:B[j-1].to.token.image},chain:{image:B[j-1].to.chain.image},percentageChange:x,warningLevel:N}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(An,{from:B[0].from,to:B[j-1].to,percentageChange:x,warningLevel:N}),F.createElement(jo,{size:4}))),F.createElement(Kd,{selected:l,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:v},F.createElement(km,{type:s,quoteRef:w,selected:l,setExpanded:v,container:te,expanded:T,steps:B}),F.createElement(om,{open:T},F.createElement(nm,null),F.createElement("div",{className:jd()},B.map((le,at)=>{let G=`item-${at}`;return F.createElement(jT,{type:"quote-details",key:G,tooltipContainer:te,step:le,hasSeparator:at!==B.length-1,state:le.state})})))))}i(Ms,"Quote");import{Divider as tv,Skeleton as ov}from"@rango-dev/ui";import Ot from"react";import{darkTheme as JT,styled as pi}from"@rango-dev/ui";var vm=pi("div",{$$color:"$colors$neutral100",[`.${JT} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),wm=pi("div",{paddingTop:"$2"}),bm=pi("div",{paddingLeft:"$8"}),xm=pi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as _m,Divider as St,Skeleton as tt}from"@rango-dev/ui";import Q from"react";import{css as RT,styled as Ft}from"@rango-dev/ui";var Ls=Ft("div",{display:"flex"}),Em=Ft("div",{padding:"$10 $0 $20"}),Im=Ft("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Am=Ft("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Nm=Ft("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Wm=Ft("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Bm=Ft("div",{width:"65%",display:"flex",justifyContent:"start"}),Mm=Ft("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Lm=Ft("div",{padding:"$15 $0 $15 $0"}),Pm=RT({display:"flex",justifyContent:"space-between",alignItems:"center"});function Bn(t){let{type:e,tagHidden:o=!0}=t,n=Q.createElement(Nm,null,Q.createElement(Bm,null,Q.createElement(_m,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),Q.createElement(St,{size:8,direction:"horizontal"}),Q.createElement(Mm,null,Q.createElement(tt,{height:10,width:60,variant:"rounded"}),Q.createElement(St,{size:4}),Q.createElement(tt,{height:15,variant:"rounded"}))),Q.createElement(tt,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return Q.createElement("div",null,!o&&Q.createElement(Q.Fragment,null,Q.createElement(Ls,null,Q.createElement(tt,{width:65,height:20,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:65,height:20,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:65,height:20,variant:"rounded"})),Q.createElement(ei,null),!r&&Q.createElement(St,{size:4})),Q.createElement("div",{className:Pm()},Q.createElement(Ls,null,Q.createElement(tt,{width:60,height:10,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:60,height:10,variant:"rounded"}),Q.createElement(St,{size:4,direction:"horizontal"}),Q.createElement(tt,{width:60,height:10,variant:"rounded"})),r&&Q.createElement(tt,{width:85,height:24,variant:"rounded"})),e==="basic"&&Q.createElement(Em,null,Q.createElement(tt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&Q.createElement(Im,null,Q.createElement(Am,null,Q.createElement(_m,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),Q.createElement(St,{direction:"horizontal",size:4}),Q.createElement(tt,{height:15,width:150,variant:"rounded"})),Q.createElement(St,{size:10}),Q.createElement(tt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&Q.createElement(Q.Fragment,null,Q.createElement(St,{size:4}),Q.createElement(Lm,null,n,Q.createElement(Wm,null),n),Q.createElement(St,{size:12})))}i(Bn,"QuoteSummarySkeleton");import{ChainToken as Um,Divider as _s,NextIcon as ev,Skeleton as ui}from"@rango-dev/ui";import Ee from"react";import{styled as Mn}from"@rango-dev/ui";var Dm=Mn("div",{display:"flex",alignItems:"start"}),$m=Mn("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Ps=Mn("div",{display:"flex",alignItems:"center",flexGrow:1}),Fm=Mn("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Om=Mn("div",{display:"flex",alignItems:"center"});function Nt(t){let{separator:e=!0}=t;return Ee.createElement(Ee.Fragment,null,Ee.createElement(Om,null,Ee.createElement(ui,{height:22,width:22,variant:"circular"}),Ee.createElement(_s,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:15,width:148,variant:"rounded"})),Ee.createElement(Dm,null,Ee.createElement(xm,{hideSeparator:!e}),Ee.createElement($m,{extraSpace:e},Ee.createElement(Ps,null,Ee.createElement(Um,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(_s,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:12,variant:"rounded"})),Ee.createElement(Fm,null,Ee.createElement(ev,{color:"gray",size:16})),Ee.createElement(Ps,null,Ee.createElement(Um,{size:"small",loading:!0,chainImage:"",tokenImage:""}),Ee.createElement(_s,{direction:"horizontal",size:8}),Ee.createElement(ui,{height:12,variant:"rounded"})))))}i(Nt,"StepSkeleton");function Ln(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Ot.createElement(vm,{expanded:o,rounded:e!=="basic"},Ot.createElement(Bn,{type:e,tagHidden:n}),Ot.createElement(wm,null,Ot.createElement(ov,{height:15,variant:"rounded"})),o&&Ot.createElement(bm,null,Ot.createElement(tv,{size:24}),Ot.createElement(Nt,null),Ot.createElement(Nt,null),Ot.createElement(Nt,{separator:!1})))}i(Ln,"QuoteSkeleton");function yo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:c,showModalFee:u,selected:p,onClickAllRoutes:d,fullExpandedMode:h=!1,container:f}=t,{inputAmount:m,inputUsdValue:g}=O(),C=e?.outputAmount?new nv(e?.outputAmount):null,S=e?ct(e):null,T=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?di.createElement(bs,null,di.createElement(Ln,{tagHidden:l,type:o,expanded:s})):T?di.createElement(bs,{onClick:()=>c?.(e)},di.createElement(Ms,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:p,type:o,expanded:s,onClickAllRoutes:d,fullExpandedMode:h,input:{value:m,usdValue:g?.toString()??""},output:{value:C?.toString()??"",usdValue:S?.toString()??""}})):null}i(yo,"QuoteInfo");import{calculatePendingSwap as sv}from"@rango-dev/queue-manager-rango-preset";import{useEffect as lv}from"react";import{useRef as rv,useState as iv}from"react";var av=2e3;function mi({request:t}){let[e,o]=iv(!1),n=rv(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(c=>setTimeout(c,av)),await s(l,!1)),"retryFetch"),s=i(async(l,c=!1)=>{r(),n.current=new AbortController,o(!0);try{let u=await t(l,{signal:n.current.signal});return n.current=null,u}catch(u){if(c)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(mi,"useFetch");function zm(){let{fetch:t,loading:e,cancelFetch:o}=mi({request:async(n,r)=>await xt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(zm,"useFetchConfirmQuote");function fi(t){if(!t.swaps)throw new Error(R().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ds(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(fi,"throwErrorIfResponseIsNotValid");function Ds(t){if(Rp(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=eu(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=ru(t);if(o){let n=Mr(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ds,"getQuoteError");function Qm(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,l={quote:null,balance:null},c=Do({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});c&&(l.quote=c);let u=su(e,r,n.blockchains);return u.length===0||(l.balance={messages:u}),l}i(Qm,"generateWarnings");function gi(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:t?.code==="ERR_BAD_REQUEST"?{swap:null,error:{type:0,diagnosisMessage:t.response.data.error},warnings:null}:{swap:null,error:{type:1},warnings:null}}i(gi,"handleQuoteErrors");function $s(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:l}=O(),{slippage:c,customSlippage:u}=y(),p=y().getDisabledLiquiditySources(),d=y().blockchains(),h=y().tokens(),{findToken:f}=y(),m=u||c,{fetch:g,cancelFetch:C,loading:S}=zm();return lv(()=>C,[]),{loading:S,fetch:i(async T=>{let v=T.selectedWallets,w=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=v.reduce((b,E)=>(b[E.chain]=E.address,b),{}),L={requestId:a?.requestId||"",selectedWallets:A,destination:w||void 0};try{return await g(L,!0).then(b=>{let{result:E}=b;if(!E)throw new Error("Error fetching updated route");fi({diagnosisMessages:E.diagnosisMessages,requestId:E.requestId,swaps:E.result?.swaps});let x={outputAmount:E.result?.outputAmount,requestId:E.requestId,resultType:E.result?.resultType,swaps:E.result?.swaps||[],validationStatus:E.validationStatus,requestAmount:E.requestAmount};r(x);let N={slippage:m.toString(),disabledSwappersGroups:p},I=Qm({previousQuote:a??void 0,currentQuote:x,meta:{blockchains:d},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:f});l();let B=!!I.balance,j=sv(o.toString(),E,au(v),N,!B,{blockchains:d,tokens:h});return{quote:x,swap:j,error:null,warnings:I}})}catch(b){return gi(b)}},"fetch"),cancelFetch:C}}i($s,"useConfirmSwap");var Sv=dv("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${qm}`]:{width:"$48",height:"$48"}}),Cv=Us({flexGrow:1,paddingRight:"$10"}),kv=Us({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Tv=Us({display:"flex",justifyContent:"space-between",alignItems:"center"});function Hm(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=yv(),[l,c]=Pn(""),u=!n,[p,d]=Pn(!1),[h,f]=Pn(!1),{isActiveTab:m}=re(),g=y().getDisabledLiquiditySources(),C=hv(g),{manager:S}=cv(),{fetch:k,loading:T,cancelFetch:v}=$s(),[w,A]=Pn({swap:null,error:null,warnings:null}),[L,b]=Pn(!1),E=i(async({selectedWallets:P,customDestination:X})=>{let se=await k?.({selectedWallets:P,customDestination:X});return A(se),se},"onConfirmSwap"),x=i(async()=>{if(w.swap&&n)try{await S?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let P=`../${$.swaps}/${w.swap.requestId}`;s(P,{replace:!0}),setTimeout(()=>{e("")},0)}catch(P){c("Error: "+P?.message)}},"addNewSwap"),N=i(async()=>{f(!0),await x(),f(!1)},"onConfirm"),I=i(async()=>{w.warnings?.quote&&Gp(w.warnings.quote)&&!a?b(!0):await N()},"onStartConfirmSwap"),B=i(async()=>{A({error:null,swap:null,warnings:null}),k({selectedWallets:o,customDestination:r}).then(P=>{A(P)}).catch(P=>console.error(P))},"onRefresh");hi(()=>{!!C.current.length&&!g.length&&B(),C.current=g},[g.length]),hi(()=>{u&&v()},[u]),hi(()=>{u&&d(u)},[u]),hi(()=>{u||k({selectedWallets:o,customDestination:r}).then(P=>A(P)).catch(P=>console.error(P))},[]),gv(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let j=w.warnings?.quote??null,te=w.error,J=[];if(l&&J.push(Le.createElement(pv,{type:"error",variant:"alarm",title:l})),j||te){let P=`../${$.settings}`;J.push(Le.createElement(En,{warning:j,error:te,couldChangeSettings:!1,refetchQuote:B,showWarningModal:L,confirmationDisabled:!m,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(P)}))}return Le.createElement(oe,{header:{title:Fs.t("Confirm Swap"),onWallet:()=>{let P=`../${$.wallets}`;s(P)}},footer:Le.createElement(Sv,null,Le.createElement("div",{className:Cv()},Le.createElement(uv,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||h,disabled:!!w.error||!m,onClick:I},Fs.t("Start Swap"))),Le.createElement(qm,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||h,disabled:!m,onClick:d.bind(null,!0)},Le.createElement(fv,{size:24})))},p&&Le.createElement(xd,{open:p,onClose:()=>d(!1),onCancel:v,loading:T,onCheckBalance:E}),Le.createElement(ie,null,Le.createElement("div",{className:Tv()},Le.createElement(mv,{variant:"title",size:"small"},Fs.t("You get")),Le.createElement("div",{className:kv()},Le.createElement(Fr,{onClick:!T&&!p&&!L?B:void 0}))),Le.createElement(Os,{size:"12"}),Eu(J.map((P,X)=>({element:P,key:`alert-${X}`})),Le.createElement(Os,{size:10})),J.length>0?Le.createElement(Os,{size:10}):null,Le.createElement(yo,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:w.error,loading:T,warning:w.warnings?.quote??null})))}i(Hm,"ConfirmSwapPage");import{i18n as Ut}from"@lingui/core";import{Button as Zs,CustomTokensZeroStateDarkIcon as $v,CustomTokensZeroStateIcon as Fv,DeleteIcon as Ov,Divider as Fn,IconButton as Uv,MessageBox as zv,NotFound as Qv,styled as Rs}from"@rango-dev/ui";import de,{useState as Js}from"react";import{useNavigate as qv}from"react-router-dom";import{CloseIcon as wv,IconButton as bv,SearchIcon as xv,TextField as Ev}from"@rango-dev/ui";import _n from"react";import{styled as vv}from"@rango-dev/ui";var Gm=vv("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Ct(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:c,...u}=t;return _n.createElement(Ev,{prefix:_n.createElement(Gm,null,_n.createElement(xv,{color:"black"})),suffix:!!s.length&&_n.createElement(bv,{variant:"ghost",onClick:()=>c?.(""),size:"small"},_n.createElement(wv,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...l},size:r,value:s,onChange:a,...u})}i(Ct,"SearchInput");import{i18n as Ys}from"@lingui/core";import{darkTheme as of,Divider as Zo,ExternalLinkIcon as Nv,Image as Wv,ListItemButton as Bv,NotFound as Mv,PinIcon as Lv,Skeleton as nf,Typography as Ci,VirtualizedList as Pv}from"@rango-dev/ui";import q from"react";import{Divider as ef,ListItem as Av,Skeleton as Dn}from"@rango-dev/ui";import kt from"react";import{css as Yo,darkTheme as Vm,ImageContainer as Iv,styled as ut,Typography as Km}from"@rango-dev/ui";var zs=Yo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Qs=Yo({position:"relative",height:12,width:"30%",maxWidth:"150px"}),qs=Yo({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Hs=Yo({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Vm} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Gs=Yo({}),Vs=Yo(),jm=ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Ks=ut("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),yi=ut("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Qs}`]:{[`& .${Hs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Gs}`]:{bottom:"-15px"},[`& .${zs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${qs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),js=ut("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Xs=ut(Km,{}),Xm=ut("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Vs}`]:{$$color:"$colors$neutral600",[`.${Vm} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Si=ut("div",{display:"flex",alignItems:"end",flexDirection:"column"}),NU=ut("div",{display:"flex",alignItems:"center"}),Ym=ut("div",{position:"relative",[`& ${Iv}`]:{borderRadius:"$xm",overflow:"hidden"}}),Zm=ut("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Jm=ut(Km,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Rm=ut("a",{"& svg:hover":{color:"$colors$info"}});function tf(t){return kt.createElement(yi,null,Array.from(Array(t.size),e=>kt.createElement(Av,{key:e,hasDivider:!0,start:kt.createElement(Dn,{variant:"circular",width:35,height:35}),end:kt.createElement(Si,null,kt.createElement(Dn,{variant:"text",size:"large",width:70}),kt.createElement(ef,{size:4}),kt.createElement(Dn,{variant:"text",size:"medium",width:50})),title:kt.createElement("div",null,kt.createElement(Dn,{variant:"text",size:"large",width:90}),kt.createElement(ef,{size:4}),kt.createElement(Dn,{variant:"text",size:"medium",width:90}))})))}i(tf,"LoadingTokenList");var _v=20,Dv=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return q.createElement("div",{className:Qs()},o?q.createElement("div",{className:zs()},o):q.createElement(Ks,{className:qs()},q.createElement(Ci,{variant:"title",size:"xmedium"},r.symbol),q.createElement(Zo,{direction:"horizontal",size:4}),q.createElement(js,{css:a},q.createElement(Xs,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&q.createElement("div",{className:`${Hs()} ${!o&&Gs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",q.createElement(Zo,{size:4,direction:"horizontal"}),q.createElement(Rm,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:c=>c.stopPropagation()},q.createElement(Nv,{size:12}))))},"renderDesc");function $n(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s}=t,l=y().fetchStatus,c=y().blockchains(),{getBalanceFor:u,fetchingWallets:p}=y(),{isTokenPinned:d}=y(),h=i(m=>{let g=fr(u(m));return s?s(m):p?q.createElement(Si,null,q.createElement(nf,{variant:"text",size:"large",width:70}),q.createElement(Zo,{size:4}),q.createElement(nf,{variant:"text",size:"medium",width:50})):g&&q.createElement(Xm,null,q.createElement(Jm,{variant:"title",size:"small"},g.amount),q.createElement("div",null),g.usdValue&&q.createElement(Ci,{variant:"body",className:Vs(),size:"xsmall"},`$${g.usdValue}`))},"endRenderer"),f=i(()=>q.createElement(Pv,{itemContent:m=>{let g=e[m],C=g.address||"",S=c.find(w=>w.name===g.blockchain),k=qa(S.color,"main"),T={$$color:k.main150,[`.${of} &`]:{$$color:k.main750},backgroundColor:"$$color"},v={$$color:k.main750,[`.${of} &`]:{$$color:k.main150},color:"$$color"};return q.createElement("div",{style:{paddingRight:5}},q.createElement(Bv,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":m,key:`${g.symbol}${g.address}`,id:`${g.symbol}${g.address}`,className:"widget-token-list-item-btn",hasDivider:!0,onClick:()=>n&&n(e[m]),start:q.createElement(Ym,null,q.createElement(Wv,{src:g.image,size:30}),t.type!=="custom-token"&&d(g,t.type)&&q.createElement(Zm,null,q.createElement(Lv,{size:12,color:"gray"}))),title:S?.type==="COSMOS"||g.name||!g.name&&!C?q.createElement(Ks,null,q.createElement(Ci,{variant:"title",size:"xmedium"},g.symbol),q.createElement(Zo,{direction:"horizontal",size:4}),q.createElement(js,{css:T},q.createElement(Xs,{variant:"body",size:"xsmall",css:v},g.blockchain))):void 0,description:S?.info&&C&&S.type!=="COSMOS"?Dv({address:C,token:e[m],customCssForTag:T,customCssForTagTitle:v,name:g.name,url:S.info.addressUrl.split("{wallet}").join(C)}):g.name||void 0,end:h(g)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList");return q.createElement(q.Fragment,null,a&&q.createElement(q.Fragment,null,q.createElement(Ci,{variant:"label",size:"large"},Ys.t("Select Token")),q.createElement(Zo,{size:4})),q.createElement(jm,null,q.createElement(Zo,{size:4}),l==="loading"&&q.createElement(tf,{size:_v}),l==="success"&&(e.length?q.createElement(yi,{as:"ul"},f()):!!o&&q.createElement(Mv,{title:Ys.t("No results found"),description:Ys.t("Try using different keywords")}))))}i($n,"TokenList");var Hv=Rs("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Gv=Rs("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Vv=Rs(Uv,{"&:hover":{"& svg":{color:"$secondary550"}}});function rf(){let[t,e]=Js(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=O(),{mode:c}=Uo({}),u=qv(),[p,d]=Js(!1),[h,f]=Js(),m=i(k=>{let T=k.target.value;e(T)},"handleSearch"),g=c==="dark",C=n.filter(k=>Je(k.symbol,t)||Je(k.address||"",t)||Je(k.name||"",t)),S=i(()=>{if(h){let k=a?lt(a):null,T=r?lt(r):null,v=lt(h);k===v?l({token:null}):T===v&&s({token:null}),o(h)}d(!1)},"handleDeleteCustomToken");return de.createElement(oe,{header:{title:Ut.t("Custom Tokens")}},de.createElement(ie,null,de.createElement(Hv,null,n.length?de.createElement(de.Fragment,null,de.createElement(Ct,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Ut.t("Search Token"),onChange:m}),de.createElement(Fn,{size:16}),de.createElement($n,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,action:k=>de.createElement(Vv,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{d(!0),f(k)}},de.createElement(Ov,{size:12,color:"gray"}))})):de.createElement(Gv,null,de.createElement(Qv,{icon:g?de.createElement($v,{size:200}):de.createElement(Fv,{size:200}),title:Ut.t("No custom tokens"),description:Ut.t("press the button to add your custom token")})),de.createElement(Fn,{size:20}),de.createElement(Zs,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u($.addCustomTokens)},Ut.t("Add Custom Token"))),de.createElement(Z,{open:p,dismissible:!0,onClose:()=>d(!1),container:W()},de.createElement(zv,{title:Ut.t("Delete Custom Token"),type:"error",description:Ut.t("Are you sure you want to Delete this Token?")},de.createElement(Fn,{size:40}),de.createElement(Fn,{size:10}),de.createElement(Zs,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},Ut.t("Yes, Delete it")),de.createElement(Fn,{size:12}),de.createElement(Zs,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>d(!1)},Ut.t("No, Continue"))))))}i(rf,"CustomTokensPage");import{i18n as qe}from"@lingui/core";import{useManager as uw}from"@rango-dev/queue-manager-react";import{Button as al,darkTheme as dw,Divider as Co,MessageBox as mw,NotFound as fw,styled as sl,Typography as vi}from"@rango-dev/ui";import{TransactionStatus as zn}from"rango-types";import ae,{useMemo as bf,useState as wi}from"react";import{useNavigate as gw}from"react-router-dom";import{FilterIcon as Rv,Popover as ew}from"@rango-dev/ui";import So from"react";import{css as Kv,darkTheme as ki,IconButton as jv,styled as On}from"@rango-dev/ui";var el=On("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ki} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),af=On(jv,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ki} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ki} &`]:{backgroundColor:"$neutral"},[`& ${el}::before`]:{backgroundColor:"$secondary100",[`.${ki} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),sf=On("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),lf=On("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),cf=Kv({display:"flex",justifyContent:"space-between",alignItems:"center"}),pf=On("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as uf}from"@lingui/core";import{Button as Xv,Divider as df,ListItemButton as Yv,Radio as Zv,RadioRoot as Jv,Typography as mf}from"@rango-dev/ui";import ot from"react";function ff(t){let{filterBy:e,onClickItem:o}=t;return ot.createElement(lf,null,ot.createElement("div",{className:cf()},ot.createElement(mf,{size:"small",variant:"body"},uf.t("Status")),ot.createElement(Xv,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},uf.t("Reset"))),ot.createElement(df,{size:10}),ot.createElement(Jv,{value:e},ot.createElement(pf,null,t.list.map((n,r)=>ot.createElement(Yv,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:ot.createElement(ot.Fragment,null,ot.createElement(df,{direction:"horizontal",size:4}),ot.createElement(mf,{size:"medium",variant:"body"},n.title)),start:ot.createElement(Zv,{value:n.id}),onClick:o})))))}i(ff,"FilterSelectorContent");function tl(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return So.createElement("div",null,So.createElement(ew,{open:a,align:"end",onOpenChange:o,container:W(),content:So.createElement(ff,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},So.createElement(af,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},So.createElement(el,{isSelect:!!n},So.createElement(Rv,{size:16,color:"black"}),!!n&&So.createElement(sf,null)))))}i(tl,"FilterSelector");import{i18n as nw}from"@lingui/core";import{Divider as Cf,GroupedVirtualizedList as rw,Skeleton as iw,SwapListItem as kf,Typography as aw}from"@rango-dev/ui";import Qe,{useCallback as Tf,useEffect as sw,useRef as lw,useState as cw}from"react";function gf(t,e){let o=[],n=0;do{let r=t[n];o.push(Math.min(r,e)),e-=r,n++}while(e>0&&n<=t.length);return o}i(gf,"calculateGroupsSoFar");import{css as tw,darkTheme as ow,styled as Un}from"@rango-dev/ui";var ol=tw(),hf=Un("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),nl=Un("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ol}`]:{$$color:"$colors$neutral600",[`.${ow} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),rl=Un("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),yf=Un("div",{gap:"$10",display:"flex",flexDirection:"column"}),Sf=Un("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var pw=10;function il(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=cw([]),l=lw(0),{swaps:c,groupCounts:u,groups:p}=n(e),d=Tf(gf,[]),h=Tf(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,pw),s(d(u,l.current)))},[e.length]);if(sw(()=>{r||h()},[r,h]),r){let f=[1,2];return Qe.createElement(Qe.Fragment,null,[f,f].map((g,C)=>Qe.createElement(nl,{key:C},Qe.createElement(rl,null,Qe.createElement(iw,{variant:"text",width:60,size:"small"}),Qe.createElement(Cf,{size:16})),Qe.createElement(Cf,{size:4}),Qe.createElement(yf,null,g.map((k,T)=>Qe.createElement(kf,{isLoading:!0,key:T}))))))}return Qe.createElement(rw,{endReached:()=>{l.current<e.length&&h()},groupCounts:a,groupContent:f=>Qe.createElement(nl,null,Qe.createElement(rl,null,Qe.createElement(aw,{variant:"label",size:"medium",className:ol()},p[f]))),itemContent:(f,m)=>{let g=c[f];if(!g)return null;let C=g.steps[0],S=g.steps[g.steps.length-1];return Qe.createElement(hf,{key:g.requestId},Qe.createElement(kf,{requestId:g.requestId,creationTime:g.creationTime,status:g.status,onClick:o,tooltipContainer:W(),onlyShowTime:p[m]===nw.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:M(g.inputAmount,6,6),realAmount:g.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:M(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(il,"HistoryGroupedList");import{i18n as Ti}from"@lingui/core";import vf from"dayjs";var wf=i(t=>{let e=new Map([["today",{title:Ti.t("Today"),swaps:[]}],["week",{title:Ti.t("This week"),swaps:[]}],["month",{title:Ti.t("This month"),swaps:[]}],["year",{title:Ti.t("This year"),swaps:[]}]]);function o(c,u){e.has(c)||e.set(c,{title:c,swaps:[]}),e.get(c)?.swaps.push(u)}i(o,"addYearsToOutput");let n=vf();t.forEach(c=>{let u=Number(c.creationTime),p=vf(u);if(n.isSame(p,"day"))e.get("today")?.swaps.push(c);else if(n.isSame(p,"week"))e.get("week")?.swaps.push(c);else if(n.isSame(p,"month"))e.get("month")?.swaps.push(c);else if(n.isSame(p,"year"))e.get("year")?.swaps.push(c);else{let d=new Date(u).getFullYear().toString();o(d,c)}});let r=Array.from(e.values()).filter(c=>c.swaps.length>0),a=r.flatMap(c=>c.swaps),s=r.map(c=>c.swaps.length),l=r.map(c=>c.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var hw=sl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),yw=sl("div",{display:"flex",justifyContent:"center",alignItems:"center"}),Sw=sl("div",{"._typography":{color:"$neutral700",[`.${dw}&`]:{color:"$neutral900"}}}),Cw=[{id:zn.SUCCESS,title:qe.t("Complete")},{id:zn.RUNNING,title:qe.t("Running")},{id:zn.FAILED,title:qe.t("Failed")}],kw=i((t,e)=>t?.length?t.filter(o=>wt(o.fromBlockchain,e)||wt(o.toBlockchain,e)||wt(o.toSymbol,e)||wt(o.fromSymbol,e)).length:!1,"isStepContainsText");function xf(){let t=gw(),{manager:e,state:o}=uw(),n=pt(e).map(({swap:T})=>T),[r,a]=wi(""),[s,l]=wi(!1),c=!o.loadedFromPersistor,[u,p]=wi(""),[d,h]=wi(!1),f=i(T=>{let v=T.target.value;a(v)},"handleSearch"),m=bf(()=>!r&&!u?n:n.filter(T=>{let{inputAmount:v,status:w,steps:A,requestId:L}=T;return(!r||wt(v,r)||wt(w,r)||kw(A,r)||wt(L,r))&&(!u||u===w)}),[n,r,u]),g=!m?.length&&!c,C=i(()=>h(!1),"onCloseModal"),S=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(T){console.log(T)}},"onClear"),k=bf(()=>!n.some(T=>T.status===zn.SUCCESS||T.status===zn.FAILED),[n]);return ae.createElement(oe,{header:{title:qe.t("History"),suffix:ae.createElement(Vt,null,ae.createElement(al,{id:"widget-history-clear-btn",disabled:k,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},ae.createElement(vi,{size:"medium",variant:"label",color:"error"},qe.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(yw,null,ae.createElement(Ct,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qe.t("Search Transaction"),autoFocus:!0,onChange:f,style:{height:36},value:r}),ae.createElement(Co,{size:10,direction:"horizontal"}),ae.createElement(tl,{filterBy:u,open:s,onOpenChange:T=>l(T),onClickItem:T=>p(T),list:Cw})),ae.createElement(Co,{size:"16"}),ae.createElement(hw,null,g&&ae.createElement(Sf,null,ae.createElement(Co,{size:32}),ae.createElement(fw,{title:r?qe.t("No results found"):qe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?qe.t("Try using different keywords"):qe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!g&&ae.createElement(il,{list:m,onSwapClick:t,groupBy:wf,isLoading:c}))),ae.createElement(Z,{open:d,onClose:C,container:W()},ae.createElement(Co,{size:20}),ae.createElement(mw,{type:"warning",title:qe.t("Clear Transaction History"),description:ae.createElement(Sw,null,ae.createElement(vi,{variant:"body",size:"medium"},qe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(Co,{size:"24"}),ae.createElement(vi,{variant:"body",size:"small"},qe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(Co,{size:30}),ae.createElement(al,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},qe.t("Yes, Clear the history")),ae.createElement(Co,{size:10}),ae.createElement(al,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:C},ae.createElement(vi,{variant:"title",size:"medium",color:"primary"},qe.t("No, Cancel")))))}i(xf,"HistoryPage");import{i18n as Hw}from"@lingui/core";import{Button as Gw,Divider as Vf,styled as Vw,WarningIcon as Kw}from"@rango-dev/ui";import jw from"bignumber.js";import He,{useEffect as Kf,useState as jf}from"react";import{useNavigate as Xw}from"react-router-dom";import{i18n as If}from"@lingui/core";import{Alert as vw,Divider as ll,NoRouteIcon as ww,Typography as bw}from"@rango-dev/ui";import ko from"react";import{styled as Tw}from"@rango-dev/ui";var Ef=Tw("div",{display:"flex",flexDirection:"column",alignItems:"center"});function cl(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Mt(t,e)?ko.createElement(Ef,null,ko.createElement(ll,{size:10}),ko.createElement(ww,{size:24,color:"gray"}),ko.createElement(ll,{size:4}),ko.createElement(bw,{variant:"title",size:"small"},If.t("No Routes Found")),ko.createElement(ll,{size:4}),ko.createElement(vw,{title:If.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(cl,"SameTokensWarning");import{i18n as Ww}from"@lingui/core";import{Header as Bw}from"@rango-dev/ui";import Jt,{useEffect as Mw,useState as Lw}from"react";import{i18n as Ew}from"@lingui/core";import{Divider as ul,FullExpandedQuote as Iw,Typography as Aw}from"@rango-dev/ui";import Se from"react";import{styled as pl}from"@rango-dev/ui";var Af=pl("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Nf=pl("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Wf=pl("div",{width:"146px"});import{i18n as Qn}from"@lingui/core";import{Select as xw}from"@rango-dev/ui";import Bf from"react";function bi(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:Qn.t("Smart Routing")},{value:"FEE",label:Qn.t("Lowest Fee")},{value:"SPEED",label:Qn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:Qn.t("Maximum Return")},{value:"PRICE",label:Qn.t("Maximum Output")}];return Bf.createElement(Wf,null,Bf.createElement(xw,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(bi,"SelectStrategy");var Mf=3;function qn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:c,quotes:u,updateQuotePartialState:p,fromToken:d,toToken:h,sortStrategy:f,error:m}=O(),{slippage:g,customSlippage:C}=y(),{findToken:S}=y(),k=l||W(),T=!!u&&u.results.length,v=C??g,w=i(b=>{if(!d||!h||!u)return null;let E={requestAmount:u.requestAmount,validationStatus:null,...b};return Do({currentQuote:E,userSlippage:v,findToken:S})},"getQuoteWarning"),A=m?.type===0||m?.type===1,L=u?.results?Wr(f,u?.results):[];return Se.createElement(Se.Fragment,null,a&&Se.createElement(Se.Fragment,null,Se.createElement(Nf,null,Se.createElement(Aw,{size:"xmedium",variant:"title"},Ew.t("Sort by")),Se.createElement(bi,{container:k})),Se.createElement(ul,{size:"10"})),e&&Array.from({length:Mf},(b,E)=>Se.createElement(Se.Fragment,{key:E},s?Se.createElement(Iw,{loading:!0}):Se.createElement(Ln,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Mf-1&&Se.createElement(ul,{size:16}))),!e&&Se.createElement(Se.Fragment,null,T?L.map((b,E)=>{let x=w(b),N=Ds(b.swaps),I=L.length-1===E;return Se.createElement(Se.Fragment,{key:b.requestId},Se.createElement(yo,{showModalFee:r,container:k,selected:c?.requestId===b.requestId,tagHidden:!1,quote:{...b,requestAmount:u.requestAmount,validationStatus:null},loading:e,error:N?.options||null,warning:x,fullExpandedMode:s,onClick:B=>{N||p("warning",x),p("error",N?.options||null),o(B)},type:"list-item"}),!I&&Se.createElement(ul,{size:16}))}):A&&Se.createElement(Af,null,Se.createElement(bn,{size:s?"large":"small",error:m,fetch:n}))))}i(qn,"Quotes");import{darkTheme as Nw,styled as Lf}from"@rango-dev/ui";var Pf=Lf("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${Nw} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),_f=Lf("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var Pw=100;function dl(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=Lw(!1),c=s?"":"is-hidden",{config:u}=y(),p=u?.variant==="full-expanded",d=no();return Mw(()=>{let h=null;return a?h=setTimeout(()=>{l(!0)},Pw):(l(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),Jt.createElement(Pf,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${c} ${zr()}`,id:De.EXPANDED_BOX_ID},Jt.createElement(Bw,{title:Ww.t("Routes"),suffix:Jt.createElement(Jt.Fragment,null,Jt.createElement(bi,{container:d}),Jt.createElement(mo,{container:d,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Jt.createElement(_f,null,Jt.createElement(qn,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:no(),onClickOnQuote:n,fullExpandedMode:p})))}i(dl,"ExpandedQuotes");import{i18n as Qf}from"@lingui/core";import{SwapInput as qf}from"@rango-dev/ui";import Fw from"bignumber.js";import Hn from"react";import{ReverseIcon as $w}from"@rango-dev/ui";import fl from"react";import{keyframes as _w,styled as Df}from"@rango-dev/ui";var ml=450,Dw=_w({"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)"}}),$f=Df("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ff=Df("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${Dw} ${ml}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 gl(){let t=O.use.switchFromAndTo();return fl.createElement($f,null,fl.createElement(Ff,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},ml),t()}},fl.createElement($w,{size:12})))}i(gl,"SwitchFromAndToButton");import{styled as Of}from"@rango-dev/ui";var Uf=Of("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),zf=Of("div",{position:"relative"});function hl(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:c,setInputAmount:u,inputAmount:p,inputUsdValue:d,outputAmount:h,outputUsdValue:f,selectedQuote:m}=O(),{connectedWallets:g,getBalanceFor:C}=y(),S=a?C(a):null,k=fr(S)?.amount??"0",T=S?new Fw(S.amount).shiftedBy(-S.decimals):ce,v=!!s&&Fc(g,s.name),w=!Aa(m,p,d),A=!Aa(m,p,f),L=!d||!f||!f.gt(0)?null:Pt(d.toString(),f.toString());return Hn.createElement(Uf,null,Hn.createElement(zf,null,Hn.createElement(qf,{label:Qf.t("From"),mode:"From",onInputChange:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:p,usdValue:w?void 0:M(d,4,4),realUsdValue:w?void 0:d?.toString(),error:w?R().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:W(),onSelectMaxBalance:()=>{let b=M(T,S?.decimals),E=S?.amount?b:"";u(E)},anyWalletConnected:g.length>0}),Hn.createElement(gl,null)),Hn.createElement(qf,{sharpBottomStyle:!r&&(!!m||e),label:Qf.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:c?.displayName||"",image:c?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:M(Pt(d,f),2,2),warningLevel:_t(L??0),price:{value:M(h,6,6),usdValue:A?void 0:M(f,4,4),realValue:h?.toString(),realUsdValue:A?void 0:f?.toString(),error:A?R().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:W()}))}i(hl,"Inputs");import{useCallback as Ow,useEffect as Uw,useRef as zw,useState as Qw}from"react";function Hf(){let{fetch:t,loading:e,cancelFetch:o}=mi({request:async(n,r)=>await xt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Hf,"useFetchAllQuotes");var qw=600;function xi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Hf(),{excludeLiquiditySources:n,routing:r}=y().config,{connectedWallets:a}=y(),{fromToken:s,toToken:l,inputAmount:c,inputUsdValue:u,selectedQuote:p,sortStrategy:d,resetQuote:h,error:f,warning:m,setSelectedQuote:g,updateQuotePartialState:C}=O(),{slippage:S,customSlippage:k,affiliatePercent:T,affiliateRef:v,affiliateWallets:w,fetchStatus:A}=y(),L=y().getLiquiditySources(),b=y().getDisabledLiquiditySources(),E=y().excludeLiquiditySources(),{findToken:x}=y(),[N,I]=Qw(!0),B=zw(c),j=k??S,J=!s||!l||Mt(s,l)||!sn(c),P=i(z=>{I(z)},"resetState"),X=i(z=>{let{fromToken:me,toToken:vt,inputAmount:Ze,liquiditySources:le,excludeLiquiditySources:at,disabledLiquiditySources:G,slippage:_,affiliateRef:H,affiliatePercent:V,affiliateWallets:fe}=z;if(N||P(!0),!J&&me&&vt){h();let ne=iu({fromToken:me,toToken:vt,inputAmount:Ze,liquiditySources:le,excludeLiquiditySources:at,disabledLiquiditySources:G,wallets:a,slippage:_,affiliateRef:H,affiliatePercent:V,affiliateWallets:fe});Ao("experimental",r)&&(ne.experimental=!0),Ao("avoidNativeFee",r)&&(ne.avoidNativeFee=!0),Ao("enableCentralizedSwappers",r)&&(ne.enableCentralizedSwappers=!0),r?.maxLength&&(ne.maxLength=r.maxLength),e(ne).then(ge=>{let Fe=Wr(d,ge.results),ve=Kp(p,Fe,ge.requestAmount);I(!1),C("quotes",ge),g(ve),fi({diagnosisMessages:ge.diagnosisMessages,requestId:ve?.requestId||"",swaps:ve?.swaps});let mt=ve&&Do({currentQuote:ve,userSlippage:j,findToken:x});C("warning",mt)}).catch(ge=>{let{error:Fe}=gi(ge);(Fe?.type===0||Fe?.type===1)&&h(),Fe?.type!==2&&(C("error",Fe),I(!1))})}},"fetch"),se=Ow(Ec(z=>{X(z)},qw),[J]);return Uw(()=>{if(!t){I(!1);return}if(A!=="success")return;if(J){I(!1),(p||f||m)&&h();return}if(!sn(c)||u?.eq(0)){P(!1),o();return}h(),P(!0);let z=X;return B.current&&B.current!=c&&(z=se),B.current=c,z({inputAmount:c,fromToken:s,toToken:l,liquiditySources:L,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:v,affiliatePercent:T,affiliateWallets:w}),o},[A,c,s?.symbol,s?.address,s?.blockchain,l?.symbol,l?.address,l?.blockchain,J,L?.length,n,b.length,j,v,T,JSON.stringify(w)]),{fetch:()=>X({inputAmount:c,fromToken:s,toToken:l,liquiditySources:L,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:j,affiliateRef:v,affiliatePercent:T,affiliateWallets:w}),loading:N}}i(xi,"useSwapInput");function Gf(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};he.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Gf,"emitPreventableEvent");var Yw=Vw("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),Zw=300;function Xf(){let t=Xw(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:c,setSelectedQuote:u,resetQuoteWallets:p,setQuoteWarningsConfirmed:d,updateQuotePartialState:h}=O(),[f,m]=jf(!1),{isLargeScreen:g,isExtraLargeScreen:C}=ii(),{fetch:S,loading:k}=xi({refetchQuote:a}),{config:T,fetchStatus:v,connectedWallets:w}=y(),{isActiveTab:A}=re(),[L,b]=jf(!1),x=tu({fetchMetaStatus:v,fetchingQuote:k,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),N=Gc(g,C,T?.variant),I=!!n&&!!e&&!!o&&new jw(n).gt(0)&&!du(e,o),B=I&&v==="success"&&k,J=(!N||N&&c?.results.length)&&(l||s);Kf(()=>{p(),h("refetchQuote",!0)},[]),Kf(()=>{m(I)},[I]);let P=(r||s)&&!L?S:void 0,X=i(z=>{N&&f?(m(!1),setTimeout(()=>{t(z)},Zw)):t(z)},"onHandleNavigation"),se=i(z=>{r?.requestId!==z.requestId&&(b(!1),u(z))},"onClickOnQuote");return He.createElement(Yw,null,He.createElement(oe,{height:"auto",footer:He.createElement(Gw,{id:`widget-swap-${x.action}-btn`,type:"primary",size:"large",disabled:x.disabled||!A,prefix:x.action==="confirm-warning"&&He.createElement(Kw,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?Gf({type:"clickConnectWallet"},()=>X($.wallets)):x.action==="confirm-warning"?b(!0):X($.confirmSwap)}},x.title),header:{onWallet:()=>{X($.wallets)},hasBackButton:!1,title:T.title||Hw.t("Swap"),suffix:He.createElement(mo,{hidden:N?["refresh"]:void 0,onClickRefresh:P,onClickHistory:()=>X($.swaps),onClickSettings:()=>{X($.settings)}})}},He.createElement(ie,null,He.createElement(hl,{fetchingQuote:B,fetchMetaStatus:v,isExpandable:N,onClickToken:z=>{X(z==="from"?$.fromSwap:$.toSwap)}}),He.createElement(Vf,{size:"2"}),N?null:He.createElement(yo,{quote:r,loading:B,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:c&&c.results.length>1?()=>{h("refetchQuote",!1),X($.routes)}:void 0}),J?He.createElement(He.Fragment,null,He.createElement(Vf,{size:"10"}),He.createElement(En,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:S,showWarningModal:L,confirmationDisabled:!A,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:()=>{b(!1),d(!0),X($.confirmSwap)},onChangeSettings:()=>X($.settings)})):null,He.createElement(cl,null))),N?He.createElement(dl,{loading:B,onClickOnQuote:se,fetch:S,onClickRefresh:P,isVisible:f}):null)}i(Xf,"Home");import{i18n as Yf}from"@lingui/core";import{Alert as Jw,Divider as Rw,List as eb,ListItemButton as tb,Radio as ob,RadioRoot as nb,Typography as rb}from"@rango-dev/ui";import Wt from"react";function Rt(){let{setLanguage:t,language:e,config:o}=y(),n=Zc,r=o?.language||No;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||No),resetLanguage:()=>t(null)}}i(Rt,"useLanguage");function Zf(){let{activeLanguage:t,changeLanguage:e,languages:o}=Rt(),n=je(),r=o.map(a=>{let{local:s,label:l,SVGFlag:c}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Wt.createElement(rb,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Wt.createElement(ob,{value:s}),start:Wt.createElement(c,null)}});return Wt.createElement(oe,{header:{title:Yf.t("Language")}},Wt.createElement(ie,null,Wt.createElement(Jw,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Wt.createElement(Rw,{size:"8"}),Wt.createElement(nb,{value:t},Wt.createElement(eb,{type:Wt.createElement(tb,{title:Yf.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(Zf,"LanguagePage");import{i18n as zt}from"@lingui/core";import{Button as cb,Checkbox as pb,Image as ub,ListItemButton as db,NotFound as mb,Typography as fb}from"@rango-dev/ui";import Ge,{useState as gb}from"react";import{Checkbox as sb,Skeleton as Rf}from"@rango-dev/ui";import Vn from"react";import{styled as yl}from"@rango-dev/ui";var Gn=yl("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Sl=yl("div",{width:80,display:"flex",justifyContent:"flex-end"}),Cl=yl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as ib,styled as ab}from"@rango-dev/ui";var Jf=ab(ib,{height:61});var lb=30;function kl(){return Vn.createElement(Gn,null,Array.from(Array(lb),(t,e)=>Vn.createElement(Jf,{hasDivider:!0,key:e,start:Vn.createElement(Rf,{variant:"circular",width:35,height:35}),title:Vn.createElement(Rf,{variant:"text",size:"large",width:90}),end:Vn.createElement(sb,{checked:!1})})))}i(kl,"LoadingLiquiditySourceList");function Tl({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=gb(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),c=yr(o,n),u={Exchanges:zt.t("Exchanges"),Bridges:zt.t("Bridges")},p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&p.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let d=c.filter(S=>p.includes(S.type)),h=d.length===d.filter(S=>S.selected).length,f=i(()=>{d.forEach(S=>{h?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),m=d.map(S=>{let{selected:k,groupTitle:T,logo:v,id:w,...A}=S;return{id:`widget-setting-liquidity-source-${w.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:Ge.createElement(ub,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(T)},end:Ge.createElement(pb,{checked:k,disabled:l}),title:Ge.createElement(fb,{variant:"title",size:"xmedium"},zt.t(T)),selected:k,groupTitle:T,logo:v,...A}}),g=i(S=>{let k=S.target.value;a(k)},"handleSearch"),C=m;return r&&(C=m.filter(S=>wt(S.groupTitle,r))),Ge.createElement(oe,{header:{title:zt.t(t),suffix:Ge.createElement(Sl,null,Ge.createElement(cb,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:f},h?zt.t("Deselect all"):zt.t("Select all")))}},Ge.createElement(ie,{view:!0},Ge.createElement(Ct,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:zt.t("Search {sourceType}",{sourceType:u[t]}),onChange:g}),e==="loading"&&Ge.createElement(kl,null),!C.length&&r?Ge.createElement(Cl,null,Ge.createElement(mb,{title:zt.t("No results found"),description:zt.t("Try using different keywords")})):e==="success"&&Ge.createElement(Gn,{disabled:l},C.map(S=>{let{groupTitle:k,...T}=S;return Ge.createElement(Ge.Fragment,{key:S.id},Ge.createElement(db,{style:{height:"61px"},...T,selected:!1,hasDivider:!0}))}))))}i(Tl,"LiquiditySourcePage");import{i18n as hb}from"@lingui/core";import Ei from"react";import{useNavigate as yb}from"react-router-dom";function eg(){let t=yb(),e=je(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:l,loading:c}=xi({refetchQuote:n}),u=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),p=`../${$.settings}`,d=`../${$.wallets}`;return Ei.createElement(oe,{header:{onWallet:()=>{t(d),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:hb.t("Routes"),suffix:Ei.createElement(mo,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(p),a("refetchQuote",!0)}})}},Ei.createElement(ie,null,Ei.createElement(qn,{fetch:l,loading:c,onClickOnQuote:u})))}i(eg,"RoutesPage");import{i18n as sg}from"@lingui/core";import{Divider as lg,getCategoriesCount as Ib,SelectableCategoryList as Ab}from"@rango-dev/ui";import Qt,{useState as cg}from"react";import{useNavigate as Nb}from"react-router-dom";import{i18n as vl}from"@lingui/core";import{Divider as Tb,Image as vb,ListItemButton as wb,NotFound as bb,Typography as ag}from"@rango-dev/ui";import nt,{useEffect as xb,useState as Eb}from"react";var tg=i((t,e,o)=>t.filter(n=>lr(n.type,o)).filter(n=>Je(n.name,e)||Je(n.displayName,e)),"filterBlockchains");import{ImageContainer as Sb,styled as og}from"@rango-dev/ui";var ng=og("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Ii=og(kn,{padding:0,margin:0,listStyle:"none",[`& ${Sb}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Cb,Skeleton as rg}from"@rango-dev/ui";import Ai from"react";var kb=20;function ig(){return Ai.createElement(Ii,null,Array.from(Array(kb),t=>Ai.createElement(Cb,{key:t,hasDivider:!0,start:Ai.createElement(rg,{variant:"circular",width:35,height:35}),title:Ai.createElement(rg,{variant:"text",size:"large",width:90})})))}i(ig,"LoadingBlockchainList");function wl(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=Eb(e),{fetchStatus:c}=y();xb(()=>{l([...tg(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?nt.createElement(bb,{title:vl.t("No results found"),description:vl.t("Try using different keywords")}):nt.createElement(Ii,{as:"ul",key:`${r}-${o}`},s.map(p=>nt.createElement(wb,{key:`${p.name}-${p.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(p),start:nt.createElement(vb,{src:p.logo,size:30}),title:nt.createElement(ag,{variant:"title",size:"medium"},p.displayName),id:p.name}))),"renderList");return nt.createElement(nt.Fragment,null,a&&nt.createElement(nt.Fragment,null,nt.createElement(ag,{variant:"label",size:"large"},vl.t("Select Chain")),nt.createElement(Tb,{size:4})),nt.createElement(ng,null,c==="loading"&&nt.createElement(ig,null),c==="success"&&u()))}i(wl,"BlockchainList");function Ni(t){let{type:e}=t,o=je(),[n,r]=cg(""),[a,s]=cg("ALL"),l=O.use.setToBlockchain(),c=O.use.setFromBlockchain(),{fetchStatus:u}=y(),p=Nb(),d=y().blockchains({type:e}),h=Ib(d),f=!t.hideCategory&&h!==1;return Qt.createElement(oe,{header:{title:sg.t("Select Chain")}},Qt.createElement(ie,{view:!0},f&&Qt.createElement(Qt.Fragment,null,Qt.createElement(Ab,{setCategory:s,category:a,blockchains:d,isLoading:u==="loading"}),Qt.createElement(lg,{size:24})),Qt.createElement(Ct,{value:n,autoFocus:!0,placeholder:sg.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Qt.createElement(lg,{size:16}),Qt.createElement(wl,{list:d,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:m=>{e==="custom-token"?p(`..?blockchain=${m.name}`,{replace:!0}):(e==="source"?c(m):l(m),o())}})))}i(Ni,"SelectBlockchainPage");import{i18n as Bi}from"@lingui/core";import{Divider as gg}from"@rango-dev/ui";import To,{useState as $b}from"react";import{useNavigate as Fb}from"react-router-dom";import{i18n as El}from"@lingui/core";import{BlockchainsChip as Wi,Divider as mg,Image as fg,Skeleton as Pb,Tooltip as _b,Typography as Il}from"@rango-dev/ui";import Pe from"react";import{useEffect as Mb}from"react";var pg=["ETH","COSMOS","OSMOSIS"];function bl(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Wb),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let c=0;c<=l;c++){let u=n[c];s=s.filter(p=>u.name!==p)}}n.sort(Bb(s)),r=n.splice(a)}return{list:n,more:r}}i(bl,"prepare");function Wb(t,e){let o=pg,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(Wb,"sortByMostUsedBlockchains");function Bb(t){return i(function(o,n){let r=t.findIndex(c=>c===o.name),a=t.findIndex(c=>c===n.name),s=r>-1,l=a>-1;return s&&l?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(Bb,"generateSortByPreferredBlockchainsFor");function ug(t,e){return!!e.list.find(o=>o.name===t)}i(ug,"isInVisibleList");function xl(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();Mb(()=>{if(e?.selected){let a=bl(t,o,e);ug(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=bl(t,o,e);return{list:r.list,more:r.more,history:[]}}i(xl,"usePrepareBlockchainList");import{styled as Lb}from"@rango-dev/ui";var dg=Lb("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Db=12;function Al(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=xl(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),c=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),p=s.more.length>0,d=s.more.length===1,h=!d&&p;return Pe.createElement(Pe.Fragment,null,Pe.createElement(mg,{size:12}),Pe.createElement(Il,{variant:"label",size:"large"},El.t("Select Chain")),Pe.createElement(mg,{size:12}),Pe.createElement(dg,null,l==="loading"&&Array.from(Array(Db),f=>Pe.createElement(Pb,{key:f,variant:"rounded",height:50})),l==="success"&&Pe.createElement(Pe.Fragment,null,Pe.createElement(Wi,{selected:!n,onClick:()=>{o==="from"?u():c()}},Pe.createElement(Il,{variant:"body",size:"xsmall",color:"secondary500"},El.t("All"))),s.list.map(f=>Pe.createElement(_b,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:W()},Pe.createElement(Wi,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Pe.createElement(fg,{src:f.logo,size:30})))),d?Pe.createElement(Wi,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Pe.createElement(fg,{src:s.more[0].logo,size:30})):null,h?Pe.createElement(Wi,{onClick:a,key:"more-blockchains"},Pe.createElement(Il,{variant:"body",size:"xsmall",color:"secondary500"},El._("More +{count}",{count:s.more.length}))):null)))}i(Al,"BlockchainsSection");function Nl(t){let{type:e}=t,o=Fb(),n=je(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:c,setToBlockchain:u}=O(),{getBalanceFor:p}=y(),[d,h]=$b(""),m=(e==="source"?r:a)?.name??"",g=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:m,searchFor:d,getBalanceFor:p}),S=i(v=>{e==="source"?c(v):u(v)},"updateBlockchain"),k=i(v=>{e==="source"?s({token:v,meta:{blockchains:g,tokens:C}}):l({token:v,meta:{blockchains:g,tokens:C}})},"updateToken"),T={source:Bi.t("Source"),destination:Bi.t("Destination")};return To.createElement(oe,{header:{title:Bi.t("Swap {type}",{type:T[e]})}},To.createElement(ie,null,To.createElement(Al,{blockchains:g,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o($.blockchains),onChange:v=>{S(v)}}),To.createElement(gg,{size:24}),To.createElement(Ct,{value:d,autoFocus:!0,placeholder:Bi.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>h(""),onChange:v=>h(v.target.value)}),To.createElement(gg,{size:16}),To.createElement($n,{list:C,selectedBlockchain:m,searchedFor:d,type:e,onChange:v=>{k(v);let w=g.find(A=>v.blockchain===A.name);w&&S(w),n()}})))}i(Nl,"SelectSwapItemsPage");import{i18n as Ml}from"@lingui/core";import{Alert as px,Button as ux,styled as dx}from"@rango-dev/ui";import vo from"react";import{useInRouterContext as mx,useSearchParams as fx}from"react-router-dom";import{i18n as Tg}from"@lingui/core";import{Divider as vg,InfoIcon as Qb,SlippageIcon as qb,TextField as Hb,Tooltip as Gb,Typography as wg}from"@rango-dev/ui";import rt from"react";import{Chip as Ob,styled as Kn,TextField as Ub}from"@rango-dev/ui";var hg=Kn("div",{paddingTop:"$5",padding:"$10 $5"}),yg=Kn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Ub}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Sg=Kn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Mi=Kn("div",{maxWidth:"280px",padding:"$10"}),Cg=Kn(Ob,{width:"61px",flexShrink:0});import{i18n as Wl}from"@lingui/core";import{Typography as zb}from"@rango-dev/ui";import jn from"react";function kg(){return jn.createElement(Mi,null,jn.createElement(zb,{variant:"label",size:"medium",color:"neutral700"},Wl.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),jn.createElement("br",null),jn.createElement("br",null),jn.createElement("b",null,Wl.t("Warning")),":\xA0",Wl.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(kg,"SlippageTooltipContent");function Bl(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return rt.createElement(hg,null,rt.createElement(Sg,null,rt.createElement(qb,{size:16,color:"gray"}),rt.createElement(vg,{direction:"horizontal",size:4}),rt.createElement(wg,{variant:"title",size:"xmedium"},Tg.t("Slippage tolerance per swap")),rt.createElement(vg,{direction:"horizontal",size:4}),rt.createElement(Gb,{container:W(),side:"top",sideOffset:4,content:rt.createElement(kg,null)},rt.createElement(Qb,{color:"gray"}))),rt.createElement(yg,null,Jc.map((r,a)=>{let s=`slippage-${a}`;return rt.createElement(Cg,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),rt.createElement(Hb,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:r=>{let a=r.target.value,s=parseFloat(a);s>=op&&s<=tp?n(s):n(null)},suffix:o&&rt.createElement(wg,{variant:"body",size:"small"},"%"),placeholder:Tg.t("Custom")})))}i(Bl,"Slippage");import{i18n as dt}from"@lingui/core";import{AutoThemeIcon as bg,BridgesIcon as Vb,ChevronRightIcon as Li,DarkModeIcon as xg,Divider as Xn,ExchangeIcon as Kb,InfinityIcon as jb,InfoIcon as Xb,LanguageIcon as Yb,LightModeIcon as Eg,List as Zb,ListItem as Jb,ListItemButton as Rb,Skeleton as ex,styled as tx,Switch as ox,Tabs as nx,TargetIcon as rx,Tooltip as ix,Typography as Ye}from"@rango-dev/ui";import D from"react";import{useNavigate as ax}from"react-router-dom";var sx=tx("div",{width:"202px",height:"$40"}),lx=[{id:"light",icon:D.createElement(Eg,{color:"black",size:24}),tooltip:D.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Light"))},{id:"dark",icon:D.createElement(xg,{color:"black",size:24}),tooltip:D.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Dark"))},{id:"auto",icon:D.createElement(bg,{color:"black",size:24}),tooltip:D.createElement(Ye,{size:"xsmall",variant:"body"},dt.t("Auto"))}],cx=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(bg,{...e});case"dark":return D.createElement(xg,{...e});default:return D.createElement(Eg,{...e})}},"getThemeIcon");function Ig(){let t=ax(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=Rt(),s=a.find(P=>P.local===r)?.label,l=y().fetchStatus,c=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:p}}=y(),d=y().customTokens(),h=Ve("theme",p),f=Ve("liquiditySource",p),m=Ve("language",p),g=Ve("customTokens",p),C=y().infiniteApprove,S=y().toggleInfiniteApprove,k=yr(c,u),T=k.filter(P=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(P.type)),v=T.length,w=T.filter(P=>P.selected).length,A=k.filter(P=>P.type==="DEX"),L=A.length,b=A.filter(P=>P.selected).length,E=i((P,X)=>{switch(l){case"loading":return D.createElement(ex,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(Ye,{variant:"body",size:"medium",color:"$error500"},dt.t("Loading failed"));default:return D.createElement(Ye,{variant:"body",size:"medium"},`${P} / ${X}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Bridges")),end:D.createElement(D.Fragment,null,E(w,v),D.createElement(Xn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),onClick:()=>t($.bridges),start:D.createElement(Vb,{color:"gray",size:16})},N={id:"widget-setting-exchange-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Exchanges")),end:D.createElement(D.Fragment,null,E(b,L),D.createElement(Xn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),start:D.createElement(Kb,{color:"gray",size:16}),onClick:()=>t($.exchanges)},I={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(Ye,{variant:"body",size:"medium"},`${d.length}`),D.createElement(Xn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),start:D.createElement(rx,{color:"gray",size:16}),onClick:()=>t($.customTokens)},B={id:"widget-setting-language-item-btn",title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Language")),start:D.createElement(Yb,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(Ye,{variant:"body",size:"medium"},s),D.createElement(Xn,{direction:"horizontal",size:8}),D.createElement(Li,{color:"black"})),onClick:()=>t($.languages)},j={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Infinite approval")),D.createElement(Xn,{direction:"horizontal",size:4}),D.createElement(ix,{side:"top",sideOffset:4,container:W(),content:D.createElement(Mi,null,D.createElement(Ye,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,dt.t("Warning")),":\xA0",dt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(Xb,{color:"gray"}))),start:D.createElement(jb,{color:"gray",size:16}),end:D.createElement(ox,{checked:C}),onClick:S},te={id:"widget-setting-theme-item-btn",type:D.createElement(Jb,null),title:D.createElement(Ye,{variant:"title",size:"xmedium"},dt.t("Theme")),end:D.createElement(sx,null,D.createElement(nx,{container:W(),items:lx,value:n,onChange:P=>o(P.id),type:"primary",borderRadius:"small"})),start:cx(n)},J=f?[]:[x,N];return g||J.push(I),m||J.push(B),J.push(j),!e?.singleTheme&&!h&&J.push(te),D.createElement(Zb,{type:D.createElement(Rb,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:J})}i(Ig,"SettingsLists");var gx=dx("div",{paddingLeft:"$8"});function Ag(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=fx(),r=mx(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return vo.createElement(oe,{header:{title:Ml.t("Settings")}},vo.createElement(ie,null,o&&vo.createElement(px,{type:"info",variant:"alarm",title:Ml.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:vo.createElement(gx,null,vo.createElement(ux,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Ml.t("Reset")))}),vo.createElement(Bl,null),vo.createElement(Ig,null)))}i(Ag,"SettingsPage");import{i18n as oE}from"@lingui/core";import{cancelSwap as nE}from"@rango-dev/queue-manager-rango-preset";import{useManager as rE}from"@rango-dev/queue-manager-react";import{Alert as iE}from"@rango-dev/ui";import jl from"react";import{useParams as aE}from"react-router-dom";import{i18n as it}from"@lingui/core";import{getCurrentNamespaceOfOrNull as $x,getCurrentStep as Fx,getRelatedWalletOrNull as Ox}from"@rango-dev/queue-manager-rango-preset";import{Button as ah,CopyIcon as Ux,Divider as zx,DoneIcon as Qx,IconButton as qx,QuoteCost as Hx,RangoExplorerIcon as Gx,StepDetails as Vx,Tooltip as sh,Typography as wo,useCopyToClipboard as Kx}from"@rango-dev/ui";import{useWallets as jx}from"@rango-dev/wallets-react";import lh from"bignumber.js";import{PendingSwapNetworkStatus as zi}from"rango-types";import K,{useEffect as ch,useRef as Xx,useState as ph}from"react";import{useNavigate as Yx}from"react-router-dom";import{i18n as eo}from"@lingui/core";var hx=[eo.t("Sunday"),eo.t("Monday"),eo.t("Tuesday"),eo.t("Wednesday"),eo.t("Thursday"),eo.t("Friday"),eo.t("Saturday")];function Ng(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?eo.t("Today"):`${hx[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ng,"timeSince");function Wg(t){return t.finishTime?Ng(parseInt(t.finishTime)):Ng(parseInt(t.creationTime))}i(Wg,"getSwapDate");import{PendingSwapNetworkStatus as Di}from"rango-types";import $i from"react";import{i18n as Pi}from"@lingui/core";import{Button as Bg,Divider as Ll,MessageBox as yx}from"@rango-dev/ui";import to from"react";var Mg=i(({onCancel:t,onClose:e})=>to.createElement(to.Fragment,null,to.createElement(Ll,{size:20}),to.createElement(yx,{type:"error",title:Pi.t("Cancel Swap"),description:Pi.t("Are you sure you want to cancel this swap?")}),to.createElement(Ll,{size:32}),to.createElement(Bg,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Pi.t("Yes, Cancel it")),to.createElement(Ll,{size:12}),to.createElement(Bg,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Pi.t("No, Continue"))),"CancelContent");import{i18n as _i}from"@lingui/core";import{Button as Lg,Divider as Pl,MessageBox as Sx,Typography as Cx}from"@rango-dev/ui";import qt from"react";var Pg=i(({onDelete:t,onClose:e})=>qt.createElement(qt.Fragment,null,qt.createElement(Pl,{size:20}),qt.createElement(Sx,{type:"error",title:_i.t("Delete Transaction"),description:_i.t("Are you sure you want to delete this swap?")}),qt.createElement(Pl,{size:32}),qt.createElement(Lg,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},_i.t("Yes, Delete it")),qt.createElement(Pl,{size:12}),qt.createElement(Lg,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},qt.createElement(Cx,{variant:"title",size:"medium",color:"primary"},_i.t("No, Cancel")))),"DeleteContent");import{i18n as _l}from"@lingui/core";import{PendingSwapNetworkStatus as Dl}from"rango-types";var $l={[Dl.WaitingForNetworkChange]:{type:"loading",title:_l.t("Change Network")},[Dl.WaitingForConnectingWallet]:{type:"warning",title:_l.t("Connect Wallet")},[Dl.NetworkChanged]:{type:"success",title:_l.t("Network Changed")}};import{warn as kx}from"@rango-dev/logging-core";import{MessageBox as Tx,Wallet as vx}from"@rango-dev/ui";import{useWallets as wx}from"@rango-dev/wallets-react";import Jo,{useState as bx}from"react";import{styled as _g}from"@rango-dev/ui";var Dg=_g("div",{display:"flex",justifyContent:"center"}),c5=_g("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var $g=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,c]=bx(),{getWalletInfo:u,state:p}=wx(),d=n?.walletType,h=d?ln(p(d)):null,f=d?u(d):null,m=a&&!!d&&!!h&&!!f,{list:g}=ft(),C=i(()=>{if(d){let S=g.find(k=>k.type===d);S?c(S):kx(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${S}`))}},"handleWalletItemClick");return Jo.createElement(Jo.Fragment,null,Jo.createElement(Tx,{type:e,title:o,description:r}),m&&Jo.createElement(Dg,null,Jo.createElement(vx,{container:W(),title:f.name,image:f.img,type:d,state:h,link:f.installLink,disabled:s,onClick:C})),Jo.createElement(co,{wallet:l,onClose:()=>{c(void 0)}}))},"WalletStateContent");function Fl(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,c=e===Di.WaitingForNetworkChange||e===Di.WaitingForConnectingWallet||e===Di.NetworkChanged;return $i.createElement(Z,{open:!!e,onClose:o,container:document.getElementById(De.SWAP_BOX_ID)||document.body},c&&$i.createElement($g,{type:$l[e].type,title:$l[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==Di.WaitingForNetworkChange}),e==="delete"&&$i.createElement(Pg,{onClose:o,onDelete:n}),e==="cancel"&&$i.createElement(Mg,{onClose:o,onCancel:r}))}i(Fl,"SwapDetailsModal");import{i18n as Yn}from"@lingui/core";import{Button as Ol,Divider as Zn,MessageBox as Fg,TokenAmount as xx,Typography as Og}from"@rango-dev/ui";import Ce from"react";import{useNavigate as Ex}from"react-router-dom";function Ul(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:c,chain:u,percentageChange:p,description:d,diagnosisUrl:h}=t,f=Ex(),{showProfileBanner:m}=re();return Ce.createElement(Z,{open:e,onClose:o,container:document.getElementById(De.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(Fg,{type:"success",title:Yn.t("Swap Successful")},Ce.createElement(xx,{direction:"vertical",tooltipContainer:W(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:c,chain:u,percentageChange:p}),Ce.createElement(Zn,{size:12}),Ce.createElement(Og,{variant:"body",size:"medium",color:"neutral700",align:"center"},d)):Ce.createElement(Fg,{type:"error",title:Yn.t("Transaction Failed"),description:d}),Ce.createElement(Zn,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,m&&Ce.createElement(Ce.Fragment,null,Ce.createElement("img",{src:"https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.png",alt:"Profile Banner"}),Ce.createElement(Zn,{size:30})),Ce.createElement(Ol,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},Yn.t("Done"))),Ce.createElement(Zn,{size:12}),h&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Ol,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},Yn.t("Diagnosis")),Ce.createElement(Zn,{size:12})),Ce.createElement(Ol,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(Og,{variant:"title",size:"medium",color:"primary"},Yn.t("See Details"))))}i(Ul,"SwapDetailsCompleteModal");import Dx from"react";import{i18n as Mx}from"@lingui/core";import{Alert as oh,IconButton as Lx,LinkIcon as Px}from"@rango-dev/ui";import oo,{Fragment as _x}from"react";import{Alert as Ax,ChevronDownIcon as Nx,IconButton as Wx}from"@rango-dev/ui";import en,{useState as Bx}from"react";import{css as Jn,darkTheme as Ug,styled as Ht,Typography as Ix}from"@rango-dev/ui";var zg=Ht("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Fi=Ht("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Ug} &`]:{color:"$secondary500"}}}}}),Qg=Ht(kn,{padding:"$0 $20 $20 $20"}),K5=Ht("div",{display:"flex",flexDirection:"column",gap:"$10"}),qg=Ht("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),j5=Ht("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Ro=Jn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Ug} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Hg=Jn({padding:"$5 0"}),Oi=Jn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Gg=Jn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Vg=Jn({width:"100%",padding:"0 $20 $10"}),Kg=Ht("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),jg=Ht("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ui=Ht(Ix,{wordBreak:"break-word"});import{styled as zl}from"@rango-dev/ui";var Xg=zl("div",{display:"flex",flexDirection:"column",gap:"$10"}),Yg=zl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Zg=zl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function Jg(t){let{message:e}=t,[o,n]=Bx(!1);return en.createElement(Ax,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&en.createElement(Wx,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},en.createElement(Yg,{rotated:o},en.createElement(Nx,{size:12,color:"gray"}))),footer:en.createElement(Zg,{open:o},en.createElement(Ui,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(Jg,"FailedAlert");import{i18n as Rg}from"@lingui/core";import{Alert as Ql,Button as eh}from"@rango-dev/ui";import{PendingSwapNetworkStatus as ql}from"rango-types";import Rn from"react";function th(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Rn.createElement(Ql,{type:"warning",title:n.shortMessage,action:Rn.createElement(eh,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(ql.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Rg.t("Change"))}):r===ql.WaitingForConnectingWallet?Rn.createElement(Ql,{type:"warning",title:n.shortMessage,action:Rn.createElement(eh,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(ql.WaitingForConnectingWallet)}},Rg.t("Connect"))}):Rn.createElement(Ql,{type:"warning",title:n.shortMessage})}i(th,"WarningAlert");function Hl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Sn(a),c=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,p=u&&!s||c&&!a.explorerUrl?.length;return oo.createElement(Xg,null,a.explorerUrl?.map((d,h,f)=>{let m=h+d.url,g=h===f.length-1,C=(g&&u||c)&&!p,S=g&&a.status==="failed";return oo.createElement(_x,{key:m},oo.createElement(oh,{type:g&&(C&&"loading"||S&&"error")||"success",title:d.description?`${d.description} Tx`:Mx.t("View transaction"),action:d.url&&oo.createElement(Lx,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(d.url,"_blank")},oo.createElement(Px,{size:12}))}))}),p&&oo.createElement(oh,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&oo.createElement(th,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&oo.createElement(Jg,{message:r}))}i(Hl,"SwapDetailsAlerts");var nh=2e3;var rh=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let l=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:st(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:M(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:st(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:M(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:on(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(c=>({from:{chain:{displayName:st(c.fromBlockchain,e)??"",image:c.fromBlockchainLogo??""}},to:{chain:{displayName:st(c.toBlockchain,e)??"",image:c.toBlockchainLogo??""}},swapper:{displayName:on(c.swapperId,o)??"",image:c.swapperLogo??"",type:c.swapperType}})):[],alerts:Dx.createElement(Hl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function ih(t){if(Sn(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(ih,"getStepState");function Gl(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=jx(),c=y().blockchains(),u=y().swappers(),{findToken:p}=y(),d=O.use.retry(),h=re.use.isActiveTab(),f=Yx(),[m,g]=Kx(nh),C=Xx(null),[S,k]=ph(null),[T,v]=ph(null),w=i(()=>{r(),k(null)},"onCancel"),A=be.use.getNotifications(),L=be.use.removeNotification(),b=A(),E=Fx(e),x=E?.networkStatus;ch(()=>{b.find(mt=>mt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),L(e.requestId)):T&&v(null))},[e.status,e.requestId]),ch(()=>{P?k(zi.WaitingForNetworkChange):x===zi.WaitingForConnectingWallet||x===zi.NetworkChanged?k(x):k(null)},[x]);let N=cu(e),I=E?$x(e,E):null,B=E?Ox(e,E):null,j=Wg(e),te=pu(e),J=i(ve=>!!l(ve)?.mobileWallet,"isMobileWallet"),P=x===zi.WaitingForNetworkChange&&!!I&&!!B?.walletType&&(J(B.walletType)||a(B.walletType,I.network)),X=P?s.bind(null,B.walletType,[{namespace:I.namespace,network:I.network}]):void 0,se=lu(e,E),z=rh({swap:e,switchNetwork:X,showNetworkModal:x,setNetworkModal:k,message:se,blockchains:c,swappers:u}),me=z.length,[vt,Ze]=[e.steps[0],e.steps[me-1]],le=Ze.outputAmount||Ze.expectedOutputAmountHumanReadable,at=e.steps.reduce((ve,mt)=>ve+parseFloat(mt.feeInUsd||""),0),G=e.steps.find(ve=>ve.diagnosisUrl)?.diagnosisUrl,_=M(parseFloat(le||"0")*(Ze.toUsdPrice||0),4,4),H=M(parseFloat(e.inputAmount)*(vt.fromUsdPrice||0),4,4),V=le?new lh(le).multipliedBy(Ze.toUsdPrice||0).toString():"",fe=new lh(e.inputAmount).multipliedBy(vt.fromUsdPrice||0).toString(),ne=Pt(H,_),ge=se.detailedMessage.content||se.shortMessage,Fe=e.status==="success"?it.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:M(le,6,6),token:z[me-1].to.token.displayName,conciseAddress:gr(e.wallets[z[me-1].to.chain.displayName]?.address||""),chain:z[me-1].to.chain.displayName}}):K.createElement(jg,null,K.createElement(wo,{variant:"body",size:"medium",color:"neutral700",align:"center"},ge?"":it.t("Transaction was not sent."),N?`${it.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:N.outputAmount,symbol:N.symbol,blockchain:N.blockchain}})}`:""),ge&&K.createElement(Ui,{align:"center",variant:"body",size:"medium",color:"neutral700"},K.createElement("b",null,"Reason:")," ",ge));return K.createElement(oe,{header:{title:it.t("Swap Details"),onCancel:e.status==="running"?()=>k("cancel"):void 0,suffix:e.status!=="running"&&K.createElement(Vt,null,K.createElement(ah,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>k("delete")},K.createElement(wo,{size:"medium",variant:"label",color:"error"},it.t("Delete"))))},footer:te&&!T&&K.createElement(ah,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let ve=Nr(e,c,p);d(ve),setTimeout(()=>{f("../../")},0)}},it.t("Try again"))},K.createElement(ie,{compact:!0,view:!0},K.createElement(Fi,null,K.createElement("div",{className:Ro()},K.createElement(wo,{variant:"label",size:"large",color:"neutral700"},`${it.t("Request ID")}`),K.createElement("div",{className:Oi()},K.createElement(wo,{variant:"label",size:"small",color:"neutral700"},o),K.createElement(sh,{container:W(),content:m?it.t("Copied To Clipboard"):it.t("Copy Request ID"),open:m||void 0,side:"bottom",alignOffset:-16,align:"end"},K.createElement(qx,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:g.bind(null,o||"")},m?K.createElement(Qx,{size:16,color:"secondary"}):K.createElement(Ux,{size:16,color:"gray"}))),K.createElement(Kg,{target:"_blank",href:`${Sc}/swap/${o}`},K.createElement(sh,{container:W(),content:it.t("View on Rango Explorer"),side:"bottom"},K.createElement(Gx,{size:20}))))),K.createElement("div",{className:Ro()},K.createElement(wo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?it.t("Finished at"):it.t("Created at")),K.createElement(wo,{variant:"label",size:"small",color:"neutral700"},j))),K.createElement("div",{className:Gg()},K.createElement(Hx,{fee:M(String(at),2,2),time:an(cr(e.steps)),steps:me}),K.createElement(An,{from:{price:{value:M(e.inputAmount,6,6),usdValue:H,realUsdValue:fe,realValue:e.inputAmount},token:{displayName:z[0].from.token.displayName,image:z[0].from.token.image},chain:{image:z[0].from.chain.image,displayName:z[0].from.chain.displayName}},to:{price:{value:M(le,6,6),usdValue:_,realUsdValue:V,realValue:le||""},token:{displayName:z[me-1].to.token.displayName,image:z[me-1].to.token.image},chain:{image:z[me-1].to.chain.image,displayName:z[me-1].to.chain.displayName}},percentageChange:M(ne,2,2),warningLevel:_t(ne??0)})),K.createElement("div",{className:Vg()},K.createElement(wo,{variant:"title",size:"small"},it.t("Swaps steps"))),K.createElement(zx,{size:8}),K.createElement(Qg,{ref:C},z.map((ve,mt)=>{let tc=mt,tn=ih(e.steps[mt]),Fh=tn==="error"||tn==="in-progress"||tn==="warning"||tn==="completed"&&mt===z.length-1;return K.createElement(Vx,{key:tc,step:ve,type:"swap-progress",ref:C,state:tn,hasSeparator:mt!==0,tabIndex:tc,isFocused:Fh,tooltipContainer:W()})}))),K.createElement(Fl,{state:S,onClose:()=>k(null),onCancel:w,onDelete:n,message:se.detailedMessage.content,currentStepWallet:B,walletButtonDisabled:!h}),K.createElement(Ul,{open:!!T,diagnosisUrl:G,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:M(le,6,6),usdValue:_,realUsdValue:V,realValue:le||"",percentageChange:M(ne,2,2),token:{displayName:z[me-1].to.token.displayName,image:z[me-1].to.token.image},chain:{image:z[me-1].to.chain.image},description:Fe}))}i(Gl,"SwapDetails");import{i18n as qi}from"@lingui/core";import{Divider as mh,NotFound as tE,Skeleton as tr,Typography as Hi}from"@rango-dev/ui";import ke from"react";import{i18n as Zx}from"@lingui/core";import{Divider as Jx,Skeleton as Rx,Typography as eE}from"@rango-dev/ui";import Te from"react";import{css as Tt,styled as Vl}from"@rango-dev/ui";var uh=Vl("div",{width:"100%",height:"100%",padding:"$10 $20"}),er=Vl("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Qi=Vl("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),aK=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),sK=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),lK=Tt({paddingTop:"$15",display:"flex"}),cK=Tt({padding:"$15 $0"}),pK=Tt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),uK=Tt({paddingBottom:"$10"}),dK=Tt({display:"flex",justifyContent:"start",alignItems:"center"}),mK=Tt({paddingTop:"$5",display:"flex",alignItems:"center"}),fK=Tt({display:"flex",alignItems:"center"}),gK=Tt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),dh=Tt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function Kl(){return Te.createElement(uh,null,Te.createElement(Bn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(eE,{variant:"title",size:"small"},Zx.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(er,null,Te.createElement(Nt,{separator:!1}),Te.createElement("div",{className:dh()},Te.createElement(Jx,{direction:"horizontal",size:20}),Te.createElement(Rx,{height:22,variant:"rectangular"}))),Te.createElement(Qi,null),Te.createElement(er,null,Te.createElement(Nt,{separator:!1})),Te.createElement(Qi,null),Te.createElement(er,null,Te.createElement(Nt,{separator:!1})),Te.createElement(Qi,null),Te.createElement(er,null,Te.createElement(Nt,{separator:!1}))))}i(Kl,"LoadingSwapDetails");function fh(t){let{requestId:e,showSkeleton:o}=t;return ke.createElement(oe,{header:{title:qi.t("Swap Details"),suffix:ke.createElement(Vt,null)}},o&&ke.createElement(zg,null,ke.createElement(Fi,null,ke.createElement("div",{className:Ro()},ke.createElement(Hi,{variant:"label",size:"large",color:"neutral700"},`${qi.t("Request ID")}`),ke.createElement("div",{className:Oi()},ke.createElement(Hi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(tr,{width:60,height:10,variant:"rounded"})),ke.createElement(mh,{direction:"horizontal",size:4}),ke.createElement(tr,{width:16,height:16,variant:"rectangular"}),ke.createElement(mh,{direction:"horizontal",size:4}),ke.createElement(tr,{width:16,height:16,variant:"rectangular"}))),ke.createElement("div",{className:Ro()},ke.createElement(Hi,{className:Hg(),variant:"label",size:"large",color:"neutral700"},ke.createElement(tr,{width:60,height:10,variant:"rounded"})),ke.createElement(Hi,{variant:"label",size:"small",color:"neutral700"},ke.createElement(tr,{width:60,height:10,variant:"rounded"})))),ke.createElement(Kl,null)),!o&&ke.createElement(qg,null,ke.createElement(tE,{title:qi.t("Not found"),description:qi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(fh,"SwapDetailsPlaceholder");function gh(){let{manager:t,state:e}=rE(),o=!e.loadedFromPersistor,n=pt(t),{requestId:r}=aE(),a=je(),{fetchStatus:s}=y();if(!r)return jl.createElement(iE,{containerStyles:{margin:"20px"},type:"error",title:oE.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",c=r?n.find(({swap:h})=>h.requestId===r):void 0,u=i(()=>{if(c?.id){let h=t?.get(c.id);h&&nE(h)}},"onCancel"),p=i(async()=>{if(c?.id)try{t?.deleteQueue(c.id),a()}catch(h){console.log(h)}},"onDelete"),d=c?.swap;return!d||l?jl.createElement(fh,{requestId:r,showSkeleton:l}):jl.createElement(Gl,{swap:d,requestId:r,onCancel:u,onDelete:p})}i(gh,"SwapDetailsPage");import{i18n as hh}from"@lingui/core";import{Divider as sE,getCategoriesCount as lE,SelectableCategoryList as cE,styled as Sh,Typography as pE,Wallet as uE}from"@rango-dev/ui";import Bt,{useState as yh}from"react";var dE=Sh("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),mE=Sh(ie,{textAlign:"center"});function Ch(){let{fetchStatus:t}=y(),[e,o]=yh("ALL"),n=y().blockchains(),{config:r}=y(),[a,s]=yh(),l=re.use.isActiveTab(),{list:c}=ft(),u=Uc(c,n),d=lE(u)!==1,h=zc(c,e),f=i(m=>{Nc(c,r.multiWallets)||s(m)},"handleWalletItemClick");return Bt.createElement(oe,{header:{title:hh.t("Connect Wallets")}},Bt.createElement(mE,null,d&&Bt.createElement(Bt.Fragment,null,Bt.createElement(cE,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Bt.createElement(sE,{size:24})),Bt.createElement(pE,{variant:"title",size:"xmedium",align:"center"},hh.t("Choose a wallet to connect.")),Bt.createElement(dE,null,h.map((m,g)=>{let C=`wallet-${g}-${m.type}`;return Bt.createElement(uE,{key:C,...m,container:W(),onClick:()=>f(m),isLoading:t==="loading",disabled:!l})}),Bt.createElement(co,{wallet:a,onClose:()=>{s(void 0)}}))))}i(Ch,"WalletsPage");function kh(){return fu(),_a(),fE([{path:$.home,element:_e.createElement(Xf,null)},{path:$.routes,element:_e.createElement(eg,null)},{path:$.fromSwap,children:[{index:!0,element:_e.createElement(Nl,{type:"source"})},{path:$.blockchains,element:_e.createElement(Ni,{type:"source"})}]},{path:$.toSwap,children:[{index:!0,element:_e.createElement(Nl,{type:"destination"})},{path:$.blockchains,element:_e.createElement(Ni,{type:"destination"})}]},{path:$.settings,children:[{index:!0,element:_e.createElement(Ag,null)},{path:$.languages,element:_e.createElement(Zf,null)},{path:$.exchanges,element:_e.createElement(Tl,{sourceType:"Exchanges"})},{path:$.bridges,element:_e.createElement(Tl,{sourceType:"Bridges"})},{path:$.customTokens,children:[{index:!0,element:_e.createElement(rf,null)},{path:$.addCustomTokens,children:[{index:!0,element:_e.createElement(Xu,null)},{path:$.blockchains,element:_e.createElement(Ni,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:$.swaps,children:[{index:!0,element:_e.createElement(xf,null)},{path:$.swapDetails,element:_e.createElement(gh,null)}]},{path:$.wallets,element:_e.createElement(Ch,null)},{path:$.confirmSwap,element:_e.createElement(Hm,null)}])}i(kh,"AppRoutes");import{useQueueManager as wE}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as bE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as xE}from"rango-sdk";import{useContext as EE,useEffect as Ih,useState as Ah}from"react";import{globalCss as gE}from"@rango-dev/ui";var Th=i(()=>gE({"@import":"url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')"})(),"globalFont");function vh(){let{setWatermark:t,setShowProfileBanner:e}=re();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Lt("BASE_URL")}/meta/dapp/config?apiKey=${Lt("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(vh,"useFetchApiConfig");import{useWallets as hE}from"@rango-dev/wallets-react";import{useEffect as yE,useRef as SE}from"react";function wh(){let{connect:t,state:e}=hE(),o=SE({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);yE(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(wh,"useForceAutoConnect");import{isApprovalTX as CE,RouteEventType as bh,StepEventType as xh,StepExecutionEventStatus as kE,WidgetEvents as Gi}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Eh}from"react";function Xl(){let t=be.use.setNotification(),{connectedWallets:e,fetchBalances:o}=y();Eh(()=>{let n=i(r=>{let{event:a,step:s,route:l}=r;if(a.type===xh.TX_EXECUTION&&a.status===kE.TX_SENT&&!CE(s)||a.type===xh.SUCCEEDED){let u=e.find(d=>d.chain===s?.fromBlockchain),p=s?.fromBlockchain!==s?.toBlockchain&&e.find(d=>d.chain===s?.toBlockchain);u&&o([u]),p&&o([p])}t(a,l)},"handleStepEvent");return he.on(Gi.StepEvent,n),()=>he.off(Gi.StepEvent,n)},[he,e]),Eh(()=>{let n=i(r=>{let{event:a,route:s}=r;(a.type===bh.FAILED||a.type===bh.SUCCEEDED)&&t(a,s)},"handleRouteEvent");return he.on(Gi.RouteEvent,n),()=>he.off(Gi.RouteEvent,n)},[he])}i(Xl,"useSubscribeToWidgetEvents");import{useManager as TE}from"@rango-dev/queue-manager-react";import{useEffect as vE}from"react";function Yl(){let{isSynced:t,syncNotifications:e}=be(),{manager:o,state:n}=TE();vE(()=>{be.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(pt(o))},[be.persist.hasHydrated(),n.loadedFromPersistor,t])}i(Yl,"useSyncNotifications");function Zl(){wh(),Th(),Xl(),Yl();let t=y().blockchains(),{canSwitchNetworkTo:e}=jr(),[o,n]=Ah(""),[r,a]=Ah(),s=EE(xr),l=t.filter(xE),{fetchApiConfig:c}=vh();Ih(()=>()=>mu(),[]),wE({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Ih(()=>(io.init(),be.persist.hasHydrated()||be.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===bE(o)?.[0]&&n("")}),c().catch(console.log),io.destroy),[])}i(Zl,"useBootstrap");import{styled as IE}from"@rango-dev/ui";var Nh=IE("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Vi(){Zl();let{config:t}=y(),{activeTheme:e}=Uo(t?.theme||{}),{activeLanguage:o}=Rt();return Jl.createElement(AE,{language:o},Jl.createElement(Nh,{id:"swap-container",className:e()},Jl.createElement(kh,null)))}i(Vi,"Main");import{setSolanaSignerConfig as jE}from"@rango-dev/signer-solana";import ec,{useEffect as _h,useMemo as XE}from"react";import{useState as NE}from"react";var WE=i(()=>{let[t,e]=NE(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=Ac(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Wh=WE;import{checkWaitingForNetworkChange as BE,makeQueueDefinition as ME}from"@rango-dev/queue-manager-rango-preset";import{Provider as LE}from"@rango-dev/queue-manager-react";import{useWallets as PE}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as _E}from"@rango-dev/wallets-shared";import{isEvmBlockchain as DE}from"rango-types";import $E,{useMemo as FE}from"react";function OE(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=PE(),l=FE(()=>ME({API_KEY:t.apiKey||Lt("API_KEY"),BASE_URL:Lt("BASE_URL"),emitter:{emit:he.emit}}),[t.apiKey]),{blockchains:c,connectedWallets:u}=y(),p=c(),d={blockchains:u.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,w)=>a(v,w.network)?await r(v,[w]):void 0,"switchNetwork"),f=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=p.filter(v=>v.enabled).reduce((v,w)=>(v[w.name]=w,v),{}),g=p.filter(DE),C=i(v=>{let{supportedChains:w}=s(v);return dr(w)},"getSupportedChainNames"),S=e(),k={meta:{blockchains:m,evmBasedChains:g,evmNetworkChainInfo:_E(g),getSupportedChainNames:C},getSigners:o,wallets:d,providers:S,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:f},T=re.use.isActiveTab();return $E.createElement(LE,{queuesDefs:[l],context:k,onPersistedDataLoaded:v=>{BE(v)},isPaused:!T},t.children)}i(OE,"QueueManager");var Bh=OE;import{useManager as HE}from"@rango-dev/queue-manager-react";import GE,{createContext as VE,useContext as KE}from"react";function Mh(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=O();return i(u=>{let{fromBlockchain:p,fromToken:d,toBlockchain:h,toToken:f,requestAmount:m}=u,g={blockchains:e,tokens:o};if(p!==void 0){let C=e.find(S=>S.name===p)??null;n(C)}if(d!==void 0){let C=d?t(d)??null:null;r({meta:g,token:C})}if(h!==void 0){let C=e.find(S=>S.name===h)??null;a(C)}if(f!==void 0){let C=f?t(f)??null:null;s({meta:g,token:C})}m!==void 0&&l(m)},"updateQuoteInputs")}i(Mh,"useUpdateQuoteInputs");import{cancelSwap as UE,getCurrentNamespaceOfOrNull as zE,getCurrentStep as QE,getRelatedWalletOrNull as qE}from"@rango-dev/queue-manager-rango-preset";var Ki=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return pt(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=Nr(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&UE(o)}getCurrentStepInfo(e){let o=QE(e);return{step:o,wallet:o?qE(e,o):null,network:o?zE(e,o)?.network:null}}};var Lh=VE(void 0);function Rl(t){let{manager:e}=HE(),o=re.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:l}=y(),c=new Ki(e,{retrySwap:n,findToken:r}),{fetchingWallets:u}=y(),p=Pc(a()),d=y().blockchains(),h=y().tokens(),f=y().swappers(),m=y().fetchStatus,g=Rt().resetLanguage,C=be().getNotifications(),S=be().clearNotifications,k=Mh(),{fromBlockchain:T,toBlockchain:v,fromToken:w,toToken:A,inputAmount:L}=O(),b={isActiveTab:o,setCurrentTabAsActive:io.forceClaim,history:c,wallets:{isLoading:u,details:s(),totalBalance:p,refetch:async E=>l(E)},meta:{blockchains:d,tokens:h,swappers:f,loadingStatus:m,findToken:r},resetLanguage:g,notifications:{list:C,clearAll:S},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,toBlockchain:v?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:L},updateQuoteInputs:k}};return GE.createElement(Lh.Provider,{value:b},t.children)}i(Rl,"WidgetInfo");function Ph(){let t=KE(Lh);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Ph,"useWidget");function ji(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Wh();return _h(()=>{n&&r(n)},[n]),XE(()=>{Qc({API_KEY:o?.apiKey||ar,BASE_URL:o?.apiUrl||yc})},[o.apiKey,o.apiUrl]),_h(()=>{t.config?.signers?.customSolanaRPC&&jE("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),ec.createElement(Er,{config:o,onUpdateState:e},ec.createElement(Bh,{apiKey:o.apiKey},ec.createElement(Rl,null,t.children)))}i(ji,"WidgetProvider");function Dh(t){let e=t.config?.externalWallets;return Xi.createElement(_p,null,e?Xi.createElement(Vi,null):Xi.createElement(ji,{config:t.config??ir},Xi.createElement(Vi,null)))}i(Dh,"Widget");function $h(){let{on:t,off:e}=he;return{on:t,off:e}}i($h,"useWidgetEvents");var v3={DerivationPath:fn,Namespaces:mn,isOnDerivationPath:hn,isOnNamespace:gn};export{jj as EventSeverity,Wo as MainEvents,r3 as Networks,s3 as PendingSwapNetworkStatus,pa as QuoteEventTypes,Xj as RouteEventType,Ri as SUPPORTED_FONTS,v3 as StatefulConnect,Yj as StepEventType,Zj as StepExecutionBlockedEventStatus,Jj as StepExecutionEventStatus,De as UI_ID,da as UiEventTypes,ua as WalletEventTypes,o3 as WalletEvents,i3 as WalletTypes,Dh as Widget,Wo as WidgetEvents,ji as WidgetProvider,Er as WidgetWallets,Ka as customizedThemeTokens,e3 as readAccountAddress,Gt as useStatefulConnect,ft as useWalletList,jr as useWallets,Ph as useWidget,$h as useWidgetEvents,zy as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map