@rango-dev/widget-embedded 0.36.1-next.1 → 0.36.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 qh=Object.defineProperty;var i=(t,e)=>qh(t,"name",{value:e,configurable:!0});import{EventSeverity as rj,RouteEventType as ij,StepEventType as aj,StepExecutionBlockedEventStatus as sj,StepExecutionEventStatus as lj}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as cj}from"@rango-dev/wallets-core/legacy";import{useWallets as ei,Events as mj}from"@rango-dev/wallets-react";import{Networks as fj,WalletTypes as gj}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as yj}from"rango-types";import{Divider as FS}from"@rango-dev/ui";import po,{useEffect as OS,useRef as US,useState as $c}from"react";import{WalletState as Hh}from"@rango-dev/ui";import{useWallets as Gh}from"@rango-dev/wallets-react";import{useReducer as Vh}from"react";import{Namespace as na}from"@rango-dev/wallets-shared";function cp(t){return t.map(e=>{switch(e){case"evm":return na.Evm;case"solana":return na.Solana;case"cosmos":return na.Cosmos}throw new Error("Can not convert this common namespace key to a proper legacy key.")})}i(cp,"convertCommonNamespacesKeysToLegacyNamespace");function up(t){return!!t.derivationPath}i(up,"isStateOnDerivationPathStep");function mp(t){return!!t.namespace}i(mp,"isStateOnNamespace");var nr={status:"init",namespace:null,derivationPath:null};function dp(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(dp,"reducer");function Ht(){let{state:t,disconnect:e,connect:o}=Gh(),[n,r]=Vh(dp,nr),a=i(async(c,m,h)=>{r({type:"reset"});try{let f=m?.map(d=>({...d,network:void 0}));return await o(c,f),{status:"connected"}}catch(f){let d=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:f})}},"runConnect"),s=i(async(c,m)=>{if(c.state===Hh.DISCONNECTED){if(!!c.isHub){let C=c.properties?.find(T=>T.name==="detached");if(C&&c.state!=="connected"){let T=cp(C.value);return r({type:"needsNamespace",payload:{providerType:c.type,providerImage:c.image,availableNamespaces:T,singleNamespace:!1}}),{status:"namespace"}}}if(!c.namespaces)return await a(c.type,void 0,m);let d=c.namespaces.length>1,g=c.needsDerivationPath;return d?(r({type:"needsNamespace",payload:{providerType:c.type,providerImage:c.image,availableNamespaces:c.namespaces,singleNamespace:c.singleNamespace}}),{status:"namespace"}):g?(r({type:"needsDerivationPath",payload:{providerType:c.type,providerImage:c.image,namespace:c.namespaces[0]}}),{status:"derivation-path"}):await a(c.type,c.namespaces.map(C=>({namespace:C})),m)}return m?.disconnectIfConnected?(await u(c.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(c,m)=>{let h=c.singleNamespace,f=c.needsDerivationPath,d=m[0];if(!d)throw new Error("To confirm a namespace, you should select at least one namespace.");if(h&&f)return r({type:"needsDerivationPath",payload:{providerType:c.type,providerImage:c.image,namespace:d}}),{status:"derivation-path"};if(!mp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let g=n.namespace.providerType,C=m.map(S=>({namespace:S}));return await a(g,C)},"handleNamespace"),p=i(async c=>{if(!c)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!up(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:c}];return await a(m,f)},"handleDerivationPath"),u=i(async c=>{let m=t(c);return m.connected||m.connecting?(await e(c),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:l,handleDerivationPath:p,getState:()=>n,resetState:c=>{r(c==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Ht,"useStatefulConnect");import{WalletState as va}from"@rango-dev/ui";import{useWallets as eS}from"@rango-dev/wallets-react";import{detectMobileScreens as tS,KEPLR_COMPATIBLE_WALLETS as oS,WalletTypes as Lo}from"@rango-dev/wallets-shared";import{useCallback as nS,useEffect as rS}from"react";import jy,{createContext as Xy,useContext as Yy,useEffect as Zy,useRef as Jy}from"react";import{create as Vy}from"zustand";import{persist as Ky}from"zustand/middleware";var ia=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()}},Io=new ia;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 fp(t,e){return e.find(o=>o.name===t)?.logo}i(fp,"getBlockchainImage");function rn(t,e){return e.find(o=>o.id===t)?.title}i(rn,"getSwapperDisplayName");function an(t,e){return e.find(o=>o.name===t)??null}i(an,"findBlockchain");function aa(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(aa,"isTokenNative");function lt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(lt,"createTokenHash");function Ao(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Ao,"isValidTokenAddress");function sn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=lt(p));let u=o.tokensMapByTokenHash.get(p);u&&(n[p]=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(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(u=>{let c=lt(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(sn,"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");var sa={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"}},Kh={clientUrl:void 0},jh={liquiditySources:void 0},gp=i((t,e,o)=>({config:{...sa,...t},iframe:Kh,campaignMode:jh,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config,{_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s}=o(),l=sn({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=sn({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});Io.set("supportedSourceTokens",l),Io.set("supportedDestinationTokens",p),e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");import{TransactionType as hp}from"rango-types";var yp=[hp.EVM,hp.SOLANA];import{RangoClient as py}from"rango-sdk";import{UI_ID as Xh}from"@rango-dev/ui";var ar="c6381a79-2817-4602-83bf-6a641a409e32",Sp="https://api.rango.exchange",Cp="https://explorer.rango.exchange",De={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Xh};import{BlockchainCategories as oy,WalletState as xt}from"@rango-dev/ui";import{legacyReadAccountAddress as ny}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as ry,getCosmosExperimentalChainInfo as iy,isEvmAddress as ay,KEPLR_COMPATIBLE_WALLETS as rA,Networks as Mp}from"@rango-dev/wallets-shared";import ro from"bignumber.js";import{isCosmosBlockchain as sy}from"rango-types";import Yh from"bignumber.js";var Ce=new Yh(0);import{WalletTypes as Zh}from"@rango-dev/wallets-shared";var Tp=[Zh.LEAP];import{BlockchainCategories as pa,WalletState as ty}from"@rango-dev/ui";import{TransactionType as sr}from"rango-sdk";var kp="Roboto",la=[{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 No(t){return Array.from(new Set(t))}i(No,"removeDuplicateFrom");function ma(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(ma,"areEqual");function Ip(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Ip,"debounce");function Je(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Je,"containsText");function xp(t,e){return t.toLowerCase()===e.toLowerCase()}i(xp,"exactText");function bp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(bp,"startWithText");var N=i(()=>document.getElementById(De.SWAP_BOX_ID),"getContainer"),ln=i(()=>document.getElementById(De.EXPANDED_BOX_ID),"getExpanded");function Ep(t,e,o){let n=!!e&&xp(e,t),r=!!o&&xp(o,t);return n!==r?n?-1:1:0}i(Ep,"compareExactMatchText");function ca(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(ca,"compareContainsText");function ua(t,e,o){let n=!!e&&bp(e,t),r=!!o&&bp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ua,"compareStartWithText");function Ap(t,e,o){if(!o)return 0;let n=Ep(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Ep(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ua(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ca(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ua(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ca(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ua(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ca(o,t.address,e.address);if(r!==0)return r}return 0}i(Ap,"compareWithSearchFor");var lr=i((t,e)=>{switch(e){case pa.ALL:return!0;case pa.UTXO:return t===sr.TRANSFER;case pa.OTHER:return t!==sr.TRANSFER&&t!==sr.COSMOS&&t!==sr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Np=i(t=>la.find(o=>o.value===t)?.url,"getFontUrlByName");function Wp(t,e){let o=!!t.find(n=>n.state===ty.CONNECTED);return e===!1&&o}i(Wp,"isSingleWalletActive");import{BigNumber as Bp}from"bignumber.js";var pn=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"),B=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Bp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Bp(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"),cn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function un(t){switch(!0){case t.connected:return xt.CONNECTED;case t.connecting:return xt.CONNECTING;case!t.installed:return xt.NOT_INSTALLED;default:return xt.DISCONNECTED}}i(un,"mapStatusToWalletState");function Lp(t,e,o,n){return o.filter(r=>!Tp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m,needsDerivationPath:h,properties:f,isHub:d}=e(r),g=No(m.map(S=>S.type)),C=un(t(r));return{title:a,image:s,link:ry(l),state:C,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:g,needsDerivationPath:h,properties:f,isHub:d}})}i(Lp,"mapWalletTypesToWalletInfo");function mr(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(mr,"walletAndSupportedChainsNames");function Pp(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=ny(p),m=l.length>0,h=l.includes(c),f=c===Mp.Unknown;if(m&&!h&&!f)return;let g=c===Mp.Unknown&&ay(u);if(f&&!g)return;o.includes(c)||g?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(Pp,"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:p}=r;p.forEach((u,c)=>{let m=u.from.blockchain,h=u.to.blockchain,f=a===o.swaps.length-1,d=c===p.length-1;(!f&&!d||f&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(h)})}e==="all"&&n.add(l)}),Array.from(n)}i(io,"getQuoteWallets");function Dp(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dp,"isAccountAndWalletMatched");var _p=i(t=>{let e=Object.values(t).reduce((o,n)=>n.usdValue?o.plus(n.usdValue):o,new ro(Ce));return ly(e.toString())},"calculateWalletUsdValue");function ly(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ly,"numberWithThousandSeparator");var dr=i((t,e)=>{let o=iy(Object.entries(t).map(([,n])=>n).filter(sy));return o&&o[e]?.experimental},"isExperimentalChain");function fr(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=B(e,8,8),r=o?B(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(fr,"formatBalance");function $p(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new ro(t.usdValue).shiftedBy(-t.decimals):Ce,n=e&&e.usdValue?new ro(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 ro(t.amount).shiftedBy(-t.decimals):Ce,n=e&&e.amount?new ro(e.amount).shiftedBy(-e.decimals):Ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i($p,"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 Fp(t){return t.sort((e,o)=>+(o.state===xt.CONNECTED)-+(e.state===xt.CONNECTED)||+(o.state===xt.DISCONNECTED||o.state===xt.CONNECTING)-+(e.state===xt.DISCONNECTED||e.state===xt.CONNECTING))}i(Fp,"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 Op({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Op,"getAddress");var Up=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function zp(t){return t.map(e=>e.state).join("-")}i(zp,"hashWalletsState");function Qp(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(Qp,"filterBlockchainsByWalletTypes");function qp(t,e){return e===oy.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(lr(n,e))return!0;return!1})}i(qp,"filterWalletsByCategory");var da={API_KEY:ar};function Lt(t){return da[t]||""}i(Lt,"getConfig");function Hp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),da=e,da}i(Hp,"initConfig");var Gp=20,Vp=25,fa="theme-widget",ga=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"),ha=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Kp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var hr,bt=i(()=>hr||(hr=new py(Lt("API_KEY"),Lt("BASE_URL")),hr),"httpService");function yr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return No(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(yr,"getUniqueSwappersGroups");function jp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(jp,"sortLiquiditySourcesByGroupTitle");function Ke(t,e){return e?.[t]==="hidden"}i(Ke,"isFeatureHidden");function Xp(t,e){return e?.[t]==="enabled"}i(Xp,"isFeatureEnabled");function Wo(t,e){return e?.[t]==="enabled"}i(Wo,"isRoutingEnabled");var Yp=i((t,e,o)=>Ke("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var Zp=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 p=ir({config:a}),u=r;return p.length>0&&(u=u.filter(c=>p.includes(c.name))),u.filter(c=>yp.includes(c.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),l=Array.from(n.values()),p=e()._blockchainsMapByName;if(!o||!o.type)return l;let u=o.type==="source"?"from":"to",c=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=Io.get(c);m?.length||(m=sn({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Io.set(c,m)),m=Yp(m,s,a.features);let h=e().blockchains({type:o.type});return m.filter(d=>o.blockchain&&d.blockchain!==o.blockchain||!h.some(g=>g.name===d.blockchain)?!1:o.searchFor?!!(Je(d.symbol,o.searchFor)||Je(d.address||"",o.searchFor)||Je(d.name||"",o.searchFor)):!0).sort((d,g)=>{let C=e().isTokenPinned(d,o.type),S=e().isTokenPinned(g,o.type);if(C!==S)return C?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(d),L=o.getBalanceFor(g),b=$p(I,L);if(b!==0)return b}let T=p.get(d.blockchain),k=p.get(g.blockchain),v=aa(d,T),w=aa(g,k);if(v!==w)return v?-1:1;if(d.isPopular!==g.isPopular)return d.isPopular?-1:1;if(o.searchFor){let I=Ap(d,g,o.searchFor);if(I)return I}return d.isSecondaryCoin!==g.isSecondaryCoin?d.isSecondaryCoin?1:-1:T&&k?T.sort-k.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 c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(jp)},fetch:async()=>{try{let{routing:o}=e().config,n=Wo("enableCentralizedSwappers",o),r=await bt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},p=[],u=r.popularTokens,c=r.swappers,m=new Set;r.tokens.forEach(f=>{m.add(f.blockchain),p.push(f)}),r.blockchains.sort((f,d)=>f.sort-d.sort).forEach(f=>{f.enabled&&m.has(f.name)&&a.set(f.name,f)}),p.forEach(f=>{let d=lt(f);l[f.blockchain]||(l[f.blockchain]=[]),s.set(d,f),l[f.blockchain].push(d)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:u,_swappers:c})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as cy,Catalonia as uy,Chinese as Jp,Denmark as my,English as dy,Finland as fy,French as gy,German as hy,Greece as yy,Hungary as Sy,India as Cy,Indonesian as Ty,Italian as ky,Japanese as vy,Korea as wy,Lithuania as xy,Malay as by,Netherlands as Ey,Pakistan as Iy,Philippines as Ay,Poland as Ny,Portuguese as Wy,Russian as By,SaudiArabia as My,Serbia as Ly,Slovakia as Py,SouthAfrica as Dy,Spanish as _y,Swahili as $y,Swedish as Fy,Thai as Oy,Turkish as Uy,Ukrainian as zy,Vietnamese as Qy}from"@rango-dev/ui";var Rp=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:Dy},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:My},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:cy},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:uy},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Jp},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Jp},{title:"Danish",label:"Dansk",local:"da",SVGFlag:my},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Ey},{title:"English",label:"English",local:"en",SVGFlag:dy},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:Ay},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:fy},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:gy},{title:"German",label:"Deutsch",local:"de",SVGFlag:hy},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:yy},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:Cy},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:Sy},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:Ty},{title:"Italian",label:"Italiana",local:"it",SVGFlag:ky},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:vy},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:wy},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:xy},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:by},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Ny},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Wy},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:By},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:Ly},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:Py},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:_y},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:$y},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:Fy},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:Oy},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:Uy},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:zy},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:Iy},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:Qy}],Bo="en";var ec=[.5,1,3],tc=1,oc=5,nc=100,rc=0;var ic=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:tc,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&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=No(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=Ke("theme",n),s=Ke("language",n),l=Ke("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Bo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||Bo}})},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 cc from"bignumber.js";import qy from"mitt";var ge=qy(),Hy={on:ge.on,off:ge.off};import{WidgetEvents as ac}from"@rango-dev/queue-manager-rango-preset";var Sa=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Sa||{}),Ca=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Ca||{}),Ta=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Ta||{}),Mo=(a=>(a[a.RouteEvent=ac.RouteEvent]="RouteEvent",a[a.StepEvent=ac.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Mo||{});import Gy from"bignumber.js";function mn(t){return`${t.blockchain}-${t.address}-${t.symbol}`}i(mn,"createAssetKey");function ka(t,e){return`${mn(e)}-${t}`}i(ka,"createBalanceKey");function Sr(t){let[e,o,n]=t.split("-");return{address:o,blockchain:e,symbol:n}}i(Sr,"extractAssetFromBalanceKey");function sc(t,e){let o={};return t.balances?.forEach(n=>{let r=ka(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,l=e().findToken(n.asset)?.usdPrice,p=l?new Gy(l??Ce).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:p};o[r]=u}),o}i(sc,"createBalanceStateForNewAccount");function lc(t,e){for(let o in e){let n=Sr(o),r=mn(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(lc,"updateAggregatedBalanceStateForNewAccount");function pc(t,e){let o=Sr(e),n=mn(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(pc,"removeBalanceFromAggregatedBalance");var uc=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=>Dp(a,s)));if(r.length>0){let a=r.map(s=>{let l=!n.some(p=>p.chain===s.chain&&p.selected&&p.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(p=>!a.some(u=>u.walletType===p.walletType&&u.chain===p.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=>{ge.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o),e().fetchBalances(o)},removeBalancesForWallet:o=>{let n=e().connectedWallets.filter(p=>p.walletType===o);e().connectedWallets.forEach(p=>{p.walletType!==o&&(n=n.filter(u=>!(u.chain===p.chain&&u.address===p.address)))});let r={},a=e()._aggregatedBalances,s=e()._balances;Object.keys(s).forEach(p=>{let u=Sr(p),c=!!n.find(m=>ka(m.address,{address:u.address,blockchain:m.chain,symbol:u.symbol})===p);c||(r[p]=s[p]),c&&(a=pc(a,p))}),t({_balances:r,_aggregatedBalances:a})},disconnectWallet:o=>{if(e().connectedWallets.find(r=>r.walletType===o)){ge.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(p=>({address:p.address,blockchain:p.chain})),l=(await bt().getWalletsDetails(a)).wallets;if(l){let{retryOnFailedBalances:p=!0}=n||{};if(p){let m=l.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));m.length>0&&e().fetchBalances(m,{retryOnFailedBalances:!1})}let u={},c=e()._aggregatedBalances;l.forEach(m=>{if(m.failed)return;let h=sc(m,e);c=lc(c,h),u={...u,...h}}),t(m=>({_balances:{...m._balances,...u},_aggregatedBalances:c})),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=mn(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let p=a[0];return n[p]}let l=n[a[0]];return a.forEach(p=>{let u=n[p],c=new cc(u.amount),m=new cc(l.amount);c.isGreaterThan(m)&&(l=u)}),l}}),"createWalletsSlice");function mc(t){return Vy()(Ky((...e)=>({...uc(...e),...Zp(...e),...ic(...e),...gp(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(mc,"createAppStore");var dc=Xy(null);function y(){let t=Yy(dc);if(Zy(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function fc(t){let e=Jy();return e.current||(e.current=mc(t.config)),jy.createElement(dc.Provider,{value:e.current},t.children)}i(fc,"AppStoreProvider");import{allProviders as Ry}from"@rango-dev/provider-all";import{defineVersions as Cr,pickVersion as gc,Provider as Tr}from"@rango-dev/wallets-core";function kr(t,e){let o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0},n=Ry(o);if(t){let r=[];return t.forEach(a=>{if(typeof a=="string"){let s=hc(n,e).find(l=>l instanceof Tr?l.id===a:l.config.type===a);s?s instanceof Tr?r.push(Cr().version("1.0.0",s).build()):r.push(Cr().version("0.0.0",s).build()):console.warn(`Couldn't find ${a} provider. Please make sure you are passing the correct name.`)}else a instanceof Tr?r.push(Cr().version("1.0.0",a).build()):r.push(Cr().version("0.0.0",a).build())}),r}return n}i(kr,"matchAndGenerateProviders");function hc(t,e){let{experimentalWallet:o="enabled"}=e||{};return t.map(n=>{let r=o=="disabled"?"0.0.0":"1.0.0";try{return gc(n,r)[1]}catch{return gc(n,"0.0.0")[1]}})}i(hc,"pickVersionWithFallbackToLegacy");function yc(t,e){return hc(kr(t,e),e).map(r=>r instanceof Tr?r.id:r.config.type)}i(yc,"configWalletsToWalletName");var iS=Object.values(Lo);function dt(t){let{chain:e}=t||{},{config:o,connectedWallets:n}=y(),{state:r,getWalletInfo:a}=eS(),s=y().blockchains(),{handleDisconnect:l}=Ht(),p=yc(o?.wallets,{trezorManifest:o?.trezorManifest,walletConnectProjectId:o?.walletConnectProjectId,walletConnectListedDesktopWalletLink:o.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,tonConnect:o.tonConnect})||iS,u=Lp(r,a,p,e);u=tS()?u.filter(g=>g.showOnMobile!==!1&&r(g.type).installed):u;let c=Fp(u),m=i(g=>!n.find(C=>C.walletType===g&&C.chain===e),"isExperimentalChainNotAdded"),h=nS(()=>{let g=u?.filter(C=>C.state===va.CONNECTING)||[];for(let C of g)l(C.type)},[zp(u)]);rS(()=>()=>{h()},[]);let f=i(g=>{let C=g.find(T=>T.type===Lo.DEFAULT);return!C||C.state===va.NOT_INSTALLED?!1:g.filter(T=>T.state!=va.NOT_INSTALLED&&![Lo.DEFAULT,Lo.WALLET_CONNECT_2,Lo.LEDGER].includes(T.type)&&a(T.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i((g,C,S)=>dr(S,C)&&m(g)&&!oS.includes(g)||g==Lo.DEFAULT&&!f(u),"shouldExcludeWallet");return{list:c.filter(g=>!d(g.type,e??"",s)),terminateConnectingWallets:h}}i(dt,"useWalletList");import{Modal as pS}from"@rango-dev/ui";import cS from"react";import{create as lS}from"zustand";var Sc="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(Sc),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 sS=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"),Po=sS;var ae=Po(lS()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",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})}}))),ao=new dn({onInit:()=>ae.setState({tabManagerInitiated:!0}),onClaim:()=>ae.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ae.setState({isActiveTab:!1})});function R(t){let{watermark:e}=ae();return cS.createElement(pS,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as wa}from"@lingui/core";import{Button as hS,Checkbox as yS,Divider as SS,Image as Ac,ListItemButton as CS,MessageBox as TS,Radio as kS,RadioRoot as vS}from"@rango-dev/ui";import{namespaces as Nc}from"@rango-dev/wallets-shared";import ke,{useMemo as wS,useState as xS}from"react";import{css as uS,darkTheme as Tc,IconButton as mS,styled as so}from"@rango-dev/ui";var Et=so(mS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Tc} &`]:{backgroundColor:"$neutral"}}}),kc=so("div",{position:"absolute",background:"$secondary500",[`.${Tc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Gt=so("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vc=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"}}}}),wc=so("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xc=so("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),bc=uS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),vr=so("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as dS,styled as wr}from"@rango-dev/ui";var cN=wr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Do=wr("div",{position:"relative"}),fS=dS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),_o=wr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${fS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),xr=wr("div",{"& img":{borderRadius:"50%"}});function Ec(t,e){return t.find(o=>o.name===e)?.logo}i(Ec,"getBlockchainLogo");import{styled as gS}from"@rango-dev/ui";var Ic=gS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function fn(t){let{singleNamespace:e,availableNamespaces:o,providerImage:n}=t.value,[r,a]=xS([]),s=y().blockchains(),l=wS(()=>o?.map(c=>({name:c,logo:Ec(s,Nc[c].mainBlockchain),title:Nc[c].title})),[o]),p=i(c=>{a(e?[c]:m=>m.includes(c)?m.filter(h=>h!==c):m.concat(c))},"onSelect"),u=i(c=>e?ke.createElement(vS,{value:r?.[0]},c):ke.createElement(ke.Fragment,null,c),"wrapRadioRoot");return ke.createElement(ke.Fragment,null,ke.createElement(SS,{size:20}),ke.createElement(TS,{type:"info",title:wa.t("Select chain types"),description:wa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:ke.createElement(Do,null,ke.createElement(vr,null,ke.createElement(Ac,{src:n,size:45})),ke.createElement(_o,null))}),ke.createElement(Ic,null,u(ke.createElement(ke.Fragment,null,l?.map(c=>ke.createElement(CS,{key:c.name,id:c.name,title:c.title,hasDivider:!0,style:{height:60},onClick:()=>p(c.name),start:ke.createElement(Ac,{src:c.logo,size:22}),end:e?ke.createElement(kS,{value:c.name}):ke.createElement(yS,{checked:r.includes(c.name)})}))))),ke.createElement(hS,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},wa.t("Confirm")))}i(fn,"Namespaces");import{i18n as $o}from"@lingui/core";import{Button as IS,Divider as Mc,Image as AS,MessageBox as NS,Select as WS,TextField as BS}from"@rango-dev/ui";import Oe,{useEffect as MS,useState as Lc}from"react";import{namespaces as bS}from"@rango-dev/wallets-shared";var br={id:"custom",label:"Custom",generateDerivationPath:t=>t};function xa(t){let e=t?bS[t].derivationPaths:null;return e?[...e,br]:[]}i(xa,"getDerivationPaths");import{styled as Wc,Typography as ES}from"@rango-dev/ui";var Bc=Wc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),ba=Wc(ES,{paddingLeft:"$10"}),Ea={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Pc="0";function gn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Lc(null),[l,p]=Lc(Pc),u=a===br.id,c=xa(o),m=i(({value:f})=>{let d=c?.find(g=>g.id===f);d&&(a===br.id&&Number.isNaN(Number(l))&&p(Pc),s(d.id))},"handleDerivationPathItemClick"),h=i(()=>{let f=c.find(d=>d.id===a);if(f)e(f.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return MS(()=>{s(xa(o)[0]?.id||null)},[o]),Oe.createElement(Oe.Fragment,null,Oe.createElement(Mc,{size:20}),Oe.createElement(NS,{type:"info",title:$o.t("Select Derivation Path"),description:$o.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:Oe.createElement(Do,null,Oe.createElement(xr,null,Oe.createElement(AS,{src:n,size:45})),Oe.createElement(_o,null))}),Oe.createElement(Bc,null,Oe.createElement(ba,{variant:"body",size:"xsmall",color:"$neutral600"},$o.t("Choose Derivation Path Template")),Oe.createElement(WS,{value:a||"",options:c.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:m,styles:{trigger:Ea}}),Oe.createElement(Mc,{size:20}),Oe.createElement(ba,{variant:"body",size:"xsmall",color:"$neutral600"},u?$o.t("Enter Path"):$o.t("Enter Index")),Oe.createElement(BS,{type:u?"text":"number",variant:"contained",value:l,onChange:f=>p(f.target.value),style:Ea})),Oe.createElement(IS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!c||!a||!l},$o.t("Confirm")))}i(gn,"DerivationPath");import{i18n as Fo}from"@lingui/core";import{Image as LS,MessageBox as Ia,WalletState as PS}from"@rango-dev/ui";import{useWallets as DS}from"@rango-dev/wallets-react";import lo from"react";function Aa(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=DS();return un(a(n))===PS.CONNECTED?lo.createElement(Ia,{type:"success",title:Fo.t("Wallet Connected"),description:Fo.t("Your wallet is connected, you can use it to swap.")}):o?lo.createElement(Ia,{type:"error",title:Fo.t("Failed to Connect"),description:o||Fo.t("Your wallet is not connected. Please try again.")}):lo.createElement(Ia,{type:"loading",title:Fo.t("Connecting to your wallet"),description:Fo.t("Click connect in your wallet popup."),icon:lo.createElement(Do,null,lo.createElement(xr,null,lo.createElement(LS,{src:r,size:45})),lo.createElement(_o,null))})}i(Aa,"ConnectStatus");import{i18n as Na}from"@lingui/core";import{Button as _S,Divider as Dc,MessageBox as $S}from"@rango-dev/ui";import Er from"react";function Wa(t){let{displayName:e,onConfirm:o}=t;return Er.createElement($S,{title:Na.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Na.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},Er.createElement(Dc,{size:18}),Er.createElement(Dc,{size:32}),Er.createElement(_S,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Na.t("Confirm")))}i(Wa,"ExperimentalChain");function _c(t,e){return t().status==="init"&&!!e}i(_c,"isOnStatus");function hn(t){return t().status==="namespace"}i(hn,"isOnNamespace");function yn(t){return t().status==="derivationPath"}i(yn,"isOnDerivationPath");var zS=3e3,QS=300;function co(t){let e=US(),[o,n]=$c(!1),[r,a]=$c(),s=i(S=>{a(S.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=dt(),{handleConnect:p,handleDerivationPath:u,handleNamespace:c,getState:m,resetState:h}=Ht(),f=i(S=>{c(t.wallet,S).catch(s)},"handleConfirmNamespaces"),d=i(S=>{if(!S)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(S).catch(s)},"handleDerivationPathConfirm"),g=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState");return OS(()=>{if(t.wallet){C();let S=!1,T=!0,k=i(()=>{setTimeout(()=>{T=!1,S||n(!0)},QS)},"beforeConnecting"),v=i(w=>{let I=w.status==="connected",L=["disconnected","disconnected-unhandled"].includes(w.status);["namespace","derivation-path"].includes(w.status)||(S=!0),I&&!T?e.current=setTimeout(g,zS):L&&g(),t.onConnect&&t.onConnect(w)},"afterConnected");k(),p(t.wallet,{disconnectIfConnected:!0}).then(v).catch(s)}},[t.wallet]),po.createElement(R,{open:o,onClose:g,onExit:()=>{C(),l(),t.onClose&&t.onClose()},container:N()},_c(m,t.wallet)&&po.createElement(po.Fragment,null,po.createElement(Aa,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),po.createElement(FS,{direction:"vertical",size:32})),hn(m)&&po.createElement(fn,{onConfirm:f,value:m().namespace}),yn(m)&&po.createElement(gn,{onConfirm:d,value:m().derivationPath}))}i(co,"StatefulConnectModal");import{Events as Ir,Provider as HS}from"@rango-dev/wallets-react";import{isEvmBlockchain as GS}from"rango-sdk";import Ar,{createContext as VS,useEffect as Oc,useMemo as KS,useRef as Uc}from"react";import{useEffect as qS}from"react";function Fc(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Fc,"hashProviders");function Ba(t,e){let{clearConnectedWallet:o}=y(),n=kr(t,e);return qS(()=>{o(),n=kr(t,e)},[Fc(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Ba,"useWalletProviders");var Nr=VS({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function jS(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=y(),a=y().blockchains(),{newWalletConnected:s,disconnectWallet:l}=y(),p=y().config,u={walletConnectProjectId:p?.walletConnectProjectId,trezorManifest:p?.trezorManifest,tonConnect:p.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,experimentalWallet:t.config.features?.experimentalWallet},{providers:c}=Ba(p.wallets,u),m=Uc(),h=Uc();Oc(()=>{n().catch(console.log)},[]),Oc(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:p,dappConfig:t.config})},[t.config,r]);let f=a.filter(GS).map(S=>S.name),d=i((S,T,k,v,w)=>{if(T===Ir.ACCOUNTS)if(k){let I=mr(w.supportedBlockchains),L=Pp(S,k,f,I,w.isContractWallet);L.length&&s(L)}else l(S),h.current?h.current(S):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===Ir.ACCOUNTS&&v.connected||T===Ir.ACCOUNTS&&w.isHub){let I=`${S}-${v.network}-${k}`;m.current?m.current(I):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(T===Ir.NETWORK&&v.network){let I=`${S}-${v.network}`;m.current?m.current(I):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(S,T,k,v,w)},"onUpdateState"),g=ae.use.isActiveTab(),C=KS(()=>({onConnectWallet:S=>{m.current=S},onDisconnectWallet:S=>{h.current=S}}),[]);return Ar.createElement(Nr.Provider,{value:C},Ar.createElement(HS,{allBlockChains:a,providers:c,onUpdateState:d,autoConnect:!!g,configs:{isExperimentalEnabled:Xp("experimentalWallet",p.features)}},t.children))}i(jS,"Main");function Wr(t){let{config:e,...o}=t;return Ar.createElement(fc,{config:e},Ar.createElement(jS,{...o,config:e}))}i(Wr,"WidgetWallets");import oa from"react";import XS,{Fragment as YS}from"react";import{MemoryRouter as ZS,useInRouterContext as JS}from"react-router";function zc({children:t}){let o=JS()?YS:ZS;return XS.createElement(o,null,t)}i(zc,"AppRouter");import{I18nManager as ME}from"@rango-dev/ui";import sp from"react";import Le from"react";import{useRoutes as SE}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 zo,useRef as Or}from"react";import je from"bignumber.js";import{create as tC}from"zustand";import{subscribeWithSelector as oC}from"zustand/middleware";import{getLastSuccessfulStep as eC}from"@rango-dev/queue-manager-rango-preset";import SB from"bignumber.js";function Ma(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(Ma,"getFeeLabel");var La=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Qc=30;import{i18n as ft}from"@lingui/core";import{RouteEventType as nB}from"@rango-dev/queue-manager-rango-preset";import Ue from"bignumber.js";import{PendingSwapNetworkStatus as Mr}from"rango-types";import{i18n as _e}from"@lingui/core";var ee=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 qc(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(qc,"getQuoteErrorMessage");import{i18n as Br}from"@lingui/core";var uo=i(()=>({connectWallet:Br.t("Connect Wallet"),swap:Br.t("Swap"),swapAnyway:Br.t("Swap anyway"),ethWarning:Br.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Hc(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Ue(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Ue(1e3)))??!1}i(Hc,"hasHighValueLoss");function Gc(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(Gc,"hasLimitError");function Vc(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Ue(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Ue(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.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=ft.t({id:"Required: >= {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ft.t({id:"Required: > {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ft.t({id:"Required: <= {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ft.t({id:"Required: < {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Vc,"getLimitErrorMessage");function Kc(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=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}:p?{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(Kc,"getSwapButtonState");function Pa(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(Ce))&&e&&e!=="0"&&n!==0)}i(Pa,"canComputePriceImpact");function Da(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(Da,"getUsdFeeOfStep");function Lr(t,e){return t.reduce((o,n)=>o.plus(Da(n,e)),Ce)}i(Lr,"getTotalFeeInUsd");function _a(t){let e=Ce;return e=e.plus(new Ue(t.amount).multipliedBy(t.price||0)),e}i(_a,"getUsdFee");function jc(t){return t.reduce((e,o)=>e.plus(_a(o)),Ce)}i(jc,"getTotalFeesInUsd");function Xc(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(Xc,"getFeesGroup");function Yc(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(Yc,"checkSlippageErrors");function Zc(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(Zc,"checkSlippageWarnings");function Pr(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(Pr,"getMinRequiredSlippage");function Jc(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Jc,"hasProperSlippage");function Rc(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:h,destination:f}=t,d=a?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),g=[];return r?.forEach(S=>{g.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:g,selectedWallets:d??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(Rc,"createQuoteRequestBody");function eu(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(eu,"getWalletsForNewSwap");function Oo(t){return t?.outputAmount||null}i(Oo,"getQuoteOutputAmount");function tu(t,e){return new Ue(e).div(new Ue(t)).minus(1).multipliedBy(100).toNumber()}i(tu,"getPercentageChange");function ou(t,e){let o=Oo(t),n=Oo(e);if(!o||!n)return!1;let r=pt(o,n);return r?r<=-1:!0}i(ou,"isOutputAmountChangedALot");function nu(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=>pu(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=B(new Ue(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=B(new Ue(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=ft.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ft.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ft.t(" for input and network fee")),ft.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:st(s.asset.blockchain,o)}})})}i(nu,"generateBalanceWarnings");function Kt(t,e){return(t?new Ue(t):Ce).multipliedBy(e||0)}i(Kt,"calcOutputUsdValue");function Sn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Mr.NetworkChanged}i(Sn,"isNetworkStatusInWarningState");function ru(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 Mr.WaitingForConnectingWallet:n=n||ft.t("Waiting for connecting wallet");break;case Mr.WaitingForQueue:n=n||ft.t("Waiting for other running tasks to be finished");break;case Mr.WaitingForNetworkChange:n=n||ft.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(ru,"getSwapMessages");function iu(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(iu,"getLastConvertedTokenInFailedSwap");function au(t){return t.status==="failed"}i(au,"shouldRetrySwap");function su(t,e,o,n,r,a){if(!n||t)return!0;let s=io({filter:"all",quote:n}),l=io({filter:"required",quote:n}),p=s.every(m=>r.some(h=>h.chain===m)),u=l.every(m=>r.some(h=>h.chain===m)),c=o&&a?Ao(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(su,"isConfirmSwapDisabled");function lu(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(lu,"isTokensIdentical");function mo(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(mo,"getQuoteToTokenUsdPrice");function Cn(t){return(t?.swaps||[])[0].from.usdPrice}i(Cn,"getQuoteFromTokenUsdPrice");function $a(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i($a,"isNumberOfSwapsChanged");function Fa(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!ma(o,n)}i(Fa,"isQuoteSwappersUpdated");function Oa(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!ma(o,n)}i(Oa,"isQuoteInternalCoinsUpdated");function uu(t,e){return $a(t,e)||Fa(t,e)||Oa(t,e)}i(uu,"isQuoteChanged");function pu(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(pu,"getRequiredBalanceOfWallet");function Pt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Pt,"getPriceImpactLevel");function _r(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=eC(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=an(a?a.toBlockchain:n.fromBlockchain,e),p=an(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(_r,"createRetryQuote");function Uo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=Kt(t.requestAmount,Cn(t)||o?.usdPrice),l=Kt(t.outputAmount,mo(t)||n?.usdPrice);if(t&&s&&l){let c=pt(s.toString(),l.toString());if(!!c&&Hc(s,c)){let h=Lr(t?.swaps,r),f=Pt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:h,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=Pr(t.swaps),u=a>oc;if(Jc(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:Zc(t,a),minRequiredSlippage:p};return null}i(Uo,"generateQuoteWarnings");function pt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:tu(t.toString(),e.toString());return n&&n<0?n:null}i(pt,"getPriceImpact");var mu=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"),$r=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),du=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"),fu=i(t=>{let e=i((o,n)=>{let r=La.indexOf(o.value),a=La.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Fr=i((t,e)=>t?.usdPrice?new je(e||Ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),F=Po(tC()(oC(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new je(0),outputUsdValue:new je(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 cn(o.inputAmount)?(e&&(n=e?.outputAmount?new je(e?.outputAmount):null,a=Kt(o.inputAmount,Cn(e)||o.fromToken?.usdPrice),r=Kt(e.outputAmount,mo(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new je(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new je(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new je(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:Fr(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 je(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 je(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Fr(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:Fr(n??null,s),outputUsdValue:new je(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?Fr(e.toToken,e.outputAmount?.toString()||""):new je(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new je(0),inputUsdValue:new je(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new je(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})})))),gu=F.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ge.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&&ge.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 hu(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=F(),c=y().config,m=y().fetchStatus,h=y().blockchains(),f=y().tokens(),{findToken:d}=y(),{setAffiliateRef:g,setAffiliatePercent:C,setAffiliateWallets:S}=y(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,w=c?.to?.blockchains,I=Or(void 0),L=Or(void 0),b=Or(void 0),E=Or(void 0);zo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),zo(()=>{if(m==="success"){r();let x=h.find(A=>A.name===c?.from?.blockchain),W=c?.from?.token,D=W&&d(W);(x||!x&&b.current)&&n(x??null),D?a({token:D,meta:{blockchains:h,tokens:f}}):!D&&I.current&&a({token:null}),b.current=c?.from?.blockchain,I.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),zo(()=>{ga(s,T)&&a({token:null}),ha(p,k)&&n(null)},[T,k]),zo(()=>{ga(l,v)&&a({token:null}),ha(u,w)&&o(null)},[v,w]),zo(()=>{if(m==="success"){r();let x=h.find(A=>A.name===c?.to?.blockchain),W=c?.to?.token,D=W&&d(W);(x||!x&&E.current)&&o(x??null),D?e({token:D,meta:{blockchains:h,tokens:f}}):!D&&L.current&&e({token:null}),E.current=c?.to?.blockchain,L.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),zo(()=>{g(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),S(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(hu,"useSyncStoresWithConfig");import{useEffect as Qa,useRef as nC}from"react";import{useInRouterContext as rC,useLocation as iC,useSearchParams as aC}from"react-router-dom";function Ua(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Ua,"convertTokenSearchParamToAsset");function za(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(za,"tokenToSearchParam");function Ha(){let t=iC(),[e,o]=aC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:h}=F(),f=y().fetchStatus,d=y().blockchains(),g=y().tokens(),C=rC(),{updateIframe:S,updateCampaignMode:T}=y(),k=y().isInCampaignMode(),v=nC(),{findToken:w}=y(),I=i(()=>{let b={};for(let[K,se]of e.entries())K.startsWith("utm_")&&(b[K]=se);let E=e.get("fromAmount"),x=e.get("fromBlockchain"),W=e.get("fromToken"),D=e.get("toBlockchain"),A=e.get("toToken"),Z=e.get("autoConnect"),ie=e.get("clientUrl"),J=e.get("liquiditySources"),M=e.get("blockchain");return{fromAmount:E,fromBlockchain:x,fromToken:W,toBlockchain:D,toToken:A,autoConnect:Z,clientUrl:ie,liquiditySources:J,utmQueryParams:b,blockchain:M}},"getUrlSearchParams"),L=i(b=>{for(let E in b)b[E]||delete b[E];o(b,{replace:!0})},"updateUrlSearchParams");Qa(()=>{let{autoConnect:b,clientUrl:E,utmQueryParams:x,blockchain:W}=I();C&&f==="success"&&L({fromBlockchain:n?.name,fromToken:za(a),toBlockchain:r?.name,toToken:za(s),fromAmount:l,autoConnect:b??void 0,clientUrl:E??void 0,blockchain:W??void 0,liquiditySources:k?v.current:void 0,...x})},[t.pathname,l,n,a,r,s,k]),Qa(()=>{if(!C)return;let b=I();if(!v.current&&b.liquiditySources&&(v.current=b.liquiditySources),b.fromAmount&&h(b.fromAmount),f==="success"){let E=d.find(A=>A.name===b.fromBlockchain),x=b.fromToken&&E?w(Ua(b.fromToken,E)):void 0,W=d.find(A=>A.name===b.toBlockchain),D=b.toToken&&W?w(Ua(b.toToken,W)):void 0;E&&(p(E),x&&c({token:x,meta:{blockchains:d,tokens:g}})),W&&(u(W),D&&m({token:D,meta:{blockchains:d,tokens:g}}))}},[f]),Qa(()=>{let{clientUrl:b,liquiditySources:E}=I();S("clientUrl",b||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(Ha,"useSyncUrlAndStore");import{i18n as It}from"@lingui/core";import{Alert as TT,Button as Yu,darkTheme as kT,Divider as vn,DoneIcon as vT,MessageBox as wT,styled as xT,TextField as bT,Typography as ET}from"@rango-dev/ui";import he,{useEffect as IT,useState as Vr}from"react";import{useNavigate as AT,useSearchParams as NT}from"react-router-dom";import{ChevronRightIcon as sC,Divider as ku,Image as lC,Typography as vu}from"@rango-dev/ui";import gt from"react";import{darkTheme as yu,styled as Ga}from"@rango-dev/ui";var Su=Ga("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${yu} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${yu} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Cu=Ga("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Tu=Ga("div",{display:"flex"});function Va(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return gt.createElement(Cu,null,gt.createElement(vu,{size:"large",variant:"label"},n),gt.createElement(ku,{size:10}),gt.createElement(Su,{onClick:s?void 0:e,disabled:s},gt.createElement(Tu,null,r&&gt.createElement(gt.Fragment,null,gt.createElement(lC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),gt.createElement(ku,{size:4,direction:"horizontal"})),gt.createElement(vu,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),gt.createElement(sC,{size:12,color:"black"})))}i(Va,"BlockchainSelectorButton");import{i18n as ja}from"@lingui/core";import{Button as pC,Divider as Tn,ExternalLinkIcon as cC,Image as uC,Typography as qo}from"@rango-dev/ui";import Ae from"react";function wu(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(wu,"generateExplorerLink");import{darkTheme as Qo,styled as xu}from"@rango-dev/ui";var Ka=xu("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Qo} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Qo} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Qo} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Qo} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),bu=xu("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Qo} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Qo} &`]:{color:"$colors$neutral900"}}});function Xa(t){let{open:e,onClose:o,token:n,onSubmitClick:r,blockchain:a}=t,s=wu(n.address,a);return Ae.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Ae.createElement(bu,null,Ae.createElement(uC,{src:n.image,size:45,type:"circular"}),Ae.createElement(qo,{variant:"title",size:"medium"},n.name),Ae.createElement(qo,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),Ae.createElement(Tn,{size:4}),Ae.createElement(qo,{variant:"body",size:"medium"},s?Ae.createElement(Ka,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,Ae.createElement(cC,{size:12,color:"gray"})):Ae.createElement(Ka,null,n.address)),Ae.createElement(Tn,{size:4}),n.coinSource&&Ae.createElement(qo,{className:"_coin-source",variant:"body",size:"xsmall"},ja.t("via")," ",Ae.createElement(qo,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Ae.createElement(Tn,{size:"32"}),Ae.createElement(qo,{size:"medium",variant:"body",className:"_custom-token-description"},ja.t("This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."))),Ae.createElement(Tn,{size:40}),Ae.createElement(Tn,{size:10}),Ae.createElement(pC,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:r},ja.t("Import")))}i(Xa,"CustomTokenModal");import{useManager as fT}from"@rango-dev/queue-manager-react";import{BottomLogo as gT,Divider as Gu,Header as hT}from"@rango-dev/ui";import We,{useEffect as ys,useRef as Vu,useState as yT}from"react";import{useRef as mC}from"react";function Ur(){return window.self!==window.top}i(Ur,"isAppLoadedIntoIframe");function Ya(){let t=mC(null),{iframe:e}=y(),o=Ur()&&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 p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ya,"useIframe");import{useNavigate as dC}from"react-router-dom";function Xe(){let t=dC();return()=>t(-1)}i(Xe,"useNavigateBack");import{createTheme as ns,darkTheme as IC,lightTheme as AC}from"@rango-dev/ui";import{useEffect as NC,useState as WC}from"react";import{theme as bC,darkColors as EC}from"@rango-dev/ui";import ts from"react";function fC(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(fC,"expandShortHexColor");function gC(t){return/[0-9]+$/.test(t)}i(gC,"isOverridingColor");function hC(t,e){return t.padStart(e,"0")}i(hC,"pad");function Za(t){let e=Math.min(Math.max(Math.round(t),0),255);return hC(e.toString(16),2)}i(Za,"intToHex");function yC(t){return`#${Za(t.red)}${Za(t.green)}${Za(t.blue)}`}i(yC,"rgbToHex");function SC(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(SC,"hexToRGB");function CC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(CC,"generateShade");function TC(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(TC,"generateTint");function kC(t){return Eu(t,CC)}i(kC,"calculateShades");function vC(t){return Eu(t,TC)}i(vC,"calculateTints");function Eu(t,e){let o=SC(t),n=[];for(let r=1;r<9;r++)n.push(yC(e(o,r)));return n}i(Eu,"calculateColors");function Ja(t,e,o){let a=vC(t).reverse().concat(t),s=kC(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(Ja,"createTintsAndShades");function Ra(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)&&!gC(r)){let p=fC(a);Object.assign(n,Ja(p,r,s))}}return{...n,...e}}i(Ra,"expandToGenerateThemeColors");var Iu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),wC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Iu(o%52)+e;return Iu(o%52)+e},"toAlphabeticName"),xC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),es=i(t=>wC(xC(5381,JSON.stringify(t))>>>0),"toHash");function os(t){let e=bC.colors,o={...e,...EC},n,r;if(t?.light){let s={colors:Ra(e,t.light)};n={id:`${fa}-light-${es(s)}`,tokens:s}}if(t?.dark){let s={colors:Ra(o,t.dark,{reverseNeutralRange:!0})};r={id:`${fa}-dark-${es(s)}`,tokens:s}}return{light:n,dark:r}}i(os,"customizedThemeTokens");function Au(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ts.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ts.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ts.cloneElement(e,{key:l}))}}),o}i(Au,"joinList");function Nu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Nu,"doesWindowPreferDarkColorScheme");function Ho(t){let{colors:e,fontFamily:o=kp,borderRadius:n=Gp,secondaryBorderRadius:r=Vp}=t,[a,s]=WC(Nu()?"dark":"light"),{theme:l}=y(),{dark:p,light:u}=os(e),c=ns({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,AC.className],h=[c.className,IC.className];if(u){let d=ns(u.id,u.tokens);m.push(d.className)}if(p){let d=ns(p.id,p.tokens);h.push(d.className)}return NC(()=>{let d=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return Nu()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",d),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",d)}},[]),{activeTheme:i(()=>{let d=m.join(" "),g=h.join(" ");return l==="auto"?a==="dark"?g:d:l==="dark"?g:d},"getActiveTheme"),mode:l==="auto"?a:l}}i(Ho,"useTheme");var ct=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Wu}from"@lingui/core";import{Alert as BC,Button as MC}from"@rango-dev/ui";import Bu from"react";function rs(t){return Bu.createElement(BC,{action:Bu.createElement(MC,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Wu.t("Activate this tab")),type:"warning",variant:"alarm",title:Wu.t("Another tab is open and handles transactions.")})}i(rs,"ActivateTabAlert");import{i18n as is}from"@lingui/core";import{Button as LC,Divider as PC,MessageBox as DC}from"@rango-dev/ui";import zr from"react";function as(t){let{open:e,onClose:o,onConfirm:n}=t;return zr.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},zr.createElement(DC,{title:is.t("Activate current tab"),type:"warning",description:is.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.")},zr.createElement(PC,{size:20}),zr.createElement(LC,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},is.t("Confirm"))))}i(as,"ActivateTabModal");import{ChevronLeftIcon as _C}from"@rango-dev/ui";import Mu from"react";function ss(t){return Mu.createElement(Et,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Mu.createElement(_C,{color:"black",size:16}))}i(ss,"BackButton");import{i18n as $C}from"@lingui/core";import{Button as FC,Typography as OC}from"@rango-dev/ui";import ls from"react";function ps(t){return ls.createElement(Gt,null,ls.createElement(FC,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ls.createElement(OC,{variant:"label",size:"medium",color:"error500"},$C.t("Cancel"))))}i(ps,"CancelButton");import{i18n as UC}from"@lingui/core";import{Image as zC,Tooltip as QC,WalletIcon as qC}from"@rango-dev/ui";import fo from"react";function cs(t){let{list:e}=dt(),o=e.filter(r=>r.state==="connected"),n=o.length?fo.createElement("div",{className:bc()},o.map(r=>fo.createElement(vr,{key:r.title},fo.createElement(zC,{src:r.image,size:14})))):UC.t("Connect Wallet");return fo.createElement(QC,{container:t.container,side:"bottom",content:n},fo.createElement(Et,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&fo.createElement(kc,null),fo.createElement(qC,{size:18,color:"black"})))}i(cs,"WalletButton");import{i18n as qr}from"@lingui/core";import{NotificationsIcon as iT,Popover as aT,SettingsIcon as sT,Tooltip as Hr,TransactionIcon as lT}from"@rango-dev/ui";import Ne from"react";import{Notifications as KC}from"@rango-dev/ui";import jC from"react";import{useNavigate as XC}from"react-router-dom";import{create as HC}from"zustand";import{persist as GC,subscribeWithSelector as VC}from"zustand/middleware";var ve=Po(HC()(GC(VC((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(p=>p.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(p=>p.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 us(){let t=XC(),{getNotifications:e,clearNotifications:o}=ve(),n=e(),r=y().blockchains(),{findToken:a}=y();return jC.createElement(KC,{list:n,getBlockchainImage:l=>fp(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${_.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(us,"NotificationContent");import{useManager as YC}from"@rango-dev/queue-manager-react";import{InProgressIcon as ZC}from"@rango-dev/ui";import Lu from"react";var JC=i(()=>{let{manager:t}=YC();return ct(t).map(({swap:o})=>o).find(o=>o.status==="running")?Lu.createElement(xc,null,Lu.createElement(ZC,{color:"info",size:6})):null},"InProgressTransactionBadge"),Pu=JC;import{EventSeverity as RC}from"@rango-dev/queue-manager-rango-preset";import{Typography as eT}from"@rango-dev/ui";import Du from"react";function _u(){let{getNotifications:t}=ve(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===RC.WARNING);return o?Du.createElement(vc,{isSever:n},Du.createElement(eT,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(_u,"NotificationsBadge");import{RefreshProgressButton as tT}from"@rango-dev/ui";import ms,{useEffect as oT,useState as $u}from"react";var nT=1e3,Fu=60,rT=100;function Qr({onClick:t}){let[e,o]=$u(0),[n,r]=$u(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");oT(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Fu&&l()},nT):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ms.createElement(Et,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ms.createElement(wc,{onTransitionEnd:()=>r(!1),isRefetched:n},ms.createElement(tT,{size:22,color:t?"black":"gray",progress:e/Fu*rT})))}i(Qr,"RefreshButton");function go(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ke("notification",s)||r.includes("notifications");return Ne.createElement(Ne.Fragment,null,!r.includes("refresh")&&Ne.createElement(Hr,{container:a||N(),side:"top",content:qr.t("Refresh")},Ne.createElement(Qr,{onClick:e})),!l&&Ne.createElement(aT,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Ne.createElement(us,null)},Ne.createElement("div",null,Ne.createElement(Hr,{container:N(),side:"top",content:qr.t("Notifications")},Ne.createElement(Et,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Ne.createElement(iT,{size:18,color:"black"}),Ne.createElement(_u,null))))),!r.includes("settings")&&Ne.createElement(Hr,{container:N(),side:"top",content:qr.t("Settings")},Ne.createElement(Et,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Ne.createElement(sT,{size:18,color:"black"}))),!r.includes("history")&&Ne.createElement(Hr,{container:N(),side:"top",content:qr.t("History")},Ne.createElement(Et,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Ne.createElement(lT,{size:18,color:"black"}),Ne.createElement(Pu,null))))}i(go,"HeaderButtons");import{i18n as ds}from"@lingui/core";import{Divider as Uu,MessageBox as uT,RefreshIcon as mT}from"@rango-dev/ui";import Go from"react";import{Button as pT,styled as cT}from"@rango-dev/ui";var Ou=cT(pT,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function fs(t){let{open:e,onClose:o}=t;return Go.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Go.createElement(uT,{title:ds.t("Something went wrong"),type:"error",description:ds.t("Something went wrong. Please refresh the app.")},Go.createElement(Uu,{size:30}),Go.createElement(Ou,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Go.createElement(mT,{size:20,color:"primary"}),Go.createElement(Uu,{size:4,direction:"horizontal"}),ds.t("Refresh"))))}i(fs,"RefreshModal");function gs(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(gs,"onScrollContentAttachStatusToContainer");import{css as dT,styled as hs}from"@rango-dev/ui";var zu="700px",Gr=dT({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Qu=hs("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:zu},fixed:{height:zu}}}}),qu=hs("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Hu=hs("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 te(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ya(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:p}=y(),[u,c]=yT(!1),{config:{features:m,theme:h}}=y(),{watermark:f}=ae(),d=f==="FULL",{activeTheme:g}=Ho(h||{}),C=Ke("connectWalletButton",m),{isActiveTab:S,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:w}=ae(),I=Xe(),{manager:L}=fT(),E=ct(L).map(({swap:ie})=>ie).some(ie=>ie.status==="running"),x=i(()=>w(ao.forceClaim,E),"onActivateTab"),W=i(()=>{r.onWallet?.()},"onConnectWallet"),D=typeof r.hasBackButton>"u"||r.hasBackButton,A=Vu(null),Z=Vu(null);return ys(()=>(Ur()&&Z.current&&e(Z.current),()=>{o()}),[]),ys(()=>(A.current?.addEventListener("scroll",gs),()=>{A.current?.removeEventListener("scroll",gs)}),[]),ys(()=>{c(l==="failed")},[l]),We.createElement(Qu,{height:s,id:De.SWAP_BOX_ID,className:`${g()} ${Gr()}`,ref:Z},We.createElement(hT,{prefix:D?We.createElement(ss,{onClick:()=>{I(),r.onBack&&r.onBack()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!C&&We.createElement(cs,{container:N(),onClick:W,isConnected:!!p?.length}),r.onCancel&&We.createElement(ps,{onClick:r.onCancel}))}),We.createElement(qu,{ref:A},n),We.createElement(as,{open:k,onClose:()=>v(!1),onConfirm:x}),We.createElement(Hu,null,We.createElement("div",{className:"footer__content"},T&&!S&&We.createElement("div",{className:"footer__alert"},We.createElement(rs,{onActivateTab:x}),We.createElement(Gu,{size:10})),a),We.createElement(Gu,{size:12}),We.createElement("div",{className:`footer__logo ${d?"logo__show":"logo__hidden"}`},We.createElement(gT,null))),We.createElement(fs,{open:u,onClose:()=>c(!1)}))}i(te,"Layout");import{styled as ST}from"@rango-dev/ui";var Ku="$20 $20 $10 $20",kn=ST("div",{padding:Ku,overflowY:"auto",flexGrow:1});import{styled as CT}from"@rango-dev/ui";var ne=CT("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 Vo}from"@lingui/core";import{useState as ju}from"react";function Xu(){let[t,e]=ju(!1),[o,n]=ju(void 0),{findToken:r}=y(),a=y().customTokens();function s(p,u){switch(p){case"duplicated":return{title:Vo.t("Duplicate Token"),message:Vo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:Vo.t("Token Already Exists"),message:Vo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:Vo.t("Token Not Found"),message:Vo.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:p,tokenAddress:u})=>{e(!0);try{if(a.some(d=>d.address?.toLowerCase()===u.toLowerCase())){let d=s("duplicated");n(d);return}let m=await bt().getCustomToken({blockchain:p,address:u});if(!m||!m.token||m.error){let d=s("not-found",p);n(d);return}let h=m.token;if(r({blockchain:h.blockchain,address:h.address,symbol:h.symbol})){let d=s("token-exist");n(d);return}return h}catch(c){throw n(void 0),new Error(c.message)}finally{e(!1)}},"fetchCustomToken"),loading:t,error:o}}i(Xu,"useFetchCustomToken");var WT=xT("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${kT} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),BT=1e3;function Zu(){let t=AT(),[e]=NT(),o=Xe(),{setCustomToken:n}=y(),r=y().blockchains(),a=e.get("blockchain")||"",s=an(a,r),[l,p]=Vr(""),[u,c]=Vr(!1),[m,h]=Vr(),{fetchCustomToken:f,loading:d,error:g}=Xu(),[C,S]=Vr(""),T=!!s&&Ao(s,l),k=!s||!l||!T,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")),c(!0))}},"getCustomToken"),w=i(()=>{g&&p(""),c(!1)},"closeErrorModal"),I=i(async()=>{C&&setTimeout(async()=>{await v()},BT),w()},"handleErrorModalButtonClick");return IT(()=>{g&&c(!0)},[g]),he.createElement(te,{header:{title:It.t("Add Custom Token")}},he.createElement(ne,null,he.createElement(WT,null,he.createElement("div",null,he.createElement(Va,{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")}),he.createElement(vn,{size:"24"}),he.createElement(ET,{size:"large",variant:"label"},It.t("Enter Address")),he.createElement(vn,{size:10}),he.createElement(bT,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:It.t("Enter token address"),size:"large",value:l,suffix:!!l&&T&&he.createElement(vT,{color:"success",size:12}),onChange:L=>p(L.target.value)}),!T&&!!l&&he.createElement(he.Fragment,null,he.createElement(vn,{size:4}),he.createElement(TT,{type:"error",variant:"alarm",title:"Invalid Address"}))),he.createElement(Yu,{id:"widget-add-custom-token-import-btn",disabled:k,type:"primary",variant:"contained",loading:d,size:"large",onClick:v},It.t("Import"))),he.createElement(R,{open:u,dismissible:!0,onClose:w,container:N()},he.createElement(wT,{title:g?.title||C,type:"error",description:g?.message||It.t("Failed Network, Please retry.")},he.createElement(vn,{size:40}),he.createElement(vn,{size:10}),he.createElement(Yu,{id:`widget-add-custom-token-${C?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:I},C?It.t("Retry"):It.t("Add another custom token")))),s&&m&&he.createElement(Xa,{blockchain:s,token:m,onSubmitClick:()=>{m&&(n(m),h(void 0),o())},onClose:()=>h(void 0),open:!!s&&!!m})))}i(Zu,"AddCustomTokenPage");import{i18n as Vs}from"@lingui/core";import{useManager as fv}from"@rango-dev/queue-manager-react";import{Alert as Kd,Button as gv,css as js,Divider as Ks,IconButton as jd,styled as hv,Typography as yv,WalletIcon as Sv}from"@rango-dev/ui";import be,{useEffect as vi,useLayoutEffect as Cv,useRef as Tv,useState as Dn}from"react";import{useNavigate as kv}from"react-router-dom";import{i18n as ho}from"@lingui/core";import{Alert as bm,BalanceErrors as nk,Button as Em,ChevronLeftIcon as rk,Divider as ti,MessageBox as ik,Typography as bs}from"@rango-dev/ui";import X,{useCallback as ak,useEffect as Im,useMemo as sk,useState as yo}from"react";import{useNavigate as lk}from"react-router-dom";import{i18n as Kr}from"@lingui/core";function jr(t){switch(t.type){case 0:return Kr.t("Route has been updated.");case 3:return Kr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Kr.t("Route swappers has been updated.");case 2:return Kr.t("Route internal coins has been updated.");default:return""}}i(jr,"getQuoteUpdateWarningMessage");import{i18n as ks}from"@lingui/core";import{Alert as $T,ChevronDownIcon as FT,CloseIcon as OT,Divider as rm,IconButton as im,PasteIcon as UT,Typography as zT,WalletIcon as QT}from"@rango-dev/ui";import Be,{useEffect as qT,useRef as HT}from"react";import Jr,{useRef as DT}from"react";import*as Ko from"@radix-ui/react-collapsible";import{keyframes as Ju,styled as Xr}from"@rango-dev/ui";var Ss=300,LT=Ju({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),PT=Ju({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Ru=Xr(Ko.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Cs=Xr(Ko.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Yr=Xr(Ko.Content,{overflow:"hidden",variants:{open:{true:{animation:`${LT} ${Ss}ms ease-out`},false:{animation:`${PT} ${Ss}ms ease-out`}}}}),Zr=Xr("div",{transition:`all ${Ss}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Rr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=DT(null);return Jr.createElement(Ru,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Jr.createElement(Cs,{className:"collapsible_trigger",onClick:a},s),Jr.createElement(Yr,{className:"collapsible_content",open:e},r),l==="bottom"&&Jr.createElement(Cs,{className:"collapsible_trigger",onClick:a},s))}i(Rr,"CustomCollapsible");import{darkTheme as em,styled as Ts,TextField as _T}from"@rango-dev/ui";var tm=Ts("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),om=Ts(_T,{backgroundColor:"$neutral100",padding:"$15"}),nm=Ts("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${em} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${em} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function am(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=F(),{config:s}=y(),l=y().blockchains(),p=rr(e.name,l),u=HT(null),c=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!Ao(e,r),d=i(()=>{a("")},"handleClear"),g=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let T=await navigator.clipboard.readText();a(T),u?.current?.focus()}},"handlePaste"),C=i(()=>r?Be.createElement(im,{id:"widget-custom-destination-close-icon-btn",onClick:d,variant:"ghost"},Be.createElement(OT,{size:12,color:"gray"})):m?null:Be.createElement(im,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Be.createElement(UT,{size:16})),"renderSuffix");return qT(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Be.createElement(tm,null,Be.createElement(Rr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Be.createElement(nm,null,Be.createElement("div",{className:"button__content"},Be.createElement(QT,{size:18,color:"info"}),Be.createElement(rm,{size:4,direction:"horizontal"}),Be.createElement(zT,{variant:"label",size:"medium",color:n?"$neutral600":void 0},ks.t("Send to a different address"))),Be.createElement(Zr,{orientation:n?"up":"down"},Be.createElement(FT,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Be.createElement(om,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:ks.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:C(),onChange:S=>{let T=S.target.value;a(T)}})),f&&Be.createElement(Be.Fragment,null,Be.createElement(rm,{size:4}),Be.createElement($T,{variant:"alarm",type:"error",title:ks.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(am,"CustomDestination");import{css as GT,darkTheme as vs,IconButton as VT,styled as Dt}from"@rango-dev/ui";var sm=Dt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),lm=Dt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),KT=Dt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${vs} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${vs} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${vs} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),pm=Dt(KT,{alignSelf:"stretch",minHeight:"93px"}),cm=Dt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),um=Dt(VT,{position:"absolute",left:"$20"}),mm=Dt("div",{paddingTop:"$20"}),dm=GT({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),fm=Dt("div",{display:"flex"}),gm=Dt("div",{overflow:"visible",width:"100%"});import{i18n as km}from"@lingui/core";import{warn as JT}from"@rango-dev/logging-core";import{Divider as RT,SelectableWallet as ek,Typography as vm,WalletState as wm}from"@rango-dev/ui";import Ye,{useEffect as xm,useState as xn}from"react";import{Image as YT,MessageBox as ZT}from"@rango-dev/ui";import wn from"react";import{keyframes as jT,styled as ws}from"@rango-dev/ui";var hm=ws("div",{position:"relative"}),XT=jT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ym=ws("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${XT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Sm=ws("div",{"& img":{borderRadius:"50%"}});import{i18n as jo}from"@lingui/core";function Cm(t,e){switch(t){case"in-progress":return{type:"loading",title:jo.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:jo.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:jo.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:jo.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:jo.t("Request Rejected"),description:jo.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(Cm,"generateMessageByStatus");function Tm(t){let{status:e,displayName:o,image:n}=t,r=Cm(e,o),a=e=="in-progress";return wn.createElement(ZT,{type:r.type,title:r.title,description:r.description,icon:a?wn.createElement(hm,null,wn.createElement(Sm,null,wn.createElement(YT,{src:n,size:45})),wn.createElement(ym,null)):void 0})}i(Tm,"ExperimentalChainStatus");var tk=7,ok=3e3;function xs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=ae.use.isActiveTab(),{blockchains:l,connectedWallets:p}=y(),[u,c]=xn(),[m,h]=xn(null),[f,d]=xn(!1),[g,C]=xn(null),{suggestAndConnect:S}=ei(),{handleDisconnect:T}=Ht(),{list:k}=dt({chain:e}),[v,w]=xn(k),I=k.length,L=r&&I-r>0,b=i(async x=>{d(!1),C("in-progress");try{await S(x.walletType,x.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");xm(()=>{w(x=>{let W=k.findIndex(D=>o(D.type,e));return L&&W>1?[k[W]].concat(k.filter((D,A)=>A!==W)):x.map(D=>k.find(A=>A.type===D.type)??D)})},[JSON.stringify(k)]);let E=document.getElementById(De.SWAP_BOX_ID);return xm(()=>{let x=null;return(g==="completed"||g==="rejected")&&(x=setTimeout(()=>C(null),ok)),()=>{x&&clearTimeout(x)}},[g]),Ye.createElement(Ye.Fragment,null,v.slice(0,r).map(x=>{let W=Op({connectedWallets:p,walletType:x.type,chain:e}),D=W?gr(W,tk):"",A=dr(l(),e),Z=!p.find(se=>se.walletType===x.type&&se.chain===e),ie=A&&Z&&x.state===wm.CONNECTED,J=ie?km.t({id:"Add {chain} chain",values:{chain:e}}):D,M=i(async()=>{let se=x.state===wm.DISCONNECTED,H=(x.isHub||!!x.namespaces)&&!D;se?c(x):H?(await T(x.type),c(x)):ie?(h({walletType:x.type,chain:e,address:W??""}),d(!0)):n({walletType:x.type,chain:e,address:W??""})},"onSelectableWalletClick"),K=m?.chain?rr(m.chain,l()):void 0;return Ye.createElement(Ye.Fragment,{key:`${x.title}_${K}`},!!m&&Ye.createElement(R,{open:!!m&&f,container:E,onClose:()=>{h(null)}},Ye.createElement(Wa,{displayName:K,onConfirm:()=>{b(m)}})),g&&Ye.createElement(R,{open:!!g,onClose:C.bind(null,null),container:E},Ye.createElement(Tm,{status:g,displayName:K,image:x.image}),Ye.createElement(RT,{direction:"vertical",size:32})),Ye.createElement(ek,{key:x.type,description:J,onClick:M,selected:o(x.type,e),disabled:!s,...x}))}),Ye.createElement(co,{wallet:u,onClose:()=>{c(void 0)},onConnect:x=>{t.onConnect&&x.status==="connected"&&(u?.type?t.onConnect(u.type):JT(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),L&&Ye.createElement(pm,{selected:!1,onClick:a},Ye.createElement(vm,{variant:"label",size:"medium"},km.t("Show more wallets"),Ye.createElement(vm,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(xs,"WalletList");var pk=2;function Am(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=lk(),l=y().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:m,customDestination:h,setCustomDestination:f}=F(),{config:d,connectedWallets:g,setWalletsAsSelected:C}=y(),[S,T]=yo(""),[k,v]=yo([]),[w,I]=yo(""),[L,b]=yo(null),[E,x]=yo(!!h),W=sk(()=>io({filter:"all",quote:p}),[p]),D=io({filter:"required",quote:p}),A=l.find($=>$.name===p?.swaps[p?.swaps.length-1].to.blockchain),Z=i($=>D.includes($),"isWalletRequiredFor"),ie=ak(()=>g.filter($=>$.selected&&W.includes($.chain)),[g,W]),[J,M]=yo(ie()),[K,se]=yo([]),H=i(($,Q)=>se(G=>G.concat({blockchain:$,walletType:Q})),"addNextSelectedWallets"),de=k.length>0,fe=i(($,Q)=>!!J.find(G=>G.walletType===$&&G.chain===Q&&G.selected&&(Z(Q)||!Z(Q)&&!h)),"isSelected"),Pe=i(($,Q,G)=>{let oe=!1;return $.map(le=>{if(le.chain===Q){let pe=le.selected;return!oe&&G?(oe=!0,pe=!0):G||(pe=!1),{...le,selected:pe}}return le})},"updateSelectableWallets"),z=i($=>{x($),$?Z(A?.name??"")||M(Q=>Pe(Q,A?.name||"",!1)):(f(""),M(Q=>Pe(Q,A?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),Ve=i($=>{if(S&&T(""),fe($.walletType,$.chain))return;let G=g.find(oe=>oe.walletType===$.walletType&&oe.chain===$.chain);G&&(n(),$.chain===A?.name&&E&&!Z(A.name)&&(x(!1),f(null)),M(oe=>oe.filter(le=>le.chain!==$.chain).concat({...G,selected:!0})))},"onChange"),kt=i(()=>{let $=J.filter(Q=>Q.selected);C($),u($),m(!0),o()},"onConfirmBalance"),at=i(async()=>{v([]),I(""),b(null);let $=await r?.({selectedWallets:J.filter(G=>G.selected),customDestination:h}),Q=$.warnings;Q?.balance?.messages&&v(Q.balance.messages),Q?.quoteUpdate&&b(Q.quoteUpdate),$.error&&I(qc($.error)),!$.error&&!Q?.balance?.messages.length?kt():v(Q?.balance?.messages??[])},"onConfirmWallets");Im(()=>{M($=>{let Q=[];return $.forEach(G=>{!g.some(le=>le.chain===G.chain&&le.walletType===G.walletType&&le.address===G.address)||Q.push(G)}),Q=Q.concat(g.filter(G=>!!!Q.find(le=>le.chain===G.chain)&&G.selected&&W.includes(G.chain))),Q})},[g,W]),Im(()=>{let $=[];K.length>0&&(K.forEach(Q=>{let G=g.find(oe=>oe.chain===Q.blockchain&&oe.walletType===Q.walletType);G?Ve(G):$.push(Q)}),se($))},[g,K]);let vt=document.getElementById(De.SWAP_BOX_ID);return X.createElement(R,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!S,container:vt,...!S&&{styles:{container:{height:"100%"}},footer:X.createElement(fm,null,X.createElement(Em,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:su(a,E,h,p,J,A),onClick:at,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ho.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:X.createElement(cm,null,X.createElement(um,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:T.bind(null,"")},X.createElement(rk,{size:16})),X.createElement(bs,{variant:"headline",size:"small"},ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:st(S,l)}})))},anchor:"center"},X.createElement(R,{open:de,onClose:v.bind(null,[]),container:vt},X.createElement(ik,{title:ho.t("Insufficient account balance"),type:"error",description:X.createElement(nk,{messages:k??[]})},X.createElement(Em,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:kt},ho.t("Proceed anyway")))),S&&X.createElement(mm,null,X.createElement("div",{className:dm()},X.createElement(xs,{chain:S,isSelected:fe,selectWallet:Ve,onShowMore:()=>T(S),onConnect:$=>{H(S,$)}}))),!S&&X.createElement(X.Fragment,null,w&&X.createElement(X.Fragment,null,X.createElement(bm,{variant:"alarm",type:"error",title:ho.t(w)}),X.createElement(ti,{size:12})),L&&X.createElement(X.Fragment,null,X.createElement(bm,{variant:"alarm",type:"warning",title:jr(L)}),X.createElement(ti,{size:12})),X.createElement(gm,null,W.map(($,Q)=>{let G=l.find(Fe=>Fe.name===$),oe=`wallet-${Q}`,le=Q===W.length-1,pe=le&&A&&d?.customDestination!==!1;return X.createElement("div",{key:oe},X.createElement(sm,null,X.createElement(bs,{variant:"title",size:"xmedium"},ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:G?.shortName}})),X.createElement(bs,{variant:"label",color:"$neutral700",size:"medium"},ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:G?.shortName}}))),X.createElement(ti,{size:24}),X.createElement(lm,null,X.createElement(xs,{chain:$,isSelected:fe,selectWallet:Ve,limit:pk,onShowMore:()=>T(G?.name??""),onConnect:Fe=>{H($,Fe)}})),!le&&X.createElement(ti,{size:32}),pe&&X.createElement(am,{blockchain:A,open:E,handleOpenChange:z}))}))))}i(Am,"ConfirmWalletsModal");import{i18n as Ak}from"@lingui/core";import{Alert as Nk,Button as Wk,InfoIcon as Bk}from"@rango-dev/ui";import et from"react";import{Alert as mk,Button as dk,Divider as As,NoRouteIcon as fk,RefreshIcon as gk,Typography as Dm}from"@rango-dev/ui";import Re from"react";import{i18n as Nm}from"@lingui/core";var ck=24,uk=60;function Wm(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:Nm.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Nm.t("Reset")}},description:ee().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ee().noResultError.description}}i(Wm,"makeInfo");var Es=(o=>(o[o.small=ck]="small",o[o.large=uk]="large",o))(Es||{}),Is=(o=>(o.small="small",o.large="medium",o))(Is||{});import{styled as oi}from"@rango-dev/ui";var Bm=oi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Mm=oi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Lm=oi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Pm=oi("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=Wm(o,r,()=>a(s,!0),e);return Re.createElement(Bm,null,Re.createElement(fk,{size:Es[n],color:"gray"}),Re.createElement(As,{size:4}),Re.createElement(Dm,{variant:"title",size:Is[n]},ee().noResultError.title),n==="large"&&Re.createElement(As,{size:4}),!!l.description&&Re.createElement(Mm,{size:n},Re.createElement(Dm,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Re.createElement(As,{size:n==="large"?"24":"4"}),!!l.alert&&Re.createElement(Lm,{size:n},Re.createElement(mk,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Re.createElement(dk,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:Re.createElement(Pm,null,Re.createElement(gk,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(bn,"NoResult");import{i18n as En}from"@lingui/core";import{Button as yk,Divider as Sk,MessageBox as Ck,Typography as Tk,WarningIcon as kk}from"@rango-dev/ui";import _t from"react";import{Typography as Om}from"@rango-dev/ui";import Ws from"react";import{darkTheme as hk,styled as ni}from"@rango-dev/ui";var _m=ni("div",{width:"100%"}),Ns=ni("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),$m=ni("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${hk} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Fm=ni("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Um(t){let{title:e,value:o,valueColor:n}=t;return Ws.createElement($m,null,Ws.createElement(Om,{size:"medium",variant:"label",className:"_title"},e),Ws.createElement(Om,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Um,"QuoteErrorsModalItem");function zm(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:B(r.inputUsdValue,4,4)},{title:En.t("Gas cost"),value:B(r.totalFee,2,2)},{title:En.t("Receiving"),value:B(r.outputUsdValue,4,4)},{title:En.t("Price impact"),value:B(r.priceImpact,2,2),valueColor:`${s}500`}];return _t.createElement(R,{footer:_t.createElement(yk,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:_t.createElement(kk,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},_t.createElement(Ck,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),_t.createElement(Ns,null,_t.createElement(Sk,{size:"4"}),_t.createElement(Tk,{size:"small",variant:"title"},En.t("Details")),_t.createElement(Ns,null,l.map((p,u)=>_t.createElement(Um,{key:u,...p})))))}i(zm,"HighValueLossWarningModal");import{i18n as Bs}from"@lingui/core";function Qm(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Bs.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Pt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ee().highValueLossError.title),t.type===1&&(o.title=ee().unknownPriceError.title),t.type===2&&(o.title=Bs.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=Bs.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Qm,"makeAlerts");import{i18n as Xo}from"@lingui/core";import{Button as qm,Divider as Hm,MessageBox as vk,Typography as wk}from"@rango-dev/ui";import So from"react";import{useNavigate as xk}from"react-router-dom";function Gm(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=xk(),u=e??o;return So.createElement(R,{anchor:"bottom",open:n,prefix:So.createElement(qm,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>p("../"+_.settings)},So.createElement(wk,{variant:"label",size:"medium",color:"$neutral900"},Xo.t("Change settings"))),container:N(),onClose:r},So.createElement(vk,{type:"warning",title:s.type===3?Xo.t("High slippage"):Xo.t("Low slippage"),description:s.type===3?Xo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Xo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},So.createElement(Hm,{size:18}),So.createElement(Hm,{size:32}),So.createElement(qm,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Xo.t("Confirm anyway"))))}i(Gm,"SlippageWarningModal");import{Button as bk,MessageBox as Ek,WarningIcon as Ik}from"@rango-dev/ui";import ri from"react";function Vm(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return ri.createElement(R,{footer:ri.createElement(bk,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:ri.createElement(Ik,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},ri.createElement(Ek,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(Vm,"UnknownPriceWarningModal");function In(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},h=o?.type===0||o?.type===1,f=Qm(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(_m,null,et.createElement(Nk,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:et.createElement(Fm,{onClick:l},et.createElement(Bk,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:et.createElement(Wk,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:c},Ak.t("Change"))}})),e&&et.createElement(et.Fragment,null,e.type===0&&et.createElement(zm,{...m,warning:e}),(e.type===3||e.type===2)&&et.createElement(Gm,{...m,warning:e}),e.type===1&&et.createElement(Vm,{...m,warning:e})))}i(In,"QuoteWarningsAndErrors");import lv from"bignumber.js";import Si from"react";import{i18n as Co}from"@lingui/core";import{Alert as Xk,Divider as Zo,FullExpandedQuote as Yk,InfoIcon as Zk,NumericTooltip as bd,QuoteTag as Jk,StepDetails as Rk,TokenAmount as ev,Typography as Jo}from"@rango-dev/ui";import Os from"bignumber.js";import O,{useRef as tv,useState as ov}from"react";import{styled as Ms}from"@rango-dev/ui";var Ls=Ms("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Km=Ms("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),jm=Ms("div",{width:"100%",display:"flex"});import*as ii from"@radix-ui/react-collapsible";import{Button as Mk,css as An,darkTheme as we,Image as Xm,styled as ze,Typography as Lk}from"@rango-dev/ui";var Pk=300,Ym=ze(ii.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Zm=An({padding:"$10 $15"}),Jm=ze(Mk,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Rm=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",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),ed=An({width:"100%",padding:"$15 $15 $10 $15"}),td=An({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Yo=An({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),od=An({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),nd=ze(ii.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:{[`& ${Xm}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Xm}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),rd=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"}}}}),id=ze(Yr,{width:"100%",background:"inherit"}),Ps=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Pk}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),HF=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),ad=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),sd=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ds=ze(Lk,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),ld=ze("div",{display:"flex",flexWrap:"wrap"}),_s=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"}}}}),pd=ze("div",{display:"flex"}),ai=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as At}from"@lingui/core";import{ChevronDownIcon as _k,CloseIcon as $k,Divider as pi,IconButton as Fk,NumericTooltip as Ok,QuoteCost as Uk,Typography as ht}from"@rango-dev/ui";import Y,{useState as dd}from"react";import{css as Dk,styled as si}from"@rango-dev/ui";var li=si("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),$s=si("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),cd=si("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),ud=si("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),md=Dk({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var zk=i(t=>t.fee.isZero()?null:Y.createElement(li,null,Y.createElement(ht,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(ht,{variant:"label",size:"medium"},"$",B(t.fee,4,4))),"NonPayableFee");function fd(t){let[e,o]=dd(!1),[n,r]=dd(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],h=N(),f=Xc(m);return Y.createElement(Y.Fragment,null,Y.createElement(Uk,{onClickFee:c?d=>{d.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?At.t("View more info"):void 0,tooltipContainer:h}),Y.createElement(R,{container:h,open:e,header:Y.createElement(ud,null,Y.createElement(ht,{variant:"title",size:"medium"},At.t("Gas & Fee Explanation")),Y.createElement(Fk,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement($k,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(cd,null,Y.createElement(ht,{variant:"title",size:"small"},At.t("Details")),Y.createElement(pi,{size:10}),Object.entries(f.payable).flatMap(([d,g])=>g.map((C,S)=>{let T=`payable-fee-${S}`,k=_a(C);return Y.createElement(li,{key:T},Y.createElement(ht,{variant:"label",size:"medium",color:"neutral600"},Ma(d,At.t)),Y.createElement(Ok,{content:C.amount,container:h},Y.createElement(ht,{variant:"label",size:"medium"},B(C.amount,2,2)," ",C.asset.symbol," ($",B(k,4,4),")")))})),Y.createElement(li,{className:"total_payable_fee"},Y.createElement(ht,{variant:"label",size:"medium"},At.t("Total Payable Fee")),Y.createElement(ht,{variant:"label",size:"medium"},"$",B(l,4,4))),Y.createElement($s,null),Object.keys(f.nonePayable).length&&Y.createElement(Rr,{triggerAnchor:"bottom",onClickTrigger:()=>r(d=>!d),trigger:Y.createElement("div",{className:md()},Y.createElement(ht,{size:"small",variant:"body",color:"neutral700"},n?At.t("Hide non-payable fees"):At.t("Show non-payable fees")),Y.createElement(pi,{size:4,direction:"horizontal"}),Y.createElement(Zr,{orientation:n?"up":"down"},Y.createElement(_k,{size:12,color:"gray"}))),open:n},Y.createElement(ht,{size:"small",variant:"title"},At.t("Description")),Y.createElement(pi,{size:4}),Y.createElement(ht,{size:"small",variant:"body",color:"neutral700"},At.t(`The following fees are considered in the transaction output and
1
+ var qh=Object.defineProperty;var i=(t,e)=>qh(t,"name",{value:e,configurable:!0});import{EventSeverity as rj,RouteEventType as ij,StepEventType as aj,StepExecutionBlockedEventStatus as sj,StepExecutionEventStatus as lj}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as cj}from"@rango-dev/wallets-core/legacy";import{useWallets as ei,Events as mj}from"@rango-dev/wallets-react";import{Networks as fj,WalletTypes as gj}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as yj}from"rango-types";import{Divider as FS}from"@rango-dev/ui";import po,{useEffect as OS,useRef as US,useState as $c}from"react";import{WalletState as Hh}from"@rango-dev/ui";import{useWallets as Gh}from"@rango-dev/wallets-react";import{useReducer as Vh}from"react";import{Namespace as na}from"@rango-dev/wallets-shared";function cp(t){return t.map(e=>{switch(e){case"evm":return na.Evm;case"solana":return na.Solana;case"cosmos":return na.Cosmos}throw new Error("Can not convert this common namespace key to a proper legacy key.")})}i(cp,"convertCommonNamespacesKeysToLegacyNamespace");function up(t){return!!t.derivationPath}i(up,"isStateOnDerivationPathStep");function mp(t){return!!t.namespace}i(mp,"isStateOnNamespace");var nr={status:"init",namespace:null,derivationPath:null};function dp(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(dp,"reducer");function Ht(){let{state:t,disconnect:e,connect:o}=Gh(),[n,r]=Vh(dp,nr),a=i(async(c,m,h)=>{r({type:"reset"});try{let f=m?.map(d=>({...d,network:void 0}));return await o(c,f),{status:"connected"}}catch(f){let d=f?.message?`Error: ${f.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:f})}},"runConnect"),s=i(async(c,m)=>{if(c.state===Hh.DISCONNECTED){if(!!c.isHub){let C=c.properties?.find(T=>T.name==="detached");if(C&&c.state!=="connected"){let T=cp(C.value);return r({type:"needsNamespace",payload:{providerType:c.type,providerImage:c.image,availableNamespaces:T,singleNamespace:!1}}),{status:"namespace"}}}if(!c.namespaces)return await a(c.type,void 0,m);let d=c.namespaces.length>1,g=c.needsDerivationPath;return d?(r({type:"needsNamespace",payload:{providerType:c.type,providerImage:c.image,availableNamespaces:c.namespaces,singleNamespace:c.singleNamespace}}),{status:"namespace"}):g?(r({type:"needsDerivationPath",payload:{providerType:c.type,providerImage:c.image,namespace:c.namespaces[0]}}),{status:"derivation-path"}):await a(c.type,c.namespaces.map(C=>({namespace:C})),m)}return m?.disconnectIfConnected?(await u(c.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),l=i(async(c,m)=>{let h=c.singleNamespace,f=c.needsDerivationPath,d=m[0];if(!d)throw new Error("To confirm a namespace, you should select at least one namespace.");if(h&&f)return r({type:"needsDerivationPath",payload:{providerType:c.type,providerImage:c.image,namespace:d}}),{status:"derivation-path"};if(!mp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let g=n.namespace.providerType,C=m.map(S=>({namespace:S}));return await a(g,C)},"handleNamespace"),p=i(async c=>{if(!c)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!up(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let m=n.derivationPath.providerType,f=[{namespace:n.derivationPath.namespace,derivationPath:c}];return await a(m,f)},"handleDerivationPath"),u=i(async c=>{let m=t(c);return m.connected||m.connecting?(await e(c),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:l,handleDerivationPath:p,getState:()=>n,resetState:c=>{r(c==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Ht,"useStatefulConnect");import{WalletState as va}from"@rango-dev/ui";import{useWallets as eS}from"@rango-dev/wallets-react";import{detectMobileScreens as tS,KEPLR_COMPATIBLE_WALLETS as oS,WalletTypes as Lo}from"@rango-dev/wallets-shared";import{useCallback as nS,useEffect as rS}from"react";import jy,{createContext as Xy,useContext as Yy,useEffect as Zy,useRef as Jy}from"react";import{create as Vy}from"zustand";import{persist as Ky}from"zustand/middleware";var ia=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()}},Io=new ia;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 fp(t,e){return e.find(o=>o.name===t)?.logo}i(fp,"getBlockchainImage");function rn(t,e){return e.find(o=>o.id===t)?.title}i(rn,"getSwapperDisplayName");function an(t,e){return e.find(o=>o.name===t)??null}i(an,"findBlockchain");function aa(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(aa,"isTokenNative");function lt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(lt,"createTokenHash");function Ao(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Ao,"isValidTokenAddress");function sn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=lt(p));let u=o.tokensMapByTokenHash.get(p);u&&(n[p]=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(p=>{l.has(p)||a(o.tokensMapByBlockchainName[p])})}return s.forEach(l=>{let p=r[l];if(!p&&o.tokensMapByBlockchainName?.[l]){a(o.tokensMapByBlockchainName[l]);return}p&&(p.isExcluded?(a(o.tokensMapByBlockchainName[l]),p.tokens.forEach(u=>{let c=lt(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(sn,"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");var sa={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"}},Kh={clientUrl:void 0},jh={liquiditySources:void 0},gp=i((t,e,o)=>({config:{...sa,...t},iframe:Kh,campaignMode:jh,getLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?r.liquiditySources:n.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:n,campaignMode:r}=o();return r.liquiditySources?.length?[]:n},excludeLiquiditySources:()=>{let{config:n,campaignMode:r}=o();return r.liquiditySources?.length?!1:!!n.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:n}=o();return!!n.liquiditySources?.length},updateConfig:n=>{let r=o().config,{_tokensMapByTokenHash:a,_tokensMapByBlockchainName:s}=o(),l=sn({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=sn({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});Io.set("supportedSourceTokens",l),Io.set("supportedDestinationTokens",p),e({config:{...r,...n}})},updateCampaignMode:(n,r)=>{let a=o().campaignMode;e({campaignMode:{...a,[n]:r}})},updateIframe:(n,r)=>{let a=o().iframe;e({iframe:{...a,[n]:r}})}}),"createConfigSlice");import{TransactionType as hp}from"rango-types";var yp=[hp.EVM,hp.SOLANA];import{RangoClient as py}from"rango-sdk";import{UI_ID as Xh}from"@rango-dev/ui";var ar="c6381a79-2817-4602-83bf-6a641a409e32",Sp="https://api.rango.exchange",Cp="https://explorer.rango.exchange",De={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Xh};import{BlockchainCategories as oy,WalletState as xt}from"@rango-dev/ui";import{legacyReadAccountAddress as ny}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as ry,getCosmosExperimentalChainInfo as iy,isEvmAddress as ay,KEPLR_COMPATIBLE_WALLETS as rA,Networks as Mp}from"@rango-dev/wallets-shared";import ro from"bignumber.js";import{isCosmosBlockchain as sy}from"rango-types";import Yh from"bignumber.js";var Ce=new Yh(0);import{WalletTypes as Zh}from"@rango-dev/wallets-shared";var Tp=[Zh.LEAP];import{BlockchainCategories as pa,WalletState as ty}from"@rango-dev/ui";import{TransactionType as sr}from"rango-sdk";var kp="Roboto",la=[{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 No(t){return Array.from(new Set(t))}i(No,"removeDuplicateFrom");function ma(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(ma,"areEqual");function Ip(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Ip,"debounce");function Je(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Je,"containsText");function xp(t,e){return t.toLowerCase()===e.toLowerCase()}i(xp,"exactText");function bp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(bp,"startWithText");var N=i(()=>document.getElementById(De.SWAP_BOX_ID),"getContainer"),ln=i(()=>document.getElementById(De.EXPANDED_BOX_ID),"getExpanded");function Ep(t,e,o){let n=!!e&&xp(e,t),r=!!o&&xp(o,t);return n!==r?n?-1:1:0}i(Ep,"compareExactMatchText");function ca(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(ca,"compareContainsText");function ua(t,e,o){let n=!!e&&bp(e,t),r=!!o&&bp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ua,"compareStartWithText");function Ap(t,e,o){if(!o)return 0;let n=Ep(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Ep(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=ua(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ca(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ua(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ca(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=ua(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ca(o,t.address,e.address);if(r!==0)return r}return 0}i(Ap,"compareWithSearchFor");var lr=i((t,e)=>{switch(e){case pa.ALL:return!0;case pa.UTXO:return t===sr.TRANSFER;case pa.OTHER:return t!==sr.TRANSFER&&t!==sr.COSMOS&&t!==sr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Np=i(t=>la.find(o=>o.value===t)?.url,"getFontUrlByName");function Wp(t,e){let o=!!t.find(n=>n.state===ty.CONNECTED);return e===!1&&o}i(Wp,"isSingleWalletActive");import{BigNumber as Bp}from"bignumber.js";var pn=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"),B=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Bp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Bp(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"),cn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function un(t){switch(!0){case t.connected:return xt.CONNECTED;case t.connecting:return xt.CONNECTING;case!t.installed:return xt.NOT_INSTALLED;default:return xt.DISCONNECTED}}i(un,"mapStatusToWalletState");function Lp(t,e,o,n){return o.filter(r=>!Tp.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:l,network:p}=t(r);return s&&(!l||!!n&&p!==n)?!1:n?!!a.find(c=>c.name===n):!0}).map(r=>{let{name:a,img:s,installLink:l,showOnMobile:p,namespaces:u,singleNamespace:c,supportedChains:m,needsDerivationPath:h,properties:f,isHub:d}=e(r),g=No(m.map(S=>S.type)),C=un(t(r));return{title:a,image:s,link:ry(l),state:C,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:g,needsDerivationPath:h,properties:f,isHub:d}})}i(Lp,"mapWalletTypesToWalletInfo");function mr(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(mr,"walletAndSupportedChainsNames");function Pp(t,e,o,n,r){let a=[];function s(p,u){if(!!!a.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};a.push(m)}}i(s,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=ny(p),m=l.length>0,h=l.includes(c),f=c===Mp.Unknown;if(m&&!h&&!f)return;let g=c===Mp.Unknown&&ay(u);if(f&&!g)return;o.includes(c)||g?r?s(c,u.toLowerCase()):l.filter(T=>o.includes(T)).forEach(T=>{s(T,u.toLowerCase())}):s(c,u)}),a}i(Pp,"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:p}=r;p.forEach((u,c)=>{let m=u.from.blockchain,h=u.to.blockchain,f=a===o.swaps.length-1,d=c===p.length-1;(!f&&!d||f&&l!==m||e==="all")&&n.add(m),e==="all"&&n.add(h)})}e==="all"&&n.add(l)}),Array.from(n)}i(io,"getQuoteWallets");function Dp(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dp,"isAccountAndWalletMatched");var _p=i(t=>{let e=Object.values(t).reduce((o,n)=>n.usdValue?o.plus(n.usdValue):o,new ro(Ce));return ly(e.toString())},"calculateWalletUsdValue");function ly(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(ly,"numberWithThousandSeparator");var dr=i((t,e)=>{let o=iy(Object.entries(t).map(([,n])=>n).filter(sy));return o&&o[e]?.experimental},"isExperimentalChain");function fr(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=B(e,8,8),r=o?B(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(fr,"formatBalance");function $p(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new ro(t.usdValue).shiftedBy(-t.decimals):Ce,n=e&&e.usdValue?new ro(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 ro(t.amount).shiftedBy(-t.decimals):Ce,n=e&&e.amount?new ro(e.amount).shiftedBy(-e.decimals):Ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i($p,"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 Fp(t){return t.sort((e,o)=>+(o.state===xt.CONNECTED)-+(e.state===xt.CONNECTED)||+(o.state===xt.DISCONNECTED||o.state===xt.CONNECTING)-+(e.state===xt.DISCONNECTED||e.state===xt.CONNECTING))}i(Fp,"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 Op({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Op,"getAddress");var Up=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function zp(t){return t.map(e=>e.state).join("-")}i(zp,"hashWalletsState");function Qp(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(Qp,"filterBlockchainsByWalletTypes");function qp(t,e){return e===oy.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(lr(n,e))return!0;return!1})}i(qp,"filterWalletsByCategory");var da={API_KEY:ar};function Lt(t){return da[t]||""}i(Lt,"getConfig");function Hp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),da=e,da}i(Hp,"initConfig");var Gp=20,Vp=25,fa="theme-widget",ga=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"),ha=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),Kp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var hr,bt=i(()=>hr||(hr=new py(Lt("API_KEY"),Lt("BASE_URL")),hr),"httpService");function yr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return No(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(l=>l.swapperGroup===a);if(s){let l=!0;o&&(l=o.some(p=>p===s.swapperGroup)),l&&s.types.map(p=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:p,selected:!e.includes(s.swapperGroup)})})}}),n}i(yr,"getUniqueSwappersGroups");function jp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(jp,"sortLiquiditySourcesByGroupTitle");function Ke(t,e){return e?.[t]==="hidden"}i(Ke,"isFeatureHidden");function Xp(t,e){return e?.[t]==="enabled"}i(Xp,"isFeatureEnabled");function Wo(t,e){return e?.[t]==="enabled"}i(Wo,"isRoutingEnabled");var Yp=i((t,e,o)=>Ke("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var Zp=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 p=ir({config:a}),u=r;return p.length>0&&(u=u.filter(c=>p.includes(c.name))),u.filter(c=>yp.includes(c.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(p=>!(s.length>0&&!s.includes(p.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),l=Array.from(n.values()),p=e()._blockchainsMapByName;if(!o||!o.type)return l;let u=o.type==="source"?"from":"to",c=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",m=Io.get(c);m?.length||(m=sn({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Io.set(c,m)),m=Yp(m,s,a.features);let h=e().blockchains({type:o.type});return m.filter(d=>o.blockchain&&d.blockchain!==o.blockchain||!h.some(g=>g.name===d.blockchain)?!1:o.searchFor?!!(Je(d.symbol,o.searchFor)||Je(d.address||"",o.searchFor)||Je(d.name||"",o.searchFor)):!0).sort((d,g)=>{let C=e().isTokenPinned(d,o.type),S=e().isTokenPinned(g,o.type);if(C!==S)return C?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(d),L=o.getBalanceFor(g),b=$p(I,L);if(b!==0)return b}let T=p.get(d.blockchain),k=p.get(g.blockchain),v=aa(d,T),w=aa(g,k);if(v!==w)return v?-1:1;if(d.isPopular!==g.isPopular)return d.isPopular?-1:1;if(o.searchFor){let I=Ap(d,g,o.searchFor);if(I)return I}return d.isSecondaryCoin!==g.isSecondaryCoin?d.isSecondaryCoin?1:-1:T&&k?T.sort-k.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 c=a?.includes(u.swapperGroup);return s||!a||a.length===0?!c:c}).sort(jp)},fetch:async()=>{try{let{routing:o}=e().config,n=Wo("enableCentralizedSwappers",o),r=await bt().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,l={},p=[],u=r.popularTokens,c=r.swappers.filter(f=>f.enabled),m=new Set;r.tokens.forEach(f=>{m.add(f.blockchain),p.push(f)}),r.blockchains.sort((f,d)=>f.sort-d.sort).forEach(f=>{f.enabled&&m.has(f.name)&&a.set(f.name,f)}),p.forEach(f=>{let d=lt(f);l[f.blockchain]||(l[f.blockchain]=[]),s.set(d,f),l[f.blockchain].push(d)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:l,_popularTokens:u,_swappers:c})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as cy,Catalonia as uy,Chinese as Jp,Denmark as my,English as dy,Finland as fy,French as gy,German as hy,Greece as yy,Hungary as Sy,India as Cy,Indonesian as Ty,Italian as ky,Japanese as vy,Korea as wy,Lithuania as xy,Malay as by,Netherlands as Ey,Pakistan as Iy,Philippines as Ay,Poland as Ny,Portuguese as Wy,Russian as By,SaudiArabia as My,Serbia as Ly,Slovakia as Py,SouthAfrica as Dy,Spanish as _y,Swahili as $y,Swedish as Fy,Thai as Oy,Turkish as Uy,Ukrainian as zy,Vietnamese as Qy}from"@rango-dev/ui";var Rp=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:Dy},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:My},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:cy},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:uy},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Jp},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Jp},{title:"Danish",label:"Dansk",local:"da",SVGFlag:my},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Ey},{title:"English",label:"English",local:"en",SVGFlag:dy},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:Ay},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:fy},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:gy},{title:"German",label:"Deutsch",local:"de",SVGFlag:hy},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:yy},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:Cy},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:Sy},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:Ty},{title:"Italian",label:"Italiana",local:"it",SVGFlag:ky},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:vy},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:wy},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:xy},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:by},{title:"Polish",label:"Polski",local:"pl",SVGFlag:Ny},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:Wy},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:By},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:Ly},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:Py},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:_y},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:$y},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:Fy},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:Oy},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:Uy},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:zy},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:Iy},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:Qy}],Bo="en";var ec=[.5,1,3],tc=1,oc=5,nc=100,rc=0;var ic=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:tc,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,l)=>{let p=s===o,u=l<=9;return p&&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=No(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=Ke("theme",n),s=Ke("language",n),l=Ke("liquiditySource",n),p=r?.singleTheme,u=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...p&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Bo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||Bo}})},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 cc from"bignumber.js";import qy from"mitt";var ge=qy(),Hy={on:ge.on,off:ge.off};import{WidgetEvents as ac}from"@rango-dev/queue-manager-rango-preset";var Sa=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Sa||{}),Ca=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(Ca||{}),Ta=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(Ta||{}),Mo=(a=>(a[a.RouteEvent=ac.RouteEvent]="RouteEvent",a[a.StepEvent=ac.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Mo||{});import Gy from"bignumber.js";function mn(t){return`${t.blockchain}-${t.address}-${t.symbol}`}i(mn,"createAssetKey");function ka(t,e){return`${mn(e)}-${t}`}i(ka,"createBalanceKey");function Sr(t){let[e,o,n]=t.split("-");return{address:o,blockchain:e,symbol:n}}i(Sr,"extractAssetFromBalanceKey");function sc(t,e){let o={};return t.balances?.forEach(n=>{let r=ka(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,l=e().findToken(n.asset)?.usdPrice,p=l?new Gy(l??Ce).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:p};o[r]=u}),o}i(sc,"createBalanceStateForNewAccount");function lc(t,e){for(let o in e){let n=Sr(o),r=mn(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(lc,"updateAggregatedBalanceStateForNewAccount");function pc(t,e){let o=Sr(e),n=mn(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(pc,"removeBalanceFromAggregatedBalance");var uc=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=>Dp(a,s)));if(r.length>0){let a=r.map(s=>{let l=!n.some(p=>p.chain===s.chain&&p.selected&&p.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(p=>!a.some(u=>u.walletType===p.walletType&&u.chain===p.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=>{ge.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o),e().fetchBalances(o)},removeBalancesForWallet:o=>{let n=e().connectedWallets.filter(p=>p.walletType===o);e().connectedWallets.forEach(p=>{p.walletType!==o&&(n=n.filter(u=>!(u.chain===p.chain&&u.address===p.address)))});let r={},a=e()._aggregatedBalances,s=e()._balances;Object.keys(s).forEach(p=>{let u=Sr(p),c=!!n.find(m=>ka(m.address,{address:u.address,blockchain:m.chain,symbol:u.symbol})===p);c||(r[p]=s[p]),c&&(a=pc(a,p))}),t({_balances:r,_aggregatedBalances:a})},disconnectWallet:o=>{if(e().connectedWallets.find(r=>r.walletType===o)){ge.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(p=>({address:p.address,blockchain:p.chain})),l=(await bt().getWalletsDetails(a)).wallets;if(l){let{retryOnFailedBalances:p=!0}=n||{};if(p){let m=l.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));m.length>0&&e().fetchBalances(m,{retryOnFailedBalances:!1})}let u={},c=e()._aggregatedBalances;l.forEach(m=>{if(m.failed)return;let h=sc(m,e);c=lc(c,h),u={...u,...h}}),t(m=>({_balances:{...m._balances,...u},_aggregatedBalances:c})),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=mn(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let p=a[0];return n[p]}let l=n[a[0]];return a.forEach(p=>{let u=n[p],c=new cc(u.amount),m=new cc(l.amount);c.isGreaterThan(m)&&(l=u)}),l}}),"createWalletsSlice");function mc(t){return Vy()(Ky((...e)=>({...uc(...e),...Zp(...e),...ic(...e),...gp(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(mc,"createAppStore");var dc=Xy(null);function y(){let t=Yy(dc);if(Zy(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function fc(t){let e=Jy();return e.current||(e.current=mc(t.config)),jy.createElement(dc.Provider,{value:e.current},t.children)}i(fc,"AppStoreProvider");import{allProviders as Ry}from"@rango-dev/provider-all";import{defineVersions as Cr,pickVersion as gc,Provider as Tr}from"@rango-dev/wallets-core";function kr(t,e){let o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0},n=Ry(o);if(t){let r=[];return t.forEach(a=>{if(typeof a=="string"){let s=hc(n,e).find(l=>l instanceof Tr?l.id===a:l.config.type===a);s?s instanceof Tr?r.push(Cr().version("1.0.0",s).build()):r.push(Cr().version("0.0.0",s).build()):console.warn(`Couldn't find ${a} provider. Please make sure you are passing the correct name.`)}else a instanceof Tr?r.push(Cr().version("1.0.0",a).build()):r.push(Cr().version("0.0.0",a).build())}),r}return n}i(kr,"matchAndGenerateProviders");function hc(t,e){let{experimentalWallet:o="enabled"}=e||{};return t.map(n=>{let r=o=="disabled"?"0.0.0":"1.0.0";try{return gc(n,r)[1]}catch{return gc(n,"0.0.0")[1]}})}i(hc,"pickVersionWithFallbackToLegacy");function yc(t,e){return hc(kr(t,e),e).map(r=>r instanceof Tr?r.id:r.config.type)}i(yc,"configWalletsToWalletName");var iS=Object.values(Lo);function dt(t){let{chain:e}=t||{},{config:o,connectedWallets:n}=y(),{state:r,getWalletInfo:a}=eS(),s=y().blockchains(),{handleDisconnect:l}=Ht(),p=yc(o?.wallets,{trezorManifest:o?.trezorManifest,walletConnectProjectId:o?.walletConnectProjectId,walletConnectListedDesktopWalletLink:o.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,tonConnect:o.tonConnect})||iS,u=Lp(r,a,p,e);u=tS()?u.filter(g=>g.showOnMobile!==!1&&r(g.type).installed):u;let c=Fp(u),m=i(g=>!n.find(C=>C.walletType===g&&C.chain===e),"isExperimentalChainNotAdded"),h=nS(()=>{let g=u?.filter(C=>C.state===va.CONNECTING)||[];for(let C of g)l(C.type)},[zp(u)]);rS(()=>()=>{h()},[]);let f=i(g=>{let C=g.find(T=>T.type===Lo.DEFAULT);return!C||C.state===va.NOT_INSTALLED?!1:g.filter(T=>T.state!=va.NOT_INSTALLED&&![Lo.DEFAULT,Lo.WALLET_CONNECT_2,Lo.LEDGER].includes(T.type)&&a(T.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i((g,C,S)=>dr(S,C)&&m(g)&&!oS.includes(g)||g==Lo.DEFAULT&&!f(u),"shouldExcludeWallet");return{list:c.filter(g=>!d(g.type,e??"",s)),terminateConnectingWallets:h}}i(dt,"useWalletList");import{Modal as pS}from"@rango-dev/ui";import cS from"react";import{create as lS}from"zustand";var Sc="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(Sc),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 sS=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"),Po=sS;var ae=Po(lS()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",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})}}))),ao=new dn({onInit:()=>ae.setState({tabManagerInitiated:!0}),onClaim:()=>ae.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>ae.setState({isActiveTab:!1})});function R(t){let{watermark:e}=ae();return cS.createElement(pS,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as wa}from"@lingui/core";import{Button as hS,Checkbox as yS,Divider as SS,Image as Ac,ListItemButton as CS,MessageBox as TS,Radio as kS,RadioRoot as vS}from"@rango-dev/ui";import{namespaces as Nc}from"@rango-dev/wallets-shared";import ke,{useMemo as wS,useState as xS}from"react";import{css as uS,darkTheme as Tc,IconButton as mS,styled as so}from"@rango-dev/ui";var Et=so(mS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Tc} &`]:{backgroundColor:"$neutral"}}}),kc=so("div",{position:"absolute",background:"$secondary500",[`.${Tc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Gt=so("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vc=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"}}}}),wc=so("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xc=so("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),bc=uS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),vr=so("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as dS,styled as wr}from"@rango-dev/ui";var cN=wr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Do=wr("div",{position:"relative"}),fS=dS({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),_o=wr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${fS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),xr=wr("div",{"& img":{borderRadius:"50%"}});function Ec(t,e){return t.find(o=>o.name===e)?.logo}i(Ec,"getBlockchainLogo");import{styled as gS}from"@rango-dev/ui";var Ic=gS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function fn(t){let{singleNamespace:e,availableNamespaces:o,providerImage:n}=t.value,[r,a]=xS([]),s=y().blockchains(),l=wS(()=>o?.map(c=>({name:c,logo:Ec(s,Nc[c].mainBlockchain),title:Nc[c].title})),[o]),p=i(c=>{a(e?[c]:m=>m.includes(c)?m.filter(h=>h!==c):m.concat(c))},"onSelect"),u=i(c=>e?ke.createElement(vS,{value:r?.[0]},c):ke.createElement(ke.Fragment,null,c),"wrapRadioRoot");return ke.createElement(ke.Fragment,null,ke.createElement(SS,{size:20}),ke.createElement(TS,{type:"info",title:wa.t("Select chain types"),description:wa.t("This wallet supports multiple chains. Select which chain you'd like to connect to."),icon:ke.createElement(Do,null,ke.createElement(vr,null,ke.createElement(Ac,{src:n,size:45})),ke.createElement(_o,null))}),ke.createElement(Ic,null,u(ke.createElement(ke.Fragment,null,l?.map(c=>ke.createElement(CS,{key:c.name,id:c.name,title:c.title,hasDivider:!0,style:{height:60},onClick:()=>p(c.name),start:ke.createElement(Ac,{src:c.logo,size:22}),end:e?ke.createElement(kS,{value:c.name}):ke.createElement(yS,{checked:r.includes(c.name)})}))))),ke.createElement(hS,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},wa.t("Confirm")))}i(fn,"Namespaces");import{i18n as $o}from"@lingui/core";import{Button as IS,Divider as Mc,Image as AS,MessageBox as NS,Select as WS,TextField as BS}from"@rango-dev/ui";import Oe,{useEffect as MS,useState as Lc}from"react";import{namespaces as bS}from"@rango-dev/wallets-shared";var br={id:"custom",label:"Custom",generateDerivationPath:t=>t};function xa(t){let e=t?bS[t].derivationPaths:null;return e?[...e,br]:[]}i(xa,"getDerivationPaths");import{styled as Wc,Typography as ES}from"@rango-dev/ui";var Bc=Wc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),ba=Wc(ES,{paddingLeft:"$10"}),Ea={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Pc="0";function gn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Lc(null),[l,p]=Lc(Pc),u=a===br.id,c=xa(o),m=i(({value:f})=>{let d=c?.find(g=>g.id===f);d&&(a===br.id&&Number.isNaN(Number(l))&&p(Pc),s(d.id))},"handleDerivationPathItemClick"),h=i(()=>{let f=c.find(d=>d.id===a);if(f)e(f.generateDerivationPath(l));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return MS(()=>{s(xa(o)[0]?.id||null)},[o]),Oe.createElement(Oe.Fragment,null,Oe.createElement(Mc,{size:20}),Oe.createElement(NS,{type:"info",title:$o.t("Select Derivation Path"),description:$o.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:Oe.createElement(Do,null,Oe.createElement(xr,null,Oe.createElement(AS,{src:n,size:45})),Oe.createElement(_o,null))}),Oe.createElement(Bc,null,Oe.createElement(ba,{variant:"body",size:"xsmall",color:"$neutral600"},$o.t("Choose Derivation Path Template")),Oe.createElement(WS,{value:a||"",options:c.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:m,styles:{trigger:Ea}}),Oe.createElement(Mc,{size:20}),Oe.createElement(ba,{variant:"body",size:"xsmall",color:"$neutral600"},u?$o.t("Enter Path"):$o.t("Enter Index")),Oe.createElement(BS,{type:u?"text":"number",variant:"contained",value:l,onChange:f=>p(f.target.value),style:Ea})),Oe.createElement(IS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!c||!a||!l},$o.t("Confirm")))}i(gn,"DerivationPath");import{i18n as Fo}from"@lingui/core";import{Image as LS,MessageBox as Ia,WalletState as PS}from"@rango-dev/ui";import{useWallets as DS}from"@rango-dev/wallets-react";import lo from"react";function Aa(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=DS();return un(a(n))===PS.CONNECTED?lo.createElement(Ia,{type:"success",title:Fo.t("Wallet Connected"),description:Fo.t("Your wallet is connected, you can use it to swap.")}):o?lo.createElement(Ia,{type:"error",title:Fo.t("Failed to Connect"),description:o||Fo.t("Your wallet is not connected. Please try again.")}):lo.createElement(Ia,{type:"loading",title:Fo.t("Connecting to your wallet"),description:Fo.t("Click connect in your wallet popup."),icon:lo.createElement(Do,null,lo.createElement(xr,null,lo.createElement(LS,{src:r,size:45})),lo.createElement(_o,null))})}i(Aa,"ConnectStatus");import{i18n as Na}from"@lingui/core";import{Button as _S,Divider as Dc,MessageBox as $S}from"@rango-dev/ui";import Er from"react";function Wa(t){let{displayName:e,onConfirm:o}=t;return Er.createElement($S,{title:Na.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Na.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},Er.createElement(Dc,{size:18}),Er.createElement(Dc,{size:32}),Er.createElement(_S,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Na.t("Confirm")))}i(Wa,"ExperimentalChain");function _c(t,e){return t().status==="init"&&!!e}i(_c,"isOnStatus");function hn(t){return t().status==="namespace"}i(hn,"isOnNamespace");function yn(t){return t().status==="derivationPath"}i(yn,"isOnDerivationPath");var zS=3e3,QS=300;function co(t){let e=US(),[o,n]=$c(!1),[r,a]=$c(),s=i(S=>{a(S.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=dt(),{handleConnect:p,handleDerivationPath:u,handleNamespace:c,getState:m,resetState:h}=Ht(),f=i(S=>{c(t.wallet,S).catch(s)},"handleConfirmNamespaces"),d=i(S=>{if(!S)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");u(S).catch(s)},"handleDerivationPathConfirm"),g=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState");return OS(()=>{if(t.wallet){C();let S=!1,T=!0,k=i(()=>{setTimeout(()=>{T=!1,S||n(!0)},QS)},"beforeConnecting"),v=i(w=>{let I=w.status==="connected",L=["disconnected","disconnected-unhandled"].includes(w.status);["namespace","derivation-path"].includes(w.status)||(S=!0),I&&!T?e.current=setTimeout(g,zS):L&&g(),t.onConnect&&t.onConnect(w)},"afterConnected");k(),p(t.wallet,{disconnectIfConnected:!0}).then(v).catch(s)}},[t.wallet]),po.createElement(R,{open:o,onClose:g,onExit:()=>{C(),l(),t.onClose&&t.onClose()},container:N()},_c(m,t.wallet)&&po.createElement(po.Fragment,null,po.createElement(Aa,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),po.createElement(FS,{direction:"vertical",size:32})),hn(m)&&po.createElement(fn,{onConfirm:f,value:m().namespace}),yn(m)&&po.createElement(gn,{onConfirm:d,value:m().derivationPath}))}i(co,"StatefulConnectModal");import{Events as Ir,Provider as HS}from"@rango-dev/wallets-react";import{isEvmBlockchain as GS}from"rango-sdk";import Ar,{createContext as VS,useEffect as Oc,useMemo as KS,useRef as Uc}from"react";import{useEffect as qS}from"react";function Fc(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Fc,"hashProviders");function Ba(t,e){let{clearConnectedWallet:o}=y(),n=kr(t,e);return qS(()=>{o(),n=kr(t,e)},[Fc(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Ba,"useWalletProviders");var Nr=VS({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function jS(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=y(),a=y().blockchains(),{newWalletConnected:s,disconnectWallet:l}=y(),p=y().config,u={walletConnectProjectId:p?.walletConnectProjectId,trezorManifest:p?.trezorManifest,tonConnect:p.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,experimentalWallet:t.config.features?.experimentalWallet},{providers:c}=Ba(p.wallets,u),m=Uc(),h=Uc();Oc(()=>{n().catch(console.log)},[]),Oc(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:p,dappConfig:t.config})},[t.config,r]);let f=a.filter(GS).map(S=>S.name),d=i((S,T,k,v,w)=>{if(T===Ir.ACCOUNTS)if(k){let I=mr(w.supportedBlockchains),L=Pp(S,k,f,I,w.isContractWallet);L.length&&s(L)}else l(S),h.current?h.current(S):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?");if(T===Ir.ACCOUNTS&&v.connected||T===Ir.ACCOUNTS&&w.isHub){let I=`${S}-${v.network}-${k}`;m.current?m.current(I):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(T===Ir.NETWORK&&v.network){let I=`${S}-${v.network}`;m.current?m.current(I):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(S,T,k,v,w)},"onUpdateState"),g=ae.use.isActiveTab(),C=KS(()=>({onConnectWallet:S=>{m.current=S},onDisconnectWallet:S=>{h.current=S}}),[]);return Ar.createElement(Nr.Provider,{value:C},Ar.createElement(HS,{allBlockChains:a,providers:c,onUpdateState:d,autoConnect:!!g,configs:{isExperimentalEnabled:Xp("experimentalWallet",p.features)}},t.children))}i(jS,"Main");function Wr(t){let{config:e,...o}=t;return Ar.createElement(fc,{config:e},Ar.createElement(jS,{...o,config:e}))}i(Wr,"WidgetWallets");import oa from"react";import XS,{Fragment as YS}from"react";import{MemoryRouter as ZS,useInRouterContext as JS}from"react-router";function zc({children:t}){let o=JS()?YS:ZS;return XS.createElement(o,null,t)}i(zc,"AppRouter");import{I18nManager as ME}from"@rango-dev/ui";import sp from"react";import Le from"react";import{useRoutes as SE}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 zo,useRef as Or}from"react";import je from"bignumber.js";import{create as tC}from"zustand";import{subscribeWithSelector as oC}from"zustand/middleware";import{getLastSuccessfulStep as eC}from"@rango-dev/queue-manager-rango-preset";import SB from"bignumber.js";function Ma(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(Ma,"getFeeLabel");var La=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Qc=30;import{i18n as ft}from"@lingui/core";import{RouteEventType as nB}from"@rango-dev/queue-manager-rango-preset";import Ue from"bignumber.js";import{PendingSwapNetworkStatus as Mr}from"rango-types";import{i18n as _e}from"@lingui/core";var ee=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 qc(t){switch(t.type){case 0:return t.diagnosisMessage??ee().noResultError.title;case 1:return ee().genericServerError;default:return""}}i(qc,"getQuoteErrorMessage");import{i18n as Br}from"@lingui/core";var uo=i(()=>({connectWallet:Br.t("Connect Wallet"),swap:Br.t("Swap"),swapAnyway:Br.t("Swap anyway"),ethWarning:Br.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Hc(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Ue(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Ue(1e3)))??!1}i(Hc,"hasHighValueLoss");function Gc(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(Gc,"hasLimitError");function Vc(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Ue(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Ue(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.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=ft.t({id:"Required: >= {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ft.t({id:"Required: > {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ft.t({id:"Required: <= {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ft.t({id:"Required: < {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=ee().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Vc,"getLimitErrorMessage");function Kc(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=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}:p?{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(Kc,"getSwapButtonState");function Pa(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(Ce))&&e&&e!=="0"&&n!==0)}i(Pa,"canComputePriceImpact");function Da(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(Da,"getUsdFeeOfStep");function Lr(t,e){return t.reduce((o,n)=>o.plus(Da(n,e)),Ce)}i(Lr,"getTotalFeeInUsd");function _a(t){let e=Ce;return e=e.plus(new Ue(t.amount).multipliedBy(t.price||0)),e}i(_a,"getUsdFee");function jc(t){return t.reduce((e,o)=>e.plus(_a(o)),Ce)}i(jc,"getTotalFeesInUsd");function Xc(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(Xc,"getFeesGroup");function Yc(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(Yc,"checkSlippageErrors");function Zc(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(Zc,"checkSlippageWarnings");function Pr(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(Pr,"getMinRequiredSlippage");function Jc(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Jc,"hasProperSlippage");function Rc(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:h,destination:f}=t,d=a?.reduce((S,T)=>(S[T.chain]=T.address,S),{}),g=[];return r?.forEach(S=>{g.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:h??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:g,selectedWallets:d??{},slippage:u.toString(),...f&&{destination:f},...p&&{swapperGroups:s.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(Rc,"createQuoteRequestBody");function eu(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(eu,"getWalletsForNewSwap");function Oo(t){return t?.outputAmount||null}i(Oo,"getQuoteOutputAmount");function tu(t,e){return new Ue(e).div(new Ue(t)).minus(1).multipliedBy(100).toNumber()}i(tu,"getPercentageChange");function ou(t,e){let o=Oo(t),n=Oo(e);if(!o||!n)return!1;let r=pt(o,n);return r?r<=-1:!0}i(ou,"isOutputAmountChangedALot");function nu(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=>pu(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=B(new Ue(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=B(new Ue(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=ft.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ft.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ft.t(" for input and network fee")),ft.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:u,symbol:l,reason:c,currentAmount:p,blockchain:st(s.asset.blockchain,o)}})})}i(nu,"generateBalanceWarnings");function Kt(t,e){return(t?new Ue(t):Ce).multipliedBy(e||0)}i(Kt,"calcOutputUsdValue");function Sn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Mr.NetworkChanged}i(Sn,"isNetworkStatusInWarningState");function ru(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 Mr.WaitingForConnectingWallet:n=n||ft.t("Waiting for connecting wallet");break;case Mr.WaitingForQueue:n=n||ft.t("Waiting for other running tasks to be finished");break;case Mr.WaitingForNetworkChange:n=n||ft.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(ru,"getSwapMessages");function iu(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(iu,"getLastConvertedTokenInFailedSwap");function au(t){return t.status==="failed"}i(au,"shouldRetrySwap");function su(t,e,o,n,r,a){if(!n||t)return!0;let s=io({filter:"all",quote:n}),l=io({filter:"required",quote:n}),p=s.every(m=>r.some(h=>h.chain===m)),u=l.every(m=>r.some(h=>h.chain===m)),c=o&&a?Ao(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(su,"isConfirmSwapDisabled");function lu(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(lu,"isTokensIdentical");function mo(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(mo,"getQuoteToTokenUsdPrice");function Cn(t){return(t?.swaps||[])[0].from.usdPrice}i(Cn,"getQuoteFromTokenUsdPrice");function $a(t,e){let o=t?.swaps||[],n=e?.swaps||[];return o.length!==n.length}i($a,"isNumberOfSwapsChanged");function Fa(t,e){let o=t?.swaps.map(r=>r.swapperId)||[],n=e?.swaps.map(r=>r.swapperId)||[];return!ma(o,n)}i(Fa,"isQuoteSwappersUpdated");function Oa(t,e){let o=t?.swaps.map(r=>r.to.symbol)||[],n=e?.swaps.map(r=>r.to.symbol)||[];return!ma(o,n)}i(Oa,"isQuoteInternalCoinsUpdated");function uu(t,e){return $a(t,e)||Fa(t,e)||Oa(t,e)}i(uu,"isQuoteChanged");function pu(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(pu,"getRequiredBalanceOfWallet");function Pt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Pt,"getPriceImpactLevel");function _r(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=eC(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=an(a?a.toBlockchain:n.fromBlockchain,e),p=an(r.toBlockchain,e),u=o(a?{blockchain:l?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),c=o(s),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}i(_r,"createRetryQuote");function Uo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=Kt(t.requestAmount,Cn(t)||o?.usdPrice),l=Kt(t.outputAmount,mo(t)||n?.usdPrice);if(t&&s&&l){let c=pt(s.toString(),l.toString());if(!!c&&Hc(s,c)){let h=Lr(t?.swaps,r),f=Pt(c);return{type:0,inputUsdValue:s,outputUsdValue:l,priceImpact:c,totalFee:h,warningLevel:f}}}else if(t&&(!s||!l))return{type:1};let p=Pr(t.swaps),u=a>oc;if(Jc(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:Zc(t,a),minRequiredSlippage:p};return null}i(Uo,"generateQuoteWarnings");function pt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:tu(t.toString(),e.toString());return n&&n<0?n:null}i(pt,"getPriceImpact");var mu=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"),$r=i((t,e)=>e.sort((o,n)=>{let r=i(u=>u.scores?.find(c=>c.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let l=o.requestId.toLowerCase(),p=n.requestId.toLowerCase();return l.localeCompare(p)}),"sortQuotesBy"),du=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"),fu=i(t=>{let e=i((o,n)=>{let r=La.indexOf(o.value),a=La.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");var Fr=i((t,e)=>t?.usdPrice?new je(e||Ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),F=Po(tC()(oC(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new je(0),outputUsdValue:new je(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 cn(o.inputAmount)?(e&&(n=e?.outputAmount?new je(e?.outputAmount):null,a=Kt(o.inputAmount,Cn(e)||o.fromToken?.usdPrice),r=Kt(e.outputAmount,mo(e)||o.toToken?.usdPrice)),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new je(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new je(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new je(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:Fr(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 je(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 je(0),selectedQuote:null},...!!o.fromToken&&{inputUsdValue:Fr(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:Fr(n??null,s),outputUsdValue:new je(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?Fr(e.toToken,e.outputAmount?.toString()||""):new je(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new je(0),inputUsdValue:new je(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new je(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})})))),gu=F.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&ge.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&&ge.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 hu(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=F(),c=y().config,m=y().fetchStatus,h=y().blockchains(),f=y().tokens(),{findToken:d}=y(),{setAffiliateRef:g,setAffiliatePercent:C,setAffiliateWallets:S}=y(),T=c?.from?.tokens,k=c?.from?.blockchains,v=c?.to?.tokens,w=c?.to?.blockchains,I=Or(void 0),L=Or(void 0),b=Or(void 0),E=Or(void 0);zo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),zo(()=>{if(m==="success"){r();let x=h.find(A=>A.name===c?.from?.blockchain),W=c?.from?.token,D=W&&d(W);(x||!x&&b.current)&&n(x??null),D?a({token:D,meta:{blockchains:h,tokens:f}}):!D&&I.current&&a({token:null}),b.current=c?.from?.blockchain,I.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,m]),zo(()=>{ga(s,T)&&a({token:null}),ha(p,k)&&n(null)},[T,k]),zo(()=>{ga(l,v)&&a({token:null}),ha(u,w)&&o(null)},[v,w]),zo(()=>{if(m==="success"){r();let x=h.find(A=>A.name===c?.to?.blockchain),W=c?.to?.token,D=W&&d(W);(x||!x&&E.current)&&o(x??null),D?e({token:D,meta:{blockchains:h,tokens:f}}):!D&&L.current&&e({token:null}),E.current=c?.to?.blockchain,L.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,m]),zo(()=>{g(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),S(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(hu,"useSyncStoresWithConfig");import{useEffect as Qa,useRef as nC}from"react";import{useInRouterContext as rC,useLocation as iC,useSearchParams as aC}from"react-router-dom";function Ua(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Ua,"convertTokenSearchParamToAsset");function za(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(za,"tokenToSearchParam");function Ha(){let t=iC(),[e,o]=aC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:h}=F(),f=y().fetchStatus,d=y().blockchains(),g=y().tokens(),C=rC(),{updateIframe:S,updateCampaignMode:T}=y(),k=y().isInCampaignMode(),v=nC(),{findToken:w}=y(),I=i(()=>{let b={};for(let[K,se]of e.entries())K.startsWith("utm_")&&(b[K]=se);let E=e.get("fromAmount"),x=e.get("fromBlockchain"),W=e.get("fromToken"),D=e.get("toBlockchain"),A=e.get("toToken"),Z=e.get("autoConnect"),ie=e.get("clientUrl"),J=e.get("liquiditySources"),M=e.get("blockchain");return{fromAmount:E,fromBlockchain:x,fromToken:W,toBlockchain:D,toToken:A,autoConnect:Z,clientUrl:ie,liquiditySources:J,utmQueryParams:b,blockchain:M}},"getUrlSearchParams"),L=i(b=>{for(let E in b)b[E]||delete b[E];o(b,{replace:!0})},"updateUrlSearchParams");Qa(()=>{let{autoConnect:b,clientUrl:E,utmQueryParams:x,blockchain:W}=I();C&&f==="success"&&L({fromBlockchain:n?.name,fromToken:za(a),toBlockchain:r?.name,toToken:za(s),fromAmount:l,autoConnect:b??void 0,clientUrl:E??void 0,blockchain:W??void 0,liquiditySources:k?v.current:void 0,...x})},[t.pathname,l,n,a,r,s,k]),Qa(()=>{if(!C)return;let b=I();if(!v.current&&b.liquiditySources&&(v.current=b.liquiditySources),b.fromAmount&&h(b.fromAmount),f==="success"){let E=d.find(A=>A.name===b.fromBlockchain),x=b.fromToken&&E?w(Ua(b.fromToken,E)):void 0,W=d.find(A=>A.name===b.toBlockchain),D=b.toToken&&W?w(Ua(b.toToken,W)):void 0;E&&(p(E),x&&c({token:x,meta:{blockchains:d,tokens:g}})),W&&(u(W),D&&m({token:D,meta:{blockchains:d,tokens:g}}))}},[f]),Qa(()=>{let{clientUrl:b,liquiditySources:E}=I();S("clientUrl",b||void 0),T("liquiditySources",E?.split(",")??void 0)},[])}i(Ha,"useSyncUrlAndStore");import{i18n as It}from"@lingui/core";import{Alert as TT,Button as Yu,darkTheme as kT,Divider as vn,DoneIcon as vT,MessageBox as wT,styled as xT,TextField as bT,Typography as ET}from"@rango-dev/ui";import he,{useEffect as IT,useState as Vr}from"react";import{useNavigate as AT,useSearchParams as NT}from"react-router-dom";import{ChevronRightIcon as sC,Divider as ku,Image as lC,Typography as vu}from"@rango-dev/ui";import gt from"react";import{darkTheme as yu,styled as Ga}from"@rango-dev/ui";var Su=Ga("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${yu} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${yu} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),Cu=Ga("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Tu=Ga("div",{display:"flex"});function Va(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return gt.createElement(Cu,null,gt.createElement(vu,{size:"large",variant:"label"},n),gt.createElement(ku,{size:10}),gt.createElement(Su,{onClick:s?void 0:e,disabled:s},gt.createElement(Tu,null,r&&gt.createElement(gt.Fragment,null,gt.createElement(lC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),gt.createElement(ku,{size:4,direction:"horizontal"})),gt.createElement(vu,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),gt.createElement(sC,{size:12,color:"black"})))}i(Va,"BlockchainSelectorButton");import{i18n as ja}from"@lingui/core";import{Button as pC,Divider as Tn,ExternalLinkIcon as cC,Image as uC,Typography as qo}from"@rango-dev/ui";import Ae from"react";function wu(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(wu,"generateExplorerLink");import{darkTheme as Qo,styled as xu}from"@rango-dev/ui";var Ka=xu("a",{textDecoration:"none",color:"$colors$neutral700",[`.${Qo} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${Qo} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${Qo} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${Qo} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),bu=xu("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${Qo} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${Qo} &`]:{color:"$colors$neutral900"}}});function Xa(t){let{open:e,onClose:o,token:n,onSubmitClick:r,blockchain:a}=t,s=wu(n.address,a);return Ae.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Ae.createElement(bu,null,Ae.createElement(uC,{src:n.image,size:45,type:"circular"}),Ae.createElement(qo,{variant:"title",size:"medium"},n.name),Ae.createElement(qo,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),Ae.createElement(Tn,{size:4}),Ae.createElement(qo,{variant:"body",size:"medium"},s?Ae.createElement(Ka,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,Ae.createElement(cC,{size:12,color:"gray"})):Ae.createElement(Ka,null,n.address)),Ae.createElement(Tn,{size:4}),n.coinSource&&Ae.createElement(qo,{className:"_coin-source",variant:"body",size:"xsmall"},ja.t("via")," ",Ae.createElement(qo,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Ae.createElement(Tn,{size:"32"}),Ae.createElement(qo,{size:"medium",variant:"body",className:"_custom-token-description"},ja.t("This token doesn't appear on the active token list(s). Make sure this is the token that you want to trade."))),Ae.createElement(Tn,{size:40}),Ae.createElement(Tn,{size:10}),Ae.createElement(pC,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:r},ja.t("Import")))}i(Xa,"CustomTokenModal");import{useManager as fT}from"@rango-dev/queue-manager-react";import{BottomLogo as gT,Divider as Gu,Header as hT}from"@rango-dev/ui";import We,{useEffect as ys,useRef as Vu,useState as yT}from"react";import{useRef as mC}from"react";function Ur(){return window.self!==window.top}i(Ur,"isAppLoadedIntoIframe");function Ya(){let t=mC(null),{iframe:e}=y(),o=Ur()&&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 p of l)n({type:"widget_height",data:{height:p.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Ya,"useIframe");import{useNavigate as dC}from"react-router-dom";function Xe(){let t=dC();return()=>t(-1)}i(Xe,"useNavigateBack");import{createTheme as ns,darkTheme as IC,lightTheme as AC}from"@rango-dev/ui";import{useEffect as NC,useState as WC}from"react";import{theme as bC,darkColors as EC}from"@rango-dev/ui";import ts from"react";function fC(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(fC,"expandShortHexColor");function gC(t){return/[0-9]+$/.test(t)}i(gC,"isOverridingColor");function hC(t,e){return t.padStart(e,"0")}i(hC,"pad");function Za(t){let e=Math.min(Math.max(Math.round(t),0),255);return hC(e.toString(16),2)}i(Za,"intToHex");function yC(t){return`#${Za(t.red)}${Za(t.green)}${Za(t.blue)}`}i(yC,"rgbToHex");function SC(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(SC,"hexToRGB");function CC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(CC,"generateShade");function TC(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(TC,"generateTint");function kC(t){return Eu(t,CC)}i(kC,"calculateShades");function vC(t){return Eu(t,TC)}i(vC,"calculateTints");function Eu(t,e){let o=SC(t),n=[];for(let r=1;r<9;r++)n.push(yC(e(o,r)));return n}i(Eu,"calculateColors");function Ja(t,e,o){let a=vC(t).reverse().concat(t),s=kC(t),l=a.concat(s),p={},u=l.length;for(let c=0;c<u;c++){let m=100+(o?u-1-c:c)*50;p[`${e}${m}`]=l[c]}return p}i(Ja,"createTintsAndShades");function Ra(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)&&!gC(r)){let p=fC(a);Object.assign(n,Ja(p,r,s))}}return{...n,...e}}i(Ra,"expandToGenerateThemeColors");var Iu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),wC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Iu(o%52)+e;return Iu(o%52)+e},"toAlphabeticName"),xC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),es=i(t=>wC(xC(5381,JSON.stringify(t))>>>0),"toHash");function os(t){let e=bC.colors,o={...e,...EC},n,r;if(t?.light){let s={colors:Ra(e,t.light)};n={id:`${fa}-light-${es(s)}`,tokens:s}}if(t?.dark){let s={colors:Ra(o,t.dark,{reverseNeutralRange:!0})};r={id:`${fa}-dark-${es(s)}`,tokens:s}}return{light:n,dark:r}}i(os,"customizedThemeTokens");function Au(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>ts.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(ts.cloneElement(a,{key:s})),r<t.length-1){let l=`divider-${r}`;o.push(ts.cloneElement(e,{key:l}))}}),o}i(Au,"joinList");function Nu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Nu,"doesWindowPreferDarkColorScheme");function Ho(t){let{colors:e,fontFamily:o=kp,borderRadius:n=Gp,secondaryBorderRadius:r=Vp}=t,[a,s]=WC(Nu()?"dark":"light"),{theme:l}=y(),{dark:p,light:u}=os(e),c=ns({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[c.className,AC.className],h=[c.className,IC.className];if(u){let d=ns(u.id,u.tokens);m.push(d.className)}if(p){let d=ns(p.id,p.tokens);h.push(d.className)}return NC(()=>{let d=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return Nu()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",d),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",d)}},[]),{activeTheme:i(()=>{let d=m.join(" "),g=h.join(" ");return l==="auto"?a==="dark"?g:d:l==="dark"?g:d},"getActiveTheme"),mode:l==="auto"?a:l}}i(Ho,"useTheme");var ct=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import{i18n as Wu}from"@lingui/core";import{Alert as BC,Button as MC}from"@rango-dev/ui";import Bu from"react";function rs(t){return Bu.createElement(BC,{action:Bu.createElement(MC,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Wu.t("Activate this tab")),type:"warning",variant:"alarm",title:Wu.t("Another tab is open and handles transactions.")})}i(rs,"ActivateTabAlert");import{i18n as is}from"@lingui/core";import{Button as LC,Divider as PC,MessageBox as DC}from"@rango-dev/ui";import zr from"react";function as(t){let{open:e,onClose:o,onConfirm:n}=t;return zr.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},zr.createElement(DC,{title:is.t("Activate current tab"),type:"warning",description:is.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.")},zr.createElement(PC,{size:20}),zr.createElement(LC,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},is.t("Confirm"))))}i(as,"ActivateTabModal");import{ChevronLeftIcon as _C}from"@rango-dev/ui";import Mu from"react";function ss(t){return Mu.createElement(Et,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Mu.createElement(_C,{color:"black",size:16}))}i(ss,"BackButton");import{i18n as $C}from"@lingui/core";import{Button as FC,Typography as OC}from"@rango-dev/ui";import ls from"react";function ps(t){return ls.createElement(Gt,null,ls.createElement(FC,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ls.createElement(OC,{variant:"label",size:"medium",color:"error500"},$C.t("Cancel"))))}i(ps,"CancelButton");import{i18n as UC}from"@lingui/core";import{Image as zC,Tooltip as QC,WalletIcon as qC}from"@rango-dev/ui";import fo from"react";function cs(t){let{list:e}=dt(),o=e.filter(r=>r.state==="connected"),n=o.length?fo.createElement("div",{className:bc()},o.map(r=>fo.createElement(vr,{key:r.title},fo.createElement(zC,{src:r.image,size:14})))):UC.t("Connect Wallet");return fo.createElement(QC,{container:t.container,side:"bottom",content:n},fo.createElement(Et,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&fo.createElement(kc,null),fo.createElement(qC,{size:18,color:"black"})))}i(cs,"WalletButton");import{i18n as qr}from"@lingui/core";import{NotificationsIcon as iT,Popover as aT,SettingsIcon as sT,Tooltip as Hr,TransactionIcon as lT}from"@rango-dev/ui";import Ne from"react";import{Notifications as KC}from"@rango-dev/ui";import jC from"react";import{useNavigate as XC}from"react-router-dom";import{create as HC}from"zustand";import{persist as GC,subscribeWithSelector as VC}from"zustand/middleware";var ve=Po(HC()(GC(VC((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(p=>p.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(p=>p.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 us(){let t=XC(),{getNotifications:e,clearNotifications:o}=ve(),n=e(),r=y().blockchains(),{findToken:a}=y();return jC.createElement(KC,{list:n,getBlockchainImage:l=>fp(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${_.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(us,"NotificationContent");import{useManager as YC}from"@rango-dev/queue-manager-react";import{InProgressIcon as ZC}from"@rango-dev/ui";import Lu from"react";var JC=i(()=>{let{manager:t}=YC();return ct(t).map(({swap:o})=>o).find(o=>o.status==="running")?Lu.createElement(xc,null,Lu.createElement(ZC,{color:"info",size:6})):null},"InProgressTransactionBadge"),Pu=JC;import{EventSeverity as RC}from"@rango-dev/queue-manager-rango-preset";import{Typography as eT}from"@rango-dev/ui";import Du from"react";function _u(){let{getNotifications:t}=ve(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===RC.WARNING);return o?Du.createElement(vc,{isSever:n},Du.createElement(eT,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(_u,"NotificationsBadge");import{RefreshProgressButton as tT}from"@rango-dev/ui";import ms,{useEffect as oT,useState as $u}from"react";var nT=1e3,Fu=60,rT=100;function Qr({onClick:t}){let[e,o]=$u(0),[n,r]=$u(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");oT(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===Fu&&l()},nT):s(p),document.addEventListener("visibilitychange",()=>a(p)),()=>{document.removeEventListener("visibilitychange",()=>a(p)),p&&clearInterval(p)}},[e,t]);let s=i(p=>{p&&clearInterval(p),o(0)},"clearTimeout"),l=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return ms.createElement(Et,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:l,disabled:!t},ms.createElement(wc,{onTransitionEnd:()=>r(!1),isRefetched:n},ms.createElement(tT,{size:22,color:t?"black":"gray",progress:e/Fu*rT})))}i(Qr,"RefreshButton");function go(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=Ke("notification",s)||r.includes("notifications");return Ne.createElement(Ne.Fragment,null,!r.includes("refresh")&&Ne.createElement(Hr,{container:a||N(),side:"top",content:qr.t("Refresh")},Ne.createElement(Qr,{onClick:e})),!l&&Ne.createElement(aT,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Ne.createElement(us,null)},Ne.createElement("div",null,Ne.createElement(Hr,{container:N(),side:"top",content:qr.t("Notifications")},Ne.createElement(Et,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Ne.createElement(iT,{size:18,color:"black"}),Ne.createElement(_u,null))))),!r.includes("settings")&&Ne.createElement(Hr,{container:N(),side:"top",content:qr.t("Settings")},Ne.createElement(Et,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Ne.createElement(sT,{size:18,color:"black"}))),!r.includes("history")&&Ne.createElement(Hr,{container:N(),side:"top",content:qr.t("History")},Ne.createElement(Et,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Ne.createElement(lT,{size:18,color:"black"}),Ne.createElement(Pu,null))))}i(go,"HeaderButtons");import{i18n as ds}from"@lingui/core";import{Divider as Uu,MessageBox as uT,RefreshIcon as mT}from"@rango-dev/ui";import Go from"react";import{Button as pT,styled as cT}from"@rango-dev/ui";var Ou=cT(pT,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function fs(t){let{open:e,onClose:o}=t;return Go.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Go.createElement(uT,{title:ds.t("Something went wrong"),type:"error",description:ds.t("Something went wrong. Please refresh the app.")},Go.createElement(Uu,{size:30}),Go.createElement(Ou,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Go.createElement(mT,{size:20,color:"primary"}),Go.createElement(Uu,{size:4,direction:"horizontal"}),ds.t("Refresh"))))}i(fs,"RefreshModal");function gs(t){let e=t.target;if(e){let o=e.scrollTop,n=N();o>1?n.classList.add("rng-scrolled"):n.classList.remove("rng-scrolled")}}i(gs,"onScrollContentAttachStatusToContainer");import{css as dT,styled as hs}from"@rango-dev/ui";var zu="700px",Gr=dT({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Qu=hs("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:zu},fixed:{height:zu}}}}),qu=hs("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Hu=hs("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 te(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ya(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:p}=y(),[u,c]=yT(!1),{config:{features:m,theme:h}}=y(),{watermark:f}=ae(),d=f==="FULL",{activeTheme:g}=Ho(h||{}),C=Ke("connectWalletButton",m),{isActiveTab:S,tabManagerInitiated:T,showActivateTabModal:k,setShowActivateTabModal:v,activateCurrentTab:w}=ae(),I=Xe(),{manager:L}=fT(),E=ct(L).map(({swap:ie})=>ie).some(ie=>ie.status==="running"),x=i(()=>w(ao.forceClaim,E),"onActivateTab"),W=i(()=>{r.onWallet?.()},"onConnectWallet"),D=typeof r.hasBackButton>"u"||r.hasBackButton,A=Vu(null),Z=Vu(null);return ys(()=>(Ur()&&Z.current&&e(Z.current),()=>{o()}),[]),ys(()=>(A.current?.addEventListener("scroll",gs),()=>{A.current?.removeEventListener("scroll",gs)}),[]),ys(()=>{c(l==="failed")},[l]),We.createElement(Qu,{height:s,id:De.SWAP_BOX_ID,className:`${g()} ${Gr()}`,ref:Z},We.createElement(hT,{prefix:D?We.createElement(ss,{onClick:()=>{I(),r.onBack&&r.onBack()}}):null,title:r.title,suffix:We.createElement(We.Fragment,null,r.suffix,r.onWallet&&!C&&We.createElement(cs,{container:N(),onClick:W,isConnected:!!p?.length}),r.onCancel&&We.createElement(ps,{onClick:r.onCancel}))}),We.createElement(qu,{ref:A},n),We.createElement(as,{open:k,onClose:()=>v(!1),onConfirm:x}),We.createElement(Hu,null,We.createElement("div",{className:"footer__content"},T&&!S&&We.createElement("div",{className:"footer__alert"},We.createElement(rs,{onActivateTab:x}),We.createElement(Gu,{size:10})),a),We.createElement(Gu,{size:12}),We.createElement("div",{className:`footer__logo ${d?"logo__show":"logo__hidden"}`},We.createElement(gT,null))),We.createElement(fs,{open:u,onClose:()=>c(!1)}))}i(te,"Layout");import{styled as ST}from"@rango-dev/ui";var Ku="$20 $20 $10 $20",kn=ST("div",{padding:Ku,overflowY:"auto",flexGrow:1});import{styled as CT}from"@rango-dev/ui";var ne=CT("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 Vo}from"@lingui/core";import{useState as ju}from"react";function Xu(){let[t,e]=ju(!1),[o,n]=ju(void 0),{findToken:r}=y(),a=y().customTokens();function s(p,u){switch(p){case"duplicated":return{title:Vo.t("Duplicate Token"),message:Vo.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:Vo.t("Token Already Exists"),message:Vo.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:Vo.t("Token Not Found"),message:Vo.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:p,tokenAddress:u})=>{e(!0);try{if(a.some(d=>d.address?.toLowerCase()===u.toLowerCase())){let d=s("duplicated");n(d);return}let m=await bt().getCustomToken({blockchain:p,address:u});if(!m||!m.token||m.error){let d=s("not-found",p);n(d);return}let h=m.token;if(r({blockchain:h.blockchain,address:h.address,symbol:h.symbol})){let d=s("token-exist");n(d);return}return h}catch(c){throw n(void 0),new Error(c.message)}finally{e(!1)}},"fetchCustomToken"),loading:t,error:o}}i(Xu,"useFetchCustomToken");var WT=xT("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${kT} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),BT=1e3;function Zu(){let t=AT(),[e]=NT(),o=Xe(),{setCustomToken:n}=y(),r=y().blockchains(),a=e.get("blockchain")||"",s=an(a,r),[l,p]=Vr(""),[u,c]=Vr(!1),[m,h]=Vr(),{fetchCustomToken:f,loading:d,error:g}=Xu(),[C,S]=Vr(""),T=!!s&&Ao(s,l),k=!s||!l||!T,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")),c(!0))}},"getCustomToken"),w=i(()=>{g&&p(""),c(!1)},"closeErrorModal"),I=i(async()=>{C&&setTimeout(async()=>{await v()},BT),w()},"handleErrorModalButtonClick");return IT(()=>{g&&c(!0)},[g]),he.createElement(te,{header:{title:It.t("Add Custom Token")}},he.createElement(ne,null,he.createElement(WT,null,he.createElement("div",null,he.createElement(Va,{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")}),he.createElement(vn,{size:"24"}),he.createElement(ET,{size:"large",variant:"label"},It.t("Enter Address")),he.createElement(vn,{size:10}),he.createElement(bT,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:It.t("Enter token address"),size:"large",value:l,suffix:!!l&&T&&he.createElement(vT,{color:"success",size:12}),onChange:L=>p(L.target.value)}),!T&&!!l&&he.createElement(he.Fragment,null,he.createElement(vn,{size:4}),he.createElement(TT,{type:"error",variant:"alarm",title:"Invalid Address"}))),he.createElement(Yu,{id:"widget-add-custom-token-import-btn",disabled:k,type:"primary",variant:"contained",loading:d,size:"large",onClick:v},It.t("Import"))),he.createElement(R,{open:u,dismissible:!0,onClose:w,container:N()},he.createElement(wT,{title:g?.title||C,type:"error",description:g?.message||It.t("Failed Network, Please retry.")},he.createElement(vn,{size:40}),he.createElement(vn,{size:10}),he.createElement(Yu,{id:`widget-add-custom-token-${C?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:I},C?It.t("Retry"):It.t("Add another custom token")))),s&&m&&he.createElement(Xa,{blockchain:s,token:m,onSubmitClick:()=>{m&&(n(m),h(void 0),o())},onClose:()=>h(void 0),open:!!s&&!!m})))}i(Zu,"AddCustomTokenPage");import{i18n as Vs}from"@lingui/core";import{useManager as fv}from"@rango-dev/queue-manager-react";import{Alert as Kd,Button as gv,css as js,Divider as Ks,IconButton as jd,styled as hv,Typography as yv,WalletIcon as Sv}from"@rango-dev/ui";import be,{useEffect as vi,useLayoutEffect as Cv,useRef as Tv,useState as Dn}from"react";import{useNavigate as kv}from"react-router-dom";import{i18n as ho}from"@lingui/core";import{Alert as bm,BalanceErrors as nk,Button as Em,ChevronLeftIcon as rk,Divider as ti,MessageBox as ik,Typography as bs}from"@rango-dev/ui";import X,{useCallback as ak,useEffect as Im,useMemo as sk,useState as yo}from"react";import{useNavigate as lk}from"react-router-dom";import{i18n as Kr}from"@lingui/core";function jr(t){switch(t.type){case 0:return Kr.t("Route has been updated.");case 3:return Kr.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Kr.t("Route swappers has been updated.");case 2:return Kr.t("Route internal coins has been updated.");default:return""}}i(jr,"getQuoteUpdateWarningMessage");import{i18n as ks}from"@lingui/core";import{Alert as $T,ChevronDownIcon as FT,CloseIcon as OT,Divider as rm,IconButton as im,PasteIcon as UT,Typography as zT,WalletIcon as QT}from"@rango-dev/ui";import Be,{useEffect as qT,useRef as HT}from"react";import Jr,{useRef as DT}from"react";import*as Ko from"@radix-ui/react-collapsible";import{keyframes as Ju,styled as Xr}from"@rango-dev/ui";var Ss=300,LT=Ju({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),PT=Ju({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Ru=Xr(Ko.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Cs=Xr(Ko.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Yr=Xr(Ko.Content,{overflow:"hidden",variants:{open:{true:{animation:`${LT} ${Ss}ms ease-out`},false:{animation:`${PT} ${Ss}ms ease-out`}}}}),Zr=Xr("div",{transition:`all ${Ss}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Rr(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:l}=t,p=DT(null);return Jr.createElement(Ru,{ref:p,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},l==="top"&&Jr.createElement(Cs,{className:"collapsible_trigger",onClick:a},s),Jr.createElement(Yr,{className:"collapsible_content",open:e},r),l==="bottom"&&Jr.createElement(Cs,{className:"collapsible_trigger",onClick:a},s))}i(Rr,"CustomCollapsible");import{darkTheme as em,styled as Ts,TextField as _T}from"@rango-dev/ui";var tm=Ts("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),om=Ts(_T,{backgroundColor:"$neutral100",padding:"$15"}),nm=Ts("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${em} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${em} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function am(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=F(),{config:s}=y(),l=y().blockchains(),p=rr(e.name,l),u=HT(null),c=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!Ao(e,r),d=i(()=>{a("")},"handleClear"),g=i(async S=>{if(S.preventDefault(),navigator.clipboard!==void 0){let T=await navigator.clipboard.readText();a(T),u?.current?.focus()}},"handlePaste"),C=i(()=>r?Be.createElement(im,{id:"widget-custom-destination-close-icon-btn",onClick:d,variant:"ghost"},Be.createElement(OT,{size:12,color:"gray"})):m?null:Be.createElement(im,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Be.createElement(UT,{size:16})),"renderSuffix");return qT(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Be.createElement(tm,null,Be.createElement(Rr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Be.createElement(nm,null,Be.createElement("div",{className:"button__content"},Be.createElement(QT,{size:18,color:"info"}),Be.createElement(rm,{size:4,direction:"horizontal"}),Be.createElement(zT,{variant:"label",size:"medium",color:n?"$neutral600":void 0},ks.t("Send to a different address"))),Be.createElement(Zr,{orientation:n?"up":"down"},Be.createElement(FT,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Be.createElement(om,{ref:u,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:ks.t("Enter {blockchainName} address",{blockchainName:p}),value:r||"",suffix:C(),onChange:S=>{let T=S.target.value;a(T)}})),f&&Be.createElement(Be.Fragment,null,Be.createElement(rm,{size:4}),Be.createElement($T,{variant:"alarm",type:"error",title:ks.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(am,"CustomDestination");import{css as GT,darkTheme as vs,IconButton as VT,styled as Dt}from"@rango-dev/ui";var sm=Dt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),lm=Dt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),KT=Dt("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${vs} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$secondary100",[`.${vs} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$secondary100",[`.${vs} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),pm=Dt(KT,{alignSelf:"stretch",minHeight:"93px"}),cm=Dt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),um=Dt(VT,{position:"absolute",left:"$20"}),mm=Dt("div",{paddingTop:"$20"}),dm=GT({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),fm=Dt("div",{display:"flex"}),gm=Dt("div",{overflow:"visible",width:"100%"});import{i18n as km}from"@lingui/core";import{warn as JT}from"@rango-dev/logging-core";import{Divider as RT,SelectableWallet as ek,Typography as vm,WalletState as wm}from"@rango-dev/ui";import Ye,{useEffect as xm,useState as xn}from"react";import{Image as YT,MessageBox as ZT}from"@rango-dev/ui";import wn from"react";import{keyframes as jT,styled as ws}from"@rango-dev/ui";var hm=ws("div",{position:"relative"}),XT=jT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ym=ws("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${XT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Sm=ws("div",{"& img":{borderRadius:"50%"}});import{i18n as jo}from"@lingui/core";function Cm(t,e){switch(t){case"in-progress":return{type:"loading",title:jo.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:jo.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:jo.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:jo.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:jo.t("Request Rejected"),description:jo.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(Cm,"generateMessageByStatus");function Tm(t){let{status:e,displayName:o,image:n}=t,r=Cm(e,o),a=e=="in-progress";return wn.createElement(ZT,{type:r.type,title:r.title,description:r.description,icon:a?wn.createElement(hm,null,wn.createElement(Sm,null,wn.createElement(YT,{src:n,size:45})),wn.createElement(ym,null)):void 0})}i(Tm,"ExperimentalChainStatus");var tk=7,ok=3e3;function xs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=ae.use.isActiveTab(),{blockchains:l,connectedWallets:p}=y(),[u,c]=xn(),[m,h]=xn(null),[f,d]=xn(!1),[g,C]=xn(null),{suggestAndConnect:S}=ei(),{handleDisconnect:T}=Ht(),{list:k}=dt({chain:e}),[v,w]=xn(k),I=k.length,L=r&&I-r>0,b=i(async x=>{d(!1),C("in-progress");try{await S(x.walletType,x.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");xm(()=>{w(x=>{let W=k.findIndex(D=>o(D.type,e));return L&&W>1?[k[W]].concat(k.filter((D,A)=>A!==W)):x.map(D=>k.find(A=>A.type===D.type)??D)})},[JSON.stringify(k)]);let E=document.getElementById(De.SWAP_BOX_ID);return xm(()=>{let x=null;return(g==="completed"||g==="rejected")&&(x=setTimeout(()=>C(null),ok)),()=>{x&&clearTimeout(x)}},[g]),Ye.createElement(Ye.Fragment,null,v.slice(0,r).map(x=>{let W=Op({connectedWallets:p,walletType:x.type,chain:e}),D=W?gr(W,tk):"",A=dr(l(),e),Z=!p.find(se=>se.walletType===x.type&&se.chain===e),ie=A&&Z&&x.state===wm.CONNECTED,J=ie?km.t({id:"Add {chain} chain",values:{chain:e}}):D,M=i(async()=>{let se=x.state===wm.DISCONNECTED,H=(x.isHub||!!x.namespaces)&&!D;se?c(x):H?(await T(x.type),c(x)):ie?(h({walletType:x.type,chain:e,address:W??""}),d(!0)):n({walletType:x.type,chain:e,address:W??""})},"onSelectableWalletClick"),K=m?.chain?rr(m.chain,l()):void 0;return Ye.createElement(Ye.Fragment,{key:`${x.title}_${K}`},!!m&&Ye.createElement(R,{open:!!m&&f,container:E,onClose:()=>{h(null)}},Ye.createElement(Wa,{displayName:K,onConfirm:()=>{b(m)}})),g&&Ye.createElement(R,{open:!!g,onClose:C.bind(null,null),container:E},Ye.createElement(Tm,{status:g,displayName:K,image:x.image}),Ye.createElement(RT,{direction:"vertical",size:32})),Ye.createElement(ek,{key:x.type,description:J,onClick:M,selected:o(x.type,e),disabled:!s,...x}))}),Ye.createElement(co,{wallet:u,onClose:()=>{c(void 0)},onConnect:x=>{t.onConnect&&x.status==="connected"&&(u?.type?t.onConnect(u.type):JT(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),L&&Ye.createElement(pm,{selected:!1,onClick:a},Ye.createElement(vm,{variant:"label",size:"medium"},km.t("Show more wallets"),Ye.createElement(vm,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(xs,"WalletList");var pk=2;function Am(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=lk(),l=y().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:m,customDestination:h,setCustomDestination:f}=F(),{config:d,connectedWallets:g,setWalletsAsSelected:C}=y(),[S,T]=yo(""),[k,v]=yo([]),[w,I]=yo(""),[L,b]=yo(null),[E,x]=yo(!!h),W=sk(()=>io({filter:"all",quote:p}),[p]),D=io({filter:"required",quote:p}),A=l.find($=>$.name===p?.swaps[p?.swaps.length-1].to.blockchain),Z=i($=>D.includes($),"isWalletRequiredFor"),ie=ak(()=>g.filter($=>$.selected&&W.includes($.chain)),[g,W]),[J,M]=yo(ie()),[K,se]=yo([]),H=i(($,Q)=>se(G=>G.concat({blockchain:$,walletType:Q})),"addNextSelectedWallets"),de=k.length>0,fe=i(($,Q)=>!!J.find(G=>G.walletType===$&&G.chain===Q&&G.selected&&(Z(Q)||!Z(Q)&&!h)),"isSelected"),Pe=i(($,Q,G)=>{let oe=!1;return $.map(le=>{if(le.chain===Q){let pe=le.selected;return!oe&&G?(oe=!0,pe=!0):G||(pe=!1),{...le,selected:pe}}return le})},"updateSelectableWallets"),z=i($=>{x($),$?Z(A?.name??"")||M(Q=>Pe(Q,A?.name||"",!1)):(f(""),M(Q=>Pe(Q,A?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),Ve=i($=>{if(S&&T(""),fe($.walletType,$.chain))return;let G=g.find(oe=>oe.walletType===$.walletType&&oe.chain===$.chain);G&&(n(),$.chain===A?.name&&E&&!Z(A.name)&&(x(!1),f(null)),M(oe=>oe.filter(le=>le.chain!==$.chain).concat({...G,selected:!0})))},"onChange"),kt=i(()=>{let $=J.filter(Q=>Q.selected);C($),u($),m(!0),o()},"onConfirmBalance"),at=i(async()=>{v([]),I(""),b(null);let $=await r?.({selectedWallets:J.filter(G=>G.selected),customDestination:h}),Q=$.warnings;Q?.balance?.messages&&v(Q.balance.messages),Q?.quoteUpdate&&b(Q.quoteUpdate),$.error&&I(qc($.error)),!$.error&&!Q?.balance?.messages.length?kt():v(Q?.balance?.messages??[])},"onConfirmWallets");Im(()=>{M($=>{let Q=[];return $.forEach(G=>{!g.some(le=>le.chain===G.chain&&le.walletType===G.walletType&&le.address===G.address)||Q.push(G)}),Q=Q.concat(g.filter(G=>!!!Q.find(le=>le.chain===G.chain)&&G.selected&&W.includes(G.chain))),Q})},[g,W]),Im(()=>{let $=[];K.length>0&&(K.forEach(Q=>{let G=g.find(oe=>oe.chain===Q.blockchain&&oe.walletType===Q.walletType);G?Ve(G):$.push(Q)}),se($))},[g,K]);let vt=document.getElementById(De.SWAP_BOX_ID);return X.createElement(R,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!S,container:vt,...!S&&{styles:{container:{height:"100%"}},footer:X.createElement(fm,null,X.createElement(Em,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:su(a,E,h,p,J,A),onClick:at,variant:"contained",type:"primary",fullWidth:!0,size:"large"},ho.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:X.createElement(cm,null,X.createElement(um,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:T.bind(null,"")},X.createElement(rk,{size:16})),X.createElement(bs,{variant:"headline",size:"small"},ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:st(S,l)}})))},anchor:"center"},X.createElement(R,{open:de,onClose:v.bind(null,[]),container:vt},X.createElement(ik,{title:ho.t("Insufficient account balance"),type:"error",description:X.createElement(nk,{messages:k??[]})},X.createElement(Em,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:kt},ho.t("Proceed anyway")))),S&&X.createElement(mm,null,X.createElement("div",{className:dm()},X.createElement(xs,{chain:S,isSelected:fe,selectWallet:Ve,onShowMore:()=>T(S),onConnect:$=>{H(S,$)}}))),!S&&X.createElement(X.Fragment,null,w&&X.createElement(X.Fragment,null,X.createElement(bm,{variant:"alarm",type:"error",title:ho.t(w)}),X.createElement(ti,{size:12})),L&&X.createElement(X.Fragment,null,X.createElement(bm,{variant:"alarm",type:"warning",title:jr(L)}),X.createElement(ti,{size:12})),X.createElement(gm,null,W.map(($,Q)=>{let G=l.find(Fe=>Fe.name===$),oe=`wallet-${Q}`,le=Q===W.length-1,pe=le&&A&&d?.customDestination!==!1;return X.createElement("div",{key:oe},X.createElement(sm,null,X.createElement(bs,{variant:"title",size:"xmedium"},ho.t({id:"Your {blockchainName} wallets",values:{blockchainName:G?.shortName}})),X.createElement(bs,{variant:"label",color:"$neutral700",size:"medium"},ho.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:G?.shortName}}))),X.createElement(ti,{size:24}),X.createElement(lm,null,X.createElement(xs,{chain:$,isSelected:fe,selectWallet:Ve,limit:pk,onShowMore:()=>T(G?.name??""),onConnect:Fe=>{H($,Fe)}})),!le&&X.createElement(ti,{size:32}),pe&&X.createElement(am,{blockchain:A,open:E,handleOpenChange:z}))}))))}i(Am,"ConfirmWalletsModal");import{i18n as Ak}from"@lingui/core";import{Alert as Nk,Button as Wk,InfoIcon as Bk}from"@rango-dev/ui";import et from"react";import{Alert as mk,Button as dk,Divider as As,NoRouteIcon as fk,RefreshIcon as gk,Typography as Dm}from"@rango-dev/ui";import Re from"react";import{i18n as Nm}from"@lingui/core";var ck=24,uk=60;function Wm(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:ee().genericServerError,action:{onClick:n,title:Nm.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:ee().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Nm.t("Reset")}},description:ee().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:ee().noResultError.description}}i(Wm,"makeInfo");var Es=(o=>(o[o.small=ck]="small",o[o.large=uk]="large",o))(Es||{}),Is=(o=>(o.small="small",o.large="medium",o))(Is||{});import{styled as oi}from"@rango-dev/ui";var Bm=oi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Mm=oi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Lm=oi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),Pm=oi("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=Wm(o,r,()=>a(s,!0),e);return Re.createElement(Bm,null,Re.createElement(fk,{size:Es[n],color:"gray"}),Re.createElement(As,{size:4}),Re.createElement(Dm,{variant:"title",size:Is[n]},ee().noResultError.title),n==="large"&&Re.createElement(As,{size:4}),!!l.description&&Re.createElement(Mm,{size:n},Re.createElement(Dm,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),Re.createElement(As,{size:n==="large"?"24":"4"}),!!l.alert&&Re.createElement(Lm,{size:n},Re.createElement(mk,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&Re.createElement(dk,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:Re.createElement(Pm,null,Re.createElement(gk,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(bn,"NoResult");import{i18n as En}from"@lingui/core";import{Button as yk,Divider as Sk,MessageBox as Ck,Typography as Tk,WarningIcon as kk}from"@rango-dev/ui";import _t from"react";import{Typography as Om}from"@rango-dev/ui";import Ws from"react";import{darkTheme as hk,styled as ni}from"@rango-dev/ui";var _m=ni("div",{width:"100%"}),Ns=ni("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),$m=ni("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${hk} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Fm=ni("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Um(t){let{title:e,value:o,valueColor:n}=t;return Ws.createElement($m,null,Ws.createElement(Om,{size:"medium",variant:"label",className:"_title"},e),Ws.createElement(Om,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Um,"QuoteErrorsModalItem");function zm(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:B(r.inputUsdValue,4,4)},{title:En.t("Gas cost"),value:B(r.totalFee,2,2)},{title:En.t("Receiving"),value:B(r.outputUsdValue,4,4)},{title:En.t("Price impact"),value:B(r.priceImpact,2,2),valueColor:`${s}500`}];return _t.createElement(R,{footer:_t.createElement(yk,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:_t.createElement(kk,null),fullWidth:!0,disabled:a,onClick:n},ee().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},_t.createElement(Ck,{type:s,title:ee().highValueLossError.impactTitle,description:ee().highValueLossError.description}),_t.createElement(Ns,null,_t.createElement(Sk,{size:"4"}),_t.createElement(Tk,{size:"small",variant:"title"},En.t("Details")),_t.createElement(Ns,null,l.map((p,u)=>_t.createElement(Um,{key:u,...p})))))}i(zm,"HighValueLossWarningModal");import{i18n as Bs}from"@lingui/core";function Qm(t,e){let o={alertType:"warning",title:"",action:null};return e?(o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Bs.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):t?(t.type===0&&(Pt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=ee().highValueLossError.title),t.type===1&&(o.title=ee().unknownPriceError.title),t.type===2&&(o.title=Bs.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=Bs.t("Caution, your slippage is high."),o.action="change-settings"),o):null}i(Qm,"makeAlerts");import{i18n as Xo}from"@lingui/core";import{Button as qm,Divider as Hm,MessageBox as vk,Typography as wk}from"@rango-dev/ui";import So from"react";import{useNavigate as xk}from"react-router-dom";function Gm(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=xk(),u=e??o;return So.createElement(R,{anchor:"bottom",open:n,prefix:So.createElement(qm,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>p("../"+_.settings)},So.createElement(wk,{variant:"label",size:"medium",color:"$neutral900"},Xo.t("Change settings"))),container:N(),onClose:r},So.createElement(vk,{type:"warning",title:s.type===3?Xo.t("High slippage"):Xo.t("Low slippage"),description:s.type===3?Xo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Xo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},So.createElement(Hm,{size:18}),So.createElement(Hm,{size:32}),So.createElement(qm,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Xo.t("Confirm anyway"))))}i(Gm,"SlippageWarningModal");import{Button as bk,MessageBox as Ek,WarningIcon as Ik}from"@rango-dev/ui";import ri from"react";function Vm(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return ri.createElement(R,{footer:ri.createElement(bk,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:ri.createElement(Ik,null),fullWidth:!0,disabled:r,onClick:n},ee().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},ri.createElement(Ek,{type:"warning",title:ee().unknownPriceError.impactTitle,description:ee().unknownPriceError.description}))}i(Vm,"UnknownPriceWarningModal");function In(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,refetchQuote:s,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:c}=t,m={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},h=o?.type===0||o?.type===1,f=Qm(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(_m,null,et.createElement(Nk,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:et.createElement(Fm,{onClick:l},et.createElement(Bk,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:et.createElement(Wk,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:c},Ak.t("Change"))}})),e&&et.createElement(et.Fragment,null,e.type===0&&et.createElement(zm,{...m,warning:e}),(e.type===3||e.type===2)&&et.createElement(Gm,{...m,warning:e}),e.type===1&&et.createElement(Vm,{...m,warning:e})))}i(In,"QuoteWarningsAndErrors");import lv from"bignumber.js";import Si from"react";import{i18n as Co}from"@lingui/core";import{Alert as Xk,Divider as Zo,FullExpandedQuote as Yk,InfoIcon as Zk,NumericTooltip as bd,QuoteTag as Jk,StepDetails as Rk,TokenAmount as ev,Typography as Jo}from"@rango-dev/ui";import Os from"bignumber.js";import O,{useRef as tv,useState as ov}from"react";import{styled as Ms}from"@rango-dev/ui";var Ls=Ms("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Km=Ms("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),jm=Ms("div",{width:"100%",display:"flex"});import*as ii from"@radix-ui/react-collapsible";import{Button as Mk,css as An,darkTheme as we,Image as Xm,styled as ze,Typography as Lk}from"@rango-dev/ui";var Pk=300,Ym=ze(ii.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Zm=An({padding:"$10 $15"}),Jm=ze(Mk,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${we} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${we} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${we} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Rm=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",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${we} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${we} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${we} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${we} &`]:{backgroundColor:"$neutral400"}}}}]}),ed=An({width:"100%",padding:"$15 $15 $10 $15"}),td=An({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Yo=An({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),od=An({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),nd=ze(ii.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:{[`& ${Xm}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Xm}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${we} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${we} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),rd=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"}}}}),id=ze(Yr,{width:"100%",background:"inherit"}),Ps=ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Pk}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),HF=ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),ad=ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),sd=ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ds=ze(Lk,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),ld=ze("div",{display:"flex",flexWrap:"wrap"}),_s=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"}}}}),pd=ze("div",{display:"flex"}),ai=ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${we} &`]:{borderTopColor:"$neutral800"}});import{i18n as At}from"@lingui/core";import{ChevronDownIcon as _k,CloseIcon as $k,Divider as pi,IconButton as Fk,NumericTooltip as Ok,QuoteCost as Uk,Typography as ht}from"@rango-dev/ui";import Y,{useState as dd}from"react";import{css as Dk,styled as si}from"@rango-dev/ui";var li=si("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),$s=si("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),cd=si("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),ud=si("div",{padding:"$20 $20 $10",textAlign:"center",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),md=Dk({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var zk=i(t=>t.fee.isZero()?null:Y.createElement(li,null,Y.createElement(ht,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(ht,{variant:"label",size:"medium"},"$",B(t.fee,4,4))),"NonPayableFee");function fd(t){let[e,o]=dd(!1),[n,r]=dd(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,showModalFee:c}=t,m=s?.swaps??[],h=N(),f=Xc(m);return Y.createElement(Y.Fragment,null,Y.createElement(Uk,{onClickFee:c?d=>{d.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,time:p,steps:a,tooltipGas:c?At.t("View more info"):void 0,tooltipContainer:h}),Y.createElement(R,{container:h,open:e,header:Y.createElement(ud,null,Y.createElement(ht,{variant:"title",size:"medium"},At.t("Gas & Fee Explanation")),Y.createElement(Fk,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement($k,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(cd,null,Y.createElement(ht,{variant:"title",size:"small"},At.t("Details")),Y.createElement(pi,{size:10}),Object.entries(f.payable).flatMap(([d,g])=>g.map((C,S)=>{let T=`payable-fee-${S}`,k=_a(C);return Y.createElement(li,{key:T},Y.createElement(ht,{variant:"label",size:"medium",color:"neutral600"},Ma(d,At.t)),Y.createElement(Ok,{content:C.amount,container:h},Y.createElement(ht,{variant:"label",size:"medium"},B(C.amount,2,2)," ",C.asset.symbol," ($",B(k,4,4),")")))})),Y.createElement(li,{className:"total_payable_fee"},Y.createElement(ht,{variant:"label",size:"medium"},At.t("Total Payable Fee")),Y.createElement(ht,{variant:"label",size:"medium"},"$",B(l,4,4))),Y.createElement($s,null),Object.keys(f.nonePayable).length&&Y.createElement(Rr,{triggerAnchor:"bottom",onClickTrigger:()=>r(d=>!d),trigger:Y.createElement("div",{className:md()},Y.createElement(ht,{size:"small",variant:"body",color:"neutral700"},n?At.t("Hide non-payable fees"):At.t("Show non-payable fees")),Y.createElement(pi,{size:4,direction:"horizontal"}),Y.createElement(Zr,{orientation:n?"up":"down"},Y.createElement(_k,{size:12,color:"gray"}))),open:n},Y.createElement(ht,{size:"small",variant:"title"},At.t("Description")),Y.createElement(pi,{size:4}),Y.createElement(ht,{size:"small",variant:"body",color:"neutral700"},At.t(`The following fees are considered in the transaction output and
2
2
  you won\u2019t need to pay extra gas for them.`)),Y.createElement(pi,{size:10}),Object.entries(f.nonePayable).map(([d,g],C)=>{let S=jc(g),T=Ma(d,At.t),k=`non-payable-fee-${C}`;return Y.createElement(zk,{key:k,fee:S,label:T})}),Y.createElement($s,null)))))}i(fd,"QuoteCostDetails");import{i18n as yd}from"@lingui/core";import{TokenAmount as Sd}from"@rango-dev/ui";import ci from"react";import{css as Qk,styled as qk}from"@rango-dev/ui";var gd=qk("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),hd=Qk({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 ci.createElement(gd,null,ci.createElement(Sd,{direction:"horizontal",label:yd.t("Swap input"),type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),ci.createElement("div",{className:hd()}),ci.createElement(Sd,{direction:"horizontal",tooltipContainer:N(),label:yd.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 wd}from"@lingui/core";import{ChevronDownIcon as Vk,ChevronRightIcon as Kk,Divider as Fs,Image as jk,Tooltip as gi,Typography as mi}from"@rango-dev/ui";import U from"react";import{useLayoutEffect as Hk,useState as Wn}from"react";var Cd=480,Td=768,kd=1024,vd=1200,Gk=i(()=>{let[t,e]=Wn(!1),[o,n]=Wn(!1),[r,a]=Wn(!1),[s,l]=Wn(!1),[p,u]=Wn(!1),c=i(()=>{e(window.innerWidth<=Cd),n(window.innerWidth>Cd&&window.innerWidth<=Td),a(window.innerWidth>Td&&window.innerWidth<=kd),l(window.innerWidth>kd&&window.innerWidth<=vd),u(window.innerWidth>vd)},"handleResize");return Hk(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),ui=Gk;var di=4,fi=6,Bn=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,l=s||N();return U.createElement(gi,{container:l,side:"bottom",sideOffset:4,open:r,content:e},U.createElement(rd,{className:n,state:a},U.createElement(jk,{src:o,size:16})))},"ImageComponent");function xd(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||N(),u=r.length,c=mu(r),{isTablet:m,isMobile:h}=ui();return U.createElement(nd,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(d=>!d)}},U.createElement("div",{className:Yo()},U.createElement(mi,{variant:"body",size:"xsmall"},wd.t("Via:")),U.createElement(Fs,{direction:"horizontal",size:4}),r.map((f,d)=>{let g=`item-${d}`,C=U.createElement(Ps,null,U.createElement(Kk,{size:12,color:"black"}));return h||m?U.createElement(U.Fragment,{key:g},U.createElement(Bn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),d!==u-1&&U.createElement(U.Fragment,null,C)):U.createElement(U.Fragment,{key:g},u<=di||u>di&&d<di-1?U.createElement(U.Fragment,null,U.createElement(Bn,{content:f.swapper.displayName,src:f.swapper.image,state:f.state,container:l}),d!==u-1&&U.createElement(U.Fragment,null,C)):d===di-1&&U.createElement(gi,{container:p,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Yo()},C,r.map((S,T)=>{let k=`image-${T}`;return T>=d&&U.createElement(U.Fragment,{key:k},U.createElement(Bn,{content:S.swapper.displayName,src:S.swapper.image,state:S.state,open:!1}),T!==u-1&&U.createElement(U.Fragment,null,C))}))},U.createElement(_s,{state:r.find((S,T)=>T>=d&&(S.state==="error"||S.state==="warning"))?.state},U.createElement(mi,{size:"xsmall",variant:"body"},"+",u-d))))})),U.createElement("div",{className:Yo()},U.createElement("div",{className:"blockchains_section"},U.createElement("div",{className:Yo()},U.createElement(mi,{variant:"body",size:"xsmall"},wd.t("Chains:")),U.createElement(Fs,{direction:"horizontal",size:4}),c.map((f,d)=>U.createElement(U.Fragment,{key:f.displayName},c.length<=fi||c.length>fi&&d<fi-1?U.createElement(gi,{container:p,side:"bottom",content:f.displayName,sideOffset:4},U.createElement(Bn,{content:"",src:f.image,open:!1,className:d!==0?"blockchainImage":""})):d===fi-1&&U.createElement(gi,{container:p,side:"bottom",align:"end",sideOffset:4,content:U.createElement("div",{className:Yo()},c.map((g,C)=>C>=d&&U.createElement(Bn,{key:g.displayName,content:"",src:g.image,open:!1,className:C>d?"blockchainImage":"",container:l})))},U.createElement(_s,{className:"blockchainImage"},U.createElement(mi,{size:"xsmall",variant:"body"},"+",c.length-d))))),U.createElement(Fs,{direction:"horizontal",size:32}))),U.createElement(Ps,{orientation:a?"up":"down"},U.createElement(Vk,{size:12,color:"black"}))))}i(xd,"QuoteTrigger");function Us(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:l=!1,tagHidden:p=!0,showModalFee:u=!0,onClickAllRoutes:c,fullExpandedMode:m=!1,container:h}=t,f=y().blockchains(),{findToken:d}=y(),g=y().swappers(),{customSlippage:C,slippage:S}=y(),T=C||S,[k,v]=ov(t.expanded),w=tv(null),I=B(o.value,6,6),L=B(n.value,6,6),b=n.usdValue?B(n.usdValue,4,4):"",E=pt(o.usdValue,n.usdValue??null),x=B(E,2,2),W=Pt(E??0),D=i((fe,Pe)=>fe.map((z,Ve)=>{let kt,at=r?.type===3&&r.swap.swapperId===z.swapperId,vt=r?.type===4&&r.recommendedSlippages?.has(Ve),$=a?.type===2&&a.recommendedSlippages?.has(Ve),Q=at||vt,G=$;Q?kt="error":G&&(kt="warning");let oe=Q?Co.t("Slippage Error"):Co.t("Slippage Warning");return at&&(oe=Co.t("Bridge Limit Error")),{swapper:{displayName:rn(z.swapperId,g)??"",image:z.swapperLogo},from:{token:{displayName:z.from.symbol,image:z.from.logo},chain:{displayName:st(z.from.blockchain,f)??"",image:z.from.blockchainLogo},price:{value:Ve===0&&!Pe?B(o.value,6,6):B(z.fromAmount,6,6),usdValue:B((z.from.usdPrice??0)*parseFloat(z.fromAmount),4,4),realValue:Ve===0?o.value:z.fromAmount,realUsdValue:new Os(z.from.usdPrice??0).multipliedBy(z.fromAmount).toString()}},to:{token:{displayName:z.to.symbol,image:z.to.logo},chain:{displayName:st(z.to.blockchain,f)||"",image:z.to.blockchainLogo},price:{value:B(z.toAmount,6,6),usdValue:B((z.to.usdPrice??0)*parseFloat(z.toAmount),4,4),realValue:z.toAmount,realUsdValue:new Os(z.to.usdPrice??0).multipliedBy(z.toAmount).toString()}},state:kt,alerts:Q||G?O.createElement(Km,{dense:m},O.createElement(Xk,{variant:"alarm",type:Q?"error":"warning",title:oe,footer:O.createElement(jm,null,at&&O.createElement("div",null,O.createElement(Jo,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),O.createElement(Zo,{direction:"vertical",size:2}),O.createElement(Jo,{size:"xsmall",variant:"body",color:"neutral900"},Co.t({id:"Yours: {amount} {symbol}",values:{amount:B(z.fromAmount,6,6),symbol:z?.from.symbol}}))),(vt||$)&&!at&&O.createElement("div",null,O.createElement(Jo,{size:"xsmall",variant:"body",color:"neutral900"},Co.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Ve)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Ve)}}})),O.createElement(Zo,{direction:"vertical",size:2}),O.createElement(Jo,{size:"xsmall",variant:"body",color:"neutral900"},Co.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:pn(z.estimatedTimeInSeconds),fee:B(Da(z,d),2,2),internalSwaps:z.internalSwaps?D(z.internalSwaps):void 0}}),"getQuoteSteps"),A=D(e?.swaps??[]),Z=A.length,ie=h||N(),J=fu(t.quote.tags||[]),M=!!c,K=pn(pr(e?.swaps)),se=Lr(e?.swaps??[],d),H=B(se,2,2),de=se.gte(new Os(Qc));return m?O.createElement(Yk,{selected:l,fee:H,time:K,tooltipContainer:ln(),steps:A,tags:J,feeWarning:de,percentageChange:x,warningLevel:W,outputPrice:{value:L,usdValue:b,realValue:n.value,realUsdValue:n.usdValue}}):O.createElement(Rm,{selected:l,listItem:s==="list-item",basic:s==="basic"},O.createElement("div",{className:ed()},!p&&J.length?O.createElement(O.Fragment,null,O.createElement(pd,null,J.map((fe,Pe)=>{let z=`${fe.value}_${Pe}`;return O.createElement(O.Fragment,{key:z},O.createElement(Jk,{label:fe.label,value:fe.value}),O.createElement(Zo,{size:4,direction:"horizontal"}))})),O.createElement(ai,null),!M&&O.createElement(Zo,{size:4})):null,O.createElement("div",{id:"portal-root",className:td()},O.createElement(fd,{quote:e,time:K,fee:H,feeWarning:de,showModalFee:u,steps:Z}),M&&O.createElement(Jm,{onClick:fe=>{fe.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},O.createElement(Jo,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Co.t("See All Routes")))),s==="basic"&&O.createElement("div",{className:od()},O.createElement(sd,null,O.createElement(Zk,{size:12,color:"gray"})),O.createElement(ld,null,O.createElement(Ds,{size:"small",variant:"body"},`${I} ${A[0].from.token.displayName} = `),O.createElement(bd,{content:n.value,container:ie,open:n.value?void 0:!1},O.createElement(Ds,{size:"small",variant:"body"},"\xA0",`${L} ${A[A.length-1].to.token.displayName}`))),O.createElement(bd,{content:n.usdValue,container:ie},O.createElement(Zo,{size:2,direction:"horizontal"}),O.createElement(Jo,{color:"$neutral600",size:"xsmall",variant:"body"},`($${b})`))),s==="list-item"&&O.createElement(ev,{tooltipContainer:ie,type:"output",direction:"vertical",price:{value:L,usdValue:b,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:A[Z-1].to.token.displayName,image:A[Z-1].to.token.image},chain:{image:A[Z-1].to.chain.image},percentageChange:x,warningLevel:W}),s==="swap-preview"&&O.createElement(O.Fragment,null,O.createElement(Nn,{from:A[0].from,to:A[Z-1].to,percentageChange:x,warningLevel:W}),O.createElement(Zo,{size:4}))),O.createElement(Ym,{selected:l,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},O.createElement(xd,{type:s,quoteRef:w,selected:l,setExpanded:v,container:ie,expanded:k,steps:A}),O.createElement(id,{open:k},O.createElement(ad,null),O.createElement("div",{className:Zm()},A.map((fe,Pe)=>{let z=`item-${Pe}`;return O.createElement(Rk,{type:"quote-details",key:z,tooltipContainer:ie,step:fe,hasSeparator:Pe!==A.length-1,state:fe.state})})))))}i(Us,"Quote");import{Divider as av,Skeleton as sv}from"@rango-dev/ui";import Ft from"react";import{darkTheme as nv,styled as hi}from"@rango-dev/ui";var Ed=hi("div",{$$color:"$colors$neutral100",[`.${nv} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Id=hi("div",{paddingTop:"$2"}),Ad=hi("div",{paddingLeft:"$8"}),Nd=hi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Od,Divider as yt,Skeleton as tt}from"@rango-dev/ui";import q from"react";import{css as rv,styled as $t}from"@rango-dev/ui";var zs=$t("div",{display:"flex"}),Wd=$t("div",{padding:"$10 $0 $20"}),Bd=$t("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Md=$t("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Ld=$t("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),Pd=$t("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),Dd=$t("div",{width:"65%",display:"flex",justifyContent:"start"}),_d=$t("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),$d=$t("div",{padding:"$15 $0 $15 $0"}),Fd=rv({display:"flex",justifyContent:"space-between",alignItems:"center"});function Mn(t){let{type:e,tagHidden:o=!0}=t,n=q.createElement(Ld,null,q.createElement(Dd,null,q.createElement(Od,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(yt,{size:8,direction:"horizontal"}),q.createElement(_d,null,q.createElement(tt,{height:10,width:60,variant:"rounded"}),q.createElement(yt,{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(zs,null,q.createElement(tt,{width:65,height:20,variant:"rounded"}),q.createElement(yt,{size:4,direction:"horizontal"}),q.createElement(tt,{width:65,height:20,variant:"rounded"}),q.createElement(yt,{size:4,direction:"horizontal"}),q.createElement(tt,{width:65,height:20,variant:"rounded"})),q.createElement(ai,null),!r&&q.createElement(yt,{size:4})),q.createElement("div",{className:Fd()},q.createElement(zs,null,q.createElement(tt,{width:60,height:10,variant:"rounded"}),q.createElement(yt,{size:4,direction:"horizontal"}),q.createElement(tt,{width:60,height:10,variant:"rounded"}),q.createElement(yt,{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(Wd,null,q.createElement(tt,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(Bd,null,q.createElement(Md,null,q.createElement(Od,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(yt,{direction:"horizontal",size:4}),q.createElement(tt,{height:15,width:150,variant:"rounded"})),q.createElement(yt,{size:10}),q.createElement(tt,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(yt,{size:4}),q.createElement($d,null,n,q.createElement(Pd,null),n),q.createElement(yt,{size:12})))}i(Mn,"QuoteSummarySkeleton");import{ChainToken as Hd,Divider as qs,NextIcon as iv,Skeleton as yi}from"@rango-dev/ui";import xe from"react";import{styled as Ln}from"@rango-dev/ui";var Ud=Ln("div",{display:"flex",alignItems:"start"}),zd=Ln("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Qs=Ln("div",{display:"flex",alignItems:"center",flexGrow:1}),Qd=Ln("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),qd=Ln("div",{display:"flex",alignItems:"center"});function Nt(t){let{separator:e=!0}=t;return xe.createElement(xe.Fragment,null,xe.createElement(qd,null,xe.createElement(yi,{height:22,width:22,variant:"circular"}),xe.createElement(qs,{direction:"horizontal",size:8}),xe.createElement(yi,{height:15,width:148,variant:"rounded"})),xe.createElement(Ud,null,xe.createElement(Nd,{hideSeparator:!e}),xe.createElement(zd,{extraSpace:e},xe.createElement(Qs,null,xe.createElement(Hd,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(qs,{direction:"horizontal",size:8}),xe.createElement(yi,{height:12,variant:"rounded"})),xe.createElement(Qd,null,xe.createElement(iv,{color:"gray",size:16})),xe.createElement(Qs,null,xe.createElement(Hd,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(qs,{direction:"horizontal",size:8}),xe.createElement(yi,{height:12,variant:"rounded"})))))}i(Nt,"StepSkeleton");function Pn(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Ft.createElement(Ed,{expanded:o,rounded:e!=="basic"},Ft.createElement(Mn,{type:e,tagHidden:n}),Ft.createElement(Id,null,Ft.createElement(sv,{height:15,variant:"rounded"})),o&&Ft.createElement(Ad,null,Ft.createElement(av,{size:24}),Ft.createElement(Nt,null),Ft.createElement(Nt,null),Ft.createElement(Nt,{separator:!1})))}i(Pn,"QuoteSkeleton");function To(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:l,onClick:p,showModalFee:u,selected:c,onClickAllRoutes:m,fullExpandedMode:h=!1,container:f}=t,{inputAmount:d,inputUsdValue:g,toToken:C}=F(),S=e?.outputAmount?new lv(e?.outputAmount):null,T=e?.outputAmount?Kt(e?.outputAmount,mo(e)||C?.usdPrice):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Si.createElement(Ls,null,Si.createElement(Pn,{tagHidden:l,type:o,expanded:s})):v?Si.createElement(Ls,{onClick:()=>p?.(e)},Si.createElement(Us,{quote:e,error:r,container:f,showModalFee:u,warning:a,tagHidden:l,selected:c,type:o,expanded:s,onClickAllRoutes:m,fullExpandedMode:h,input:{value:d,usdValue:g?.toString()??""},output:{value:S?.toString()??"",usdValue:T?.toString()??""}})):null}i(To,"QuoteInfo");import{calculatePendingSwap as mv}from"@rango-dev/queue-manager-rango-preset";import{useEffect as dv}from"react";import{useRef as pv,useState as cv}from"react";var uv=2e3;function Ci({request:t}){let[e,o]=cv(!1),n=pv(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,uv)),await s(l,!1)),"retryFetch"),s=i(async(l,p=!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(p)return await a(l);throw u}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Ci,"useFetch");function Gd(){let{fetch:t,loading:e,cancelFetch:o}=Ci({request:async(n,r)=>await bt().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Gd,"useFetchConfirmQuote");function Ti(t){if(!t.swaps)throw new Error(ee().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Hs(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ti,"throwErrorIfResponseIsNotValid");function Hs(t){if(Gc(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Vc(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Yc(t);if(o){let n=Pr(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Hs,"getQuoteError");function Vd(t,e,o){let n=!1;t&&(n=uu(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=Uo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(ou(t,e)?r.quoteUpdate={type:3,newOutputAmount:B(Oo(e)),percentageChange:B(pt(Oo(t)??"",Oo(e)??""),null,2)}:$a(t,e)?r.quoteUpdate={type:0}:Fa(t,e)?r.quoteUpdate={type:1}:Oa(t,e)&&(r.quoteUpdate={type:2}));let s=nu(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(Vd,"generateWarnings");function ki(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(ki,"handleQuoteErrors");function Gs(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=F(),{slippage:p,customSlippage:u}=y(),c=y().getDisabledLiquiditySources(),m=y().blockchains(),h=y().tokens(),{findToken:f}=y(),d=u||p,{fetch:g,cancelFetch:C,loading:S}=Gd();return dv(()=>C,[]),{loading:S,fetch:i(async k=>{let v=k.selectedWallets,w=k?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=v.reduce((b,E)=>(b[E.chain]=E.address,b),{}),L={requestId:r?.requestId||"",selectedWallets:I,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");Ti({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};n(x);let W={slippage:d.toString(),disabledSwappersGroups:c},D=Vd(r??void 0,x,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:f,selectedWallets:v,userSlippage:d});D.quoteUpdate&&s(!1),l();let A=!!D.balance,Z=mv(o.toString(),E,eu(v),W,!A,{blockchains:m,tokens:h});return{quote:x,swap:Z,error:null,warnings:D}})}catch(b){return ki(b)}},"fetch"),cancelFetch:C}}i(Gs,"useConfirmSwap");var vv=hv("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${jd}`]:{width:"$48",height:"$48"}}),wv=js({flexGrow:1,paddingRight:"$10"}),xv=js({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),bv=js({display:"flex",justifyContent:"space-between",alignItems:"center"});function Xd(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=F(),s=kv(),[l,p]=Dn(""),u=!n,[c,m]=Dn(!1),[h,f]=Dn(!1),{isActiveTab:d}=ae(),g=y().getDisabledLiquiditySources(),C=Tv(g),{manager:S}=fv(),{fetch:T,loading:k,cancelFetch:v}=Gs(),[w,I]=Dn({swap:null,error:null,warnings:null}),[L,b]=Dn(!1),E=i(async({selectedWallets:M,customDestination:K})=>{let se=await T?.({selectedWallets:M,customDestination:K});return I(se),se},"onConfirmSwap"),x=i(async()=>{if(w.swap&&n)try{await S?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId});let M=`../${_.swaps}/${w.swap.requestId}`;s(M,{replace:!0}),setTimeout(()=>{e("")},0)}catch(M){p("Error: "+M?.message)}},"addNewSwap"),W=i(async()=>{f(!0),await x(),f(!1)},"onConfirm"),D=i(async()=>{w?.warnings?.quote&&!a?b(!0):await W()},"onStartConfirmSwap"),A=i(async()=>{I({error:null,swap:null,warnings:null}),T({selectedWallets:o,customDestination:r}).then(M=>{I(M)}).catch(M=>console.error(M))},"onRefresh");vi(()=>{!!C.current.length&&!g.length&&A(),C.current=g},[g.length]),vi(()=>{u&&v()},[u]),vi(()=>{u&&m(u)},[u]),vi(()=>{u||T({selectedWallets:o,customDestination:r}).then(M=>I(M)).catch(M=>console.error(M))},[]),Cv(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let Z=w.warnings?.quote??null,ie=w.error,J=[];if(l&&J.push(be.createElement(Kd,{type:"error",variant:"alarm",title:l})),w.warnings?.quoteUpdate&&J.push(be.createElement(Kd,{variant:"alarm",type:"warning",title:w.warnings.quoteUpdate&&jr(w.warnings.quoteUpdate)})),Z||ie){let M=`../${_.settings}`;J.push(be.createElement(In,{warning:Z,error:ie,couldChangeSettings:!1,refetchQuote:A,showWarningModal:L,confirmationDisabled:!d,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:async()=>{b(!1),await x()},onChangeSettings:()=>s(M)}))}return be.createElement(te,{header:{title:Vs.t("Confirm Swap"),onWallet:()=>{let M=`../${_.wallets}`;s(M)}},footer:be.createElement(vv,null,be.createElement("div",{className:wv()},be.createElement(gv,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||h,disabled:!!w.error||!d,onClick:D},Vs.t("Start Swap"))),be.createElement(jd,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||h,disabled:!d,onClick:m.bind(null,!0)},be.createElement(Sv,{size:24})))},c&&be.createElement(Am,{open:c,onClose:()=>m(!1),onCancel:v,loading:k,onCheckBalance:E}),be.createElement(ne,null,be.createElement("div",{className:bv()},be.createElement(yv,{variant:"title",size:"small"},Vs.t("You get")),be.createElement("div",{className:xv()},be.createElement(Qr,{onClick:!k&&!c&&!L?A:void 0}))),be.createElement(Ks,{size:"12"}),Au(J.map((M,K)=>({element:M,key:`alert-${K}`})),be.createElement(Ks,{size:10})),J.length>0?be.createElement(Ks,{size:10}):null,be.createElement(To,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:w.error,loading:k,warning:w.warnings?.quote??null})))}i(Xd,"ConfirmSwapPage");import{i18n as Ot}from"@lingui/core";import{Button as il,CustomTokensZeroStateDarkIcon as zv,CustomTokensZeroStateIcon as Qv,DeleteIcon as qv,Divider as On,IconButton as Hv,MessageBox as Gv,NotFound as Vv,styled as sl}from"@rango-dev/ui";import me,{useState as al}from"react";import{useNavigate as Kv}from"react-router-dom";import{CloseIcon as Iv,IconButton as Av,SearchIcon as Nv,TextField as Wv}from"@rango-dev/ui";import _n from"react";import{styled as Ev}from"@rango-dev/ui";var Yd=Ev("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function St(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:p,...u}=t;return _n.createElement(Wv,{prefix:_n.createElement(Yd,null,_n.createElement(Nv,{color:"black"})),suffix:!!s.length&&_n.createElement(Av,{variant:"ghost",onClick:()=>p?.(""),size:"small"},_n.createElement(Iv,{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(St,"SearchInput");import{i18n as rl}from"@lingui/core";import{darkTheme as lf,Divider as en,ExternalLinkIcon as Lv,Image as Pv,ListItemButton as Dv,NotFound as _v,PinIcon as $v,Skeleton as pf,Typography as bi,VirtualizedList as Fv}from"@rango-dev/ui";import V from"react";import{Divider as af,ListItem as Mv,Skeleton as $n}from"@rango-dev/ui";import Ct from"react";import{css as Ro,darkTheme as Zd,ImageContainer as Bv,styled as ut,Typography as Jd}from"@rango-dev/ui";var Xs=Ro({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Ys=Ro({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Zs=Ro({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Js=Ro({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Zd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Rs=Ro({}),el=Ro(),Rd=ut("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),tl=ut("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),wi=ut("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Ys}`]:{[`& .${Js}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Rs}`]:{bottom:"-15px"},[`& .${Xs}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Zs}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),ol=ut("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),nl=ut(Jd,{}),ef=ut("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${el}`]:{$$color:"$colors$neutral600",[`.${Zd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),xi=ut("div",{display:"flex",alignItems:"end",flexDirection:"column"}),UU=ut("div",{display:"flex",alignItems:"center"}),tf=ut("div",{position:"relative",[`& ${Bv}`]:{borderRadius:"$xm",overflow:"hidden"}}),of=ut("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),nf=ut(Jd,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),rf=ut("a",{"& svg:hover":{color:"$colors$info"}});function sf(t){return Ct.createElement(wi,null,Array.from(Array(t.size),e=>Ct.createElement(Mv,{key:e,hasDivider:!0,start:Ct.createElement($n,{variant:"circular",width:35,height:35}),end:Ct.createElement(xi,null,Ct.createElement($n,{variant:"text",size:"large",width:70}),Ct.createElement(af,{size:4}),Ct.createElement($n,{variant:"text",size:"medium",width:50})),title:Ct.createElement("div",null,Ct.createElement($n,{variant:"text",size:"large",width:90}),Ct.createElement(af,{size:4}),Ct.createElement($n,{variant:"text",size:"medium",width:90}))})))}i(sf,"LoadingTokenList");var Ov=20,Uv=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return V.createElement("div",{className:Ys()},o?V.createElement("div",{className:Xs()},o):V.createElement(tl,{className:Zs()},V.createElement(bi,{variant:"title",size:"xmedium"},r.symbol),V.createElement(en,{direction:"horizontal",size:4}),V.createElement(ol,{css:a},V.createElement(nl,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&V.createElement("div",{className:`${Js()} ${!o&&Rs()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",V.createElement(en,{size:4,direction:"horizontal"}),V.createElement(rf,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},V.createElement(Lv,{size:12}))))},"renderDesc");function Fn(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s}=t,l=y().fetchStatus,p=y().blockchains(),{getBalanceFor:u,fetchingWallets:c}=y(),{isTokenPinned:m}=y(),h=i(d=>{let g=fr(u(d));return s?s(d):c?V.createElement(xi,null,V.createElement(pf,{variant:"text",size:"large",width:70}),V.createElement(en,{size:4}),V.createElement(pf,{variant:"text",size:"medium",width:50})):g&&V.createElement(ef,null,V.createElement(nf,{variant:"title",size:"small"},g.amount),V.createElement("div",null),g.usdValue&&V.createElement(bi,{variant:"body",className:el(),size:"xsmall"},`$${g.usdValue}`))},"endRenderer"),f=i(()=>V.createElement(Fv,{itemContent:d=>{let g=e[d],C=g.address||"",S=p.find(w=>w.name===g.blockchain),T=Ja(S.color,"main"),k={$$color:T.main150,[`.${lf} &`]:{$$color:T.main750},backgroundColor:"$$color"},v={$$color:T.main750,[`.${lf} &`]:{$$color:T.main150},color:"$$color"};return V.createElement("div",{style:{paddingRight:5}},V.createElement(Dv,{style:{width:"100%",overflow:"hidden",height:"60px"},"tab-index":d,key:`${g.symbol}${g.address}`,id:`${g.symbol}${g.address}`,className:"widget-token-list-item-btn",hasDivider:!0,onClick:()=>n&&n(e[d]),start:V.createElement(tf,null,V.createElement(Pv,{src:g.image,size:30}),t.type!=="custom-token"&&m(g,t.type)&&V.createElement(of,null,V.createElement($v,{size:12,color:"gray"}))),title:S?.type==="COSMOS"||g.name||!g.name&&!C?V.createElement(tl,null,V.createElement(bi,{variant:"title",size:"xmedium"},g.symbol),V.createElement(en,{direction:"horizontal",size:4}),V.createElement(ol,{css:k},V.createElement(nl,{variant:"body",size:"xsmall",css:v},g.blockchain))):void 0,description:S?.info&&C&&S.type!=="COSMOS"?Uv({address:C,token:e[d],customCssForTag:k,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 V.createElement(V.Fragment,null,a&&V.createElement(V.Fragment,null,V.createElement(bi,{variant:"label",size:"large"},rl.t("Select Token")),V.createElement(en,{size:4})),V.createElement(Rd,null,V.createElement(en,{size:4}),l==="loading"&&V.createElement(sf,{size:Ov}),l==="success"&&(e.length?V.createElement(wi,{as:"ul"},f()):!!o&&V.createElement(_v,{title:rl.t("No results found"),description:rl.t("Try using different keywords")}))))}i(Fn,"TokenList");var jv=sl("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Xv=sl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Yv=sl(Hv,{"&:hover":{"& svg":{color:"$secondary550"}}});function cf(){let[t,e]=al(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=F(),{mode:p}=Ho({}),u=Kv(),[c,m]=al(!1),[h,f]=al(),d=i(T=>{let k=T.target.value;e(k)},"handleSearch"),g=p==="dark",C=n.filter(T=>Je(T.symbol,t)||Je(T.address||"",t)||Je(T.name||"",t)),S=i(()=>{if(h){let T=a?lt(a):null,k=r?lt(r):null,v=lt(h);T===v?l({token:null}):k===v&&s({token:null}),o(h)}m(!1)},"handleDeleteCustomToken");return me.createElement(te,{header:{title:Ot.t("Custom Tokens")}},me.createElement(ne,null,me.createElement(jv,null,n.length?me.createElement(me.Fragment,null,me.createElement(St,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Ot.t("Search Token"),onChange:d}),me.createElement(On,{size:16}),me.createElement(Fn,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,action:T=>me.createElement(Yv,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),f(T)}},me.createElement(qv,{size:12,color:"gray"}))})):me.createElement(Xv,null,me.createElement(Vv,{icon:g?me.createElement(zv,{size:200}):me.createElement(Qv,{size:200}),title:Ot.t("No custom tokens"),description:Ot.t("press the button to add your custom token")})),me.createElement(On,{size:20}),me.createElement(il,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u(_.addCustomTokens)},Ot.t("Add Custom Token"))),me.createElement(R,{open:c,dismissible:!0,onClose:()=>m(!1),container:N()},me.createElement(Gv,{title:Ot.t("Delete Custom Token"),type:"error",description:Ot.t("Are you sure you want to Delete this Token?")},me.createElement(On,{size:40}),me.createElement(On,{size:10}),me.createElement(il,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},Ot.t("Yes, Delete it")),me.createElement(On,{size:12}),me.createElement(il,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},Ot.t("No, Continue"))))))}i(cf,"CustomTokensPage");import{i18n as qe}from"@lingui/core";import{useManager as gw}from"@rango-dev/queue-manager-react";import{Button as fl,darkTheme as hw,Divider as vo,MessageBox as yw,NotFound as Sw,styled as gl,Typography as Ai}from"@rango-dev/ui";import{TransactionStatus as Qn}from"rango-types";import re,{useMemo as Nf,useState as Ni}from"react";import{useNavigate as Cw}from"react-router-dom";import{FilterIcon as nw,Popover as rw}from"@rango-dev/ui";import ko from"react";import{css as Zv,darkTheme as Ei,IconButton as Jv,styled as Un}from"@rango-dev/ui";var ll=Un("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${Ei} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),uf=Un(Jv,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Ei} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Ei} &`]:{backgroundColor:"$neutral"},[`& ${ll}::before`]:{backgroundColor:"$secondary100",[`.${Ei} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),mf=Un("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),df=Un("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),ff=Zv({display:"flex",justifyContent:"space-between",alignItems:"center"}),gf=Un("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as hf}from"@lingui/core";import{Button as Rv,Divider as yf,ListItemButton as ew,Radio as tw,RadioRoot as ow,Typography as Sf}from"@rango-dev/ui";import ot from"react";function Cf(t){let{filterBy:e,onClickItem:o}=t;return ot.createElement(df,null,ot.createElement("div",{className:ff()},ot.createElement(Sf,{size:"small",variant:"body"},hf.t("Status")),ot.createElement(Rv,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},hf.t("Reset"))),ot.createElement(yf,{size:10}),ot.createElement(ow,{value:e},ot.createElement(gf,null,t.list.map((n,r)=>ot.createElement(ew,{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(yf,{direction:"horizontal",size:4}),ot.createElement(Sf,{size:"medium",variant:"body"},n.title)),start:ot.createElement(tw,{value:n.id}),onClick:o})))))}i(Cf,"FilterSelectorContent");function pl(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return ko.createElement("div",null,ko.createElement(rw,{open:a,align:"end",onOpenChange:o,container:N(),content:ko.createElement(Cf,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},ko.createElement(uf,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},ko.createElement(ll,{isSelect:!!n},ko.createElement(nw,{size:16,color:"black"}),!!n&&ko.createElement(mf,null)))))}i(pl,"FilterSelector");import{i18n as sw}from"@lingui/core";import{Divider as xf,GroupedVirtualizedList as lw,Skeleton as pw,SwapListItem as bf,Typography as cw}from"@rango-dev/ui";import Qe,{useCallback as Ef,useEffect as uw,useRef as mw,useState as dw}from"react";function Tf(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(Tf,"calculateGroupsSoFar");import{css as iw,darkTheme as aw,styled as zn}from"@rango-dev/ui";var cl=iw(),kf=zn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ul=zn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${cl}`]:{$$color:"$colors$neutral600",[`.${aw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ml=zn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),vf=zn("div",{gap:"$10",display:"flex",flexDirection:"column"}),wf=zn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var fw=10;function dl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=dw([]),l=mw(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Ef(Tf,[]),h=Ef(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,fw),s(m(u,l.current)))},[e.length]);if(uw(()=>{r||h()},[r,h]),r){let f=[1,2];return Qe.createElement(Qe.Fragment,null,[f,f].map((g,C)=>Qe.createElement(ul,{key:C},Qe.createElement(ml,null,Qe.createElement(pw,{variant:"text",width:60,size:"small"}),Qe.createElement(xf,{size:16})),Qe.createElement(xf,{size:4}),Qe.createElement(vf,null,g.map((T,k)=>Qe.createElement(bf,{isLoading:!0,key:k}))))))}return Qe.createElement(lw,{endReached:()=>{l.current<e.length&&h()},groupCounts:a,groupContent:f=>Qe.createElement(ul,null,Qe.createElement(ml,null,Qe.createElement(cw,{variant:"label",size:"medium",className:cl()},c[f]))),itemContent:(f,d)=>{let g=p[f];if(!g)return null;let C=g.steps[0],S=g.steps[g.steps.length-1];return Qe.createElement(kf,{key:g.requestId},Qe.createElement(bf,{requestId:g.requestId,creationTime:g.creationTime,status:g.status,onClick:o,tooltipContainer:N(),onlyShowTime:c[d]===sw.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:B(g.inputAmount,6,6),realAmount:g.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:B(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(dl,"HistoryGroupedList");import{i18n as Ii}from"@lingui/core";import If from"dayjs";var Af=i(t=>{let e=new Map([["today",{title:Ii.t("Today"),swaps:[]}],["week",{title:Ii.t("This week"),swaps:[]}],["month",{title:Ii.t("This month"),swaps:[]}],["year",{title:Ii.t("This year"),swaps:[]}]]);function o(p,u){e.has(p)||e.set(p,{title:p,swaps:[]}),e.get(p)?.swaps.push(u)}i(o,"addYearsToOutput");let n=If();t.forEach(p=>{let u=Number(p.creationTime),c=If(u);if(n.isSame(c,"day"))e.get("today")?.swaps.push(p);else if(n.isSame(c,"week"))e.get("week")?.swaps.push(p);else if(n.isSame(c,"month"))e.get("month")?.swaps.push(p);else if(n.isSame(c,"year"))e.get("year")?.swaps.push(p);else{let m=new Date(u).getFullYear().toString();o(m,p)}});let r=Array.from(e.values()).filter(p=>p.swaps.length>0),a=r.flatMap(p=>p.swaps),s=r.map(p=>p.swaps.length),l=r.map(p=>p.title);return{swaps:a,groupCounts:s,groups:l}},"groupSwapsByDate");var Tw=gl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),kw=gl("div",{display:"flex",justifyContent:"center",alignItems:"center"}),vw=gl("div",{"._typography":{color:"$neutral700",[`.${hw}&`]:{color:"$neutral900"}}}),ww=[{id:Qn.SUCCESS,title:qe.t("Complete")},{id:Qn.RUNNING,title:qe.t("Running")},{id:Qn.FAILED,title:qe.t("Failed")}],xw=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 Wf(){let t=Cw(),{manager:e,state:o}=gw(),n=ct(e).map(({swap:k})=>k),[r,a]=Ni(""),[s,l]=Ni(!1),p=!o.loadedFromPersistor,[u,c]=Ni(""),[m,h]=Ni(!1),f=i(k=>{let v=k.target.value;a(v)},"handleSearch"),d=Nf(()=>!r&&!u?n:n.filter(k=>{let{inputAmount:v,status:w,steps:I,requestId:L}=k;return(!r||wt(v,r)||wt(w,r)||xw(I,r)||wt(L,r))&&(!u||u===w)}),[n,r,u]),g=!d?.length&&!p,C=i(()=>h(!1),"onCloseModal"),S=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(k){console.log(k)}},"onClear"),T=Nf(()=>!n.some(k=>k.status===Qn.SUCCESS||k.status===Qn.FAILED),[n]);return re.createElement(te,{header:{title:qe.t("History"),suffix:re.createElement(Gt,null,re.createElement(fl,{id:"widget-history-clear-btn",disabled:T,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},re.createElement(Ai,{size:"medium",variant:"label",color:"error"},qe.t("Clear"))))}},re.createElement(ne,null,re.createElement(kw,null,re.createElement(St,{setValue:a,fullWidth:!0,variant:"contained",placeholder:qe.t("Search Transaction"),autoFocus:!0,onChange:f,style:{height:36},value:r}),re.createElement(vo,{size:10,direction:"horizontal"}),re.createElement(pl,{filterBy:u,open:s,onOpenChange:k=>l(k),onClickItem:k=>c(k),list:ww})),re.createElement(vo,{size:"16"}),re.createElement(Tw,null,g&&re.createElement(wf,null,re.createElement(vo,{size:32}),re.createElement(Sw,{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&&re.createElement(dl,{list:d,onSwapClick:t,groupBy:Af,isLoading:p}))),re.createElement(R,{open:m,onClose:C,container:N()},re.createElement(vo,{size:20}),re.createElement(yw,{type:"warning",title:qe.t("Clear Transaction History"),description:re.createElement(vw,null,re.createElement(Ai,{variant:"body",size:"medium"},qe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),re.createElement(vo,{size:"24"}),re.createElement(Ai,{variant:"body",size:"small"},qe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),re.createElement(vo,{size:30}),re.createElement(fl,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},qe.t("Yes, Clear the history")),re.createElement(vo,{size:10}),re.createElement(fl,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:C},re.createElement(Ai,{variant:"title",size:"medium",color:"primary"},qe.t("No, Cancel")))))}i(Wf,"HistoryPage");import{i18n as jw}from"@lingui/core";import{Button as Xw,Divider as Zf,styled as Yw,WarningIcon as Zw}from"@rango-dev/ui";import Jw from"bignumber.js";import He,{useEffect as Jf,useState as Rf}from"react";import{useNavigate as Rw}from"react-router-dom";import{i18n as Mf}from"@lingui/core";import{Alert as Ew,Divider as hl,NoRouteIcon as Iw,Typography as Aw}from"@rango-dev/ui";import wo from"react";import{styled as bw}from"@rango-dev/ui";var Bf=bw("div",{display:"flex",flexDirection:"column",alignItems:"center"});function yl(){let{fromToken:t,toToken:e}=F();return!!t&&!!e&&Mt(t,e)?wo.createElement(Bf,null,wo.createElement(hl,{size:10}),wo.createElement(Iw,{size:24,color:"gray"}),wo.createElement(hl,{size:4}),wo.createElement(Aw,{variant:"title",size:"small"},Mf.t("No Routes Found")),wo.createElement(hl,{size:4}),wo.createElement(Ew,{title:Mf.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(yl,"SameTokensWarning");import{i18n as Pw}from"@lingui/core";import{Header as Dw}from"@rango-dev/ui";import Jt,{useEffect as _w,useState as $w}from"react";import{i18n as Ww}from"@lingui/core";import{Divider as Cl,FullExpandedQuote as Bw,Typography as Mw}from"@rango-dev/ui";import ye from"react";import{styled as Sl}from"@rango-dev/ui";var Lf=Sl("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Pf=Sl("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Df=Sl("div",{width:"146px"});import{i18n as qn}from"@lingui/core";import{Select as Nw}from"@rango-dev/ui";import _f from"react";function Wi(t){let{updateQuotePartialState:e,sortStrategy:o}=F(),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 _f.createElement(Df,null,_f.createElement(Nw,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Wi,"SelectStrategy");var $f=3;function Hn(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:l}=t,{selectedQuote:p,quotes:u,updateQuotePartialState:c,fromToken:m,toToken:h,sortStrategy:f,error:d}=F(),{slippage:g,customSlippage:C}=y(),{findToken:S}=y(),T=l||N(),k=!!u&&u.results.length,v=C??g,w=i(b=>{if(!m||!h||!u)return null;let E={requestAmount:u.requestAmount,validationStatus:null,...b};return Uo(E,{fromToken:m,toToken:h,userSlippage:v,findToken:S})},"getQuoteWarning"),I=d?.type===0||d?.type===1,L=u?.results?$r(f,u?.results):[];return ye.createElement(ye.Fragment,null,a&&ye.createElement(ye.Fragment,null,ye.createElement(Pf,null,ye.createElement(Mw,{size:"xmedium",variant:"title"},Ww.t("Sort by")),ye.createElement(Wi,{container:T})),ye.createElement(Cl,{size:"10"})),e&&Array.from({length:$f},(b,E)=>ye.createElement(ye.Fragment,{key:E},s?ye.createElement(Bw,{loading:!0}):ye.createElement(Pn,{tagHidden:!1,type:"list-item",expanded:!1}),E!==$f-1&&ye.createElement(Cl,{size:16}))),!e&&ye.createElement(ye.Fragment,null,k?L.map((b,E)=>{let x=w(b),W=Hs(b.swaps),D=L.length-1===E;return ye.createElement(ye.Fragment,{key:b.requestId},ye.createElement(To,{showModalFee:r,container:T,selected:p?.requestId===b.requestId,tagHidden:!1,quote:{...b,requestAmount:u.requestAmount,validationStatus:null},loading:e,error:W?.options||null,warning:x,fullExpandedMode:s,onClick:A=>{W||c("warning",x),c("error",W?.options||null),o(A)},type:"list-item"}),!D&&ye.createElement(Cl,{size:16}))}):I&&ye.createElement(Lf,null,ye.createElement(bn,{size:s?"large":"small",error:d,fetch:n}))))}i(Hn,"Quotes");import{darkTheme as Lw,styled as Ff}from"@rango-dev/ui";var Of=Ff("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${Lw} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Uf=Ff("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var Fw=100;function Tl(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=$w(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",m=ln();return _w(()=>{let h=null;return a?h=setTimeout(()=>{l(!0)},Fw):(l(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),Jt.createElement(Of,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Gr()}`,id:De.EXPANDED_BOX_ID},Jt.createElement(Dw,{title:Pw.t("Routes"),suffix:Jt.createElement(Jt.Fragment,null,Jt.createElement(Wi,{container:m}),Jt.createElement(go,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Jt.createElement(Uf,null,Jt.createElement(Hn,{showModalFee:!1,fetch:e,hasSort:!1,loading:o,container:ln(),onClickOnQuote:n,fullExpandedMode:c})))}i(Tl,"ExpandedQuotes");import{i18n as Kf}from"@lingui/core";import{SwapInput as jf}from"@rango-dev/ui";import Qw from"bignumber.js";import Gn from"react";import{ReverseIcon as zw}from"@rango-dev/ui";import vl from"react";import{keyframes as Ow,styled as zf}from"@rango-dev/ui";var kl=450,Uw=Ow({"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)"}}),Qf=zf("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),qf=zf("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${Uw} ${kl}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 wl(){let t=F.use.switchFromAndTo();return vl.createElement(Qf,null,vl.createElement(qf,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},kl),t()}},vl.createElement(zw,{size:12})))}i(wl,"SwitchFromAndToButton");import{styled as Hf}from"@rango-dev/ui";var Gf=Hf("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Vf=Hf("div",{position:"relative"});function xl(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:h,outputUsdValue:f,selectedQuote:d}=F(),{connectedWallets:g,getBalanceFor:C}=y(),S=a?C(a):null,T=fr(S)?.amount??"0",k=S?new Qw(S.amount).shiftedBy(-S.decimals):Ce,v=!!s&&Up(g,s.name),w=!Pa(d,c,m),I=!Pa(d,c,f),L=!m||!f||!f.gt(0)?null:pt(m.toString(),f.toString());return Gn.createElement(Gf,null,Gn.createElement(Vf,null,Gn.createElement(jf,{label:Kf.t("From"),mode:"From",onInputChange:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},onClickToken:()=>n("from"),price:{value:c,usdValue:w?void 0:B(m,4,4),realUsdValue:w?void 0:m?.toString(),error:w?ee().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:v,tooltipContainer:N(),onSelectMaxBalance:()=>{let b=B(k,S?.decimals),E=S?.amount?b:"";u(E)},anyWalletConnected:g.length>0}),Gn.createElement(wl,null)),Gn.createElement(jf,{sharpBottomStyle:!r&&(!!d||e),label:Kf.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:B(pt(m,f),2,2),warningLevel:Pt(L??0),price:{value:B(h,6,6),usdValue:I?void 0:B(f,4,4),realValue:h?.toString(),realUsdValue:I?void 0:f?.toString(),error:I?ee().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(xl,"Inputs");import{useCallback as qw,useEffect as Hw,useRef as Gw,useState as Vw}from"react";function Xf(){let{fetch:t,loading:e,cancelFetch:o}=Ci({request:async(n,r)=>await bt().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Xf,"useFetchAllQuotes");var Kw=600;function Bi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Xf(),{excludeLiquiditySources:n,routing:r}=y().config,{connectedWallets:a}=y(),{fromToken:s,toToken:l,inputAmount:p,inputUsdValue:u,selectedQuote:c,sortStrategy:m,resetQuote:h,error:f,warning:d,setSelectedQuote:g,updateQuotePartialState:C}=F(),{slippage:S,customSlippage:T,affiliatePercent:k,affiliateRef:v,affiliateWallets:w,fetchStatus:I}=y(),L=y().getLiquiditySources(),b=y().getDisabledLiquiditySources(),E=y().excludeLiquiditySources(),{findToken:x}=y(),[W,D]=Vw(!0),A=Gw(p),Z=T??S,J=!s||!l||Mt(s,l)||!cn(p),M=i(H=>{D(H)},"resetState"),K=i(H=>{let{fromToken:de,toToken:fe,inputAmount:Pe,liquiditySources:z,excludeLiquiditySources:Ve,disabledLiquiditySources:kt,slippage:at,affiliateRef:vt,affiliatePercent:$,affiliateWallets:Q}=H;if(W||M(!0),!J&&de&&fe){h();let G=Rc({fromToken:de,toToken:fe,inputAmount:Pe,liquiditySources:z,excludeLiquiditySources:Ve,disabledLiquiditySources:kt,wallets:a,slippage:at,affiliateRef:vt,affiliatePercent:$,affiliateWallets:Q});Wo("experimental",r)&&(G.experimental=!0),Wo("avoidNativeFee",r)&&(G.avoidNativeFee=!0),Wo("enableCentralizedSwappers",r)&&(G.enableCentralizedSwappers=!0),r?.maxLength&&(G.maxLength=r.maxLength),e(G).then(oe=>{let le=$r(m,oe.results),pe=du(c,le,oe.requestAmount);D(!1),C("quotes",oe),g(pe),Ti({diagnosisMessages:oe.diagnosisMessages,requestId:pe?.requestId||"",swaps:pe?.swaps});let Fe=mo(pe)||fe?.usdPrice,or=Cn(pe)||de?.usdPrice,no=pe&&Uo(pe,{fromToken:{...de,usdPrice:or},toToken:{...fe,usdPrice:Fe},userSlippage:Z,findToken:x});C("warning",no)}).catch(oe=>{let{error:le}=ki(oe);(le?.type===0||le?.type===1)&&h(),le?.type!==2&&(C("error",le),D(!1))})}},"fetch"),se=qw(Ip(H=>{K(H)},Kw),[J]);return Hw(()=>{if(!t){D(!1);return}if(I!=="success")return;if(J){D(!1),(c||f||d)&&h();return}if(!cn(p)||u?.eq(0)){M(!1),o();return}h(),M(!0);let H=K;return A.current&&A.current!=p&&(H=se),A.current=p,H({inputAmount:p,fromToken:s,toToken:l,liquiditySources:L,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:Z,affiliateRef:v,affiliatePercent:k,affiliateWallets:w}),o},[I,p,s?.symbol,s?.address,s?.blockchain,l?.symbol,l?.address,l?.blockchain,J,L?.length,n,b.length,Z,v,k,JSON.stringify(w)]),{fetch:()=>K({inputAmount:p,fromToken:s,toToken:l,liquiditySources:L,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:Z,affiliateRef:v,affiliatePercent:k,affiliateWallets:w}),loading:W}}i(Bi,"useSwapInput");function Yf(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};ge.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Yf,"emitPreventableEvent");var ex=Yw("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),tx=300;function eg(){let t=Rw(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:h}=F(),[f,d]=Rf(!1),{isLargeScreen:g,isExtraLargeScreen:C}=ui(),{fetch:S,loading:T}=Bi({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:w}=y(),{isActiveTab:I}=ae(),[L,b]=Rf(!1),x=Kc({fetchMetaStatus:v,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),W=Kp(g,C,k?.variant),D=!!n&&!!e&&!!o&&new Jw(n).gt(0)&&!lu(e,o),A=D&&v==="success"&&T,J=(!W||W&&p?.results.length)&&(l||s);Jf(()=>{c(),h("refetchQuote",!0)},[]),Jf(()=>{d(D)},[D]);let M=(r||s)&&!L?S:void 0,K=i(H=>{W&&f?(d(!1),setTimeout(()=>{t(H)},tx)):t(H)},"onHandleNavigation"),se=i(H=>{r?.requestId!==H.requestId&&(b(!1),u(H))},"onClickOnQuote");return He.createElement(ex,null,He.createElement(te,{height:"auto",footer:He.createElement(Xw,{id:`widget-swap-${x.action}-btn`,type:"primary",size:"large",disabled:x.disabled||!I,prefix:x.action==="confirm-warning"&&He.createElement(Zw,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?Yf({type:"clickConnectWallet"},()=>K(_.wallets)):x.action==="confirm-warning"?b(!0):K(_.confirmSwap)}},x.title),header:{onWallet:()=>{K(_.wallets)},hasBackButton:!1,title:k.title||jw.t("Swap"),suffix:He.createElement(go,{hidden:W?["refresh"]:void 0,onClickRefresh:M,onClickHistory:()=>K(_.swaps),onClickSettings:()=>{K(_.settings)}})}},He.createElement(ne,null,He.createElement(xl,{fetchingQuote:A,fetchMetaStatus:v,isExpandable:W,onClickToken:H=>{K(H==="from"?_.fromSwap:_.toSwap)}}),He.createElement(Zf,{size:"2"}),W?null:He.createElement(To,{quote:r,loading:A,error:s,tagHidden:!1,warning:l,type:"basic",onClickAllRoutes:p&&p.results.length>1?()=>{h("refetchQuote",!1),K(_.routes)}:void 0}),J?He.createElement(He.Fragment,null,He.createElement(Zf,{size:"10"}),He.createElement(In,{warning:l,error:s,couldChangeSettings:!0,refetchQuote:S,showWarningModal:L,confirmationDisabled:!I,onOpenWarningModal:()=>b(!0),onCloseWarningModal:()=>b(!1),onConfirmWarningModal:()=>{b(!1),m(!0),K(_.confirmSwap)},onChangeSettings:()=>K(_.settings)})):null,He.createElement(yl,null))),W?He.createElement(Tl,{loading:A,onClickOnQuote:se,fetch:S,onClickRefresh:M,isVisible:f}):null)}i(eg,"Home");import{i18n as tg}from"@lingui/core";import{Alert as ox,Divider as nx,List as rx,ListItemButton as ix,Radio as ax,RadioRoot as sx,Typography as lx}from"@rango-dev/ui";import Wt from"react";function Rt(){let{setLanguage:t,language:e,config:o}=y(),n=Rp,r=o?.language||Bo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Bo),resetLanguage:()=>t(null)}}i(Rt,"useLanguage");function og(){let{activeLanguage:t,changeLanguage:e,languages:o}=Rt(),n=Xe(),r=o.map(a=>{let{local:s,label:l,SVGFlag:p}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Wt.createElement(lx,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Wt.createElement(ax,{value:s}),start:Wt.createElement(p,null)}});return Wt.createElement(te,{header:{title:tg.t("Language")}},Wt.createElement(ne,null,Wt.createElement(ox,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Wt.createElement(nx,{size:"8"}),Wt.createElement(sx,{value:t},Wt.createElement(rx,{type:Wt.createElement(ix,{title:tg.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(og,"LanguagePage");import{i18n as Ut}from"@lingui/core";import{Button as dx,Checkbox as fx,Image as gx,ListItemButton as hx,NotFound as yx,Typography as Sx}from"@rango-dev/ui";import Ge,{useState as Cx}from"react";import{Checkbox as ux,Skeleton as rg}from"@rango-dev/ui";import Kn from"react";import{styled as bl}from"@rango-dev/ui";var Vn=bl("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),El=bl("div",{width:80,display:"flex",justifyContent:"flex-end"}),Il=bl("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as px,styled as cx}from"@rango-dev/ui";var ng=cx(px,{height:61});var mx=30;function Al(){return Kn.createElement(Vn,null,Array.from(Array(mx),(t,e)=>Kn.createElement(ng,{hasDivider:!0,key:e,start:Kn.createElement(rg,{variant:"circular",width:35,height:35}),title:Kn.createElement(rg,{variant:"text",size:"large",width:90}),end:Kn.createElement(ux,{checked:!1})})))}i(Al,"LoadingLiquiditySourceList");function Nl({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=Cx(""),s=y().toggleLiquiditySource,l=y().isInCampaignMode(),p=yr(o,n),u={Exchanges:Ut.t("Exchanges"),Bridges:Ut.t("Bridges")},c=[];t==="Exchanges"&&c.push("DEX"),t==="Bridges"&&c.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=p.filter(S=>c.includes(S.type)),h=m.length===m.filter(S=>S.selected).length,f=i(()=>{m.forEach(S=>{h?s(S.groupTitle):S.selected||s(S.groupTitle)})},"toggleAllSources"),d=m.map(S=>{let{selected:T,groupTitle:k,logo:v,id:w,...I}=S;return{id:`widget-setting-liquidity-source-${w.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:Ge.createElement(gx,{src:v,size:22,type:"circular"}),onClick:()=>{l||s(k)},end:Ge.createElement(fx,{checked:T,disabled:l}),title:Ge.createElement(Sx,{variant:"title",size:"xmedium"},Ut.t(k)),selected:T,groupTitle:k,logo:v,...I}}),g=i(S=>{let T=S.target.value;a(T)},"handleSearch"),C=d;return r&&(C=d.filter(S=>wt(S.groupTitle,r))),Ge.createElement(te,{header:{title:Ut.t(t),suffix:Ge.createElement(El,null,Ge.createElement(dx,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:f},h?Ut.t("Deselect all"):Ut.t("Select all")))}},Ge.createElement(ne,{view:!0},Ge.createElement(St,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Ut.t("Search {sourceType}",{sourceType:u[t]}),onChange:g}),e==="loading"&&Ge.createElement(Al,null),!C.length&&r?Ge.createElement(Il,null,Ge.createElement(yx,{title:Ut.t("No results found"),description:Ut.t("Try using different keywords")})):e==="success"&&Ge.createElement(Vn,{disabled:l},C.map(S=>{let{groupTitle:T,...k}=S;return Ge.createElement(Ge.Fragment,{key:S.id},Ge.createElement(hx,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))}))))}i(Nl,"LiquiditySourcePage");import{i18n as Tx}from"@lingui/core";import Mi from"react";import{useNavigate as kx}from"react-router-dom";function ig(){let t=kx(),e=Xe(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=F(),{fetch:l,loading:p}=Bi({refetchQuote:n}),u=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${_.settings}`,m=`../${_.wallets}`;return Mi.createElement(te,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:Tx.t("Routes"),suffix:Mi.createElement(go,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Mi.createElement(ne,null,Mi.createElement(Hn,{fetch:l,loading:p,onClickOnQuote:u})))}i(ig,"RoutesPage");import{i18n as mg}from"@lingui/core";import{Divider as dg,getCategoriesCount as Bx,SelectableCategoryList as Mx}from"@rango-dev/ui";import zt,{useState as fg}from"react";import{useNavigate as Lx}from"react-router-dom";import{i18n as Wl}from"@lingui/core";import{Divider as bx,Image as Ex,ListItemButton as Ix,NotFound as Ax,Typography as ug}from"@rango-dev/ui";import nt,{useEffect as Nx,useState as Wx}from"react";var ag=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 vx,styled as sg}from"@rango-dev/ui";var lg=sg("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Li=sg(kn,{padding:0,margin:0,listStyle:"none",[`& ${vx}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as wx,Skeleton as pg}from"@rango-dev/ui";import Pi from"react";var xx=20;function cg(){return Pi.createElement(Li,null,Array.from(Array(xx),t=>Pi.createElement(wx,{key:t,hasDivider:!0,start:Pi.createElement(pg,{variant:"circular",width:35,height:35}),title:Pi.createElement(pg,{variant:"text",size:"large",width:90})})))}i(cg,"LoadingBlockchainList");function Bl(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=Wx(e),{fetchStatus:p}=y();Nx(()=>{l([...ag(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?nt.createElement(Ax,{title:Wl.t("No results found"),description:Wl.t("Try using different keywords")}):nt.createElement(Li,{as:"ul",key:`${r}-${o}`},s.map(c=>nt.createElement(Ix,{key:`${c.name}-${c.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(c),start:nt.createElement(Ex,{src:c.logo,size:30}),title:nt.createElement(ug,{variant:"title",size:"medium"},c.displayName),id:c.name}))),"renderList");return nt.createElement(nt.Fragment,null,a&&nt.createElement(nt.Fragment,null,nt.createElement(ug,{variant:"label",size:"large"},Wl.t("Select Chain")),nt.createElement(bx,{size:4})),nt.createElement(lg,null,p==="loading"&&nt.createElement(cg,null),p==="success"&&u()))}i(Bl,"BlockchainList");function Di(t){let{type:e}=t,o=Xe(),[n,r]=fg(""),[a,s]=fg("ALL"),l=F.use.setToBlockchain(),p=F.use.setFromBlockchain(),{fetchStatus:u}=y(),c=Lx(),m=y().blockchains({type:e}),h=Bx(m),f=!t.hideCategory&&h!==1;return zt.createElement(te,{header:{title:mg.t("Select Chain")}},zt.createElement(ne,{view:!0},f&&zt.createElement(zt.Fragment,null,zt.createElement(Mx,{setCategory:s,category:a,blockchains:m,isLoading:u==="loading"}),zt.createElement(dg,{size:24})),zt.createElement(St,{value:n,autoFocus:!0,placeholder:mg.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),zt.createElement(dg,{size:16}),zt.createElement(Bl,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:d=>{e==="custom-token"?c(`..?blockchain=${d.name}`,{replace:!0}):(e==="source"?p(d):l(d),o())}})))}i(Di,"SelectBlockchainPage");import{i18n as $i}from"@lingui/core";import{Divider as Tg}from"@rango-dev/ui";import xo,{useState as zx}from"react";import{useNavigate as Qx}from"react-router-dom";import{i18n as Pl}from"@lingui/core";import{BlockchainsChip as _i,Divider as Sg,Image as Cg,Skeleton as Fx,Tooltip as Ox,Typography as Dl}from"@rango-dev/ui";import Me from"react";import{useEffect as _x}from"react";var gg=["ETH","COSMOS","OSMOSIS"];function Ml(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(Px),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 p=0;p<=l;p++){let u=n[p];s=s.filter(c=>u.name!==c)}}n.sort(Dx(s)),r=n.splice(a)}return{list:n,more:r}}i(Ml,"prepare");function Px(t,e){let o=gg,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(Px,"sortByMostUsedBlockchains");function Dx(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),a=t.findIndex(p=>p===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(Dx,"generateSortByPreferredBlockchainsFor");function hg(t,e){return!!e.list.find(o=>o.name===t)}i(hg,"isInVisibleList");function Ll(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();_x(()=>{if(e?.selected){let a=Ml(t,o,e);hg(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Ml(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Ll,"usePrepareBlockchainList");import{styled as $x}from"@rango-dev/ui";var yg=$x("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Ux=12;function _l(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Ll(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=F.use.resetToBlockchain(),u=F.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,h=!m&&c;return Me.createElement(Me.Fragment,null,Me.createElement(Sg,{size:12}),Me.createElement(Dl,{variant:"label",size:"large"},Pl.t("Select Chain")),Me.createElement(Sg,{size:12}),Me.createElement(yg,null,l==="loading"&&Array.from(Array(Ux),f=>Me.createElement(Fx,{key:f,variant:"rounded",height:50})),l==="success"&&Me.createElement(Me.Fragment,null,Me.createElement(_i,{selected:!n,onClick:()=>{o==="from"?u():p()}},Me.createElement(Dl,{variant:"body",size:"xsmall",color:"secondary500"},Pl.t("All"))),s.list.map(f=>Me.createElement(Ox,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:N()},Me.createElement(_i,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},Me.createElement(Cg,{src:f.logo,size:30})))),m?Me.createElement(_i,{key:s.more[0].name,selected:!!n&&n.name===s.more[0].name,onClick:()=>r(s.more[0])},Me.createElement(Cg,{src:s.more[0].logo,size:30})):null,h?Me.createElement(_i,{onClick:a,key:"more-blockchains"},Me.createElement(Dl,{variant:"body",size:"xsmall",color:"secondary500"},Pl._("More +{count}",{count:s.more.length}))):null)))}i(_l,"BlockchainsSection");function $l(t){let{type:e}=t,o=Qx(),n=Xe(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=F(),{getBalanceFor:c}=y(),[m,h]=zx(""),d=(e==="source"?r:a)?.name??"",g=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:d,searchFor:m,getBalanceFor:c}),S=i(v=>{e==="source"?p(v):u(v)},"updateBlockchain"),T=i(v=>{e==="source"?s({token:v,meta:{blockchains:g,tokens:C}}):l({token:v,meta:{blockchains:g,tokens:C}})},"updateToken"),k={source:$i.t("Source"),destination:$i.t("Destination")};return xo.createElement(te,{header:{title:$i.t("Swap {type}",{type:k[e]})}},xo.createElement(ne,null,xo.createElement(_l,{blockchains:g,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(_.blockchains),onChange:v=>{S(v)}}),xo.createElement(Tg,{size:24}),xo.createElement(St,{value:m,autoFocus:!0,placeholder:$i.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>h(""),onChange:v=>h(v.target.value)}),xo.createElement(Tg,{size:16}),xo.createElement(Fn,{list:C,selectedBlockchain:d,searchedFor:m,type:e,onChange:v=>{T(v);let w=g.find(I=>v.blockchain===I.name);w&&S(w),n()}})))}i($l,"SelectSwapItemsPage");import{i18n as Ul}from"@lingui/core";import{Alert as fb,Button as gb,styled as hb}from"@rango-dev/ui";import bo from"react";import{useInRouterContext as yb,useSearchParams as Sb}from"react-router-dom";import{i18n as Eg}from"@lingui/core";import{Divider as Ig,InfoIcon as Vx,SlippageIcon as Kx,TextField as jx,Tooltip as Xx,Typography as Ag}from"@rango-dev/ui";import rt from"react";import{Chip as qx,styled as jn,TextField as Hx}from"@rango-dev/ui";var kg=jn("div",{paddingTop:"$5",padding:"$10 $5"}),vg=jn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Hx}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),wg=jn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Fi=jn("div",{maxWidth:"280px",padding:"$10"}),xg=jn(qx,{width:"61px",flexShrink:0});import{i18n as Fl}from"@lingui/core";import{Typography as Gx}from"@rango-dev/ui";import Xn from"react";function bg(){return Xn.createElement(Fi,null,Xn.createElement(Gx,{variant:"label",size:"medium",color:"neutral700"},Fl.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,Fl.t("Warning")),":\xA0",Fl.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(bg,"SlippageTooltipContent");function Ol(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return rt.createElement(kg,null,rt.createElement(wg,null,rt.createElement(Kx,{size:16,color:"gray"}),rt.createElement(Ig,{direction:"horizontal",size:4}),rt.createElement(Ag,{variant:"title",size:"xmedium"},Eg.t("Slippage tolerance per swap")),rt.createElement(Ig,{direction:"horizontal",size:4}),rt.createElement(Xx,{container:N(),side:"top",sideOffset:4,content:rt.createElement(bg,null)},rt.createElement(Vx,{color:"gray"}))),rt.createElement(vg,null,ec.map((r,a)=>{let s=`slippage-${a}`;return rt.createElement(xg,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),rt.createElement(jx,{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>=rc&&s<=nc?n(s):n(null)},suffix:o&&rt.createElement(Ag,{variant:"body",size:"small"},"%"),placeholder:Eg.t("Custom")})))}i(Ol,"Slippage");import{i18n as mt}from"@lingui/core";import{AutoThemeIcon as Ng,BridgesIcon as Yx,ChevronRightIcon as Oi,DarkModeIcon as Wg,Divider as Yn,ExchangeIcon as Zx,InfinityIcon as Jx,InfoIcon as Rx,LanguageIcon as eb,LightModeIcon as Bg,List as tb,ListItem as ob,ListItemButton as nb,Skeleton as rb,styled as ib,Switch as ab,Tabs as sb,TargetIcon as lb,Tooltip as pb,Typography as Ze}from"@rango-dev/ui";import P from"react";import{useNavigate as cb}from"react-router-dom";var ub=ib("div",{width:"202px",height:"$40"}),mb=[{id:"light",icon:P.createElement(Bg,{color:"black",size:24}),tooltip:P.createElement(Ze,{size:"xsmall",variant:"body"},mt.t("Light"))},{id:"dark",icon:P.createElement(Wg,{color:"black",size:24}),tooltip:P.createElement(Ze,{size:"xsmall",variant:"body"},mt.t("Dark"))},{id:"auto",icon:P.createElement(Ng,{color:"black",size:24}),tooltip:P.createElement(Ze,{size:"xsmall",variant:"body"},mt.t("Auto"))}],db=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return P.createElement(Ng,{...e});case"dark":return P.createElement(Wg,{...e});default:return P.createElement(Bg,{...e})}},"getThemeIcon");function Mg(){let t=cb(),{theme:e}=y().config,{setTheme:o,theme:n}=y(),{activeLanguage:r,languages:a}=Rt(),s=a.find(M=>M.local===r)?.label,l=y().fetchStatus,p=y().swappers(),u=y().getDisabledLiquiditySources(),{config:{features:c}}=y(),m=y().customTokens(),h=Ke("theme",c),f=Ke("liquiditySource",c),d=Ke("language",c),g=Ke("customTokens",c),C=y().infiniteApprove,S=y().toggleInfiniteApprove,T=yr(p,u),k=T.filter(M=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(M.type)),v=k.length,w=k.filter(M=>M.selected).length,I=T.filter(M=>M.type==="DEX"),L=I.length,b=I.filter(M=>M.selected).length,E=i((M,K)=>{switch(l){case"loading":return P.createElement(rb,{variant:"text",size:"medium",width:50});case"failed":return P.createElement(Ze,{variant:"body",size:"medium",color:"$error500"},mt.t("Loading failed"));default:return P.createElement(Ze,{variant:"body",size:"medium"},`${M} / ${K}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:P.createElement(Ze,{variant:"title",size:"xmedium"},mt.t("Bridges")),end:P.createElement(P.Fragment,null,E(w,v),P.createElement(Yn,{direction:"horizontal",size:8}),P.createElement(Oi,{color:"black"})),onClick:()=>t(_.bridges),start:P.createElement(Yx,{color:"gray",size:16})},W={id:"widget-setting-exchange-item-btn",title:P.createElement(Ze,{variant:"title",size:"xmedium"},mt.t("Exchanges")),end:P.createElement(P.Fragment,null,E(b,L),P.createElement(Yn,{direction:"horizontal",size:8}),P.createElement(Oi,{color:"black"})),start:P.createElement(Zx,{color:"gray",size:16}),onClick:()=>t(_.exchanges)},D={id:"widget-setting-custom-tokens-item-btn",title:P.createElement(Ze,{variant:"title",size:"xmedium"},mt.t("Custom Tokens")),end:P.createElement(P.Fragment,null,P.createElement(Ze,{variant:"body",size:"medium"},`${m.length}`),P.createElement(Yn,{direction:"horizontal",size:8}),P.createElement(Oi,{color:"black"})),start:P.createElement(lb,{color:"gray",size:16}),onClick:()=>t(_.customTokens)},A={id:"widget-setting-language-item-btn",title:P.createElement(Ze,{variant:"title",size:"xmedium"},mt.t("Language")),start:P.createElement(eb,{color:"gray",size:16}),end:P.createElement(P.Fragment,null,P.createElement(Ze,{variant:"body",size:"medium"},s),P.createElement(Yn,{direction:"horizontal",size:8}),P.createElement(Oi,{color:"black"})),onClick:()=>t(_.languages)},Z={id:"widget-setting-infinite-approval-item-btn",title:P.createElement(P.Fragment,null,P.createElement(Ze,{variant:"title",size:"xmedium"},mt.t("Infinite approval")),P.createElement(Yn,{direction:"horizontal",size:4}),P.createElement(pb,{side:"top",sideOffset:4,container:N(),content:P.createElement(Fi,null,P.createElement(Ze,{variant:"label",size:"medium",color:"neutral700"},P.createElement("b",null,mt.t("Warning")),":\xA0",mt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},P.createElement(Rx,{color:"gray"}))),start:P.createElement(Jx,{color:"gray",size:16}),end:P.createElement(ab,{checked:C}),onClick:S},ie={id:"widget-setting-theme-item-btn",type:P.createElement(ob,null),title:P.createElement(Ze,{variant:"title",size:"xmedium"},mt.t("Theme")),end:P.createElement(ub,null,P.createElement(sb,{container:N(),items:mb,value:n,onChange:M=>o(M.id),type:"primary",borderRadius:"small"})),start:db(n)},J=f?[]:[x,W];return g||J.push(D),d||J.push(A),J.push(Z),!e?.singleTheme&&!h&&J.push(ie),P.createElement(tb,{type:P.createElement(nb,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:J})}i(Mg,"SettingsLists");var Cb=hb("div",{paddingLeft:"$8"});function Lg(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=Sb(),r=yb(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return bo.createElement(te,{header:{title:Ul.t("Settings")}},bo.createElement(ne,null,o&&bo.createElement(fb,{type:"info",variant:"alarm",title:Ul.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:bo.createElement(Cb,null,bo.createElement(gb,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Ul.t("Reset")))}),bo.createElement(Ol,null),bo.createElement(Mg,null)))}i(Lg,"SettingsPage");import{i18n as aE}from"@lingui/core";import{cancelSwap as sE}from"@rango-dev/queue-manager-rango-preset";import{useManager as lE}from"@rango-dev/queue-manager-react";import{Alert as pE}from"@rango-dev/ui";import np from"react";import{useParams as cE}from"react-router-dom";import{i18n as it}from"@lingui/core";import{getCurrentBlockchainOfOrNull as zb,getCurrentStep as Qb,getRelatedWalletOrNull as qb}from"@rango-dev/queue-manager-rango-preset";import{Button as ch,CopyIcon as Hb,Divider as Gb,DoneIcon as Vb,IconButton as Kb,QuoteCost as jb,RangoExplorerIcon as Xb,StepDetails as Yb,Tooltip as uh,Typography as Eo,useCopyToClipboard as Zb}from"@rango-dev/ui";import{useWallets as Jb}from"@rango-dev/wallets-react";import mh from"bignumber.js";import{PendingSwapNetworkStatus as ji}from"rango-types";import j,{useEffect as dh,useRef as Rb,useState as fh}from"react";import{useNavigate as eE}from"react-router-dom";import{i18n as eo}from"@lingui/core";var Tb=[eo.t("Sunday"),eo.t("Monday"),eo.t("Tuesday"),eo.t("Wednesday"),eo.t("Thursday"),eo.t("Friday"),eo.t("Saturday")];function Pg(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"):`${Tb[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Pg,"timeSince");function Dg(t){return t.finishTime?Pg(parseInt(t.finishTime)):Pg(parseInt(t.creationTime))}i(Dg,"getSwapDate");import{PendingSwapNetworkStatus as Qi}from"rango-types";import qi from"react";import{i18n as Ui}from"@lingui/core";import{Button as _g,Divider as zl,MessageBox as kb}from"@rango-dev/ui";import to from"react";var $g=i(({onCancel:t,onClose:e})=>to.createElement(to.Fragment,null,to.createElement(zl,{size:20}),to.createElement(kb,{type:"error",title:Ui.t("Cancel Swap"),description:Ui.t("Are you sure you want to cancel this swap?")}),to.createElement(zl,{size:32}),to.createElement(_g,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Ui.t("Yes, Cancel it")),to.createElement(zl,{size:12}),to.createElement(_g,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Ui.t("No, Continue"))),"CancelContent");import{i18n as zi}from"@lingui/core";import{Button as Fg,Divider as Ql,MessageBox as vb,Typography as wb}from"@rango-dev/ui";import Qt from"react";var Og=i(({onDelete:t,onClose:e})=>Qt.createElement(Qt.Fragment,null,Qt.createElement(Ql,{size:20}),Qt.createElement(vb,{type:"error",title:zi.t("Delete Transaction"),description:zi.t("Are you sure you want to delete this swap?")}),Qt.createElement(Ql,{size:32}),Qt.createElement(Fg,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},zi.t("Yes, Delete it")),Qt.createElement(Ql,{size:12}),Qt.createElement(Fg,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Qt.createElement(wb,{variant:"title",size:"medium",color:"primary"},zi.t("No, Cancel")))),"DeleteContent");import{i18n as ql}from"@lingui/core";import{PendingSwapNetworkStatus as Hl}from"rango-types";var Gl={[Hl.WaitingForNetworkChange]:{type:"loading",title:ql.t("Change Network")},[Hl.WaitingForConnectingWallet]:{type:"warning",title:ql.t("Connect Wallet")},[Hl.NetworkChanged]:{type:"success",title:ql.t("Network Changed")}};import{warn as xb}from"@rango-dev/logging-core";import{MessageBox as bb,Wallet as Eb}from"@rango-dev/ui";import{useWallets as Ib}from"@rango-dev/wallets-react";import tn,{useState as Ab}from"react";import{styled as Ug}from"@rango-dev/ui";var zg=Ug("div",{display:"flex",justifyContent:"center"}),T5=Ug("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Qg=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,p]=Ab(),{getWalletInfo:u,state:c}=Ib(),m=n?.walletType,h=m?un(c(m)):null,f=m?u(m):null,d=a&&!!m&&!!h&&!!f,{list:g}=dt(),C=i(()=>{if(m){let S=g.find(T=>T.type===m);S?p(S):xb(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${S}`))}},"handleWalletItemClick");return tn.createElement(tn.Fragment,null,tn.createElement(bb,{type:e,title:o,description:r}),d&&tn.createElement(zg,null,tn.createElement(Eb,{container:N(),title:f.name,image:f.img,type:m,state:h,link:f.installLink,disabled:s,onClick:C})),tn.createElement(co,{wallet:l,onClose:()=>{p(void 0)}}))},"WalletStateContent");function Vl(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:a,message:s,walletButtonDisabled:l}=t,p=e===Qi.WaitingForNetworkChange||e===Qi.WaitingForConnectingWallet||e===Qi.NetworkChanged;return qi.createElement(R,{open:!!e,onClose:o,container:document.getElementById(De.SWAP_BOX_ID)||document.body},p&&qi.createElement(Qg,{type:Gl[e].type,title:Gl[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==Qi.WaitingForNetworkChange}),e==="delete"&&qi.createElement(Og,{onClose:o,onDelete:n}),e==="cancel"&&qi.createElement($g,{onClose:o,onCancel:r}))}i(Vl,"SwapDetailsModal");import{i18n as Zn}from"@lingui/core";import{Button as Kl,Divider as Hi,MessageBox as qg,TokenAmount as Nb,Typography as jl}from"@rango-dev/ui";import $e from"react";import{useNavigate as Wb}from"react-router-dom";function Xl(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:l,token:p,chain:u,percentageChange:c,description:m,diagnosisUrl:h}=t,f=Wb();return $e.createElement(R,{open:e,onClose:o,container:document.getElementById(De.SWAP_BOX_ID)||document.body},n==="success"?$e.createElement(qg,{type:"success",title:Zn.t("Swap Successful")},$e.createElement(Nb,{direction:"vertical",tooltipContainer:N(),type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:l},token:p,chain:u,percentageChange:c}),$e.createElement(Hi,{size:12}),$e.createElement(jl,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):$e.createElement(qg,{type:"error",title:Zn.t("Transaction Failed"),description:m}),$e.createElement(Hi,{size:32}),n==="success"&&$e.createElement(Kl,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},$e.createElement(jl,{variant:"title",size:"medium",color:"neutral100"},Zn.t("Done"))),$e.createElement(Hi,{size:12}),h&&$e.createElement($e.Fragment,null,$e.createElement(Kl,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},Zn.t("Diagnosis")),$e.createElement(Hi,{size:12})),$e.createElement(Kl,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},$e.createElement(jl,{variant:"title",size:"medium",color:"primary"},Zn.t("See Details"))))}i(Xl,"SwapDetailsCompleteModal");import Ub from"react";import{i18n as _b}from"@lingui/core";import{Alert as ah,IconButton as $b,LinkIcon as Fb}from"@rango-dev/ui";import oo,{Fragment as Ob}from"react";import{Alert as Mb,ChevronDownIcon as Lb,IconButton as Pb}from"@rango-dev/ui";import nn,{useState as Db}from"react";import{css as Jn,darkTheme as Hg,styled as qt,Typography as Bb}from"@rango-dev/ui";var Gg=qt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Gi=qt("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Hg} &`]:{color:"$secondary500"}}}}}),Vg=qt(kn,{padding:"$0 $20 $20 $20"}),nK=qt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Kg=qt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),rK=qt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),on=Jn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Hg} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),jg=Jn({padding:"$5 0"}),Vi=Jn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Xg=Jn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Yg=Jn({width:"100%",padding:"0 $20 $10"}),Zg=qt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),Jg=qt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ki=qt(Bb,{wordBreak:"break-word"});import{styled as Yl}from"@rango-dev/ui";var Rg=Yl("div",{display:"flex",flexDirection:"column",gap:"$10"}),eh=Yl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),th=Yl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function oh(t){let{message:e}=t,[o,n]=Db(!1);return nn.createElement(Mb,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&nn.createElement(Pb,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},nn.createElement(eh,{rotated:o},nn.createElement(Lb,{size:12,color:"gray"}))),footer:nn.createElement(th,{open:o},nn.createElement(Ki,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(oh,"FailedAlert");import{i18n as nh}from"@lingui/core";import{Alert as Zl,Button as rh}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Jl}from"rango-types";import Rn from"react";function ih(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Rn.createElement(Zl,{type:"warning",title:n.shortMessage,action:Rn.createElement(rh,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Jl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},nh.t("Change"))}):r===Jl.WaitingForConnectingWallet?Rn.createElement(Zl,{type:"warning",title:n.shortMessage,action:Rn.createElement(rh,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Jl.WaitingForConnectingWallet)}},nh.t("Connect"))}):Rn.createElement(Zl,{type:"warning",title:n.shortMessage})}i(ih,"WarningAlert");function Rl(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,l=Sn(a),p=a.status==="waitingForApproval"&&!l,u=a.status==="running"&&!l,c=u&&!s||p&&!a.explorerUrl?.length;return oo.createElement(Rg,null,a.explorerUrl?.map((m,h,f)=>{let d=h+m.url,g=h===f.length-1,C=(g&&u||p)&&!c,S=g&&a.status==="failed";return oo.createElement(Ob,{key:d},oo.createElement(ah,{type:g&&(C&&"loading"||S&&"error")||"success",title:m.description?`${m.description} Tx`:_b.t("View transaction"),action:m.url&&oo.createElement($b,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},oo.createElement(Fb,{size:12}))}))}),c&&oo.createElement(ah,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&oo.createElement(ih,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&oo.createElement(oh,{message:r}))}i(Rl,"SwapDetailsAlerts");var sh=2e3;var lh=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:B(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:st(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:B(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:rn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:st(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:st(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:rn(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Ub.createElement(Rl,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function ph(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(ph,"getStepState");function ep(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=Jb(),p=y().blockchains(),u=y().swappers(),{findToken:c}=y(),m=F.use.retry(),h=ae.use.isActiveTab(),f=eE(),[d,g]=Zb(sh),C=Rb(null),[S,T]=fh(null),[k,v]=fh(null),w=i(()=>{r(),T(null)},"onCancel"),I=ve.use.getNotifications(),L=ve.use.removeNotification(),b=I(),E=Qb(e),x=E?.networkStatus;dh(()=>{b.find(Fe=>Fe.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),L(e.requestId)):k&&v(null))},[e.status,e.requestId]),dh(()=>{M?T(ji.WaitingForNetworkChange):x===ji.WaitingForConnectingWallet||x===ji.NetworkChanged?T(x):T(null)},[x]);let W=iu(e),D=E?zb(e,E):null,A=E?qb(e,E):null,Z=Dg(e),ie=au(e),J=i(pe=>!!l(pe)?.mobileWallet,"isMobileWallet"),M=x===ji.WaitingForNetworkChange&&!!D&&!!A?.walletType&&(J(A.walletType)||a(A.walletType,D)),K=M?s.bind(null,A.walletType,[{namespace:"DISCOVER_MODE",network:D}]):void 0,se=ru(e,E),H=lh({swap:e,switchNetwork:K,showNetworkModal:x,setNetworkModal:T,message:se,blockchains:p,swappers:u}),de=H.length,[fe,Pe]=[e.steps[0],e.steps[de-1]],z=Pe.outputAmount||Pe.expectedOutputAmountHumanReadable,Ve=e.steps.reduce((pe,Fe)=>pe+parseFloat(Fe.feeInUsd||""),0),kt=e.steps.find(pe=>pe.diagnosisUrl)?.diagnosisUrl,at=B(parseFloat(z||"0")*(Pe.toUsdPrice||0),4,4),vt=B(parseFloat(e.inputAmount)*(fe.fromUsdPrice||0),4,4),$=z?new mh(z).multipliedBy(Pe.toUsdPrice||0).toString():"",Q=new mh(e.inputAmount).multipliedBy(fe.fromUsdPrice||0).toString(),G=pt(vt,at),oe=se.detailedMessage.content||se.shortMessage,le=e.status==="success"?it.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:B(z,6,6),token:H[de-1].to.token.displayName,conciseAddress:gr(e.wallets[H[de-1].to.chain.displayName]?.address||""),chain:H[de-1].to.chain.displayName}}):j.createElement(Jg,null,j.createElement(Eo,{variant:"body",size:"medium",color:"neutral700",align:"center"},oe?"":it.t("Transaction was not sent."),W?`${it.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:W.outputAmount,symbol:W.symbol,blockchain:W.blockchain}})}`:""),oe&&j.createElement(Ki,{align:"center",variant:"body",size:"medium",color:"neutral700"},j.createElement("b",null,"Reason:")," ",oe));return j.createElement(te,{header:{title:it.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&j.createElement(Gt,null,j.createElement(ch,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},j.createElement(Eo,{size:"medium",variant:"label",color:"error"},it.t("Delete"))))},footer:ie&&!k&&j.createElement(ch,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let pe=_r(e,p,c);m(pe),setTimeout(()=>{f("../../")},0)}},it.t("Try again"))},j.createElement(ne,{compact:!0,view:!0},j.createElement(Gi,null,j.createElement("div",{className:on()},j.createElement(Eo,{variant:"label",size:"large",color:"neutral700"},`${it.t("Request ID")}`),j.createElement("div",{className:Vi()},j.createElement(Eo,{variant:"label",size:"small",color:"neutral700"},o),j.createElement(uh,{container:N(),content:d?it.t("Copied To Clipboard"):it.t("Copy Request ID"),open:d||void 0,side:"bottom",alignOffset:-16,align:"end"},j.createElement(Kb,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:g.bind(null,o||"")},d?j.createElement(Vb,{size:16,color:"secondary"}):j.createElement(Hb,{size:16,color:"gray"}))),j.createElement(Zg,{target:"_blank",href:`${Cp}/swap/${o}`},j.createElement(uh,{container:N(),content:it.t("View on Rango Explorer"),side:"bottom"},j.createElement(Xb,{size:20}))))),j.createElement("div",{className:on()},j.createElement(Eo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?it.t("Finished at"):it.t("Created at")),j.createElement(Eo,{variant:"label",size:"small",color:"neutral700"},Z))),j.createElement("div",{className:Xg()},j.createElement(jb,{fee:B(String(Ve),2,2),time:pn(pr(e.steps)),steps:de}),j.createElement(Nn,{from:{price:{value:B(e.inputAmount,6,6),usdValue:vt,realUsdValue:Q,realValue:e.inputAmount},token:{displayName:H[0].from.token.displayName,image:H[0].from.token.image},chain:{image:H[0].from.chain.image,displayName:H[0].from.chain.displayName}},to:{price:{value:B(z,6,6),usdValue:at,realUsdValue:$,realValue:z||""},token:{displayName:H[de-1].to.token.displayName,image:H[de-1].to.token.image},chain:{image:H[de-1].to.chain.image,displayName:H[de-1].to.chain.displayName}},percentageChange:B(G,2,2),warningLevel:Pt(G??0)})),j.createElement("div",{className:Yg()},j.createElement(Eo,{variant:"title",size:"small"},it.t("Swaps steps"))),j.createElement(Gb,{size:8}),j.createElement(Vg,{ref:C},H.map((pe,Fe)=>{let or=Fe,no=ph(e.steps[Fe]),Qh=no==="error"||no==="in-progress"||no==="warning"||no==="completed"&&Fe===H.length-1;return j.createElement(Yb,{key:or,step:pe,type:"swap-progress",ref:C,state:no,hasSeparator:Fe!==0,tabIndex:or,isFocused:Qh,tooltipContainer:N()})}))),j.createElement(Vl,{state:S,onClose:()=>T(null),onCancel:w,onDelete:n,message:se.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!h}),j.createElement(Xl,{open:!!k,diagnosisUrl:kt,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:B(z,6,6),usdValue:at,realUsdValue:$,realValue:z||"",percentageChange:B(G,2,2),token:{displayName:H[de-1].to.token.displayName,image:H[de-1].to.token.image},chain:{image:H[de-1].to.chain.image},description:le}))}i(ep,"SwapDetails");import{i18n as Yi}from"@lingui/core";import{Divider as yh,NotFound as iE,Skeleton as tr,Typography as Zi}from"@rango-dev/ui";import Se from"react";import{i18n as tE}from"@lingui/core";import{Divider as oE,Skeleton as nE,Typography as rE}from"@rango-dev/ui";import Te from"react";import{css as Tt,styled as tp}from"@rango-dev/ui";var gh=tp("div",{width:"100%",height:"100%",padding:"$10 $20"}),er=tp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Xi=tp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),h4=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),y4=Tt({display:"flex",justifyContent:"space-between",alignItems:"center"}),S4=Tt({paddingTop:"$15",display:"flex"}),C4=Tt({padding:"$15 $0"}),T4=Tt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),k4=Tt({paddingBottom:"$10"}),v4=Tt({display:"flex",justifyContent:"start",alignItems:"center"}),w4=Tt({paddingTop:"$5",display:"flex",alignItems:"center"}),x4=Tt({display:"flex",alignItems:"center"}),b4=Tt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),hh=Tt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function op(){return Te.createElement(gh,null,Te.createElement(Mn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(rE,{variant:"title",size:"small"},tE.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(er,null,Te.createElement(Nt,{separator:!1}),Te.createElement("div",{className:hh()},Te.createElement(oE,{direction:"horizontal",size:20}),Te.createElement(nE,{height:22,variant:"rectangular"}))),Te.createElement(Xi,null),Te.createElement(er,null,Te.createElement(Nt,{separator:!1})),Te.createElement(Xi,null),Te.createElement(er,null,Te.createElement(Nt,{separator:!1})),Te.createElement(Xi,null),Te.createElement(er,null,Te.createElement(Nt,{separator:!1}))))}i(op,"LoadingSwapDetails");function Sh(t){let{requestId:e,showSkeleton:o}=t;return Se.createElement(te,{header:{title:Yi.t("Swap Details"),suffix:Se.createElement(Gt,null)}},o&&Se.createElement(Gg,null,Se.createElement(Gi,null,Se.createElement("div",{className:on()},Se.createElement(Zi,{variant:"label",size:"large",color:"neutral700"},`${Yi.t("Request ID")}`),Se.createElement("div",{className:Vi()},Se.createElement(Zi,{variant:"label",size:"small",color:"neutral700"},Se.createElement(tr,{width:60,height:10,variant:"rounded"})),Se.createElement(yh,{direction:"horizontal",size:4}),Se.createElement(tr,{width:16,height:16,variant:"rectangular"}),Se.createElement(yh,{direction:"horizontal",size:4}),Se.createElement(tr,{width:16,height:16,variant:"rectangular"}))),Se.createElement("div",{className:on()},Se.createElement(Zi,{className:jg(),variant:"label",size:"large",color:"neutral700"},Se.createElement(tr,{width:60,height:10,variant:"rounded"})),Se.createElement(Zi,{variant:"label",size:"small",color:"neutral700"},Se.createElement(tr,{width:60,height:10,variant:"rounded"})))),Se.createElement(op,null)),!o&&Se.createElement(Kg,null,Se.createElement(iE,{title:Yi.t("Not found"),description:Yi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Sh,"SwapDetailsPlaceholder");function Ch(){let{manager:t,state:e}=lE(),o=!e.loadedFromPersistor,n=ct(t),{requestId:r}=cE(),a=Xe(),{fetchStatus:s}=y();if(!r)return np.createElement(pE,{containerStyles:{margin:"20px"},type:"error",title:aE.t("The request ID is necessary to display the swap details.")});let l=o||s==="loading",p=r?n.find(({swap:h})=>h.requestId===r):void 0,u=i(()=>{if(p?.id){let h=t?.get(p.id);h&&sE(h)}},"onCancel"),c=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),a()}catch(h){console.log(h)}},"onDelete"),m=p?.swap;return!m||l?np.createElement(Sh,{requestId:r,showSkeleton:l}):np.createElement(ep,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(Ch,"SwapDetailsPage");import{i18n as Th}from"@lingui/core";import{Divider as uE,getCategoriesCount as mE,SelectableCategoryList as dE,styled as vh,Typography as fE,Wallet as gE}from"@rango-dev/ui";import Bt,{useState as kh}from"react";var hE=vh("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),yE=vh(ne,{textAlign:"center"});function wh(){let{fetchStatus:t}=y(),[e,o]=kh("ALL"),n=y().blockchains(),{config:r}=y(),[a,s]=kh(),l=ae.use.isActiveTab(),{list:p}=dt(),u=Qp(p,n),m=mE(u)!==1,h=qp(p,e),f=i(d=>{Wp(p,r.multiWallets)||s(d)},"handleWalletItemClick");return Bt.createElement(te,{header:{title:Th.t("Connect Wallets")}},Bt.createElement(yE,null,m&&Bt.createElement(Bt.Fragment,null,Bt.createElement(dE,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Bt.createElement(uE,{size:24})),Bt.createElement(fE,{variant:"title",size:"xmedium",align:"center"},Th.t("Choose a wallet to connect.")),Bt.createElement(hE,null,h.map((d,g)=>{let C=`wallet-${g}-${d.type}`;return Bt.createElement(gE,{key:C,...d,container:N(),onClick:()=>f(d),isLoading:t==="loading",disabled:!l})}),Bt.createElement(co,{wallet:a,onClose:()=>{s(void 0)}}))))}i(wh,"WalletsPage");function xh(){return hu(),Ha(),SE([{path:_.home,element:Le.createElement(eg,null)},{path:_.routes,element:Le.createElement(ig,null)},{path:_.fromSwap,children:[{index:!0,element:Le.createElement($l,{type:"source"})},{path:_.blockchains,element:Le.createElement(Di,{type:"source"})}]},{path:_.toSwap,children:[{index:!0,element:Le.createElement($l,{type:"destination"})},{path:_.blockchains,element:Le.createElement(Di,{type:"destination"})}]},{path:_.settings,children:[{index:!0,element:Le.createElement(Lg,null)},{path:_.languages,element:Le.createElement(og,null)},{path:_.exchanges,element:Le.createElement(Nl,{sourceType:"Exchanges"})},{path:_.bridges,element:Le.createElement(Nl,{sourceType:"Bridges"})},{path:_.customTokens,children:[{index:!0,element:Le.createElement(cf,null)},{path:_.addCustomTokens,children:[{index:!0,element:Le.createElement(Zu,null)},{path:_.blockchains,element:Le.createElement(Di,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:_.swaps,children:[{index:!0,element:Le.createElement(Wf,null)},{path:_.swapDetails,element:Le.createElement(Ch,null)}]},{path:_.wallets,element:Le.createElement(wh,null)},{path:_.confirmSwap,element:Le.createElement(Xd,null)}])}i(xh,"AppRoutes");import{useQueueManager as IE}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as AE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as NE}from"rango-sdk";import{useContext as WE,useEffect as Bh,useState as Mh}from"react";import{globalCss as CE}from"@rango-dev/ui";var bh=i(()=>CE({"@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 Eh(){let{setWatermark:t}=ae();return{fetchApiConfig:i(async()=>{let o=await fetch(`${Lt("BASE_URL")}/meta/dapp/config?apiKey=${Lt("API_KEY")}`);if(!o.ok)throw new Error(`Request failed with status: ${o.status} `);let n=await o.json();t(n.config.watermark)},"fetchApiConfig")}}i(Eh,"useFetchApiConfig");import{useWallets as TE}from"@rango-dev/wallets-react";import{useEffect as kE,useRef as vE}from"react";function Ih(){let{connect:t,state:e}=TE(),o=vE({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);kE(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Ih,"useForceAutoConnect");import{isApprovalTX as wE,RouteEventType as Ah,StepEventType as Nh,StepExecutionEventStatus as xE,WidgetEvents as Ji}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Wh}from"react";function rp(){let t=ve.use.setNotification(),{connectedWallets:e,fetchBalances:o}=y();Wh(()=>{let n=i(r=>{let{event:a,step:s,route:l}=r;if(a.type===Nh.TX_EXECUTION&&a.status===xE.TX_SENT&&!wE(s)||a.type===Nh.SUCCEEDED){let u=e.find(m=>m.chain===s?.fromBlockchain),c=s?.fromBlockchain!==s?.toBlockchain&&e.find(m=>m.chain===s?.toBlockchain);u&&o([u]),c&&o([c])}t(a,l)},"handleStepEvent");return ge.on(Ji.StepEvent,n),()=>ge.off(Ji.StepEvent,n)},[ge,e]),Wh(()=>{let n=i(r=>{let{event:a,route:s}=r;(a.type===Ah.FAILED||a.type===Ah.SUCCEEDED)&&t(a,s)},"handleRouteEvent");return ge.on(Ji.RouteEvent,n),()=>ge.off(Ji.RouteEvent,n)},[ge])}i(rp,"useSubscribeToWidgetEvents");import{useManager as bE}from"@rango-dev/queue-manager-react";import{useEffect as EE}from"react";function ip(){let{isSynced:t,syncNotifications:e}=ve(),{manager:o,state:n}=bE();EE(()=>{ve.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ct(o))},[ve.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ip,"useSyncNotifications");function ap(){Ih(),bh(),rp(),ip();let t=y().blockchains(),{canSwitchNetworkTo:e}=ei(),[o,n]=Mh(""),[r,a]=Mh(),s=WE(Nr),l=t.filter(NE),{fetchApiConfig:p}=Eh();Bh(()=>()=>gu(),[]),IE({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Bh(()=>(ao.init(),ve.persist.hasHydrated()||ve.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===AE(o)?.[0]&&n("")}),p().catch(console.log),ao.destroy),[])}i(ap,"useBootstrap");import{styled as BE}from"@rango-dev/ui";var Lh=BE("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Ri(){ap();let{config:t}=y(),{activeTheme:e}=Ho(t?.theme||{}),{activeLanguage:o}=Rt();return sp.createElement(ME,{language:o},sp.createElement(Lh,{id:"swap-container",className:e()},sp.createElement(xh,null)))}i(Ri,"Main");import{setSolanaSignerConfig as JE}from"@rango-dev/signer-solana";import pp,{useEffect as Oh,useMemo as RE}from"react";import{useState as LE}from"react";var PE=i(()=>{let[t,e]=LE(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=Np(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),Ph=PE;import{checkWaitingForNetworkChange as DE,makeQueueDefinition as _E}from"@rango-dev/queue-manager-rango-preset";import{Provider as $E}from"@rango-dev/queue-manager-react";import{useWallets as FE}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as OE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as UE}from"rango-types";import zE,{useMemo as QE}from"react";function qE(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=FE(),l=QE(()=>_E({API_KEY:t.apiKey||Lt("API_KEY"),BASE_URL:Lt("BASE_URL"),emitter:{emit:ge.emit}}),[t.apiKey]),{blockchains:p,connectedWallets:u}=y(),c=p(),m={blockchains:u.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,w)=>a(v,w)?await r(v,[{namespace:"DISCOVER_MODE",network:w}]):void 0,"switchNetwork"),f=i(v=>!!s(v).mobileWallet,"isMobileWallet"),d=c.filter(v=>v.enabled).reduce((v,w)=>(v[w.name]=w,v),{}),g=c.filter(UE),C=i(v=>{let{supportedChains:w}=s(v);return mr(w)},"getSupportedChainNames"),S=e(),T={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:OE(g),getSupportedChainNames:C},getSigners:o,wallets:m,providers:S,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:f},k=ae.use.isActiveTab();return zE.createElement($E,{queuesDefs:[l],context:T,onPersistedDataLoaded:v=>{DE(v)},isPaused:!k},t.children)}i(qE,"QueueManager");var Dh=qE;import{useManager as jE}from"@rango-dev/queue-manager-react";import XE,{createContext as YE,useContext as ZE}from"react";function _h(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=F();return i(u=>{let{fromBlockchain:c,fromToken:m,toBlockchain:h,toToken:f,requestAmount:d}=u,g={blockchains:e,tokens:o};if(c!==void 0){let C=e.find(S=>S.name===c)??null;n(C)}if(m!==void 0){let C=m?t(m)??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})}d!==void 0&&l(d)},"updateQuoteInputs")}i(_h,"useUpdateQuoteInputs");import{cancelSwap as HE,getCurrentBlockchainOfOrNull as GE,getCurrentStep as VE,getRelatedWalletOrNull as KE}from"@rango-dev/queue-manager-rango-preset";var ea=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return ct(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){let n=_r(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&HE(o)}getCurrentStepInfo(e){let o=VE(e);return{step:o,wallet:o?KE(e,o):null,network:o?GE(e,o):null}}};var $h=YE(void 0);function lp(t){let{manager:e}=jE(),o=ae.use.isActiveTab(),n=F.use.retry(),{findToken:r,connectedWallets:a,getBalances:s,fetchBalances:l}=y(),p=new ea(e,{retrySwap:n,findToken:r}),{fetchingWallets:u}=y(),c=_p(s()),m=y().blockchains(),h=y().tokens(),f=y().swappers(),d=y().fetchStatus,g=Rt().resetLanguage,C=ve().getNotifications(),S=ve().clearNotifications,T=_h(),{fromBlockchain:k,toBlockchain:v,fromToken:w,toToken:I,inputAmount:L}=F(),b={isActiveTab:o,setCurrentTabAsActive:ao.forceClaim,history:p,wallets:{isLoading:u,details:a,totalBalance:c,refetch:async E=>l(E)},meta:{blockchains:m,tokens:h,swappers:f,loadingStatus:d,findToken:r},resetLanguage:g,notifications:{list:C,clearAll:S},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:L},updateQuoteInputs:T}};return XE.createElement($h.Provider,{value:b},t.children)}i(lp,"WidgetInfo");function Fh(){let t=ZE($h);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Fh,"useWidget");function ta(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=Ph();return Oh(()=>{n&&r(n)},[n]),RE(()=>{Hp({API_KEY:o?.apiKey||ar,BASE_URL:o?.apiUrl||Sp})},[o.apiKey,o.apiUrl]),Oh(()=>{t.config?.signers?.customSolanaRPC&&JE("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),pp.createElement(Wr,{config:o,onUpdateState:e},pp.createElement(Dh,{apiKey:o.apiKey},pp.createElement(lp,null,t.children)))}i(ta,"WidgetProvider");function Uh(t){let e=t.config?.externalWallets;return oa.createElement(zc,null,e?oa.createElement(Ri,null):oa.createElement(ta,{config:t.config??sa},oa.createElement(Ri,null)))}i(Uh,"Widget");function zh(){let{on:t,off:e}=ge;return{on:t,off:e}}i(zh,"useWidgetEvents");var Mj={DerivationPath:gn,Namespaces:fn,isOnDerivationPath:yn,isOnNamespace:hn};export{rj as EventSeverity,Mo as MainEvents,fj as Networks,yj as PendingSwapNetworkStatus,Sa as QuoteEventTypes,ij as RouteEventType,la as SUPPORTED_FONTS,Mj as StatefulConnect,aj as StepEventType,sj as StepExecutionBlockedEventStatus,lj as StepExecutionEventStatus,De as UI_ID,Ta as UiEventTypes,Ca as WalletEventTypes,mj as WalletEvents,gj as WalletTypes,Uh as Widget,Mo as WidgetEvents,ta as WidgetProvider,Wr as WidgetWallets,os as customizedThemeTokens,cj as readAccountAddress,Ht as useStatefulConnect,dt as useWalletList,ei as useWallets,Fh as useWidget,zh as useWidgetEvents,Hy as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map