@rango-dev/widget-embedded 0.36.1-next.4 → 0.36.1-next.5

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 Gh=Object.defineProperty;var i=(t,e)=>Gh(t,"name",{value:e,configurable:!0});import{EventSeverity as aj,RouteEventType as sj,StepEventType as lj,StepExecutionBlockedEventStatus as pj,StepExecutionEventStatus as cj}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as mj}from"@rango-dev/wallets-core/legacy";import{useWallets as ei,Events as fj}from"@rango-dev/wallets-react";import{Networks as hj,WalletTypes as yj}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Cj}from"rango-types";import{Divider as US}from"@rango-dev/ui";import co,{useEffect as zS,useRef as QS,useState as Fc}from"react";import{WalletState as Vh}from"@rango-dev/ui";import{useWallets as Kh}from"@rango-dev/wallets-react";import{useReducer as jh}from"react";import{Namespace as na}from"@rango-dev/wallets-shared";function up(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(up,"convertCommonNamespacesKeysToLegacyNamespace");function mp(t){return!!t.derivationPath}i(mp,"isStateOnDerivationPathStep");function dp(t){return!!t.namespace}i(dp,"isStateOnNamespace");var nr={status:"init",namespace:null,derivationPath:null};function fp(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(fp,"reducer");function Ht(){let{state:t,disconnect:e,connect:o}=Kh(),[n,r]=jh(fp,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===Vh.DISCONNECTED){if(!!c.isHub){let C=c.properties?.find(T=>T.name==="detached");if(C&&c.state!=="connected"){let T=up(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(!dp(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(!mp(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 oS}from"@rango-dev/wallets-react";import{detectMobileScreens as nS,KEPLR_COMPATIBLE_WALLETS as rS,WalletTypes as Po}from"@rango-dev/wallets-shared";import{useCallback as iS,useEffect as aS}from"react";import Yy,{createContext as Zy,useContext as Jy,useEffect as Ry,useRef as eS}from"react";import{create as jy}from"zustand";import{persist as Xy}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()}},Ao=new ia;function rr(t,e){return e.find(o=>o.name===t)?.displayName}i(rr,"getBlockchainDisplayNameFor");function lt(t,e){return e.find(o=>o.name===t)?.shortName}i(lt,"getBlockchainShortNameFor");function gp(t,e){return e.find(o=>o.name===t)?.logo}i(gp,"getBlockchainImage");function an(t,e){return e.find(o=>o.id===t)?.title}i(an,"getSwapperDisplayName");function sn(t,e){return e.find(o=>o.name===t)??null}i(sn,"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 pt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(pt,"createTokenHash");function No(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(No,"isValidTokenAddress");function ln(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=pt(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=pt(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(ln,"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"}},Xh={clientUrl:void 0},Yh={liquiditySources:void 0},hp=i((t,e,o)=>({config:{...sa,...t},iframe:Xh,campaignMode:Yh,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=ln({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=ln({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});Ao.set("supportedSourceTokens",l),Ao.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 yp}from"rango-types";var Sp=[yp.EVM,yp.SOLANA];import{RangoClient as uy}from"rango-sdk";import{UI_ID as Zh}from"@rango-dev/ui";var ar="c6381a79-2817-4602-83bf-6a641a409e32",Cp="https://api.rango.exchange",Tp="https://explorer.rango.exchange",Pe={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Zh};import{BlockchainCategories as ry,WalletState as xt}from"@rango-dev/ui";import{legacyReadAccountAddress as iy}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as ay,getCosmosExperimentalChainInfo as sy,isEvmAddress as ly,KEPLR_COMPATIBLE_WALLETS as aA,Networks as Lp}from"@rango-dev/wallets-shared";import io from"bignumber.js";import{isCosmosBlockchain as py}from"rango-types";import Jh from"bignumber.js";var Ce=new Jh(0);import{WalletTypes as Rh}from"@rango-dev/wallets-shared";var kp=[Rh.LEAP];import{BlockchainCategories as pa,WalletState as ny}from"@rango-dev/ui";import{TransactionType as sr}from"rango-sdk";var vp="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 Wo(t){return Array.from(new Set(t))}i(Wo,"removeDuplicateFrom");function ma(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(ma,"areEqual");function Ap(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Ap,"debounce");function Re(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Re,"containsText");function bp(t,e){return t.toLowerCase()===e.toLowerCase()}i(bp,"exactText");function Ep(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Ep,"startWithText");var N=i(()=>document.getElementById(Pe.SWAP_BOX_ID),"getContainer"),ro=i(()=>document.getElementById(Pe.EXPANDED_BOX_ID),"getExpanded");function Ip(t,e,o){let n=!!e&&bp(e,t),r=!!o&&bp(o,t);return n!==r?n?-1:1:0}i(Ip,"compareExactMatchText");function ca(t,e,o){let n=!!e&&Re(e,t),r=!!o&&Re(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&&Ep(e,t),r=!!o&&Ep(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ua,"compareStartWithText");function Np(t,e,o){if(!o)return 0;let n=Ip(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Ip(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(Np,"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"),Wp=i(t=>la.find(o=>o.value===t)?.url,"getFontUrlByName");function Bp(t,e){let o=!!t.find(n=>n.state===ny.CONNECTED);return e===!1&&o}i(Bp,"isSingleWalletActive");import{BigNumber as Mp}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 Mp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Mp(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 Pp(t,e,o,n){return o.filter(r=>!kp.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=Wo(m.map(S=>S.type)),C=un(t(r));return{title:a,image:s,link:ay(l),state:C,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:g,needsDerivationPath:h,properties:f,isHub:d}})}i(Pp,"mapWalletTypesToWalletInfo");function mr(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(mr,"walletAndSupportedChainsNames");function Dp(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}=iy(p),m=l.length>0,h=l.includes(c),f=c===Lp.Unknown;if(m&&!h&&!f)return;let g=c===Lp.Unknown&&ly(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(Dp,"prepareAccountsForWalletStore");function ao(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(ao,"getQuoteWallets");function _p(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(_p,"isAccountAndWalletMatched");var $p=i(t=>{let e=Object.values(t).reduce((o,n)=>n.usdValue?o.plus(n.usdValue):o,new io(Ce));return cy(e.toString())},"calculateWalletUsdValue");function cy(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(cy,"numberWithThousandSeparator");var dr=i((t,e)=>{let o=sy(Object.entries(t).map(([,n])=>n).filter(py));return o&&o[e]?.experimental},"isExperimentalChain");function fr(t){if(!t)return null;let e=new io(t.amount).shiftedBy(-t.decimals).toFixed(),o=t.usdValue?new io(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 Fp(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new io(t.usdValue).shiftedBy(-t.decimals):Ce,n=e&&e.usdValue?new io(e.usdValue).shiftedBy(-e.decimals):Ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new io(t.amount).shiftedBy(-t.decimals):Ce,n=e&&e.amount?new io(e.amount).shiftedBy(-e.decimals):Ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Fp,"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 Op(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(Op,"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 Up({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Up,"getAddress");var zp=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Qp(t){return t.map(e=>e.state).join("-")}i(Qp,"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 Hp(t,e){return e===ry.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(lr(n,e))return!0;return!1})}i(Hp,"filterWalletsByCategory");var da={API_KEY:ar};function Lt(t){return da[t]||""}i(Lt,"getConfig");function Gp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),da=e,da}i(Gp,"initConfig");var Vp=20,Kp=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"),jp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var hr,bt=i(()=>hr||(hr=new uy(Lt("API_KEY"),Lt("BASE_URL")),hr),"httpService");function yr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Wo(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 Xp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Xp,"sortLiquiditySourcesByGroupTitle");function je(t,e){return e?.[t]==="hidden"}i(je,"isFeatureHidden");function Yp(t,e){return e?.[t]==="enabled"}i(Yp,"isFeatureEnabled");function Bo(t,e){return e?.[t]==="enabled"}i(Bo,"isRoutingEnabled");var Zp=i((t,e,o)=>je("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var Jp=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=>Sp.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=Ao.get(c);m?.length||(m=ln({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Ao.set(c,m)),m=Zp(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?!!(Re(d.symbol,o.searchFor)||Re(d.address||"",o.searchFor)||Re(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=Fp(I,L);if(b!==0)return b}let T=p.get(d.blockchain),v=p.get(g.blockchain),k=aa(d,T),w=aa(g,v);if(k!==w)return k?-1:1;if(d.isPopular!==g.isPopular)return d.isPopular?-1:1;if(o.searchFor){let I=Np(d,g,o.searchFor);if(I)return I}return d.isSecondaryCoin!==g.isSecondaryCoin?d.isSecondaryCoin?1:-1:T&&v?T.sort-v.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=pt(o),s=n.get(a);return s||(s=r.find(l=>pt(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(Xp)},fetch:async()=>{try{let{routing:o}=e().config,n=Bo("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=pt(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 my,Catalonia as dy,Chinese as Rp,Denmark as fy,English as gy,Finland as hy,French as yy,German as Sy,Greece as Cy,Hungary as Ty,India as ky,Indonesian as vy,Italian as wy,Japanese as xy,Korea as by,Lithuania as Ey,Malay as Iy,Netherlands as Ay,Pakistan as Ny,Philippines as Wy,Poland as By,Portuguese as My,Russian as Ly,SaudiArabia as Py,Serbia as Dy,Slovakia as _y,SouthAfrica as $y,Spanish as Fy,Swahili as Oy,Swedish as Uy,Thai as zy,Turkish as Qy,Ukrainian as qy,Vietnamese as Hy}from"@rango-dev/ui";var ec=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:$y},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:Py},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:my},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:dy},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Rp},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Rp},{title:"Danish",label:"Dansk",local:"da",SVGFlag:fy},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Ay},{title:"English",label:"English",local:"en",SVGFlag:gy},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:Wy},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:hy},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:yy},{title:"German",label:"Deutsch",local:"de",SVGFlag:Sy},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:Cy},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:ky},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:Ty},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:vy},{title:"Italian",label:"Italiana",local:"it",SVGFlag:wy},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:xy},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:by},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:Ey},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:Iy},{title:"Polish",label:"Polski",local:"pl",SVGFlag:By},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:My},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Ly},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:Dy},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:_y},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Fy},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:Oy},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:Uy},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:zy},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:Qy},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:qy},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:Ny},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:Hy}],Mo="en";var tc=[.5,1,3],oc=1,nc=5,rc=100,ic=0;var ac=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:oc,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=Wo(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=je("theme",n),s=je("language",n),l=je("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||Mo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||Mo}})},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 uc from"bignumber.js";import Gy from"mitt";var ge=Gy(),Vy={on:ge.on,off:ge.off};import{WidgetEvents as sc}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||{}),Lo=(a=>(a[a.RouteEvent=sc.RouteEvent]="RouteEvent",a[a.StepEvent=sc.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Lo||{});import Ky 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 lc(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 Ky(l??Ce).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:p};o[r]=u}),o}i(lc,"createBalanceStateForNewAccount");function pc(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(pc,"updateAggregatedBalanceStateForNewAccount");function cc(t,e){let o=Sr(e),n=mn(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(cc,"removeBalanceFromAggregatedBalance");var mc=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=>_p(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=cc(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=lc(m,e);c=pc(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 uc(u.amount),m=new uc(l.amount);c.isGreaterThan(m)&&(l=u)}),l}}),"createWalletsSlice");function dc(t){return jy()(Xy((...e)=>({...mc(...e),...Jp(...e),...ac(...e),...hp(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(dc,"createAppStore");var fc=Zy(null);function y(){let t=Jy(fc);if(Ry(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function gc(t){let e=eS();return e.current||(e.current=dc(t.config)),Yy.createElement(fc.Provider,{value:e.current},t.children)}i(gc,"AppStoreProvider");import{allProviders as tS}from"@rango-dev/provider-all";import{defineVersions as Cr,pickVersion as hc,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=tS(o);if(t){let r=[];return t.forEach(a=>{if(typeof a=="string"){let s=yc(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 yc(t,e){let{experimentalWallet:o="enabled"}=e||{};return t.map(n=>{let r=o=="disabled"?"0.0.0":"1.0.0";try{return hc(n,r)[1]}catch{return hc(n,"0.0.0")[1]}})}i(yc,"pickVersionWithFallbackToLegacy");function Sc(t,e){return yc(kr(t,e),e).map(r=>r instanceof Tr?r.id:r.config.type)}i(Sc,"configWalletsToWalletName");var sS=Object.values(Po);function gt(t){let{chain:e}=t||{},{config:o,connectedWallets:n}=y(),{state:r,getWalletInfo:a}=oS(),s=y().blockchains(),{handleDisconnect:l}=Ht(),p=Sc(o?.wallets,{trezorManifest:o?.trezorManifest,walletConnectProjectId:o?.walletConnectProjectId,walletConnectListedDesktopWalletLink:o.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,tonConnect:o.tonConnect})||sS,u=Pp(r,a,p,e);u=nS()?u.filter(g=>g.showOnMobile!==!1&&r(g.type).installed):u;let c=Op(u),m=i(g=>!n.find(C=>C.walletType===g&&C.chain===e),"isExperimentalChainNotAdded"),h=iS(()=>{let g=u?.filter(C=>C.state===va.CONNECTING)||[];for(let C of g)l(C.type)},[Qp(u)]);aS(()=>()=>{h()},[]);let f=i(g=>{let C=g.find(T=>T.type===Po.DEFAULT);return!C||C.state===va.NOT_INSTALLED?!1:g.filter(T=>T.state!=va.NOT_INSTALLED&&![Po.DEFAULT,Po.WALLET_CONNECT_2,Po.LEDGER].includes(T.type)&&a(T.type).supportedChains.filter(v=>v.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i((g,C,S)=>dr(S,C)&&m(g)&&!rS.includes(g)||g==Po.DEFAULT&&!f(u),"shouldExcludeWallet");return{list:c.filter(g=>!d(g.type,e??"",s)),terminateConnectingWallets:h}}i(gt,"useWalletList");import{Modal as uS}from"@rango-dev/ui";import mS from"react";import{create as cS}from"zustand";var Cc="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(Cc),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 pS=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"),Do=pS;var le=Do(cS()((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})}}))),so=new dn({onInit:()=>le.setState({tabManagerInitiated:!0}),onClaim:()=>le.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>le.setState({isActiveTab:!1})});function R(t){let{watermark:e}=le();return mS.createElement(uS,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as wa}from"@lingui/core";import{Button as SS,Checkbox as CS,Divider as TS,Image as Nc,ListItemButton as kS,MessageBox as vS,Radio as wS,RadioRoot as xS}from"@rango-dev/ui";import{namespaces as Wc}from"@rango-dev/wallets-shared";import ke,{useMemo as bS,useState as ES}from"react";import{css as dS,darkTheme as kc,IconButton as fS,styled as lo}from"@rango-dev/ui";var Et=lo(fS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${kc} &`]:{backgroundColor:"$neutral"}}}),vc=lo("div",{position:"absolute",background:"$secondary500",[`.${kc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Gt=lo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),wc=lo("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"}}}}),xc=lo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),bc=lo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Ec=dS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),vr=lo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as gS,styled as wr}from"@rango-dev/ui";var mN=wr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),_o=wr("div",{position:"relative"}),hS=gS({"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:`${hS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),xr=wr("div",{"& img":{borderRadius:"50%"}});function Ic(t,e){return t.find(o=>o.name===e)?.logo}i(Ic,"getBlockchainLogo");import{styled as yS}from"@rango-dev/ui";var Ac=yS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function fn(t){let{singleNamespace:e,availableNamespaces:o,providerImage:n}=t.value,[r,a]=ES([]),s=y().blockchains(),l=bS(()=>o?.map(c=>({name:c,logo:Ic(s,Wc[c].mainBlockchain),title:Wc[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(xS,{value:r?.[0]},c):ke.createElement(ke.Fragment,null,c),"wrapRadioRoot");return ke.createElement(ke.Fragment,null,ke.createElement(TS,{size:20}),ke.createElement(vS,{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(_o,null,ke.createElement(vr,null,ke.createElement(Nc,{src:n,size:45})),ke.createElement($o,null))}),ke.createElement(Ac,null,u(ke.createElement(ke.Fragment,null,l?.map(c=>ke.createElement(kS,{key:c.name,id:c.name,title:c.title,hasDivider:!0,style:{height:60},onClick:()=>p(c.name),start:ke.createElement(Nc,{src:c.logo,size:22}),end:e?ke.createElement(wS,{value:c.name}):ke.createElement(CS,{checked:r.includes(c.name)})}))))),ke.createElement(SS,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},wa.t("Confirm")))}i(fn,"Namespaces");import{i18n as Fo}from"@lingui/core";import{Button as NS,Divider as Lc,Image as WS,MessageBox as BS,Select as MS,TextField as LS}from"@rango-dev/ui";import Fe,{useEffect as PS,useState as Pc}from"react";import{namespaces as IS}from"@rango-dev/wallets-shared";var br={id:"custom",label:"Custom",generateDerivationPath:t=>t};function xa(t){let e=t?IS[t].derivationPaths:null;return e?[...e,br]:[]}i(xa,"getDerivationPaths");import{styled as Bc,Typography as AS}from"@rango-dev/ui";var Mc=Bc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),ba=Bc(AS,{paddingLeft:"$10"}),Ea={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Dc="0";function gn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Pc(null),[l,p]=Pc(Dc),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(Dc),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 PS(()=>{s(xa(o)[0]?.id||null)},[o]),Fe.createElement(Fe.Fragment,null,Fe.createElement(Lc,{size:20}),Fe.createElement(BS,{type:"info",title:Fo.t("Select Derivation Path"),description:Fo.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:Fe.createElement(_o,null,Fe.createElement(xr,null,Fe.createElement(WS,{src:n,size:45})),Fe.createElement($o,null))}),Fe.createElement(Mc,null,Fe.createElement(ba,{variant:"body",size:"xsmall",color:"$neutral600"},Fo.t("Choose Derivation Path Template")),Fe.createElement(MS,{value:a||"",options:c.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:m,styles:{trigger:Ea}}),Fe.createElement(Lc,{size:20}),Fe.createElement(ba,{variant:"body",size:"xsmall",color:"$neutral600"},u?Fo.t("Enter Path"):Fo.t("Enter Index")),Fe.createElement(LS,{type:u?"text":"number",variant:"contained",value:l,onChange:f=>p(f.target.value),style:Ea})),Fe.createElement(NS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!c||!a||!l},Fo.t("Confirm")))}i(gn,"DerivationPath");import{i18n as Oo}from"@lingui/core";import{Image as DS,MessageBox as Ia,WalletState as _S}from"@rango-dev/ui";import{useWallets as $S}from"@rango-dev/wallets-react";import po from"react";function Aa(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=$S();return un(a(n))===_S.CONNECTED?po.createElement(Ia,{type:"success",title:Oo.t("Wallet Connected"),description:Oo.t("Your wallet is connected, you can use it to swap.")}):o?po.createElement(Ia,{type:"error",title:Oo.t("Failed to Connect"),description:o||Oo.t("Your wallet is not connected. Please try again.")}):po.createElement(Ia,{type:"loading",title:Oo.t("Connecting to your wallet"),description:Oo.t("Click connect in your wallet popup."),icon:po.createElement(_o,null,po.createElement(xr,null,po.createElement(DS,{src:r,size:45})),po.createElement($o,null))})}i(Aa,"ConnectStatus");import{i18n as Na}from"@lingui/core";import{Button as FS,Divider as _c,MessageBox as OS}from"@rango-dev/ui";import Er from"react";function Wa(t){let{displayName:e,onConfirm:o}=t;return Er.createElement(OS,{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(_c,{size:18}),Er.createElement(_c,{size:32}),Er.createElement(FS,{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 qS=3e3,HS=300;function uo(t){let e=QS(),[o,n]=Fc(!1),[r,a]=Fc(),s=i(S=>{a(S.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=gt(),{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 zS(()=>{if(t.wallet){C();let S=!1,T=!0,v=i(()=>{setTimeout(()=>{T=!1,S||n(!0)},HS)},"beforeConnecting"),k=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,qS):L&&g(),t.onConnect&&t.onConnect(w)},"afterConnected");v(),p(t.wallet,{disconnectIfConnected:!0}).then(k).catch(s)}},[t.wallet]),co.createElement(R,{open:o,onClose:g,onExit:()=>{C(),l(),t.onClose&&t.onClose()},container:N()},$c(m,t.wallet)&&co.createElement(co.Fragment,null,co.createElement(Aa,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),co.createElement(US,{direction:"vertical",size:32})),hn(m)&&co.createElement(fn,{onConfirm:f,value:m().namespace}),yn(m)&&co.createElement(gn,{onConfirm:d,value:m().derivationPath}))}i(uo,"StatefulConnectModal");import{Events as Ir,Provider as VS}from"@rango-dev/wallets-react";import{isEvmBlockchain as KS}from"rango-sdk";import Ar,{createContext as jS,useEffect as Uc,useMemo as XS,useRef as zc}from"react";import{useEffect as GS}from"react";function Oc(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Oc,"hashProviders");function Ba(t,e){let{clearConnectedWallet:o}=y(),n=kr(t,e);return GS(()=>{o(),n=kr(t,e)},[Oc(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Ba,"useWalletProviders");var Nr=jS({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function YS(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=zc(),h=zc();Uc(()=>{n().catch(console.log)},[]),Uc(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:p,dappConfig:t.config})},[t.config,r]);let f=a.filter(KS).map(S=>S.name),d=i((S,T,v,k,w)=>{if(T===Ir.ACCOUNTS)if(v){let I=mr(w.supportedBlockchains),L=Dp(S,v,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&&k.connected||T===Ir.ACCOUNTS&&w.isHub){let I=`${S}-${k.network}-${v}`;m.current?m.current(I):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(T===Ir.NETWORK&&k.network){let I=`${S}-${k.network}`;m.current?m.current(I):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(S,T,v,k,w)},"onUpdateState"),g=le.use.isActiveTab(),C=XS(()=>({onConnectWallet:S=>{m.current=S},onDisconnectWallet:S=>{h.current=S}}),[]);return Ar.createElement(Nr.Provider,{value:C},Ar.createElement(VS,{allBlockChains:a,providers:c,onUpdateState:d,autoConnect:!!g,configs:{isExperimentalEnabled:Yp("experimentalWallet",p.features)}},t.children))}i(YS,"Main");function Wr(t){let{config:e,...o}=t;return Ar.createElement(gc,{config:e},Ar.createElement(YS,{...o,config:e}))}i(Wr,"WidgetWallets");import oa from"react";import ZS,{Fragment as JS}from"react";import{MemoryRouter as RS,useInRouterContext as eC}from"react-router";function Qc({children:t}){let o=eC()?JS:RS;return ZS.createElement(o,null,t)}i(Qc,"AppRouter");import{I18nManager as PE}from"@rango-dev/ui";import lp from"react";import Le from"react";import{useRoutes as TE}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 Qo,useRef as Or}from"react";import Xe from"bignumber.js";import{create as nC}from"zustand";import{subscribeWithSelector as rC}from"zustand/middleware";import{getLastSuccessfulStep as oC}from"@rango-dev/queue-manager-rango-preset";import TB 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,Hc=15,Gc=60;import{i18n as ht}from"@lingui/core";import{RouteEventType as iB}from"@rango-dev/queue-manager-rango-preset";import Oe from"bignumber.js";import{PendingSwapNetworkStatus as Mr}from"rango-types";import{i18n as De}from"@lingui/core";var te=i(()=>({genericServerError:De.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:De.t("Please reset your liquidity sources."),description:De.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:De.t("No Routes Found."),description:De.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:De.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:De.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:De.t("High Price Impact"),title:De.t("Price impact is too high!"),description:De.t("The price impact is significantly higher than the allowed amount."),confirmMessage:De.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:De.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:De.t("USD Price Unknown"),title:De.t("USD Price Unknown, Cannot calculate Price Impact."),description:De.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:De.t("Confirm USD Price Unknown")}}),"errorMessages");function Vc(t){switch(t.type){case 0:return t.diagnosisMessage??te().noResultError.title;case 1:return te().genericServerError;default:return""}}i(Vc,"getQuoteErrorMessage");import{i18n as Br}from"@lingui/core";var mo=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 Kc(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Oe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Oe(1e3)))??!1}i(Kc,"hasHighValueLoss");function jc(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Oe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Oe(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(jc,"hasLimitError");function Xc(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Oe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Oe(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 Oe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Oe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=ht.t({id:"Required: >= {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ht.t({id:"Required: > {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ht.t({id:"Required: <= {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ht.t({id:"Required: < {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Xc,"getLimitErrorMessage");function Yc(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:mo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:mo().swap,action:"confirm-swap",disabled:!0}:s?{title:mo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:mo().ethWarning,action:"confirm-warning",disabled:!1}:{title:mo().swap,action:"confirm-swap",disabled:!1}:{title:mo().connectWallet,action:"connect-wallet",disabled:!1}}i(Yc,"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 Oe(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 Oe(t.amount).multipliedBy(t.price||0)),e}i(_a,"getUsdFee");function Zc(t){return t.reduce((e,o)=>e.plus(_a(o)),Ce)}i(Zc,"getTotalFeesInUsd");function Jc(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(Jc,"getFeesGroup");function Rc(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(Rc,"checkSlippageErrors");function eu(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(eu,"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 tu(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(tu,"hasProperSlippage");function ou(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(ou,"createQuoteRequestBody");function nu(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(nu,"getWalletsForNewSwap");function Uo(t){return t?.outputAmount||null}i(Uo,"getQuoteOutputAmount");function ru(t,e){return new Oe(e).div(new Oe(t)).minus(1).multipliedBy(100).toNumber()}i(ru,"getPercentageChange");function iu(t,e){let o=Uo(t),n=Uo(e);if(!o||!n)return!1;let r=ct(o,n);return r?r<=-1:!0}i(iu,"isOutputAmountChangedALot");function au(t,e,o){let n=t.validationStatus,r=ao({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>mu(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=B(new Oe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=B(new Oe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=ht.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ht.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ht.t(" for input and network fee")),ht.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:lt(s.asset.blockchain,o)}})})}i(au,"generateBalanceWarnings");function Kt(t,e){return(t?new Oe(t):Ce).multipliedBy(e||0)}i(Kt,"calcOutputUsdValue");function Sn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Mr.NetworkChanged}i(Sn,"isNetworkStatusInWarningState");function su(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Sn(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Mr.WaitingForConnectingWallet:n=n||ht.t("Waiting for connecting wallet");break;case Mr.WaitingForQueue:n=n||ht.t("Waiting for other running tasks to be finished");break;case Mr.WaitingForNetworkChange:n=n||ht.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(su,"getSwapMessages");function lu(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(lu,"getLastConvertedTokenInFailedSwap");function pu(t){return t.status==="failed"}i(pu,"shouldRetrySwap");function cu(t,e,o,n,r,a){if(!n||t)return!0;let s=ao({filter:"all",quote:n}),l=ao({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?No(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(cu,"isConfirmSwapDisabled");function uu(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(uu,"isTokensIdentical");function fo(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(fo,"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 fu(t,e){return $a(t,e)||Fa(t,e)||Oa(t,e)}i(fu,"isQuoteChanged");function mu(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(mu,"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=oC(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=sn(a?a.toBlockchain:n.fromBlockchain,e),p=sn(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 zo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=Kt(t.requestAmount,Cn(t)||o?.usdPrice),l=Kt(t.outputAmount,fo(t)||n?.usdPrice);if(t&&s&&l){let c=ct(s.toString(),l.toString());if(!!c&&Kc(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>nc;if(tu(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:eu(t,a),minRequiredSlippage:p};return null}i(zo,"generateQuoteWarnings");function ct(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:ru(t.toString(),e.toString());return n&&n<0?n:null}i(ct,"getPriceImpact");var gu=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"),hu=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"),yu=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 Xe(e||Ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Do(nC()(rC(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Xe(0),outputUsdValue:new Xe(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 Xe(e?.outputAmount):null,a=Kt(o.inputAmount,Cn(e)||o.fromToken?.usdPrice),r=Kt(e.outputAmount,fo(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 Xe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Xe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Xe(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 Xe(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 Xe(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 Xe(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 Xe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Xe(0),inputUsdValue:new Xe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Xe(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})})))),Su=O.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 Cu(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=O(),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,v=c?.from?.blockchains,k=c?.to?.tokens,w=c?.to?.blockchains,I=Or(void 0),L=Or(void 0),b=Or(void 0),E=Or(void 0);Qo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),Qo(()=>{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]),Qo(()=>{ga(s,T)&&a({token:null}),ha(p,v)&&n(null)},[T,v]),Qo(()=>{ga(l,k)&&a({token:null}),ha(u,w)&&o(null)},[k,w]),Qo(()=>{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]),Qo(()=>{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(Cu,"useSyncStoresWithConfig");import{useEffect as Qa,useRef as iC}from"react";import{useInRouterContext as aC,useLocation as sC,useSearchParams as lC}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=sC(),[e,o]=lC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:h}=O(),f=y().fetchStatus,d=y().blockchains(),g=y().tokens(),C=aC(),{updateIframe:S,updateCampaignMode:T}=y(),v=y().isInCampaignMode(),k=iC(),{findToken:w}=y(),I=i(()=>{let b={};for(let[K,pe]of e.entries())K.startsWith("utm_")&&(b[K]=pe);let E=e.get("fromAmount"),x=e.get("fromBlockchain"),W=e.get("fromToken"),D=e.get("toBlockchain"),A=e.get("toToken"),X=e.get("autoConnect"),se=e.get("clientUrl"),J=e.get("liquiditySources"),M=e.get("blockchain");return{fromAmount:E,fromBlockchain:x,fromToken:W,toBlockchain:D,toToken:A,autoConnect:X,clientUrl:se,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:v?k.current:void 0,...x})},[t.pathname,l,n,a,r,s,v]),Qa(()=>{if(!C)return;let b=I();if(!k.current&&b.liquiditySources&&(k.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 vT,Button as Ru,darkTheme as wT,Divider as vn,DoneIcon as xT,MessageBox as bT,styled as ET,TextField as IT,Typography as AT}from"@rango-dev/ui";import he,{useEffect as NT,useState as Vr}from"react";import{useNavigate as WT,useSearchParams as BT}from"react-router-dom";import{ChevronRightIcon as pC,Divider as xu,Image as cC,Typography as bu}from"@rango-dev/ui";import yt from"react";import{darkTheme as Tu,styled as Ga}from"@rango-dev/ui";var ku=Ga("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Tu} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Tu} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),vu=Ga("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),wu=Ga("div",{display:"flex"});function Va(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return yt.createElement(vu,null,yt.createElement(bu,{size:"large",variant:"label"},n),yt.createElement(xu,{size:10}),yt.createElement(ku,{onClick:s?void 0:e,disabled:s},yt.createElement(wu,null,r&&yt.createElement(yt.Fragment,null,yt.createElement(cC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),yt.createElement(xu,{size:4,direction:"horizontal"})),yt.createElement(bu,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),yt.createElement(pC,{size:12,color:"black"})))}i(Va,"BlockchainSelectorButton");import{i18n as ja}from"@lingui/core";import{Button as uC,Divider as Tn,ExternalLinkIcon as mC,Image as dC,Typography as Ho}from"@rango-dev/ui";import Ae from"react";function Eu(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Eu,"generateExplorerLink");import{darkTheme as qo,styled as Iu}from"@rango-dev/ui";var Ka=Iu("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:{}}}}),Au=Iu("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=Eu(n.address,a);return Ae.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Ae.createElement(Au,null,Ae.createElement(dC,{src:n.image,size:45,type:"circular"}),Ae.createElement(Ho,{variant:"title",size:"medium"},n.name),Ae.createElement(Ho,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),Ae.createElement(Tn,{size:4}),Ae.createElement(Ho,{variant:"body",size:"medium"},s?Ae.createElement(Ka,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,Ae.createElement(mC,{size:12,color:"gray"})):Ae.createElement(Ka,null,n.address)),Ae.createElement(Tn,{size:4}),n.coinSource&&Ae.createElement(Ho,{className:"_coin-source",variant:"body",size:"xsmall"},ja.t("via")," ",Ae.createElement(Ho,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Ae.createElement(Tn,{size:"32"}),Ae.createElement(Ho,{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(uC,{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 hT}from"@rango-dev/queue-manager-react";import{BottomLogo as yT,Divider as ju,Header as ST}from"@rango-dev/ui";import We,{useEffect as ys,useRef as Xu,useState as CT}from"react";import{useRef as fC}from"react";function Ur(){return window.self!==window.top}i(Ur,"isAppLoadedIntoIframe");function Ya(){let t=fC(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 gC}from"react-router-dom";function Ye(){let t=gC();return()=>t(-1)}i(Ye,"useNavigateBack");import{createTheme as ns,darkTheme as NC,lightTheme as WC}from"@rango-dev/ui";import{useEffect as BC,useState as MC}from"react";import{theme as IC,darkColors as AC}from"@rango-dev/ui";import ts from"react";function hC(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(hC,"expandShortHexColor");function yC(t){return/[0-9]+$/.test(t)}i(yC,"isOverridingColor");function SC(t,e){return t.padStart(e,"0")}i(SC,"pad");function Za(t){let e=Math.min(Math.max(Math.round(t),0),255);return SC(e.toString(16),2)}i(Za,"intToHex");function CC(t){return`#${Za(t.red)}${Za(t.green)}${Za(t.blue)}`}i(CC,"rgbToHex");function TC(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(TC,"hexToRGB");function kC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(kC,"generateShade");function vC(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(vC,"generateTint");function wC(t){return Nu(t,kC)}i(wC,"calculateShades");function xC(t){return Nu(t,vC)}i(xC,"calculateTints");function Nu(t,e){let o=TC(t),n=[];for(let r=1;r<9;r++)n.push(CC(e(o,r)));return n}i(Nu,"calculateColors");function Ja(t,e,o){let a=xC(t).reverse().concat(t),s=wC(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)&&!yC(r)){let p=hC(a);Object.assign(n,Ja(p,r,s))}}return{...n,...e}}i(Ra,"expandToGenerateThemeColors");var Wu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),bC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Wu(o%52)+e;return Wu(o%52)+e},"toAlphabeticName"),EC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),es=i(t=>bC(EC(5381,JSON.stringify(t))>>>0),"toHash");function os(t){let e=IC.colors,o={...e,...AC},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 Bu(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(Bu,"joinList");function Mu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Mu,"doesWindowPreferDarkColorScheme");function Go(t){let{colors:e,fontFamily:o=vp,borderRadius:n=Vp,secondaryBorderRadius:r=Kp}=t,[a,s]=MC(Mu()?"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,WC.className],h=[c.className,NC.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 BC(()=>{let d=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return Mu()&&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(Go,"useTheme");var ut=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 Lu}from"@lingui/core";import{Alert as LC,Button as PC}from"@rango-dev/ui";import Pu from"react";function rs(t){return Pu.createElement(LC,{action:Pu.createElement(PC,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Lu.t("Activate this tab")),type:"warning",variant:"alarm",title:Lu.t("Another tab is open and handles transactions.")})}i(rs,"ActivateTabAlert");import{i18n as is}from"@lingui/core";import{Button as DC,Divider as _C,MessageBox as $C}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($C,{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(_C,{size:20}),zr.createElement(DC,{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 FC}from"@rango-dev/ui";import Du from"react";function ss(t){return Du.createElement(Et,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Du.createElement(FC,{color:"black",size:16}))}i(ss,"BackButton");import{i18n as OC}from"@lingui/core";import{Button as UC,Typography as zC}from"@rango-dev/ui";import ls from"react";function ps(t){return ls.createElement(Gt,null,ls.createElement(UC,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ls.createElement(zC,{variant:"label",size:"medium",color:"error500"},OC.t("Cancel"))))}i(ps,"CancelButton");import{i18n as QC}from"@lingui/core";import{Image as qC,Tooltip as HC,WalletIcon as GC}from"@rango-dev/ui";import go from"react";function cs(t){let{list:e}=gt(),o=e.filter(r=>r.state==="connected"),n=o.length?go.createElement("div",{className:Ec()},o.map(r=>go.createElement(vr,{key:r.title},go.createElement(qC,{src:r.image,size:14})))):QC.t("Connect Wallet");return go.createElement(HC,{container:t.container,side:"bottom",content:n},go.createElement(Et,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&go.createElement(vc,null),go.createElement(GC,{size:18,color:"black"})))}i(cs,"WalletButton");import{i18n as qr}from"@lingui/core";import{NotificationsIcon as sT,Popover as lT,SettingsIcon as pT,Tooltip as Hr,TransactionIcon as cT}from"@rango-dev/ui";import Ne from"react";import{Notifications as XC}from"@rango-dev/ui";import YC from"react";import{useNavigate as ZC}from"react-router-dom";import{create as VC}from"zustand";import{persist as KC,subscribeWithSelector as jC}from"zustand/middleware";var ve=Do(VC()(KC(jC((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=ZC(),{getNotifications:e,clearNotifications:o}=ve(),n=e(),r=y().blockchains(),{findToken:a}=y();return YC.createElement(XC,{list:n,getBlockchainImage:l=>gp(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${$.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(us,"NotificationContent");import{useManager as JC}from"@rango-dev/queue-manager-react";import{InProgressIcon as RC}from"@rango-dev/ui";import _u from"react";var eT=i(()=>{let{manager:t}=JC();return ut(t).map(({swap:o})=>o).find(o=>o.status==="running")?_u.createElement(bc,null,_u.createElement(RC,{color:"info",size:6})):null},"InProgressTransactionBadge"),$u=eT;import{EventSeverity as tT}from"@rango-dev/queue-manager-rango-preset";import{Typography as oT}from"@rango-dev/ui";import Fu from"react";function Ou(){let{getNotifications:t}=ve(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===tT.WARNING);return o?Fu.createElement(wc,{isSever:n},Fu.createElement(oT,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Ou,"NotificationsBadge");import{RefreshProgressButton as nT}from"@rango-dev/ui";import ms,{useEffect as rT,useState as Uu}from"react";var iT=1e3,zu=60,aT=100;function Qr({onClick:t}){let[e,o]=Uu(0),[n,r]=Uu(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");rT(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===zu&&l()},iT):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(xc,{onTransitionEnd:()=>r(!1),isRefetched:n},ms.createElement(nT,{size:22,color:t?"black":"gray",progress:e/zu*aT})))}i(Qr,"RefreshButton");function ho(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=je("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(lT,{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(sT,{size:18,color:"black"}),Ne.createElement(Ou,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(pT,{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(cT,{size:18,color:"black"}),Ne.createElement($u,null))))}i(ho,"HeaderButtons");import{i18n as ds}from"@lingui/core";import{Divider as qu,MessageBox as dT,RefreshIcon as fT}from"@rango-dev/ui";import Vo from"react";import{Button as uT,styled as mT}from"@rango-dev/ui";var Qu=mT(uT,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function fs(t){let{open:e,onClose:o}=t;return Vo.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Vo.createElement(dT,{title:ds.t("Something went wrong"),type:"error",description:ds.t("Something went wrong. Please refresh the app.")},Vo.createElement(qu,{size:30}),Vo.createElement(Qu,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Vo.createElement(fT,{size:20,color:"primary"}),Vo.createElement(qu,{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 gT,styled as hs}from"@rango-dev/ui";var Hu="700px",Gr=gT({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Gu=hs("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Hu},fixed:{height:Hu}}}}),Vu=hs("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Ku=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 oe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ya(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:p}=y(),[u,c]=CT(!1),{config:{features:m,theme:h}}=y(),{watermark:f}=le(),d=f==="FULL",{activeTheme:g}=Go(h||{}),C=je("connectWalletButton",m),{isActiveTab:S,tabManagerInitiated:T,showActivateTabModal:v,setShowActivateTabModal:k,activateCurrentTab:w}=le(),I=Ye(),{manager:L}=hT(),E=ut(L).map(({swap:se})=>se).some(se=>se.status==="running"),x=i(()=>w(so.forceClaim,E),"onActivateTab"),W=i(()=>{r.onWallet?.()},"onConnectWallet"),D=typeof r.hasBackButton>"u"||r.hasBackButton,A=Xu(null),X=Xu(null);return ys(()=>(Ur()&&X.current&&e(X.current),()=>{o()}),[]),ys(()=>(A.current?.addEventListener("scroll",gs),()=>{A.current?.removeEventListener("scroll",gs)}),[]),ys(()=>{c(l==="failed")},[l]),We.createElement(Gu,{height:s,id:Pe.SWAP_BOX_ID,className:`${g()} ${Gr()}`,ref:X},We.createElement(ST,{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(Vu,{ref:A},n),We.createElement(as,{open:v,onClose:()=>k(!1),onConfirm:x}),We.createElement(Ku,null,We.createElement("div",{className:"footer__content"},T&&!S&&We.createElement("div",{className:"footer__alert"},We.createElement(rs,{onActivateTab:x}),We.createElement(ju,{size:10})),a),We.createElement(ju,{size:12}),We.createElement("div",{className:`footer__logo ${d?"logo__show":"logo__hidden"}`},We.createElement(yT,null))),We.createElement(fs,{open:u,onClose:()=>c(!1)}))}i(oe,"Layout");import{styled as TT}from"@rango-dev/ui";var Yu="$20 $20 $10 $20",kn=TT("div",{padding:Yu,overflowY:"auto",flexGrow:1});import{styled as kT}from"@rango-dev/ui";var ie=kT("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 Ko}from"@lingui/core";import{useState as Zu}from"react";function Ju(){let[t,e]=Zu(!1),[o,n]=Zu(void 0),{findToken:r}=y(),a=y().customTokens();function s(p,u){switch(p){case"duplicated":return{title:Ko.t("Duplicate Token"),message:Ko.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:Ko.t("Token Already Exists"),message:Ko.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:Ko.t("Token Not Found"),message:Ko.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(Ju,"useFetchCustomToken");var MT=ET("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${wT} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),LT=1e3;function em(){let t=WT(),[e]=BT(),o=Ye(),{setCustomToken:n}=y(),r=y().blockchains(),a=e.get("blockchain")||"",s=sn(a,r),[l,p]=Vr(""),[u,c]=Vr(!1),[m,h]=Vr(),{fetchCustomToken:f,loading:d,error:g}=Ju(),[C,S]=Vr(""),T=!!s&&No(s,l),v=!s||!l||!T,k=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 k()},LT),w()},"handleErrorModalButtonClick");return NT(()=>{g&&c(!0)},[g]),he.createElement(oe,{header:{title:It.t("Add Custom Token")}},he.createElement(ie,null,he.createElement(MT,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(AT,{size:"large",variant:"label"},It.t("Enter Address")),he.createElement(vn,{size:10}),he.createElement(IT,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:It.t("Enter token address"),size:"large",value:l,suffix:!!l&&T&&he.createElement(xT,{color:"success",size:12}),onChange:L=>p(L.target.value)}),!T&&!!l&&he.createElement(he.Fragment,null,he.createElement(vn,{size:4}),he.createElement(vT,{type:"error",variant:"alarm",title:"Invalid Address"}))),he.createElement(Ru,{id:"widget-add-custom-token-import-btn",disabled:v,type:"primary",variant:"contained",loading:d,size:"large",onClick:k},It.t("Import"))),he.createElement(R,{open:u,dismissible:!0,onClose:w,container:N()},he.createElement(bT,{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(Ru,{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(em,"AddCustomTokenPage");import{i18n as Ks}from"@lingui/core";import{useManager as hv}from"@rango-dev/queue-manager-react";import{Alert as Xd,Button as yv,css as Xs,Divider as js,IconButton as Yd,styled as Sv,Typography as Cv,WalletIcon as Tv}from"@rango-dev/ui";import be,{useEffect as vi,useLayoutEffect as kv,useRef as vv,useState as Dn}from"react";import{useNavigate as wv}from"react-router-dom";import{i18n as yo}from"@lingui/core";import{Alert as Am,BalanceErrors as ik,Button as Nm,ChevronLeftIcon as ak,Divider as ti,MessageBox as sk,Typography as bs}from"@rango-dev/ui";import Y,{useCallback as lk,useEffect as Wm,useMemo as pk,useState as So}from"react";import{useNavigate as ck}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 OT,ChevronDownIcon as UT,CloseIcon as zT,Divider as sm,IconButton as lm,PasteIcon as QT,Typography as qT,WalletIcon as HT}from"@rango-dev/ui";import Be,{useEffect as GT,useRef as VT}from"react";import Jr,{useRef as $T}from"react";import*as jo from"@radix-ui/react-collapsible";import{keyframes as tm,styled as Xr}from"@rango-dev/ui";var Ss=300,DT=tm({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),_T=tm({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),om=Xr(jo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Cs=Xr(jo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Yr=Xr(jo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${DT} ${Ss}ms ease-out`},false:{animation:`${_T} ${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=$T(null);return Jr.createElement(om,{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 nm,styled as Ts,TextField as FT}from"@rango-dev/ui";var rm=Ts("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),im=Ts(FT,{backgroundColor:"$neutral100",padding:"$15"}),am=Ts("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${nm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${nm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function pm(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=y(),l=y().blockchains(),p=rr(e.name,l),u=VT(null),c=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!No(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(lm,{id:"widget-custom-destination-close-icon-btn",onClick:d,variant:"ghost"},Be.createElement(zT,{size:12,color:"gray"})):m?null:Be.createElement(lm,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Be.createElement(QT,{size:16})),"renderSuffix");return GT(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Be.createElement(rm,null,Be.createElement(Rr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Be.createElement(am,null,Be.createElement("div",{className:"button__content"},Be.createElement(HT,{size:18,color:"info"}),Be.createElement(sm,{size:4,direction:"horizontal"}),Be.createElement(qT,{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(UT,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Be.createElement(im,{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(sm,{size:4}),Be.createElement(OT,{variant:"alarm",type:"error",title:ks.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(pm,"CustomDestination");import{css as KT,darkTheme as vs,IconButton as jT,styled as Dt}from"@rango-dev/ui";var cm=Dt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),um=Dt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),XT=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"}}}}),mm=Dt(XT,{alignSelf:"stretch",minHeight:"93px"}),dm=Dt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),fm=Dt(jT,{position:"absolute",left:"$20"}),gm=Dt("div",{paddingTop:"$20"}),hm=KT({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ym=Dt("div",{display:"flex"}),Sm=Dt("div",{overflow:"visible",width:"100%"});import{i18n as xm}from"@lingui/core";import{warn as ek}from"@rango-dev/logging-core";import{Divider as tk,SelectableWallet as ok,Typography as bm,WalletState as Em}from"@rango-dev/ui";import Ze,{useEffect as Im,useState as xn}from"react";import{Image as JT,MessageBox as RT}from"@rango-dev/ui";import wn from"react";import{keyframes as YT,styled as ws}from"@rango-dev/ui";var Cm=ws("div",{position:"relative"}),ZT=YT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Tm=ws("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ZT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),km=ws("div",{"& img":{borderRadius:"50%"}});import{i18n as Xo}from"@lingui/core";function vm(t,e){switch(t){case"in-progress":return{type:"loading",title:Xo.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Xo.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Xo.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Xo.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Xo.t("Request Rejected"),description:Xo.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(vm,"generateMessageByStatus");function wm(t){let{status:e,displayName:o,image:n}=t,r=vm(e,o),a=e=="in-progress";return wn.createElement(RT,{type:r.type,title:r.title,description:r.description,icon:a?wn.createElement(Cm,null,wn.createElement(km,null,wn.createElement(JT,{src:n,size:45})),wn.createElement(Tm,null)):void 0})}i(wm,"ExperimentalChainStatus");var nk=7,rk=3e3;function xs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=le.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:v}=gt({chain:e}),[k,w]=xn(v),I=v.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");Im(()=>{w(x=>{let W=v.findIndex(D=>o(D.type,e));return L&&W>1?[v[W]].concat(v.filter((D,A)=>A!==W)):x.map(D=>v.find(A=>A.type===D.type)??D)})},[JSON.stringify(v)]);let E=document.getElementById(Pe.SWAP_BOX_ID);return Im(()=>{let x=null;return(g==="completed"||g==="rejected")&&(x=setTimeout(()=>C(null),rk)),()=>{x&&clearTimeout(x)}},[g]),Ze.createElement(Ze.Fragment,null,k.slice(0,r).map(x=>{let W=Up({connectedWallets:p,walletType:x.type,chain:e}),D=W?gr(W,nk):"",A=dr(l(),e),X=!p.find(pe=>pe.walletType===x.type&&pe.chain===e),se=A&&X&&x.state===Em.CONNECTED,J=se?xm.t({id:"Add {chain} chain",values:{chain:e}}):D,M=i(async()=>{let pe=x.state===Em.DISCONNECTED,Q=(x.isHub||!!x.namespaces)&&!D;pe?c(x):Q?(await T(x.type),c(x)):se?(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 Ze.createElement(Ze.Fragment,{key:`${x.title}_${K}`},!!m&&Ze.createElement(R,{open:!!m&&f,container:E,onClose:()=>{h(null)}},Ze.createElement(Wa,{displayName:K,onConfirm:()=>{b(m)}})),g&&Ze.createElement(R,{open:!!g,onClose:C.bind(null,null),container:E},Ze.createElement(wm,{status:g,displayName:K,image:x.image}),Ze.createElement(tk,{direction:"vertical",size:32})),Ze.createElement(ok,{key:x.type,description:J,onClick:M,selected:o(x.type,e),disabled:!s,...x}))}),Ze.createElement(uo,{wallet:u,onClose:()=>{c(void 0)},onConnect:x=>{t.onConnect&&x.status==="connected"&&(u?.type?t.onConnect(u.type):ek(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),L&&Ze.createElement(mm,{selected:!1,onClick:a},Ze.createElement(bm,{variant:"label",size:"medium"},xm.t("Show more wallets"),Ze.createElement(bm,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(xs,"WalletList");var uk=2;function Bm(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=ck(),l=y().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:m,customDestination:h,setCustomDestination:f}=O(),{config:d,connectedWallets:g,setWalletsAsSelected:C}=y(),[S,T]=So(""),[v,k]=So([]),[w,I]=So(""),[L,b]=So(null),[E,x]=So(!!h),W=pk(()=>ao({filter:"all",quote:p}),[p]),D=ao({filter:"required",quote:p}),A=l.find(_=>_.name===p?.swaps[p?.swaps.length-1].to.blockchain),X=i(_=>D.includes(_),"isWalletRequiredFor"),se=lk(()=>g.filter(_=>_.selected&&W.includes(_.chain)),[g,W]),[J,M]=So(se()),[K,pe]=So([]),Q=i((_,G)=>pe(q=>q.concat({blockchain:_,walletType:G})),"addNextSelectedWallets"),me=v.length>0,Ge=i((_,G)=>!!J.find(q=>q.walletType===_&&q.chain===G&&q.selected&&(X(G)||!X(G)&&!h)),"isSelected"),st=i((_,G,q)=>{let ee=!1;return _.map(ne=>{if(ne.chain===G){let re=ne.selected;return!ee&&q?(ee=!0,re=!0):q||(re=!1),{...ne,selected:re}}return ne})},"updateSelectableWallets"),de=i(_=>{x(_),_?X(A?.name??"")||M(G=>st(G,A?.name||"",!1)):(f(""),M(G=>st(G,A?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),Ve=i(_=>{if(S&&T(""),Ge(_.walletType,_.chain))return;let q=g.find(ee=>ee.walletType===_.walletType&&ee.chain===_.chain);q&&(n(),_.chain===A?.name&&E&&!X(A.name)&&(x(!1),f(null)),M(ee=>ee.filter(ne=>ne.chain!==_.chain).concat({...q,selected:!0})))},"onChange"),V=i(()=>{let _=J.filter(G=>G.selected);C(_),u(_),m(!0),o()},"onConfirmBalance"),Ke=i(async()=>{k([]),I(""),b(null);let _=await r?.({selectedWallets:J.filter(q=>q.selected),customDestination:h}),G=_.warnings;G?.balance?.messages&&k(G.balance.messages),G?.quoteUpdate&&b(G.quoteUpdate),_.error&&I(Vc(_.error)),!_.error&&!G?.balance?.messages.length?V():k(G?.balance?.messages??[])},"onConfirmWallets");Wm(()=>{M(_=>{let G=[];return _.forEach(q=>{!g.some(ne=>ne.chain===q.chain&&ne.walletType===q.walletType&&ne.address===q.address)||G.push(q)}),G=G.concat(g.filter(q=>!!!G.find(ne=>ne.chain===q.chain)&&q.selected&&W.includes(q.chain))),G})},[g,W]),Wm(()=>{let _=[];K.length>0&&(K.forEach(G=>{let q=g.find(ee=>ee.chain===G.blockchain&&ee.walletType===G.walletType);q?Ve(q):_.push(G)}),pe(_))},[g,K]);let ft=document.getElementById(Pe.SWAP_BOX_ID);return Y.createElement(R,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!S,container:ft,...!S&&{styles:{container:{height:"100%"}},footer:Y.createElement(ym,null,Y.createElement(Nm,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:cu(a,E,h,p,J,A),onClick:Ke,variant:"contained",type:"primary",fullWidth:!0,size:"large"},yo.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:Y.createElement(dm,null,Y.createElement(fm,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:T.bind(null,"")},Y.createElement(ak,{size:16})),Y.createElement(bs,{variant:"headline",size:"small"},yo.t({id:"Your {blockchainName} wallets",values:{blockchainName:lt(S,l)}})))},anchor:"center"},Y.createElement(R,{open:me,onClose:k.bind(null,[]),container:ft},Y.createElement(sk,{title:yo.t("Insufficient account balance"),type:"error",description:Y.createElement(ik,{messages:v??[]})},Y.createElement(Nm,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:V},yo.t("Proceed anyway")))),S&&Y.createElement(gm,null,Y.createElement("div",{className:hm()},Y.createElement(xs,{chain:S,isSelected:Ge,selectWallet:Ve,onShowMore:()=>T(S),onConnect:_=>{Q(S,_)}}))),!S&&Y.createElement(Y.Fragment,null,w&&Y.createElement(Y.Fragment,null,Y.createElement(Am,{variant:"alarm",type:"error",title:yo.t(w)}),Y.createElement(ti,{size:12})),L&&Y.createElement(Y.Fragment,null,Y.createElement(Am,{variant:"alarm",type:"warning",title:jr(L)}),Y.createElement(ti,{size:12})),Y.createElement(Sm,null,W.map((_,G)=>{let q=l.find($e=>$e.name===_),ee=`wallet-${G}`,ne=G===W.length-1,re=ne&&A&&d?.customDestination!==!1;return Y.createElement("div",{key:ee},Y.createElement(cm,null,Y.createElement(bs,{variant:"title",size:"xmedium"},yo.t({id:"Your {blockchainName} wallets",values:{blockchainName:q?.shortName}})),Y.createElement(bs,{variant:"label",color:"$neutral700",size:"medium"},yo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:q?.shortName}}))),Y.createElement(ti,{size:24}),Y.createElement(um,null,Y.createElement(xs,{chain:_,isSelected:Ge,selectWallet:Ve,limit:uk,onShowMore:()=>T(q?.name??""),onConnect:$e=>{Q(_,$e)}})),!ne&&Y.createElement(ti,{size:32}),re&&Y.createElement(pm,{blockchain:A,open:E,handleOpenChange:de}))}))))}i(Bm,"ConfirmWalletsModal");import{i18n as Wk}from"@lingui/core";import{Alert as Bk,Button as Mk,InfoIcon as Lk}from"@rango-dev/ui";import tt from"react";import{Alert as fk,Button as gk,Divider as As,NoRouteIcon as hk,RefreshIcon as yk,Typography as Fm}from"@rango-dev/ui";import et from"react";import{i18n as Mm}from"@lingui/core";var mk=24,dk=60;function Lm(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:te().genericServerError,action:{onClick:n,title:Mm.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:te().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Mm.t("Reset")}},description:te().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:te().noResultError.description}}i(Lm,"makeInfo");var Es=(o=>(o[o.small=mk]="small",o[o.large=dk]="large",o))(Es||{}),Is=(o=>(o.small="small",o.large="medium",o))(Is||{});import{styled as oi}from"@rango-dev/ui";var Pm=oi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Dm=oi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),_m=oi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),$m=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=Lm(o,r,()=>a(s,!0),e);return et.createElement(Pm,null,et.createElement(hk,{size:Es[n],color:"gray"}),et.createElement(As,{size:4}),et.createElement(Fm,{variant:"title",size:Is[n]},te().noResultError.title),n==="large"&&et.createElement(As,{size:4}),!!l.description&&et.createElement(Dm,{size:n},et.createElement(Fm,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),et.createElement(As,{size:n==="large"?"24":"4"}),!!l.alert&&et.createElement(_m,{size:n},et.createElement(fk,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&et.createElement(gk,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:et.createElement($m,null,et.createElement(yk,{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 Ck,Divider as Tk,MessageBox as kk,Typography as vk,WarningIcon as wk}from"@rango-dev/ui";import _t from"react";import{Typography as Qm}from"@rango-dev/ui";import Ws from"react";import{darkTheme as Sk,styled as ni}from"@rango-dev/ui";var Om=ni("div",{width:"100%"}),Ns=ni("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Um=ni("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Sk} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),zm=ni("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function qm(t){let{title:e,value:o,valueColor:n}=t;return Ws.createElement(Um,null,Ws.createElement(Qm,{size:"medium",variant:"label",className:"_title"},e),Ws.createElement(Qm,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(qm,"QuoteErrorsModalItem");function Hm(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(Ck,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:_t.createElement(wk,null),fullWidth:!0,disabled:a,onClick:n},te().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},_t.createElement(kk,{type:s,title:te().highValueLossError.impactTitle,description:te().highValueLossError.description}),_t.createElement(Ns,null,_t.createElement(Tk,{size:"4"}),_t.createElement(vk,{size:"small",variant:"title"},En.t("Details")),_t.createElement(Ns,null,l.map((p,u)=>_t.createElement(qm,{key:u,...p})))))}i(Hm,"HighValueLossWarningModal");import{i18n as Bs}from"@lingui/core";function Gm(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=te().highValueLossError.title),t.type===1&&(o.title=te().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(Gm,"makeAlerts");import{i18n as Yo}from"@lingui/core";import{Button as Vm,Divider as Km,MessageBox as xk,Typography as bk}from"@rango-dev/ui";import Co from"react";import{useNavigate as Ek}from"react-router-dom";function jm(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=Ek(),u=e??o;return Co.createElement(R,{anchor:"bottom",open:n,prefix:Co.createElement(Vm,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>p("../"+$.settings)},Co.createElement(bk,{variant:"label",size:"medium",color:"$neutral900"},Yo.t("Change settings"))),container:N(),onClose:r},Co.createElement(xk,{type:"warning",title:s.type===3?Yo.t("High slippage"):Yo.t("Low slippage"),description:s.type===3?Yo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Yo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},Co.createElement(Km,{size:18}),Co.createElement(Km,{size:32}),Co.createElement(Vm,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Yo.t("Confirm anyway"))))}i(jm,"SlippageWarningModal");import{Button as Ik,MessageBox as Ak,WarningIcon as Nk}from"@rango-dev/ui";import ri from"react";function Xm(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return ri.createElement(R,{footer:ri.createElement(Ik,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:ri.createElement(Nk,null),fullWidth:!0,disabled:r,onClick:n},te().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},ri.createElement(Ak,{type:"warning",title:te().unknownPriceError.impactTitle,description:te().unknownPriceError.description}))}i(Xm,"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=Gm(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),tt.createElement(tt.Fragment,null,h&&tt.createElement(bn,{error:o,fetch:s}),!!f&&tt.createElement(Om,null,tt.createElement(Bk,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:tt.createElement(zm,{onClick:l},tt.createElement(Lk,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:tt.createElement(Mk,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:c},Wk.t("Change"))}})),e&&tt.createElement(tt.Fragment,null,e.type===0&&tt.createElement(Hm,{...m,warning:e}),(e.type===3||e.type===2)&&tt.createElement(jm,{...m,warning:e}),e.type===1&&tt.createElement(Xm,{...m,warning:e})))}i(In,"QuoteWarningsAndErrors");import cv from"bignumber.js";import Si from"react";import{i18n as To}from"@lingui/core";import{Alert as Zk,Divider as Jo,FullExpandedQuote as Jk,InfoIcon as Rk,NumericTooltip as Id,QuoteTag as ev,StepDetails as tv,TokenAmount as ov,Typography as Ro}from"@rango-dev/ui";import Us from"bignumber.js";import F,{useRef as nv,useState as rv}from"react";import{styled as Ms}from"@rango-dev/ui";var Ls=Ms("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Ym=Ms("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Zm=Ms("div",{width:"100%",display:"flex"});import*as ii from"@radix-ui/react-collapsible";import{Button as Pk,css as An,darkTheme as we,Image as Jm,styled as Ue,Typography as Dk}from"@rango-dev/ui";var _k=300,Rm=Ue(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"}}]}),ed=An({padding:"$10 $15"}),td=Ue(Pk,{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"}}}),od=Ue("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"}}}}]}),nd=An({width:"100%",padding:"$15 $15 $10 $15"}),rd=An({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Zo=An({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),id=An({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ad=Ue(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:{[`& ${Jm}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Jm}`]:{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"}}}),sd=Ue("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"}}}}),ld=Ue(Yr,{width:"100%",background:"inherit"}),Ps=Ue("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${_k}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),VF=Ue("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),pd=Ue("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),cd=Ue("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ds=Ue(Dk,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),ud=Ue("div",{display:"flex",flexWrap:"wrap"}),_s=Ue("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"}}}}),md=Ue("div",{display:"flex"}),ai=Ue("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 Fk,CloseIcon as Ok,Divider as pi,IconButton as Uk,NumericTooltip as zk,QuoteCost as Qk,Typography as St}from"@rango-dev/ui";import Z,{useState as hd}from"react";import{css as $k,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"}),dd=si("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),fd=si("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),gd=$k({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var qk=i(t=>t.fee.isZero()?null:Z.createElement(li,null,Z.createElement(St,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(St,{variant:"label",size:"medium"},"$",B(t.fee,4,4))),"NonPayableFee");function Fs(t){let[e,o]=hd(!1),[n,r]=hd(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,timeWarning:c,showModalFee:m,fullExpandedMode:h=!1}=t,f=s?.swaps??[],d=h?ro():N(),g=Jc(f);return Z.createElement(Z.Fragment,null,Z.createElement(Qk,{onClickFee:m?C=>{C.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,timeWarning:c,time:p,steps:a,tooltipGas:m?At.t("View more info"):void 0,tooltipContainer:d}),Z.createElement(R,{container:d,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Z.createElement(fd,{style:{textAlign:h?"left":"center"}},Z.createElement(St,{variant:"title",size:"medium"},At.t("Gas & Fee Explanation")),Z.createElement(Uk,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(Ok,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(dd,null,Z.createElement(St,{variant:"title",size:"small"},At.t("Details")),Z.createElement(pi,{size:10}),Object.entries(g.payable).flatMap(([C,S])=>S.map((T,v)=>{let k=`payable-fee-${v}`,w=_a(T);return Z.createElement(li,{key:k},Z.createElement(St,{variant:"label",size:"medium",color:"neutral600"},Ma(C,At.t)),Z.createElement(zk,{content:T.amount,container:d},Z.createElement(St,{variant:"label",size:"medium"},B(T.amount,2,2)," ",T.asset.symbol," ($",B(w,4,4),")")))})),Z.createElement(li,{className:"total_payable_fee"},Z.createElement(St,{variant:"label",size:"medium"},At.t("Total Payable Fee")),Z.createElement(St,{variant:"label",size:"medium"},"$",B(l,4,4))),Z.createElement($s,null),Object.keys(g.nonePayable).length&&Z.createElement(Rr,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Z.createElement("div",{className:gd()},Z.createElement(St,{size:"small",variant:"body",color:"neutral700"},n?At.t("Hide non-payable fees"):At.t("Show non-payable fees")),Z.createElement(pi,{size:4,direction:"horizontal"}),Z.createElement(Zr,{orientation:n?"up":"down"},Z.createElement(Fk,{size:12,color:"gray"}))),open:n},Z.createElement(St,{size:"small",variant:"title"},At.t("Description")),Z.createElement(pi,{size:4}),Z.createElement(St,{size:"small",variant:"body",color:"neutral700"},At.t(`The following fees are considered in the transaction output and
1
+ var Gh=Object.defineProperty;var i=(t,e)=>Gh(t,"name",{value:e,configurable:!0});import{EventSeverity as aj,RouteEventType as sj,StepEventType as lj,StepExecutionBlockedEventStatus as pj,StepExecutionEventStatus as cj}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as mj}from"@rango-dev/wallets-core/legacy";import{useWallets as ei,Events as fj}from"@rango-dev/wallets-react";import{Networks as hj,WalletTypes as yj}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as Cj}from"rango-types";import{Divider as US}from"@rango-dev/ui";import co,{useEffect as zS,useRef as QS,useState as Fc}from"react";import{WalletState as Vh}from"@rango-dev/ui";import{useWallets as Kh}from"@rango-dev/wallets-react";import{useReducer as jh}from"react";import{Namespace as na}from"@rango-dev/wallets-shared";function up(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(up,"convertCommonNamespacesKeysToLegacyNamespace");function mp(t){return!!t.derivationPath}i(mp,"isStateOnDerivationPathStep");function dp(t){return!!t.namespace}i(dp,"isStateOnNamespace");var nr={status:"init",namespace:null,derivationPath:null};function fp(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(fp,"reducer");function Ht(){let{state:t,disconnect:e,connect:o}=Kh(),[n,r]=jh(fp,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===Vh.DISCONNECTED){if(!!c.isHub){let C=c.properties?.find(T=>T.name==="detached");if(C&&c.state!=="connected"){let T=up(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(!dp(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(!mp(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 oS}from"@rango-dev/wallets-react";import{detectMobileScreens as nS,KEPLR_COMPATIBLE_WALLETS as rS,WalletTypes as Po}from"@rango-dev/wallets-shared";import{useCallback as iS,useEffect as aS}from"react";import Yy,{createContext as Zy,useContext as Jy,useEffect as Ry,useRef as eS}from"react";import{create as jy}from"zustand";import{persist as Xy}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()}},Ao=new ia;function rr(t,e){return e.find(o=>o.name===t)?.displayName}i(rr,"getBlockchainDisplayNameFor");function lt(t,e){return e.find(o=>o.name===t)?.shortName}i(lt,"getBlockchainShortNameFor");function gp(t,e){return e.find(o=>o.name===t)?.logo}i(gp,"getBlockchainImage");function an(t,e){return e.find(o=>o.id===t)?.title}i(an,"getSwapperDisplayName");function sn(t,e){return e.find(o=>o.name===t)??null}i(sn,"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 pt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(pt,"createTokenHash");function No(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(No,"isValidTokenAddress");function ln(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(l=>{l.forEach(p=>{typeof p!="string"&&(p=pt(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=pt(u);delete n[c]})):a(p.tokens))}),Object.values(n)}i(ln,"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"}},Xh={clientUrl:void 0},Yh={liquiditySources:void 0},hp=i((t,e,o)=>({config:{...sa,...t},iframe:Xh,campaignMode:Yh,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=ln({type:"source",config:{blockchains:n.from?.blockchains,tokens:n.from?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}}),p=ln({type:"destination",config:{blockchains:n.to?.blockchains,tokens:n.to?.tokens},meta:{tokensMapByBlockchainName:s,tokensMapByTokenHash:a}});Ao.set("supportedSourceTokens",l),Ao.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 yp}from"rango-types";var Sp=[yp.EVM,yp.SOLANA];import{RangoClient as uy}from"rango-sdk";import{UI_ID as Zh}from"@rango-dev/ui";var ar="c6381a79-2817-4602-83bf-6a641a409e32",Cp="https://api.rango.exchange",Tp="https://explorer.rango.exchange",Pe={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...Zh};import{BlockchainCategories as ry,WalletState as xt}from"@rango-dev/ui";import{legacyReadAccountAddress as iy}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as ay,getCosmosExperimentalChainInfo as sy,isEvmAddress as ly,KEPLR_COMPATIBLE_WALLETS as aA,Networks as Lp}from"@rango-dev/wallets-shared";import io from"bignumber.js";import{isCosmosBlockchain as py}from"rango-types";import Jh from"bignumber.js";var Ce=new Jh(0);import{WalletTypes as Rh}from"@rango-dev/wallets-shared";var kp=[Rh.LEAP];import{BlockchainCategories as pa,WalletState as ny}from"@rango-dev/ui";import{TransactionType as sr}from"rango-sdk";var vp="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 Wo(t){return Array.from(new Set(t))}i(Wo,"removeDuplicateFrom");function ma(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(ma,"areEqual");function Ap(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Ap,"debounce");function Re(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(Re,"containsText");function bp(t,e){return t.toLowerCase()===e.toLowerCase()}i(bp,"exactText");function Ep(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Ep,"startWithText");var N=i(()=>document.getElementById(Pe.SWAP_BOX_ID),"getContainer"),ro=i(()=>document.getElementById(Pe.EXPANDED_BOX_ID),"getExpanded");function Ip(t,e,o){let n=!!e&&bp(e,t),r=!!o&&bp(o,t);return n!==r?n?-1:1:0}i(Ip,"compareExactMatchText");function ca(t,e,o){let n=!!e&&Re(e,t),r=!!o&&Re(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&&Ep(e,t),r=!!o&&Ep(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ua,"compareStartWithText");function Np(t,e,o){if(!o)return 0;let n=Ip(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Ip(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(Np,"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"),Wp=i(t=>la.find(o=>o.value===t)?.url,"getFontUrlByName");function Bp(t,e){let o=!!t.find(n=>n.state===ny.CONNECTED);return e===!1&&o}i(Bp,"isSingleWalletActive");import{BigNumber as Mp}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 Mp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Mp(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 Pp(t,e,o,n){return o.filter(r=>!kp.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=Wo(m.map(S=>S.type)),C=un(t(r));return{title:a,image:s,link:ay(l),state:C,type:r,showOnMobile:p,namespaces:u,singleNamespace:c,blockchainTypes:g,needsDerivationPath:h,properties:f,isHub:d}})}i(Pp,"mapWalletTypesToWalletInfo");function mr(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(mr,"walletAndSupportedChainsNames");function Dp(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}=iy(p),m=l.length>0,h=l.includes(c),f=c===Lp.Unknown;if(m&&!h&&!f)return;let g=c===Lp.Unknown&&ly(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(Dp,"prepareAccountsForWalletStore");function ao(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(ao,"getQuoteWallets");function _p(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(_p,"isAccountAndWalletMatched");var $p=i(t=>{let e=Object.values(t).reduce((o,n)=>n.usdValue?o.plus(n.usdValue):o,new io(Ce));return cy(e.toString())},"calculateWalletUsdValue");function cy(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(cy,"numberWithThousandSeparator");var dr=i((t,e)=>{let o=sy(Object.entries(t).map(([,n])=>n).filter(py));return o&&o[e]?.experimental},"isExperimentalChain");function fr(t){if(!t)return null;let e=new io(t.amount).shiftedBy(-t.decimals).toFixed(),o=t.usdValue?new io(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 Fp(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new io(t.usdValue).shiftedBy(-t.decimals):Ce,n=e&&e.usdValue?new io(e.usdValue).shiftedBy(-e.decimals):Ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new io(t.amount).shiftedBy(-t.decimals):Ce,n=e&&e.amount?new io(e.amount).shiftedBy(-e.decimals):Ce;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Fp,"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 Op(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(Op,"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 Up({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Up,"getAddress");var zp=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Qp(t){return t.map(e=>e.state).join("-")}i(Qp,"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 Hp(t,e){return e===ry.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(lr(n,e))return!0;return!1})}i(Hp,"filterWalletsByCategory");var da={API_KEY:ar};function Lt(t){return da[t]||""}i(Lt,"getConfig");function Gp(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),da=e,da}i(Gp,"initConfig");var Vp=20,Kp=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"),jp=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var hr,bt=i(()=>hr||(hr=new uy(Lt("API_KEY"),Lt("BASE_URL")),hr),"httpService");function yr(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Wo(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 Xp(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Xp,"sortLiquiditySourcesByGroupTitle");function je(t,e){return e?.[t]==="hidden"}i(je,"isFeatureHidden");function Yp(t,e){return e?.[t]==="enabled"}i(Yp,"isFeatureEnabled");function Bo(t,e){return e?.[t]==="enabled"}i(Bo,"isRoutingEnabled");var Zp=i((t,e,o)=>je("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");var Jp=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=>Sp.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=Ao.get(c);m?.length||(m=ln({type:o.type,config:{blockchains:a[u]?.blockchains,tokens:a[u]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Ao.set(c,m)),m=Zp(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?!!(Re(d.symbol,o.searchFor)||Re(d.address||"",o.searchFor)||Re(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=Fp(I,L);if(b!==0)return b}let T=p.get(d.blockchain),v=p.get(g.blockchain),k=aa(d,T),w=aa(g,v);if(k!==w)return k?-1:1;if(d.isPopular!==g.isPopular)return d.isPopular?-1:1;if(o.searchFor){let I=Np(d,g,o.searchFor);if(I)return I}return d.isSecondaryCoin!==g.isSecondaryCoin?d.isSecondaryCoin?1:-1:T&&v?T.sort-v.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=pt(o),s=n.get(a);return s||(s=r.find(l=>pt(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(Xp)},fetch:async()=>{try{let{routing:o}=e().config,n=Bo("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=pt(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 my,Catalonia as dy,Chinese as Rp,Denmark as fy,English as gy,Finland as hy,French as yy,German as Sy,Greece as Cy,Hungary as Ty,India as ky,Indonesian as vy,Italian as wy,Japanese as xy,Korea as by,Lithuania as Ey,Malay as Iy,Netherlands as Ay,Pakistan as Ny,Philippines as Wy,Poland as By,Portuguese as My,Russian as Ly,SaudiArabia as Py,Serbia as Dy,Slovakia as _y,SouthAfrica as $y,Spanish as Fy,Swahili as Oy,Swedish as Uy,Thai as zy,Turkish as Qy,Ukrainian as qy,Vietnamese as Hy}from"@rango-dev/ui";var ec=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:$y},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:Py},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:my},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:dy},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Rp},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Rp},{title:"Danish",label:"Dansk",local:"da",SVGFlag:fy},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:Ay},{title:"English",label:"English",local:"en",SVGFlag:gy},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:Wy},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:hy},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:yy},{title:"German",label:"Deutsch",local:"de",SVGFlag:Sy},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:Cy},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:ky},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:Ty},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:vy},{title:"Italian",label:"Italiana",local:"it",SVGFlag:wy},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:xy},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:by},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:Ey},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:Iy},{title:"Polish",label:"Polski",local:"pl",SVGFlag:By},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:My},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:Ly},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:Dy},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:_y},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Fy},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:Oy},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:Uy},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:zy},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:Qy},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:qy},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:Ny},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:Hy}],Mo="en";var tc=[.5,1,3],oc=1,nc=5,rc=100,ic=0;var ac=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:oc,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=Wo(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=je("theme",n),s=je("language",n),l=je("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||Mo},...l&&{disabledLiquiditySources:o.liquiditySources||[]},...u&&{language:o.language||Mo}})},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 uc from"bignumber.js";import Gy from"mitt";var ge=Gy(),Vy={on:ge.on,off:ge.off};import{WidgetEvents as sc}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||{}),Lo=(a=>(a[a.RouteEvent=sc.RouteEvent]="RouteEvent",a[a.StepEvent=sc.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Lo||{});import Ky 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 lc(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 Ky(l??Ce).multipliedBy(a).toString():"",u={amount:a,decimals:s,usdValue:p};o[r]=u}),o}i(lc,"createBalanceStateForNewAccount");function pc(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(pc,"updateAggregatedBalanceStateForNewAccount");function cc(t,e){let o=Sr(e),n=mn(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(cc,"removeBalanceFromAggregatedBalance");var mc=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=>_p(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=cc(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=lc(m,e);c=pc(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 uc(u.amount),m=new uc(l.amount);c.isGreaterThan(m)&&(l=u)}),l}}),"createWalletsSlice");function dc(t){return jy()(Xy((...e)=>({...mc(...e),...Jp(...e),...ac(...e),...hp(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(dc,"createAppStore");var fc=Zy(null);function y(){let t=Jy(fc);if(Ry(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(y,"useAppStore");function gc(t){let e=eS();return e.current||(e.current=dc(t.config)),Yy.createElement(fc.Provider,{value:e.current},t.children)}i(gc,"AppStoreProvider");import{allProviders as tS}from"@rango-dev/provider-all";import{defineVersions as Cr,pickVersion as hc,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=tS(o);if(t){let r=[];return t.forEach(a=>{if(typeof a=="string"){let s=yc(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 yc(t,e){let{experimentalWallet:o="enabled"}=e||{};return t.map(n=>{let r=o=="disabled"?"0.0.0":"1.0.0";try{return hc(n,r)[1]}catch{return hc(n,"0.0.0")[1]}})}i(yc,"pickVersionWithFallbackToLegacy");function Sc(t,e){return yc(kr(t,e),e).map(r=>r instanceof Tr?r.id:r.config.type)}i(Sc,"configWalletsToWalletName");var sS=Object.values(Po);function gt(t){let{chain:e}=t||{},{config:o,connectedWallets:n}=y(),{state:r,getWalletInfo:a}=oS(),s=y().blockchains(),{handleDisconnect:l}=Ht(),p=Sc(o?.wallets,{trezorManifest:o?.trezorManifest,walletConnectProjectId:o?.walletConnectProjectId,walletConnectListedDesktopWalletLink:o.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink,tonConnect:o.tonConnect})||sS,u=Pp(r,a,p,e);u=nS()?u.filter(g=>g.showOnMobile!==!1&&r(g.type).installed):u;let c=Op(u),m=i(g=>!n.find(C=>C.walletType===g&&C.chain===e),"isExperimentalChainNotAdded"),h=iS(()=>{let g=u?.filter(C=>C.state===va.CONNECTING)||[];for(let C of g)l(C.type)},[Qp(u)]);aS(()=>()=>{h()},[]);let f=i(g=>{let C=g.find(T=>T.type===Po.DEFAULT);return!C||C.state===va.NOT_INSTALLED?!1:g.filter(T=>T.state!=va.NOT_INSTALLED&&![Po.DEFAULT,Po.WALLET_CONNECT_2,Po.LEDGER].includes(T.type)&&a(T.type).supportedChains.filter(v=>v.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),d=i((g,C,S)=>dr(S,C)&&m(g)&&!rS.includes(g)||g==Po.DEFAULT&&!f(u),"shouldExcludeWallet");return{list:c.filter(g=>!d(g.type,e??"",s)),terminateConnectingWallets:h}}i(gt,"useWalletList");import{Modal as uS}from"@rango-dev/ui";import mS from"react";import{create as cS}from"zustand";var Cc="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(Cc),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 pS=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"),Do=pS;var le=Do(cS()((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})}}))),so=new dn({onInit:()=>le.setState({tabManagerInitiated:!0}),onClaim:()=>le.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>le.setState({isActiveTab:!1})});function R(t){let{watermark:e}=le();return mS.createElement(uS,{hasWatermark:e==="FULL",...t},t.children)}i(R,"WatermarkedModal");import{i18n as wa}from"@lingui/core";import{Button as SS,Checkbox as CS,Divider as TS,Image as Nc,ListItemButton as kS,MessageBox as vS,Radio as wS,RadioRoot as xS}from"@rango-dev/ui";import{namespaces as Wc}from"@rango-dev/wallets-shared";import ke,{useMemo as bS,useState as ES}from"react";import{css as dS,darkTheme as kc,IconButton as fS,styled as lo}from"@rango-dev/ui";var Et=lo(fS,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${kc} &`]:{backgroundColor:"$neutral"}}}),vc=lo("div",{position:"absolute",background:"$secondary500",[`.${kc} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Gt=lo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),wc=lo("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"}}}}),xc=lo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),bc=lo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Ec=dS({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),vr=lo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});import{keyframes as gS,styled as wr}from"@rango-dev/ui";var mN=wr("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),_o=wr("div",{position:"relative"}),hS=gS({"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:`${hS} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),xr=wr("div",{"& img":{borderRadius:"50%"}});function Ic(t,e){return t.find(o=>o.name===e)?.logo}i(Ic,"getBlockchainLogo");import{styled as yS}from"@rango-dev/ui";var Ac=yS("ul",{padding:0,paddingTop:"$4",paddingBottom:"$4"});function fn(t){let{singleNamespace:e,availableNamespaces:o,providerImage:n}=t.value,[r,a]=ES([]),s=y().blockchains(),l=bS(()=>o?.map(c=>({name:c,logo:Ic(s,Wc[c].mainBlockchain),title:Wc[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(xS,{value:r?.[0]},c):ke.createElement(ke.Fragment,null,c),"wrapRadioRoot");return ke.createElement(ke.Fragment,null,ke.createElement(TS,{size:20}),ke.createElement(vS,{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(_o,null,ke.createElement(vr,null,ke.createElement(Nc,{src:n,size:45})),ke.createElement($o,null))}),ke.createElement(Ac,null,u(ke.createElement(ke.Fragment,null,l?.map(c=>ke.createElement(kS,{key:c.name,id:c.name,title:c.title,hasDivider:!0,style:{height:60},onClick:()=>p(c.name),start:ke.createElement(Nc,{src:c.logo,size:22}),end:e?ke.createElement(wS,{value:c.name}):ke.createElement(CS,{checked:r.includes(c.name)})}))))),ke.createElement(SS,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!r.length,onClick:()=>t.onConfirm(r)},wa.t("Confirm")))}i(fn,"Namespaces");import{i18n as Fo}from"@lingui/core";import{Button as NS,Divider as Lc,Image as WS,MessageBox as BS,Select as MS,TextField as LS}from"@rango-dev/ui";import Fe,{useEffect as PS,useState as Pc}from"react";import{namespaces as IS}from"@rango-dev/wallets-shared";var br={id:"custom",label:"Custom",generateDerivationPath:t=>t};function xa(t){let e=t?IS[t].derivationPaths:null;return e?[...e,br]:[]}i(xa,"getDerivationPaths");import{styled as Bc,Typography as AS}from"@rango-dev/ui";var Mc=Bc("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),ba=Bc(AS,{paddingLeft:"$10"}),Ea={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"};var Dc="0";function gn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Pc(null),[l,p]=Pc(Dc),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(Dc),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 PS(()=>{s(xa(o)[0]?.id||null)},[o]),Fe.createElement(Fe.Fragment,null,Fe.createElement(Lc,{size:20}),Fe.createElement(BS,{type:"info",title:Fo.t("Select Derivation Path"),description:Fo.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:Fe.createElement(_o,null,Fe.createElement(xr,null,Fe.createElement(WS,{src:n,size:45})),Fe.createElement($o,null))}),Fe.createElement(Mc,null,Fe.createElement(ba,{variant:"body",size:"xsmall",color:"$neutral600"},Fo.t("Choose Derivation Path Template")),Fe.createElement(MS,{value:a||"",options:c.map(f=>({value:f.id,label:f.label})),variant:"filled",handleItemClick:m,styles:{trigger:Ea}}),Fe.createElement(Lc,{size:20}),Fe.createElement(ba,{variant:"body",size:"xsmall",color:"$neutral600"},u?Fo.t("Enter Path"):Fo.t("Enter Index")),Fe.createElement(LS,{type:u?"text":"number",variant:"contained",value:l,onChange:f=>p(f.target.value),style:Ea})),Fe.createElement(NS,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!c||!a||!l},Fo.t("Confirm")))}i(gn,"DerivationPath");import{i18n as Oo}from"@lingui/core";import{Image as DS,MessageBox as Ia,WalletState as _S}from"@rango-dev/ui";import{useWallets as $S}from"@rango-dev/wallets-react";import po from"react";function Aa(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=$S();return un(a(n))===_S.CONNECTED?po.createElement(Ia,{type:"success",title:Oo.t("Wallet Connected"),description:Oo.t("Your wallet is connected, you can use it to swap.")}):o?po.createElement(Ia,{type:"error",title:Oo.t("Failed to Connect"),description:o||Oo.t("Your wallet is not connected. Please try again.")}):po.createElement(Ia,{type:"loading",title:Oo.t("Connecting to your wallet"),description:Oo.t("Click connect in your wallet popup."),icon:po.createElement(_o,null,po.createElement(xr,null,po.createElement(DS,{src:r,size:45})),po.createElement($o,null))})}i(Aa,"ConnectStatus");import{i18n as Na}from"@lingui/core";import{Button as FS,Divider as _c,MessageBox as OS}from"@rango-dev/ui";import Er from"react";function Wa(t){let{displayName:e,onConfirm:o}=t;return Er.createElement(OS,{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(_c,{size:18}),Er.createElement(_c,{size:32}),Er.createElement(FS,{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 qS=3e3,HS=300;function uo(t){let e=QS(),[o,n]=Fc(!1),[r,a]=Fc(),s=i(S=>{a(S.message)},"catchErrorOnHandle"),{terminateConnectingWallets:l}=gt(),{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 zS(()=>{if(t.wallet){C();let S=!1,T=!0,v=i(()=>{setTimeout(()=>{T=!1,S||n(!0)},HS)},"beforeConnecting"),k=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,qS):L&&g(),t.onConnect&&t.onConnect(w)},"afterConnected");v(),p(t.wallet,{disconnectIfConnected:!0}).then(k).catch(s)}},[t.wallet]),co.createElement(R,{open:o,onClose:g,onExit:()=>{C(),l(),t.onClose&&t.onClose()},container:N()},$c(m,t.wallet)&&co.createElement(co.Fragment,null,co.createElement(Aa,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),co.createElement(US,{direction:"vertical",size:32})),hn(m)&&co.createElement(fn,{onConfirm:f,value:m().namespace}),yn(m)&&co.createElement(gn,{onConfirm:d,value:m().derivationPath}))}i(uo,"StatefulConnectModal");import{Events as Ir,Provider as VS}from"@rango-dev/wallets-react";import{isEvmBlockchain as KS}from"rango-sdk";import Ar,{createContext as jS,useEffect as Uc,useMemo as XS,useRef as zc}from"react";import{useEffect as GS}from"react";function Oc(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Oc,"hashProviders");function Ba(t,e){let{clearConnectedWallet:o}=y(),n=kr(t,e);return GS(()=>{o(),n=kr(t,e)},[Oc(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:n}}i(Ba,"useWalletProviders");var Nr=jS({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function YS(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=zc(),h=zc();Uc(()=>{n().catch(console.log)},[]),Uc(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:p,dappConfig:t.config})},[t.config,r]);let f=a.filter(KS).map(S=>S.name),d=i((S,T,v,k,w)=>{if(T===Ir.ACCOUNTS)if(v){let I=mr(w.supportedBlockchains),L=Dp(S,v,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&&k.connected||T===Ir.ACCOUNTS&&w.isHub){let I=`${S}-${k.network}-${v}`;m.current?m.current(I):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(T===Ir.NETWORK&&k.network){let I=`${S}-${k.network}`;m.current?m.current(I):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(S,T,v,k,w)},"onUpdateState"),g=le.use.isActiveTab(),C=XS(()=>({onConnectWallet:S=>{m.current=S},onDisconnectWallet:S=>{h.current=S}}),[]);return Ar.createElement(Nr.Provider,{value:C},Ar.createElement(VS,{allBlockChains:a,providers:c,onUpdateState:d,autoConnect:!!g,configs:{isExperimentalEnabled:Yp("experimentalWallet",p.features)}},t.children))}i(YS,"Main");function Wr(t){let{config:e,...o}=t;return Ar.createElement(gc,{config:e},Ar.createElement(YS,{...o,config:e}))}i(Wr,"WidgetWallets");import oa from"react";import ZS,{Fragment as JS}from"react";import{MemoryRouter as RS,useInRouterContext as eC}from"react-router";function Qc({children:t}){let o=eC()?JS:RS;return ZS.createElement(o,null,t)}i(Qc,"AppRouter");import{I18nManager as PE}from"@rango-dev/ui";import lp from"react";import Le from"react";import{useRoutes as TE}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 Qo,useRef as Or}from"react";import Xe from"bignumber.js";import{create as nC}from"zustand";import{subscribeWithSelector as rC}from"zustand/middleware";import{getLastSuccessfulStep as oC}from"@rango-dev/queue-manager-rango-preset";import TB 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,Hc=15,Gc=60;import{i18n as ht}from"@lingui/core";import{RouteEventType as iB}from"@rango-dev/queue-manager-rango-preset";import Oe from"bignumber.js";import{PendingSwapNetworkStatus as Mr}from"rango-types";import{i18n as De}from"@lingui/core";var te=i(()=>({genericServerError:De.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:De.t("Please reset your liquidity sources."),description:De.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:De.t("No Routes Found."),description:De.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:De.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:De.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:De.t("High Price Impact"),title:De.t("Price impact is too high!"),description:De.t("The price impact is significantly higher than the allowed amount."),confirmMessage:De.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:De.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:De.t("USD Price Unknown"),title:De.t("USD Price Unknown, Cannot calculate Price Impact."),description:De.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:De.t("Confirm USD Price Unknown")}}),"errorMessages");function Vc(t){switch(t.type){case 0:return t.diagnosisMessage??te().noResultError.title;case 1:return te().genericServerError;default:return""}}i(Vc,"getQuoteErrorMessage");import{i18n as Br}from"@lingui/core";var mo=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 Kc(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new Oe(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new Oe(1e3)))??!1}i(Kc,"hasHighValueLoss");function jc(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Oe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Oe(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(jc,"hasLimitError");function Xc(t){let e=(t||[]).filter(l=>{let p=l.fromAmountMinValue?new Oe(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new Oe(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 Oe(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Oe(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=ht.t({id:"Required: >= {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=ht.t({id:"Required: > {min} {symbol}",values:{min:B(o,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=ht.t({id:"Required: <= {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=ht.t({id:"Required: < {max} {symbol}",values:{max:B(n,6,6),symbol:e.from.symbol}}),s=te().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Xc,"getLimitErrorMessage");function Yc(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:mo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||l||!r||r==="0"?{title:mo().swap,action:"confirm-swap",disabled:!0}:s?{title:mo().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:mo().ethWarning,action:"confirm-warning",disabled:!1}:{title:mo().swap,action:"confirm-swap",disabled:!1}:{title:mo().connectWallet,action:"connect-wallet",disabled:!1}}i(Yc,"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 Oe(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 Oe(t.amount).multipliedBy(t.price||0)),e}i(_a,"getUsdFee");function Zc(t){return t.reduce((e,o)=>e.plus(_a(o)),Ce)}i(Zc,"getTotalFeesInUsd");function Jc(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(Jc,"getFeesGroup");function Rc(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(Rc,"checkSlippageErrors");function eu(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(eu,"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 tu(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(tu,"hasProperSlippage");function ou(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(ou,"createQuoteRequestBody");function nu(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(nu,"getWalletsForNewSwap");function Uo(t){return t?.outputAmount||null}i(Uo,"getQuoteOutputAmount");function ru(t,e){return new Oe(e).div(new Oe(t)).minus(1).multipliedBy(100).toNumber()}i(ru,"getPercentageChange");function iu(t,e){let o=Uo(t),n=Uo(e);if(!o||!n)return!1;let r=ct(o,n);return r?r<=-1:!0}i(iu,"isOutputAmountChangedALot");function au(t,e,o){let n=t.validationStatus,r=ao({filter:"required",quote:t});return e.sort((s,l)=>r.indexOf(s.chain)-r.indexOf(l.chain)).flatMap(s=>mu(s,n)||[]).filter(s=>!s.ok).map(s=>{let l=s.asset.symbol,p=B(new Oe(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),u=B(new Oe(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),c="";return s.reason==="FEE"&&(c=ht.t(" for network fee")),s.reason==="INPUT_ASSET"&&(c=ht.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(c=ht.t(" for input and network fee")),ht.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:lt(s.asset.blockchain,o)}})})}i(au,"generateBalanceWarnings");function Kt(t,e){return(t?new Oe(t):Ce).multipliedBy(e||0)}i(Kt,"calcOutputUsdValue");function Sn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Mr.NetworkChanged}i(Sn,"isNetworkStatusInWarningState");function su(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Sn(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Mr.WaitingForConnectingWallet:n=n||ht.t("Waiting for connecting wallet");break;case Mr.WaitingForQueue:n=n||ht.t("Waiting for other running tasks to be finished");break;case Mr.WaitingForNetworkChange:n=n||ht.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let s=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:s}}}i(su,"getSwapMessages");function lu(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(lu,"getLastConvertedTokenInFailedSwap");function pu(t){return t.status==="failed"}i(pu,"shouldRetrySwap");function cu(t,e,o,n,r,a){if(!n||t)return!0;let s=ao({filter:"all",quote:n}),l=ao({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?No(a,o):!1;return!e&&!p||e&&!o||e&&!!o&&(!c||!u)}i(cu,"isConfirmSwapDisabled");function uu(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(uu,"isTokensIdentical");function fo(t){let e=t?.swaps||[];return e[e.length-1].to.usdPrice}i(fo,"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 fu(t,e){return $a(t,e)||Fa(t,e)||Oa(t,e)}i(fu,"isQuoteChanged");function mu(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(mu,"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=oC(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=sn(a?a.toBlockchain:n.fromBlockchain,e),p=sn(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 zo(t,e){let{fromToken:o,toToken:n,findToken:r,userSlippage:a}=e,s=Kt(t.requestAmount,Cn(t)||o?.usdPrice),l=Kt(t.outputAmount,fo(t)||n?.usdPrice);if(t&&s&&l){let c=ct(s.toString(),l.toString());if(!!c&&Kc(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>nc;if(tu(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<a)return{type:3,slippage:a.toString()}}else return{type:2,recommendedSlippages:eu(t,a),minRequiredSlippage:p};return null}i(zo,"generateQuoteWarnings");function ct(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:ru(t.toString(),e.toString());return n&&n<0?n:null}i(ct,"getPriceImpact");var gu=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"),hu=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"),yu=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 Xe(e||Ce).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Do(nC()(rC(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Xe(0),outputUsdValue:new Xe(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 Xe(e?.outputAmount):null,a=Kt(o.inputAmount,Cn(e)||o.fromToken?.usdPrice),r=Kt(e.outputAmount,fo(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 Xe(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new Xe(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new Xe(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 Xe(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 Xe(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 Xe(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 Xe(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new Xe(0),inputUsdValue:new Xe(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new Xe(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})})))),Su=O.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 Cu(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:l,fromBlockchain:p,toBlockchain:u}=O(),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,v=c?.from?.blockchains,k=c?.to?.tokens,w=c?.to?.blockchains,I=Or(void 0),L=Or(void 0),b=Or(void 0),E=Or(void 0);Qo(()=>{typeof c.amount<"u"&&t(c.amount.toString())},[c?.amount]),Qo(()=>{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]),Qo(()=>{ga(s,T)&&a({token:null}),ha(p,v)&&n(null)},[T,v]),Qo(()=>{ga(l,k)&&a({token:null}),ha(u,w)&&o(null)},[k,w]),Qo(()=>{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]),Qo(()=>{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(Cu,"useSyncStoresWithConfig");import{useEffect as Qa,useRef as iC}from"react";import{useInRouterContext as aC,useLocation as sC,useSearchParams as lC}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=sC(),[e,o]=lC(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:l,setFromBlockchain:p,setToBlockchain:u,setFromToken:c,setToToken:m,setInputAmount:h}=O(),f=y().fetchStatus,d=y().blockchains(),g=y().tokens(),C=aC(),{updateIframe:S,updateCampaignMode:T}=y(),v=y().isInCampaignMode(),k=iC(),{findToken:w}=y(),I=i(()=>{let b={};for(let[K,pe]of e.entries())K.startsWith("utm_")&&(b[K]=pe);let E=e.get("fromAmount"),x=e.get("fromBlockchain"),W=e.get("fromToken"),D=e.get("toBlockchain"),A=e.get("toToken"),X=e.get("autoConnect"),se=e.get("clientUrl"),J=e.get("liquiditySources"),M=e.get("blockchain");return{fromAmount:E,fromBlockchain:x,fromToken:W,toBlockchain:D,toToken:A,autoConnect:X,clientUrl:se,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:v?k.current:void 0,...x})},[t.pathname,l,n,a,r,s,v]),Qa(()=>{if(!C)return;let b=I();if(!k.current&&b.liquiditySources&&(k.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 vT,Button as Ru,darkTheme as wT,Divider as vn,DoneIcon as xT,MessageBox as bT,styled as ET,TextField as IT,Typography as AT}from"@rango-dev/ui";import he,{useEffect as NT,useState as Vr}from"react";import{useNavigate as WT,useSearchParams as BT}from"react-router-dom";import{ChevronRightIcon as pC,Divider as xu,Image as cC,Typography as bu}from"@rango-dev/ui";import yt from"react";import{darkTheme as Tu,styled as Ga}from"@rango-dev/ui";var ku=Ga("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Tu} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Tu} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),vu=Ga("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),wu=Ga("div",{display:"flex"});function Va(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return yt.createElement(vu,null,yt.createElement(bu,{size:"large",variant:"label"},n),yt.createElement(xu,{size:10}),yt.createElement(ku,{onClick:s?void 0:e,disabled:s},yt.createElement(wu,null,r&&yt.createElement(yt.Fragment,null,yt.createElement(cC,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),yt.createElement(xu,{size:4,direction:"horizontal"})),yt.createElement(bu,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),yt.createElement(pC,{size:12,color:"black"})))}i(Va,"BlockchainSelectorButton");import{i18n as ja}from"@lingui/core";import{Button as uC,Divider as Tn,ExternalLinkIcon as mC,Image as dC,Typography as Ho}from"@rango-dev/ui";import Ae from"react";function Eu(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Eu,"generateExplorerLink");import{darkTheme as qo,styled as Iu}from"@rango-dev/ui";var Ka=Iu("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:{}}}}),Au=Iu("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=Eu(n.address,a);return Ae.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Ae.createElement(Au,null,Ae.createElement(dC,{src:n.image,size:45,type:"circular"}),Ae.createElement(Ho,{variant:"title",size:"medium"},n.name),Ae.createElement(Ho,{variant:"body",size:"small",className:"_blockchain-name"},a.displayName),Ae.createElement(Tn,{size:4}),Ae.createElement(Ho,{variant:"body",size:"medium"},s?Ae.createElement(Ka,{hasHover:!0,href:s,target:"_blank",rel:"nofollow noreferrer"},n.address,Ae.createElement(mC,{size:12,color:"gray"})):Ae.createElement(Ka,null,n.address)),Ae.createElement(Tn,{size:4}),n.coinSource&&Ae.createElement(Ho,{className:"_coin-source",variant:"body",size:"xsmall"},ja.t("via")," ",Ae.createElement(Ho,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),Ae.createElement(Tn,{size:"32"}),Ae.createElement(Ho,{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(uC,{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 hT}from"@rango-dev/queue-manager-react";import{BottomLogo as yT,Divider as ju,Header as ST}from"@rango-dev/ui";import We,{useEffect as ys,useRef as Xu,useState as CT}from"react";import{useRef as fC}from"react";function Ur(){return window.self!==window.top}i(Ur,"isAppLoadedIntoIframe");function Ya(){let t=fC(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 gC}from"react-router-dom";function Ye(){let t=gC();return()=>t(-1)}i(Ye,"useNavigateBack");import{createTheme as ns,darkTheme as NC,lightTheme as WC}from"@rango-dev/ui";import{useEffect as BC,useState as MC}from"react";import{theme as IC,darkColors as AC}from"@rango-dev/ui";import ts from"react";function hC(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(hC,"expandShortHexColor");function yC(t){return/[0-9]+$/.test(t)}i(yC,"isOverridingColor");function SC(t,e){return t.padStart(e,"0")}i(SC,"pad");function Za(t){let e=Math.min(Math.max(Math.round(t),0),255);return SC(e.toString(16),2)}i(Za,"intToHex");function CC(t){return`#${Za(t.red)}${Za(t.green)}${Za(t.blue)}`}i(CC,"rgbToHex");function TC(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(TC,"hexToRGB");function kC(t,e){let o=1-.11*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(kC,"generateShade");function vC(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(vC,"generateTint");function wC(t){return Nu(t,kC)}i(wC,"calculateShades");function xC(t){return Nu(t,vC)}i(xC,"calculateTints");function Nu(t,e){let o=TC(t),n=[];for(let r=1;r<9;r++)n.push(CC(e(o,r)));return n}i(Nu,"calculateColors");function Ja(t,e,o){let a=xC(t).reverse().concat(t),s=wC(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)&&!yC(r)){let p=hC(a);Object.assign(n,Ja(p,r,s))}}return{...n,...e}}i(Ra,"expandToGenerateThemeColors");var Wu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),bC=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Wu(o%52)+e;return Wu(o%52)+e},"toAlphabeticName"),EC=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),es=i(t=>bC(EC(5381,JSON.stringify(t))>>>0),"toHash");function os(t){let e=IC.colors,o={...e,...AC},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 Bu(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(Bu,"joinList");function Mu(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Mu,"doesWindowPreferDarkColorScheme");function Go(t){let{colors:e,fontFamily:o=vp,borderRadius:n=Vp,secondaryBorderRadius:r=Kp}=t,[a,s]=MC(Mu()?"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,WC.className],h=[c.className,NC.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 BC(()=>{let d=i(g=>{g.matches?s("dark"):s("light")},"switchThemeListener");return Mu()&&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(Go,"useTheme");var ut=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 Lu}from"@lingui/core";import{Alert as LC,Button as PC}from"@rango-dev/ui";import Pu from"react";function rs(t){return Pu.createElement(LC,{action:Pu.createElement(PC,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Lu.t("Activate this tab")),type:"warning",variant:"alarm",title:Lu.t("Another tab is open and handles transactions.")})}i(rs,"ActivateTabAlert");import{i18n as is}from"@lingui/core";import{Button as DC,Divider as _C,MessageBox as $C}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($C,{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(_C,{size:20}),zr.createElement(DC,{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 FC}from"@rango-dev/ui";import Du from"react";function ss(t){return Du.createElement(Et,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Du.createElement(FC,{color:"black",size:16}))}i(ss,"BackButton");import{i18n as OC}from"@lingui/core";import{Button as UC,Typography as zC}from"@rango-dev/ui";import ls from"react";function ps(t){return ls.createElement(Gt,null,ls.createElement(UC,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ls.createElement(zC,{variant:"label",size:"medium",color:"error500"},OC.t("Cancel"))))}i(ps,"CancelButton");import{i18n as QC}from"@lingui/core";import{Image as qC,Tooltip as HC,WalletIcon as GC}from"@rango-dev/ui";import go from"react";function cs(t){let{list:e}=gt(),o=e.filter(r=>r.state==="connected"),n=o.length?go.createElement("div",{className:Ec()},o.map(r=>go.createElement(vr,{key:r.title},go.createElement(qC,{src:r.image,size:14})))):QC.t("Connect Wallet");return go.createElement(HC,{container:t.container,side:"bottom",content:n},go.createElement(Et,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&go.createElement(vc,null),go.createElement(GC,{size:18,color:"black"})))}i(cs,"WalletButton");import{i18n as qr}from"@lingui/core";import{NotificationsIcon as sT,Popover as lT,SettingsIcon as pT,Tooltip as Hr,TransactionIcon as cT}from"@rango-dev/ui";import Ne from"react";import{Notifications as XC}from"@rango-dev/ui";import YC from"react";import{useNavigate as ZC}from"react-router-dom";import{create as VC}from"zustand";import{persist as KC,subscribeWithSelector as jC}from"zustand/middleware";var ve=Do(VC()(KC(jC((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=ZC(),{getNotifications:e,clearNotifications:o}=ve(),n=e(),r=y().blockchains(),{findToken:a}=y();return YC.createElement(XC,{list:n,getBlockchainImage:l=>gp(l,r)??"",getTokenImage:l=>a(l)?.image??"",onClickItem:i(l=>{t(`${$.swaps}/${l}`)},"onClickItem"),onClearAll:o})}i(us,"NotificationContent");import{useManager as JC}from"@rango-dev/queue-manager-react";import{InProgressIcon as RC}from"@rango-dev/ui";import _u from"react";var eT=i(()=>{let{manager:t}=JC();return ut(t).map(({swap:o})=>o).find(o=>o.status==="running")?_u.createElement(bc,null,_u.createElement(RC,{color:"info",size:6})):null},"InProgressTransactionBadge"),$u=eT;import{EventSeverity as tT}from"@rango-dev/queue-manager-rango-preset";import{Typography as oT}from"@rango-dev/ui";import Fu from"react";function Ou(){let{getNotifications:t}=ve(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===tT.WARNING);return o?Fu.createElement(wc,{isSever:n},Fu.createElement(oT,{variant:"body",size:"xsmall",color:"$background"},o)):null}i(Ou,"NotificationsBadge");import{RefreshProgressButton as nT}from"@rango-dev/ui";import ms,{useEffect as rT,useState as Uu}from"react";var iT=1e3,zu=60,aT=100;function Qr({onClick:t}){let[e,o]=Uu(0),[n,r]=Uu(!1),a=i(p=>{document.hidden&&p&&s(p)},"handleVisibilityChange");rT(()=>{let p;return t?p=window.setInterval(()=>{o(u=>u+1),e===zu&&l()},iT):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(xc,{onTransitionEnd:()=>r(!1),isRefetched:n},ms.createElement(nT,{size:22,color:t?"black":"gray",progress:e/zu*aT})))}i(Qr,"RefreshButton");function ho(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=y(),l=je("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(lT,{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(sT,{size:18,color:"black"}),Ne.createElement(Ou,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(pT,{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(cT,{size:18,color:"black"}),Ne.createElement($u,null))))}i(ho,"HeaderButtons");import{i18n as ds}from"@lingui/core";import{Divider as qu,MessageBox as dT,RefreshIcon as fT}from"@rango-dev/ui";import Vo from"react";import{Button as uT,styled as mT}from"@rango-dev/ui";var Qu=mT(uT,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function fs(t){let{open:e,onClose:o}=t;return Vo.createElement(R,{open:e,dismissible:!0,onClose:o,container:N()},Vo.createElement(dT,{title:ds.t("Something went wrong"),type:"error",description:ds.t("Something went wrong. Please refresh the app.")},Vo.createElement(qu,{size:30}),Vo.createElement(Qu,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},Vo.createElement(fT,{size:20,color:"primary"}),Vo.createElement(qu,{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 gT,styled as hs}from"@rango-dev/ui";var Hu="700px",Gr=gT({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),Gu=hs("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:Hu},fixed:{height:Hu}}}}),Vu=hs("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Ku=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 oe(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Ya(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:l,connectedWallets:p}=y(),[u,c]=CT(!1),{config:{features:m,theme:h}}=y(),{watermark:f}=le(),d=f==="FULL",{activeTheme:g}=Go(h||{}),C=je("connectWalletButton",m),{isActiveTab:S,tabManagerInitiated:T,showActivateTabModal:v,setShowActivateTabModal:k,activateCurrentTab:w}=le(),I=Ye(),{manager:L}=hT(),E=ut(L).map(({swap:se})=>se).some(se=>se.status==="running"),x=i(()=>w(so.forceClaim,E),"onActivateTab"),W=i(()=>{r.onWallet?.()},"onConnectWallet"),D=typeof r.hasBackButton>"u"||r.hasBackButton,A=Xu(null),X=Xu(null);return ys(()=>(Ur()&&X.current&&e(X.current),()=>{o()}),[]),ys(()=>(A.current?.addEventListener("scroll",gs),()=>{A.current?.removeEventListener("scroll",gs)}),[]),ys(()=>{c(l==="failed")},[l]),We.createElement(Gu,{height:s,id:Pe.SWAP_BOX_ID,className:`${g()} ${Gr()}`,ref:X},We.createElement(ST,{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(Vu,{ref:A},n),We.createElement(as,{open:v,onClose:()=>k(!1),onConfirm:x}),We.createElement(Ku,null,We.createElement("div",{className:"footer__content"},T&&!S&&We.createElement("div",{className:"footer__alert"},We.createElement(rs,{onActivateTab:x}),We.createElement(ju,{size:10})),a),We.createElement(ju,{size:12}),We.createElement("div",{className:`footer__logo ${d?"logo__show":"logo__hidden"}`},We.createElement(yT,null))),We.createElement(fs,{open:u,onClose:()=>c(!1)}))}i(oe,"Layout");import{styled as TT}from"@rango-dev/ui";var Yu="$20 $20 $10 $20",kn=TT("div",{padding:Yu,overflowY:"auto",flexGrow:1});import{styled as kT}from"@rango-dev/ui";var ie=kT("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 Ko}from"@lingui/core";import{useState as Zu}from"react";function Ju(){let[t,e]=Zu(!1),[o,n]=Zu(void 0),{findToken:r}=y(),a=y().customTokens();function s(p,u){switch(p){case"duplicated":return{title:Ko.t("Duplicate Token"),message:Ko.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{title:Ko.t("Token Already Exists"),message:Ko.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{title:Ko.t("Token Not Found"),message:Ko.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){if(c?.code==="ERR_BAD_REQUEST"){let m=s("not-found",p);n(m);return}throw n(void 0),new Error(c.message)}finally{e(!1)}},"fetchCustomToken"),loading:t,error:o}}i(Ju,"useFetchCustomToken");var MT=ET("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${wT} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}}),LT=1e3;function em(){let t=WT(),[e]=BT(),o=Ye(),{setCustomToken:n}=y(),r=y().blockchains(),a=e.get("blockchain")||"",s=sn(a,r),[l,p]=Vr(""),[u,c]=Vr(!1),[m,h]=Vr(),{fetchCustomToken:f,loading:d,error:g}=Ju(),[C,S]=Vr(""),T=!!s&&No(s,l),v=!s||!l||!T,k=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 k()},LT),w()},"handleErrorModalButtonClick");return NT(()=>{g&&c(!0)},[g]),he.createElement(oe,{header:{title:It.t("Add Custom Token")}},he.createElement(ie,null,he.createElement(MT,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(AT,{size:"large",variant:"label"},It.t("Enter Address")),he.createElement(vn,{size:10}),he.createElement(IT,{fullWidth:!0,disabled:!s,variant:"contained",placeholder:It.t("Enter token address"),size:"large",value:l,suffix:!!l&&T&&he.createElement(xT,{color:"success",size:12}),onChange:L=>p(L.target.value)}),!T&&!!l&&he.createElement(he.Fragment,null,he.createElement(vn,{size:4}),he.createElement(vT,{type:"error",variant:"alarm",title:"Invalid Address"}))),he.createElement(Ru,{id:"widget-add-custom-token-import-btn",disabled:v,type:"primary",variant:"contained",loading:d,size:"large",onClick:k},It.t("Import"))),he.createElement(R,{open:u,dismissible:!0,onClose:w,container:N()},he.createElement(bT,{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(Ru,{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(em,"AddCustomTokenPage");import{i18n as Ks}from"@lingui/core";import{useManager as hv}from"@rango-dev/queue-manager-react";import{Alert as Xd,Button as yv,css as Xs,Divider as js,IconButton as Yd,styled as Sv,Typography as Cv,WalletIcon as Tv}from"@rango-dev/ui";import be,{useEffect as vi,useLayoutEffect as kv,useRef as vv,useState as Dn}from"react";import{useNavigate as wv}from"react-router-dom";import{i18n as yo}from"@lingui/core";import{Alert as Am,BalanceErrors as ik,Button as Nm,ChevronLeftIcon as ak,Divider as ti,MessageBox as sk,Typography as bs}from"@rango-dev/ui";import Y,{useCallback as lk,useEffect as Wm,useMemo as pk,useState as So}from"react";import{useNavigate as ck}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 OT,ChevronDownIcon as UT,CloseIcon as zT,Divider as sm,IconButton as lm,PasteIcon as QT,Typography as qT,WalletIcon as HT}from"@rango-dev/ui";import Be,{useEffect as GT,useRef as VT}from"react";import Jr,{useRef as $T}from"react";import*as jo from"@radix-ui/react-collapsible";import{keyframes as tm,styled as Xr}from"@rango-dev/ui";var Ss=300,DT=tm({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),_T=tm({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),om=Xr(jo.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Cs=Xr(jo.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Yr=Xr(jo.Content,{overflow:"hidden",variants:{open:{true:{animation:`${DT} ${Ss}ms ease-out`},false:{animation:`${_T} ${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=$T(null);return Jr.createElement(om,{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 nm,styled as Ts,TextField as FT}from"@rango-dev/ui";var rm=Ts("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),im=Ts(FT,{backgroundColor:"$neutral100",padding:"$15"}),am=Ts("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${nm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${nm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function pm(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=y(),l=y().blockchains(),p=rr(e.name,l),u=VT(null),c=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),f=n&&!!r&&e&&!No(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(lm,{id:"widget-custom-destination-close-icon-btn",onClick:d,variant:"ghost"},Be.createElement(zT,{size:12,color:"gray"})):m?null:Be.createElement(lm,{id:"widget-custom-destination-paste-icon-btn",onClick:g,variant:"ghost"},Be.createElement(QT,{size:16})),"renderSuffix");return GT(()=>{!!c&&r===null&&(a(c),o(!0))},[c]),Be.createElement(rm,null,Be.createElement(Rr,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:Be.createElement(am,null,Be.createElement("div",{className:"button__content"},Be.createElement(HT,{size:18,color:"info"}),Be.createElement(sm,{size:4,direction:"horizontal"}),Be.createElement(qT,{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(UT,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},Be.createElement(im,{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(sm,{size:4}),Be.createElement(OT,{variant:"alarm",type:"error",title:ks.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(pm,"CustomDestination");import{css as KT,darkTheme as vs,IconButton as jT,styled as Dt}from"@rango-dev/ui";var cm=Dt("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),um=Dt("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),XT=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"}}}}),mm=Dt(XT,{alignSelf:"stretch",minHeight:"93px"}),dm=Dt("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),fm=Dt(jT,{position:"absolute",left:"$20"}),gm=Dt("div",{paddingTop:"$20"}),hm=KT({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),ym=Dt("div",{display:"flex"}),Sm=Dt("div",{overflow:"visible",width:"100%"});import{i18n as xm}from"@lingui/core";import{warn as ek}from"@rango-dev/logging-core";import{Divider as tk,SelectableWallet as ok,Typography as bm,WalletState as Em}from"@rango-dev/ui";import Ze,{useEffect as Im,useState as xn}from"react";import{Image as JT,MessageBox as RT}from"@rango-dev/ui";import wn from"react";import{keyframes as YT,styled as ws}from"@rango-dev/ui";var Cm=ws("div",{position:"relative"}),ZT=YT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Tm=ws("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ZT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),km=ws("div",{"& img":{borderRadius:"50%"}});import{i18n as Xo}from"@lingui/core";function vm(t,e){switch(t){case"in-progress":return{type:"loading",title:Xo.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Xo.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Xo.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Xo.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Xo.t("Request Rejected"),description:Xo.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(vm,"generateMessageByStatus");function wm(t){let{status:e,displayName:o,image:n}=t,r=vm(e,o),a=e=="in-progress";return wn.createElement(RT,{type:r.type,title:r.title,description:r.description,icon:a?wn.createElement(Cm,null,wn.createElement(km,null,wn.createElement(JT,{src:n,size:45})),wn.createElement(Tm,null)):void 0})}i(wm,"ExperimentalChainStatus");var nk=7,rk=3e3;function xs(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:a}=t,s=le.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:v}=gt({chain:e}),[k,w]=xn(v),I=v.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");Im(()=>{w(x=>{let W=v.findIndex(D=>o(D.type,e));return L&&W>1?[v[W]].concat(v.filter((D,A)=>A!==W)):x.map(D=>v.find(A=>A.type===D.type)??D)})},[JSON.stringify(v)]);let E=document.getElementById(Pe.SWAP_BOX_ID);return Im(()=>{let x=null;return(g==="completed"||g==="rejected")&&(x=setTimeout(()=>C(null),rk)),()=>{x&&clearTimeout(x)}},[g]),Ze.createElement(Ze.Fragment,null,k.slice(0,r).map(x=>{let W=Up({connectedWallets:p,walletType:x.type,chain:e}),D=W?gr(W,nk):"",A=dr(l(),e),X=!p.find(pe=>pe.walletType===x.type&&pe.chain===e),se=A&&X&&x.state===Em.CONNECTED,J=se?xm.t({id:"Add {chain} chain",values:{chain:e}}):D,M=i(async()=>{let pe=x.state===Em.DISCONNECTED,Q=(x.isHub||!!x.namespaces)&&!D;pe?c(x):Q?(await T(x.type),c(x)):se?(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 Ze.createElement(Ze.Fragment,{key:`${x.title}_${K}`},!!m&&Ze.createElement(R,{open:!!m&&f,container:E,onClose:()=>{h(null)}},Ze.createElement(Wa,{displayName:K,onConfirm:()=>{b(m)}})),g&&Ze.createElement(R,{open:!!g,onClose:C.bind(null,null),container:E},Ze.createElement(wm,{status:g,displayName:K,image:x.image}),Ze.createElement(tk,{direction:"vertical",size:32})),Ze.createElement(ok,{key:x.type,description:J,onClick:M,selected:o(x.type,e),disabled:!s,...x}))}),Ze.createElement(uo,{wallet:u,onClose:()=>{c(void 0)},onConnect:x=>{t.onConnect&&x.status==="connected"&&(u?.type?t.onConnect(u.type):ek(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),L&&Ze.createElement(mm,{selected:!1,onClick:a},Ze.createElement(bm,{variant:"label",size:"medium"},xm.t("Show more wallets"),Ze.createElement(bm,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}i(xs,"WalletList");var uk=2;function Bm(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=ck(),l=y().blockchains(),{selectedQuote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:m,customDestination:h,setCustomDestination:f}=O(),{config:d,connectedWallets:g,setWalletsAsSelected:C}=y(),[S,T]=So(""),[v,k]=So([]),[w,I]=So(""),[L,b]=So(null),[E,x]=So(!!h),W=pk(()=>ao({filter:"all",quote:p}),[p]),D=ao({filter:"required",quote:p}),A=l.find(_=>_.name===p?.swaps[p?.swaps.length-1].to.blockchain),X=i(_=>D.includes(_),"isWalletRequiredFor"),se=lk(()=>g.filter(_=>_.selected&&W.includes(_.chain)),[g,W]),[J,M]=So(se()),[K,pe]=So([]),Q=i((_,G)=>pe(q=>q.concat({blockchain:_,walletType:G})),"addNextSelectedWallets"),me=v.length>0,Ge=i((_,G)=>!!J.find(q=>q.walletType===_&&q.chain===G&&q.selected&&(X(G)||!X(G)&&!h)),"isSelected"),st=i((_,G,q)=>{let ee=!1;return _.map(ne=>{if(ne.chain===G){let re=ne.selected;return!ee&&q?(ee=!0,re=!0):q||(re=!1),{...ne,selected:re}}return ne})},"updateSelectableWallets"),de=i(_=>{x(_),_?X(A?.name??"")||M(G=>st(G,A?.name||"",!1)):(f(""),M(G=>st(G,A?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),Ve=i(_=>{if(S&&T(""),Ge(_.walletType,_.chain))return;let q=g.find(ee=>ee.walletType===_.walletType&&ee.chain===_.chain);q&&(n(),_.chain===A?.name&&E&&!X(A.name)&&(x(!1),f(null)),M(ee=>ee.filter(ne=>ne.chain!==_.chain).concat({...q,selected:!0})))},"onChange"),V=i(()=>{let _=J.filter(G=>G.selected);C(_),u(_),m(!0),o()},"onConfirmBalance"),Ke=i(async()=>{k([]),I(""),b(null);let _=await r?.({selectedWallets:J.filter(q=>q.selected),customDestination:h}),G=_.warnings;G?.balance?.messages&&k(G.balance.messages),G?.quoteUpdate&&b(G.quoteUpdate),_.error&&I(Vc(_.error)),!_.error&&!G?.balance?.messages.length?V():k(G?.balance?.messages??[])},"onConfirmWallets");Wm(()=>{M(_=>{let G=[];return _.forEach(q=>{!g.some(ne=>ne.chain===q.chain&&ne.walletType===q.walletType&&ne.address===q.address)||G.push(q)}),G=G.concat(g.filter(q=>!!!G.find(ne=>ne.chain===q.chain)&&q.selected&&W.includes(q.chain))),G})},[g,W]),Wm(()=>{let _=[];K.length>0&&(K.forEach(G=>{let q=g.find(ee=>ee.chain===G.blockchain&&ee.walletType===G.walletType);q?Ve(q):_.push(G)}),pe(_))},[g,K]);let ft=document.getElementById(Pe.SWAP_BOX_ID);return Y.createElement(R,{open:e,onClose:()=>{c||s("../",{replace:!0}),o()},dismissible:!S,container:ft,...!S&&{styles:{container:{height:"100%"}},footer:Y.createElement(ym,null,Y.createElement(Nm,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:cu(a,E,h,p,J,A),onClick:Ke,variant:"contained",type:"primary",fullWidth:!0,size:"large"},yo.t("Confirm")))},...S&&{styles:{container:{height:"100%",padding:"$0"}},header:Y.createElement(dm,null,Y.createElement(fm,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:T.bind(null,"")},Y.createElement(ak,{size:16})),Y.createElement(bs,{variant:"headline",size:"small"},yo.t({id:"Your {blockchainName} wallets",values:{blockchainName:lt(S,l)}})))},anchor:"center"},Y.createElement(R,{open:me,onClose:k.bind(null,[]),container:ft},Y.createElement(sk,{title:yo.t("Insufficient account balance"),type:"error",description:Y.createElement(ik,{messages:v??[]})},Y.createElement(Nm,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:V},yo.t("Proceed anyway")))),S&&Y.createElement(gm,null,Y.createElement("div",{className:hm()},Y.createElement(xs,{chain:S,isSelected:Ge,selectWallet:Ve,onShowMore:()=>T(S),onConnect:_=>{Q(S,_)}}))),!S&&Y.createElement(Y.Fragment,null,w&&Y.createElement(Y.Fragment,null,Y.createElement(Am,{variant:"alarm",type:"error",title:yo.t(w)}),Y.createElement(ti,{size:12})),L&&Y.createElement(Y.Fragment,null,Y.createElement(Am,{variant:"alarm",type:"warning",title:jr(L)}),Y.createElement(ti,{size:12})),Y.createElement(Sm,null,W.map((_,G)=>{let q=l.find($e=>$e.name===_),ee=`wallet-${G}`,ne=G===W.length-1,re=ne&&A&&d?.customDestination!==!1;return Y.createElement("div",{key:ee},Y.createElement(cm,null,Y.createElement(bs,{variant:"title",size:"xmedium"},yo.t({id:"Your {blockchainName} wallets",values:{blockchainName:q?.shortName}})),Y.createElement(bs,{variant:"label",color:"$neutral700",size:"medium"},yo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:q?.shortName}}))),Y.createElement(ti,{size:24}),Y.createElement(um,null,Y.createElement(xs,{chain:_,isSelected:Ge,selectWallet:Ve,limit:uk,onShowMore:()=>T(q?.name??""),onConnect:$e=>{Q(_,$e)}})),!ne&&Y.createElement(ti,{size:32}),re&&Y.createElement(pm,{blockchain:A,open:E,handleOpenChange:de}))}))))}i(Bm,"ConfirmWalletsModal");import{i18n as Wk}from"@lingui/core";import{Alert as Bk,Button as Mk,InfoIcon as Lk}from"@rango-dev/ui";import tt from"react";import{Alert as fk,Button as gk,Divider as As,NoRouteIcon as hk,RefreshIcon as yk,Typography as Fm}from"@rango-dev/ui";import et from"react";import{i18n as Mm}from"@lingui/core";var mk=24,dk=60;function Lm(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:te().genericServerError,action:{onClick:n,title:Mm.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:te().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:Mm.t("Reset")}},description:te().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:te().noResultError.description}}i(Lm,"makeInfo");var Es=(o=>(o[o.small=mk]="small",o[o.large=dk]="large",o))(Es||{}),Is=(o=>(o.small="small",o.large="medium",o))(Is||{});import{styled as oi}from"@rango-dev/ui";var Pm=oi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),Dm=oi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),_m=oi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),$m=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=Lm(o,r,()=>a(s,!0),e);return et.createElement(Pm,null,et.createElement(hk,{size:Es[n],color:"gray"}),et.createElement(As,{size:4}),et.createElement(Fm,{variant:"title",size:Is[n]},te().noResultError.title),n==="large"&&et.createElement(As,{size:4}),!!l.description&&et.createElement(Dm,{size:n},et.createElement(Fm,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),et.createElement(As,{size:n==="large"?"24":"4"}),!!l.alert&&et.createElement(_m,{size:n},et.createElement(fk,{type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&et.createElement(gk,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:et.createElement($m,null,et.createElement(yk,{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 Ck,Divider as Tk,MessageBox as kk,Typography as vk,WarningIcon as wk}from"@rango-dev/ui";import _t from"react";import{Typography as Qm}from"@rango-dev/ui";import Ws from"react";import{darkTheme as Sk,styled as ni}from"@rango-dev/ui";var Om=ni("div",{width:"100%"}),Ns=ni("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Um=ni("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${Sk} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),zm=ni("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function qm(t){let{title:e,value:o,valueColor:n}=t;return Ws.createElement(Um,null,Ws.createElement(Qm,{size:"medium",variant:"label",className:"_title"},e),Ws.createElement(Qm,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(qm,"QuoteErrorsModalItem");function Hm(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(Ck,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:_t.createElement(wk,null),fullWidth:!0,disabled:a,onClick:n},te().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},_t.createElement(kk,{type:s,title:te().highValueLossError.impactTitle,description:te().highValueLossError.description}),_t.createElement(Ns,null,_t.createElement(Tk,{size:"4"}),_t.createElement(vk,{size:"small",variant:"title"},En.t("Details")),_t.createElement(Ns,null,l.map((p,u)=>_t.createElement(qm,{key:u,...p})))))}i(Hm,"HighValueLossWarningModal");import{i18n as Bs}from"@lingui/core";function Gm(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=te().highValueLossError.title),t.type===1&&(o.title=te().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(Gm,"makeAlerts");import{i18n as Yo}from"@lingui/core";import{Button as Vm,Divider as Km,MessageBox as xk,Typography as bk}from"@rango-dev/ui";import Co from"react";import{useNavigate as Ek}from"react-router-dom";function jm(t){let{customSlippage:e,slippage:o}=y(),{open:n,onClose:r,onConfirm:a,warning:s,confirmationDisabled:l}=t,p=Ek(),u=e??o;return Co.createElement(R,{anchor:"bottom",open:n,prefix:Co.createElement(Vm,{size:"small",id:"widget-slippage-warning-modal-change-settings-btn",variant:"ghost",onClick:()=>p("../"+$.settings)},Co.createElement(bk,{variant:"label",size:"medium",color:"$neutral900"},Yo.t("Change settings"))),container:N(),onClose:r},Co.createElement(xk,{type:"warning",title:s.type===3?Yo.t("High slippage"):Yo.t("Low slippage"),description:s.type===3?Yo.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:u}}):Yo.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:s.minRequiredSlippage}})},Co.createElement(Km,{size:18}),Co.createElement(Km,{size:32}),Co.createElement(Vm,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:l,onClick:a},Yo.t("Confirm anyway"))))}i(jm,"SlippageWarningModal");import{Button as Ik,MessageBox as Ak,WarningIcon as Nk}from"@rango-dev/ui";import ri from"react";function Xm(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return ri.createElement(R,{footer:ri.createElement(Ik,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:ri.createElement(Nk,null),fullWidth:!0,disabled:r,onClick:n},te().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},ri.createElement(Ak,{type:"warning",title:te().unknownPriceError.impactTitle,description:te().unknownPriceError.description}))}i(Xm,"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=Gm(e,o?.type===3||o?.type===4?o:null);return f&&!n&&(f.action=null),tt.createElement(tt.Fragment,null,h&&tt.createElement(bn,{error:o,fetch:s}),!!f&&tt.createElement(Om,null,tt.createElement(Bk,{title:f.title,type:f.alertType,variant:"alarm",...f.action==="show-info"&&{action:tt.createElement(zm,{onClick:l},tt.createElement(Lk,{size:12,color:"gray"}))},...f.action==="change-settings"&&{action:tt.createElement(Mk,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:f.alertType,onClick:c},Wk.t("Change"))}})),e&&tt.createElement(tt.Fragment,null,e.type===0&&tt.createElement(Hm,{...m,warning:e}),(e.type===3||e.type===2)&&tt.createElement(jm,{...m,warning:e}),e.type===1&&tt.createElement(Xm,{...m,warning:e})))}i(In,"QuoteWarningsAndErrors");import cv from"bignumber.js";import Si from"react";import{i18n as To}from"@lingui/core";import{Alert as Zk,Divider as Jo,FullExpandedQuote as Jk,InfoIcon as Rk,NumericTooltip as Id,QuoteTag as ev,StepDetails as tv,TokenAmount as ov,Typography as Ro}from"@rango-dev/ui";import Us from"bignumber.js";import F,{useRef as nv,useState as rv}from"react";import{styled as Ms}from"@rango-dev/ui";var Ls=Ms("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),Ym=Ms("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),Zm=Ms("div",{width:"100%",display:"flex"});import*as ii from"@radix-ui/react-collapsible";import{Button as Pk,css as An,darkTheme as we,Image as Jm,styled as Ue,Typography as Dk}from"@rango-dev/ui";var _k=300,Rm=Ue(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"}}]}),ed=An({padding:"$10 $15"}),td=Ue(Pk,{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"}}}),od=Ue("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"}}}}]}),nd=An({width:"100%",padding:"$15 $15 $10 $15"}),rd=An({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),Zo=An({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),id=An({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${we} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),ad=Ue(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:{[`& ${Jm}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Jm}`]:{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"}}}),sd=Ue("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"}}}}),ld=Ue(Yr,{width:"100%",background:"inherit"}),Ps=Ue("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${_k}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),VF=Ue("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),pd=Ue("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${we} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),cd=Ue("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Ds=Ue(Dk,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),ud=Ue("div",{display:"flex",flexWrap:"wrap"}),_s=Ue("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"}}}}),md=Ue("div",{display:"flex"}),ai=Ue("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 Fk,CloseIcon as Ok,Divider as pi,IconButton as Uk,NumericTooltip as zk,QuoteCost as Qk,Typography as St}from"@rango-dev/ui";import Z,{useState as hd}from"react";import{css as $k,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"}),dd=si("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),fd=si("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),gd=$k({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var qk=i(t=>t.fee.isZero()?null:Z.createElement(li,null,Z.createElement(St,{variant:"label",size:"medium",color:"neutral600"},t.label),Z.createElement(St,{variant:"label",size:"medium"},"$",B(t.fee,4,4))),"NonPayableFee");function Fs(t){let[e,o]=hd(!1),[n,r]=hd(!1),{steps:a,quote:s,fee:l,time:p,feeWarning:u,timeWarning:c,showModalFee:m,fullExpandedMode:h=!1}=t,f=s?.swaps??[],d=h?ro():N(),g=Jc(f);return Z.createElement(Z.Fragment,null,Z.createElement(Qk,{onClickFee:m?C=>{C.stopPropagation(),o(!e)}:void 0,fee:l,feeWarning:u,timeWarning:c,time:p,steps:a,tooltipGas:m?At.t("View more info"):void 0,tooltipContainer:d}),Z.createElement(R,{container:d,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Z.createElement(fd,{style:{textAlign:h?"left":"center"}},Z.createElement(St,{variant:"title",size:"medium"},At.t("Gas & Fee Explanation")),Z.createElement(Uk,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Z.createElement(Ok,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Z.createElement(dd,null,Z.createElement(St,{variant:"title",size:"small"},At.t("Details")),Z.createElement(pi,{size:10}),Object.entries(g.payable).flatMap(([C,S])=>S.map((T,v)=>{let k=`payable-fee-${v}`,w=_a(T);return Z.createElement(li,{key:k},Z.createElement(St,{variant:"label",size:"medium",color:"neutral600"},Ma(C,At.t)),Z.createElement(zk,{content:T.amount,container:d},Z.createElement(St,{variant:"label",size:"medium"},B(T.amount,2,2)," ",T.asset.symbol," ($",B(w,4,4),")")))})),Z.createElement(li,{className:"total_payable_fee"},Z.createElement(St,{variant:"label",size:"medium"},At.t("Total Payable Fee")),Z.createElement(St,{variant:"label",size:"medium"},"$",B(l,4,4))),Z.createElement($s,null),Object.keys(g.nonePayable).length&&Z.createElement(Rr,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Z.createElement("div",{className:gd()},Z.createElement(St,{size:"small",variant:"body",color:"neutral700"},n?At.t("Hide non-payable fees"):At.t("Show non-payable fees")),Z.createElement(pi,{size:4,direction:"horizontal"}),Z.createElement(Zr,{orientation:n?"up":"down"},Z.createElement(Fk,{size:12,color:"gray"}))),open:n},Z.createElement(St,{size:"small",variant:"title"},At.t("Description")),Z.createElement(pi,{size:4}),Z.createElement(St,{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.`)),Z.createElement(pi,{size:10}),Object.entries(g.nonePayable).map(([C,S],T)=>{let v=Zc(S),k=Ma(C,At.t),w=`non-payable-fee-${T}`;return Z.createElement(qk,{key:w,fee:v,label:k})}),Z.createElement($s,null)))))}i(Fs,"QuoteCostDetails");import{i18n as Cd}from"@lingui/core";import{TokenAmount as Td}from"@rango-dev/ui";import ci from"react";import{css as Hk,styled as Gk}from"@rango-dev/ui";var yd=Gk("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Sd=Hk({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(yd,null,ci.createElement(Td,{direction:"horizontal",label:Cd.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:Sd()}),ci.createElement(Td,{direction:"horizontal",tooltipContainer:N(),label:Cd.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 bd}from"@lingui/core";import{ChevronDownIcon as jk,ChevronRightIcon as Xk,Divider as Os,Image as Yk,Tooltip as gi,Typography as mi}from"@rango-dev/ui";import U from"react";import{useLayoutEffect as Vk,useState as Wn}from"react";var kd=480,vd=768,wd=1024,xd=1200,Kk=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<=kd),n(window.innerWidth>kd&&window.innerWidth<=vd),a(window.innerWidth>vd&&window.innerWidth<=wd),l(window.innerWidth>wd&&window.innerWidth<=xd),u(window.innerWidth>xd)},"handleResize");return Vk(()=>(c(),window.addEventListener("resize",c),()=>window.removeEventListener("resize",c)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:p}},"useScreenDetect"),ui=Kk;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(sd,{className:n,state:a},U.createElement(Yk,{src:o,size:16})))},"ImageComponent");function Ed(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:l}=t,p=l||N(),u=r.length,c=gu(r),{isTablet:m,isMobile:h}=ui();return U.createElement(ad,{listItem:s==="list-item",ref:f=>e.current=f,selected:o,onClick:f=>{f.stopPropagation(),n(d=>!d)}},U.createElement("div",{className:Zo()},U.createElement(mi,{variant:"body",size:"xsmall"},bd.t("Via:")),U.createElement(Os,{direction:"horizontal",size:4}),r.map((f,d)=>{let g=`item-${d}`,C=U.createElement(Ps,null,U.createElement(Xk,{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:Zo()},C,r.map((S,T)=>{let v=`image-${T}`;return T>=d&&U.createElement(U.Fragment,{key:v},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:Zo()},U.createElement("div",{className:"blockchains_section"},U.createElement("div",{className:Zo()},U.createElement(mi,{variant:"body",size:"xsmall"},bd.t("Chains:")),U.createElement(Os,{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:Zo()},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(Os,{direction:"horizontal",size:32}))),U.createElement(Ps,{orientation:a?"up":"down"},U.createElement(jk,{size:12,color:"black"}))))}i(Ed,"QuoteTrigger");function zs(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,[v,k]=rv(t.expanded),w=nv(null),I=B(o.value,6,6),L=B(n.value,6,6),b=n.usdValue?B(n.usdValue,4,4):"",E=ct(o.usdValue,n.usdValue??null),x=B(E,2,2),W=Pt(E??0),D=i((de,Ve)=>de.map((V,Ke)=>{let ft,_=r?.type===3&&r.swap.swapperId===V.swapperId,G=r?.type===4&&r.recommendedSlippages?.has(Ke),q=a?.type===2&&a.recommendedSlippages?.has(Ke),ee=_||G,ne=q;ee?ft="error":ne&&(ft="warning");let re=ee?To.t("Slippage Error"):To.t("Slippage Warning");return _&&(re=To.t("Bridge Limit Error")),{swapper:{displayName:an(V.swapperId,g)??"",image:V.swapperLogo},from:{token:{displayName:V.from.symbol,image:V.from.logo},chain:{displayName:lt(V.from.blockchain,f)??"",image:V.from.blockchainLogo},price:{value:Ke===0&&!Ve?B(o.value,6,6):B(V.fromAmount,6,6),usdValue:B((V.from.usdPrice??0)*parseFloat(V.fromAmount),4,4),realValue:Ke===0?o.value:V.fromAmount,realUsdValue:new Us(V.from.usdPrice??0).multipliedBy(V.fromAmount).toString()}},to:{token:{displayName:V.to.symbol,image:V.to.logo},chain:{displayName:lt(V.to.blockchain,f)||"",image:V.to.blockchainLogo},price:{value:B(V.toAmount,6,6),usdValue:B((V.to.usdPrice??0)*parseFloat(V.toAmount),4,4),realValue:V.toAmount,realUsdValue:new Us(V.to.usdPrice??0).multipliedBy(V.toAmount).toString()}},state:ft,alerts:ee||ne?F.createElement(Ym,{dense:m},F.createElement(Zk,{variant:"alarm",type:ee?"error":"warning",title:re,footer:F.createElement(Zm,null,_&&F.createElement("div",null,F.createElement(Ro,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),F.createElement(Jo,{direction:"vertical",size:2}),F.createElement(Ro,{size:"xsmall",variant:"body",color:"neutral900"},To.t({id:"Yours: {amount} {symbol}",values:{amount:B(V.fromAmount,6,6),symbol:V?.from.symbol}}))),(G||q)&&!_&&F.createElement("div",null,F.createElement(Ro,{size:"xsmall",variant:"body",color:"neutral900"},To.t({id:"Minimum required slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(Ke)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(Ke)}}})),F.createElement(Jo,{direction:"vertical",size:2}),F.createElement(Ro,{size:"xsmall",variant:"body",color:"neutral900"},To.t({id:"Yours: {userSlippage}",values:{userSlippage:T}}))))})):void 0,time:pn(V.estimatedTimeInSeconds),fee:B(Da(V,d),2,2),internalSwaps:V.internalSwaps?D(V.internalSwaps):void 0}}),"getQuoteSteps"),A=D(e?.swaps??[]),X=A.length,se=h||N(),J=yu(t.quote.tags||[]),M=!!c,K=pr(e?.swaps),pe=pn(K),Q=Lr(e?.swaps??[],d),me=B(Q,2,2),Ge=Q.gte(new Us(qc)),st=K/Gc>=Hc;return m?F.createElement(Jk,{selected:l,fee:me,time:pe,tooltipContainer:ro(),steps:A,tags:J,quoteCost:F.createElement(Fs,{quote:e,fullExpandedMode:!0,time:pe,fee:me,feeWarning:Ge,timeWarning:st,showModalFee:u,steps:X}),percentageChange:x,warningLevel:W,outputPrice:{value:L,usdValue:b,realValue:n.value,realUsdValue:n.usdValue}}):F.createElement(od,{selected:l,listItem:s==="list-item",basic:s==="basic"},F.createElement("div",{className:nd()},!p&&J.length?F.createElement(F.Fragment,null,F.createElement(md,null,J.map((de,Ve)=>{let V=`${de.value}_${Ve}`;return F.createElement(F.Fragment,{key:V},F.createElement(ev,{label:de.label,value:de.value}),F.createElement(Jo,{size:4,direction:"horizontal"}))})),F.createElement(ai,null),!M&&F.createElement(Jo,{size:4})):null,F.createElement("div",{id:"portal-root",className:rd()},F.createElement(Fs,{quote:e,time:pe,fee:me,feeWarning:Ge,timeWarning:st,showModalFee:u,steps:X}),M&&F.createElement(td,{onClick:de=>{de.stopPropagation(),c()},size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},F.createElement(Ro,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},To.t("See All Routes")))),s==="basic"&&F.createElement("div",{className:id()},F.createElement(cd,null,F.createElement(Rk,{size:12,color:"gray"})),F.createElement(ud,null,F.createElement(Ds,{size:"small",variant:"body"},`${I} ${A[0].from.token.displayName} = `),F.createElement(Id,{content:n.value,container:se,open:n.value?void 0:!1},F.createElement(Ds,{size:"small",variant:"body"},"\xA0",`${L} ${A[A.length-1].to.token.displayName}`))),F.createElement(Id,{content:n.usdValue,container:se},F.createElement(Jo,{size:2,direction:"horizontal"}),F.createElement(Ro,{color:"$neutral600",size:"xsmall",variant:"body"},`($${b})`))),s==="list-item"&&F.createElement(ov,{tooltipContainer:se,type:"output",direction:"vertical",price:{value:L,usdValue:b,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:A[X-1].to.token.displayName,image:A[X-1].to.token.image},chain:{image:A[X-1].to.chain.image},percentageChange:x,warningLevel:W}),s==="swap-preview"&&F.createElement(F.Fragment,null,F.createElement(Nn,{from:A[0].from,to:A[X-1].to,percentageChange:x,warningLevel:W}),F.createElement(Jo,{size:4}))),F.createElement(Rm,{selected:l,listItem:s==="list-item",open:v,className:"quote_container",onOpenChange:k},F.createElement(Ed,{type:s,quoteRef:w,selected:l,setExpanded:k,container:se,expanded:v,steps:A}),F.createElement(ld,{open:v},F.createElement(pd,null),F.createElement("div",{className:ed()},A.map((de,Ve)=>{let V=`item-${Ve}`;return F.createElement(tv,{type:"quote-details",key:V,tooltipContainer:se,step:de,hasSeparator:Ve!==A.length-1,state:de.state})})))))}i(zs,"Quote");import{Divider as lv,Skeleton as pv}from"@rango-dev/ui";import Ft from"react";import{darkTheme as iv,styled as hi}from"@rango-dev/ui";var Ad=hi("div",{$$color:"$colors$neutral100",[`.${iv} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Nd=hi("div",{paddingTop:"$2"}),Wd=hi("div",{paddingLeft:"$8"}),Bd=hi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as zd,Divider as Ct,Skeleton as ot}from"@rango-dev/ui";import z from"react";import{css as av,styled as $t}from"@rango-dev/ui";var Qs=$t("div",{display:"flex"}),Md=$t("div",{padding:"$10 $0 $20"}),Ld=$t("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Pd=$t("div",{display:"flex",justifyContent:"start",alignItems:"center"}),Dd=$t("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),_d=$t("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),$d=$t("div",{width:"65%",display:"flex",justifyContent:"start"}),Fd=$t("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Od=$t("div",{padding:"$15 $0 $15 $0"}),Ud=av({display:"flex",justifyContent:"space-between",alignItems:"center"});function Mn(t){let{type:e,tagHidden:o=!0}=t,n=z.createElement(Dd,null,z.createElement($d,null,z.createElement(zd,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(Ct,{size:8,direction:"horizontal"}),z.createElement(Fd,null,z.createElement(ot,{height:10,width:60,variant:"rounded"}),z.createElement(Ct,{size:4}),z.createElement(ot,{height:15,variant:"rounded"}))),z.createElement(ot,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return z.createElement("div",null,!o&&z.createElement(z.Fragment,null,z.createElement(Qs,null,z.createElement(ot,{width:65,height:20,variant:"rounded"}),z.createElement(Ct,{size:4,direction:"horizontal"}),z.createElement(ot,{width:65,height:20,variant:"rounded"}),z.createElement(Ct,{size:4,direction:"horizontal"}),z.createElement(ot,{width:65,height:20,variant:"rounded"})),z.createElement(ai,null),!r&&z.createElement(Ct,{size:4})),z.createElement("div",{className:Ud()},z.createElement(Qs,null,z.createElement(ot,{width:60,height:10,variant:"rounded"}),z.createElement(Ct,{size:4,direction:"horizontal"}),z.createElement(ot,{width:60,height:10,variant:"rounded"}),z.createElement(Ct,{size:4,direction:"horizontal"}),z.createElement(ot,{width:60,height:10,variant:"rounded"})),r&&z.createElement(ot,{width:85,height:24,variant:"rounded"})),e==="basic"&&z.createElement(Md,null,z.createElement(ot,{height:15,width:148,variant:"rounded"})),e==="list-item"&&z.createElement(Ld,null,z.createElement(Pd,null,z.createElement(zd,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),z.createElement(Ct,{direction:"horizontal",size:4}),z.createElement(ot,{height:15,width:150,variant:"rounded"})),z.createElement(Ct,{size:10}),z.createElement(ot,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(Ct,{size:4}),z.createElement(Od,null,n,z.createElement(_d,null),n),z.createElement(Ct,{size:12})))}i(Mn,"QuoteSummarySkeleton");import{ChainToken as Vd,Divider as Hs,NextIcon as sv,Skeleton as yi}from"@rango-dev/ui";import xe from"react";import{styled as Ln}from"@rango-dev/ui";var Qd=Ln("div",{display:"flex",alignItems:"start"}),qd=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}),Hd=Ln("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Gd=Ln("div",{display:"flex",alignItems:"center"});function Nt(t){let{separator:e=!0}=t;return xe.createElement(xe.Fragment,null,xe.createElement(Gd,null,xe.createElement(yi,{height:22,width:22,variant:"circular"}),xe.createElement(Hs,{direction:"horizontal",size:8}),xe.createElement(yi,{height:15,width:148,variant:"rounded"})),xe.createElement(Qd,null,xe.createElement(Bd,{hideSeparator:!e}),xe.createElement(qd,{extraSpace:e},xe.createElement(qs,null,xe.createElement(Vd,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(Hs,{direction:"horizontal",size:8}),xe.createElement(yi,{height:12,variant:"rounded"})),xe.createElement(Hd,null,xe.createElement(sv,{color:"gray",size:16})),xe.createElement(qs,null,xe.createElement(Vd,{size:"small",loading:!0,chainImage:"",tokenImage:""}),xe.createElement(Hs,{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(Ad,{expanded:o,rounded:e!=="basic"},Ft.createElement(Mn,{type:e,tagHidden:n}),Ft.createElement(Nd,null,Ft.createElement(pv,{height:15,variant:"rounded"})),o&&Ft.createElement(Wd,null,Ft.createElement(lv,{size:24}),Ft.createElement(Nt,null),Ft.createElement(Nt,null),Ft.createElement(Nt,{separator:!1})))}i(Pn,"QuoteSkeleton");function ko(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}=O(),S=e?.outputAmount?new cv(e?.outputAmount):null,T=e?.outputAmount?Kt(e?.outputAmount,fo(e)||C?.usdPrice):null,k=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Si.createElement(Ls,null,Si.createElement(Pn,{tagHidden:l,type:o,expanded:s})):k?Si.createElement(Ls,{onClick:()=>p?.(e)},Si.createElement(zs,{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(ko,"QuoteInfo");import{calculatePendingSwap as fv}from"@rango-dev/queue-manager-rango-preset";import{useEffect as gv}from"react";import{useRef as uv,useState as mv}from"react";var dv=2e3;function Ci({request:t}){let[e,o]=mv(!1),n=uv(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async l=>(await new Promise(p=>setTimeout(p,dv)),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 Kd(){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(Kd,"useFetchConfirmQuote");function Ti(t){if(!t.swaps)throw new Error(te().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Gs(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(Ti,"throwErrorIfResponseIsNotValid");function Gs(t){if(jc(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Xc(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=Rc(t);if(o){let n=Pr(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Gs,"getQuoteError");function jd(t,e,o){let n=!1;t&&(n=fu(t,e));let r={quote:null,quoteUpdate:null,balance:null},a=zo(e,{fromToken:o.fromToken,toToken:o.toToken,findToken:o.findToken,userSlippage:o.userSlippage});a&&(r.quote=a),t&&n&&(iu(t,e)?r.quoteUpdate={type:3,newOutputAmount:B(Uo(e)),percentageChange:B(ct(Uo(t)??"",Uo(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=au(e,o.selectedWallets,o.meta.blockchains);return s.length===0||(r.balance={messages:s}),r}i(jd,"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 Vs(){let{fromToken:t,toToken:e,inputAmount:o,setSelectedQuote:n,selectedQuote:r,customDestination:a,setQuoteWarningsConfirmed:s,resetAlerts:l}=O(),{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}=Kd();return gv(()=>C,[]),{loading:S,fetch:i(async v=>{let k=v.selectedWallets,w=v?.customDestination??a;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=k.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=jd(r??void 0,x,{fromToken:t,toToken:e,meta:{blockchains:m},findToken:f,selectedWallets:k,userSlippage:d});D.quoteUpdate&&s(!1),l();let A=!!D.balance,X=fv(o.toString(),E,nu(k),W,!A,{blockchains:m,tokens:h});return{quote:x,swap:X,error:null,warnings:D}})}catch(b){return ki(b)}},"fetch"),cancelFetch:C}}i(Vs,"useConfirmSwap");var xv=Sv("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Yd}`]:{width:"$48",height:"$48"}}),bv=Xs({flexGrow:1,paddingRight:"$10"}),Ev=Xs({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Iv=Xs({display:"flex",justifyContent:"space-between",alignItems:"center"});function Zd(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=wv(),[l,p]=Dn(""),u=!n,[c,m]=Dn(!1),[h,f]=Dn(!1),{isActiveTab:d}=le(),g=y().getDisabledLiquiditySources(),C=vv(g),{manager:S}=hv(),{fetch:T,loading:v,cancelFetch:k}=Vs(),[w,I]=Dn({swap:null,error:null,warnings:null}),[L,b]=Dn(!1),E=i(async({selectedWallets:M,customDestination:K})=>{let pe=await T?.({selectedWallets:M,customDestination:K});return I(pe),pe},"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&&k()},[u]),vi(()=>{u&&m(u)},[u]),vi(()=>{u||T({selectedWallets:o,customDestination:r}).then(M=>I(M)).catch(M=>console.error(M))},[]),kv(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let X=w.warnings?.quote??null,se=w.error,J=[];if(l&&J.push(be.createElement(Xd,{type:"error",variant:"alarm",title:l})),w.warnings?.quoteUpdate&&J.push(be.createElement(Xd,{variant:"alarm",type:"warning",title:w.warnings.quoteUpdate&&jr(w.warnings.quoteUpdate)})),X||se){let M=`../${$.settings}`;J.push(be.createElement(In,{warning:X,error:se,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(oe,{header:{title:Ks.t("Confirm Swap"),onWallet:()=>{let M=`../${$.wallets}`;s(M)}},footer:be.createElement(xv,null,be.createElement("div",{className:bv()},be.createElement(yv,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:v||h,disabled:!!w.error||!d,onClick:D},Ks.t("Start Swap"))),be.createElement(Yd,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:v||h,disabled:!d,onClick:m.bind(null,!0)},be.createElement(Tv,{size:24})))},c&&be.createElement(Bm,{open:c,onClose:()=>m(!1),onCancel:k,loading:v,onCheckBalance:E}),be.createElement(ie,null,be.createElement("div",{className:Iv()},be.createElement(Cv,{variant:"title",size:"small"},Ks.t("You get")),be.createElement("div",{className:Ev()},be.createElement(Qr,{onClick:!v&&!c&&!L?A:void 0}))),be.createElement(js,{size:"12"}),Bu(J.map((M,K)=>({element:M,key:`alert-${K}`})),be.createElement(js,{size:10})),J.length>0?be.createElement(js,{size:10}):null,be.createElement(ko,{quote:t,type:"swap-preview",expanded:!0,tagHidden:!0,error:w.error,loading:v,warning:w.warnings?.quote??null})))}i(Zd,"ConfirmSwapPage");import{i18n as Ot}from"@lingui/core";import{Button as al,CustomTokensZeroStateDarkIcon as qv,CustomTokensZeroStateIcon as Hv,DeleteIcon as Gv,Divider as On,IconButton as Vv,MessageBox as Kv,NotFound as jv,styled as ll}from"@rango-dev/ui";import fe,{useState as sl}from"react";import{useNavigate as Xv}from"react-router-dom";import{CloseIcon as Nv,IconButton as Wv,SearchIcon as Bv,TextField as Mv}from"@rango-dev/ui";import _n from"react";import{styled as Av}from"@rango-dev/ui";var Jd=Av("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Tt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:l,setValue:p,...u}=t;return _n.createElement(Mv,{prefix:_n.createElement(Jd,null,_n.createElement(Bv,{color:"black"})),suffix:!!s.length&&_n.createElement(Wv,{variant:"ghost",onClick:()=>p?.(""),size:"small"},_n.createElement(Nv,{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(Tt,"SearchInput");import{i18n as il}from"@lingui/core";import{darkTheme as cf,Divider as tn,ExternalLinkIcon as Dv,Image as _v,ListItemButton as $v,NotFound as Fv,PinIcon as Ov,Skeleton as uf,Typography as bi,VirtualizedList as Uv}from"@rango-dev/ui";import H from"react";import{Divider as lf,ListItem as Pv,Skeleton as $n}from"@rango-dev/ui";import kt from"react";import{css as en,darkTheme as Rd,ImageContainer as Lv,styled as mt,Typography as ef}from"@rango-dev/ui";var Ys=en({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Zs=en({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Js=en({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Rs=en({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Rd} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),el=en({}),tl=en(),tf=mt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),ol=mt("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),wi=mt("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Zs}`]:{[`& .${Rs}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${el}`]:{bottom:"-15px"},[`& .${Ys}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Js}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),nl=mt("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),rl=mt(ef,{}),of=mt("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${tl}`]:{$$color:"$colors$neutral600",[`.${Rd} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),xi=mt("div",{display:"flex",alignItems:"end",flexDirection:"column"}),QU=mt("div",{display:"flex",alignItems:"center"}),nf=mt("div",{position:"relative",[`& ${Lv}`]:{borderRadius:"$xm",overflow:"hidden"}}),rf=mt("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),af=mt(ef,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),sf=mt("a",{"& svg:hover":{color:"$colors$info"}});function pf(t){return kt.createElement(wi,null,Array.from(Array(t.size),e=>kt.createElement(Pv,{key:e,hasDivider:!0,start:kt.createElement($n,{variant:"circular",width:35,height:35}),end:kt.createElement(xi,null,kt.createElement($n,{variant:"text",size:"large",width:70}),kt.createElement(lf,{size:4}),kt.createElement($n,{variant:"text",size:"medium",width:50})),title:kt.createElement("div",null,kt.createElement($n,{variant:"text",size:"large",width:90}),kt.createElement(lf,{size:4}),kt.createElement($n,{variant:"text",size:"medium",width:90}))})))}i(pf,"LoadingTokenList");var zv=20,Qv=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,l=e.length;return H.createElement("div",{className:Zs()},o?H.createElement("div",{className:Ys()},o):H.createElement(ol,{className:Js()},H.createElement(bi,{variant:"title",size:"xmedium"},r.symbol),H.createElement(tn,{direction:"horizontal",size:4}),H.createElement(nl,{css:a},H.createElement(rl,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&H.createElement("div",{className:`${Rs()} ${!o&&el()}`},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",H.createElement(tn,{size:4,direction:"horizontal"}),H.createElement(sf,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},H.createElement(Dv,{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?H.createElement(xi,null,H.createElement(uf,{variant:"text",size:"large",width:70}),H.createElement(tn,{size:4}),H.createElement(uf,{variant:"text",size:"medium",width:50})):g&&H.createElement(of,null,H.createElement(af,{variant:"title",size:"small"},g.amount),H.createElement("div",null),g.usdValue&&H.createElement(bi,{variant:"body",className:tl(),size:"xsmall"},`$${g.usdValue}`))},"endRenderer"),f=i(()=>H.createElement(Uv,{itemContent:d=>{let g=e[d],C=g.address||"",S=p.find(w=>w.name===g.blockchain),T=Ja(S.color,"main"),v={$$color:T.main150,[`.${cf} &`]:{$$color:T.main750},backgroundColor:"$$color"},k={$$color:T.main750,[`.${cf} &`]:{$$color:T.main150},color:"$$color"};return H.createElement("div",{style:{paddingRight:5}},H.createElement($v,{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:H.createElement(nf,null,H.createElement(_v,{src:g.image,size:30}),t.type!=="custom-token"&&m(g,t.type)&&H.createElement(rf,null,H.createElement(Ov,{size:12,color:"gray"}))),title:S?.type==="COSMOS"||g.name||!g.name&&!C?H.createElement(ol,null,H.createElement(bi,{variant:"title",size:"xmedium"},g.symbol),H.createElement(tn,{direction:"horizontal",size:4}),H.createElement(nl,{css:v},H.createElement(rl,{variant:"body",size:"xsmall",css:k},g.blockchain))):void 0,description:S?.info&&C&&S.type!=="COSMOS"?Qv({address:C,token:e[d],customCssForTag:v,customCssForTagTitle:k,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 H.createElement(H.Fragment,null,a&&H.createElement(H.Fragment,null,H.createElement(bi,{variant:"label",size:"large"},il.t("Select Token")),H.createElement(tn,{size:4})),H.createElement(tf,null,H.createElement(tn,{size:4}),l==="loading"&&H.createElement(pf,{size:zv}),l==="success"&&(e.length?H.createElement(wi,{as:"ul"},f()):!!o&&H.createElement(Fv,{title:il.t("No results found"),description:il.t("Try using different keywords")}))))}i(Fn,"TokenList");var Yv=ll("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Zv=ll("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Jv=ll(Vv,{"&:hover":{"& svg":{color:"$secondary550"}}});function mf(){let[t,e]=sl(""),{deleteCustomToken:o}=y(),n=y().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:l}=O(),{mode:p}=Go({}),u=Xv(),[c,m]=sl(!1),[h,f]=sl(),d=i(T=>{let v=T.target.value;e(v)},"handleSearch"),g=p==="dark",C=n.filter(T=>Re(T.symbol,t)||Re(T.address||"",t)||Re(T.name||"",t)),S=i(()=>{if(h){let T=a?pt(a):null,v=r?pt(r):null,k=pt(h);T===k?l({token:null}):v===k&&s({token:null}),o(h)}m(!1)},"handleDeleteCustomToken");return fe.createElement(oe,{header:{title:Ot.t("Custom Tokens")}},fe.createElement(ie,null,fe.createElement(Yv,null,n.length?fe.createElement(fe.Fragment,null,fe.createElement(Tt,{value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Ot.t("Search Token"),onChange:d}),fe.createElement(On,{size:16}),fe.createElement(Fn,{list:C,type:"custom-token",searchedFor:t,showTitle:!1,action:T=>fe.createElement(Jv,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),f(T)}},fe.createElement(Gv,{size:12,color:"gray"}))})):fe.createElement(Zv,null,fe.createElement(jv,{icon:g?fe.createElement(qv,{size:200}):fe.createElement(Hv,{size:200}),title:Ot.t("No custom tokens"),description:Ot.t("press the button to add your custom token")})),fe.createElement(On,{size:20}),fe.createElement(al,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>u($.addCustomTokens)},Ot.t("Add Custom Token"))),fe.createElement(R,{open:c,dismissible:!0,onClose:()=>m(!1),container:N()},fe.createElement(Kv,{title:Ot.t("Delete Custom Token"),type:"error",description:Ot.t("Are you sure you want to Delete this Token?")},fe.createElement(On,{size:40}),fe.createElement(On,{size:10}),fe.createElement(al,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},Ot.t("Yes, Delete it")),fe.createElement(On,{size:12}),fe.createElement(al,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},Ot.t("No, Continue"))))))}i(mf,"CustomTokensPage");import{i18n as Qe}from"@lingui/core";import{useManager as yw}from"@rango-dev/queue-manager-react";import{Button as gl,darkTheme as Sw,Divider as wo,MessageBox as Cw,NotFound as Tw,styled as hl,Typography as Ai}from"@rango-dev/ui";import{TransactionStatus as Qn}from"rango-types";import ae,{useMemo as Bf,useState as Ni}from"react";import{useNavigate as kw}from"react-router-dom";import{FilterIcon as iw,Popover as aw}from"@rango-dev/ui";import vo from"react";import{css as Rv,darkTheme as Ei,IconButton as ew,styled as Un}from"@rango-dev/ui";var pl=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:""}}}}}),df=Un(ew,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${Ei} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Ei} &`]:{backgroundColor:"$neutral"},[`& ${pl}::before`]:{backgroundColor:"$secondary100",[`.${Ei} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),ff=Un("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),gf=Un("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),hf=Rv({display:"flex",justifyContent:"space-between",alignItems:"center"}),yf=Un("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as Sf}from"@lingui/core";import{Button as tw,Divider as Cf,ListItemButton as ow,Radio as nw,RadioRoot as rw,Typography as Tf}from"@rango-dev/ui";import nt from"react";function kf(t){let{filterBy:e,onClickItem:o}=t;return nt.createElement(gf,null,nt.createElement("div",{className:hf()},nt.createElement(Tf,{size:"small",variant:"body"},Sf.t("Status")),nt.createElement(tw,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},Sf.t("Reset"))),nt.createElement(Cf,{size:10}),nt.createElement(rw,{value:e},nt.createElement(yf,null,t.list.map((n,r)=>nt.createElement(ow,{key:n.id,style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:nt.createElement(nt.Fragment,null,nt.createElement(Cf,{direction:"horizontal",size:4}),nt.createElement(Tf,{size:"medium",variant:"body"},n.title)),start:nt.createElement(nw,{value:n.id}),onClick:o})))))}i(kf,"FilterSelectorContent");function cl(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return vo.createElement("div",null,vo.createElement(aw,{open:a,align:"end",onOpenChange:o,container:N(),content:vo.createElement(kf,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},vo.createElement(df,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},vo.createElement(pl,{isSelect:!!n},vo.createElement(iw,{size:16,color:"black"}),!!n&&vo.createElement(ff,null)))))}i(cl,"FilterSelector");import{i18n as pw}from"@lingui/core";import{Divider as Ef,GroupedVirtualizedList as cw,Skeleton as uw,SwapListItem as If,Typography as mw}from"@rango-dev/ui";import ze,{useCallback as Af,useEffect as dw,useRef as fw,useState as gw}from"react";function vf(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(vf,"calculateGroupsSoFar");import{css as sw,darkTheme as lw,styled as zn}from"@rango-dev/ui";var ul=sw(),wf=zn("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ml=zn("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ul}`]:{$$color:"$colors$neutral600",[`.${lw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),dl=zn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),xf=zn("div",{gap:"$10",display:"flex",flexDirection:"column"}),bf=zn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var hw=10;function fl(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=gw([]),l=fw(0),{swaps:p,groupCounts:u,groups:c}=n(e),m=Af(vf,[]),h=Af(()=>{let f=e.length-l.current;f&&(l.current+=Math.min(f,hw),s(m(u,l.current)))},[e.length]);if(dw(()=>{r||h()},[r,h]),r){let f=[1,2];return ze.createElement(ze.Fragment,null,[f,f].map((g,C)=>ze.createElement(ml,{key:C},ze.createElement(dl,null,ze.createElement(uw,{variant:"text",width:60,size:"small"}),ze.createElement(Ef,{size:16})),ze.createElement(Ef,{size:4}),ze.createElement(xf,null,g.map((T,v)=>ze.createElement(If,{isLoading:!0,key:v}))))))}return ze.createElement(cw,{endReached:()=>{l.current<e.length&&h()},groupCounts:a,groupContent:f=>ze.createElement(ml,null,ze.createElement(dl,null,ze.createElement(mw,{variant:"label",size:"medium",className:ul()},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 ze.createElement(wf,{key:g.requestId},ze.createElement(If,{requestId:g.requestId,creationTime:g.creationTime,status:g.status,onClick:o,tooltipContainer:N(),onlyShowTime:c[d]===pw.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(fl,"HistoryGroupedList");import{i18n as Ii}from"@lingui/core";import Nf from"dayjs";var Wf=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=Nf();t.forEach(p=>{let u=Number(p.creationTime),c=Nf(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 vw=hl("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),ww=hl("div",{display:"flex",justifyContent:"center",alignItems:"center"}),xw=hl("div",{"._typography":{color:"$neutral700",[`.${Sw}&`]:{color:"$neutral900"}}}),bw=[{id:Qn.SUCCESS,title:Qe.t("Complete")},{id:Qn.RUNNING,title:Qe.t("Running")},{id:Qn.FAILED,title:Qe.t("Failed")}],Ew=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 Mf(){let t=kw(),{manager:e,state:o}=yw(),n=ut(e).map(({swap:v})=>v),[r,a]=Ni(""),[s,l]=Ni(!1),p=!o.loadedFromPersistor,[u,c]=Ni(""),[m,h]=Ni(!1),f=i(v=>{let k=v.target.value;a(k)},"handleSearch"),d=Bf(()=>!r&&!u?n:n.filter(v=>{let{inputAmount:k,status:w,steps:I,requestId:L}=v;return(!r||wt(k,r)||wt(w,r)||Ew(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(v){console.log(v)}},"onClear"),T=Bf(()=>!n.some(v=>v.status===Qn.SUCCESS||v.status===Qn.FAILED),[n]);return ae.createElement(oe,{header:{title:Qe.t("History"),suffix:ae.createElement(Gt,null,ae.createElement(gl,{id:"widget-history-clear-btn",disabled:T,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},ae.createElement(Ai,{size:"medium",variant:"label",color:"error"},Qe.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(ww,null,ae.createElement(Tt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Qe.t("Search Transaction"),autoFocus:!0,onChange:f,style:{height:36},value:r}),ae.createElement(wo,{size:10,direction:"horizontal"}),ae.createElement(cl,{filterBy:u,open:s,onOpenChange:v=>l(v),onClickItem:v=>c(v),list:bw})),ae.createElement(wo,{size:"16"}),ae.createElement(vw,null,g&&ae.createElement(bf,null,ae.createElement(wo,{size:32}),ae.createElement(Tw,{title:r?Qe.t("No results found"):Qe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Qe.t("Try using different keywords"):Qe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!g&&ae.createElement(fl,{list:d,onSwapClick:t,groupBy:Wf,isLoading:p}))),ae.createElement(R,{open:m,onClose:C,container:N()},ae.createElement(wo,{size:20}),ae.createElement(Cw,{type:"warning",title:Qe.t("Clear Transaction History"),description:ae.createElement(xw,null,ae.createElement(Ai,{variant:"body",size:"medium"},Qe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(wo,{size:"24"}),ae.createElement(Ai,{variant:"body",size:"small"},Qe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(wo,{size:30}),ae.createElement(gl,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:S},Qe.t("Yes, Clear the history")),ae.createElement(wo,{size:10}),ae.createElement(gl,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:C},ae.createElement(Ai,{variant:"title",size:"medium",color:"primary"},Qe.t("No, Cancel")))))}i(Mf,"HistoryPage");import{i18n as Yw}from"@lingui/core";import{Button as Zw,Divider as Rf,styled as Jw,WarningIcon as Rw}from"@rango-dev/ui";import ex from"bignumber.js";import qe,{useEffect as eg,useState as tg}from"react";import{useNavigate as tx}from"react-router-dom";import{i18n as Pf}from"@lingui/core";import{Alert as Aw,Divider as yl,NoRouteIcon as Nw,Typography as Ww}from"@rango-dev/ui";import xo from"react";import{styled as Iw}from"@rango-dev/ui";var Lf=Iw("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Sl(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Mt(t,e)?xo.createElement(Lf,null,xo.createElement(yl,{size:10}),xo.createElement(Nw,{size:24,color:"gray"}),xo.createElement(yl,{size:4}),xo.createElement(Ww,{variant:"title",size:"small"},Pf.t("No Routes Found")),xo.createElement(yl,{size:4}),xo.createElement(Aw,{title:Pf.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Sl,"SameTokensWarning");import{i18n as _w}from"@lingui/core";import{Header as $w}from"@rango-dev/ui";import Jt,{useEffect as Fw,useState as Ow}from"react";import{i18n as Mw}from"@lingui/core";import{Divider as Tl,FullExpandedQuote as Lw,Typography as Pw}from"@rango-dev/ui";import ye from"react";import{styled as Cl}from"@rango-dev/ui";var Df=Cl("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),_f=Cl("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),$f=Cl("div",{width:"146px"});import{i18n as qn}from"@lingui/core";import{Select as Bw}from"@rango-dev/ui";import Ff from"react";function Wi(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:qn.t("Smart Routing")},{value:"FEE",label:qn.t("Lowest Fee")},{value:"SPEED",label:qn.t("Fastest Transfer")},{value:"NET_OUTPUT",label:qn.t("Maximum Return")},{value:"PRICE",label:qn.t("Maximum Output")}];return Ff.createElement($f,null,Ff.createElement(Bw,{container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(Wi,"SelectStrategy");var Of=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}=O(),{slippage:g,customSlippage:C}=y(),{findToken:S}=y(),T=l||N(),v=!!u&&u.results.length,k=C??g,w=i(b=>{if(!m||!h||!u)return null;let E={requestAmount:u.requestAmount,validationStatus:null,...b};return zo(E,{fromToken:m,toToken:h,userSlippage:k,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(_f,null,ye.createElement(Pw,{size:"xmedium",variant:"title"},Mw.t("Sort by")),ye.createElement(Wi,{container:T})),ye.createElement(Tl,{size:"10"})),e&&Array.from({length:Of},(b,E)=>ye.createElement(ye.Fragment,{key:E},s?ye.createElement(Lw,{loading:!0}):ye.createElement(Pn,{tagHidden:!1,type:"list-item",expanded:!1}),E!==Of-1&&ye.createElement(Tl,{size:16}))),!e&&ye.createElement(ye.Fragment,null,v?L.map((b,E)=>{let x=w(b),W=Gs(b.swaps),D=L.length-1===E;return ye.createElement(ye.Fragment,{key:b.requestId},ye.createElement(ko,{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(Tl,{size:16}))}):I&&ye.createElement(Df,null,ye.createElement(bn,{size:s?"large":"small",error:d,fetch:n}))))}i(Hn,"Quotes");import{darkTheme as Dw,styled as Uf}from"@rango-dev/ui";var zf=Uf("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${Dw} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Qf=Uf("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var Uw=100;function kl(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,l]=Ow(!1),p=s?"":"is-hidden",{config:u}=y(),c=u?.variant==="full-expanded",m=ro();return Fw(()=>{let h=null;return a?h=setTimeout(()=>{l(!0)},Uw):(l(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),Jt.createElement(zf,{expandMode:u?.variant==="full-expanded"?"full":"default",className:`${p} ${Gr()}`,id:Pe.EXPANDED_BOX_ID},Jt.createElement($w,{title:_w.t("Routes"),suffix:Jt.createElement(Jt.Fragment,null,Jt.createElement(Wi,{container:m}),Jt.createElement(ho,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),Jt.createElement(Qf,null,Jt.createElement(Hn,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:ro(),onClickOnQuote:n,fullExpandedMode:c})))}i(kl,"ExpandedQuotes");import{i18n as Xf}from"@lingui/core";import{SwapInput as Yf}from"@rango-dev/ui";import Hw from"bignumber.js";import Gn from"react";import{ReverseIcon as qw}from"@rango-dev/ui";import wl from"react";import{keyframes as zw,styled as qf}from"@rango-dev/ui";var vl=450,Qw=zw({"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)"}}),Hf=qf("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Gf=qf("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${Qw} ${vl}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 xl(){let t=O.use.switchFromAndTo();return wl.createElement(Hf,null,wl.createElement(Gf,{onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},vl),t()}},wl.createElement(qw,{size:12})))}i(xl,"SwitchFromAndToButton");import{styled as Vf}from"@rango-dev/ui";var Kf=Vf("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),jf=Vf("div",{position:"relative"});function bl(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}=O(),{connectedWallets:g,getBalanceFor:C}=y(),S=a?C(a):null,T=fr(S)?.amount??"0",v=S?new Hw(S.amount).shiftedBy(-S.decimals):Ce,k=!!s&&zp(g,s.name),w=!Pa(d,c,m),I=!Pa(d,c,f),L=!m||!f||!f.gt(0)?null:ct(m.toString(),f.toString());return Gn.createElement(Kf,null,Gn.createElement(jf,null,Gn.createElement(Yf,{label:Xf.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?te().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:k,tooltipContainer:N(),onSelectMaxBalance:()=>{let b=B(v,S?.decimals),E=S?.amount?b:"";u(E)},anyWalletConnected:g.length>0}),Gn.createElement(xl,null)),Gn.createElement(Yf,{sharpBottomStyle:!r&&(!!d||e),label:Xf.t("To"),mode:"To",fetchingQuote:e,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:B(ct(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?te().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(bl,"Inputs");import{useCallback as Gw,useEffect as Vw,useRef as Kw,useState as jw}from"react";function Zf(){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(Zf,"useFetchAllQuotes");var Xw=600;function Bi({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Zf(),{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}=O(),{slippage:S,customSlippage:T,affiliatePercent:v,affiliateRef:k,affiliateWallets:w,fetchStatus:I}=y(),L=y().getLiquiditySources(),b=y().getDisabledLiquiditySources(),E=y().excludeLiquiditySources(),{findToken:x}=y(),[W,D]=jw(!0),A=Kw(p),X=T??S,J=!s||!l||Mt(s,l)||!cn(p),M=i(Q=>{D(Q)},"resetState"),K=i(Q=>{let{fromToken:me,toToken:Ge,inputAmount:st,liquiditySources:de,excludeLiquiditySources:Ve,disabledLiquiditySources:V,slippage:Ke,affiliateRef:ft,affiliatePercent:_,affiliateWallets:G}=Q;if(W||M(!0),!J&&me&&Ge){h();let q=ou({fromToken:me,toToken:Ge,inputAmount:st,liquiditySources:de,excludeLiquiditySources:Ve,disabledLiquiditySources:V,wallets:a,slippage:Ke,affiliateRef:ft,affiliatePercent:_,affiliateWallets:G});Bo("experimental",r)&&(q.experimental=!0),Bo("avoidNativeFee",r)&&(q.avoidNativeFee=!0),Bo("enableCentralizedSwappers",r)&&(q.enableCentralizedSwappers=!0),r?.maxLength&&(q.maxLength=r.maxLength),e(q).then(ee=>{let ne=$r(m,ee.results),re=hu(c,ne,ee.requestAmount);D(!1),C("quotes",ee),g(re),Ti({diagnosisMessages:ee.diagnosisMessages,requestId:re?.requestId||"",swaps:re?.swaps});let $e=fo(re)||Ge?.usdPrice,or=Cn(re)||me?.usdPrice,no=re&&zo(re,{fromToken:{...me,usdPrice:or},toToken:{...Ge,usdPrice:$e},userSlippage:X,findToken:x});C("warning",no)}).catch(ee=>{let{error:ne}=ki(ee);(ne?.type===0||ne?.type===1)&&h(),ne?.type!==2&&(C("error",ne),D(!1))})}},"fetch"),pe=Gw(Ap(Q=>{K(Q)},Xw),[J]);return Vw(()=>{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 Q=K;return A.current&&A.current!=p&&(Q=pe),A.current=p,Q({inputAmount:p,fromToken:s,toToken:l,liquiditySources:L,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:X,affiliateRef:k,affiliatePercent:v,affiliateWallets:w}),o},[I,p,s?.symbol,s?.address,s?.blockchain,l?.symbol,l?.address,l?.blockchain,J,L?.length,n,b.length,X,k,v,JSON.stringify(w)]),{fetch:()=>K({inputAmount:p,fromToken:s,toToken:l,liquiditySources:L,excludeLiquiditySources:E,disabledLiquiditySources:b,slippage:X,affiliateRef:k,affiliatePercent:v,affiliateWallets:w}),loading:W}}i(Bi,"useSwapInput");function Jf(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(Jf,"emitPreventableEvent");var ox=Jw("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),nx=300;function og(){let t=tx(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:l,quotes:p,setSelectedQuote:u,resetQuoteWallets:c,setQuoteWarningsConfirmed:m,updateQuotePartialState:h}=O(),[f,d]=tg(!1),{isLargeScreen:g,isExtraLargeScreen:C}=ui(),{fetch:S,loading:T}=Bi({refetchQuote:a}),{config:v,fetchStatus:k,connectedWallets:w}=y(),{isActiveTab:I}=le(),[L,b]=tg(!1),x=Yc({fetchMetaStatus:k,fetchingQuote:T,inputAmount:n,quote:r,anyWalletConnected:w.length>0,error:s,warning:l,needsToWarnEthOnPath:!1}),W=jp(g,C,v?.variant),D=!!n&&!!e&&!!o&&new ex(n).gt(0)&&!uu(e,o),A=D&&k==="success"&&T,J=(!W||W&&p?.results.length)&&(l||s);eg(()=>{c(),h("refetchQuote",!0)},[]),eg(()=>{d(D)},[D]);let M=(r||s)&&!L?S:void 0,K=i(Q=>{W&&f?(d(!1),setTimeout(()=>{t(Q)},nx)):t(Q)},"onHandleNavigation"),pe=i(Q=>{r?.requestId!==Q.requestId&&(b(!1),u(Q))},"onClickOnQuote");return qe.createElement(ox,null,qe.createElement(oe,{height:"auto",footer:qe.createElement(Zw,{id:`widget-swap-${x.action}-btn`,type:"primary",size:"large",disabled:x.disabled||!I,prefix:x.action==="confirm-warning"&&qe.createElement(Rw,null),fullWidth:!0,onClick:()=>{x.action==="connect-wallet"?Jf({type:"clickConnectWallet"},()=>K($.wallets)):x.action==="confirm-warning"?b(!0):K($.confirmSwap)}},x.title),header:{onWallet:()=>{K($.wallets)},hasBackButton:!1,title:v.title||Yw.t("Swap"),suffix:qe.createElement(ho,{hidden:W?["refresh"]:void 0,onClickRefresh:M,onClickHistory:()=>K($.swaps),onClickSettings:()=>{K($.settings)}})}},qe.createElement(ie,null,qe.createElement(bl,{fetchingQuote:A,fetchMetaStatus:k,isExpandable:W,onClickToken:Q=>{K(Q==="from"?$.fromSwap:$.toSwap)}}),qe.createElement(Rf,{size:"2"}),W?null:qe.createElement(ko,{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?qe.createElement(qe.Fragment,null,qe.createElement(Rf,{size:"10"}),qe.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,qe.createElement(Sl,null))),W?qe.createElement(kl,{loading:A,onClickOnQuote:pe,fetch:S,onClickRefresh:M,isVisible:f}):null)}i(og,"Home");import{i18n as ng}from"@lingui/core";import{Alert as rx,Divider as ix,List as ax,ListItemButton as sx,Radio as lx,RadioRoot as px,Typography as cx}from"@rango-dev/ui";import Wt from"react";function Rt(){let{setLanguage:t,language:e,config:o}=y(),n=ec,r=o?.language||Mo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Mo),resetLanguage:()=>t(null)}}i(Rt,"useLanguage");function rg(){let{activeLanguage:t,changeLanguage:e,languages:o}=Rt(),n=Ye(),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(cx,{variant:"title",size:"xmedium"},l),onClick:()=>{e(a.local),n()},end:Wt.createElement(lx,{value:s}),start:Wt.createElement(p,null)}});return Wt.createElement(oe,{header:{title:ng.t("Language")}},Wt.createElement(ie,null,Wt.createElement(rx,{type:"warning",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Wt.createElement(ix,{size:"8"}),Wt.createElement(px,{value:t},Wt.createElement(ax,{type:Wt.createElement(sx,{title:ng.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}i(rg,"LanguagePage");import{i18n as Ut}from"@lingui/core";import{Button as gx,Checkbox as hx,Image as yx,ListItemButton as Sx,NotFound as Cx,Typography as Tx}from"@rango-dev/ui";import He,{useState as kx}from"react";import{Checkbox as dx,Skeleton as ag}from"@rango-dev/ui";import Kn from"react";import{styled as El}from"@rango-dev/ui";var Vn=El("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Il=El("div",{width:80,display:"flex",justifyContent:"flex-end"}),Al=El("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as ux,styled as mx}from"@rango-dev/ui";var ig=mx(ux,{height:61});var fx=30;function Nl(){return Kn.createElement(Vn,null,Array.from(Array(fx),(t,e)=>Kn.createElement(ig,{hasDivider:!0,key:e,start:Kn.createElement(ag,{variant:"circular",width:35,height:35}),title:Kn.createElement(ag,{variant:"text",size:"large",width:90}),end:Kn.createElement(dx,{checked:!1})})))}i(Nl,"LoadingLiquiditySourceList");function Wl({sourceType:t}){let e=y().fetchStatus,o=y().swappers(),n=y().getDisabledLiquiditySources(),[r,a]=kx(""),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:v,logo:k,id:w,...I}=S;return{id:`widget-setting-liquidity-source-${w.toLowerCase().replace(/\s+/g,"-")}-item-btn`,start:He.createElement(yx,{src:k,size:22,type:"circular"}),onClick:()=>{l||s(v)},end:He.createElement(hx,{checked:T,disabled:l}),title:He.createElement(Tx,{variant:"title",size:"xmedium"},Ut.t(v)),selected:T,groupTitle:v,logo:k,...I}}),g=i(S=>{let T=S.target.value;a(T)},"handleSearch"),C=d;return r&&(C=d.filter(S=>wt(S.groupTitle,r))),He.createElement(oe,{header:{title:Ut.t(t),suffix:He.createElement(Il,null,He.createElement(gx,{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")))}},He.createElement(ie,{view:!0},He.createElement(Tt,{value:r,setValue:a,fullWidth:!0,color:"light",variant:"contained",placeholder:Ut.t("Search {sourceType}",{sourceType:u[t]}),onChange:g}),e==="loading"&&He.createElement(Nl,null),!C.length&&r?He.createElement(Al,null,He.createElement(Cx,{title:Ut.t("No results found"),description:Ut.t("Try using different keywords")})):e==="success"&&He.createElement(Vn,{disabled:l},C.map(S=>{let{groupTitle:T,...v}=S;return He.createElement(He.Fragment,{key:S.id},He.createElement(Sx,{style:{height:"61px"},...v,selected:!1,hasDivider:!0}))}))))}i(Wl,"LiquiditySourcePage");import{i18n as vx}from"@lingui/core";import Mi from"react";import{useNavigate as wx}from"react-router-dom";function sg(){let t=wx(),e=Ye(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:l,loading:p}=Bi({refetchQuote:n}),u=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),c=`../${$.settings}`,m=`../${$.wallets}`;return Mi.createElement(oe,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:vx.t("Routes"),suffix:Mi.createElement(ho,{onClickRefresh:o||s?l:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(c),a("refetchQuote",!0)}})}},Mi.createElement(ie,null,Mi.createElement(Hn,{fetch:l,loading:p,onClickOnQuote:u})))}i(sg,"RoutesPage");import{i18n as fg}from"@lingui/core";import{Divider as gg,getCategoriesCount as Lx,SelectableCategoryList as Px}from"@rango-dev/ui";import zt,{useState as hg}from"react";import{useNavigate as Dx}from"react-router-dom";import{i18n as Bl}from"@lingui/core";import{Divider as Ix,Image as Ax,ListItemButton as Nx,NotFound as Wx,Typography as dg}from"@rango-dev/ui";import rt,{useEffect as Bx,useState as Mx}from"react";var lg=i((t,e,o)=>t.filter(n=>lr(n.type,o)).filter(n=>Re(n.name,e)||Re(n.displayName,e)),"filterBlockchains");import{ImageContainer as xx,styled as pg}from"@rango-dev/ui";var cg=pg("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),Li=pg(kn,{padding:0,margin:0,listStyle:"none",[`& ${xx}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as bx,Skeleton as ug}from"@rango-dev/ui";import Pi from"react";var Ex=20;function mg(){return Pi.createElement(Li,null,Array.from(Array(Ex),t=>Pi.createElement(bx,{key:t,hasDivider:!0,start:Pi.createElement(ug,{variant:"circular",width:35,height:35}),title:Pi.createElement(ug,{variant:"text",size:"large",width:90})})))}i(mg,"LoadingBlockchainList");function Ml(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,l]=Mx(e),{fetchStatus:p}=y();Bx(()=>{l([...lg(e,o,r)])},[e,o,r]);let u=i(()=>!s.length&&o?rt.createElement(Wx,{title:Bl.t("No results found"),description:Bl.t("Try using different keywords")}):rt.createElement(Li,{as:"ul",key:`${r}-${o}`},s.map(c=>rt.createElement(Nx,{key:`${c.name}-${c.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(c),start:rt.createElement(Ax,{src:c.logo,size:30}),title:rt.createElement(dg,{variant:"title",size:"medium"},c.displayName),id:c.name}))),"renderList");return rt.createElement(rt.Fragment,null,a&&rt.createElement(rt.Fragment,null,rt.createElement(dg,{variant:"label",size:"large"},Bl.t("Select Chain")),rt.createElement(Ix,{size:4})),rt.createElement(cg,null,p==="loading"&&rt.createElement(mg,null),p==="success"&&u()))}i(Ml,"BlockchainList");function Di(t){let{type:e}=t,o=Ye(),[n,r]=hg(""),[a,s]=hg("ALL"),l=O.use.setToBlockchain(),p=O.use.setFromBlockchain(),{fetchStatus:u}=y(),c=Dx(),m=y().blockchains({type:e}),h=Lx(m),f=!t.hideCategory&&h!==1;return zt.createElement(oe,{header:{title:fg.t("Select Chain")}},zt.createElement(ie,{view:!0},f&&zt.createElement(zt.Fragment,null,zt.createElement(Px,{setCategory:s,category:a,blockchains:m,isLoading:u==="loading"}),zt.createElement(gg,{size:24})),zt.createElement(Tt,{value:n,autoFocus:!0,placeholder:fg.t("Search Chain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:d=>r(d.target.value)}),zt.createElement(gg,{size:16}),zt.createElement(Ml,{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 vg}from"@rango-dev/ui";import bo,{useState as qx}from"react";import{useNavigate as Hx}from"react-router-dom";import{i18n as Dl}from"@lingui/core";import{BlockchainsChip as _i,Divider as Tg,Image as kg,Skeleton as Ux,Tooltip as zx,Typography as _l}from"@rango-dev/ui";import Me from"react";import{useEffect as Fx}from"react";var yg=["ETH","COSMOS","OSMOSIS"];function Ll(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(_x),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($x(s)),r=n.splice(a)}return{list:n,more:r}}i(Ll,"prepare");function _x(t,e){let o=yg,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(_x,"sortByMostUsedBlockchains");function $x(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($x,"generateSortByPreferredBlockchainsFor");function Sg(t,e){return!!e.list.find(o=>o.name===t)}i(Sg,"isInVisibleList");function Pl(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=y();Fx(()=>{if(e?.selected){let a=Ll(t,o,e);Sg(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Ll(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Pl,"usePrepareBlockchainList");import{styled as Ox}from"@rango-dev/ui";var Cg=Ox("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Qx=12;function $l(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,s=Pl(e,{limit:10,selected:n?.name}),{fetchStatus:l}=y(),p=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),c=s.more.length>0,m=s.more.length===1,h=!m&&c;return Me.createElement(Me.Fragment,null,Me.createElement(Tg,{size:12}),Me.createElement(_l,{variant:"label",size:"large"},Dl.t("Select Chain")),Me.createElement(Tg,{size:12}),Me.createElement(Cg,null,l==="loading"&&Array.from(Array(Qx),f=>Me.createElement(Ux,{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(_l,{variant:"body",size:"xsmall",color:"secondary500"},Dl.t("All"))),s.list.map(f=>Me.createElement(zx,{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(kg,{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(kg,{src:s.more[0].logo,size:30})):null,h?Me.createElement(_i,{onClick:a,key:"more-blockchains"},Me.createElement(_l,{variant:"body",size:"xsmall",color:"secondary500"},Dl._("More +{count}",{count:s.more.length}))):null)))}i($l,"BlockchainsSection");function Fl(t){let{type:e}=t,o=Hx(),n=Ye(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=O(),{getBalanceFor:c}=y(),[m,h]=qx(""),d=(e==="source"?r:a)?.name??"",g=y().blockchains({type:e}),C=y().tokens({type:e,blockchain:d,searchFor:m,getBalanceFor:c}),S=i(k=>{e==="source"?p(k):u(k)},"updateBlockchain"),T=i(k=>{e==="source"?s({token:k,meta:{blockchains:g,tokens:C}}):l({token:k,meta:{blockchains:g,tokens:C}})},"updateToken"),v={source:$i.t("Source"),destination:$i.t("Destination")};return bo.createElement(oe,{header:{title:$i.t("Swap {type}",{type:v[e]})}},bo.createElement(ie,null,bo.createElement($l,{blockchains:g,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o($.blockchains),onChange:k=>{S(k)}}),bo.createElement(vg,{size:24}),bo.createElement(Tt,{value:m,autoFocus:!0,placeholder:$i.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>h(""),onChange:k=>h(k.target.value)}),bo.createElement(vg,{size:16}),bo.createElement(Fn,{list:C,selectedBlockchain:d,searchedFor:m,type:e,onChange:k=>{T(k);let w=g.find(I=>k.blockchain===I.name);w&&S(w),n()}})))}i(Fl,"SelectSwapItemsPage");import{i18n as zl}from"@lingui/core";import{Alert as hb,Button as yb,styled as Sb}from"@rango-dev/ui";import Eo from"react";import{useInRouterContext as Cb,useSearchParams as Tb}from"react-router-dom";import{i18n as Ag}from"@lingui/core";import{Divider as Ng,InfoIcon as jx,SlippageIcon as Xx,TextField as Yx,Tooltip as Zx,Typography as Wg}from"@rango-dev/ui";import it from"react";import{Chip as Gx,styled as jn,TextField as Vx}from"@rango-dev/ui";var wg=jn("div",{paddingTop:"$5",padding:"$10 $5"}),xg=jn("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${Vx}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),bg=jn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Fi=jn("div",{maxWidth:"280px",padding:"$10"}),Eg=jn(Gx,{width:"61px",flexShrink:0});import{i18n as Ol}from"@lingui/core";import{Typography as Kx}from"@rango-dev/ui";import Xn from"react";function Ig(){return Xn.createElement(Fi,null,Xn.createElement(Kx,{variant:"label",size:"medium",color:"neutral700"},Ol.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,Ol.t("Warning")),":\xA0",Ol.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(Ig,"SlippageTooltipContent");function Ul(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=y();return it.createElement(wg,null,it.createElement(bg,null,it.createElement(Xx,{size:16,color:"gray"}),it.createElement(Ng,{direction:"horizontal",size:4}),it.createElement(Wg,{variant:"title",size:"xmedium"},Ag.t("Slippage tolerance per swap")),it.createElement(Ng,{direction:"horizontal",size:4}),it.createElement(Zx,{container:N(),side:"top",sideOffset:4,content:it.createElement(Ig,null)},it.createElement(jx,{color:"gray"}))),it.createElement(xg,null,tc.map((r,a)=>{let s=`slippage-${a}`;return it.createElement(Eg,{key:s,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`})}),it.createElement(Yx,{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>=ic&&s<=rc?n(s):n(null)},suffix:o&&it.createElement(Wg,{variant:"body",size:"small"},"%"),placeholder:Ag.t("Custom")})))}i(Ul,"Slippage");import{i18n as dt}from"@lingui/core";import{AutoThemeIcon as Bg,BridgesIcon as Jx,ChevronRightIcon as Oi,DarkModeIcon as Mg,Divider as Yn,ExchangeIcon as Rx,InfinityIcon as eb,InfoIcon as tb,LanguageIcon as ob,LightModeIcon as Lg,List as nb,ListItem as rb,ListItemButton as ib,Skeleton as ab,styled as sb,Switch as lb,Tabs as pb,TargetIcon as cb,Tooltip as ub,Typography as Je}from"@rango-dev/ui";import P from"react";import{useNavigate as mb}from"react-router-dom";var db=sb("div",{width:"202px",height:"$40"}),fb=[{id:"light",icon:P.createElement(Lg,{color:"black",size:24}),tooltip:P.createElement(Je,{size:"xsmall",variant:"body"},dt.t("Light"))},{id:"dark",icon:P.createElement(Mg,{color:"black",size:24}),tooltip:P.createElement(Je,{size:"xsmall",variant:"body"},dt.t("Dark"))},{id:"auto",icon:P.createElement(Bg,{color:"black",size:24}),tooltip:P.createElement(Je,{size:"xsmall",variant:"body"},dt.t("Auto"))}],gb=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return P.createElement(Bg,{...e});case"dark":return P.createElement(Mg,{...e});default:return P.createElement(Lg,{...e})}},"getThemeIcon");function Pg(){let t=mb(),{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=je("theme",c),f=je("liquiditySource",c),d=je("language",c),g=je("customTokens",c),C=y().infiniteApprove,S=y().toggleInfiniteApprove,T=yr(p,u),v=T.filter(M=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(M.type)),k=v.length,w=v.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(ab,{variant:"text",size:"medium",width:50});case"failed":return P.createElement(Je,{variant:"body",size:"medium",color:"$error500"},dt.t("Loading failed"));default:return P.createElement(Je,{variant:"body",size:"medium"},`${M} / ${K}`)}},"handleSwapperEndItem"),x={id:"widget-setting-bridge-item-btn",title:P.createElement(Je,{variant:"title",size:"xmedium"},dt.t("Bridges")),end:P.createElement(P.Fragment,null,E(w,k),P.createElement(Yn,{direction:"horizontal",size:8}),P.createElement(Oi,{color:"black"})),onClick:()=>t($.bridges),start:P.createElement(Jx,{color:"gray",size:16})},W={id:"widget-setting-exchange-item-btn",title:P.createElement(Je,{variant:"title",size:"xmedium"},dt.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(Rx,{color:"gray",size:16}),onClick:()=>t($.exchanges)},D={id:"widget-setting-custom-tokens-item-btn",title:P.createElement(Je,{variant:"title",size:"xmedium"},dt.t("Custom Tokens")),end:P.createElement(P.Fragment,null,P.createElement(Je,{variant:"body",size:"medium"},`${m.length}`),P.createElement(Yn,{direction:"horizontal",size:8}),P.createElement(Oi,{color:"black"})),start:P.createElement(cb,{color:"gray",size:16}),onClick:()=>t($.customTokens)},A={id:"widget-setting-language-item-btn",title:P.createElement(Je,{variant:"title",size:"xmedium"},dt.t("Language")),start:P.createElement(ob,{color:"gray",size:16}),end:P.createElement(P.Fragment,null,P.createElement(Je,{variant:"body",size:"medium"},s),P.createElement(Yn,{direction:"horizontal",size:8}),P.createElement(Oi,{color:"black"})),onClick:()=>t($.languages)},X={id:"widget-setting-infinite-approval-item-btn",title:P.createElement(P.Fragment,null,P.createElement(Je,{variant:"title",size:"xmedium"},dt.t("Infinite approval")),P.createElement(Yn,{direction:"horizontal",size:4}),P.createElement(ub,{side:"top",sideOffset:4,container:N(),content:P.createElement(Fi,null,P.createElement(Je,{variant:"label",size:"medium",color:"neutral700"},P.createElement("b",null,dt.t("Warning")),":\xA0",dt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},P.createElement(tb,{color:"gray"}))),start:P.createElement(eb,{color:"gray",size:16}),end:P.createElement(lb,{checked:C}),onClick:S},se={id:"widget-setting-theme-item-btn",type:P.createElement(rb,null),title:P.createElement(Je,{variant:"title",size:"xmedium"},dt.t("Theme")),end:P.createElement(db,null,P.createElement(pb,{container:N(),items:fb,value:n,onChange:M=>o(M.id),type:"primary",borderRadius:"small"})),start:gb(n)},J=f?[]:[x,W];return g||J.push(D),d||J.push(A),J.push(X),!e?.singleTheme&&!h&&J.push(se),P.createElement(nb,{type:P.createElement(ib,{hasDivider:!0,id:"_",onClick:()=>console.log()}),items:J})}i(Pg,"SettingsLists");var kb=Sb("div",{paddingLeft:"$8"});function Dg(){let{isInCampaignMode:t,updateCampaignMode:e}=y(),o=t(),[,n]=Tb(),r=Cb(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Eo.createElement(oe,{header:{title:zl.t("Settings")}},Eo.createElement(ie,null,o&&Eo.createElement(hb,{type:"info",variant:"alarm",title:zl.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:Eo.createElement(kb,null,Eo.createElement(yb,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},zl.t("Reset")))}),Eo.createElement(Ul,null),Eo.createElement(Pg,null)))}i(Dg,"SettingsPage");import{i18n as lE}from"@lingui/core";import{cancelSwap as pE}from"@rango-dev/queue-manager-rango-preset";import{useManager as cE}from"@rango-dev/queue-manager-react";import{Alert as uE}from"@rango-dev/ui";import rp from"react";import{useParams as mE}from"react-router-dom";import{i18n as at}from"@lingui/core";import{getCurrentBlockchainOfOrNull as qb,getCurrentStep as Hb,getRelatedWalletOrNull as Gb}from"@rango-dev/queue-manager-rango-preset";import{Button as mh,CopyIcon as Vb,Divider as Kb,DoneIcon as jb,IconButton as Xb,QuoteCost as Yb,RangoExplorerIcon as Zb,StepDetails as Jb,Tooltip as dh,Typography as Io,useCopyToClipboard as Rb}from"@rango-dev/ui";import{useWallets as eE}from"@rango-dev/wallets-react";import fh from"bignumber.js";import{PendingSwapNetworkStatus as ji}from"rango-types";import j,{useEffect as gh,useRef as tE,useState as hh}from"react";import{useNavigate as oE}from"react-router-dom";import{i18n as eo}from"@lingui/core";var vb=[eo.t("Sunday"),eo.t("Monday"),eo.t("Tuesday"),eo.t("Wednesday"),eo.t("Thursday"),eo.t("Friday"),eo.t("Saturday")];function _g(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"):`${vb[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(_g,"timeSince");function $g(t){return t.finishTime?_g(parseInt(t.finishTime)):_g(parseInt(t.creationTime))}i($g,"getSwapDate");import{PendingSwapNetworkStatus as Qi}from"rango-types";import qi from"react";import{i18n as Ui}from"@lingui/core";import{Button as Fg,Divider as Ql,MessageBox as wb}from"@rango-dev/ui";import to from"react";var Og=i(({onCancel:t,onClose:e})=>to.createElement(to.Fragment,null,to.createElement(Ql,{size:20}),to.createElement(wb,{type:"error",title:Ui.t("Cancel Swap"),description:Ui.t("Are you sure you want to cancel this swap?")}),to.createElement(Ql,{size:32}),to.createElement(Fg,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Ui.t("Yes, Cancel it")),to.createElement(Ql,{size:12}),to.createElement(Fg,{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 Ug,Divider as ql,MessageBox as xb,Typography as bb}from"@rango-dev/ui";import Qt from"react";var zg=i(({onDelete:t,onClose:e})=>Qt.createElement(Qt.Fragment,null,Qt.createElement(ql,{size:20}),Qt.createElement(xb,{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(Ug,{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(Ug,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Qt.createElement(bb,{variant:"title",size:"medium",color:"primary"},zi.t("No, Cancel")))),"DeleteContent");import{i18n as Hl}from"@lingui/core";import{PendingSwapNetworkStatus as Gl}from"rango-types";var Vl={[Gl.WaitingForNetworkChange]:{type:"loading",title:Hl.t("Change Network")},[Gl.WaitingForConnectingWallet]:{type:"warning",title:Hl.t("Connect Wallet")},[Gl.NetworkChanged]:{type:"success",title:Hl.t("Network Changed")}};import{warn as Eb}from"@rango-dev/logging-core";import{MessageBox as Ib,Wallet as Ab}from"@rango-dev/ui";import{useWallets as Nb}from"@rango-dev/wallets-react";import on,{useState as Wb}from"react";import{styled as Qg}from"@rango-dev/ui";var qg=Qg("div",{display:"flex",justifyContent:"center"}),v5=Qg("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}});var Hg=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[l,p]=Wb(),{getWalletInfo:u,state:c}=Nb(),m=n?.walletType,h=m?un(c(m)):null,f=m?u(m):null,d=a&&!!m&&!!h&&!!f,{list:g}=gt(),C=i(()=>{if(m){let S=g.find(T=>T.type===m);S?p(S):Eb(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${S}`))}},"handleWalletItemClick");return on.createElement(on.Fragment,null,on.createElement(Ib,{type:e,title:o,description:r}),d&&on.createElement(qg,null,on.createElement(Ab,{container:N(),title:f.name,image:f.img,type:m,state:h,link:f.installLink,disabled:s,onClick:C})),on.createElement(uo,{wallet:l,onClose:()=>{p(void 0)}}))},"WalletStateContent");function Kl(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(Pe.SWAP_BOX_ID)||document.body},p&&qi.createElement(Hg,{type:Vl[e].type,title:Vl[e].title,currentStepWallet:a,message:s,walletButtonDisabled:l,showWalletButton:e!==Qi.WaitingForNetworkChange}),e==="delete"&&qi.createElement(zg,{onClose:o,onDelete:n}),e==="cancel"&&qi.createElement(Og,{onClose:o,onCancel:r}))}i(Kl,"SwapDetailsModal");import{i18n as Zn}from"@lingui/core";import{Button as jl,Divider as Hi,MessageBox as Gg,TokenAmount as Bb,Typography as Xl}from"@rango-dev/ui";import _e from"react";import{useNavigate as Mb}from"react-router-dom";function Yl(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=Mb();return _e.createElement(R,{open:e,onClose:o,container:document.getElementById(Pe.SWAP_BOX_ID)||document.body},n==="success"?_e.createElement(Gg,{type:"success",title:Zn.t("Swap Successful")},_e.createElement(Bb,{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(Xl,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):_e.createElement(Gg,{type:"error",title:Zn.t("Transaction Failed"),description:m}),_e.createElement(Hi,{size:32}),n==="success"&&_e.createElement(jl,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{f("../../")}},_e.createElement(Xl,{variant:"title",size:"medium",color:"neutral100"},Zn.t("Done"))),_e.createElement(Hi,{size:12}),h&&_e.createElement(_e.Fragment,null,_e.createElement(jl,{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(jl,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},_e.createElement(Xl,{variant:"title",size:"medium",color:"primary"},Zn.t("See Details"))))}i(Yl,"SwapDetailsCompleteModal");import Qb from"react";import{i18n as Fb}from"@lingui/core";import{Alert as lh,IconButton as Ob,LinkIcon as Ub}from"@rango-dev/ui";import oo,{Fragment as zb}from"react";import{Alert as Pb,ChevronDownIcon as Db,IconButton as _b}from"@rango-dev/ui";import rn,{useState as $b}from"react";import{css as Jn,darkTheme as Vg,styled as qt,Typography as Lb}from"@rango-dev/ui";var Kg=qt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Gi=qt("div",{width:"100%","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Vg} &`]:{color:"$secondary500"}}}}}),jg=qt(kn,{padding:"$0 $20 $20 $20"}),iK=qt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Xg=qt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),aK=qt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),nn=Jn({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Vg} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Yg=Jn({padding:"$5 0"}),Vi=Jn({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),Zg=Jn({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Jg=Jn({width:"100%",padding:"0 $20 $10"}),Rg=qt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),eh=qt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ki=qt(Lb,{wordBreak:"break-word"});import{styled as Zl}from"@rango-dev/ui";var th=Zl("div",{display:"flex",flexDirection:"column",gap:"$10"}),oh=Zl("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),nh=Zl("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function rh(t){let{message:e}=t,[o,n]=$b(!1);return rn.createElement(Pb,{type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&rn.createElement(_b,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},rn.createElement(oh,{rotated:o},rn.createElement(Db,{size:12,color:"gray"}))),footer:rn.createElement(nh,{open:o},rn.createElement(Ki,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(rh,"FailedAlert");import{i18n as ih}from"@lingui/core";import{Alert as Jl,Button as ah}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Rl}from"rango-types";import Rn from"react";function sh(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Rn.createElement(Jl,{type:"warning",title:n.shortMessage,action:Rn.createElement(ah,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Rl.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},ih.t("Change"))}):r===Rl.WaitingForConnectingWallet?Rn.createElement(Jl,{type:"warning",title:n.shortMessage,action:Rn.createElement(ah,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Rl.WaitingForConnectingWallet)}},ih.t("Connect"))}):Rn.createElement(Jl,{type:"warning",title:n.shortMessage})}i(sh,"WarningAlert");function ep(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(th,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(zb,{key:d},oo.createElement(lh,{type:g&&(C&&"loading"||S&&"error")||"success",title:m.description?`${m.description} Tx`:Fb.t("View transaction"),action:m.url&&oo.createElement(Ob,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},oo.createElement(Ub,{size:12}))}))}),c&&oo.createElement(lh,{type:"loading",title:r.shortMessage}),a.status!=="failed"&&l&&oo.createElement(sh,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&oo.createElement(rh,{message:r}))}i(ep,"SwapDetailsAlerts");var ph=2e3;var ch=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:lt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:B(l,6,6),realValue:l??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:lt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:B(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:an(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(p=>({from:{chain:{displayName:lt(p.fromBlockchain,e)??"",image:p.fromBlockchainLogo??""}},to:{chain:{displayName:lt(p.toBlockchain,e)??"",image:p.toBlockchainLogo??""}},swapper:{displayName:an(p.swapperId,o)??"",image:p.swapperLogo??"",type:p.swapperType}})):[],alerts:Qb.createElement(ep,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function uh(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(uh,"getStepState");function tp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:l}=eE(),p=y().blockchains(),u=y().swappers(),{findToken:c}=y(),m=O.use.retry(),h=le.use.isActiveTab(),f=oE(),[d,g]=Rb(ph),C=tE(null),[S,T]=hh(null),[v,k]=hh(null),w=i(()=>{r(),T(null)},"onCancel"),I=ve.use.getNotifications(),L=ve.use.removeNotification(),b=I(),E=Hb(e),x=E?.networkStatus;gh(()=>{b.find($e=>$e.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(k(e.status),L(e.requestId)):v&&k(null))},[e.status,e.requestId]),gh(()=>{M?T(ji.WaitingForNetworkChange):x===ji.WaitingForConnectingWallet||x===ji.NetworkChanged?T(x):T(null)},[x]);let W=lu(e),D=E?qb(e,E):null,A=E?Gb(e,E):null,X=$g(e),se=pu(e),J=i(re=>!!l(re)?.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,pe=su(e,E),Q=ch({swap:e,switchNetwork:K,showNetworkModal:x,setNetworkModal:T,message:pe,blockchains:p,swappers:u}),me=Q.length,[Ge,st]=[e.steps[0],e.steps[me-1]],de=st.outputAmount||st.expectedOutputAmountHumanReadable,Ve=e.steps.reduce((re,$e)=>re+parseFloat($e.feeInUsd||""),0),V=e.steps.find(re=>re.diagnosisUrl)?.diagnosisUrl,Ke=B(parseFloat(de||"0")*(st.toUsdPrice||0),4,4),ft=B(parseFloat(e.inputAmount)*(Ge.fromUsdPrice||0),4,4),_=de?new fh(de).multipliedBy(st.toUsdPrice||0).toString():"",G=new fh(e.inputAmount).multipliedBy(Ge.fromUsdPrice||0).toString(),q=ct(ft,Ke),ee=pe.detailedMessage.content||pe.shortMessage,ne=e.status==="success"?at.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:B(de,6,6),token:Q[me-1].to.token.displayName,conciseAddress:gr(e.wallets[Q[me-1].to.chain.displayName]?.address||""),chain:Q[me-1].to.chain.displayName}}):j.createElement(eh,null,j.createElement(Io,{variant:"body",size:"medium",color:"neutral700",align:"center"},ee?"":at.t("Transaction was not sent."),W?`${at.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:W.outputAmount,symbol:W.symbol,blockchain:W.blockchain}})}`:""),ee&&j.createElement(Ki,{align:"center",variant:"body",size:"medium",color:"neutral700"},j.createElement("b",null,"Reason:")," ",ee));return j.createElement(oe,{header:{title:at.t("Swap Details"),onCancel:e.status==="running"?()=>T("cancel"):void 0,suffix:e.status!=="running"&&j.createElement(Gt,null,j.createElement(mh,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>T("delete")},j.createElement(Io,{size:"medium",variant:"label",color:"error"},at.t("Delete"))))},footer:se&&!v&&j.createElement(mh,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let re=_r(e,p,c);m(re),setTimeout(()=>{f("../../")},0)}},at.t("Try again"))},j.createElement(ie,{compact:!0,view:!0},j.createElement(Gi,null,j.createElement("div",{className:nn()},j.createElement(Io,{variant:"label",size:"large",color:"neutral700"},`${at.t("Request ID")}`),j.createElement("div",{className:Vi()},j.createElement(Io,{variant:"label",size:"small",color:"neutral700"},o),j.createElement(dh,{container:N(),content:d?at.t("Copied To Clipboard"):at.t("Copy Request ID"),open:d||void 0,side:"bottom",alignOffset:-16,align:"end"},j.createElement(Xb,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:g.bind(null,o||"")},d?j.createElement(jb,{size:16,color:"secondary"}):j.createElement(Vb,{size:16,color:"gray"}))),j.createElement(Rg,{target:"_blank",href:`${Tp}/swap/${o}`},j.createElement(dh,{container:N(),content:at.t("View on Rango Explorer"),side:"bottom"},j.createElement(Zb,{size:20}))))),j.createElement("div",{className:nn()},j.createElement(Io,{variant:"label",size:"large",color:"neutral700"},e.finishTime?at.t("Finished at"):at.t("Created at")),j.createElement(Io,{variant:"label",size:"small",color:"neutral700"},X))),j.createElement("div",{className:Zg()},j.createElement(Yb,{fee:B(String(Ve),2,2),time:pn(pr(e.steps)),steps:me}),j.createElement(Nn,{from:{price:{value:B(e.inputAmount,6,6),usdValue:ft,realUsdValue:G,realValue:e.inputAmount},token:{displayName:Q[0].from.token.displayName,image:Q[0].from.token.image},chain:{image:Q[0].from.chain.image,displayName:Q[0].from.chain.displayName}},to:{price:{value:B(de,6,6),usdValue:Ke,realUsdValue:_,realValue:de||""},token:{displayName:Q[me-1].to.token.displayName,image:Q[me-1].to.token.image},chain:{image:Q[me-1].to.chain.image,displayName:Q[me-1].to.chain.displayName}},percentageChange:B(q,2,2),warningLevel:Pt(q??0)})),j.createElement("div",{className:Jg()},j.createElement(Io,{variant:"title",size:"small"},at.t("Swaps steps"))),j.createElement(Kb,{size:8}),j.createElement(jg,{ref:C},Q.map((re,$e)=>{let or=$e,no=uh(e.steps[$e]),Hh=no==="error"||no==="in-progress"||no==="warning"||no==="completed"&&$e===Q.length-1;return j.createElement(Jb,{key:or,step:re,type:"swap-progress",ref:C,state:no,hasSeparator:$e!==0,tabIndex:or,isFocused:Hh,tooltipContainer:N()})}))),j.createElement(Kl,{state:S,onClose:()=>T(null),onCancel:w,onDelete:n,message:pe.detailedMessage.content,currentStepWallet:A,walletButtonDisabled:!h}),j.createElement(Yl,{open:!!v,diagnosisUrl:V,onClose:()=>k(null),status:e.status==="success"?"success":"failed",priceValue:B(de,6,6),usdValue:Ke,realUsdValue:_,realValue:de||"",percentageChange:B(q,2,2),token:{displayName:Q[me-1].to.token.displayName,image:Q[me-1].to.token.image},chain:{image:Q[me-1].to.chain.image},description:ne}))}i(tp,"SwapDetails");import{i18n as Yi}from"@lingui/core";import{Divider as Ch,NotFound as sE,Skeleton as tr,Typography as Zi}from"@rango-dev/ui";import Se from"react";import{i18n as nE}from"@lingui/core";import{Divider as rE,Skeleton as iE,Typography as aE}from"@rango-dev/ui";import Te from"react";import{css as vt,styled as op}from"@rango-dev/ui";var yh=op("div",{width:"100%",height:"100%",padding:"$10 $20"}),er=op("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Xi=op("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),S4=vt({display:"flex",justifyContent:"space-between",alignItems:"center"}),C4=vt({display:"flex",justifyContent:"space-between",alignItems:"center"}),T4=vt({paddingTop:"$15",display:"flex"}),k4=vt({padding:"$15 $0"}),v4=vt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),w4=vt({paddingBottom:"$10"}),x4=vt({display:"flex",justifyContent:"start",alignItems:"center"}),b4=vt({paddingTop:"$5",display:"flex",alignItems:"center"}),E4=vt({display:"flex",alignItems:"center"}),I4=vt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Sh=vt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function np(){return Te.createElement(yh,null,Te.createElement(Mn,{type:"swap-preview"}),Te.createElement("div",{className:"swaps-steps"},Te.createElement(aE,{variant:"title",size:"small"},nE.t("Swaps steps"))),Te.createElement(Te.Fragment,null,Te.createElement(er,null,Te.createElement(Nt,{separator:!1}),Te.createElement("div",{className:Sh()},Te.createElement(rE,{direction:"horizontal",size:20}),Te.createElement(iE,{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(np,"LoadingSwapDetails");function Th(t){let{requestId:e,showSkeleton:o}=t;return Se.createElement(oe,{header:{title:Yi.t("Swap Details"),suffix:Se.createElement(Gt,null)}},o&&Se.createElement(Kg,null,Se.createElement(Gi,null,Se.createElement("div",{className:nn()},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(Ch,{direction:"horizontal",size:4}),Se.createElement(tr,{width:16,height:16,variant:"rectangular"}),Se.createElement(Ch,{direction:"horizontal",size:4}),Se.createElement(tr,{width:16,height:16,variant:"rectangular"}))),Se.createElement("div",{className:nn()},Se.createElement(Zi,{className:Yg(),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(np,null)),!o&&Se.createElement(Xg,null,Se.createElement(sE,{title:Yi.t("Not found"),description:Yi.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Th,"SwapDetailsPlaceholder");function kh(){let{manager:t,state:e}=cE(),o=!e.loadedFromPersistor,n=ut(t),{requestId:r}=mE(),a=Ye(),{fetchStatus:s}=y();if(!r)return rp.createElement(uE,{containerStyles:{margin:"20px"},type:"error",title:lE.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&&pE(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?rp.createElement(Th,{requestId:r,showSkeleton:l}):rp.createElement(tp,{swap:m,requestId:r,onCancel:u,onDelete:c})}i(kh,"SwapDetailsPage");import{i18n as vh}from"@lingui/core";import{Divider as dE,getCategoriesCount as fE,SelectableCategoryList as gE,styled as xh,Typography as hE,Wallet as yE}from"@rango-dev/ui";import Bt,{useState as wh}from"react";var SE=xh("div",{display:"flex",justifyContent:"center",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5"}),CE=xh(ie,{textAlign:"center"});function bh(){let{fetchStatus:t}=y(),[e,o]=wh("ALL"),n=y().blockchains(),{config:r}=y(),[a,s]=wh(),l=le.use.isActiveTab(),{list:p}=gt(),u=qp(p,n),m=fE(u)!==1,h=Hp(p,e),f=i(d=>{Bp(p,r.multiWallets)||s(d)},"handleWalletItemClick");return Bt.createElement(oe,{header:{title:vh.t("Connect Wallets")}},Bt.createElement(CE,null,m&&Bt.createElement(Bt.Fragment,null,Bt.createElement(gE,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),Bt.createElement(dE,{size:24})),Bt.createElement(hE,{variant:"title",size:"xmedium",align:"center"},vh.t("Choose a wallet to connect.")),Bt.createElement(SE,null,h.map((d,g)=>{let C=`wallet-${g}-${d.type}`;return Bt.createElement(yE,{key:C,...d,container:N(),onClick:()=>f(d),isLoading:t==="loading",disabled:!l})}),Bt.createElement(uo,{wallet:a,onClose:()=>{s(void 0)}}))))}i(bh,"WalletsPage");function Eh(){return Cu(),Ha(),TE([{path:$.home,element:Le.createElement(og,null)},{path:$.routes,element:Le.createElement(sg,null)},{path:$.fromSwap,children:[{index:!0,element:Le.createElement(Fl,{type:"source"})},{path:$.blockchains,element:Le.createElement(Di,{type:"source"})}]},{path:$.toSwap,children:[{index:!0,element:Le.createElement(Fl,{type:"destination"})},{path:$.blockchains,element:Le.createElement(Di,{type:"destination"})}]},{path:$.settings,children:[{index:!0,element:Le.createElement(Dg,null)},{path:$.languages,element:Le.createElement(rg,null)},{path:$.exchanges,element:Le.createElement(Wl,{sourceType:"Exchanges"})},{path:$.bridges,element:Le.createElement(Wl,{sourceType:"Bridges"})},{path:$.customTokens,children:[{index:!0,element:Le.createElement(mf,null)},{path:$.addCustomTokens,children:[{index:!0,element:Le.createElement(em,null)},{path:$.blockchains,element:Le.createElement(Di,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:$.swaps,children:[{index:!0,element:Le.createElement(Mf,null)},{path:$.swapDetails,element:Le.createElement(kh,null)}]},{path:$.wallets,element:Le.createElement(bh,null)},{path:$.confirmSwap,element:Le.createElement(Zd,null)}])}i(Eh,"AppRoutes");import{useQueueManager as NE}from"@rango-dev/queue-manager-rango-preset";import{splitWalletNetwork as WE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as BE}from"rango-sdk";import{useContext as ME,useEffect as Lh,useState as Ph}from"react";import{globalCss as kE}from"@rango-dev/ui";var Ih=i(()=>kE({"@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 Ah(){let{setWatermark:t}=le();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(Ah,"useFetchApiConfig");import{useWallets as vE}from"@rango-dev/wallets-react";import{useEffect as wE,useRef as xE}from"react";function Nh(){let{connect:t,state:e}=vE(),o=xE({}),{fetchStatus:n}=y(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);wE(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(Nh,"useForceAutoConnect");import{isApprovalTX as bE,RouteEventType as Wh,StepEventType as Bh,StepExecutionEventStatus as EE,WidgetEvents as Ji}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Mh}from"react";function ip(){let t=ve.use.setNotification(),{connectedWallets:e,fetchBalances:o}=y();Mh(()=>{let n=i(r=>{let{event:a,step:s,route:l}=r;if(a.type===Bh.TX_EXECUTION&&a.status===EE.TX_SENT&&!bE(s)||a.type===Bh.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]),Mh(()=>{let n=i(r=>{let{event:a,route:s}=r;(a.type===Wh.FAILED||a.type===Wh.SUCCEEDED)&&t(a,s)},"handleRouteEvent");return ge.on(Ji.RouteEvent,n),()=>ge.off(Ji.RouteEvent,n)},[ge])}i(ip,"useSubscribeToWidgetEvents");import{useManager as IE}from"@rango-dev/queue-manager-react";import{useEffect as AE}from"react";function ap(){let{isSynced:t,syncNotifications:e}=ve(),{manager:o,state:n}=IE();AE(()=>{ve.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(ut(o))},[ve.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ap,"useSyncNotifications");function sp(){Nh(),Ih(),ip(),ap();let t=y().blockchains(),{canSwitchNetworkTo:e}=ei(),[o,n]=Ph(""),[r,a]=Ph(),s=ME(Nr),l=t.filter(BE),{fetchApiConfig:p}=Ah();Lh(()=>()=>Su(),[]),NE({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:l,canSwitchNetworkTo:e}),Lh(()=>(so.init(),ve.persist.hasHydrated()||ve.persist.rehydrate(),s.onConnectWallet(n),s.onDisconnectWallet(u=>{a(u),u===WE(o)?.[0]&&n("")}),p().catch(console.log),so.destroy),[])}i(sp,"useBootstrap");import{styled as LE}from"@rango-dev/ui";var Dh=LE("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(){sp();let{config:t}=y(),{activeTheme:e}=Go(t?.theme||{}),{activeLanguage:o}=Rt();return lp.createElement(PE,{language:o},lp.createElement(Dh,{id:"swap-container",className:e()},lp.createElement(Eh,null)))}i(Ri,"Main");import{setSolanaSignerConfig as eI}from"@rango-dev/signer-solana";import cp,{useEffect as zh,useMemo as tI}from"react";import{useState as DE}from"react";var _E=i(()=>{let[t,e]=DE(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=Wp(a);if(s){let l=o(s);e(l)}},"handleLoadCustomFont")}},"useFontLoader"),_h=_E;import{checkWaitingForNetworkChange as $E,makeQueueDefinition as FE}from"@rango-dev/queue-manager-rango-preset";import{Provider as OE}from"@rango-dev/queue-manager-react";import{useWallets as UE}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as zE}from"@rango-dev/wallets-shared";import{isEvmBlockchain as QE}from"rango-types";import qE,{useMemo as HE}from"react";function GE(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=UE(),l=HE(()=>FE({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(k=>({accounts:[k],name:k.chain}))},h=i(async(k,w)=>a(k,w)?await r(k,[{namespace:"DISCOVER_MODE",network:w}]):void 0,"switchNetwork"),f=i(k=>!!s(k).mobileWallet,"isMobileWallet"),d=c.filter(k=>k.enabled).reduce((k,w)=>(k[w.name]=w,k),{}),g=c.filter(QE),C=i(k=>{let{supportedChains:w}=s(k);return mr(w)},"getSupportedChainNames"),S=e(),T={meta:{blockchains:d,evmBasedChains:g,evmNetworkChainInfo:zE(g),getSupportedChainNames:C},getSigners:o,wallets:m,providers:S,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:f},v=le.use.isActiveTab();return qE.createElement(OE,{queuesDefs:[l],context:T,onPersistedDataLoaded:k=>{$E(k)},isPaused:!v},t.children)}i(GE,"QueueManager");var $h=GE;import{useManager as YE}from"@rango-dev/queue-manager-react";import ZE,{createContext as JE,useContext as RE}from"react";function Fh(){let{findToken:t}=y(),e=y().blockchains(),o=y().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:l}=O();return i(u=>{let{fromBlockchain: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(Fh,"useUpdateQuoteInputs");import{cancelSwap as VE,getCurrentBlockchainOfOrNull as KE,getCurrentStep as jE,getRelatedWalletOrNull as XE}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 ut(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&&VE(o)}getCurrentStepInfo(e){let o=jE(e);return{step:o,wallet:o?XE(e,o):null,network:o?KE(e,o):null}}};var Oh=JE(void 0);function pp(t){let{manager:e}=YE(),o=le.use.isActiveTab(),n=O.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=Fh(),{fromBlockchain:v,toBlockchain:k,fromToken:w,toToken:I,inputAmount:L}=O(),b={isActiveTab:o,setCurrentTabAsActive:so.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:v?.name??null,fromToken:w?{symbol:w.symbol,blockchain:w.blockchain,address:w.address}:null,toBlockchain:k?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:L},updateQuoteInputs:T}};return ZE.createElement(Oh.Provider,{value:b},t.children)}i(pp,"WidgetInfo");function Uh(){let t=RE(Oh);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Uh,"useWidget");function ta(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=_h();return zh(()=>{n&&r(n)},[n]),tI(()=>{Gp({API_KEY:o?.apiKey||ar,BASE_URL:o?.apiUrl||Cp})},[o.apiKey,o.apiUrl]),zh(()=>{t.config?.signers?.customSolanaRPC&&eI("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),cp.createElement(Wr,{config:o,onUpdateState:e},cp.createElement($h,{apiKey:o.apiKey},cp.createElement(pp,null,t.children)))}i(ta,"WidgetProvider");function Qh(t){let e=t.config?.externalWallets;return oa.createElement(Qc,null,e?oa.createElement(Ri,null):oa.createElement(ta,{config:t.config??sa},oa.createElement(Ri,null)))}i(Qh,"Widget");function qh(){let{on:t,off:e}=ge;return{on:t,off:e}}i(qh,"useWidgetEvents");var Pj={DerivationPath:gn,Namespaces:fn,isOnDerivationPath:yn,isOnNamespace:hn};export{aj as EventSeverity,Lo as MainEvents,hj as Networks,Cj as PendingSwapNetworkStatus,Sa as QuoteEventTypes,sj as RouteEventType,la as SUPPORTED_FONTS,Pj as StatefulConnect,lj as StepEventType,pj as StepExecutionBlockedEventStatus,cj as StepExecutionEventStatus,Pe as UI_ID,Ta as UiEventTypes,Ca as WalletEventTypes,fj as WalletEvents,yj as WalletTypes,Qh as Widget,Lo as WidgetEvents,ta as WidgetProvider,Wr as WidgetWallets,os as customizedThemeTokens,mj as readAccountAddress,Ht as useStatefulConnect,gt as useWalletList,ei as useWallets,Uh as useWidget,qh as useWidgetEvents,Vy as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map