@rango-dev/widget-embedded 0.44.2-next.1 → 0.44.2-next.3

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 bS=Object.defineProperty;var i=(t,e)=>bS(t,"name",{value:e,configurable:!0});import{EventSeverity as MZ,RouteEventType as PZ,StepEventType as _Z,StepExecutionBlockedEventStatus as DZ,StepExecutionEventStatus as $Z}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as OZ}from"@rango-dev/wallets-core/legacy";import{useWallets as $i,Events as zZ}from"@rango-dev/wallets-react";import{Networks as qZ,WalletTypes as HZ}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as VZ}from"rango-types";import{Divider as _T}from"@rango-dev/ui";import to,{useEffect as DT,useRef as $T,useState as Vu}from"react";import{WalletState as xS}from"@rango-dev/ui";import{useWallets as ES}from"@rango-dev/wallets-react";import{useReducer as IS}from"react";function pp(t){return!!t.derivationPath}i(pp,"isStateOnDerivationPathStep");function up(t){return!!t.namespace}i(up,"isStateOnNamespace");var Dr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function dp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Dr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Dr;default:throw new Error("Action hasn't been defined.")}}i(dp,"reducer");function Uo(){let{state:t,disconnect:e,connect:o}=ES(),[n,r]=IS(dp,Dr),a=i(async(u,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(u,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:g})}},"runConnect"),s=i(async(u,f)=>{if(u.state===xS.DISCONNECTED){let g=!!u.isHub,m=g?u.properties?.find(y=>y.name==="namespaces")?.value:u.needsNamespace,d=g?u.properties?.find(y=>y.name==="derivationPath")?.value:u.needsDerivationPath;if(!m?.data?.length)return await a(u.type,void 0,f);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:u,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1){if(d){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:y.value}}),{status:"derivation-path"}}return await a(u.type,m?.data?.map(y=>({namespace:y.value})),f)}}if(u.isHub){let g=u.properties?.find(m=>m.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:u,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await p(u.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(u,f)=>{let h=!!u.isHub,g=h?u.properties?.find(S=>S.name==="namespaces")?.value:u.needsNamespace,m=h?u.properties?.find(S=>S.name==="derivationPath")?.value:u.needsDerivationPath,d=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(d&&m)return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:y}}),{status:"derivation-path"};if(!up(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(S=>({namespace:S}));return r({type:"detached",payload:{targetWallet:u,selectedNamespaces:C?.map(S=>S.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async u=>{if(!u)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!pp(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let f=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:u}];return await a(f,g)},"handleDerivationPath"),p=i(async u=>{let f=t(u);return f.connected||f.connecting?(await e(u),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:p,handleNamespace:c,handleDerivationPath:l,getState:()=>n,resetState:u=>{r(u==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Uo,"useStatefulConnect");import{WalletState as ls}from"@rango-dev/ui";import{useWallets as $C}from"@rango-dev/wallets-react";import{detectMobileScreens as FC,KEPLR_COMPATIBLE_WALLETS as OC,WalletTypes as On}from"@rango-dev/wallets-shared";import{useCallback as UC,useEffect as zC}from"react";import LC,{createContext as MC,useContext as PC,useEffect as _C,useRef as DC}from"react";import{create as BC}from"zustand";import{persist as WC}from"zustand/middleware";import{allProviders as AS}from"@rango-dev/provider-all";var Oa=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()}},zo=new Oa;import{defineVersions as fp,pickVersion as gp,Provider as Ua}from"@rango-dev/wallets-core";function hp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=yp(a);return s instanceof Ua?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof Ua?o.push(fp().version("1.0.0",n).build()):o.push(fp().version("0.0.0",n).build())}),o}return t}i(hp,"matchAndGenerateProviders");function yp(t){try{return gp(t,"1.0.0")[1]}catch{return gp(t,"0.0.0")[1]}}i(yp,"pickProviderVersionWithFallbackToLegacy");function Sp(t){return t.map(o=>yp(o)).map(o=>o instanceof Ua?o.id:o.config.type)}i(Sp,"configWalletsToWalletName");function $r(t,e){return e.find(o=>o.name===t)?.displayName}i($r,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Cp(t,e){return e.find(o=>o.name===t)?.logo}i(Cp,"getBlockchainImage");function Bn(t,e){return e.find(o=>o.id===t)?.title}i(Bn,"getSwapperDisplayName");function So(t,e){return e.find(o=>o.name===t)??null}i(So,"findBlockchain");function za(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(za,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function Qo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Qo,"isValidTokenAddress");function Wn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=gt(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=gt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Wn,"matchTokensFromConfigWithMeta");function Fr(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(Fr,"getSupportedBlockchainsFromConfig");function kp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(kp,"makeProvidersOptionsFromConfig");var Or={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"}},NS={clientUrl:void 0},BS={liquiditySources:void 0};function Tp(t){let e=kp(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return AS(o).map(a=>a())}i(Tp,"generateProviders");var vp=i((t,e,o)=>{let n=Tp({...Or,...t});return{config:{...Or,...t},iframe:NS,campaignMode:BS,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=Wn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Wn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});zo.set("supportedSourceTokens",l),zo.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=Tp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=kp(a);return hp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as wp}from"rango-types";var bp=[wp.EVM,wp.SOLANA],Ur="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as GS}from"rango-sdk";import{UI_ID as WS}from"@rango-dev/ui";var zr="c6381a79-2817-4602-83bf-6a641a409e32",xp="https://api.rango.exchange",Ep="https://explorer.rango.exchange",Qe={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...WS};import{BlockchainCategories as FS,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as OS}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as US,getCosmosExperimentalChainInfo as zS,isEvmAddress as QS,KEPLR_COMPATIBLE_WALLETS as YN,Networks as Kp}from"@rango-dev/wallets-shared";import Ho from"bignumber.js";import{isCosmosBlockchain as qS}from"rango-types";import LS from"bignumber.js";var de=new LS(0);import{WalletTypes as MS}from"@rango-dev/wallets-shared";var Co="~",Ip=[MS.LEAP];import{BlockchainCategories as qa,WalletState as $S}from"@rango-dev/ui";import{TransactionType as Qr}from"rango-sdk";var Ap="Roboto",Qa=[{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 qo(t){return Array.from(new Set(t))}i(qo,"removeDuplicateFrom");function qr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(qr,"debounce");function rt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(rt,"containsText");function Wp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Wp,"exactText");function Lp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Lp,"startWithText");var N=i(()=>document.getElementById(Qe.SWAP_BOX_ID),"getContainer"),To=i(()=>document.getElementById(Qe.EXPANDED_BOX_ID),"getExpanded");function Mp(t,e,o){let n=!!e&&Wp(e,t),r=!!o&&Wp(o,t);return n!==r?n?-1:1:0}i(Mp,"compareExactMatchText");function Ha(t,e,o){let n=!!e&&rt(e,t),r=!!o&&rt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ha,"compareContainsText");function Ga(t,e,o){let n=!!e&&Lp(e,t),r=!!o&&Lp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ga,"compareStartWithText");function Pp(t,e,o){if(!o)return 0;let n=Mp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Mp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Ga(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ha(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ga(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ha(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Ga(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ha(o,t.address,e.address);if(r!==0)return r}return 0}i(Pp,"compareWithSearchFor");var Hr=i((t,e)=>{switch(e){case qa.ALL:return!0;case qa.UTXO:return t===Qr.TRANSFER;case qa.OTHER:return t!==Qr.TRANSFER&&t!==Qr.COSMOS&&t!==Qr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),_p=i(t=>Qa.find(o=>o.value===t)?.url,"getFontUrlByName");function Dp(t,e){let o=!!t.find(n=>n.state===$S.CONNECTED);return e===!1&&o}i(Dp,"isSingleWalletActive");function $p(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i($p,"memoizedResult");import{BigNumber as Gp}from"bignumber.js";function Fp(t){return t.replace(/^0+(?=\d)/g,"")}i(Fp,"removeLeadingZeros");function Op(t){return t.replace(/^\.(\d+)/,"0.$1")}i(Op,"ensureLeadingZeroForDecimal");function Up(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(Up,"formatThousandsWithCommas");function zp(t){return t.replace(/\s+/g,"-")}i(zp,"replaceSpacesWithDash");function Qp(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(Qp,"stripTrailingZeros");function Gr(t){return/^0+(?:\.0+)?$/.test(t)}i(Gr,"isZeroValue");function qp(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(qp,"isValidCurrencyFormat");function Hp(t){return/\d+$/.test(t)}i(Hp,"isColorKeyOverridden");var Ln=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"),_=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Gp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Gp(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 Vr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Nt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Mn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Vp(t){return Gr(t)?"0":Qp(t)}i(Vp,"sanitizeInputAmount");function Pn(t){return t.connected?it.CONNECTED:t.connecting?it.CONNECTING:t.installed?it.DISCONNECTED:it.NOT_INSTALLED}i(Pn,"mapStatusToWalletState");function jp(t,e,o,n){return o.filter(r=>!Ip.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:f,properties:h,isHub:g}=e(r),m=qo(u.map(y=>y.type)),d=Pn(t(r));return{title:a,image:s,link:US(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:m,needsDerivationPath:f,properties:h,isHub:g}})}i(jp,"mapWalletTypesToWalletInfo");function _n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(_n,"walletAndSupportedChainsNames");function Ka(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(h=>h.chain===l)){let h={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(h)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=OS(l),f=c.length>0,h=c.includes(u),g=u===Kp.Unknown;if(f&&!h&&!g)return;let d=u===Kp.Unknown&&QS(p);if(g&&!d)return;o.includes(u)||d?r?s(u,p.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,p.toLowerCase())}):s(u,p)}),a}i(Ka,"prepareAccountsForWalletStore");function ko(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let f=p.from.blockchain,h=p.to.blockchain,g=a===o.swaps.length-1,m=u===l.length-1;(!g&&!m||g&&c!==f||e==="all")&&n.add(f),e==="all"&&n.add(h)})}e==="all"&&n.add(c)}),Array.from(n)}i(ko,"getQuoteChains");function Dn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dn,"isAccountAndWalletMatched");var Xp=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?Va(n.usdValue,n.decimals):de.toFixed();return o.plus(r)},new Ho(de));return HS(e.toString())},"calculateWalletUsdValue");function HS(t){let e=t.toString().split(".");return e[0]=Up(e[0]),e.join(".")}i(HS,"numberWithThousandSeparator");var Xr=i((t,e)=>{let o=zS(Object.entries(t).map(([,n])=>n).filter(qS));return o&&o[e]?.experimental},"isExperimentalChain");function Va(t,e){return new Ho(t).shiftedBy(-e).toFixed()}i(Va,"representAmountInNumber");function Yr(t){if(!t)return null;let e=Va(t.amount,t.decimals),o=t.usdValue?Va(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Yr,"formatBalance");function Yp(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Ho(t.usdValue).shiftedBy(-t.decimals):de,n=e&&e.usdValue?new Ho(e.usdValue).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Ho(t.amount).shiftedBy(-t.decimals):de,n=e&&e.amount?new Ho(e.amount).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Yp,"compareTokenBalance");function Ft(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ft,"areTokensEqual");function Zp(t,e){return t.map(o=>({isPartiallyConnected:ja(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===it.CONNECTED&&!n.isPartiallyConnected)-+(o.state===it.CONNECTED&&!o.isPartiallyConnected)||+(n.state===it.CONNECTED)-+(o.state===it.CONNECTED)||+(n.state===it.DISCONNECTED||n.state===it.CONNECTING)-+(o.state===it.DISCONNECTED||o.state===it.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(Zp,"sortWalletsBasedOnConnectionState");function Go(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(Go,"getConciseAddress");function Jp({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Jp,"getAddress");var Rp=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function eu(t){return t.map(e=>e.state).join("-")}i(eu,"hashWalletsState");function tu(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(tu,"filterBlockchainsByWalletTypes");function ou(t,e){return e===FS.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Hr(n,e))return!0;return!1})}i(ou,"filterWalletsByCategory");function ja(t,e){return!t.isHub||!t.needsNamespace||t.state!==it.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(ja,"checkIsWalletPartiallyConnected");var Xa={API_KEY:zr};function Ot(t){return Xa[t]||""}i(Ot,"getConfig");function nu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Xa=e,Xa}i(nu,"initConfig");var ru=20,iu=25,Ya="theme-widget",Za=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ft(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Ft(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Ja=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),au=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Zr,at=i(()=>Zr||(Zr=new GS(Ot("API_KEY"),Ot("BASE_URL")),Zr),"httpService");import{i18n as cu}from"@lingui/core";var su=[.5,1,3],Jr=1,Vo=5,$n=30,Rr=0;import{WidgetEvents as lu}from"@rango-dev/queue-manager-rango-preset";var Ra=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(Ra||{}),es=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(es||{}),ts=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ts||{}),Ko=(a=>(a[a.RouteEvent=lu.RouteEvent]="RouteEvent",a[a.StepEvent=lu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Ko||{});function ei(t,e){let o=t.map(a=>a.swapperGroup),n=[];return qo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(ei,"getUniqueSwappersGroups");function pu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(pu,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function jo(t,e){return e?.[t]==="enabled"}i(jo,"isRoutingEnabled");var uu=i((t,e,o)=>Re("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function Xo(t){return t==Rr?{type:"error",message:cu.t("Slippage must be greater than or equal to 0.01")}:t>Vo&&t<=$n?{type:"warning",message:cu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(Xo,"getSlippageValidation");var du=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=Fr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>bp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",f=zo.get(u);f?.length||(f=Wn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),zo.set(u,f)),f=uu(f,s,a.features);let h=e().blockchains({type:o.type});return f.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!h.some(d=>d.name===m.blockchain)?!1:o.searchFor?!!(rt(m.symbol,o.searchFor)||rt(m.address||"",o.searchFor)||rt(m.name||"",o.searchFor)):!0).sort((m,d)=>{let y=e().isTokenPinned(m,o.type),C=e().isTokenPinned(d,o.type);if(y!==C)return y?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(m),A=o.getBalanceFor(d),E=Yp(I,A);if(E!==0)return E}let S=l.get(m.blockchain),k=l.get(d.blockchain),v=za(m,S),x=za(d,k);if(v!==x)return v?-1:1;if(m.isPopular!==d.isPopular)return m.isPopular?-1:1;if(o.searchFor){let I=Pp(m,d,o.searchFor);if(I)return I}return m.isSecondaryCoin!==d.isSecondaryCoin?m.isSecondaryCoin?1:-1:S&&k?S.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=gt(o),s=n.get(a);return s||(s=r.find(c=>gt(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ft(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(pu)},fetch:async()=>{try{let{routing:o}=e().config,n=jo("enableCentralizedSwappers",o),r=await at().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(g=>g.enabled),f=new Set;r.tokens.forEach(g=>{f.add(g.blockchain),l.push(g)}),r.blockchains.sort((g,m)=>g.sort-m.sort).forEach(g=>{g.enabled&&f.has(g.name)&&a.set(g.name,g)}),l.forEach(g=>{let m=gt(g);c[g.blockchain]||(c[g.blockchain]=[]),s.set(m,g),c[g.blockchain].push(m)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as VS,Catalonia as KS,Chinese as mu,Denmark as jS,English as XS,Finland as YS,French as ZS,German as JS,Greece as RS,Hungary as eC,India as tC,Indonesian as oC,Italian as nC,Japanese as rC,Korea as iC,Lithuania as aC,Malay as sC,Netherlands as lC,Pakistan as cC,Philippines as pC,Poland as uC,Portuguese as dC,Russian as mC,SaudiArabia as fC,Serbia as gC,Slovakia as hC,SouthAfrica as yC,Spanish as SC,Swahili as CC,Swedish as TC,Thai as kC,Turkish as vC,Ukrainian as wC,Vietnamese as bC}from"@rango-dev/ui";var fu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:yC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:fC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:VS},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:KS},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:mu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:mu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:jS},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:lC},{title:"English",label:"English",local:"en",SVGFlag:XS},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:pC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:YS},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:ZS},{title:"German",label:"Deutsch",local:"de",SVGFlag:JS},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:RS},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:tC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:eC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:oC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:nC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:rC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:iC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:aC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:sC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:uC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:dC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:mC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:gC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:hC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:SC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:CC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:TC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:kC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:vC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:wC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:cC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:bC}],Yo="en";var gu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Jr,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=qo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Re("theme",n),s=Re("language",n),c=Re("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Yo},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||Yo}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=Fr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ss from"bignumber.js";import xC from"mitt";var Te=xC(),EC={on:Te.on,off:Te.off};var hu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import yu from"bignumber.js";function Ut(t){return`${t.blockchain}${Co}${t.address}${Co}${t.symbol}`}i(Ut,"createAssetKey");function Su(t,e){return`${Ut(e)}${Co}${t}`}i(Su,"createBalanceKey");function Fn(t){let[e,o,n]=t.split(Co);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Fn,"extractAssetFromBalanceKey");function ns(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Ut(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new yu(r??de).multipliedBy(o[s].amount).toString():""})})}),o}i(ns,"computeNextBalancesWithNewPrices");function rs(t,e){let o={};return t.balances?.forEach(n=>{let r=Su(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new yu(c??de).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(rs,"createBalanceStateForNewAccount");function is(t,e){for(let o in e){let n=Fn(o),r=Ut(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(is,"updateAggregatedBalanceStateForNewAccount");function IC(t,e){let o=Fn(e),n=Ut(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(IC,"removeBalanceFromAggregatedBalance");function as(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=Fn(l);!!n.find(f=>Su(f.address,{address:p.address,blockchain:f.chain,symbol:p.symbol})===l)?a=IC(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(as,"computeNextStateAfterWalletBalanceRemoval");function AC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(AC,"matchWalletDetailsWithConnectedWallet");var NC=$p(),Cu=hu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Dn(s,a))?{...a,loading:!1,error:!1,explorerUrl:AC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n)=>{let r=e().connectedWallets,a=o.filter(s=>!r.some(c=>Dn(s,c)));if(a.length>0){let s=a.map(c=>{let l=!r.some(p=>p.chain===c.chain&&p.selected&&p.walletType!==c.walletType);return{address:c.address,chain:c.chain,isContractWallet:c.isContractWallet,explorerUrl:null,walletType:c.walletType,selected:l,namespace:n,loading:!1,error:!1}});t(c=>({connectedWallets:[...c.connectedWallets.filter(p=>!s.some(u=>u.walletType===p.walletType&&u.chain===p.chain)),...s]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address].push(...a[p.chain]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await at().getMultipleTokenBalance({assets:p.map(({symbol:f,address:h,blockchain:g})=>({symbol:f,address:h,blockchain:g})),walletAddress:l});if(u){let f=e()._balances,h=e()._aggregatedBalances;u.forEach(g=>{if(parseFloat(g.amount.amount)===0)return;let m={blockChain:g.asset.blockchain,balances:[g],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ns(d,m,f);let y=rs(m,e);h=is(h,y),f={...f,...y}}),t(g=>({_balances:{...g._balances,...f},_aggregatedBalances:h}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n)=>{Te.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=as(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(Te.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await at().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(f=>{if(f.failed)return;let h={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ns(h,f,l);let{_balances:g,_aggregatedBalances:m}=as(h,r,{chains:[f.blockChain]});if(p=m,l=g,!e().connectedWallets.find(y=>y.walletType===r&&y.address===f.address&&y.chain===f.blockChain))return;let d=rs(f,e);p=is(p,d),l={...l,...d}}),t(f=>({_balances:{...f._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let f=c.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));f.length>0&&await e().fetchMainTokensBalances(f,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Ut(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let l=a[0];return n[l]}let c=n[a[0]];return a.forEach(l=>{let p=n[l],u=new ss(p.amount),f=new ss(c.amount);u.isGreaterThan(f)&&(c=p)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Co);return p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>NC(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=Fn(c);if(p.blockchain===n.chain){let u=e().findToken(p),f=l.amount?new ss(l.amount).shiftedBy(-l.decimals):de;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:f.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Tu(t){return BC()(WC((...e)=>({...Cu(...e),...du(...e),...gu(...e),...vp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Tu,"createAppStore");var ku=MC(null);function T(){let t=PC(ku);if(_C(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function vu(t){let e=DC();return e.current||(e.current=Tu(t.config)),LC.createElement(ku.Provider,{value:e.current},t.children)}i(vu,"AppStoreProvider");function Tt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=T(),{state:r,getWalletInfo:a}=$C(),s=T().blockchains(),{handleDisconnect:c}=Uo(),l=Sp(n()),p=jp(r,a,l,e);p=FC()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=Zp(p,r),f=i(d=>!o.find(y=>y.walletType===d&&y.chain===e),"isExperimentalChainNotAdded"),h=UC(()=>{let d=p?.filter(y=>y.state===ls.CONNECTING)||[];for(let y of d)c(y.type)},[eu(p)]);zC(()=>()=>{h()},[]);let g=i(d=>{let y=d.find(S=>S.type===On.DEFAULT);return!y||y.state===ls.NOT_INSTALLED?!1:d.filter(S=>S.state!=ls.NOT_INSTALLED&&![On.DEFAULT,On.WALLET_CONNECT_2,On.LEDGER].includes(S.type)&&a(S.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((d,y,C)=>Xr(C,y)&&f(d)&&!OC.includes(d)||d==On.DEFAULT&&!g(p),"shouldExcludeWallet");return{list:u.filter(d=>!m(d.type,e??"",s)),terminateConnectingWallets:h}}i(Tt,"useWalletList");import{Modal as GC}from"@rango-dev/ui";import VC from"react";import{create as HC}from"zustand";var wu="rango-widget";var Un=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(wu),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 qC=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"),Zo=qC;var te=Zo(HC()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),wo=new Un({onInit:()=>te.setState({tabManagerInitiated:!0}),onClaim:()=>te.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>te.setState({isActiveTab:!1})});function Z(t){let{watermark:e}=te();return VC.createElement(GC,{hasWatermark:e==="FULL",...t},t.children)}i(Z,"WatermarkedModal");import{i18n as rn}from"@lingui/core";import{Alert as oT,Button as nT,Divider as ai,Image as rT,MessageBox as iT,RadioRoot as aT}from"@rango-dev/ui";import me,{useEffect as sT,useMemo as lT,useState as cT}from"react";import{Checkbox as JC,Radio as RC,Typography as eT}from"@rango-dev/ui";import eo from"react";function Jo(t,e){return t.find(o=>o.name===e)?.logo}i(Jo,"getBlockchainLogo");import{Button as KC,darkTheme as jC,Image as XC,styled as kt,Typography as YC}from"@rango-dev/ui";var ti=kt("ul",{padding:0,paddingTop:"$10",paddingBottom:"$20",margin:0}),Ro=kt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100 ",[`.${jC} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),en=kt("div",{display:"flex",gap:"$8",alignItems:"center"}),oi=kt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),xu=kt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),tn=kt(XC,{variants:{disabled:{true:{opacity:"0.5"}}}}),on=kt(KC,{minHeight:"$40"}),Eu=kt(YC,{maxWidth:"100px"}),Iu=kt("div",{paddingLeft:"48px"}),Au=kt("div",{display:"flex",gap:"2px",cursor:"pointer",alignItems:"center",width:"fit-content"}),Nu=kt("div",{display:"flex",gap:"6px",alignItems:"center"});import{Image as Wu,Tooltip as Lu,Typography as ZC}from"@rango-dev/ui";import Bt from"react";import{styled as Bu}from"@rango-dev/ui";var cs=Bu("div",{display:"flex",alignItems:"center",padding:0,margin:0}),ni=Bu("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var ps=3;function ri(t){let{chains:e}=t;return Bt.createElement(cs,{id:"widget-supported-chains-container"},e.slice(0,ps).map((o,n)=>Bt.createElement(Lu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Bt.createElement(ni,{firstItem:n===0},Bt.createElement(Wu,{src:o.logo,size:15})))),e.length>ps&&Bt.createElement(Lu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Bt.createElement(cs,null,e.map((o,n)=>Bt.createElement(ni,{key:o.name,firstItem:n===0},Bt.createElement(Wu,{src:o.logo,size:15}))))},Bt.createElement(ni,null,Bt.createElement(ZC,{variant:"body",size:"xsmall"},"+",e.length-ps))))}i(ri,"SupportedChainsList");function Mu(t){let{onClick:e,type:o,namespace:n}=t,r=T().blockchains(),a=n.getSupportedChains(r),s=a.length>1;return eo.createElement(Ro,{onClick:e,clickable:!0,className:"widget-namespace-list-item"},eo.createElement(en,null,eo.createElement(tn,{src:Jo(r,n.id),size:40}),eo.createElement(oi,{showSupportedChains:s},eo.createElement(eT,{variant:"label",size:"large"},n.label),s&&eo.createElement(ri,{chains:a})),o==="radio"?eo.createElement(RC,{value:n.value}):eo.createElement(JC,{checked:t.value})))}i(Mu,"NamespaceListItem");import{i18n as tT}from"@lingui/core";import{Typography as Pu}from"@rango-dev/ui";import nn from"react";function ii(t){let{namespace:e}=t,o=T().blockchains();return nn.createElement(Ro,{unsupported:!0},nn.createElement(en,null,nn.createElement(tn,{src:Jo(o,e.id),size:40,disabled:!0}),nn.createElement(xu,null,nn.createElement(Pu,{variant:"label",size:"large"},e.label),nn.createElement(Pu,{variant:"body",size:"xsmall"},tT.t("(Currently not supported)")))))}i(ii,"NamespaceUnsupportedItem");function zn(t){let{targetWallet:e}=t.value,o=e.properties?.find(d=>d.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=T().blockchains(),[l,p]=cT([]),u=lT(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),f=i(d=>{p(r?[d]:y=>y.includes(d)?y.filter(C=>C!==d):y.concat(d))},"onSelect"),h=u?.length===l.length,g=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");h?p([]):u&&p(u.map(d=>d.value))},"onSelectAll"),m=i(d=>r?me.createElement(aT,{value:l?.[0]},d):me.createElement(me.Fragment,null,d),"wrapRadioRoot");return sT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let d=u.filter(y=>y.getSupportedChains(c).some(C=>t.value.defaultSelectedChains?.includes(C.name)));p(d.map(y=>y.value))}else p(u.map(d=>d.value))},[]),me.createElement(me.Fragment,null,me.createElement(iT,{type:"info",title:rn.t("Connect {wallet}",{wallet:e.title}),description:rn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:me.createElement(rT,{src:s,size:45})}),r?me.createElement(me.Fragment,null,me.createElement(ai,{size:20}),me.createElement(oT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:rn.t("This wallet can only connect to one chain at a time. ")})):me.createElement(me.Fragment,null,me.createElement(ai,{size:30}),me.createElement(nT,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:g},h?rn.t("Deselect all"):rn.t("Select all"))),me.createElement(ti,null,m(me.createElement(me.Fragment,null,a?.data.map((d,y,C)=>me.createElement(me.Fragment,{key:d.id},d.unsupported?me.createElement(ii,{namespace:d}):me.createElement(Mu,{value:l.includes(d.value),namespace:d,type:r?"radio":"checkbox",onClick:()=>f(d.value)}),y!==C.length-1&&me.createElement(ai,{size:10})))))),me.createElement(ai,{size:20}),me.createElement(on,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},rn.t("Connect")))}i(zn,"Namespaces");import{i18n as us}from"@lingui/core";import{Divider as ds,Image as ST,MessageBox as CT}from"@rango-dev/ui";import st from"react";import{i18n as an}from"@lingui/core";import{Button as pT,ChevronDownIcon as uT,ChevronUpIcon as dT,Divider as mT,Spinner as fT,Typography as Qn}from"@rango-dev/ui";import{useWallets as gT}from"@rango-dev/wallets-react";import ke,{useEffect as hT,useLayoutEffect as yT,useState as _u}from"react";var Du=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,a=T().blockchains(),{connect:s,disconnect:c,state:l}=gT(),[p,u]=_u(null),[f,h]=_u(!1),m=l(o).namespaces?.get(n.value),d=m.accounts?.[0]?.split(":"),y=n.getSupportedChains(a);hT(()=>h(!1),[p]),yT(()=>{r&&C(o,n.value)},[]);let C=i(async(v,x)=>{try{await s(v,[{namespace:x,network:""}])}catch(I){u(I)}},"handleConnectNamespace"),S=i(async v=>{u(null),v.connected?await c(o,[n.value]):C(o,n.value)},"handleButtonClick"),k=i(()=>m.connected?an.t("Disconnect"):p?an.t("Try again"):an.t("Connect"),"getButtonText");return ke.createElement(Ro,{hasError:!!p},ke.createElement(en,null,ke.createElement(tn,{src:Jo(a,n.id),size:40}),ke.createElement(oi,null,ke.createElement(Nu,{className:"widget-namespace-detached-item-info-div"},ke.createElement(Qn,{variant:"label",size:"large"},n.label),m.connected&&ke.createElement(Qn,{variant:"body",size:"small",color:"success500"},an.t("Connected")),!m.connected&&!!p&&ke.createElement(Qn,{variant:"body",size:"small",color:"error500"},an.t("Connection failed"))),m.connected&&ke.createElement(Eu,{variant:"body",size:"small",color:"neutral700"},Go(d?.[d?.length-1])),!m.connected&&p&&ke.createElement(Au,{className:"widget-namespace-detached-item-error-toggle-btn",onClick:()=>h(v=>!v)},ke.createElement(Qn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},an.t("See why")),f?ke.createElement(dT,{size:12,color:"gray"}):ke.createElement(uT,{size:12,color:"gray"})),!m.connected&&!p&&y.length>1&&ke.createElement(ri,{chains:y})),m.connecting?ke.createElement(fT,{color:"info"}):ke.createElement(pT,{id:"widget-name-space-connect-btn",variant:"ghost",type:m.connected?"error":"primary",size:"small",onClick:async()=>S(m)},k())),!m.connected&&!!p&&f&&ke.createElement(ke.Fragment,null,ke.createElement(mT,{size:4}),ke.createElement(Iu,{id:"widget-namespace-item-error-div"},ke.createElement(Qn,{variant:"body",size:"small",color:"neutral700"},p.cause?.message||p.message))))},"NamespaceDetachedItem");function qn(t){let{selectedNamespaces:e,value:o}=t,{targetWallet:n}=o;return st.createElement(st.Fragment,null,st.createElement(CT,{type:"info",title:us.t("Connect {wallet}",{wallet:n.type}),description:us.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:st.createElement(ST,{src:n.image,size:45})}),st.createElement(ds,{size:20}),st.createElement(ti,{id:"widget-detached-namespace-list",as:"ul"},n.needsNamespace?.data.map((r,a,s)=>st.createElement(st.Fragment,{key:r.id},r.unsupported?st.createElement(ii,{namespace:r}):st.createElement(Du,{walletType:n.type,namespace:r,initialConnect:e?.includes(r.value)}),a!==s.length-1&&st.createElement(ds,{size:10})))),st.createElement(ds,{size:20}),st.createElement(on,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},us.t("Done")))}i(qn,"Detached");import{i18n as sn}from"@lingui/core";import{Divider as Fu,Image as wT,MessageBox as bT,Select as xT,TextField as ET}from"@rango-dev/ui";import ht,{useEffect as IT,useState as Ou}from"react";import{namespaces as TT}from"@rango-dev/wallets-shared";var si={id:"custom",label:"Custom",generateDerivationPath:t=>t};function ms(t){let e=t?TT[t].derivationPaths:null;return e?[...e,si]:[]}i(ms,"getDerivationPaths");import{Button as kT,styled as fs,Typography as vT}from"@rango-dev/ui";var $u=fs("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),gs=fs(vT,{paddingLeft:"$10"}),hs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},dM=fs(kT,{minHeight:"$40"});var Uu="0";function Hn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Ou(null),[c,l]=Ou(Uu),p=a===si.id,u=ms(o),f=i(({value:g})=>{let m=u?.find(d=>d.id===g);m&&(a===si.id&&Number.isNaN(Number(c))&&l(Uu),s(m.id))},"handleDerivationPathItemClick"),h=i(()=>{let g=u.find(m=>m.id===a);if(g)e(g.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return IT(()=>{s(ms(o)[0]?.id||null)},[o]),ht.createElement(ht.Fragment,null,ht.createElement(Fu,{size:20}),ht.createElement(bT,{type:"info",title:sn.t("Select Derivation Path"),description:sn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:ht.createElement(wT,{src:n,size:45})}),ht.createElement($u,null,ht.createElement(gs,{variant:"body",size:"xsmall",color:"$neutral600"},sn.t("Choose Derivation Path Template")),ht.createElement(xT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(g=>({value:g.id,label:g.label})),variant:"filled",handleItemClick:f,styles:{trigger:hs}}),ht.createElement(Fu,{size:20}),ht.createElement(gs,{variant:"body",size:"xsmall",color:"$neutral600"},p?sn.t("Enter Path"):sn.t("Enter Index")),ht.createElement(ET,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:g=>l(g.target.value),style:hs})),ht.createElement(on,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!u||!a||!c},sn.t("Confirm")))}i(Hn,"DerivationPath");import{i18n as ln}from"@lingui/core";import{Image as BT,MessageBox as ys,WalletState as WT}from"@rango-dev/ui";import{useWallets as LT}from"@rango-dev/wallets-react";import bo from"react";import{keyframes as AT,styled as li}from"@rango-dev/ui";var wM=li("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),zu=li("div",{position:"relative"}),NT=AT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Qu=li("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${NT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),qu=li("div",{"& img":{borderRadius:"50%"}});function Ss(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=LT();return Pn(a(n))===WT.CONNECTED?bo.createElement(ys,{type:"success",title:ln.t("Wallet Connected"),description:ln.t("Your wallet is connected, you can use it to swap.")}):o?bo.createElement(ys,{type:"error",title:ln.t("Failed to Connect"),description:o||ln.t("Your wallet is not connected. Please try again.")}):bo.createElement(ys,{type:"loading",title:ln.t("Connecting to your wallet"),description:ln.t("Click connect in your wallet popup."),icon:bo.createElement(zu,null,bo.createElement(qu,null,bo.createElement(BT,{src:r,size:45})),bo.createElement(Qu,null))})}i(Ss,"ConnectStatus");import{i18n as Cs}from"@lingui/core";import{Button as MT,Divider as Hu,MessageBox as PT}from"@rango-dev/ui";import ci from"react";function Ts(t){let{displayName:e,onConfirm:o,id:n}=t;return ci.createElement(PT,{id:n,title:Cs.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Cs.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},ci.createElement(Hu,{size:18}),ci.createElement(Hu,{size:32}),ci.createElement(MT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Cs.t("Confirm")))}i(Ts,"ExperimentalChain");function Gu(t,e){return t().status==="init"&&!!e}i(Gu,"isOnStatus");function Gn(t){return t().status==="namespace"}i(Gn,"isOnNamespace");function Vn(t){return t().status==="derivationPath"}i(Vn,"isOnDerivationPath");function Kn(t){return t().status==="detached"}i(Kn,"isOnDetached");var FT=3e3,OT=300;function xo(t){let e=$T(),[o,n]=Vu(!1),[r,a]=Vu(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=Tt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:f,resetState:h}=Uo(),g=i(k=>{u(t.wallet,k).then(S).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),d=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(k).then(S).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),S=i((k,v)=>{let x=k.status==="connected",I=["disconnected","disconnected-unhandled"].includes(k.status);x?(t.onConnect?.(),v||(e.current=setTimeout(y,FT))):I&&y()},"afterConnected");return DT(()=>{if(t.wallet){C();let k=!1,v=!0;i(()=>{setTimeout(()=>{v=!1,k||n(!0)},OT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(k=!0),S(I,v)}).catch(s)}},[t.wallet]),to.createElement(Z,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},Gu(f,t.wallet)&&to.createElement(to.Fragment,null,to.createElement(Ss,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),to.createElement(_T,{direction:"vertical",size:32})),Gn(f)&&to.createElement(zn,{onConfirm:g,value:f().namespace}),Vn(f)&&to.createElement(Hn,{onConfirm:d,value:f().derivationPath}),Kn(f)&&to.createElement(qn,{onConfirm:m,value:f().namespace,selectedNamespaces:f().selectedNamespaces}))}i(xo,"StatefulConnectModal");import{Provider as HT}from"@rango-dev/wallets-react";import pi,{createContext as GT,useEffect as Zu,useMemo as VT,useRef as Ju}from"react";import{useEffect as UT}from"react";function Ku(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Ku,"hashProviders");function ks(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return UT(()=>{o(),r()},[Ku(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(ks,"useWalletProviders");import{legacyFormatAddressWithNetwork as zT,legacyReadAccountAddress as ju}from"@rango-dev/wallets-core/legacy";import{Events as cn}from"@rango-dev/wallets-react";import{isEvmBlockchain as QT}from"rango-sdk";function Xu(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=T(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(QT).map(d=>d.name),u=i((d,y)=>{let[C,,S,k,v]=d,x={walletType:C,network:k.network??void 0,accounts:S};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=Ka(C,S,p,y.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace)},"onAccountsEvent"),f=i((d,y,C,S,k)=>{if(y===cn.ACCOUNTS){let v=_n(k.supportedBlockchains);C&&u([d,y,C,S,k],{supportedChainNames:v})}y===cn.PROVIDER_DISCONNECTED&&(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),y===cn.NAMESPACE_DISCONNECTED&&n(d,C)},"handleUpdatesForHub"),h=i((d,y,C,S,k)=>{if(y===cn.ACCOUNTS){let v=_n(k.supportedBlockchains),x=[],I=[];if(C?.forEach(E=>{let{network:b}=ju(E);p.includes(b)?x.push(E):I.push(E)}),r.filter(E=>E.walletType===d).map(E=>zT(E.address,E.chain)).length>0){if(x.length>0){let E=Ka(d,x,p,v,k.isContractWallet);a(d,{chains:E.map(b=>b.chain)})}I.length>0&&a(d,{chains:I.map(E=>{let{network:b}=ju(E);return b})})}C?u([d,y,C,S,k],{supportedChainNames:v}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),g=i((d,y,C,S,k)=>{if(y===cn.CONNECTED&&C){let v={walletType:d,network:S.network??void 0,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(y===cn.NETWORK&&C){let v={walletType:d,network:C,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((d,y,C,S,k)=>{k.isHub?f(d,y,C,S,k):h(d,y,C,S,k),g(d,y,C,S,k)},"handler")}}i(Xu,"useUpdates");import{LegacyEvents as qT}from"@rango-dev/wallets-core/legacy";function Yu(t,e){let[o,n,r,a,s]=e;n!==qT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(Yu,"propagateEvents");var ui=GT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function KT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=T(),a=T().blockchains(),s=T().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=ks(s.wallets,c),p=Ju(),u=Ju(),{handler:f}=Xu({onConnectWalletHandler:p,onDisconnectWalletHandler:u});Zu(()=>{n().catch(console.log)},[]),Zu(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let h=te.use.isActiveTab(),g=VT(()=>({onConnectWallet:m=>{p.current=m},onDisconnectWallet:m=>{u.current=m}}),[]);return pi.createElement(ui.Provider,{value:g},pi.createElement(HT,{allBlockChains:a,providers:l,onUpdateState:(m,d,y,C,S)=>{let k=[m,d,y,C,S];f(...k),t.onUpdateState&&Yu(t.onUpdateState,k)},autoConnect:!!h,configs:{wallets:s.wallets}},t.children))}i(KT,"Main");function di(t){let{config:e,...o}=t;return pi.createElement(vu,{config:e},pi.createElement(KT,{...o,config:e}))}i(di,"WidgetWallets");import Fa from"react";import jT,{Fragment as XT}from"react";import{MemoryRouter as YT,useInRouterContext as ZT}from"react-router";function Ru({children:t}){let o=ZT()?XT:YT;return jT.createElement(o,null,t)}i(Ru,"AppRouter");import{I18nManager as y0}from"@rango-dev/ui";import sp from"react";import Oe from"react";import{useRoutes as r0}from"react-router-dom";var F={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 un,useRef as Ti}from"react";import et from"bignumber.js";import{create as tk}from"zustand";import{subscribeWithSelector as ok}from"zustand/middleware";import{i18n as vt}from"@lingui/core";import{getRelatedWalletOrNull as ek,RouteEventType as m_}from"@rango-dev/queue-manager-rango-preset";import He from"bignumber.js";import{PendingSwapNetworkStatus as Si}from"rango-types";import{i18n as qe}from"@lingui/core";var oe=i(()=>({genericServerError:qe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:qe.t("Please reset your liquidity sources."),description:qe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:qe.t("No Routes Found."),description:qe.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:qe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:qe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:qe.t("High Price Impact"),title:qe.t("Price impact is too high!"),description:qe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:qe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:qe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:qe.t("USD Price Unknown"),title:qe.t("USD Price Unknown, Cannot calculate Price Impact."),description:qe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:qe.t("Confirm USD Price Unknown")}}),"errorMessages");function ed(t){return t.type===0?t.diagnosisMessage??oe().noResultError.title:t.type===1?t.diagnosisMessage??oe().genericServerError:""}i(ed,"getQuoteErrorMessage");import{i18n as mi}from"@lingui/core";var Eo=i(()=>({connectWallet:mi.t("Connect Wallet"),swap:mi.t("Swap"),swapAnyway:mi.t("Swap anyway"),ethWarning:mi.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function vs(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(vs,"getFeeLabel");var ws=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],td=100,od=30,nd=15,rd=60;var id=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],ad=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as RT}from"@rango-dev/queue-manager-rango-preset";import RP from"bignumber.js";function ld(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(ld,"getRequiredBalanceOfWallet");function Qt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Qt,"getPriceImpactLevel");function fi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=RT(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=So(a?a.toBlockchain:n.fromBlockchain,e),l=So(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),f=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:f}}i(fi,"createRetryQuote");function pn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=jn(o),s=yt(o);if(o&&a&&s){let p=zt(a.toString(),s.toString());if(!!p&&md(a,p)){let f=hi(o?.swaps,n),h=Qt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:f,warningLevel:h}}}if(e&&hd(e,o))return{type:4,usdValueChange:_(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:_(zt(yt(e)??"1",yt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=yi(o.swaps),l=r>Vo;if(gd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:fd(o,r),minRequiredSlippage:c};return null}i(pn,"generateQuoteWarnings");function cd(t){return![4].includes(t.type)}i(cd,"isQuoteWarningConfirmationRequired");function zt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:bs(t.toString(),e.toString());return n&&n<0?n:null}i(zt,"getPriceImpact");var pd=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"),gi=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),ud=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(c=>c.swapperId));return Array.from(n).every(c=>s.has(c))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),dd=i(t=>{let e=i((o,n)=>{let r=ws.indexOf(o.value),a=ws.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function md(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return id.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new He(r)))}i(md,"hasHighValueLoss");function yd(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(yd,"hasLimitError");function Sd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new He(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new He(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=vt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=vt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=vt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=vt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Sd,"getLimitErrorMessage");function Cd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Eo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Eo().swap,action:"confirm-swap",disabled:!0}:s?{title:Eo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Eo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Eo().swap,action:"confirm-swap",disabled:!1}:{title:Eo().connectWallet,action:"connect-wallet",disabled:!1}}i(Cd,"getSwapButtonState");function xs(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(de))&&e&&e!=="0"&&n!==0)}i(xs,"canComputePriceImpact");function Es(t,e){let o=de;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 He(r.amount).multipliedBy(a||0))}return o}i(Es,"getUsdFeeOfStep");function hi(t,e){return t.reduce((o,n)=>o.plus(Es(n,e)),de)}i(hi,"getTotalFeeInUsd");function Is(t){let e=de,o=new He(t.price||0);return e=e.plus(new He(t.amount).multipliedBy(o)),e}i(Is,"getUsdFee");function Td(t){return t.reduce((e,o)=>e.plus(Is(o)),de)}i(Td,"getTotalFeesInUsd");function kd(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(kd,"getFeesGroup");function vd(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(vd,"checkSlippageErrors");function fd(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(fd,"checkSlippageWarnings");function yi(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(yi,"getMinRequiredSlippage");function gd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(gd,"hasProperSlippage");function wd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:f,affiliateWallets:h,destination:g,contractCall:m}=t,d=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),y=[];return r?.forEach(S=>{y.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:f??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:y,selectedWallets:d??{},slippage:p.toString(),contractCall:m,...g&&{destination:g},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(wd,"createQuoteRequestBody");function bd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(bd,"getWalletsForNewSwap");function jn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(jn,"getUsdInputFrom");function yt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(yt,"getUsdOutputFrom");function bs(t,e){return new He(e).div(new He(t)).minus(1).multipliedBy(td).toNumber()}i(bs,"getPercentageChange");function hd(t,e){let o=jn(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=bs(n.toString(),r.toString());return ad.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(hd,"isOutputAmountChangedExcessively");function xd(t,e,o){let n=t.validationStatus,r=ko({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>ld(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=_(new He(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=_(new He(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=vt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=vt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=vt.t(" for input and network fee")),vt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:ft(s.asset.blockchain,o)}})})}i(xd,"generateBalanceWarnings");function Xn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Si.NetworkChanged}i(Xn,"isNetworkStatusInWarningState");function Ed(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),Xn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?ek(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case Si.WaitingForConnectingWallet:r=u?vt.t("Connect {wallet}",{wallet:u}):r;break;case Si.WaitingForQueue:r=r||vt.t("Waiting for other running tasks to be finished");break;case Si.WaitingForNetworkChange:r=r||vt.t("Waiting for changing wallet network");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Ed,"getSwapMessages");function Id(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(Id,"getLastConvertedTokenInFailedSwap");function Ad(t){return t.status==="failed"}i(Ad,"shouldRetrySwap");function Nd(t,e,o,n,r,a){if(!n||t)return!0;let s=ko({filter:"all",quote:n}),c=ko({filter:"required",quote:n}),l=s.every(f=>r.some(h=>h.chain===f)),p=c.every(f=>r.some(h=>h.chain===f)),u=o&&a?Qo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Nd,"isConfirmSwapDisabled");function Bd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Bd,"isTokensIdentical");var Ci=i((t,e)=>t?.usdPrice?new et(e||de).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Zo(tk()(ok(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new et(0),outputUsdValue:new et(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=de,a=o.inputUsdValue;return Mn(o.inputAmount)?(e&&(n=e?.outputAmount?new et(e?.outputAmount):null,a=jn(e)??de,r=yt(e)??de),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new et(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new et(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new et(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:Ci(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 et(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=Vp(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Gr(e)||(o=Fp(o),o=Op(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new et(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ci(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Ci(n??null,s),outputUsdValue:new et(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?Ci(e.toToken,e.outputAmount?.toString()||""):new et(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new et(0),inputUsdValue:new et(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new et(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})})))),Wd=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Te.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&&Te.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 Ld(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=O(),u=T().config,f=T().fetchStatus,h=T().blockchains(),{findToken:g}=T(),{setAffiliateRef:m,setAffiliatePercent:d,setAffiliateWallets:y}=T(),C=u?.from?.tokens,S=u?.from?.blockchains,k=u?.to?.tokens,v=u?.to?.blockchains,x=Ti(void 0),I=Ti(void 0),A=Ti(void 0),E=Ti(void 0);un(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),un(()=>{if(f==="success"){r();let b=h.find(P=>P.name===u?.from?.blockchain),w=u?.from?.token,B=w&&g(w);(b||!b&&A.current)&&n(b??null),B?a({token:B,meta:{blockchains:h}}):!B&&x.current&&a({token:null}),A.current=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,f]),un(()=>{Za(s,C)&&a({token:null}),Ja(l,S)&&n(null)},[C,S]),un(()=>{Za(c,k)&&a({token:null}),Ja(p,v)&&o(null)},[k,v]),un(()=>{if(f==="success"){r();let b=h.find(P=>P.name===u?.to?.blockchain),w=u?.to?.token,B=w&&g(w);(b||!b&&E.current)&&o(b??null),B?e({token:B,meta:{blockchains:h}}):!B&&I.current&&e({token:null}),E.current=u?.to?.blockchain,I.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,f]),un(()=>{m(u?.affiliate?.ref??null),d(u?.affiliate?.percent??null),y(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Ld,"useSyncStoresWithConfig");import{useEffect as Bs,useRef as nk}from"react";import{useInRouterContext as rk,useLocation as ik,useSearchParams as ak}from"react-router-dom";function As(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(As,"convertTokenSearchParamToAsset");function Ns(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Ns,"tokenToSearchParam");function Ls(){let t=ik(),[e,o]=ak(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:f,setInputAmount:h}=O(),g=T().fetchStatus,m=T().blockchains(),d=rk(),{updateIframe:y,updateCampaignMode:C}=T(),S=T().isInCampaignMode(),k=nk(),{findToken:v}=T(),x=i(()=>{let A={};for(let[L,ae]of e.entries())L.startsWith("utm_")&&(A[L]=ae);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),w=e.get("fromToken"),B=e.get("toBlockchain"),P=e.get("toToken"),$=e.get("autoConnect"),q=e.get("clientUrl"),J=e.get("liquiditySources"),K=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:w,toBlockchain:B,toToken:P,autoConnect:$,clientUrl:q,liquiditySources:J,utmQueryParams:A,blockchain:K}},"getUrlSearchParams"),I=i(A=>{for(let E in A)A[E]||delete A[E];o(A,{replace:!0})},"updateUrlSearchParams");Bs(()=>{let{autoConnect:A,clientUrl:E,utmQueryParams:b,blockchain:w}=x();d&&g==="success"&&I({fromBlockchain:n?.name,fromToken:Ns(a),toBlockchain:r?.name,toToken:Ns(s),fromAmount:c,autoConnect:A??void 0,clientUrl:E??void 0,blockchain:w??void 0,liquiditySources:S?k.current:void 0,...b})},[t.pathname,c,n,a,r,s,S,g]),Bs(()=>{if(!d)return;let A=x();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&h(A.fromAmount),g==="success"){let E=m.find(P=>P.name===A.fromBlockchain),b=A.fromToken&&E?v(As(A.fromToken,E)):void 0,w=m.find(P=>P.name===A.toBlockchain),B=A.toToken&&w?v(As(A.toToken,w)):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:m}})),w&&(p(w),B&&f({token:B,meta:{blockchains:m}}))}},[g]),Bs(()=>{let{clientUrl:A,liquiditySources:E}=x();y("clientUrl",A||void 0),C("liquiditySources",E?.split(",")??void 0)},[])}i(Ls,"useSyncUrlAndStore");import{i18n as hn}from"@lingui/core";import{Alert as Iv,Button as Av,darkTheme as Nv,Divider as cl,DoneIcon as Bv,styled as Wv,TextField as Lv,Typography as Mv}from"@rango-dev/ui";import Ve,{useState as Pv}from"react";import{useNavigate as _v,useSearchParams as Dv}from"react-router-dom";import{ChevronRightIcon as sk,Divider as $d,Image as lk,Typography as Fd}from"@rango-dev/ui";import wt from"react";import{darkTheme as Md,styled as Ms}from"@rango-dev/ui";var Pd=Ms("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Md} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Md} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),_d=Ms("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Dd=Ms("div",{display:"flex"});function Ps(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return wt.createElement(_d,null,wt.createElement(Fd,{size:"large",variant:"label"},n),wt.createElement($d,{size:10}),wt.createElement(Pd,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},wt.createElement(Dd,null,r&&wt.createElement(wt.Fragment,null,wt.createElement(lk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),wt.createElement($d,{size:4,direction:"horizontal"})),wt.createElement(Fd,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),wt.createElement(sk,{size:12,color:"black"})))}i(Ps,"BlockchainSelectorButton");import{i18n as Os}from"@lingui/core";import{Button as dk,Divider as Qd,MessageBox as mk}from"@rango-dev/ui";import oo,{useEffect as qd,useState as Us}from"react";import{i18n as ki}from"@lingui/core";import{Divider as Io,ExternalLinkIcon as pk,Image as uk,Typography as mn}from"@rango-dev/ui";import ve from"react";var Od="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Ud(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Ud,"generateExplorerLink");import{Button as ck,darkTheme as dn,styled as _s}from"@rango-dev/ui";var Ds=_s("a",{textDecoration:"none",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),zd=_s("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${dn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}}}),$s=_s(ck,{minHeight:"$40"});function Fs(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=Ud(n.address,s),l=i(()=>window.open(Od,"_blank"),"onClickLearnMore");return ve.createElement(Z,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},ve.createElement(zd,null,ve.createElement(uk,{src:n.image===""?Ur:n.image,size:45,type:"circular"}),ve.createElement(Io,{size:4}),ve.createElement(mn,{variant:"title",size:"medium"},n.symbol),ve.createElement(mn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ve.createElement(Io,{size:4}),ve.createElement(mn,{variant:"body",size:"medium"},c?ve.createElement(Ds,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,ve.createElement(pk,{size:12,color:"gray"})):ve.createElement(Ds,null,n.address)),ve.createElement(Io,{size:4}),n.coinSource&&ve.createElement(mn,{className:"_coin-source",variant:"body",size:"xsmall"},ki.t("via")," ",ve.createElement(mn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ve.createElement(Io,{size:"32"}),ve.createElement(mn,{size:"medium",variant:"body",className:"_custom-token-description"},ki.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),ve.createElement(Io,{size:40}),ve.createElement(Io,{size:10}),ve.createElement($s,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},ki.t("Import Anyway")),ve.createElement(Io,{size:10}),ve.createElement($s,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},ki.t("Learn More")))}i(Fs,"CustomTokenModal");function Yn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=T(),[f,h]=Us(!1),[g,m]=Us(!1),[d,y]=Us(!1),C=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),h(!1)},"closeErrorModal"),k=i(()=>{y(!0),S()},"handleErrorModalButtonClick"),v=i(()=>{d&&n?.type==="network-error"&&(y(!1),C()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return qd(()=>{n&&h(!0)},[n]),qd(()=>{o&&e&&m(!0)},[o,e]),oo.createElement(oo.Fragment,null,oo.createElement(Z,{open:f,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:v,container:N()},oo.createElement(mk,{title:n?.title??"",type:"error",description:n?.message||Os.t("Failed Network, Please retry.")},oo.createElement(Qd,{size:40}),oo.createElement(Qd,{size:10}),oo.createElement(dk,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?Os.t("Retry"):Os.t("Add another custom token")))),o&&e&&oo.createElement(Fs,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>m(!1),open:g,onExit:p}))}i(Yn,"ImportCustomToken");import{useManager as kv}from"@rango-dev/queue-manager-react";import{BottomLogo as vv,Divider as km,Header as wv}from"@rango-dev/ui";import Ne,{useEffect as Bi,useLayoutEffect as bv,useRef as vm,useState as wm}from"react";import{useRef as fk}from"react";function Zn(){return window.self!==window.top}i(Zn,"isAppLoadedIntoIframe");function zs(){let t=fk(null),{iframe:e}=T(),o=Zn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(zs,"useIframe");import{useNavigate as gk}from"react-router-dom";function Ge(){let t=gk();return()=>t(-1)}i(Ge,"useNavigateBack");import{useLayoutEffect as hk,useState as Jn}from"react";var Hd=480,Gd=768,Vd=1024,Kd=1200,yk=i(()=>{let[t,e]=Jn(!1),[o,n]=Jn(!1),[r,a]=Jn(!1),[s,c]=Jn(!1),[l,p]=Jn(!1),u=i(()=>{e(window.innerWidth<=Hd),n(window.innerWidth>Hd&&window.innerWidth<=Gd),a(window.innerWidth>Gd&&window.innerWidth<=Vd),c(window.innerWidth>Vd&&window.innerWidth<=Kd),p(window.innerWidth>Kd)},"handleResize");return hk(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),fn=yk;import{createTheme as js,darkTheme as Bk,lightTheme as Wk}from"@rango-dev/ui";import{useEffect as Lk,useState as Mk}from"react";import{theme as Ak,darkColors as Nk}from"@rango-dev/ui";import Vs from"react";var vi=16,wi=255,jd=.11;function Sk(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Sk,"expandShortHexColor");function Ck(t,e){return t.padStart(e,"0")}i(Ck,"pad");function Qs(t){let e=Math.min(Math.max(Math.round(t),0),wi);return Ck(e.toString(vi),2)}i(Qs,"intToHex");function Tk(t){return`#${Qs(t.red)}${Qs(t.green)}${Qs(t.blue)}`}i(Tk,"rgbToHex");function kk(t){let e=parseInt(t.slice(1,3),vi),o=parseInt(t.slice(3,5),vi),n=parseInt(t.slice(5,7),vi);return{red:e,green:o,blue:n}}i(kk,"hexToRGB");function vk(t,e){let o=1-jd*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(vk,"generateShade");function wk(t,e){let o=jd*e;return{red:t.red+(wi-t.red)*o,green:t.green+(wi-t.green)*o,blue:t.blue+(wi-t.blue)*o}}i(wk,"generateTint");function bk(t){return Xd(t,vk)}i(bk,"calculateShades");function xk(t){return Xd(t,wk)}i(xk,"calculateTints");function Xd(t,e){let o=kk(t),n=[];for(let r=1;r<9;r++)n.push(Tk(e(o,r)));return n}i(Xd,"calculateColors");function qs(t,e,o){let a=xk(t).reverse().concat(t),s=bk(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let f=100+(o?p-1-u:u)*50;l[`${e}${f}`]=c[u]}return l}i(qs,"createTintsAndShades");function Hs(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)&&!Hp(r)){let l=Sk(a);Object.assign(n,qs(l,r,s))}}return{...n,...e}}i(Hs,"expandToGenerateThemeColors");var Yd=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ek=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Yd(o%52)+e;return Yd(o%52)+e},"toAlphabeticName"),Ik=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Gs=i(t=>Ek(Ik(5381,JSON.stringify(t))>>>0),"toHash");function Ks(t){let e=Ak.colors,o={...e,...Nk},n,r;if(t?.light){let s={colors:Hs(e,t.light)};n={id:`${Ya}-light-${Gs(s)}`,tokens:s}}if(t?.dark){let s={colors:Hs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Ya}-dark-${Gs(s)}`,tokens:s}}return{light:n,dark:r}}i(Ks,"customizedThemeTokens");function Zd(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Vs.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Vs.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(Vs.cloneElement(e,{key:c}))}}),o}i(Zd,"joinList");function Jd(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Jd,"doesWindowPreferDarkColorScheme");function no(t){let{colors:e,fontFamily:o=Ap,borderRadius:n=ru,secondaryBorderRadius:r=iu}=t,[a,s]=Mk(Jd()?"dark":"light"),{theme:c}=T(),{dark:l,light:p}=Ks(e),u=js({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[u.className,Wk.className],h=[u.className,Bk.className];if(p){let m=js(p.id,p.tokens);f.push(m.className)}if(l){let m=js(l.id,l.tokens);h.push(m.className)}return Lk(()=>{let m=i(d=>{d.matches?s("dark"):s("light")},"switchThemeListener");return Jd()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",m),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",m)}},[]),{activeTheme:i(()=>{let m=f.join(" "),d=h.join(" ");return c==="auto"?a==="dark"?d:m:c==="dark"?d:m},"getActiveTheme"),mode:c==="auto"?a:c}}i(no,"useTheme");var St=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 Rd}from"@lingui/core";import{Alert as Pk,Button as _k}from"@rango-dev/ui";import em from"react";function Xs(t){return em.createElement(Pk,{action:em.createElement(_k,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Rd.t("Activate this tab")),type:"warning",variant:"alarm",title:Rd.t("Another tab is open and handles transactions.")})}i(Xs,"ActivateTabAlert");import{i18n as Ys}from"@lingui/core";import{Button as Dk,Divider as $k,MessageBox as Fk}from"@rango-dev/ui";import bi from"react";function Zs(t){let{open:e,onClose:o,onConfirm:n}=t;return bi.createElement(Z,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},bi.createElement(Fk,{title:Ys.t("Activate current tab"),type:"warning",description:Ys.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.")},bi.createElement($k,{size:20}),bi.createElement(Dk,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Ys.t("Confirm"))))}i(Zs,"ActivateTabModal");import{ChevronLeftIcon as zk}from"@rango-dev/ui";import lm from"react";import{css as Ok,darkTheme as tm,IconButton as Uk,styled as Ao}from"@rango-dev/ui";var Lt=Ao(Uk,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${tm} &`]:{backgroundColor:"$neutral"}}}),om=Ao("div",{position:"absolute",background:"$secondary500",[`.${tm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ro=Ao("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),nm=Ao("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),rm=Ao("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),im=Ao("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),am=Ok({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),sm=Ao("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Js(t){return lm.createElement(Lt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},lm.createElement(zk,{color:"black",size:16}))}i(Js,"BackButton");import{i18n as Qk}from"@lingui/core";import{Button as qk,Typography as Hk}from"@rango-dev/ui";import Rs from"react";function el(t){return Rs.createElement(ro,null,Rs.createElement(qk,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},Rs.createElement(Hk,{variant:"label",size:"medium",color:"error500"},Qk.t("Cancel"))))}i(el,"CancelButton");import{i18n as Gk}from"@lingui/core";import{Image as Vk,Tooltip as Kk,WalletIcon as jk}from"@rango-dev/ui";import No from"react";function tl(t){let{list:e}=Tt(),o=e.filter(r=>r.state==="connected"),n=o.length?No.createElement("div",{className:am()},o.map(r=>No.createElement(sm,{key:r.title},No.createElement(Vk,{src:r.image,size:14})))):Gk.t("Connect Wallet");return No.createElement(Kk,{container:t.container,side:"bottom",content:n},No.createElement(Lt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&No.createElement(om,null),No.createElement(jk,{size:18,color:"black"})))}i(tl,"WalletButton");import{i18n as Ei}from"@lingui/core";import{NotificationsIcon as pv,Popover as uv,SettingsIcon as dv,Tooltip as Ii,TransactionIcon as mv}from"@rango-dev/ui";import Pe from"react";import{Notifications as Jk}from"@rango-dev/ui";import Rk from"react";import{useNavigate as ev}from"react-router-dom";import{create as Xk}from"zustand";import{persist as Yk,subscribeWithSelector as Zk}from"zustand/middleware";var Ae=Zo(Xk()(Yk(Zk((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}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function ol(){let t=ev(),{getNotifications:e,clearNotifications:o}=Ae(),n=e(),r=T().blockchains(),{findToken:a}=T();return Rk.createElement(Jk,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Cp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(ol,"NotificationContent");import{useManager as tv}from"@rango-dev/queue-manager-react";import{InProgressIcon as ov}from"@rango-dev/ui";import cm from"react";var nv=i(()=>{let{manager:t}=tv();return St(t).map(({swap:o})=>o).find(o=>o.status==="running")?cm.createElement(im,{id:"widget-header-history-badge-container"},cm.createElement(ov,{color:"info",size:6})):null},"InProgressTransactionBadge"),pm=nv;import{EventSeverity as rv}from"@rango-dev/queue-manager-rango-preset";import{Typography as iv}from"@rango-dev/ui";import um from"react";function dm(){let{getNotifications:t}=Ae(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===rv.WARNING);return o?um.createElement(nm,{isSever:n},um.createElement(iv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(dm,"NotificationsBadge");import{RefreshProgressButton as av}from"@rango-dev/ui";import nl,{useEffect as sv,useState as mm}from"react";var lv=1e3,fm=60,cv=100;function xi({onClick:t}){let[e,o]=mm(0),[n,r]=mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");sv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===fm&&c()},lv):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return nl.createElement(Lt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},nl.createElement(rm,{onTransitionEnd:()=>r(!1),isRefetched:n},nl.createElement(av,{size:22,color:t?"black":"gray",progress:e/fm*cv})))}i(xi,"RefreshButton");function Bo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=T(),c=Re("notification",s)||r.includes("notifications");return Pe.createElement(Pe.Fragment,null,!r.includes("refresh")&&Pe.createElement(Ii,{container:a||N(),side:"top",content:Ei.t("Refresh")},Pe.createElement(xi,{onClick:e})),!c&&Pe.createElement(uv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Pe.createElement(ol,null)},Pe.createElement("div",null,Pe.createElement(Ii,{container:N(),side:"top",content:Ei.t("Notifications")},Pe.createElement(Lt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Pe.createElement(pv,{size:18,color:"black"}),Pe.createElement(dm,null))))),!r.includes("settings")&&Pe.createElement(Ii,{container:N(),side:"top",content:Ei.t("Settings")},Pe.createElement(Lt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Pe.createElement(dv,{size:18,color:"black"}))),!r.includes("history")&&Pe.createElement(Ii,{container:N(),side:"top",content:Ei.t("History")},Pe.createElement(Lt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Pe.createElement(mv,{size:18,color:"black"}),Pe.createElement(pm,null))))}i(Bo,"HeaderButtons");import{i18n as rl}from"@lingui/core";import{Divider as hm,MessageBox as hv,RefreshIcon as yv}from"@rango-dev/ui";import gn from"react";import{Button as fv,styled as gv}from"@rango-dev/ui";var gm=gv(fv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function il(t){let{open:e,onClose:o}=t;return gn.createElement(Z,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},gn.createElement(hv,{title:rl.t("Something went wrong"),type:"error",description:rl.t("Something went wrong. Please refresh the app.")},gn.createElement(hm,{size:30}),gn.createElement(gm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},gn.createElement(yv,{size:20,color:"primary"}),gn.createElement(hm,{size:4,direction:"horizontal"}),rl.t("Refresh"))))}i(il,"RefreshModal");function al(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(al,"onScrollContentAttachStatusToContainer");import{css as Cv,styled as Ai}from"@rango-dev/ui";var Ni=Cv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),ym=Ai("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Sm=Ai("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Cm=Ai("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"}}}),Tm=Ai("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=zs(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=T(),[u,f]=wm(!1),{config:{features:h,theme:g}}=T(),{watermark:m,setShowCompactTokenSelector:d}=te(),y=m==="FULL",{activeTheme:C}=no(g||{}),[S,k]=wm(!1),v=Re("connectWalletButton",h),{isActiveTab:x,tabManagerInitiated:I,showActivateTabModal:A,setShowActivateTabModal:E,activateCurrentTab:b}=te(),w=Ge(),{manager:B}=kv(),{isTablet:P,isMobile:$}=fn(),J=St(B).map(({swap:ee})=>ee).some(ee=>ee.status==="running"),K=i(()=>b(wo.forceClaim,J),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),ae=typeof r.hasBackButton>"u"||r.hasBackButton,re=vm(null),Q=vm(null);return Bi(()=>{let ee=(p?.swapBoxBanner?.routes?.length??0)===0,le=!!p?.swapBoxBanner?.routes?.some(ue=>location.pathname.endsWith(ue));k(!!p?.swapBoxBanner&&(ee||le))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Bi(()=>(Zn()&&Q.current&&e(Q.current),()=>{o()}),[]),Bi(()=>(re.current?.addEventListener("scroll",al),()=>{re.current?.removeEventListener("scroll",al)}),[]),Bi(()=>{f(c==="failed")},[c]),bv(()=>{let ee=s==="auto"||!Q.current||Zn(),le=$||P,ue=i(()=>{ee||(le?Q.current.style.height=`${window.innerHeight-Q.current.offsetTop}px`:Q.current.style.height=`${700}px`,d(parseFloat(Q.current.style.height)<640))},"handler");return ue(),window.addEventListener("resize",ue),()=>window.removeEventListener("resize",ue)},[s,$,P]),Ne.createElement(ym,{height:s,id:Qe.SWAP_BOX_ID,className:`${C()} ${Ni()}`,ref:Q,showBanner:S},Ne.createElement(wv,{prefix:ae?Ne.createElement(Js,{onClick:()=>{w(),r.onBack?.()}}):null,title:r.title,suffix:Ne.createElement(Ne.Fragment,null,r.suffix,r.onWallet&&!v&&Ne.createElement(tl,{container:N(),onClick:L,isConnected:!!l?.length}),r.onCancel&&Ne.createElement(el,{onClick:r.onCancel}))}),Ne.createElement(Sm,{ref:re},n),Ne.createElement(Zs,{open:A,onClose:()=>E(!1),onConfirm:K}),Ne.createElement(Cm,null,Ne.createElement("div",{className:"footer__content"},I&&!x&&Ne.createElement("div",{className:"footer__alert"},Ne.createElement(Xs,{onActivateTab:K}),Ne.createElement(km,{size:10})),a),Ne.createElement(km,{size:12}),Ne.createElement("div",{className:`footer__logo ${y?"logo__show":"logo__hidden"}`},Ne.createElement(vv,null))),S&&Ne.createElement(Tm,null,p?.swapBoxBanner?.element),Ne.createElement(il,{open:u,onClose:()=>f(!1)}))}i(ie,"Layout");import{styled as xv}from"@rango-dev/ui";var bm="$20 $20 $10 $20",sl=xv("div",{padding:bm,overflowY:"auto",flexGrow:1});import{styled as Ev}from"@rango-dev/ui";var ce=Ev("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 io}from"@lingui/core";import{useState as ll}from"react";function xm(){let[t,e]=ll(!1),[o,n]=ll(null),[r,a]=ll(null),{findToken:s}=T(),c=T().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(f,h){switch(f){case"duplicated":return{type:f,title:io.t("Duplicate Token"),message:io.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:f,title:io.t("Token Already Exists"),message:io.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:f,title:io.t("Token Not Found"),message:io.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:h}})};case"network-error":return{type:f,title:io.t("Network error"),message:io.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:f,tokenAddress:h})=>{e(!0);try{if(c.some(C=>C.address?.toLowerCase()===h.toLowerCase())){let C=p("duplicated");n(C);return}let m=await at().getCustomToken({blockchain:f,address:h});if(!m||!m.token||m.error){let C=p("not-found",f);n(C);return}let d=m.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let C=p("token-exist");n(C);return}return a({...d,warning:!0})}catch(g){if(g.code==="ERR_BAD_REQUEST"){let m=p("not-found",f);n(m);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(xm,"useFetchCustomToken");var $v=Wv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Nv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Em(){let t=_v(),[e]=Dv(),o=Ge(),n=T().blockchains(),r=e.get("blockchain")||"",a=So(r,n),[s,c]=Pv(""),{fetchCustomToken:l,token:p,loading:u,error:f,resetState:h}=xm(),g=!!a&&Qo(a,s),m=!a||!s||!g,d=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ve.createElement(ie,{header:{title:hn.t("Add Custom Token")}},Ve.createElement(ce,null,Ve.createElement($v,null,Ve.createElement("div",null,Ve.createElement(Ps,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:hn.t("Select chain"),placeholder:hn.t("Select chain")}),Ve.createElement(cl,{size:"24"}),Ve.createElement(Mv,{size:"large",variant:"label"},hn.t("Enter Address")),Ve.createElement(cl,{size:10}),Ve.createElement(Lv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:hn.t("Enter token address"),size:"large",value:s,suffix:!!s&&g&&Ve.createElement(Bv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!g&&!!s&&Ve.createElement(Ve.Fragment,null,Ve.createElement(cl,{size:4}),Ve.createElement(Iv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ve.createElement(Av,{id:"widget-add-custom-token-import-btn",disabled:m,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},hn.t("Import"))),Ve.createElement(Yn,{token:p,blockchain:a??void 0,address:s,error:f??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{f?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:h,onExitImportModal:h})))}i(Em,"AddCustomTokenPage");import{i18n as Ul}from"@lingui/core";import{useManager as kb}from"@rango-dev/queue-manager-react";import{Alert as vb,Button as wb,css as Ql,Divider as zl,IconButton as hg,styled as bb,Typography as xb,WalletIcon as Eb}from"@rango-dev/ui";import De,{useEffect as oa,useLayoutEffect as Ib,useRef as Ab,useState as dr}from"react";import{useNavigate as Nb}from"react-router-dom";import{i18n as Wo}from"@lingui/core";import{Alert as cw,BalanceErrors as pw,Button as Jm,ChevronLeftIcon as uw,Divider as yl,MessageBox as dw,Typography as Sl}from"@rango-dev/ui";import ne,{useCallback as mw,useEffect as Rm,useMemo as fw,useState as Cn}from"react";import{useNavigate as gw}from"react-router-dom";import{i18n as ml}from"@lingui/core";import{Alert as Qv,ChevronDownIcon as qv,CloseIcon as Hv,Divider as Mm,IconButton as Pm,PasteIcon as Gv,Typography as Vv,WalletIcon as Kv}from"@rango-dev/ui";import _e,{useEffect as jv,useRef as Xv}from"react";import Pi,{useRef as Uv}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Im,styled as Wi}from"@rango-dev/ui";var pl=300,Fv=Im({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ov=Im({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Am=Wi(yn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ul=Wi(yn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Li=Wi(yn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Fv} ${pl}ms ease-out`},false:{animation:`${Ov} ${pl}ms ease-out`}}}}),Mi=Wi("div",{transition:`all ${pl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function _i(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Uv(null);return Pi.createElement(Am,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&Pi.createElement(ul,{className:"collapsible_trigger",onClick:a},s),Pi.createElement(Li,{className:"collapsible_content",open:e},r),c==="bottom"&&Pi.createElement(ul,{className:"collapsible_trigger",onClick:a},s))}i(_i,"CustomCollapsible");import{darkTheme as Nm,styled as dl,TextField as zv}from"@rango-dev/ui";var Bm=dl("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Wm=dl(zv,{backgroundColor:"$neutral100",padding:"$15"}),Lm=dl("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 _m(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=T(),c=T().blockchains(),l=$r(e.name,c),p=Xv(null),u=s?.defaultCustomDestinations?.[e.name],f=navigator?.userAgent.includes("Firefox"),g=n&&!!r&&e&&!Qo(e,r),m=i(()=>{a("")},"handleClear"),d=i(async C=>{if(C.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),p?.current?.focus()}},"handlePaste"),y=i(()=>r?_e.createElement(Pm,{id:"widget-custom-destination-close-icon-btn",onClick:m,variant:"ghost"},_e.createElement(Hv,{size:12,color:"gray"})):f?null:_e.createElement(Pm,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},_e.createElement(Gv,{size:16})),"renderSuffix");return jv(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),_e.createElement(Bm,null,_e.createElement(_i,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:_e.createElement(Lm,{id:"widget-custom-destination-collapsible-btn"},_e.createElement("div",{className:"button__content"},_e.createElement(Kv,{size:18,color:"info"}),_e.createElement(Mm,{size:4,direction:"horizontal"}),_e.createElement(Vv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},ml.t("Send to a different address"))),_e.createElement(Mi,{orientation:n?"up":"down"},_e.createElement(qv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},_e.createElement(Wm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:ml.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:y(),onChange:C=>{let S=C.target.value;a(S)}})),g&&_e.createElement(_e.Fragment,null,_e.createElement(Mm,{size:4}),_e.createElement(Qv,{variant:"alarm",type:"error",title:ml.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(_m,"CustomDestination");import{css as Yv,IconButton as Zv,SelectableWalletButton as Jv,styled as ao}from"@rango-dev/ui";var Dm=ao("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),$m=ao("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Fm=ao(Jv,{justifyContent:"center"}),Om=ao("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Um=ao(Zv,{position:"absolute",left:"$20"}),zm=ao("div",{paddingTop:"$20"}),Qm=Yv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),qm=ao("div",{display:"flex"}),Hm=ao("div",{overflow:"visible",width:"100%"});import{i18n as gl}from"@lingui/core";import{warn as nw}from"@rango-dev/logging-core";import{Divider as rw,makeInfo as iw,SelectableWallet as aw,Typography as Ym,WalletState as Di}from"@rango-dev/ui";import tt,{useEffect as Zm,useState as tr}from"react";import{Image as tw,MessageBox as ow}from"@rango-dev/ui";import er from"react";import{keyframes as Rv,styled as fl}from"@rango-dev/ui";var Gm=fl("div",{position:"relative"}),ew=Rv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Vm=fl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ew} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Km=fl("div",{"& img":{borderRadius:"50%"}});import{i18n as Sn}from"@lingui/core";function jm(t,e){switch(t){case"in-progress":return{type:"loading",title:Sn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Sn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Sn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Sn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Sn.t("Request Rejected"),description:Sn.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(jm,"generateMessageByStatus");function Xm(t){let{status:e,displayName:o,image:n}=t,r=jm(e,o),a=e=="in-progress";return er.createElement(ow,{type:r.type,title:r.title,description:r.description,icon:a?er.createElement(Gm,null,er.createElement(Km,null,er.createElement(tw,{src:n,size:45})),er.createElement(Vm,null)):void 0})}i(Xm,"ExperimentalChainStatus");var sw=7,lw=3e3;function hl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=te.use.isActiveTab(),{blockchains:l,connectedWallets:p}=T(),[u,f]=tr(),[h,g]=tr(null),[m,d]=tr(!1),[y,C]=tr(null),{suggestAndConnect:S}=$i(),{list:k}=Tt({chain:e}),[v,x]=tr(k),I=k.length,A=a&&I-a>0,E=i(async w=>{d(!1),C("in-progress");try{await S(w.walletType,w.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");Zm(()=>{x(w=>{let B=k.findIndex(P=>n(P.type,e));return A&&B>1?[k[B]].concat(k.filter((P,$)=>$!==B)):w.map(P=>k.find($=>$.type===P.type)??P)})},[JSON.stringify(k)]);let b=document.getElementById(Qe.SWAP_BOX_ID);return Zm(()=>{let w=null;return(y==="completed"||y==="rejected")&&(w=setTimeout(()=>C(null),lw)),()=>{w&&clearTimeout(w)}},[y]),tt.createElement(tt.Fragment,null,v.slice(0,a).map(w=>{let B=Jp({connectedWallets:p,walletType:w.type,chain:e}),P=w.state===Di.CONNECTED,$=B?Go(B,sw):"",q=P&&!!w.needsNamespace&&!$,J=Xr(l(),e),K=!p.find(ue=>ue.walletType===w.type&&ue.chain===e),L=J&&K&&w.state===Di.CONNECTED,ae=i(async()=>{w.state===Di.DISCONNECTED||q?f(w):L?(g({walletType:w.type,chain:e,address:B??""}),d(!0)):r({walletType:w.type,chain:e,address:B??""})},"onSelectableWalletClick"),re=iw(w.state),Q=i(()=>L?gl.t({id:"Add {chain} chain",values:{chain:e}}):q?gl.t("Chain not connected"):$||re.description,"getWalletDescription"),ee=i(()=>w.state===Di.CONNECTED?q?"neutral600":"neutral700":re.color,"getWalletDescriptionColor"),le=h?.chain?$r(h.chain,l()):void 0;return tt.createElement(tt.Fragment,{key:`${w.title}_${le}`},!!h&&tt.createElement(Z,{id:"widget-wallets-list-watermarked-modal",open:!!h&&m,container:b,onClose:()=>{g(null)}},tt.createElement(Ts,{id:"widget-wallets-list-experimental-chain-container",displayName:le,onConfirm:()=>{E(h)}})),y&&tt.createElement(Z,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!y,onClose:C.bind(null,null),container:b},tt.createElement(Xm,{status:y,displayName:le,image:w.image}),tt.createElement(rw,{direction:"vertical",size:32})),tt.createElement(aw,{key:w.type,id:"widget-wallets-list-selectable-wallet-btn",description:Q(),descriptionColor:ee(),onClick:ae,selected:n(w.type,e),disabled:!c,...w}))}),tt.createElement(xo,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{f(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):nw(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&tt.createElement(Fm,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},tt.createElement(Ym,{variant:"label",size:"medium"},gl.t("Show more wallets"),tt.createElement(Ym,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(hl,"WalletList");var hw=2;function ef(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=gw(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:f,customDestination:h,setCustomDestination:g}=O(),{config:m,connectedWallets:d,setWalletsAsSelected:y}=T(),[C,S]=Cn(""),[k,v]=Cn([]),[x,I]=Cn(""),[A,E]=Cn(!!h),b=fw(()=>ko({filter:"all",quote:l}),[l]),w=ko({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),P=i(W=>w.includes(W),"isWalletRequiredFor"),$=mw(()=>d.filter(W=>W.selected&&b.includes(W.chain)),[d,b]),[q,J]=Cn($()),[K,L]=Cn([]),ae=i((W,G)=>L(j=>j.concat({blockchain:W,walletType:G})),"addNextSelectedWallets"),re=k.length>0,Q=i((W,G)=>!!q.find(j=>j.walletType===W&&j.chain===G&&j.selected&&(P(G)||!P(G)&&!h)),"isSelected"),ee=i((W,G,j)=>{let R=!1;return W.map(fe=>{if(fe.chain===G){let Ue=fe.selected;return!R&&j?(R=!0,Ue=!0):j||(Ue=!1),{...fe,selected:Ue}}return fe})},"updateSelectableWallets"),le=i(W=>{E(W),W?P(B?.name??"")||J(G=>ee(G,B?.name||"",!1)):(g(""),J(G=>ee(G,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ue=i(W=>{if(C&&S(""),Q(W.walletType,W.chain))return;let j=d.find(R=>R.walletType===W.walletType&&R.chain===W.chain);j&&(n(),W.chain===B?.name&&A&&!P(B.name)&&(E(!1),g(null)),J(R=>R.filter(fe=>fe.chain!==W.chain).concat({...j,selected:!0})))},"onChange"),se=i(()=>{let W=q.filter(G=>G.selected);y(W),p(W),f(!0),o()},"onConfirmBalance"),Ze=i(async()=>{v([]),I("");let W=await r?.({selectedWallets:q.filter(j=>j.selected),customDestination:h}),G=W.warnings;G?.balance?.messages&&v(G.balance.messages),W.error&&I(ed(W.error)),!W.error&&!G?.balance?.messages.length?se():v(G?.balance?.messages??[])},"onConfirmWallets");Rm(()=>{J(W=>{let G=[];return W.forEach(j=>{!d.some(fe=>fe.chain===j.chain&&fe.walletType===j.walletType&&fe.address===j.address)||G.push(j)}),G=G.concat(d.filter(j=>!!!G.find(fe=>fe.chain===j.chain)&&j.selected&&b.includes(j.chain))),G})},[d,b]),Rm(()=>{let W=[];K.length>0&&(K.forEach(G=>{let j=d.find(R=>R.chain===G.blockchain&&R.walletType===G.walletType);j?ue(j):W.push(G)}),L(W))},[d,K]);let H=document.getElementById(Qe.SWAP_BOX_ID);return ne.createElement(Z,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!C,container:H,...!C&&{styles:{container:{height:"100%"}},footer:ne.createElement(qm,null,ne.createElement(Jm,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Nd(a,A,h,l,q,B),onClick:Ze,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Wo.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:ne.createElement(Om,null,ne.createElement(Um,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},ne.createElement(uw,{size:16})),ne.createElement(Sl,{variant:"headline",size:"small"},Wo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ft(C,c)}})))},anchor:"center"},ne.createElement(Z,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:re,onClose:v.bind(null,[]),container:H},ne.createElement(dw,{title:Wo.t("Insufficient account balance"),type:"error",description:ne.createElement(pw,{messages:k??[]})},ne.createElement(Jm,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:se},Wo.t("Proceed anyway")))),C&&ne.createElement(zm,null,ne.createElement("div",{className:Qm()},ne.createElement(hl,{chain:C,quoteChains:b,isSelected:Q,selectWallet:ue,onShowMore:()=>S(C),onConnect:W=>{ae(C,W)}}))),!C&&ne.createElement(ne.Fragment,null,x&&ne.createElement(ne.Fragment,null,ne.createElement(cw,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Wo.t(x)}),ne.createElement(yl,{size:12})),ne.createElement(Hm,null,b.map((W,G)=>{let j=c.find(Je=>Je.name===W),R=`wallet-${G}`,fe=G===b.length-1,Ue=fe&&B&&m?.customDestination!==!1;return ne.createElement("div",{key:R},ne.createElement(Dm,null,ne.createElement(Sl,{variant:"title",size:"xmedium"},Wo.t({id:"Your {blockchainName} wallets",values:{blockchainName:j?.shortName}})),ne.createElement(Sl,{variant:"label",color:"$neutral700",size:"medium"},Wo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:j?.shortName}}))),ne.createElement(yl,{size:24}),ne.createElement($m,null,ne.createElement(hl,{chain:W,quoteChains:b,isSelected:Q,selectWallet:ue,limit:hw,onShowMore:()=>S(j?.name??""),onConnect:Je=>{ae(W,Je)}})),!fe&&ne.createElement(yl,{size:32}),Ue&&ne.createElement(_m,{blockchain:B,open:A,handleOpenChange:le}))}))))}i(ef,"ConfirmWalletsModal");import{i18n as $w}from"@lingui/core";import{Alert as Fw,Button as Ow,Divider as Tf,InfoIcon as Uw}from"@rango-dev/ui";import Fe from"react";import{Alert as Cw,Button as Tw,Divider as kl,NoRouteIcon as kw,RefreshIcon as vw,Typography as lf}from"@rango-dev/ui";import lt from"react";import{i18n as tf}from"@lingui/core";var yw=24,Sw=60;function of(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:tf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:tf.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(of,"makeInfo");var Cl=(o=>(o[o.small=yw]="small",o[o.large=Sw]="large",o))(Cl||{}),Tl=(o=>(o.small="small",o.large="medium",o))(Tl||{});import{styled as Fi}from"@rango-dev/ui";var nf=Fi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),rf=Fi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),af=Fi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),sf=Fi("div",{padding:"$6 $0"});function or(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=T().getDisabledLiquiditySources(),s=T().toggleAllLiquiditySources,c=T().swappers(),l=of(o,a,()=>s(c,!0),e);return r&&(l.alert=null),lt.createElement(nf,{id:"widget-no-result-container"},lt.createElement(kw,{size:Cl[n],color:"gray"}),lt.createElement(kl,{size:4}),lt.createElement(lf,{variant:"title",size:Tl[n]},oe().noResultError.title),n==="large"&&lt.createElement(kl,{size:4}),!!l.description&&lt.createElement(rf,{size:n},lt.createElement(lf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),lt.createElement(kl,{size:n==="large"?"24":"4"}),!!l.alert&&lt.createElement(af,{size:n},lt.createElement(Cw,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&lt.createElement(Tw,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:lt.createElement(sf,null,lt.createElement(vw,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(or,"NoResult");import{i18n as rr}from"@lingui/core";import{Button as xw,Divider as Ew,MessageBox as Iw,Typography as Aw,WarningIcon as Nw}from"@rango-dev/ui";import qt from"react";import{Typography as mf}from"@rango-dev/ui";import wl from"react";import{Button as ww,darkTheme as bw,styled as nr}from"@rango-dev/ui";var cf=nr("div",{width:"100%"}),vl=nr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),pf=nr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${bw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uf=nr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),df=nr(ww,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function ff(t){let{title:e,value:o,valueColor:n}=t;return wl.createElement(pf,null,wl.createElement(mf,{size:"medium",variant:"label",className:"_title"},e),wl.createElement(mf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(ff,"QuoteErrorsModalItem");function gf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:rr.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:rr.t("Gas cost"),value:_(r.totalFee,2,2)},{title:rr.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:rr.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return qt.createElement(Z,{id:"widget-high-value-loss-warning-modal",footer:qt.createElement(xw,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:qt.createElement(Nw,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},qt.createElement(Iw,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),qt.createElement(vl,null,qt.createElement(Ew,{size:"4"}),qt.createElement(Aw,{size:"small",variant:"title"},rr.t("Details")),qt.createElement(vl,null,c.map((l,p)=>qt.createElement(ff,{key:p,...l})))))}i(gf,"HighValueLossWarningModal");import{i18n as Tn}from"@lingui/core";function hf(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Tn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Tn.t("Increase")),o;if(t){switch(t.type){case 0:{Qt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title;break}case 4:{o.title=Tn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=oe().unknownPriceError.title;break}case 2:{o.title=Tn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Tn.t("Increase");break}case 3:{o.title=Tn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(hf,"makeAlerts");function yf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(yf,"getRequiredSlippage");import{i18n as kn}from"@lingui/core";import{Button as Bw,Divider as bl,MessageBox as Ww,WarningIcon as Lw}from"@rango-dev/ui";import co from"react";import{useNavigate as Mw}from"react-router-dom";function Sf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=Mw();return co.createElement(Z,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},co.createElement(Ww,{type:"warning",title:r.type===3?kn.t("High slippage"):kn.t("Low slippage"),description:r.type===3?kn.t("Caution, your slippage is high. Your trade may be front run."):kn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},co.createElement(bl,{size:18}),co.createElement(bl,{size:32}),co.createElement(df,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},co.createElement(Lw,{color:"white",size:16}),kn.t("Swap anyway")),co.createElement(bl,{size:10}),co.createElement(Bw,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},kn.t("Change Slippage"))))}i(Sf,"SlippageWarningModal");import{Button as Pw,MessageBox as _w,WarningIcon as Dw}from"@rango-dev/ui";import Oi from"react";function Cf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Oi.createElement(Z,{id:"widget-unknown-price-warning-modal",footer:Oi.createElement(Pw,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Oi.createElement(Dw,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Oi.createElement(_w,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Cf,"UnknownPriceWarningModal");function ir(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:f,onChangeSlippage:h}=t,g={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},m=o?.type===0||o?.type===1,d=hf(e,o?.type===3||o?.type===4?o:null);d&&!n&&(d.action=null);let y=!!d&&!s,C=i(S=>{if(S==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=yf(e,k);h?.(v)}else S==="change-settings"&&f()},"onclickActionButton");return Fe.createElement(Fe.Fragment,null,m&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Tf,{size:10}),Fe.createElement(or,{skipAlerts:s,error:o,fetch:c})),y&&Fe.createElement(cf,null,Fe.createElement(Tf,{size:10}),Fe.createElement(Fw,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Fe.createElement(uf,{onClick:l},Fe.createElement(Uw,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Fe.createElement(Ow,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>C(d.action)},d.actionButtonTitle||$w.t("Change"))}})),e&&Fe.createElement(Fe.Fragment,null,e.type===0&&Fe.createElement(gf,{...g,warning:e}),(e.type===3||e.type===2)&&Fe.createElement(Sf,{...g,warning:e}),e.type===1&&Fe.createElement(Cf,{...g,warning:e})))}i(ir,"QuoteWarningsAndErrors");import gb from"bignumber.js";import Ji from"react";import{i18n as Lo}from"@lingui/core";import{Alert as ob,Divider as wn,FullExpandedQuote as nb,InfoIcon as rb,NumericTooltip as jf,QuoteTag as ib,StepDetails as ab,TokenAmount as sb,Typography as bn}from"@rango-dev/ui";import Ml from"bignumber.js";import U,{useRef as lb,useState as cb}from"react";import{styled as xl}from"@rango-dev/ui";var El=xl("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),kf=xl("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),vf=xl("div",{width:"100%",display:"flex"});import*as Ui from"@radix-ui/react-collapsible";import{Button as zw,css as ar,darkTheme as Be,Image as wf,styled as Ke,Typography as Qw}from"@rango-dev/ui";var qw=300,bf=Ke(Ui.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),xf=ar({padding:"$10 $15"}),Ef=Ke(zw,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),If=Ke("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",[`.${Be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Be} &`]:{backgroundColor:"$neutral400"}}}}]}),Af=ar({width:"100%",padding:"$15 $15 $10 $15"}),Nf=ar({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),vn=ar({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Bf=ar({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wf=Ke(Ui.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:{[`& ${wf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${wf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Lf=Ke("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"}}}}),Mf=Ke(Li,{width:"100%",background:"inherit"}),Il=Ke("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${qw}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),aQ=Ke("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Pf=Ke("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),_f=Ke("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Al=Ke(Qw,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Df=Ke("div",{display:"flex",flexWrap:"wrap"}),Nl=Ke("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"}}}}),$f=Ke("div",{display:"flex"}),zi=Ke("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Be} &`]:{borderTopColor:"$neutral800"}});import{i18n as Mt}from"@lingui/core";import{ChevronDownIcon as Gw,CloseIcon as Vw,Divider as Hi,IconButton as Kw,NumericTooltip as jw,QuoteCost as Xw,Typography as bt}from"@rango-dev/ui";import X,{useState as zf}from"react";import{css as Hw,styled as Qi}from"@rango-dev/ui";var qi=Qi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Bl=Qi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Ff=Qi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Of=Qi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Uf=Hw({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Yw=i(t=>t.fee.isZero()?null:X.createElement(qi,null,X.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},t.label),X.createElement(bt,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Wl(t){let[e,o]=zf(!1),[n,r]=zf(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:f,fullExpandedMode:h=!1}=t,g=s?.swaps??[],m=h?To():N(),d=kd(g),y=_(c,2,2);return X.createElement(X.Fragment,null,X.createElement(Xw,{onClickFee:f?C=>{C.stopPropagation(),o(!e)}:void 0,fee:y,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:f?Mt.t("View more info"):void 0,tooltipContainer:m}),X.createElement(Z,{id:"widget-quote-cost-explanation-modal",container:m,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:X.createElement(Of,{style:{textAlign:h?"left":"center"}},X.createElement(bt,{variant:"title",size:"medium"},Mt.t("Gas & Fee Explanation")),X.createElement(Kw,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},X.createElement(Vw,{color:"gray",size:14}))),onClose:()=>{o(!1)}},X.createElement(Ff,null,X.createElement(bt,{variant:"title",size:"small"},Mt.t("Details")),X.createElement(Hi,{size:10}),Object.entries(d.payable).flatMap(([C,S])=>S.map((k,v)=>{let x=`payable-fee-${v}`,I=Is(k);return X.createElement(qi,{key:x},X.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},vs(C,Mt.t)),X.createElement(jw,{content:k.amount,container:m},X.createElement(bt,{variant:"label",size:"medium"},_(k.amount,2,2),k.asset.symbol," ($",_(I,4,4),")")))})),X.createElement(qi,{className:"total_payable_fee"},X.createElement(bt,{variant:"label",size:"medium"},Mt.t("Total Payable Fee")),X.createElement(bt,{variant:"label",size:"medium"},"$",_(c,4,4))),X.createElement(Bl,null),!!Object.keys(d.nonePayable).length&&X.createElement(_i,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:X.createElement("div",{className:Uf()},X.createElement(bt,{size:"small",variant:"body",color:"neutral700"},n?Mt.t("Hide non-payable fees"):Mt.t("Show non-payable fees")),X.createElement(Hi,{size:4,direction:"horizontal"}),X.createElement(Mi,{orientation:n?"up":"down"},X.createElement(Gw,{size:12,color:"gray"}))),open:n},X.createElement(bt,{size:"small",variant:"title"},Mt.t("Description")),X.createElement(Hi,{size:4}),X.createElement(bt,{size:"small",variant:"body",color:"neutral700"},Mt.t(`The following fees are considered in the transaction output and
2
- you won\u2019t need to pay extra gas for them.`)),X.createElement(Hi,{size:10}),Object.entries(d.nonePayable).map(([C,S],k)=>{let v=Td(S),x=vs(C,Mt.t),I=`non-payable-fee-${k}`;return X.createElement(Yw,{key:I,fee:v,label:x})}),X.createElement(Bl,null)))))}i(Wl,"QuoteCostDetails");import{i18n as Hf}from"@lingui/core";import{TokenAmount as Gf}from"@rango-dev/ui";import Gi from"react";import{css as Zw,styled as Jw}from"@rango-dev/ui";var Qf=Jw("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qf=Zw({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function sr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Gi.createElement(Qf,null,Gi.createElement(Gf,{direction:"horizontal",label:Hf.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Gi.createElement("div",{className:qf()}),Gi.createElement(Gf,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:Hf.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(sr,"QuoteSummary");import{i18n as Vf}from"@lingui/core";import{ChevronDownIcon as Rw,ChevronRightIcon as eb,Divider as Ll,Image as tb,Tooltip as Xi,Typography as Vi}from"@rango-dev/ui";import z from"react";var Ki=4,ji=6,lr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return z.createElement(Xi,{container:c,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(Lf,{className:n,state:a},z.createElement(tb,{src:o,size:16})))},"ImageComponent");function Kf(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=pd(r),{isTablet:f,isMobile:h}=fn();return z.createElement(Wf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:g=>e.current=g,selected:o,onClick:g=>{g.stopPropagation(),n(m=>!m)}},z.createElement("div",{className:vn()},z.createElement(Vi,{variant:"body",size:"xsmall"},Vf.t("Via:")),z.createElement(Ll,{direction:"horizontal",size:4}),r.map((g,m)=>{let d=`item-${m}`,y=z.createElement(Il,null,z.createElement(eb,{size:12,color:"black"}));return h||f?z.createElement(z.Fragment,{key:d},z.createElement(lr,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),m!==p-1&&z.createElement(z.Fragment,null,y)):z.createElement(z.Fragment,{key:d},p<=Ki||p>Ki&&m<Ki-1?z.createElement(z.Fragment,null,z.createElement(lr,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),m!==p-1&&z.createElement(z.Fragment,null,y)):m===Ki-1&&z.createElement(Xi,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:vn()},y,r.map((C,S)=>{let k=`image-${S}`;return S>=m&&z.createElement(z.Fragment,{key:k},z.createElement(lr,{content:C.swapper.displayName,src:C.swapper.image??"",state:C.state,open:!1}),S!==p-1&&z.createElement(z.Fragment,null,y))}))},z.createElement(Nl,{state:r.find((C,S)=>S>=m&&(C.state==="error"||C.state==="warning"))?.state},z.createElement(Vi,{size:"xsmall",variant:"body"},"+",p-m))))})),z.createElement("div",{className:vn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:vn()},z.createElement(Vi,{variant:"body",size:"xsmall"},Vf.t("Chains:")),z.createElement(Ll,{direction:"horizontal",size:4}),u.map((g,m)=>z.createElement(z.Fragment,{key:g.displayName},u.length<=ji||u.length>ji&&m<ji-1?z.createElement(Xi,{container:l,side:"bottom",content:g.displayName,sideOffset:4},z.createElement(lr,{content:"",src:g.image??"",open:!1,className:m!==0?"blockchainImage":""})):m===ji-1&&z.createElement(Xi,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:vn()},u.map((d,y)=>y>=m&&z.createElement(lr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:y>m?"blockchainImage":"",container:c})))},z.createElement(Nl,{className:"blockchainImage"},z.createElement(Vi,{size:"xsmall",variant:"body"},"+",u.length-m))))),z.createElement(Ll,{direction:"horizontal",size:32}))),z.createElement(Il,{orientation:a?"up":"down"},z.createElement(Rw,{size:12,color:"black"}))))}i(Kf,"QuoteTrigger");function Pl(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:f=!1,container:h}=t,g=T().blockchains(),{findToken:m}=T(),d=T().swappers(),{customSlippage:y,slippage:C}=T(),S=y||C,[k,v]=cb(t.expanded),x=lb(null),I=_(o.value,6,6),A=_(n.value,6,6),E=n.usdValue?_(n.usdValue,4,4):"",b=zt(o.usdValue,n.usdValue??null),w=_(b,2,2),B=Qt(b??0),P=i((se,Ze)=>se.map((H,W)=>{let G,j=r?.type===3&&r.swap.swapperId===H.swapperId,R=r?.type===4&&r.recommendedSlippages?.has(W),fe=a?.type===2&&a.recommendedSlippages?.has(W),Ue=j||R,Je=fe;Ue?G="error":Je&&(G="warning");let be=Ue?Lo.t("Slippage Error"):Lo.t("Slippage Warning");return j&&(be=Lo.t("Bridge Limit Error")),{swapper:{displayName:Bn(H.swapperId,d)??"",image:H.swapperLogo},from:{token:{displayName:H.from.symbol,image:H.from.logo},chain:{displayName:ft(H.from.blockchain,g)??"",image:H.from.blockchainLogo},price:{value:W===0&&!Ze?_(o.value,6,6):_(H.fromAmount,6,6),usdValue:_((H.from.usdPrice??0)*parseFloat(H.fromAmount),4,4),realValue:W===0?o.value:H.fromAmount,realUsdValue:new Ml(H.from.usdPrice??0).multipliedBy(H.fromAmount).toString()}},to:{token:{displayName:H.to.symbol,image:H.to.logo},chain:{displayName:ft(H.to.blockchain,g)||"",image:H.to.blockchainLogo},price:{value:_(H.toAmount,6,6),usdValue:_((H.to.usdPrice??0)*parseFloat(H.toAmount),4,4),realValue:H.toAmount,realUsdValue:new Ml(H.to.usdPrice??0).multipliedBy(H.toAmount).toString()}},state:G,alerts:Ue||Je?U.createElement(kf,{dense:f},U.createElement(ob,{variant:"alarm",type:Ue?"error":"warning",title:be,id:"widget-quote-footer-step-alarm-alert",footer:U.createElement(vf,null,j&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(wn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Yours: {amount} {symbol}",values:{amount:_(H.fromAmount,6,6),symbol:H?.from.symbol}}))),(R||fe)&&!j&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),U.createElement(wn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Ln(H.estimatedTimeInSeconds),fee:_(Es(H,m),2,2),internalSwaps:H.internalSwaps?P(H.internalSwaps):void 0}}),"getQuoteSteps"),$=P(e?.swaps??[]),q=$.length,J=h||N(),K=dd(t.quote.tags||[]),L=!!u,ae=Vr(e?.swaps),re=Ln(ae),Q=hi(e?.swaps??[],m),ee=_(Q,2,2),le=Q.gte(new Ml(od)),ue=ae/rd>=nd;return f?U.createElement(nb,{selected:c,fee:ee,time:re,tooltipContainer:To(),steps:$,tags:K,id:"widget-quote-full-expanded-quote-container",quoteCost:U.createElement(Wl,{quote:e,fullExpandedMode:!0,time:re,fee:Q,feeWarning:le,timeWarning:ue,showModalFee:p,steps:q}),percentageChange:w,warningLevel:B,outputPrice:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(If,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:Af()},!l&&K.length?U.createElement(U.Fragment,null,U.createElement($f,null,K.map((se,Ze)=>{let H=`${se.value}_${Ze}`;return U.createElement(U.Fragment,{key:H},U.createElement(ib,{label:se.label,value:se.value}),U.createElement(wn,{size:4,direction:"horizontal"}))})),U.createElement(zi,null),!L&&U.createElement(wn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Nf()},U.createElement(Wl,{quote:e,time:re,fee:Q,feeWarning:le,timeWarning:ue,showModalFee:p,steps:q}),L&&U.createElement(Ef,{onClick:se=>{se.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Lo.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Bf()},U.createElement(_f,null,U.createElement(rb,{size:12,color:"gray"})),U.createElement(Df,null,U.createElement(Al,{size:"small",variant:"body"},`${I} ${$[0].from.token.displayName} = `),U.createElement(jf,{content:n.value,container:J,open:n.value?void 0:!1},U.createElement(Al,{size:"small",variant:"body"},"\xA0",`${A} ${$[$.length-1].to.token.displayName}`))),U.createElement(jf,{content:n.usdValue,container:J},U.createElement(wn,{size:2,direction:"horizontal"}),U.createElement(bn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(sb,{id:"widget-quote-token-amount-container",tooltipContainer:J,type:"output",direction:"vertical",price:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:$[q-1].to.token.displayName,image:$[q-1].to.token.image},chain:{image:$[q-1].to.chain.image},percentageChange:w,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(sr,{from:$[0].from,to:$[q-1].to,percentageChange:w,warningLevel:B}),U.createElement(wn,{size:4}))),U.createElement(bf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},U.createElement(Kf,{type:s,quoteRef:x,selected:c,setExpanded:v,container:J,expanded:k,steps:$}),U.createElement(Mf,{open:k},U.createElement(Pf,null),U.createElement("div",{className:xf()},$.map((se,Ze)=>{let H=`item-${Ze}`;return U.createElement(ab,{type:"quote-details",className:"widget-quote-step-details-container",key:H,tooltipContainer:J,step:se,hasSeparator:Ze!==$.length-1,state:se.state})})))))}i(Pl,"Quote");import{Divider as mb,Skeleton as fb}from"@rango-dev/ui";import Kt from"react";import{darkTheme as pb,styled as Yi}from"@rango-dev/ui";var Xf=Yi("div",{$$color:"$colors$neutral100",[`.${pb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Yf=Yi("div",{paddingTop:"$2"}),Zf=Yi("div",{paddingLeft:"$8"}),Jf=Yi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as lg,Divider as xt,Skeleton as ct}from"@rango-dev/ui";import V from"react";import{css as ub,styled as Vt}from"@rango-dev/ui";var _l=Vt("div",{display:"flex"}),Rf=Vt("div",{padding:"$10 $0 $20"}),eg=Vt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),tg=Vt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),og=Vt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),ng=Vt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),rg=Vt("div",{width:"65%",display:"flex",justifyContent:"start"}),ig=Vt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),ag=Vt("div",{padding:"$15 $0 $15 $0"}),sg=ub({display:"flex",justifyContent:"space-between",alignItems:"center"});function cr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(og,null,V.createElement(rg,null,V.createElement(lg,{loading:!0,size:"medium"}),V.createElement(xt,{size:8,direction:"horizontal"}),V.createElement(ig,null,V.createElement(ct,{height:10,width:60,variant:"rounded"}),V.createElement(xt,{size:4}),V.createElement(ct,{height:15,variant:"rounded"}))),V.createElement(ct,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(_l,null,V.createElement(ct,{width:65,height:20,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:65,height:20,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:65,height:20,variant:"rounded"})),V.createElement(zi,null),!r&&V.createElement(xt,{size:4})),V.createElement("div",{className:sg()},V.createElement(_l,null,V.createElement(ct,{width:60,height:10,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:60,height:10,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:60,height:10,variant:"rounded"})),r&&V.createElement(ct,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Rf,null,V.createElement(ct,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(eg,null,V.createElement(tg,null,V.createElement(lg,{loading:!0,size:"medium"}),V.createElement(xt,{direction:"horizontal",size:4}),V.createElement(ct,{height:15,width:150,variant:"rounded"})),V.createElement(xt,{size:10}),V.createElement(ct,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(xt,{size:4}),V.createElement(ag,null,n,V.createElement(ng,null),n),V.createElement(xt,{size:12})))}i(cr,"QuoteSummarySkeleton");import{ChainToken as mg,Divider as $l,NextIcon as db,Skeleton as Zi}from"@rango-dev/ui";import We from"react";import{styled as pr}from"@rango-dev/ui";var cg=pr("div",{display:"flex",alignItems:"start"}),pg=pr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Dl=pr("div",{display:"flex",alignItems:"center",flexGrow:1}),ug=pr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),dg=pr("div",{display:"flex",alignItems:"center"});function Pt(t){let{separator:e=!0}=t;return We.createElement(We.Fragment,null,We.createElement(dg,null,We.createElement(Zi,{height:22,width:22,variant:"circular"}),We.createElement($l,{direction:"horizontal",size:8}),We.createElement(Zi,{height:15,width:148,variant:"rounded"})),We.createElement(cg,null,We.createElement(Jf,{hideSeparator:!e}),We.createElement(pg,{extraSpace:e},We.createElement(Dl,null,We.createElement(mg,{size:"small",loading:!0}),We.createElement($l,{direction:"horizontal",size:8}),We.createElement(Zi,{height:12,variant:"rounded"})),We.createElement(ug,null,We.createElement(db,{color:"gray",size:16})),We.createElement(Dl,null,We.createElement(mg,{size:"small",loading:!0}),We.createElement($l,{direction:"horizontal",size:8}),We.createElement(Zi,{height:12,variant:"rounded"})))))}i(Pt,"StepSkeleton");function ur(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Kt.createElement(Xf,{expanded:o,rounded:e!=="basic"},Kt.createElement(cr,{type:e,tagHidden:n}),Kt.createElement(Yf,null,Kt.createElement(fb,{height:15,variant:"rounded"})),o&&Kt.createElement(Zf,null,Kt.createElement(mb,{size:24}),Kt.createElement(Pt,null),Kt.createElement(Pt,null),Kt.createElement(Pt,{separator:!1})))}i(ur,"QuoteSkeleton");function Mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:f,onClickAllRoutes:h,fullExpandedMode:g=!1,container:m}=t,{inputAmount:d,inputUsdValue:y}=O(),C=e?.outputAmount?new gb(e?.outputAmount):null,S=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Ji.createElement(El,null,Ji.createElement(ur,{tagHidden:c,type:o,expanded:s})):v?Ji.createElement(El,{onClick:()=>l?.(e),id:f},Ji.createElement(Pl,{quote:e,error:r,container:m,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:h,fullExpandedMode:g,input:{value:d,usdValue:y?.toString()??""},output:{value:C?.toString()??"",usdValue:S?.toString()??""}})):null}i(Mo,"QuoteInfo");import{calculatePendingSwap as Cb}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Tb}from"react";import{useRef as hb,useState as yb}from"react";var Sb=2e3;function Ri({request:t}){let[e,o]=yb(!1),n=hb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Sb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(Ri,"useFetch");function fg(){let{fetch:t,loading:e,cancelFetch:o}=Ri({request:async(n,r)=>await at().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(fg,"useFetchConfirmQuote");function ea(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Fl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ea,"throwErrorIfResponseIsNotValid");function Fl(t){if(yd(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Sd(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=vd(t);if(o){let n=yi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Fl,"getQuoteError");function gg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=pn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=xd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(gg,"generateWarnings");function ta(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,diagnosisMessage:t.message},warnings:null}}i(ta,"handleQuoteErrors");function Ol(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=O(),{slippage:l,customSlippage:p}=T(),u=T().getDisabledLiquiditySources(),f=T().blockchains(),h=T().tokens(),{findToken:g}=T(),m=p||l,{fetch:d,cancelFetch:y,loading:C}=fg();return Tb(()=>y,[]),{loading:C,fetch:i(async k=>{let v=k.selectedWallets,x=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=v.reduce((E,b)=>(E[b.chain]=b.address,E),{}),A={requestId:a?.requestId||"",selectedWallets:I,destination:x||void 0};try{return await d(A,!0).then(E=>{let{result:b}=E;if(!b)throw new Error(E.error??"Error fetching updated quote");ea({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let w={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(w);let B={slippage:m.toString(),disabledSwappersGroups:u},P=gg({previousQuote:a??void 0,currentQuote:w,meta:{blockchains:f},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:g});c();let $=!!P.balance,q=Cb(o.toString(),b,bd(v),B,!$,{blockchains:f,tokens:h});return{quote:w,swap:q,error:null,warnings:P}})}catch(E){return ta(E)}},"fetch"),cancelFetch:y}}i(Ol,"useConfirmSwap");var Bb=bb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${hg}`]:{width:"$48",height:"$48"}}),Wb=Ql({flexGrow:1,paddingRight:"$10"}),Lb=Ql({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Mb=Ql({display:"flex",justifyContent:"space-between",alignItems:"center"});function yg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=Nb(),[c,l]=dr(""),p=!n,[u,f]=dr(!1),[h,g]=dr(!1),{isActiveTab:m}=te(),d=T().getDisabledLiquiditySources(),y=Ab(d),{manager:C}=kb(),{fetch:S,loading:k,cancelFetch:v}=Ol(),[x,I]=dr({swap:null,error:null,warnings:null}),[A,E]=dr(!1),b=i(async({selectedWallets:L,customDestination:ae})=>{let re=await S?.({selectedWallets:L,customDestination:ae});return I(re),re},"onConfirmSwap"),w=i(async()=>{if(x.swap&&n)try{await C?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let L=`../${F.swaps}/${x.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{g(!0),await w(),g(!1)},"onConfirm"),P=i(async()=>{x.warnings?.quote&&cd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),$=i(async()=>{I({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(L=>{I(L)}).catch(L=>console.error(L))},"onRefresh");oa(()=>{!!y.current.length&&!d.length&&$(),y.current=d},[d.length]),oa(()=>{p&&v()},[p]),oa(()=>{p&&f(p)},[p]),oa(()=>{p||S({selectedWallets:o,customDestination:r}).then(L=>I(L)).catch(L=>console.error(L))},[]),Ib(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,J=x.error,K=[];if(c&&K.push(De.createElement(vb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||J){let L=`../${F.settings}`;K.push(De.createElement(ir,{warning:q,error:J,couldChangeSettings:!1,refetchQuote:$,skipAlerts:J?.type===4||q?.type===2,showWarningModal:A,confirmationDisabled:!m,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await w()},onChangeSettings:()=>s(L)}))}return De.createElement(ie,{header:{title:Ul.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:De.createElement(Bb,null,De.createElement("div",{className:Wb()},De.createElement(wb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||h,disabled:!!x.error||!m,onClick:P},Ul.t("Start Swap"))),De.createElement(hg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||h,disabled:!m,onClick:f.bind(null,!0)},De.createElement(Eb,{size:24})))},u&&De.createElement(ef,{open:u,onClose:()=>f(!1),onCancel:v,loading:k,onCheckBalance:b}),De.createElement(ce,null,De.createElement("div",{className:Mb()},De.createElement(xb,{variant:"title",size:"small"},Ul.t("You get")),De.createElement("div",{className:Lb()},De.createElement(xi,{onClick:!k&&!u&&!A?$:void 0}))),De.createElement(zl,{size:"12"}),Zd(K.map((L,ae)=>({element:L,key:`alert-${ae}`})),De.createElement(zl,{size:10})),K.length>0?De.createElement(zl,{size:10}):null,De.createElement(Mo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:k,warning:x.warnings?.quote??null})))}i(yg,"ConfirmSwapPage");import{i18n as Xt}from"@lingui/core";import{Button as ec,CustomTokensZeroStateDarkIcon as ex,CustomTokensZeroStateIcon as tx,DeleteIcon as ox,Divider as Sr,IconButton as nx,MessageBox as rx,NotFound as ix,styled as oc}from"@rango-dev/ui";import ye,{useState as tc}from"react";import{useNavigate as ax}from"react-router-dom";import{CloseIcon as _b,IconButton as Db,SearchIcon as $b,TextField as Fb}from"@rango-dev/ui";import mr from"react";import{styled as Pb}from"@rango-dev/ui";var Sg=Pb("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Et(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...f}=t,h=s.length?mr.createElement(Db,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},mr.createElement(_b,{color:"gray",size:10})):null;return p&&(h=p),mr.createElement(Fb,{prefix:mr.createElement(Sg,null,mr.createElement($b,{color:"black"})),id:u,suffix:h,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...f})}i(Et,"SearchInput");import{i18n as Rl}from"@lingui/core";import{Button as Qb,CustomTokenWarning as qb,darkTheme as Bg,Divider as jt,ExternalLinkIcon as Hb,Image as Gb,ListItem as Vb,NotFound as Kb,PinIcon as jb,Skeleton as Po,Typography as hr,VirtualizedList as Xb}from"@rango-dev/ui";import M,{useState as Yb}from"react";import{useTranslation as Zb}from"react-i18next";import{Divider as Ag,ListItem as zb,Skeleton as gr}from"@rango-dev/ui";import It from"react";import{css as xn,darkTheme as ql,ImageContainer as Ob,ListItemButton as Ub,styled as ot,Typography as Cg}from"@rango-dev/ui";var Hl=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Gl=xn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Vl=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Kl=xn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${ql} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),jl=xn({}),Xl=xn(),Tg=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Yl=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),na=ot("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Gl}`]:{[`& .${Kl}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${jl}`]:{bottom:"-15px"},[`& .${Hl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Vl}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),kg=ot(Ub,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),Zl=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Jl=ot(Cg,{}),vg=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Xl}`]:{$$color:"$colors$neutral600",[`.${ql} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),fr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),JH=ot("div",{display:"flex",alignItems:"center"}),wg=ot("div",{position:"relative",[`& ${Ob}`]:{borderRadius:"$xm",overflow:"hidden"}}),bg=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),xg=ot(Cg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Eg=ot("a",{"& svg:hover":{color:"$colors$info"}}),Ig=ot("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${ql} &`]:{color:"$foreground"}}}});function Ng(t){return It.createElement(na,null,Array.from(Array(t.size),e=>It.createElement(zb,{key:e,hasDivider:!0,start:It.createElement(gr,{variant:"circular",width:35,height:35}),end:It.createElement(fr,null,It.createElement(gr,{variant:"text",size:"large",width:70}),It.createElement(Ag,{size:4}),It.createElement(gr,{variant:"text",size:"medium",width:50})),title:It.createElement("div",null,It.createElement(gr,{variant:"text",size:"large",width:90}),It.createElement(Ag,{size:4}),It.createElement(gr,{variant:"text",size:"medium",width:90}))})))}i(Ng,"LoadingTokenList");var Jb=20,Rb=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return M.createElement("div",{className:Gl()},o?M.createElement("div",{className:Hl()},o):M.createElement(Yl,{className:Vl()},M.createElement(hr,{variant:"title",size:"xmedium"},r.symbol),M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(Zl,{css:a},M.createElement(Jl,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&M.createElement("div",{className:`${Kl()} ${!o&&jl()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",M.createElement(jt,{size:4,direction:"horizontal"}),M.createElement(Eg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},M.createElement(Hb,{size:12}))))},"renderDesc");function yr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=T().fetchStatus,u=T().blockchains(),{getBalanceFor:f,fetchingWallets:h}=T(),{isTokenPinned:g}=T(),{setFromToken:m,setToToken:d}=O(),{t:y}=Zb(),C=Ge(),[S,k]=Yb(null),v=i(()=>{c==="source"?m({token:S,meta:{blockchains:u}}):d({token:S,meta:{blockchains:u}})},"updateToken"),x=i(()=>{v(),C()},"handleImportToken"),I=i(b=>{if(b.customToken){let{customToken:B,...P}=b;return M.createElement(Qb,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),k({...P,warning:!0})},"handleClick")},M.createElement(hr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let w=Yr(f(b));return s?s(b):h?M.createElement(fr,null,M.createElement(Po,{variant:"text",size:"large",width:70}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:50})):w&&M.createElement(vg,null,M.createElement(xg,{variant:"title",size:"small"},w.amount),M.createElement("div",null),w.usdValue&&M.createElement(hr,{variant:"body",className:Xl(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),A=i(()=>M.createElement(Xb,{itemContent:b=>{let w=e[b];if(w==="skeleton")return M.createElement(Vb,{hasDivider:!0,start:M.createElement(Po,{variant:"circular",width:35,height:35}),end:M.createElement(fr,null,M.createElement(Po,{variant:"text",size:"large",width:70}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:50})),title:M.createElement("div",null,M.createElement(Po,{variant:"text",size:"large",width:90}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:90}))});let B=w.address||"",P=u.find(L=>L.name===w.blockchain);if(!P)return null;let $=qs(P.color,"main"),q={$$color:$.main150,[`.${Bg} &`]:{$$color:$.main750},backgroundColor:"$$color"},J={$$color:$.main750,[`.${Bg} &`]:{$$color:$.main150},color:"$$color"},K=i(()=>{typeof w!="string"&&!w.customToken&&n?.(w)},"handleClick");return M.createElement(Ig,null,M.createElement(kg,{"tab-index":b,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:w.customToken,onClick:K,start:M.createElement(wg,null,M.createElement(Gb,{src:w.image===""?Ur:w.image,size:30}),t.type!=="custom-token"&&g(w,t.type)&&M.createElement(bg,null,M.createElement(jb,{size:12,color:"gray"}))),title:P?.type==="COSMOS"||w.name||!w.name&&!B?M.createElement(Yl,null,M.createElement(hr,{variant:"title",size:"xmedium"},w.symbol),M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(Zl,{css:q},M.createElement(Jl,{variant:"body",size:"xsmall",css:J},w.blockchain)),l&&w.warning&&M.createElement(M.Fragment,null,M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(qb,{container:N()}))):void 0,description:typeof w!="string"&&P?.info&&B&&P.type!=="COSMOS"?Rb({address:B,token:w,customCssForTag:q,customCssForTagTitle:J,name:w.name,url:P.info.addressUrl.split("{wallet}").join(B)}):w.name||void 0,end:I(w)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=S?So(S?.blockchain,u):null;return M.createElement(M.Fragment,null,a&&M.createElement(M.Fragment,null,M.createElement(hr,{variant:"label",size:"large"},Rl.t("Select Token")),M.createElement(jt,{size:4})),M.createElement(Tg,null,M.createElement(jt,{size:4}),p==="loading"&&M.createElement(Ng,{size:Jb}),p==="success"&&(e.length?M.createElement(M.Fragment,null,M.createElement(Yn,{token:S,address:S?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),M.createElement(na,{as:"ul"},A())):!!o&&M.createElement(Kb,{title:Rl.t("No results found"),description:Rl.t("Try using different keywords")}))))}i(yr,"TokenList");var sx=oc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),lx=oc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),cx=oc(nx,{"&:hover":{"& svg":{color:"$secondary550"}}});function Wg(){let[t,e]=tc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=O(),{mode:l}=no({}),p=ax(),[u,f]=tc(!1),[h,g]=tc(),m=i(S=>{let k=S.target.value;e(k)},"handleSearch"),d=l==="dark",y=n.filter(S=>rt(S.symbol,t)||rt(S.address||"",t)||rt(S.name||"",t)),C=i(()=>{if(h){let S=a?gt(a):null,k=r?gt(r):null,v=gt(h);S===v?c({token:null}):k===v&&s({token:null}),o(h)}f(!1)},"handleDeleteCustomToken");return ye.createElement(ie,{header:{title:Xt.t("Custom Tokens")}},ye.createElement(ce,null,ye.createElement(sx,null,n.length?ye.createElement(ye.Fragment,null,ye.createElement(Et,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Xt.t("Search Token"),onChange:m}),ye.createElement(Sr,{size:16}),ye.createElement(yr,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>ye.createElement(cx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{f(!0),g(S)}},ye.createElement(ox,{size:12,color:"gray"}))})):ye.createElement(lx,null,ye.createElement(ix,{icon:d?ye.createElement(ex,{size:200}):ye.createElement(tx,{size:200}),title:Xt.t("No custom tokens"),description:Xt.t("press the button to add your custom token")})),ye.createElement(Sr,{size:20}),ye.createElement(ec,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},Xt.t("Add Custom Token"))),ye.createElement(Z,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>f(!1),container:N()},ye.createElement(rx,{title:Xt.t("Delete Custom Token"),type:"error",description:Xt.t("Are you sure you want to Delete this Token?")},ye.createElement(Sr,{size:40}),ye.createElement(Sr,{size:10}),ye.createElement(ec,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Xt.t("Yes, Delete it")),ye.createElement(Sr,{size:12}),ye.createElement(ec,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>f(!1)},Xt.t("No, Continue"))))))}i(Wg,"CustomTokensPage");import{i18n as Xe}from"@lingui/core";import{useManager as Nx}from"@rango-dev/queue-manager-react";import{Button as cc,darkTheme as Bx,Divider as Do,MessageBox as Wx,NotFound as Lx,styled as pc,Typography as aa}from"@rango-dev/ui";import{TransactionStatus as kr}from"rango-types";import pe,{useMemo as Yg,useState as sa}from"react";import{useNavigate as Mx}from"react-router-dom";import{FilterIcon as hx,Popover as yx}from"@rango-dev/ui";import _o from"react";import{css as px,darkTheme as ra,IconButton as ux,styled as Cr}from"@rango-dev/ui";var nc=Cr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ra} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Lg=Cr(ux,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ra} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ra} &`]:{backgroundColor:"$neutral"},[`& ${nc}::before`]:{backgroundColor:"$secondary100",[`.${ra} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Mg=Cr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Pg=Cr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),_g=px({display:"flex",justifyContent:"space-between",alignItems:"center"}),Dg=Cr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as $g}from"@lingui/core";import{Button as dx,Divider as Fg,ListItemButton as mx,Radio as fx,RadioRoot as gx,Typography as Og}from"@rango-dev/ui";import pt from"react";function Ug(t){let{filterBy:e,onClickItem:o}=t;return pt.createElement(Pg,null,pt.createElement("div",{className:_g()},pt.createElement(Og,{size:"small",variant:"body"},$g.t("Status")),pt.createElement(dx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},$g.t("Reset"))),pt.createElement(Fg,{size:10}),pt.createElement(gx,{value:e},pt.createElement(Dg,null,t.list.map((n,r)=>pt.createElement(mx,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:pt.createElement(pt.Fragment,null,pt.createElement(Fg,{direction:"horizontal",size:4}),pt.createElement(Og,{size:"medium",variant:"body"},n.title)),start:pt.createElement(fx,{value:n.id}),onClick:o})))))}i(Ug,"FilterSelectorContent");function rc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return _o.createElement("div",null,_o.createElement(yx,{open:a,align:"end",onOpenChange:o,container:N(),content:_o.createElement(Ug,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},_o.createElement(Lg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},_o.createElement(nc,{isSelect:!!n},_o.createElement(hx,{size:16,color:"black"}),!!n&&_o.createElement(Mg,null)))))}i(rc,"FilterSelector");import{i18n as Tx}from"@lingui/core";import{getCurrentStep as kx}from"@rango-dev/queue-manager-rango-preset";import{Divider as Gg,GroupedVirtualizedList as vx,Skeleton as wx,SwapListItem as Vg,Typography as bx}from"@rango-dev/ui";import je,{useCallback as Kg,useEffect as xx,useRef as Ex,useState as Ix}from"react";function zg(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(zg,"calculateGroupsSoFar");import{css as Sx,darkTheme as Cx,styled as Tr}from"@rango-dev/ui";var ic=Sx(),Qg=Tr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ac=Tr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ic}`]:{$$color:"$colors$neutral600",[`.${Cx} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),sc=Tr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),qg=Tr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Hg=Tr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Ax=10;function lc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Ix([]),c=Ex(0),{swaps:l,groupCounts:p,groups:u}=n(e),f=Kg(zg,[]),h=Kg(()=>{let g=e.length-c.current;g&&(c.current+=Math.min(g,Ax),s(f(p,c.current)))},[e.length]);if(xx(()=>{r||h()},[r,h]),r){let g=[1,2];return je.createElement(je.Fragment,null,[g,g].map((d,y)=>je.createElement(ac,{key:y},je.createElement(sc,null,je.createElement(wx,{variant:"text",width:60,size:"small"}),je.createElement(Gg,{size:16})),je.createElement(Gg,{size:4}),je.createElement(qg,null,d.map((S,k)=>je.createElement(Vg,{isLoading:!0,key:k}))))))}return je.createElement(vx,{endReached:()=>{c.current<e.length&&h()},groupCounts:a,groupContent:g=>je.createElement(ac,null,je.createElement(sc,null,je.createElement(bx,{variant:"label",size:"medium",className:ic()},u[g]))),itemContent:(g,m)=>{let d=l[g];if(!d)return null;let y=kx(d),C=d.steps[0],S=d.steps[d.steps.length-1];return je.createElement(Qg,{key:d.requestId},je.createElement(Vg,{className:"widget-history-group-list-swap-item-btn",requestId:d.requestId,creationTime:d.creationTime,status:d.status,onClick:o,currentStep:y,tooltipContainer:N(),onlyShowTime:u[m]===Tx.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:_(d.inputAmount,6,6),realAmount:d.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:_(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(lc,"HistoryGroupedList");import{i18n as ia}from"@lingui/core";import jg from"dayjs";var Xg=i(t=>{let e=new Map([["today",{title:ia.t("Today"),swaps:[]}],["week",{title:ia.t("This week"),swaps:[]}],["month",{title:ia.t("This month"),swaps:[]}],["year",{title:ia.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=jg();t.forEach(l=>{let p=Number(l.creationTime),u=jg(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let f=new Date(p).getFullYear().toString();o(f,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var Px=pc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),_x=pc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),Dx=pc("div",{"._typography":{color:"$neutral700",[`.${Bx}&`]:{color:"$neutral900"}}}),$x=[{id:kr.SUCCESS,title:Xe.t("Complete")},{id:kr.RUNNING,title:Xe.t("Running")},{id:kr.FAILED,title:Xe.t("Failed")}],Fx=i((t,e)=>t?.length?t.filter(o=>Nt(o.fromBlockchain,e)||Nt(o.toBlockchain,e)||Nt(o.toSymbol,e)||Nt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Zg(){let t=Mx(),{manager:e,state:o}=Nx(),n=St(e).map(({swap:k})=>k),[r,a]=sa(""),[s,c]=sa(!1),l=!o.loadedFromPersistor,[p,u]=sa(""),[f,h]=sa(!1),g=i(k=>{let v=k.target.value;a(v)},"handleSearch"),m=Yg(()=>!r&&!p?n:n.filter(k=>{let{inputAmount:v,status:x,steps:I,requestId:A}=k;return(!r||Nt(v,r)||Nt(x,r)||Fx(I,r)||Nt(A,r))&&(!p||p===x)}),[n,r,p]),d=!m?.length&&!l,y=i(()=>h(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(k){console.log(k)}},"onClear"),S=Yg(()=>!n.some(k=>k.status===kr.SUCCESS||k.status===kr.FAILED),[n]);return pe.createElement(ie,{header:{title:Xe.t("History"),suffix:pe.createElement(ro,null,pe.createElement(cc,{id:"widget-history-clear-btn",disabled:S,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},pe.createElement(aa,{size:"medium",variant:"label",color:"error"},Xe.t("Clear"))))}},pe.createElement(ce,null,pe.createElement(_x,null,pe.createElement(Et,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:g,style:{height:36},value:r}),pe.createElement(Do,{size:10,direction:"horizontal"}),pe.createElement(rc,{filterBy:p,open:s,onOpenChange:k=>c(k),onClickItem:k=>u(k),list:$x})),pe.createElement(Do,{size:"16"}),pe.createElement(Px,null,d&&pe.createElement(Hg,null,pe.createElement(Do,{size:32}),pe.createElement(Lx,{title:r?Xe.t("No results found"):Xe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Xe.t("Try using different keywords"):Xe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!d&&pe.createElement(lc,{list:m,onSwapClick:t,groupBy:Xg,isLoading:l}))),pe.createElement(Z,{open:f,onClose:y,id:"widget-history-clear-modal",container:N()},pe.createElement(Do,{size:20}),pe.createElement(Wx,{type:"warning",title:Xe.t("Clear Transaction History"),description:pe.createElement(Dx,null,pe.createElement(aa,{variant:"body",size:"medium"},Xe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),pe.createElement(Do,{size:"24"}),pe.createElement(aa,{variant:"body",size:"small"},Xe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),pe.createElement(Do,{size:30}),pe.createElement(cc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Xe.t("Yes, Clear the history")),pe.createElement(Do,{size:10}),pe.createElement(cc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:y},pe.createElement(aa,{variant:"title",size:"medium",color:"primary"},Xe.t("No, Cancel")))))}i(Zg,"HistoryPage");import{i18n as CE}from"@lingui/core";import{Button as TE,Divider as bc,styled as kE,WarningIcon as vE}from"@rango-dev/ui";import wE from"bignumber.js";import Se,{useEffect as Ih,useState as Ah}from"react";import{useNavigate as bE}from"react-router-dom";import{i18n as Rg}from"@lingui/core";import{Alert as Ux,Divider as uc,NoRouteIcon as zx,Typography as Qx}from"@rango-dev/ui";import $o from"react";import{styled as Ox}from"@rango-dev/ui";var Jg=Ox("div",{display:"flex",flexDirection:"column",alignItems:"center"});function dc(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Ft(t,e)?$o.createElement(Jg,null,$o.createElement(uc,{size:10}),$o.createElement(zx,{size:24,color:"gray"}),$o.createElement(uc,{size:4}),$o.createElement(Qx,{variant:"title",size:"small"},Rg.t("No Routes Found")),$o.createElement(uc,{size:4}),$o.createElement(Ux,{title:Rg.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(dc,"SameTokensWarning");import{Alert as qx,Button as Hx}from"@rango-dev/ui";import th from"react";import{i18n as la}from"@lingui/core";function eh(t){let e=null;return t===Rr?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:la.t("Reset"),title:la.t("Slippage cannot be set lower than 0.01%.")},e):t>Vo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:la.t("Change"),title:la.t("Caution, your slippage is high!")},e):null}i(eh,"makeAlerts");function oh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=T(),{onChangeSettings:a}=t,c=eh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(Jr),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?th.createElement(qx,{title:c.title,type:c.alertType,variant:"alarm",action:th.createElement(Hx,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(oh,"SlippageWarningsAndErrors");import{i18n as Xx}from"@lingui/core";import{IconButton as Yx,ReverseIcon as Zx,Skeleton as Jx,Tooltip as Rx,Typography as vr}from"@rango-dev/ui";import ut from"react";import ca from"bignumber.js";function rh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}i(rh,"getSlippageColor");function ih(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ca(e),r=new ca(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(ih,"getUsdExchangeRate");function ah(t,e){let o=new ca(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ca.ROUND_DOWN).toFormat(2)}`}i(ah,"formatTokenValueInUsd");import{darkTheme as Kx,styled as fc,Typography as jx}from"@rango-dev/ui";var sh=fc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),lh=fc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${Kx} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),gc=fc(jx,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function hc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=T(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,f=o!==null?o:e,{mode:h}=no({}),g=Xo(f),m=h==="dark",d=n==="default",y={quoteError:a,slippageError:g?.type==="error"?g.message:null},C={quoteWarning:s,slippageWarning:g?.type==="warning"?g.message:null},S=p?.swaps[0].from||c,k=p?.swaps[p?.swaps.length-1].to||l,v=d?S:k,x=d?k:S,I=Number(d?p?.outputAmount:p?.requestAmount),A=Number(d?p?.requestAmount:p?.outputAmount),E=I||v.usdPrice,b=A||x.usdPrice,{rawValue:w,displayValue:B}=ih({toTokenUsdPrice:b,fromTokenUsdPrice:E});return ut.createElement(sh,null,ut.createElement(vr,{variant:y||C?"label":"body",size:y||C?"medium":"small",color:rh({error:y,warning:C,isDarkTheme:m})},Xx.t("Slippage:")," ",f,"%"),u?ut.createElement(Jx,{height:16,width:104,variant:"rounded"}):E&&b&&ut.createElement(lh,null,ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},"1"),ut.createElement(gc,{className:"rate-text",variant:"body",size:"small"},x.symbol),ut.createElement(Yx,{id:"widget-home-page-change-rate-button",onClick:r},ut.createElement(Zx,{size:14,color:"secondary"})),ut.createElement(Rx,{container:N(),side:"top",sideOffset:4,content:ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},w)},ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},B)),ut.createElement(gc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&ut.createElement(vr,{color:"neutral600",variant:"body",size:"small"},"~",ah(Number(w),v.usdPrice))))}i(hc,"SwapMetrics");import{i18n as iE}from"@lingui/core";import{Header as aE}from"@rango-dev/ui";import po,{useEffect as sE,useState as lE}from"react";import{i18n as tE}from"@lingui/core";import{Divider as Sc,FullExpandedQuote as oE,Typography as nE}from"@rango-dev/ui";import we from"react";import{styled as yc}from"@rango-dev/ui";var ch=yc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),ph=yc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),uh=yc("div",{width:"146px"});import{i18n as wr}from"@lingui/core";import{Select as eE}from"@rango-dev/ui";import dh from"react";function pa(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:wr.t("Smart Routing")},{value:"FEE",label:wr.t("Lowest Fee")},{value:"SPEED",label:wr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:wr.t("Maximum Return")},{value:"PRICE",label:wr.t("Maximum Output")}];return dh.createElement(uh,null,dh.createElement(eE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(pa,"SelectStrategy");var mh=3;function br(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:f,toToken:h,sortStrategy:g,error:m}=O(),{slippage:d,customSlippage:y}=T(),{findToken:C}=T(),S=c||N(),k=!!p&&p.results.length,v=y??d,x=i(E=>{if(!f||!h||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...E};return pn({currentQuote:b,userSlippage:v,findToken:C})},"getQuoteWarning"),I=m?.type===0||m?.type===1,A=p?.results?gi(g,p?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement(ph,null,we.createElement(nE,{size:"xmedium",variant:"title"},tE.t("Sort by")),we.createElement(pa,{container:S})),we.createElement(Sc,{size:"10"})),e&&Array.from({length:mh},(E,b)=>we.createElement(we.Fragment,{key:b},s?we.createElement(oE,{loading:!0}):we.createElement(ur,{tagHidden:!1,type:"list-item",expanded:!1}),b!==mh-1&&we.createElement(Sc,{size:16}))),!e&&we.createElement(we.Fragment,null,k?A.map((E,b)=>{let w=x(E),B=Fl(E.swaps),P=A.length-1===b;return we.createElement(we.Fragment,{key:E.requestId},we.createElement(Mo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:S,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:w,fullExpandedMode:s,onClick:$=>{B||u("warning",w),u("error",B?.options||null),o($)},type:"list-item"}),!P&&we.createElement(Sc,{size:16}))}):I&&we.createElement(ch,null,we.createElement(or,{size:s?"large":"small",error:m,fetch:n}))))}i(br,"Quotes");import{darkTheme as rE,styled as fh}from"@rango-dev/ui";var gh=fh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${rE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),hh=fh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var cE=100;function Cc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=lE(!1),l=s?"":"is-hidden",{config:p}=T(),u=p?.variant==="full-expanded",f=To();return sE(()=>{let h=null;return a?h=setTimeout(()=>{c(!0)},cE):(c(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),po.createElement(gh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Ni()} widget-expanded-quotes-container`,id:Qe.EXPANDED_BOX_ID},po.createElement(aE,{title:iE.t("Routes"),suffix:po.createElement(po.Fragment,null,po.createElement(pa,{container:f}),po.createElement(Bo,{container:f,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),po.createElement(hh,null,po.createElement(br,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:To(),onClickOnQuote:n,fullExpandedMode:u})))}i(Cc,"ExpandedQuotes");import{i18n as wh}from"@lingui/core";import{SwapInput as bh}from"@rango-dev/ui";import mE from"bignumber.js";import xr from"react";import{ReverseIcon as dE}from"@rango-dev/ui";import kc from"react";import{keyframes as pE,styled as yh}from"@rango-dev/ui";var Tc=450,uE=pE({"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)"}}),Sh=yh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ch=yh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${uE} ${Tc}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 vc(){let t=O.use.switchFromAndTo();return kc.createElement(Sh,null,kc.createElement(Ch,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Tc),t()}},kc.createElement(dE,{size:12})))}i(vc,"SwitchFromAndToButton");import{styled as Th}from"@rango-dev/ui";var kh=Th("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),vh=Th("div",{position:"relative"});function wc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:f,inputUsdValue:h,outputAmount:g,outputUsdValue:m,selectedQuote:d}=O(),{connectedWallets:y,getBalanceFor:C}=T(),S=a?C(a):null,k=Yr(S)?.amount??"0",v=S?new mE(S.amount).shiftedBy(-S.decimals):de,x=!!s&&Rp(y,s.name),I=!xs(d,f,h),A=!xs(d,f,m),E=!h||!m||!m.gt(0)?null:zt(h.toString(),m.toString());return xr.createElement(kh,null,xr.createElement(vh,null,xr.createElement(bh,{label:wh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:f,usdValue:I?void 0:_(h,4,4),realUsdValue:I?void 0:h?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let b=_(v,S?.decimals),w=S?.amount?b.split(",").join(""):"";p(w)},anyWalletConnected:y.length>0}),xr.createElement(vc,null)),xr.createElement(bh,{sharpBottomStyle:!r&&(!!d||e),label:wh.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:_(zt(h,m),2,2),warningLevel:Qt(E??0),price:{value:_(g,6,6),usdValue:A?void 0:_(m,4,4),realValue:g?.toString(),realUsdValue:A?void 0:m?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(wc,"Inputs");import{useCallback as fE,useEffect as gE,useRef as hE,useState as yE}from"react";function xh(){let{fetch:t,loading:e,cancelFetch:o}=Ri({request:async(n,r)=>await at().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(xh,"useFetchAllQuotes");var SE=600;function ua({refetchQuote:t}){let{fetch:e,cancelFetch:o}=xh(),{excludeLiquiditySources:n,routing:r}=T().config,{connectedWallets:a}=T(),c=a.some(le=>le.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:f,selectedQuote:h,sortStrategy:g,resetQuote:m,error:d,warning:y,setSelectedQuote:C,updateQuotePartialState:S}=O(),{slippage:k,customSlippage:v,affiliatePercent:x,affiliateRef:I,affiliateWallets:A,fetchStatus:E}=T(),b=T().getLiquiditySources(),w=T().getDisabledLiquiditySources(),B=T().excludeLiquiditySources(),{findToken:P}=T(),[$,q]=yE(!0),J=hE(u),K=v??k,ae=!l||!p||Ft(l,p)||!Mn(u),re=i(le=>{q(le)},"resetState"),Q=i(le=>{let{fromToken:ue,toToken:se,inputAmount:Ze,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:G,slippage:j,affiliateRef:R,affiliatePercent:fe,affiliateWallets:Ue}=le;if($||re(!0),!ae&&ue&&se){m();let Je=wd({fromToken:ue,toToken:se,inputAmount:Ze,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:G,wallets:a,slippage:j,affiliateRef:R,affiliatePercent:fe,affiliateWallets:Ue,contractCall:c});jo("experimental",r)&&(Je.experimental=!0),jo("avoidNativeFee",r)&&(Je.avoidNativeFee=!0),jo("enableCentralizedSwappers",r)&&(Je.enableCentralizedSwappers=!0),r?.maxLength&&(Je.maxLength=r.maxLength),e(Je).then(be=>{let ze=gi(g,be.results),Rt=ud(h,ze,be.requestAmount);q(!1),S("quotes",be),C(Rt),ea({diagnosisMessages:be.diagnosisMessages,requestId:Rt?.requestId||"",swaps:Rt?.swaps});let yo=Rt&&pn({currentQuote:Rt,userSlippage:K,findToken:P});S("warning",yo)}).catch(be=>{let{error:ze}=ta(be);(ze?.type===0||ze?.type===1)&&m(),ze?.type!==2&&(S("error",ze),q(!1))})}},"fetch"),ee=fE(qr(le=>{Q(le)},SE),[ae]);return gE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(ae){q(!1),(h||d||y)&&m();return}if(!Mn(u)&&f?.eq(0)){re(!1),o();return}m(),re(!0);let le=Q;return J.current&&J.current!=u&&(le=ee),J.current=u,le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:K,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,ae,b?.length,n,w.length,K,I,x,c,JSON.stringify(A)]),{fetch:()=>Q({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:K,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),loading:$}}i(ua,"useSwapInput");function Eh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Te.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Eh,"emitPreventableEvent");var xE=kE("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),EE=300;function Nh(){let t=bE(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:f,updateQuotePartialState:h}=O(),[g,m]=Ah(!1),{isLargeScreen:d,isExtraLargeScreen:y}=fn(),{fetch:C,loading:S}=ua({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:x,customSlippage:I,slippage:A,setSlippage:E,setCustomSlippage:b}=T(),{isActiveTab:w}=te(),[B,P]=Ah(!1),q=Xo(I!==null?I:A),K=Cd({fetchMetaStatus:v,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),L=au(d,y,k?.variant),ae=!!n&&!!e&&!!o&&new wE(n).gt(0)&&!Bd(e,o),re=ae&&v==="success"&&S,Q=q?.quoteValidation||c,ue=(!L||L&&l?.results.length)&&(Q||s),se=!!e&&!!o,Ze=se&&!!q,H=(r||s)&&!B?C:void 0,W=i(R=>{L&&g?(m(!1),setTimeout(()=>{t(R)},EE)):t(R)},"onHandleNavigation"),G=i(R=>{r?.requestId!==R.requestId&&(P(!1),p(R))},"onClickOnQuote"),j=i(R=>{R&&(E(R),b(null))},"onChangeSlippage");return Ih(()=>{u(),h("refetchQuote",!0)},[]),Ih(()=>{m(ae)},[ae]),Se.createElement(xE,null,Se.createElement(ie,{height:"auto",footer:Se.createElement(TE,{id:`widget-swap-${K.action}-btn`,type:"primary",size:"large",disabled:K.disabled||!w,prefix:K.action==="confirm-warning"&&Se.createElement(vE,null),fullWidth:!0,onClick:()=>{K.action==="connect-wallet"?Eh({type:"clickConnectWallet"},()=>W(F.wallets)):K.action==="confirm-warning"?P(!0):W(F.confirmSwap)}},K.title),header:{onWallet:()=>{W(F.wallets)},hasBackButton:!1,title:k.title||CE.t("Swap"),suffix:Se.createElement(Bo,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>W(F.swaps),onClickSettings:()=>{W(F.settings)}})}},Se.createElement(ce,null,Se.createElement(wc,{fetchingQuote:re,fetchMetaStatus:v,isExpandable:L,onClickToken:R=>{W(R==="from"?F.fromSwap:F.toSwap)}}),Se.createElement(bc,{size:"2"}),L?null:Se.createElement(Mo,{quote:r,loading:re,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:Q,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{h("refetchQuote",!1),W(F.routes)}:void 0}),se&&Se.createElement(Se.Fragment,null,Se.createElement(bc,{size:8}),Se.createElement(hc,{quoteError:s,quoteWarning:Q,fromToken:e,toToken:o,quote:r,loading:re})),ue?Se.createElement(Se.Fragment,null,Se.createElement(ir,{warning:Q,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:C,showWarningModal:B,confirmationDisabled:!w,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:j,onConfirmWarningModal:()=>{P(!1),f(!0),W(F.confirmSwap)},onChangeSettings:()=>W(F.settings)})):null,Ze&&Se.createElement(Se.Fragment,null,Se.createElement(bc,{size:"10"}),Se.createElement(oh,{onChangeSettings:()=>W(F.settings)})),Se.createElement(dc,null))),L?Se.createElement(Cc,{loading:re,onClickOnQuote:G,fetch:C,onClickRefresh:H,isVisible:g}):null)}i(Nh,"Home");import{i18n as Bh}from"@lingui/core";import{Alert as IE,Divider as AE,List as NE,ListItemButton as BE,Radio as WE,RadioRoot as LE,Typography as ME}from"@rango-dev/ui";import _t from"react";function uo(){let{setLanguage:t,language:e,config:o}=T(),n=fu,r=o?.language||Yo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Yo),resetLanguage:()=>t(null)}}i(uo,"useLanguage");function Wh(){let{activeLanguage:t,changeLanguage:e,languages:o}=uo(),n=Ge(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:_t.createElement(ME,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:_t.createElement(WE,{value:s}),start:_t.createElement(l,null)}});return _t.createElement(ie,{header:{title:Bh.t("Language")}},_t.createElement(ce,null,_t.createElement(IE,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),_t.createElement(AE,{size:"8"}),_t.createElement(LE,{value:t},_t.createElement(NE,{type:_t.createElement(BE,{title:Bh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Wh,"LanguagePage");import{i18n as Yt}from"@lingui/core";import{Button as FE,Checkbox as OE,Image as UE,ListItemButton as zE,NotFound as QE,Typography as qE}from"@rango-dev/ui";import Ye,{useState as HE}from"react";import{Checkbox as DE,Skeleton as Mh}from"@rango-dev/ui";import Ir from"react";import{styled as xc}from"@rango-dev/ui";var Er=xc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ec=xc("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ic=xc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as PE,styled as _E}from"@rango-dev/ui";var Lh=_E(PE,{height:61});var $E=30;function Ac(){return Ir.createElement(Er,null,Array.from(Array($E),(t,e)=>Ir.createElement(Lh,{hasDivider:!0,key:e,start:Ir.createElement(Mh,{variant:"circular",width:35,height:35}),title:Ir.createElement(Mh,{variant:"text",size:"large",width:90}),end:Ir.createElement(DE,{checked:!1})})))}i(Ac,"LoadingLiquiditySourceList");function Nc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=HE(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=ei(o,n),p={Exchanges:Yt.t("Exchanges"),Bridges:Yt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let f=l.filter(C=>u.includes(C.type)),h=f.length===f.filter(C=>C.selected).length,g=i(()=>{f.forEach(C=>{h?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),m=f.map(C=>{let{selected:S,groupTitle:k,logo:v,id:x,...I}=C;return{id:`widget-setting-liquidity-source-${zp(x.toLowerCase())}-item-btn`,start:Ye.createElement(UE,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Ye.createElement(OE,{checked:S,disabled:c}),title:Ye.createElement(qE,{variant:"title",size:"xmedium"},Yt.t(k)),selected:S,groupTitle:k,logo:v,...I}}),d=i(C=>{let S=C.target.value;a(S)},"handleSearch"),y=m;return r&&(y=m.filter(C=>Nt(C.groupTitle,r))),Ye.createElement(ie,{header:{title:Yt.t(t),suffix:Ye.createElement(Ec,null,Ye.createElement(FE,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:g},h?Yt.t("Deselect all"):Yt.t("Select all")))}},Ye.createElement(ce,{view:!0},Ye.createElement(Et,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:Yt.t("Search {sourceType}",{sourceType:p[t]}),onChange:d}),e==="loading"&&Ye.createElement(Ac,null),!y.length&&r?Ye.createElement(Ic,null,Ye.createElement(QE,{title:Yt.t("No results found"),description:Yt.t("Try using different keywords")})):e==="success"&&Ye.createElement(Er,{disabled:c,className:"widget-liquidity-source-list"},y.map(C=>{let{groupTitle:S,...k}=C;return Ye.createElement(Ye.Fragment,{key:C.id},Ye.createElement(zE,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Nc,"LiquiditySourcePage");import{i18n as GE}from"@lingui/core";import da from"react";import{useNavigate as VE}from"react-router-dom";function Ph(){let t=VE(),e=Ge(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=ua({refetchQuote:n}),p=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,f=`../${F.wallets}`;return da.createElement(ie,{header:{onWallet:()=>{t(f),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:GE.t("Routes"),suffix:da.createElement(Bo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},da.createElement(ce,null,da.createElement(br,{fetch:c,loading:l,onClickOnQuote:p})))}i(Ph,"RoutesPage");import{i18n as zh}from"@lingui/core";import{Divider as Qh,getCategoriesCount as oI,SelectableCategoryList as nI}from"@rango-dev/ui";import Zt,{useState as qh}from"react";import{useNavigate as rI}from"react-router-dom";import{i18n as Bc}from"@lingui/core";import{Divider as YE,Image as ZE,ListItemButton as JE,NotFound as RE,Typography as Uh}from"@rango-dev/ui";import dt,{useEffect as eI,useState as tI}from"react";var _h=i((t,e,o)=>t.filter(n=>Hr(n.type,o)).filter(n=>rt(n.name,e)||rt(n.displayName,e)),"filterBlockchains");import{ImageContainer as KE,styled as Dh}from"@rango-dev/ui";var $h=Dh("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ma=Dh(sl,{padding:0,margin:0,listStyle:"none",[`& ${KE}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as jE,Skeleton as Fh}from"@rango-dev/ui";import fa from"react";var XE=20;function Oh(){return fa.createElement(ma,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(XE),t=>fa.createElement(jE,{key:t,hasDivider:!0,start:fa.createElement(Fh,{variant:"circular",width:35,height:35}),title:fa.createElement(Fh,{variant:"text",size:"large",width:90})})))}i(Oh,"LoadingBlockchainList");function Wc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=tI(e),{fetchStatus:l}=T();eI(()=>{c([..._h(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?dt.createElement(RE,{title:Bc.t("No results found"),description:Bc.t("Try using different keywords")}):dt.createElement(ma,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>dt.createElement(JE,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:dt.createElement(ZE,{src:u.logo,size:30}),title:dt.createElement(Uh,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return dt.createElement(dt.Fragment,null,a&&dt.createElement(dt.Fragment,null,dt.createElement(Uh,{variant:"label",size:"large"},Bc.t("Select Chain")),dt.createElement(YE,{size:4})),dt.createElement($h,null,l==="loading"&&dt.createElement(Oh,null),l==="success"&&p()))}i(Wc,"BlockchainList");function ga(t){let{type:e}=t,o=Ge(),[n,r]=qh(""),[a,s]=qh("ALL"),c=O.use.setToBlockchain(),l=O.use.setFromBlockchain(),{fetchStatus:p}=T(),u=rI(),f=T().blockchains({type:e}),h=oI(f),g=!t.hideCategory&&h!==1;return Zt.createElement(ie,{header:{title:zh.t("Select Chain")}},Zt.createElement(ce,{view:!0},g&&Zt.createElement(Zt.Fragment,null,Zt.createElement(nI,{setCategory:s,category:a,blockchains:f,isLoading:p==="loading"}),Zt.createElement(Qh,{size:24})),Zt.createElement(Et,{value:n,autoFocus:!0,placeholder:zh.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Zt.createElement(Qh,{size:16}),Zt.createElement(Wc,{list:f,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:m=>{e==="custom-token"?u(`..?blockchain=${m.name}`,{replace:!0}):(e==="source"?l(m):c(m),o())}})))}i(ga,"SelectBlockchainPage");import{i18n as Sa}from"@lingui/core";import{Divider as Yh,Spinner as CI}from"@rango-dev/ui";import mo,{useEffect as TI,useState as kI}from"react";import{useNavigate as vI}from"react-router-dom";import{i18n as Pc}from"@lingui/core";import{BlockchainsChip as ha,Divider as Kh,Image as jh,Skeleton as pI,Tooltip as uI,Typography as _c}from"@rango-dev/ui";import xe from"react";import{useEffect as sI}from"react";var Hh=["ETH","COSMOS","OSMOSIS"];function Lc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(iI),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p.name!==u)}}n.sort(aI(s)),r=n.splice(a)}return{list:n,more:r}}i(Lc,"prepare");function iI(t,e){let o=Hh,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(iI,"sortByMostUsedBlockchains");function aI(t){return i(function(o,n){let r=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=r>-1,c=a>-1;return s&&c?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(aI,"generateSortByPreferredBlockchainsFor");function Gh(t,e){return!!e.list.find(o=>o.name===t)}i(Gh,"isInVisibleList");function Mc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();sI(()=>{if(e?.selected){let a=Lc(t,o,e);Gh(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Lc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Mc,"usePrepareBlockchainList");import{styled as lI}from"@rango-dev/ui";var Vh=lI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var dI=6,mI=12;function Dc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=te(),c=Mc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=T(),p=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),f=c.more.length>0,h=c.more.length===1,g=!h&&f;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(Kh,{size:12}),xe.createElement(_c,{variant:"label",size:"large"},Pc.t("Select Chain"))),xe.createElement(Kh,{size:12}),xe.createElement(Vh,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?dI:mI),(m,d)=>xe.createElement(pI,{key:d,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(ha,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(_c,{variant:"body",size:"xsmall",color:"secondary500"},Pc.t("All"))),c.list.map(m=>xe.createElement(uI,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(ha,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(jh,{src:m.logo,size:30})))),h?xe.createElement(ha,{className:"widget-blockchains-section-only-item-btn",key:c.more[0].name,selected:!!n&&n.name===c.more[0].name,onClick:()=>r(c.more[0])},xe.createElement(jh,{src:c.more[0].logo,size:30})):null,g?xe.createElement(ha,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(_c,{variant:"body",size:"xsmall",color:"secondary500"},Pc._("More +{count}",{count:c.more.length}))):null)))}i(Dc,"BlockchainsSection");import{useCallback as gI,useRef as hI,useState as $c}from"react";function Fc(){let t=T().blockchains(),e=hI(null),{customTokens:o}=T(),[n,r]=$c(!1),[a,s]=$c([]),[c,l]=$c(null),p=i(async(h,g)=>{l(null),r(!0),s([]);try{let m=await at().searchCustomTokens({query:h,blockchain:g},{signal:e.current?.signal}),d=new Set(o().map(S=>Ut(S))),y=new Set(t.map(S=>S.name)),C=m.tokens.filter(S=>y.has(S.blockchain)&&!d.has(Ut(S)));s(C),r(!1)}catch(m){l(m instanceof Error?m.message:"something went wrong"),s([]),m?.name!=="CanceledError"&&r(!1)}},"fetch"),u=gI(qr((h,g)=>{e.current?.signal.aborted||p(h,g)},600),[t.length]);return{fetch:(h,g)=>{e.current=new AbortController,s([]),r(!0),u(h,g)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Fc,"useSearchCustomTokens");function ya(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(ya,"shouldSearchForCustomTokens");function Xh(t,e,o,n,r){let a=[...t];return ya(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(Xh,"prepareTokensList");function Ca(t){let{type:e}=t,o=vI(),n=Ge(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=O(),{getBalanceFor:u}=T(),{fetch:f,loading:h,tokens:g,cancel:m}=Fc(),[d,y]=kI(""),C=e==="source"?r:a,S=C?.name??"",k=T().blockchains({type:e}),v=T().tokens({type:e,blockchain:S,searchFor:d,getBalanceFor:u}),x=Xh(v,g,d,h,C?.name),I=i(b=>{e==="source"?l(b):p(b)},"updateBlockchain"),A=i(b=>{e==="source"?s({token:b,meta:{blockchains:k}}):c({token:b,meta:{blockchains:k}})},"updateToken"),E={source:Sa.t("Source"),destination:Sa.t("Destination")};return TI(()=>(ya(v,d,C?.name)&&f(d,C?.name??void 0),()=>{m()}),[v.length,d,C?.name]),mo.createElement(ie,{header:{title:Sa.t("Swap {type}",{type:E[e]})}},mo.createElement(ce,null,mo.createElement(Dc,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{I(b)}}),mo.createElement(Yh,{size:24}),mo.createElement(Et,{value:d,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Sa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:b=>y(b.target.value),suffix:ya(v,d,C?.name)&&h?mo.createElement(CI,{size:12,color:"secondary"}):void 0}),mo.createElement(Yh,{size:16}),mo.createElement(yr,{list:x,selectedBlockchain:S,searchedFor:d,type:e,onChange:b=>{A(b);let w=k.find(B=>b.blockchain===B.name);w&&I(w),n()}})))}i(Ca,"SelectSwapItemsPage");import{i18n as Qc}from"@lingui/core";import{Alert as XI,Button as YI,styled as ZI}from"@rango-dev/ui";import Fo from"react";import{useInRouterContext as JI,useSearchParams as RI}from"react-router-dom";import{i18n as ny}from"@lingui/core";import{Alert as EI,Divider as Uc,InfoIcon as II,SlippageIcon as AI,TextField as NI,Tooltip as BI,Typography as ry}from"@rango-dev/ui";import $e from"react";import{Chip as wI,styled as En,TextField as bI}from"@rango-dev/ui";var Zh=En("div",{paddingTop:"$5",padding:"$10 $5"}),Jh=En("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${bI}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Rh=En("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ta=En("div",{maxWidth:"280px",padding:"$10"}),ey=En(wI,{width:"61px",flexShrink:0}),ty=En("div",{outlineWidth:1,outlineStyle:"solid",borderRadius:"$xs",flex:1,variants:{status:{safe:{outlineColor:"$secondary500"},error:{outlineColor:"$error500"},warning:{outlineColor:"$warning500"},empty:{outlineWidth:0}}}});import{i18n as Oc}from"@lingui/core";import{Typography as xI}from"@rango-dev/ui";import Ar from"react";function oy(){return Ar.createElement(Ta,null,Ar.createElement(xI,{variant:"label",size:"medium",color:"neutral700"},Oc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Ar.createElement("br",null),Ar.createElement("br",null),Ar.createElement("b",null,Oc.t("Warning")),":\xA0",Oc.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(oy,"SlippageTooltipContent");function zc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?Xo(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let f=u;u>$n&&(f=$n),n(f)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;qp(u)||(p.value=u.slice(0,-1))},"onInput");return $e.createElement(Zh,null,$e.createElement(Rh,null,$e.createElement(AI,{size:16,color:"gray"}),$e.createElement(Uc,{direction:"horizontal",size:4}),$e.createElement(ry,{variant:"title",size:"xmedium"},ny.t("Slippage tolerance per swap")),$e.createElement(Uc,{direction:"horizontal",size:4}),$e.createElement(BI,{container:N(),side:"top",sideOffset:4,content:$e.createElement(oy,null)},$e.createElement(II,{color:"gray"}))),$e.createElement(Jh,null,su.map((l,p)=>{let u=`slippage-${p}`;return $e.createElement(ey,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),$e.createElement(ty,{status:r?.type||(o?"safe":"empty")},$e.createElement(NI,{type:"number",min:"0.01",max:"30",step:"0.01",id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&$e.createElement(ry,{variant:"body",size:"small"},"%"),placeholder:ny.t("Custom")}))),r&&$e.createElement($e.Fragment,null,$e.createElement(Uc,{size:10}),$e.createElement(EI,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(zc,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as iy,BridgesIcon as WI,ChevronRightIcon as ka,DarkModeIcon as ay,Divider as Nr,ExchangeIcon as LI,InfinityIcon as MI,InfoIcon as PI,LanguageIcon as _I,LightModeIcon as sy,List as DI,ListItem as $I,ListItemButton as FI,Skeleton as OI,styled as UI,Switch as zI,Tabs as QI,TargetIcon as qI,Tooltip as HI,Typography as nt}from"@rango-dev/ui";import D from"react";import{useNavigate as GI}from"react-router-dom";var VI=UI("div",{width:"202px",height:"$40"}),KI=[{id:"light",icon:D.createElement(sy,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:D.createElement(ay,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:D.createElement(iy,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],jI=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(iy,{...e});case"dark":return D.createElement(ay,{...e});default:return D.createElement(sy,{...e})}},"getThemeIcon");function ly(){let t=GI(),{theme:e}=T().config,{setTheme:o,theme:n}=T(),{activeLanguage:r,languages:a}=uo(),s=a.find(L=>L.local===r)?.label,c=T().fetchStatus,l=T().swappers(),p=T().getDisabledLiquiditySources(),{config:{features:u}}=T(),f=T().customTokens(),h=Re("theme",u),g=Re("liquiditySource",u),m=Re("language",u),d=Re("customTokens",u),y=T().infiniteApprove,C=T().toggleInfiniteApprove,S=ei(l,p),k=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=k.length,x=k.filter(L=>L.selected).length,I=S.filter(L=>L.type==="DEX"),A=I.length,E=I.filter(L=>L.selected).length,b=i((L,ae)=>{switch(c){case"loading":return D.createElement(OI,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(nt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return D.createElement(nt,{variant:"body",size:"medium"},`${L} / ${ae}`)}},"handleSwapperEndItem"),w={id:"widget-setting-bridge-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:D.createElement(D.Fragment,null,b(x,v),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(ka,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(WI,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:D.createElement(D.Fragment,null,b(E,A),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(ka,{color:"black"})),start:D.createElement(LI,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"body",size:"medium"},`${f.length}`),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(ka,{color:"black"})),start:D.createElement(qI,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},$={id:"widget-setting-language-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:D.createElement(_I,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"body",size:"medium"},s),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(ka,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),D.createElement(Nr,{direction:"horizontal",size:4}),D.createElement(HI,{side:"top",sideOffset:4,container:N(),content:D.createElement(Ta,null,D.createElement(nt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,Ct.t("Warning")),":\xA0",Ct.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(PI,{color:"gray"}))),start:D.createElement(MI,{color:"gray",size:16}),end:D.createElement(zI,{checked:y}),onClick:C},J={id:"widget-setting-theme-item-btn",type:D.createElement($I,null),title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:D.createElement(VI,null,D.createElement(QI,{container:N(),items:KI,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:jI(n)},K=g?[]:[w,B];return d||K.push(P),m||K.push($),K.push(q),!e?.singleTheme&&!h&&K.push(J),D.createElement(DI,{type:D.createElement(FI,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:K})}i(ly,"SettingsLists");var eA=ZI("div",{paddingLeft:"$8"});function cy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=RI(),r=JI(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Fo.createElement(ie,{header:{title:Qc.t("Settings")}},Fo.createElement(ce,null,o&&Fo.createElement(XI,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:Qc.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:Fo.createElement(eA,null,Fo.createElement(YI,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},Qc.t("Reset")))}),Fo.createElement(zc,null),Fo.createElement(ly,null)))}i(cy,"SettingsPage");import{i18n as HA}from"@lingui/core";import{cancelSwap as GA}from"@rango-dev/queue-manager-rango-preset";import{useManager as VA}from"@rango-dev/queue-manager-react";import{Alert as KA}from"@rango-dev/ui";import np from"react";import{useParams as jA}from"react-router-dom";import{i18n as mt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as xA,getCurrentStep as EA,getRelatedWalletOrNull as IA}from"@rango-dev/queue-manager-rango-preset";import{Button as Gy,CopyIcon as AA,Divider as NA,DoneIcon as BA,IconButton as WA,QuoteCost as LA,RangoExplorerIcon as MA,StepDetails as PA,Tooltip as Vy,Typography as Oo,useCopyToClipboard as _A}from"@rango-dev/ui";import{useWallets as DA}from"@rango-dev/wallets-react";import Ky from"bignumber.js";import{PendingSwapNetworkStatus as Ba}from"rango-types";import Y,{useEffect as jy,useRef as $A,useState as Xy}from"react";import{useNavigate as FA}from"react-router-dom";import{i18n as fo}from"@lingui/core";var tA=[fo.t("Sunday"),fo.t("Monday"),fo.t("Tuesday"),fo.t("Wednesday"),fo.t("Thursday"),fo.t("Friday"),fo.t("Saturday")];function py(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?fo.t("Today"):`${tA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(py,"timeSince");function uy(t){return t.finishTime?py(parseInt(t.finishTime)):py(parseInt(t.creationTime))}i(uy,"getSwapDate");import{PendingSwapNetworkStatus as Ea}from"rango-types";import Ia from"react";import{i18n as va}from"@lingui/core";import{Button as dy,Divider as qc,MessageBox as oA}from"@rango-dev/ui";import go from"react";var my=i(({onCancel:t,onClose:e})=>go.createElement(go.Fragment,null,go.createElement(qc,{size:20}),go.createElement(oA,{type:"error",title:va.t("Cancel Swap"),description:va.t("Are you sure you want to cancel this swap?")}),go.createElement(qc,{size:32}),go.createElement(dy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},va.t("Yes, Cancel it")),go.createElement(qc,{size:12}),go.createElement(dy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},va.t("No, Continue"))),"CancelContent");import{i18n as wa}from"@lingui/core";import{Button as fy,Divider as Hc,MessageBox as nA,Typography as rA}from"@rango-dev/ui";import Jt from"react";var gy=i(({onDelete:t,onClose:e})=>Jt.createElement(Jt.Fragment,null,Jt.createElement(Hc,{size:20}),Jt.createElement(nA,{type:"error",title:wa.t("Delete Transaction"),description:wa.t("Are you sure you want to delete this swap?")}),Jt.createElement(Hc,{size:32}),Jt.createElement(fy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},wa.t("Yes, Delete it")),Jt.createElement(Hc,{size:12}),Jt.createElement(fy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Jt.createElement(rA,{variant:"title",size:"medium",color:"primary"},wa.t("No, Cancel")))),"DeleteContent");import{i18n as ba}from"@lingui/core";import{PendingSwapNetworkStatus as xa}from"rango-types";var Gc={[xa.WaitingForNetworkChange]:{type:"loading",title:ba.t("Change Network")},[xa.WaitingForConnectingWallet]:{type:"warning",title:ba.t("Connect Wallet")},[xa.NetworkChanged]:{type:"success",title:ba.t("Network Changed")},[xa.NetworkChangeFailed]:{type:"warning",title:ba.t("Network Change Failed")}};import{warn as iA}from"@rango-dev/logging-core";import{getCurrentStep as aA,getRelatedWalletOrNull as sA}from"@rango-dev/queue-manager-rango-preset";import{MessageBox as lA,Wallet as cA}from"@rango-dev/ui";import{useWallets as pA}from"@rango-dev/wallets-react";import In,{useState as uA}from"react";import{styled as Vc}from"@rango-dev/ui";var hy=Vc("div",{display:"flex",justifyContent:"center"}),Hj=Vc("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),yy=Vc("img",{width:"100%"});var Sy=i(t=>{let{type:e,title:o,swap:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[c,l]=uA(),{getWalletInfo:p,state:u}=pA(),f=aA(n),h=f?sA(n,f):null,g=f?.fromBlockchain,m=h?.walletType,d=m?Pn(u(m)):null,y=m?p(m):null,C=a&&!!m&&!!d&&!!y,{list:S}=Tt(),k=i(()=>{if(m){let v=S.find(x=>x.type===m);v?l(v):iA(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${v}`))}},"handleWalletItemClick");return In.createElement(In.Fragment,null,In.createElement(lA,{type:e,title:o,description:r}),C&&In.createElement(hy,null,In.createElement(cA,{container:N(),title:y.name,image:y.img,type:m,state:d,link:y.installLink,disabled:s,onClick:k})),In.createElement(xo,{id:"widget-swap-details-modal",wallet:c,onClose:()=>{l(void 0)},options:{defaultSelectedChains:g?[g]:void 0}}))},"WalletStateContent");function Kc(t){let{state:e,onClose:o,onDelete:n,onCancel:r,swap:a,message:s,walletButtonDisabled:c}=t,l=e===Ea.WaitingForNetworkChange||e===Ea.WaitingForConnectingWallet||e===Ea.NetworkChanged;return Ia.createElement(Z,{id:"widget-swap-details-modal",open:!!e,onClose:o,container:document.getElementById(Qe.SWAP_BOX_ID)||document.body},l&&Ia.createElement(Sy,{type:Gc[e].type,title:Gc[e].title,swap:a,message:s,walletButtonDisabled:c,showWalletButton:e!==Ea.WaitingForNetworkChange}),e==="delete"&&Ia.createElement(gy,{onClose:o,onDelete:n}),e==="cancel"&&Ia.createElement(my,{onClose:o,onCancel:r}))}i(Kc,"SwapDetailsModal");import{i18n as Br}from"@lingui/core";import{Button as jc,Divider as Wr,MessageBox as ky,TokenAmount as dA,Typography as vy}from"@rango-dev/ui";import Ce from"react";import{Link as mA,useNavigate as fA}from"react-router-dom";var Cy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Ty="/profile";function Xc(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:f,diagnosisUrl:h}=t,g=fA(),{showProfileBanner:m}=te();return Ce.createElement(Z,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(Qe.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(ky,{type:"success",title:Br.t("Swap Successful")},Ce.createElement(dA,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Ce.createElement(Wr,{size:12}),Ce.createElement(vy,{variant:"body",size:"medium",color:"neutral700",align:"center"},f)):Ce.createElement(ky,{type:"error",title:Br.t("Transaction Failed"),description:f}),Ce.createElement(Wr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,m&&Ce.createElement(Ce.Fragment,null,Ce.createElement(mA,{to:Ty},Ce.createElement(yy,{src:Cy,alt:"Profile Banner"})),Ce.createElement(Wr,{size:30})),Ce.createElement(jc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{g("../../")}},Br.t("Done"))),Ce.createElement(Wr,{size:12}),h&&Ce.createElement(Ce.Fragment,null,Ce.createElement(jc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},Br.t("Diagnosis")),Ce.createElement(Wr,{size:12})),Ce.createElement(jc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(vy,{variant:"title",size:"medium",color:"primary"},Br.t("See Details"))))}i(Xc,"SwapDetailsCompleteModal");import bA from"react";import{i18n as TA}from"@lingui/core";import{Alert as zy,IconButton as kA,LinkIcon as vA}from"@rango-dev/ui";import ho,{Fragment as wA}from"react";import{Alert as hA,ChevronDownIcon as yA,IconButton as SA}from"@rango-dev/ui";import Nn,{useState as CA}from"react";import{css as Lr,darkTheme as wy,styled as Dt,Typography as gA}from"@rango-dev/ui";var by=Dt(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${wy} &`]:{color:"$secondary500"}}}}}),xy=Dt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ey=Dt("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Iy=Dt("div",{padding:"$0 $20 $20 $20"}),L3=Dt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Ay=Dt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),M3=Dt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),An=Lr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${wy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Ny=Lr({padding:"$5 0"}),Aa=Lr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),By=Lr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Wy=Lr({width:"100%",padding:"0 $20 $10"}),Ly=Dt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),My=Dt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Na=Dt(gA,{wordBreak:"break-word"});import{styled as Yc}from"@rango-dev/ui";var Py=Yc("div",{display:"flex",flexDirection:"column",gap:"$10"}),_y=Yc("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Dy=Yc("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function $y(t){let{message:e}=t,[o,n]=CA(!1);return Nn.createElement(hA,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Nn.createElement(SA,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Nn.createElement(_y,{rotated:o},Nn.createElement(yA,{size:12,color:"gray"}))),footer:Nn.createElement(Dy,{open:o},Nn.createElement(Na,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i($y,"FailedAlert");import{i18n as Fy}from"@lingui/core";import{Alert as Zc,Button as Oy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Jc}from"rango-types";import Mr from"react";function Uy(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Mr.createElement(Zc,{type:"warning",id:"widget-swap-details-change-network-alert",title:n.shortMessage,action:Mr.createElement(Oy,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Jc.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Fy.t("Change"))}):r===Jc.WaitingForConnectingWallet?Mr.createElement(Zc,{type:"warning",title:n.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Mr.createElement(Oy,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Jc.WaitingForConnectingWallet)}},Fy.t("Connect"))}):Mr.createElement(Zc,{id:"widget-swap-details-short-alert",type:"warning",title:n.shortMessage})}i(Uy,"WarningAlert");function Rc(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,c=Xn(a),l=a.status==="waitingForApproval"&&!c,p=a.status==="running"&&!c,u=p&&!s||l&&!a.explorerUrl?.length;return ho.createElement(Py,null,a.explorerUrl?.map((f,h,g)=>{let m=h+f.url,d=h===g.length-1,y=(d&&p||l)&&!u,C=d&&a.status==="failed";return ho.createElement(wA,{key:m},ho.createElement(zy,{id:"widget-swap-details-tx-alert",type:d&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:TA.t("View transaction"),action:f.url&&ho.createElement(kA,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},ho.createElement(vA,{size:12}))}))}),u&&ho.createElement(zy,{id:"widget-swap-details-loading-alert",type:"loading",title:r.shortMessage}),a.status!=="failed"&&c&&ho.createElement(Uy,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&ho.createElement($y,{message:r}))}i(Rc,"SwapDetailsAlerts");var Qy=2e3;var qy=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:ft(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Bn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ft(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ft(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Bn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:bA.createElement(Rc,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Hy(t){if(Xn(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(Hy,"getStepState");function ep(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=DA(),l=T().blockchains(),p=T().swappers(),{findToken:u}=T(),f=O.use.retry(),h=te.use.isActiveTab(),g=FA(),[m,d]=_A(Qy),y=$A(null),[C,S]=Xy(null),[k,v]=Xy(null),x=i(()=>{r(),S(null)},"onCancel"),I=Ae.use.getNotifications(),A=Ae.use.removeNotification(),E=I(),b=EA(e),w=b?.networkStatus;jy(()=>{E.find(ze=>ze.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),A(e.requestId)):k&&v(null))},[e.status,e.requestId]),jy(()=>{L?S(Ba.WaitingForNetworkChange):w===Ba.WaitingForConnectingWallet||w===Ba.NetworkChanged?S(w):S(null)},[w]);let B=Id(e),P=b?xA(e,b):null,$=b?IA(e,b):null,q=uy(e),J=Ad(e),K=i(be=>!!c(be)?.mobileWallet,"isMobileWallet"),L=w===Ba.WaitingForNetworkChange&&!!P&&!!$?.walletType&&(K($.walletType)||a($.walletType,P.network)),ae=L?s.bind(null,$.walletType,[{namespace:P.namespace,network:P.network}]):void 0,re=Ed(e,b,c),Q=qy({swap:e,switchNetwork:ae,showNetworkModal:w,setNetworkModal:S,message:re,blockchains:l,swappers:p}),ee=Q.length,[le,ue]=[e.steps[0],e.steps[ee-1]],se=ue.outputAmount||ue.expectedOutputAmountHumanReadable,Ze=e.steps.reduce((be,ze)=>be+parseFloat(ze.feeInUsd||""),0),H=e.steps.find(be=>be.diagnosisUrl)?.diagnosisUrl,W=_(parseFloat(se||"0")*(ue.toUsdPrice||0),4,4),G=_(parseFloat(e.inputAmount)*(le.fromUsdPrice||0),4,4),j=se?new Ky(se).multipliedBy(ue.toUsdPrice||0).toString():"",R=new Ky(e.inputAmount).multipliedBy(le.fromUsdPrice||0).toString(),fe=zt(G,W),Ue=re.detailedMessage.content||re.shortMessage,Je=e.status==="success"?mt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(se,6,6),token:Q[ee-1].to.token.displayName,conciseAddress:Go(e.wallets[Q[ee-1].to.chain.displayName]?.address||""),chain:Q[ee-1].to.chain.displayName}}):Y.createElement(My,null,Y.createElement(Oo,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ue?"":mt.t("Transaction was not sent."),B?`${mt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),Ue&&Y.createElement(Na,{align:"center",variant:"body",size:"medium",color:"neutral700"},Y.createElement("b",null,"Reason:")," ",Ue));return Y.createElement(ie,{header:{title:mt.t("Swap Details"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&Y.createElement(ro,null,Y.createElement(Gy,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},Y.createElement(Oo,{size:"medium",variant:"label",color:"error"},mt.t("Delete"))))},footer:J&&!k&&Y.createElement(Gy,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let be=fi(e,l,u);f(be),setTimeout(()=>{g("../../")},0)}},mt.t("Try again"))},Y.createElement(by,{compact:!0,ref:y,id:"widget-swap-details-container"},Y.createElement(Ey,{className:An()},Y.createElement(Oo,{variant:"label",size:"large",color:"neutral700"},`${mt.t("Request ID")}`),Y.createElement("div",{className:Aa()},Y.createElement(Oo,{variant:"label",size:"small",color:"neutral700"},o),Y.createElement(Vy,{container:N(),content:m?mt.t("Copied To Clipboard"):mt.t("Copy Request ID"),open:m||void 0,side:"bottom",alignOffset:-16,align:"end"},Y.createElement(WA,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:d.bind(null,o||"")},m?Y.createElement(BA,{size:16,color:"secondary"}):Y.createElement(AA,{size:16,color:"gray"}))),Y.createElement(Ly,{target:"_blank",href:`${Ep}/swap/${o}`},Y.createElement(Vy,{container:N(),content:mt.t("View on Rango Explorer"),side:"bottom"},Y.createElement(MA,{size:20}))))),Y.createElement("div",{className:An()},Y.createElement(Oo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?mt.t("Finished at"):mt.t("Created at")),Y.createElement(Oo,{variant:"label",size:"small",color:"neutral700"},q)),Y.createElement("div",{className:By()},Y.createElement(LA,{fee:_(String(Ze),2,2),time:Ln(Vr(e.steps)),steps:ee}),Y.createElement(sr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:G,realUsdValue:R,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:_(se,6,6),usdValue:W,realUsdValue:j,realValue:se||""},token:{displayName:Q[ee-1].to.token.displayName,image:Q[ee-1].to.token.image},chain:{image:Q[ee-1].to.chain.image,displayName:Q[ee-1].to.chain.displayName}},percentageChange:_(fe,2,2),warningLevel:Qt(fe??0)})),Y.createElement("div",{className:Wy()},Y.createElement(Oo,{variant:"title",size:"small"},mt.t("Swaps steps"))),Y.createElement(NA,{size:8}),Y.createElement(Iy,null,Q.map((be,ze)=>{let Rt=ze,yo=Hy(e.steps[ze]),wS=yo==="error"||yo==="in-progress"||yo==="warning"||yo==="completed"&&ze===Q.length-1;return Y.createElement(PA,{className:"widget-swap-details-step-item-container",key:Rt,step:be,type:"swap-progress",ref:y,state:yo,hasSeparator:ze!==0,tabIndex:Rt,isFocused:wS,tooltipContainer:N()})}))),Y.createElement(Kc,{state:C,onClose:()=>S(null),onCancel:x,onDelete:n,message:re.detailedMessage.content,swap:e,walletButtonDisabled:!h}),Y.createElement(Xc,{open:!!k,diagnosisUrl:H,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:_(se,6,6),usdValue:W,realUsdValue:j,realValue:se||"",percentageChange:_(fe,2,2),token:{displayName:Q[ee-1].to.token.displayName,image:Q[ee-1].to.token.image},chain:{image:Q[ee-1].to.chain.image},description:Je}))}i(ep,"SwapDetails");import{i18n as La}from"@lingui/core";import{Divider as Jy,NotFound as qA,Skeleton as _r,Typography as Ma}from"@rango-dev/ui";import Ie from"react";import{i18n as OA}from"@lingui/core";import{Divider as UA,Skeleton as zA,Typography as QA}from"@rango-dev/ui";import Ee from"react";import{css as At,styled as tp}from"@rango-dev/ui";var Yy=tp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Pr=tp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Wa=tp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),GX=At({display:"flex",justifyContent:"space-between",alignItems:"center"}),VX=At({display:"flex",justifyContent:"space-between",alignItems:"center"}),KX=At({paddingTop:"$15",display:"flex"}),jX=At({padding:"$15 $0"}),XX=At({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),YX=At({paddingBottom:"$10"}),ZX=At({display:"flex",justifyContent:"start",alignItems:"center"}),JX=At({paddingTop:"$5",display:"flex",alignItems:"center"}),RX=At({display:"flex",alignItems:"center"}),eY=At({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Zy=At({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function op(){return Ee.createElement(Yy,null,Ee.createElement(cr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(QA,{variant:"title",size:"small"},OA.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1}),Ee.createElement("div",{className:Zy()},Ee.createElement(UA,{direction:"horizontal",size:20}),Ee.createElement(zA,{height:22,variant:"rectangular"}))),Ee.createElement(Wa,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1})),Ee.createElement(Wa,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1})),Ee.createElement(Wa,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1}))))}i(op,"LoadingSwapDetails");function Ry(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ie,{header:{title:La.t("Swap Details"),suffix:Ie.createElement(ro,null)}},o&&Ie.createElement(xy,null,Ie.createElement("div",{className:An()},Ie.createElement(Ma,{variant:"label",size:"large",color:"neutral700"},`${La.t("Request ID")}`),Ie.createElement("div",{className:Aa()},Ie.createElement(Ma,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(Jy,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}),Ie.createElement(Jy,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:An()},Ie.createElement(Ma,{className:Ny(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(Ma,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"}))),Ie.createElement(op,null)),!o&&Ie.createElement(Ay,null,Ie.createElement(qA,{title:La.t("Not found"),description:La.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Ry,"SwapDetailsPlaceholder");function eS(){let{manager:t,state:e}=VA(),o=!e.loadedFromPersistor,n=St(t),{requestId:r}=jA(),a=Ge(),{fetchStatus:s}=T();if(!r)return np.createElement(KA,{containerStyles:{margin:"20px"},type:"error",title:HA.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:h})=>h.requestId===r):void 0,p=i(()=>{if(l?.id){let h=t?.get(l.id);h&&GA(h)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(h){console.log(h)}},"onDelete"),f=l?.swap;return!f||c?np.createElement(Ry,{requestId:r,showSkeleton:c}):np.createElement(ep,{swap:f,requestId:r,onCancel:p,onDelete:u})}i(eS,"SwapDetailsPage");import{i18n as tS}from"@lingui/core";import{Divider as XA,getCategoriesCount as YA,SelectableCategoryList as ZA,styled as nS,Typography as JA,Wallet as RA,WalletState as e0}from"@rango-dev/ui";import{useWallets as t0}from"@rango-dev/wallets-react";import $t,{useState as oS}from"react";var o0=nS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),n0=nS(ce,{textAlign:"center"});function rS(){let{fetchStatus:t}=T(),[e,o]=oS("ALL"),n=T().blockchains(),{config:r}=T(),{state:a}=t0(),[s,c]=oS(),l=te.use.isActiveTab(),{list:p}=Tt(),u=tu(p,n),h=YA(u)!==1,g=ou(p,e),m=i(d=>{Dp(p,r.multiWallets)||c(d)},"handleWalletItemClick");return $t.createElement(ie,{header:{title:tS.t("Connect Wallets")}},$t.createElement(n0,null,h&&$t.createElement($t.Fragment,null,$t.createElement(ZA,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),$t.createElement(XA,{size:24})),$t.createElement(JA,{variant:"title",size:"xmedium",align:"center"},tS.t("Choose a wallet to connect.")),$t.createElement(o0,null,g.map((d,y)=>{let S=a(d.type).namespaces,k=`wallet-${y}-${d.type}`,v=ja(d,S);return $t.createElement(RA,{key:k,...d,state:v?e0.PARTIALLY_CONNECTED:d.state,container:N(),onClick:()=>m(d),isLoading:t==="loading",disabled:!l})}),$t.createElement(xo,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(rS,"WalletsPage");function iS(){return Ld(),Ls(),r0([{path:F.home,element:Oe.createElement(Nh,null)},{path:F.routes,element:Oe.createElement(Ph,null)},{path:F.fromSwap,children:[{index:!0,element:Oe.createElement(Ca,{type:"source"})},{path:F.blockchains,element:Oe.createElement(ga,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:Oe.createElement(Ca,{type:"destination"})},{path:F.blockchains,element:Oe.createElement(ga,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:Oe.createElement(cy,null)},{path:F.languages,element:Oe.createElement(Wh,null)},{path:F.exchanges,element:Oe.createElement(Nc,{sourceType:"Exchanges"})},{path:F.bridges,element:Oe.createElement(Nc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:Oe.createElement(Wg,null)},{path:F.addCustomTokens,children:[{index:!0,element:Oe.createElement(Em,null)},{path:F.blockchains,element:Oe.createElement(ga,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:Oe.createElement(Zg,null)},{path:F.swapDetails,element:Oe.createElement(eS,null)}]},{path:F.wallets,element:Oe.createElement(rS,null)},{path:F.confirmSwap,element:Oe.createElement(yg,null)}])}i(iS,"AppRoutes");import{useQueueManager as m0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as f0}from"rango-sdk";import{useContext as g0,useEffect as dS,useState as mS}from"react";import{globalCss as i0}from"@rango-dev/ui";var aS=i(()=>i0({"@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 sS(){let{setWatermark:t,setShowProfileBanner:e}=te();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Ot("BASE_URL")}/meta/dapp/config?apiKey=${Ot("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(sS,"useFetchApiConfig");import{useWallets as a0}from"@rango-dev/wallets-react";import{useEffect as s0,useRef as l0}from"react";function lS(){let{connect:t,state:e}=a0(),o=l0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);s0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(lS,"useForceAutoConnect");import{isApprovalTX as c0,RouteEventType as cS,StepEventType as pS,StepExecutionEventStatus as p0,WidgetEvents as Pa}from"@rango-dev/queue-manager-rango-preset";import{useEffect as uS}from"react";function rp(){let t=Ae.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();uS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===pS.TX_EXECUTION&&s.status===p0.TX_SENT&&!c0(c)||s.type===pS.SUCCEEDED){let u=[],f=l.wallets[c?.fromBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.fromBlockchain);h&&u.push(h)}if(c?.fromBlockchain!==c?.toBlockchain){let h=l.wallets[c?.toBlockchain];if(h){let g=e.find(m=>m.address?.toLocaleLowerCase()===h.address?.toLocaleLowerCase()&&m.walletType===h.walletType&&m.chain===c?.toBlockchain);g&&u.push(g)}}if(u.length>0){let h=n(),m=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>h.some(y=>y.blockchain===d.blockchain&&y.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&y.symbol?.toLocaleLowerCase()===d.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:m,shouldFetchCustomTokens:m.length>0})}}t(s,l)},"handleStepEvent");return Te.on(Pa.StepEvent,r),()=>Te.off(Pa.StepEvent,r)},[Te,e]),uS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===cS.FAILED||s.type===cS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Te.on(Pa.RouteEvent,r),()=>Te.off(Pa.RouteEvent,r)},[Te])}i(rp,"useSubscribeToWidgetEvents");import{useManager as u0}from"@rango-dev/queue-manager-react";import{useEffect as d0}from"react";function ip(){let{isSynced:t,syncNotifications:e}=Ae(),{manager:o,state:n}=u0();d0(()=>{Ae.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(St(o))},[Ae.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ip,"useSyncNotifications");function ap(){lS(),aS(),rp(),ip();let t=T().blockchains(),{canSwitchNetworkTo:e}=$i(),[o,n]=mS(null),[r,a]=mS(),s=g0(ui),c=t.filter(f0),{fetchApiConfig:l}=sS();dS(()=>()=>Wd(),[]),m0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),dS(()=>(wo.init(),Ae.persist.hasHydrated()||Ae.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let f={...u};return p.network&&(f.network=p.network),p.accounts&&(f.accounts=p.accounts),f})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),wo.destroy),[])}i(ap,"useBootstrap");import{styled as h0}from"@rango-dev/ui";var fS=h0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function _a(){ap();let{config:t}=T(),{activeTheme:e}=no(t?.theme||{}),{activeLanguage:o}=uo();return sp.createElement(y0,{language:o},sp.createElement(fS,{id:"swap-container",className:e()},sp.createElement(iS,null)))}i(_a,"Main");import{setSolanaSignerConfig as $0}from"@rango-dev/signer-solana";import cp,{useEffect as TS,useMemo as F0}from"react";import{useState as S0}from"react";var C0=i(()=>{let[t,e]=S0(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=_p(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),gS=C0;import{checkWaitingForNetworkChange as T0,makeQueueDefinition as k0}from"@rango-dev/queue-manager-rango-preset";import{Provider as v0}from"@rango-dev/queue-manager-react";import{useWallets as w0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as b0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as x0}from"rango-types";import E0,{useMemo as I0}from"react";function A0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=w0(),c=I0(()=>k0({API_KEY:t.apiKey||Ot("API_KEY"),BASE_URL:Ot("BASE_URL"),emitter:{emit:Te.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=T(),u=l(),f={blockchains:p.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,x)=>a(v,x.network)?await r(v,[x]):void 0,"switchNetwork"),g=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=u.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),d=u.filter(x0),y=i(v=>{let{supportedChains:x}=s(v);return _n(x)},"getSupportedChainNames"),C=e(),S={meta:{blockchains:m,evmBasedChains:d,evmNetworkChainInfo:b0(d),getSupportedChainNames:y},getSigners:o,wallets:f,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g},k=te.use.isActiveTab();return E0.createElement(v0,{queuesDefs:[c],context:S,onPersistedDataLoaded:v=>{T0(v)},isPaused:!k},t.children)}i(A0,"QueueManager");var hS=A0;import{useManager as M0}from"@rango-dev/queue-manager-react";import P0,{createContext as _0,useContext as D0}from"react";function yS(){let{findToken:t}=T(),e=T().blockchains(),o=T().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(p=>{let{fromBlockchain:u,fromToken:f,toBlockchain:h,toToken:g,requestAmount:m}=p,d={blockchains:e,tokens:o};if(u!==void 0){let y=e.find(C=>C.name===u)??null;n(y)}if(f!==void 0){let y=f?t(f)??null:null;r({meta:d,token:y})}if(h!==void 0){let y=e.find(C=>C.name===h)??null;a(y)}if(g!==void 0){let y=g?t(g)??null:null;s({meta:d,token:y})}m!==void 0&&c(m)},"updateQuoteInputs")}i(yS,"useUpdateQuoteInputs");import{cancelSwap as N0,getCurrentNamespaceOfOrNull as B0,getCurrentStep as W0,getRelatedWalletOrNull as L0}from"@rango-dev/queue-manager-rango-preset";var Da=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return St(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=fi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&N0(o)}getCurrentStepInfo(e){let o=W0(e);return{step:o,wallet:o?L0(e,o):null,network:o?B0(e,o)?.network:null}}};var SS=_0(void 0);function lp(t){let{manager:e}=M0(),o=te.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=T(),l=new Da(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=T(),u=Xp(a()),f=T().blockchains(),h=T().tokens(),g=T().swappers(),m=T().fetchStatus,d=uo().resetLanguage,y=Ae().getNotifications(),C=Ae().clearNotifications,S=yS(),{fromBlockchain:k,toBlockchain:v,fromToken:x,toToken:I,inputAmount:A}=O(),E={isActiveTab:o,setCurrentTabAsActive:wo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async b=>c(b)},meta:{blockchains:f,tokens:h,swappers:g,loadingStatus:m,findToken:r},resetLanguage:d,notifications:{list:y,clearAll:C},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:S}};return P0.createElement(SS.Provider,{value:E},t.children)}i(lp,"WidgetInfo");function CS(){let t=D0(SS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(CS,"useWidget");function $a(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=gS();return TS(()=>{n&&r(n)},[n]),F0(()=>{nu({API_KEY:o?.apiKey||zr,BASE_URL:o?.apiUrl||xp})},[o.apiKey,o.apiUrl]),TS(()=>{t.config?.signers?.customSolanaRPC&&$0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),cp.createElement(di,{config:o,onUpdateState:e},cp.createElement(hS,{apiKey:o.apiKey},cp.createElement(lp,null,t.children)))}i($a,"WidgetProvider");function kS(t){let e=t.config?.externalWallets;return Fa.createElement(Ru,null,e?Fa.createElement(_a,null):Fa.createElement($a,{config:t.config??Or},Fa.createElement(_a,null)))}i(kS,"Widget");function vS(){let{on:t,off:e}=Te;return{on:t,off:e}}i(vS,"useWidgetEvents");var sJ={DerivationPath:Hn,Namespaces:zn,Detached:qn,isOnDerivationPath:Vn,isOnNamespace:Gn,isOnDetached:Kn};export{MZ as EventSeverity,Ko as MainEvents,qZ as Networks,VZ as PendingSwapNetworkStatus,Ra as QuoteEventTypes,PZ as RouteEventType,Qa as SUPPORTED_FONTS,sJ as StatefulConnect,_Z as StepEventType,DZ as StepExecutionBlockedEventStatus,$Z as StepExecutionEventStatus,Qe as UI_ID,ts as UiEventTypes,es as WalletEventTypes,zZ as WalletEvents,HZ as WalletTypes,kS as Widget,Ko as WidgetEvents,$a as WidgetProvider,di as WidgetWallets,Ks as customizedThemeTokens,OZ as readAccountAddress,Uo as useStatefulConnect,Tt as useWalletList,$i as useWallets,CS as useWidget,vS as useWidgetEvents,EC as widgetEventEmitter};
1
+ var bS=Object.defineProperty;var i=(t,e)=>bS(t,"name",{value:e,configurable:!0});import{EventSeverity as PZ,RouteEventType as _Z,StepEventType as DZ,StepExecutionBlockedEventStatus as $Z,StepExecutionEventStatus as FZ}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as UZ}from"@rango-dev/wallets-core/legacy";import{useWallets as Fi,Events as QZ}from"@rango-dev/wallets-react";import{Networks as HZ,WalletTypes as GZ}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as KZ}from"rango-types";import{Divider as _T}from"@rango-dev/ui";import to,{useEffect as DT,useRef as $T,useState as Vu}from"react";import{WalletState as xS}from"@rango-dev/ui";import{useWallets as ES}from"@rango-dev/wallets-react";import{useReducer as IS}from"react";function up(t){return!!t.derivationPath}i(up,"isStateOnDerivationPathStep");function dp(t){return!!t.namespace}i(dp,"isStateOnNamespace");var Dr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function mp(t,e){switch(e.type){case"needsNamespace":return{...t,status:"namespace",namespace:e.payload,derivationPath:null};case"needsDerivationPath":return{...t,status:"derivationPath",derivationPath:e.payload};case"detached":return{...t,status:"detached",namespace:{targetWallet:e.payload.targetWallet},selectedNamespaces:e.payload.selectedNamespaces};case"reset":return Dr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Dr;default:throw new Error("Action hasn't been defined.")}}i(mp,"reducer");function Uo(){let{state:t,disconnect:e,connect:o}=ES(),[n,r]=IS(mp,Dr),a=i(async(u,f,h)=>{r({type:"reset"});try{let g=f?.map(m=>({...m,network:void 0}));return await o(u,g),{status:"connected"}}catch(g){let m=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:g})}},"runConnect"),s=i(async(u,f)=>{if(u.state===xS.DISCONNECTED){let g=!!u.isHub,m=g?u.properties?.find(y=>y.name==="namespaces")?.value:u.needsNamespace,d=g?u.properties?.find(y=>y.name==="derivationPath")?.value:u.needsDerivationPath;if(!m?.data?.length)return await a(u.type,void 0,f);if(m?.data.length&&m.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:u,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(m?.data.length===1){if(d){let y=m.data[0];return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:y.value}}),{status:"derivation-path"}}return await a(u.type,m?.data?.map(y=>({namespace:y.value})),f)}}if(u.isHub){let g=u.properties?.find(m=>m.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:u,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await p(u.type),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(u,f)=>{let h=!!u.isHub,g=h?u.properties?.find(S=>S.name==="namespaces")?.value:u.needsNamespace,m=h?u.properties?.find(S=>S.name==="derivationPath")?.value:u.needsDerivationPath,d=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(d&&m)return r({type:"needsDerivationPath",payload:{providerType:u.type,providerImage:u.image,namespace:y}}),{status:"derivation-path"};if(!dp(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(S=>({namespace:S}));return r({type:"detached",payload:{targetWallet:u,selectedNamespaces:C?.map(S=>S.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async u=>{if(!u)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!up(n))throw new Error("It seems you are filling derivation path without setting namespace before doing that. Please retry to connect.");let f=n.derivationPath.providerType,g=[{namespace:n.derivationPath.namespace,derivationPath:u}];return await a(f,g)},"handleDerivationPath"),p=i(async u=>{let f=t(u);return f.connected||f.connecting?(await e(u),{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:p,handleNamespace:c,handleDerivationPath:l,getState:()=>n,resetState:u=>{r(u==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Uo,"useStatefulConnect");import{WalletState as cs}from"@rango-dev/ui";import{useWallets as $C}from"@rango-dev/wallets-react";import{detectMobileScreens as FC,KEPLR_COMPATIBLE_WALLETS as OC,WalletTypes as On}from"@rango-dev/wallets-shared";import{useCallback as UC,useEffect as zC}from"react";import LC,{createContext as MC,useContext as PC,useEffect as _C,useRef as DC}from"react";import{create as BC}from"zustand";import{persist as WC}from"zustand/middleware";import{allProviders as AS}from"@rango-dev/provider-all";var Ua=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()}},zo=new Ua;import{defineVersions as gp,pickVersion as hp,Provider as za}from"@rango-dev/wallets-core";function yp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=Sp(a);return s instanceof za?s.id===n:s.config.type===n});r?o.push(r):console.warn(`Couldn't find ${n} provider. Please make sure you are passing the correct name.`)}else n instanceof za?o.push(gp().version("1.0.0",n).build()):o.push(gp().version("0.0.0",n).build())}),o}return t}i(yp,"matchAndGenerateProviders");function Sp(t){try{return hp(t,"1.0.0")[1]}catch{return hp(t,"0.0.0")[1]}}i(Sp,"pickProviderVersionWithFallbackToLegacy");function Cp(t){return t.map(o=>Sp(o)).map(o=>o instanceof za?o.id:o.config.type)}i(Cp,"configWalletsToWalletName");function $r(t,e){return e.find(o=>o.name===t)?.displayName}i($r,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Tp(t,e){return e.find(o=>o.name===t)?.logo}i(Tp,"getBlockchainImage");function Bn(t,e){return e.find(o=>o.id===t)?.title}i(Bn,"getSwapperDisplayName");function So(t,e){return e.find(o=>o.name===t)??null}i(So,"findBlockchain");function Qa(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(Qa,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function Qo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Qo,"isValidTokenAddress");function Wn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=gt(l));let p=o.tokensMapByTokenHash.get(l);p&&(n[l]=p)})},"addTokens");if(Array.isArray(r))return r.length>0?(a(r),Object.values(n)):Array.from(o.tokensMapByTokenHash.values());if(!r)return Array.from(o.tokensMapByTokenHash.values());let s;if(e.blockchains?.length)s=e.blockchains;else{s=Object.keys(r);let c=new Set(s);Object.keys(o.tokensMapByBlockchainName).forEach(l=>{c.has(l)||a(o.tokensMapByBlockchainName[l])})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=gt(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Wn,"matchTokensFromConfigWithMeta");function Fr(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(Fr,"getSupportedBlockchainsFromConfig");function vp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(vp,"makeProvidersOptionsFromConfig");var Or={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"}},NS={clientUrl:void 0},BS={liquiditySources:void 0};function kp(t){let e=vp(t),o={walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||"",DISABLE_MODAL_AND_OPEN_LINK:e?.walletConnectListedDesktopWalletLink},selectedProviders:t.wallets,trezor:e?.trezorManifest?{manifest:e.trezorManifest}:void 0,tonConnect:e?.tonConnect?.manifestUrl?{manifestUrl:e?.tonConnect.manifestUrl}:void 0};return AS(o).map(a=>a())}i(kp,"generateProviders");var wp=i((t,e,o)=>{let n=kp({...Or,...t});return{config:{...Or,...t},iframe:NS,campaignMode:BS,allProviders:n,getLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?a.liquiditySources:r.liquiditySources??[]},getDisabledLiquiditySources:()=>{let{disabledLiquiditySources:r,campaignMode:a}=o();return a.liquiditySources?.length?[]:r},excludeLiquiditySources:()=>{let{config:r,campaignMode:a}=o();return a.liquiditySources?.length?!1:!!r.excludeLiquiditySources},isInCampaignMode:()=>{let{campaignMode:r}=o();return!!r.liquiditySources?.length},updateConfig:r=>{let a=o().config,{_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c}=o(),l=Wn({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Wn({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});zo.set("supportedSourceTokens",l),zo.set("supportedDestinationTokens",p),e({config:{...a,...r}})},updateCampaignMode:(r,a)=>{let s=o().campaignMode;e({campaignMode:{...s,[r]:a}})},updateIframe:(r,a)=>{let s=o().iframe;e({iframe:{...s,[r]:a}})},buildAndSetProviders:()=>{let{config:r}=o(),a=kp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=vp(a);return yp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as bp}from"rango-types";var xp=[bp.EVM,bp.SOLANA],Ur="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as GS}from"rango-sdk";import{UI_ID as WS}from"@rango-dev/ui";var zr="c6381a79-2817-4602-83bf-6a641a409e32",Ep="https://api.rango.exchange",Ip="https://explorer.rango.exchange",Qe={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...WS};import{BlockchainCategories as FS,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as OS}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as US,getCosmosExperimentalChainInfo as zS,isEvmAddress as QS,KEPLR_COMPATIBLE_WALLETS as YN,Networks as jp}from"@rango-dev/wallets-shared";import Ho from"bignumber.js";import{isCosmosBlockchain as qS}from"rango-types";import LS from"bignumber.js";var de=new LS(0);import{WalletTypes as MS}from"@rango-dev/wallets-shared";var Co="~",Ap=[MS.LEAP];import{BlockchainCategories as Ha,WalletState as $S}from"@rango-dev/ui";import{TransactionType as Qr}from"rango-sdk";var Np="Roboto",qa=[{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 qo(t){return Array.from(new Set(t))}i(qo,"removeDuplicateFrom");function qr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(qr,"debounce");function rt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(rt,"containsText");function Lp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Lp,"exactText");function Mp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Mp,"startWithText");var N=i(()=>document.getElementById(Qe.SWAP_BOX_ID),"getContainer"),To=i(()=>document.getElementById(Qe.EXPANDED_BOX_ID),"getExpanded");function Pp(t,e,o){let n=!!e&&Lp(e,t),r=!!o&&Lp(o,t);return n!==r?n?-1:1:0}i(Pp,"compareExactMatchText");function Ga(t,e,o){let n=!!e&&rt(e,t),r=!!o&&rt(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Ga,"compareContainsText");function Va(t,e,o){let n=!!e&&Mp(e,t),r=!!o&&Mp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(Va,"compareStartWithText");function _p(t,e,o){if(!o)return 0;let n=Pp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Pp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=Va(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Ga(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Va(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Ga(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=Va(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Ga(o,t.address,e.address);if(r!==0)return r}return 0}i(_p,"compareWithSearchFor");var Hr=i((t,e)=>{switch(e){case Ha.ALL:return!0;case Ha.UTXO:return t===Qr.TRANSFER;case Ha.OTHER:return t!==Qr.TRANSFER&&t!==Qr.COSMOS&&t!==Qr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Dp=i(t=>qa.find(o=>o.value===t)?.url,"getFontUrlByName");function $p(t,e){let o=!!t.find(n=>n.state===$S.CONNECTED);return e===!1&&o}i($p,"isSingleWalletActive");function Fp(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(Fp,"memoizedResult");import{BigNumber as Vp}from"bignumber.js";function Op(t){return t.replace(/^0+(?=\d)/g,"")}i(Op,"removeLeadingZeros");function Up(t){return t.replace(/^\.(\d+)/,"0.$1")}i(Up,"ensureLeadingZeroForDecimal");function zp(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(zp,"formatThousandsWithCommas");function Qp(t){return t.replace(/\s+/g,"-")}i(Qp,"replaceSpacesWithDash");function qp(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(qp,"stripTrailingZeros");function Gr(t){return/^0+(?:\.0+)?$/.test(t)}i(Gr,"isZeroValue");function Hp(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Hp,"isValidCurrencyFormat");function Gp(t){return/\d+$/.test(t)}i(Gp,"isColorKeyOverridden");var Ln=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"),_=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Vp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Vp(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 Vr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Nt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Mn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Kp(t){return Gr(t)?"0":qp(t)}i(Kp,"sanitizeInputAmount");function Pn(t){return t.connected?it.CONNECTED:t.connecting?it.CONNECTING:t.installed?it.DISCONNECTED:it.NOT_INSTALLED}i(Pn,"mapStatusToWalletState");function Xp(t,e,o,n){return o.filter(r=>!Ap.includes(r)).filter(r=>{let{supportedChains:a,isContractWallet:s}=e(r),{installed:c,network:l}=t(r);return s&&(!c||!!n&&l!==n)?!1:n?!!a.find(u=>u.name===n):!0}).map(r=>{let{name:a,img:s,installLink:c,showOnMobile:l,needsNamespace:p,supportedChains:u,needsDerivationPath:f,properties:h,isHub:g}=e(r),m=qo(u.map(y=>y.type)),d=Pn(t(r));return{title:a,image:s,link:US(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:m,needsDerivationPath:f,properties:h,isHub:g}})}i(Xp,"mapWalletTypesToWalletInfo");function _n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(_n,"walletAndSupportedChainsNames");function ja(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(h=>h.chain===l)){let h={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(h)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=OS(l),f=c.length>0,h=c.includes(u),g=u===jp.Unknown;if(f&&!h&&!g)return;let d=u===jp.Unknown&&QS(p);if(g&&!d)return;o.includes(u)||d?r?s(u,p.toLowerCase(),r):c.filter(S=>o.includes(S)).forEach(S=>{s(S,p.toLowerCase())}):s(u,p)}),a}i(ja,"prepareAccountsForWalletStore");function ko(t){let{filter:e,quote:o}=t,n=new Set;return o?.swaps.forEach((r,a)=>{let s=r.from.blockchain,c=r.to.blockchain;if(n.add(s),r.internalSwaps){let{internalSwaps:l}=r;l.forEach((p,u)=>{let f=p.from.blockchain,h=p.to.blockchain,g=a===o.swaps.length-1,m=u===l.length-1;(!g&&!m||g&&c!==f||e==="all")&&n.add(f),e==="all"&&n.add(h)})}e==="all"&&n.add(c)}),Array.from(n)}i(ko,"getQuoteChains");function Dn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dn,"isAccountAndWalletMatched");var Yp=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?Ka(n.usdValue,n.decimals):de.toFixed();return o.plus(r)},new Ho(de));return HS(e.toString())},"calculateWalletUsdValue");function HS(t){let e=t.toString().split(".");return e[0]=zp(e[0]),e.join(".")}i(HS,"numberWithThousandSeparator");var Xr=i((t,e)=>{let o=zS(Object.entries(t).map(([,n])=>n).filter(qS));return o&&o[e]?.experimental},"isExperimentalChain");function Ka(t,e){return new Ho(t).shiftedBy(-e).toFixed()}i(Ka,"representAmountInNumber");function Yr(t){if(!t)return null;let e=Ka(t.amount,t.decimals),o=t.usdValue?Ka(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Yr,"formatBalance");function Zp(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Ho(t.usdValue).shiftedBy(-t.decimals):de,n=e&&e.usdValue?new Ho(e.usdValue).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Ho(t.amount).shiftedBy(-t.decimals):de,n=e&&e.amount?new Ho(e.amount).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(Zp,"compareTokenBalance");function Ft(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(Ft,"areTokensEqual");function Jp(t,e){return t.map(o=>({isPartiallyConnected:Xa(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===it.CONNECTED&&!n.isPartiallyConnected)-+(o.state===it.CONNECTED&&!o.isPartiallyConnected)||+(n.state===it.CONNECTED)-+(o.state===it.CONNECTED)||+(n.state===it.DISCONNECTED||n.state===it.CONNECTING)-+(o.state===it.DISCONNECTED||o.state===it.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(Jp,"sortWalletsBasedOnConnectionState");function Go(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(Go,"getConciseAddress");function Rp({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Rp,"getAddress");var eu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function tu(t){return t.map(e=>e.state).join("-")}i(tu,"hashWalletsState");function ou(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(ou,"filterBlockchainsByWalletTypes");function nu(t,e){return e===FS.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Hr(n,e))return!0;return!1})}i(nu,"filterWalletsByCategory");function Xa(t,e){return!t.isHub||!t.needsNamespace||t.state!==it.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(Xa,"checkIsWalletPartiallyConnected");var Ya={API_KEY:zr};function Ot(t){return Ya[t]||""}i(Ot,"getConfig");function ru(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ya=e,Ya}i(ru,"initConfig");var iu=20,au=25,Za="theme-widget",Ja=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>Ft(n,t));else if(!Array.isArray(e)&&e[t.blockchain]){o=e[t.blockchain].tokens.some(r=>Ft(r,t));let n=e[t.blockchain].isExcluded;return!n&&!o||n&&o}}return o},"isTokenExcludedInConfig"),Ra=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),su=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var Zr,at=i(()=>Zr||(Zr=new GS(Ot("API_KEY"),Ot("BASE_URL")),Zr),"httpService");import{i18n as cu}from"@lingui/core";var Jr=[.5,1,3],Rr=1,Vo=5,$n=30,ei=0;import{WidgetEvents as lu}from"@rango-dev/queue-manager-rango-preset";var es=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(es||{}),ts=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(ts||{}),os=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(os||{}),Ko=(a=>(a[a.RouteEvent=lu.RouteEvent]="RouteEvent",a[a.StepEvent=lu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Ko||{});function ti(t,e){let o=t.map(a=>a.swapperGroup),n=[];return qo(t.map(a=>a.swapperGroup)).map(a=>{let s=t.find(c=>c.swapperGroup===a);if(s){let c=!0;o&&(c=o.some(l=>l===s.swapperGroup)),c&&s.types.map(l=>{n.push({id:s.swapperGroup,groupTitle:s.swapperGroup,logo:s.logo,type:l,selected:!e.includes(s.swapperGroup)})})}}),n}i(ti,"getUniqueSwappersGroups");function pu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(pu,"sortLiquiditySourcesByGroupTitle");function Re(t,e){return e?.[t]==="hidden"}i(Re,"isFeatureHidden");function jo(t,e){return e?.[t]==="enabled"}i(jo,"isRoutingEnabled");var uu=i((t,e,o)=>Re("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function Xo(t){return t==ei?{type:"error",message:cu.t("Slippage must be greater than or equal to 0.01")}:t>Vo&&t<=$n?{type:"warning",message:cu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(Xo,"getSlippageValidation");var du=i((t,e)=>({_blockchainsMapByName:new Map,_tokensMapByTokenHash:new Map,_tokensMapByBlockchainName:{},_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchainsMapByName,r=Array.from(n?.values()||[]);if(!o||!o?.type)return r;let a=e().config;if(o.type==="custom-token"){let l=Fr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>xp.includes(u.type))}let s=(o.type==="source"?a.from?.blockchains:a.to?.blockchains)??[];return r.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let{_tokensMapByTokenHash:n,_tokensMapByBlockchainName:r,config:a,_customTokens:s}=e(),c=Array.from(n.values()),l=e()._blockchainsMapByName;if(!o||!o.type)return c;let p=o.type==="source"?"from":"to",u=o.type==="source"?"supportedSourceTokens":"supportedDestinationTokens",f=zo.get(u);f?.length||(f=Wn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),zo.set(u,f)),f=uu(f,s,a.features);let h=e().blockchains({type:o.type});return f.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!h.some(d=>d.name===m.blockchain)?!1:o.searchFor?!!(rt(m.symbol,o.searchFor)||rt(m.address||"",o.searchFor)||rt(m.name||"",o.searchFor)):!0).sort((m,d)=>{let y=e().isTokenPinned(m,o.type),C=e().isTokenPinned(d,o.type);if(y!==C)return y?-1:1;if(o.getBalanceFor){let I=o.getBalanceFor(m),A=o.getBalanceFor(d),E=Zp(I,A);if(E!==0)return E}let S=l.get(m.blockchain),k=l.get(d.blockchain),v=Qa(m,S),x=Qa(d,k);if(v!==x)return v?-1:1;if(m.isPopular!==d.isPopular)return m.isPopular?-1:1;if(o.searchFor){let I=_p(m,d,o.searchFor);if(I)return I}return m.isSecondaryCoin!==d.isSecondaryCoin?m.isSecondaryCoin?1:-1:S&&k?S.sort-k.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=gt(o),s=n.get(a);return s||(s=r.find(c=>gt(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>Ft(s,o)),swappers:()=>{let{config:o,campaignMode:n}=e(),r=n.liquiditySources?.length?n.liquiditySources:null,a=r??o.liquiditySources,s=r?!1:o.excludeLiquiditySources;return e()._swappers.filter(p=>{let u=a?.includes(p.swapperGroup);return s||!a||a.length===0?!u:u}).sort(pu)},fetch:async()=>{try{let{routing:o}=e().config,n=jo("enableCentralizedSwappers",o),r=await at().getAllMetadata({enableCentralizedSwappers:n});t({fetchStatus:"success"});let a=new Map,s=new Map,c={},l=[],p=r.popularTokens,u=r.swappers.filter(g=>g.enabled),f=new Set;r.tokens.forEach(g=>{f.add(g.blockchain),l.push(g)}),r.blockchains.sort((g,m)=>g.sort-m.sort).forEach(g=>{g.enabled&&f.has(g.name)&&a.set(g.name,g)}),l.forEach(g=>{let m=gt(g);c[g.blockchain]||(c[g.blockchain]=[]),s.set(m,g),c[g.blockchain].push(m)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as VS,Catalonia as KS,Chinese as mu,Denmark as jS,English as XS,Finland as YS,French as ZS,German as JS,Greece as RS,Hungary as eC,India as tC,Indonesian as oC,Italian as nC,Japanese as rC,Korea as iC,Lithuania as aC,Malay as sC,Netherlands as lC,Pakistan as cC,Philippines as pC,Poland as uC,Portuguese as dC,Russian as mC,SaudiArabia as fC,Serbia as gC,Slovakia as hC,SouthAfrica as yC,Spanish as SC,Swahili as CC,Swedish as TC,Thai as kC,Turkish as vC,Ukrainian as wC,Vietnamese as bC}from"@rango-dev/ui";var fu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:yC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:fC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:VS},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:KS},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:mu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:mu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:jS},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:lC},{title:"English",label:"English",local:"en",SVGFlag:XS},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:pC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:YS},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:ZS},{title:"German",label:"Deutsch",local:"de",SVGFlag:JS},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:RS},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:tC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:eC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:oC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:nC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:rC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:iC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:aC},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:sC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:uC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:dC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:mC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:gC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:hC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:SC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:CC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:TC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:kC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:vC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:wC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:cC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:bC}],Yo="en";var gu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:Rr,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,_customTokens:[],quoteTokensRate:"default",changeQuoteTokensRate:()=>t(o=>({quoteTokensRate:o.quoteTokensRate==="default"?"reversed":"default"})),addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((s,c)=>{let l=s===o,p=c<=9;return l&&p}))return;let a=n.filter(s=>!(s===o));t(()=>({preferredBlockchains:[o,...a]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let a=qo(o.map(s=>s.swapperGroup));return a.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:a}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n,theme:r}=o,a=Re("theme",n),s=Re("language",n),c=Re("liquiditySource",n),l=r?.singleTheme,p=o?.__UNSTABLE_OR_INTERNAL__?.autoUpdateSettings;t({...a&&{theme:o.theme?.mode||"auto"},...l&&{theme:o.theme?.mode||"light"},...s&&{language:o.language||Yo},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||Yo}})},setCustomToken:o=>{e().fetchCustomTokensBalances({tokens:[o],connectedWallets:e().connectedWallets}),t(n=>({_customTokens:[o,...n._customTokens]}))},deleteCustomToken:o=>t(n=>({_customTokens:n._customTokens.filter(r=>r.address!==o.address)})),customTokens:()=>{let o=e().config,n=e()._customTokens,r=Fr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import ls from"bignumber.js";import xC from"mitt";var Te=xC(),EC={on:Te.on,off:Te.off};var hu=i(t=>(e,o,n)=>t(i((...a)=>{let[s,...c]=a;e(l=>({...typeof s=="function"?s(l):s,lastUpdatedAt:+new Date}),...c)},"modifedSet"),o,n),"keepLastUpdated");import yu from"bignumber.js";function Ut(t){return`${t.blockchain}${Co}${t.address}${Co}${t.symbol}`}i(Ut,"createAssetKey");function Su(t,e){return`${Ut(e)}${Co}${t}`}i(Su,"createBalanceKey");function Fn(t){let[e,o,n]=t.split(Co);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Fn,"extractAssetFromBalanceKey");function rs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Ut(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new yu(r??de).multipliedBy(o[s].amount).toString():""})})}),o}i(rs,"computeNextBalancesWithNewPrices");function is(t,e){let o={};return t.balances?.forEach(n=>{let r=Su(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new yu(c??de).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(is,"createBalanceStateForNewAccount");function as(t,e){for(let o in e){let n=Fn(o),r=Ut(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}return t}i(as,"updateAggregatedBalanceStateForNewAccount");function IC(t,e){let o=Fn(e),n=Ut(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(IC,"removeBalanceFromAggregatedBalance");function ss(t,e,o){let n=t.connectedWallets.filter(l=>l.walletType===e);t.connectedWallets.forEach(l=>{l.walletType!==e&&(n=n.filter(p=>!(p.chain===l.chain&&p.address===l.address)))}),o?.chains&&o.chains.length>0&&(n=n.filter(l=>o.chains?.includes(l.chain))),o?.namespaces&&o.namespaces.length>0&&(n=n.filter(l=>l.namespace?o.namespaces?.includes(l.namespace):!1));let r={},a=t._aggregatedBalances,s=t._balances;return Object.keys(s).forEach(l=>{let p=Fn(l);!!n.find(f=>Su(f.address,{address:p.address,blockchain:f.chain,symbol:p.symbol})===l)?a=IC(a,l):r[l]=s[l]}),{_balances:r,_aggregatedBalances:a}}i(ss,"computeNextStateAfterWalletBalanceRemoval");function AC(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(AC,"matchWalletDetailsWithConnectedWallet");var NC=Fp(),Cu=hu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Dn(s,a))?{...a,loading:!1,error:!1,explorerUrl:AC(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>Dn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n)=>{let r=e().connectedWallets,a=o.filter(s=>!r.some(c=>Dn(s,c)));if(a.length>0){let s=a.map(c=>{let l=!r.some(p=>p.chain===c.chain&&p.selected&&p.walletType!==c.walletType);return{address:c.address,chain:c.chain,isContractWallet:c.isContractWallet,explorerUrl:null,walletType:c.walletType,selected:l,namespace:n,loading:!1,error:!1}});t(c=>({connectedWallets:[...c.connectedWallets.filter(p=>!s.some(u=>u.walletType===p.walletType&&u.chain===p.chain)),...s]}))}},fetchCustomTokensBalances:async o=>{let{tokens:n,connectedWallets:r}=o,a=n.reduce((l,p)=>((l[p.blockchain]||=[]).push(p),l),{}),s=new Set,c=r.reduce((l,p)=>{let u=`${p.address}-${p.chain}`;return s.has(u)||(s.add(u),a[p.chain]&&(l[p.address]||(l[p.address]=[]),l[p.address].push(...a[p.chain]))),l},{});Object.entries(c).forEach(async([l,p])=>{try{let{balances:u}=await at().getMultipleTokenBalance({assets:p.map(({symbol:f,address:h,blockchain:g})=>({symbol:f,address:h,blockchain:g})),walletAddress:l});if(u){let f=e()._balances,h=e()._aggregatedBalances;u.forEach(g=>{if(parseFloat(g.amount.amount)===0)return;let m={blockChain:g.asset.blockchain,balances:[g],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};rs(d,m,f);let y=is(m,e);h=as(h,y),f={...f,...y}}),t(g=>({_balances:{...g._balances,...f},_aggregatedBalances:h}))}}catch(u){console.error(u)}})},setWalletsAsSelected:o=>{let n=e().connectedWallets.map(r=>{let a=!!o.find(c=>c.chain===r.chain&&c.walletType!==r.walletType&&r.selected),s=!!o.find(c=>c.chain===r.chain&&c.walletType===r.walletType&&!r.selected);return a?{...r,selected:!1}:s?{...r,selected:!0}:r});t({connectedWallets:n})},newWalletConnected:async(o,n)=>{Te.emit("walletEvent",{type:"connect",payload:{walletType:o[0].walletType,accounts:o}}),e().addConnectedWallet(o,n),e().fetchBalances(o)},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ss(r,o,n);t({_balances:a,_aggregatedBalances:s})},disconnectNamespaces:(o,n)=>{if(e().connectedWallets.find(a=>a.walletType===o)){e().removeBalancesForWallet(o,{namespaces:n}),e()._changeSelectedWalletIfNeededOnRemove(o,{namespaces:n});let a=e().connectedWallets.filter(s=>s.namespace?!(s.walletType===o&&n.includes(s.namespace)):!0);t({connectedWallets:a})}},disconnectWallet:o=>{let n=e().connectedWallets.find(r=>r.walletType===o);if(Te.emit("walletEvent",{type:"disconnect",payload:{walletType:o}}),n){e().removeBalancesForWallet(o),e()._changeSelectedWalletIfNeededOnRemove(o);let r=e().connectedWallets.filter(a=>a.walletType!==o);t({connectedWallets:r})}},_changeSelectedWalletIfNeededOnRemove:(o,n)=>{let r=e().connectedWallets;n?.namespaces&&n.namespaces.length>0&&(r=r.filter(s=>!!s.namespace&&n.namespaces?.includes(s.namespace)));let a=r.filter(s=>s.selected&&s.walletType===o).map(s=>s.chain);if(a.length>0){let s=e().connectedWallets.map(c=>a.includes(c.chain)?(a=a.filter(l=>l!==c.chain),{...c,selected:!0}):c);t({connectedWallets:s})}},clearConnectedWallet:()=>t({connectedWallets:[]}),fetchBalances:async(o,n)=>{let{shouldFetchCustomTokens:r=!0,selectedCustomTokens:a}=n||{};await e().fetchMainTokensBalances(o),r&&e().fetchCustomTokensBalances({tokens:a??e().customTokens(),connectedWallets:o})},fetchMainTokensBalances:async(o,n)=>{if(o.length===0)return;let r=o[0].walletType;e().setConnectedWalletAsRefetching(o);let a=o.map(l=>({address:l.address,blockchain:l.chain})),s;try{s=await at().getWalletsDetails(a)}catch(l){e().setConnectedWalletHasError(o),console.error(`Request for fetching balances failed. cause: ${l}`);return}let c=s.wallets;if(c){let l=e()._balances,p=e()._aggregatedBalances;c.forEach(f=>{if(f.failed)return;let h={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};rs(h,f,l);let{_balances:g,_aggregatedBalances:m}=ss(h,r,{chains:[f.blockChain]});if(p=m,l=g,!e().connectedWallets.find(y=>y.walletType===r&&y.address===f.address&&y.chain===f.blockChain))return;let d=is(f,e);p=as(p,d),l={...l,...d}}),t(f=>({_balances:{...f._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let f=c.filter(h=>h.failed).map(h=>({chain:h.blockChain,walletType:r,address:h.address}));f.length>0&&await e().fetchMainTokensBalances(f,{retryOnFailedBalances:!1})}}else e().setConnectedWalletHasError(o),console.error("We couldn't fetch your account balances. Seem there is no information on blockchain for them yet.")},getBalances:()=>e()._balances,getBalanceFor:o=>{let n=e().getBalances(),r=Ut(o),a=e()._aggregatedBalances[r]||[];if(a.length===0)return null;if(a.length===1){let l=a[0];return n[l]}let c=n[a[0]];return a.forEach(l=>{let p=n[l],u=new ls(p.amount),f=new ls(c.amount);u.isGreaterThan(f)&&(c=p)}),c},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(Co);return p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>NC(()=>e().connectedWallets.map(n=>{let r=e().getBalancesForWalletAddress(n.address),a=Object.keys(r);return{...n,balances:a.reduce((s,c)=>{let l=r[c],p=Fn(c);if(p.blockchain===n.chain){let u=e().findToken(p),f=l.amount?new ls(l.amount).shiftedBy(-l.decimals):de;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:f.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function Tu(t){return BC()(WC((...e)=>({...Cu(...e),...du(...e),...gu(...e),...wp(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({_customTokens:e._customTokens,theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources,quoteTokensRate:e.quoteTokensRate}),version:1,migrate:(e,o)=>{let n=e;return o===0&&(n._customTokens=n._customTokens.map(r=>({...r,warning:!0}))),n}}))}i(Tu,"createAppStore");var ku=MC(null);function T(){let t=PC(ku);if(_C(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(T,"useAppStore");function vu(t){let e=DC();return e.current||(e.current=Tu(t.config)),LC.createElement(ku.Provider,{value:e.current},t.children)}i(vu,"AppStoreProvider");function Tt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=T(),{state:r,getWalletInfo:a}=$C(),s=T().blockchains(),{handleDisconnect:c}=Uo(),l=Cp(n()),p=Xp(r,a,l,e);p=FC()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=Jp(p,r),f=i(d=>!o.find(y=>y.walletType===d&&y.chain===e),"isExperimentalChainNotAdded"),h=UC(()=>{let d=p?.filter(y=>y.state===cs.CONNECTING)||[];for(let y of d)c(y.type)},[tu(p)]);zC(()=>()=>{h()},[]);let g=i(d=>{let y=d.find(S=>S.type===On.DEFAULT);return!y||y.state===cs.NOT_INSTALLED?!1:d.filter(S=>S.state!=cs.NOT_INSTALLED&&![On.DEFAULT,On.WALLET_CONNECT_2,On.LEDGER].includes(S.type)&&a(S.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((d,y,C)=>Xr(C,y)&&f(d)&&!OC.includes(d)||d==On.DEFAULT&&!g(p),"shouldExcludeWallet");return{list:u.filter(d=>!m(d.type,e??"",s)),terminateConnectingWallets:h}}i(Tt,"useWalletList");import{Modal as GC}from"@rango-dev/ui";import VC from"react";import{create as HC}from"zustand";var wu="rango-widget";var Un=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(wu),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 qC=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"),Zo=qC;var te=Zo(HC()((t,e)=>({isActiveTab:!1,tabManagerInitiated:!1,showActivateTabModal:!1,watermark:"NONE",showProfileBanner:!1,fetchingApiConfig:!1,showCompactTokenSelector:!1,activateCurrentTab:(o,n)=>{let{showActivateTabModal:r}=e();!r&&n?t({showActivateTabModal:!0}):(r||!n)&&o()},setShowActivateTabModal:o=>{t({showActivateTabModal:o})},setWatermark:o=>{t({watermark:o})},setShowProfileBanner:o=>{t({showProfileBanner:o})},setShowCompactTokenSelector:o=>{t({showCompactTokenSelector:o})}}))),wo=new Un({onInit:()=>te.setState({tabManagerInitiated:!0}),onClaim:()=>te.setState({isActiveTab:!0,showActivateTabModal:!1}),onRelease:()=>te.setState({isActiveTab:!1})});function J(t){let{watermark:e}=te();return VC.createElement(GC,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as rn}from"@lingui/core";import{Alert as oT,Button as nT,Divider as si,Image as rT,MessageBox as iT,RadioRoot as aT}from"@rango-dev/ui";import me,{useEffect as sT,useMemo as lT,useState as cT}from"react";import{Checkbox as JC,Radio as RC,Typography as eT}from"@rango-dev/ui";import eo from"react";function Jo(t,e){return t.find(o=>o.name===e)?.logo}i(Jo,"getBlockchainLogo");import{Button as KC,darkTheme as jC,Image as XC,styled as kt,Typography as YC}from"@rango-dev/ui";var oi=kt("ul",{padding:0,paddingTop:"$10",paddingBottom:"$20",margin:0}),Ro=kt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100 ",[`.${jC} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),en=kt("div",{display:"flex",gap:"$8",alignItems:"center"}),ni=kt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),xu=kt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),tn=kt(XC,{variants:{disabled:{true:{opacity:"0.5"}}}}),on=kt(KC,{minHeight:"$40"}),Eu=kt(YC,{maxWidth:"100px"}),Iu=kt("div",{paddingLeft:"48px"}),Au=kt("div",{display:"flex",gap:"2px",cursor:"pointer",alignItems:"center",width:"fit-content"}),Nu=kt("div",{display:"flex",gap:"6px",alignItems:"center"});import{Image as Wu,Tooltip as Lu,Typography as ZC}from"@rango-dev/ui";import Bt from"react";import{styled as Bu}from"@rango-dev/ui";var ps=Bu("div",{display:"flex",alignItems:"center",padding:0,margin:0}),ri=Bu("div",{marginLeft:"-5px",listStyleType:"none",backgroundColor:"$background",borderRadius:"$lg",minWidth:"15px",height:"15px",variants:{firstItem:{true:{marginLeft:0}}},display:"flex",alignItems:"center",justifyContent:"center"});var us=3;function ii(t){let{chains:e}=t;return Bt.createElement(ps,{id:"widget-supported-chains-container"},e.slice(0,us).map((o,n)=>Bt.createElement(Lu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Bt.createElement(ri,{firstItem:n===0},Bt.createElement(Wu,{src:o.logo,size:15})))),e.length>us&&Bt.createElement(Lu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Bt.createElement(ps,null,e.map((o,n)=>Bt.createElement(ri,{key:o.name,firstItem:n===0},Bt.createElement(Wu,{src:o.logo,size:15}))))},Bt.createElement(ri,null,Bt.createElement(ZC,{variant:"body",size:"xsmall"},"+",e.length-us))))}i(ii,"SupportedChainsList");function Mu(t){let{onClick:e,type:o,namespace:n}=t,r=T().blockchains(),a=n.getSupportedChains(r),s=a.length>1;return eo.createElement(Ro,{onClick:e,clickable:!0,className:"widget-namespace-list-item"},eo.createElement(en,null,eo.createElement(tn,{src:Jo(r,n.id),size:40}),eo.createElement(ni,{showSupportedChains:s},eo.createElement(eT,{variant:"label",size:"large"},n.label),s&&eo.createElement(ii,{chains:a})),o==="radio"?eo.createElement(RC,{value:n.value}):eo.createElement(JC,{checked:t.value})))}i(Mu,"NamespaceListItem");import{i18n as tT}from"@lingui/core";import{Typography as Pu}from"@rango-dev/ui";import nn from"react";function ai(t){let{namespace:e}=t,o=T().blockchains();return nn.createElement(Ro,{unsupported:!0},nn.createElement(en,null,nn.createElement(tn,{src:Jo(o,e.id),size:40,disabled:!0}),nn.createElement(xu,null,nn.createElement(Pu,{variant:"label",size:"large"},e.label),nn.createElement(Pu,{variant:"body",size:"xsmall"},tT.t("(Currently not supported)")))))}i(ai,"NamespaceUnsupportedItem");function zn(t){let{targetWallet:e}=t.value,o=e.properties?.find(d=>d.name==="namespaces"),n=e.isHub,r=e.isHub?o?.value.selection==="single":e.needsNamespace?.selection==="single",a=n?o?.value:e.needsNamespace,s=e.image,c=T().blockchains(),[l,p]=cT([]),u=lT(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),f=i(d=>{p(r?[d]:y=>y.includes(d)?y.filter(C=>C!==d):y.concat(d))},"onSelect"),h=u?.length===l.length,g=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");h?p([]):u&&p(u.map(d=>d.value))},"onSelectAll"),m=i(d=>r?me.createElement(aT,{value:l?.[0]},d):me.createElement(me.Fragment,null,d),"wrapRadioRoot");return sT(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let d=u.filter(y=>y.getSupportedChains(c).some(C=>t.value.defaultSelectedChains?.includes(C.name)));p(d.map(y=>y.value))}else p(u.map(d=>d.value))},[]),me.createElement(me.Fragment,null,me.createElement(iT,{type:"info",title:rn.t("Connect {wallet}",{wallet:e.title}),description:rn.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:me.createElement(rT,{src:s,size:45})}),r?me.createElement(me.Fragment,null,me.createElement(si,{size:20}),me.createElement(oT,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:rn.t("This wallet can only connect to one chain at a time. ")})):me.createElement(me.Fragment,null,me.createElement(si,{size:30}),me.createElement(nT,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:g},h?rn.t("Deselect all"):rn.t("Select all"))),me.createElement(oi,null,m(me.createElement(me.Fragment,null,a?.data.map((d,y,C)=>me.createElement(me.Fragment,{key:d.id},d.unsupported?me.createElement(ai,{namespace:d}):me.createElement(Mu,{value:l.includes(d.value),namespace:d,type:r?"radio":"checkbox",onClick:()=>f(d.value)}),y!==C.length-1&&me.createElement(si,{size:10})))))),me.createElement(si,{size:20}),me.createElement(on,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},rn.t("Connect")))}i(zn,"Namespaces");import{i18n as ds}from"@lingui/core";import{Divider as ms,Image as ST,MessageBox as CT}from"@rango-dev/ui";import st from"react";import{i18n as an}from"@lingui/core";import{Button as pT,ChevronDownIcon as uT,ChevronUpIcon as dT,Divider as mT,Spinner as fT,Typography as Qn}from"@rango-dev/ui";import{useWallets as gT}from"@rango-dev/wallets-react";import ke,{useEffect as hT,useLayoutEffect as yT,useState as _u}from"react";var Du=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,a=T().blockchains(),{connect:s,disconnect:c,state:l}=gT(),[p,u]=_u(null),[f,h]=_u(!1),m=l(o).namespaces?.get(n.value),d=m.accounts?.[0]?.split(":"),y=n.getSupportedChains(a);hT(()=>h(!1),[p]),yT(()=>{r&&C(o,n.value)},[]);let C=i(async(v,x)=>{try{await s(v,[{namespace:x,network:""}])}catch(I){u(I)}},"handleConnectNamespace"),S=i(async v=>{u(null),v.connected?await c(o,[n.value]):C(o,n.value)},"handleButtonClick"),k=i(()=>m.connected?an.t("Disconnect"):p?an.t("Try again"):an.t("Connect"),"getButtonText");return ke.createElement(Ro,{hasError:!!p},ke.createElement(en,null,ke.createElement(tn,{src:Jo(a,n.id),size:40}),ke.createElement(ni,null,ke.createElement(Nu,{className:"widget-namespace-detached-item-info-div"},ke.createElement(Qn,{variant:"label",size:"large"},n.label),m.connected&&ke.createElement(Qn,{variant:"body",size:"small",color:"success500"},an.t("Connected")),!m.connected&&!!p&&ke.createElement(Qn,{variant:"body",size:"small",color:"error500"},an.t("Connection failed"))),m.connected&&ke.createElement(Eu,{variant:"body",size:"small",color:"neutral700"},Go(d?.[d?.length-1])),!m.connected&&p&&ke.createElement(Au,{className:"widget-namespace-detached-item-error-toggle-btn",onClick:()=>h(v=>!v)},ke.createElement(Qn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},an.t("See why")),f?ke.createElement(dT,{size:12,color:"gray"}):ke.createElement(uT,{size:12,color:"gray"})),!m.connected&&!p&&y.length>1&&ke.createElement(ii,{chains:y})),m.connecting?ke.createElement(fT,{color:"info"}):ke.createElement(pT,{id:"widget-name-space-connect-btn",variant:"ghost",type:m.connected?"error":"primary",size:"small",onClick:async()=>S(m)},k())),!m.connected&&!!p&&f&&ke.createElement(ke.Fragment,null,ke.createElement(mT,{size:4}),ke.createElement(Iu,{id:"widget-namespace-item-error-div"},ke.createElement(Qn,{variant:"body",size:"small",color:"neutral700"},p.cause?.message||p.message))))},"NamespaceDetachedItem");function qn(t){let{selectedNamespaces:e,value:o}=t,{targetWallet:n}=o;return st.createElement(st.Fragment,null,st.createElement(CT,{type:"info",title:ds.t("Connect {wallet}",{wallet:n.type}),description:ds.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:st.createElement(ST,{src:n.image,size:45})}),st.createElement(ms,{size:20}),st.createElement(oi,{id:"widget-detached-namespace-list",as:"ul"},n.needsNamespace?.data.map((r,a,s)=>st.createElement(st.Fragment,{key:r.id},r.unsupported?st.createElement(ai,{namespace:r}):st.createElement(Du,{walletType:n.type,namespace:r,initialConnect:e?.includes(r.value)}),a!==s.length-1&&st.createElement(ms,{size:10})))),st.createElement(ms,{size:20}),st.createElement(on,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},ds.t("Done")))}i(qn,"Detached");import{i18n as sn}from"@lingui/core";import{Divider as Fu,Image as wT,MessageBox as bT,Select as xT,TextField as ET}from"@rango-dev/ui";import ht,{useEffect as IT,useState as Ou}from"react";import{namespaces as TT}from"@rango-dev/wallets-shared";var li={id:"custom",label:"Custom",generateDerivationPath:t=>t};function fs(t){let e=t?TT[t].derivationPaths:null;return e?[...e,li]:[]}i(fs,"getDerivationPaths");import{Button as kT,styled as gs,Typography as vT}from"@rango-dev/ui";var $u=gs("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),hs=gs(vT,{paddingLeft:"$10"}),ys={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},dM=gs(kT,{minHeight:"$40"});var Uu="0";function Hn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=Ou(null),[c,l]=Ou(Uu),p=a===li.id,u=fs(o),f=i(({value:g})=>{let m=u?.find(d=>d.id===g);m&&(a===li.id&&Number.isNaN(Number(c))&&l(Uu),s(m.id))},"handleDerivationPathItemClick"),h=i(()=>{let g=u.find(m=>m.id===a);if(g)e(g.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return IT(()=>{s(fs(o)[0]?.id||null)},[o]),ht.createElement(ht.Fragment,null,ht.createElement(Fu,{size:20}),ht.createElement(bT,{type:"info",title:sn.t("Select Derivation Path"),description:sn.t({id:"In order to connect to {type}, you must first select a Derivation Path",values:{type:r}}),icon:ht.createElement(wT,{src:n,size:45})}),ht.createElement($u,null,ht.createElement(hs,{variant:"body",size:"xsmall",color:"$neutral600"},sn.t("Choose Derivation Path Template")),ht.createElement(xT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(g=>({value:g.id,label:g.label})),variant:"filled",handleItemClick:f,styles:{trigger:ys}}),ht.createElement(Fu,{size:20}),ht.createElement(hs,{variant:"body",size:"xsmall",color:"$neutral600"},p?sn.t("Enter Path"):sn.t("Enter Index")),ht.createElement(ET,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:g=>l(g.target.value),style:ys})),ht.createElement(on,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:h,disabled:!u||!a||!c},sn.t("Confirm")))}i(Hn,"DerivationPath");import{i18n as ln}from"@lingui/core";import{Image as BT,MessageBox as Ss,WalletState as WT}from"@rango-dev/ui";import{useWallets as LT}from"@rango-dev/wallets-react";import bo from"react";import{keyframes as AT,styled as ci}from"@rango-dev/ui";var wM=ci("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),zu=ci("div",{position:"relative"}),NT=AT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Qu=ci("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${NT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),qu=ci("div",{"& img":{borderRadius:"50%"}});function Cs(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=LT();return Pn(a(n))===WT.CONNECTED?bo.createElement(Ss,{type:"success",title:ln.t("Wallet Connected"),description:ln.t("Your wallet is connected, you can use it to swap.")}):o?bo.createElement(Ss,{type:"error",title:ln.t("Failed to Connect"),description:o||ln.t("Your wallet is not connected. Please try again.")}):bo.createElement(Ss,{type:"loading",title:ln.t("Connecting to your wallet"),description:ln.t("Click connect in your wallet popup."),icon:bo.createElement(zu,null,bo.createElement(qu,null,bo.createElement(BT,{src:r,size:45})),bo.createElement(Qu,null))})}i(Cs,"ConnectStatus");import{i18n as Ts}from"@lingui/core";import{Button as MT,Divider as Hu,MessageBox as PT}from"@rango-dev/ui";import pi from"react";function ks(t){let{displayName:e,onConfirm:o,id:n}=t;return pi.createElement(PT,{id:n,title:Ts.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ts.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},pi.createElement(Hu,{size:18}),pi.createElement(Hu,{size:32}),pi.createElement(MT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ts.t("Confirm")))}i(ks,"ExperimentalChain");function Gu(t,e){return t().status==="init"&&!!e}i(Gu,"isOnStatus");function Gn(t){return t().status==="namespace"}i(Gn,"isOnNamespace");function Vn(t){return t().status==="derivationPath"}i(Vn,"isOnDerivationPath");function Kn(t){return t().status==="detached"}i(Kn,"isOnDetached");var FT=3e3,OT=300;function xo(t){let e=$T(),[o,n]=Vu(!1),[r,a]=Vu(),s=i(k=>{a(k.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=Tt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:f,resetState:h}=Uo(),g=i(k=>{u(t.wallet,k).then(S).catch(s)},"handleConfirmNamespaces"),m=i(()=>{y()},"handleDetachedConfirm"),d=i(k=>{if(!k)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(k).then(S).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),h(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),S=i((k,v)=>{let x=k.status==="connected",I=["disconnected","disconnected-unhandled"].includes(k.status);x?(t.onConnect?.(),v||(e.current=setTimeout(y,FT))):I&&y()},"afterConnected");return DT(()=>{if(t.wallet){C();let k=!1,v=!0;i(()=>{setTimeout(()=>{v=!1,k||n(!0)},OT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(k=!0),S(I,v)}).catch(s)}},[t.wallet]),to.createElement(J,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},Gu(f,t.wallet)&&to.createElement(to.Fragment,null,to.createElement(Cs,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),to.createElement(_T,{direction:"vertical",size:32})),Gn(f)&&to.createElement(zn,{onConfirm:g,value:f().namespace}),Vn(f)&&to.createElement(Hn,{onConfirm:d,value:f().derivationPath}),Kn(f)&&to.createElement(qn,{onConfirm:m,value:f().namespace,selectedNamespaces:f().selectedNamespaces}))}i(xo,"StatefulConnectModal");import{Provider as HT}from"@rango-dev/wallets-react";import ui,{createContext as GT,useEffect as Zu,useMemo as VT,useRef as Ju}from"react";import{useEffect as UT}from"react";function Ku(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(Ku,"hashProviders");function vs(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=T(),a=n();return UT(()=>{o(),r()},[Ku(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(vs,"useWalletProviders");import{legacyFormatAddressWithNetwork as zT,legacyReadAccountAddress as ju}from"@rango-dev/wallets-core/legacy";import{Events as cn}from"@rango-dev/wallets-react";import{isEvmBlockchain as QT}from"rango-sdk";function Xu(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=T(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(QT).map(d=>d.name),u=i((d,y)=>{let[C,,S,k,v]=d,x={walletType:C,network:k.network??void 0,accounts:S};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let I=ja(C,S,p,y.supportedChainNames,v.isContractWallet);I.length&&e(I,v.namespace)},"onAccountsEvent"),f=i((d,y,C,S,k)=>{if(y===cn.ACCOUNTS){let v=_n(k.supportedBlockchains);C&&u([d,y,C,S,k],{supportedChainNames:v})}y===cn.PROVIDER_DISCONNECTED&&(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),y===cn.NAMESPACE_DISCONNECTED&&n(d,C)},"handleUpdatesForHub"),h=i((d,y,C,S,k)=>{if(y===cn.ACCOUNTS){let v=_n(k.supportedBlockchains),x=[],I=[];if(C?.forEach(E=>{let{network:b}=ju(E);p.includes(b)?x.push(E):I.push(E)}),r.filter(E=>E.walletType===d).map(E=>zT(E.address,E.chain)).length>0){if(x.length>0){let E=ja(d,x,p,v,k.isContractWallet);a(d,{chains:E.map(b=>b.chain)})}I.length>0&&a(d,{chains:I.map(E=>{let{network:b}=ju(E);return b})})}C?u([d,y,C,S,k],{supportedChainNames:v}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),g=i((d,y,C,S,k)=>{if(y===cn.CONNECTED&&C){let v={walletType:d,network:S.network??void 0,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(y===cn.NETWORK&&C){let v={walletType:d,network:C,accounts:S.accounts??void 0};c.current?c.current(v):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((d,y,C,S,k)=>{k.isHub?f(d,y,C,S,k):h(d,y,C,S,k),g(d,y,C,S,k)},"handler")}}i(Xu,"useUpdates");import{LegacyEvents as qT}from"@rango-dev/wallets-core/legacy";function Yu(t,e){let[o,n,r,a,s]=e;n!==qT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(Yu,"propagateEvents");var di=GT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function KT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=T(),a=T().blockchains(),s=T().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=vs(s.wallets,c),p=Ju(),u=Ju(),{handler:f}=Xu({onConnectWalletHandler:p,onDisconnectWalletHandler:u});Zu(()=>{n().catch(console.log)},[]),Zu(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let h=te.use.isActiveTab(),g=VT(()=>({onConnectWallet:m=>{p.current=m},onDisconnectWallet:m=>{u.current=m}}),[]);return ui.createElement(di.Provider,{value:g},ui.createElement(HT,{allBlockChains:a,providers:l,onUpdateState:(m,d,y,C,S)=>{let k=[m,d,y,C,S];f(...k),t.onUpdateState&&Yu(t.onUpdateState,k)},autoConnect:!!h,configs:{wallets:s.wallets}},t.children))}i(KT,"Main");function mi(t){let{config:e,...o}=t;return ui.createElement(vu,{config:e},ui.createElement(KT,{...o,config:e}))}i(mi,"WidgetWallets");import Oa from"react";import jT,{Fragment as XT}from"react";import{MemoryRouter as YT,useInRouterContext as ZT}from"react-router";function Ru({children:t}){let o=ZT()?XT:YT;return jT.createElement(o,null,t)}i(Ru,"AppRouter");import{I18nManager as y0}from"@rango-dev/ui";import lp from"react";import Oe from"react";import{useRoutes as r0}from"react-router-dom";var F={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 un,useRef as ki}from"react";import et from"bignumber.js";import{create as tk}from"zustand";import{subscribeWithSelector as ok}from"zustand/middleware";import{i18n as vt}from"@lingui/core";import{getRelatedWalletOrNull as ek,RouteEventType as m_}from"@rango-dev/queue-manager-rango-preset";import He from"bignumber.js";import{PendingSwapNetworkStatus as Ci}from"rango-types";import{i18n as qe}from"@lingui/core";var oe=i(()=>({genericServerError:qe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:qe.t("Please reset your liquidity sources."),description:qe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:qe.t("No Routes Found."),description:qe.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:qe.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:qe.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:qe.t("High Price Impact"),title:qe.t("Price impact is too high!"),description:qe.t("The price impact is significantly higher than the allowed amount."),confirmMessage:qe.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:qe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:qe.t("USD Price Unknown"),title:qe.t("USD Price Unknown, Cannot calculate Price Impact."),description:qe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:qe.t("Confirm USD Price Unknown")}}),"errorMessages");function ed(t){return t.type===0?t.diagnosisMessage??oe().noResultError.title:t.type===1?t.diagnosisMessage??oe().genericServerError:""}i(ed,"getQuoteErrorMessage");import{i18n as fi}from"@lingui/core";var Eo=i(()=>({connectWallet:fi.t("Connect Wallet"),swap:fi.t("Swap"),swapAnyway:fi.t("Swap anyway"),ethWarning:fi.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ws(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(ws,"getFeeLabel");var bs=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],td=100,od=30,nd=15,rd=60;var id=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],ad=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as RT}from"@rango-dev/queue-manager-rango-preset";import RP from"bignumber.js";function ld(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(ld,"getRequiredBalanceOfWallet");function Qt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Qt,"getPriceImpactLevel");function gi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=RT(t.steps),s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=So(a?a.toBlockchain:n.fromBlockchain,e),l=So(r.toBlockchain,e),p=o(a?{blockchain:c?.name??"",symbol:a.toSymbol,address:a.toSymbolAddress}:{blockchain:c?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress}),u=o(s),f=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:f}}i(gi,"createRetryQuote");function pn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=jn(o),s=yt(o);if(o&&a&&s){let p=zt(a.toString(),s.toString());if(!!p&&md(a,p)){let f=yi(o?.swaps,n),h=Qt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:f,warningLevel:h}}}if(e&&hd(e,o))return{type:4,usdValueChange:_(yt(o)?.minus(yt(e)??0).toString()??"0",null,2),percentageChange:_(zt(yt(e)??"1",yt(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=Si(o.swaps),l=r>Vo;if(gd(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:fd(o,r),minRequiredSlippage:c};return null}i(pn,"generateQuoteWarnings");function cd(t){return![4].includes(t.type)}i(cd,"isQuoteWarningConfirmationRequired");function zt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:xs(t.toString(),e.toString());return n&&n<0?n:null}i(zt,"getPriceImpact");var pd=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"),hi=i((t,e)=>e.sort((o,n)=>{let r=i(p=>p.scores?.find(u=>u.preferenceType===t)?.score??0,"getScore"),a=r(o),s=r(n);if(a!==s)return s-a;let c=o.requestId.toLowerCase(),l=n.requestId.toLowerCase();return c.localeCompare(l)}),"sortQuotesBy"),ud=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(c=>c.swapperId));return Array.from(n).every(c=>s.has(c))});return{requestAmount:o,validationStatus:null,...r||e[0]}},"getDefaultQuote"),dd=i(t=>{let e=i((o,n)=>{let r=bs.indexOf(o.value),a=bs.indexOf(n.value);return r!==-1&&a!==-1?r-a:r!==-1?-1:a!==-1?1:0},"customSort");return t.sort(e)},"sortTags");function md(t,e){if(!t)return!1;let o=parseInt(e.toFixed(2)||"0");return id.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new He(r)))}i(md,"hasHighValueLoss");function yd(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(yd,"hasLimitError");function Sd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new He(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new He(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0],o=e.fromAmountMinValue?new He(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new He(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=vt.t({id:"Required: >= {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=vt.t({id:"Required: > {min} {symbol}",values:{min:_(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=vt.t({id:"Required: <= {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=vt.t({id:"Required: < {max} {symbol}",values:{max:_(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Sd,"getLimitErrorMessage");function Cd(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Eo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Eo().swap,action:"confirm-swap",disabled:!0}:s?{title:Eo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Eo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Eo().swap,action:"confirm-swap",disabled:!1}:{title:Eo().connectWallet,action:"connect-wallet",disabled:!1}}i(Cd,"getSwapButtonState");function Es(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(de))&&e&&e!=="0"&&n!==0)}i(Es,"canComputePriceImpact");function Is(t,e){let o=de;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 He(r.amount).multipliedBy(a||0))}return o}i(Is,"getUsdFeeOfStep");function yi(t,e){return t.reduce((o,n)=>o.plus(Is(n,e)),de)}i(yi,"getTotalFeeInUsd");function As(t){let e=de,o=new He(t.price||0);return e=e.plus(new He(t.amount).multipliedBy(o)),e}i(As,"getUsdFee");function Td(t){return t.reduce((e,o)=>e.plus(As(o)),de)}i(Td,"getTotalFeesInUsd");function kd(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(kd,"getFeesGroup");function vd(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(vd,"checkSlippageErrors");function fd(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(fd,"checkSlippageWarnings");function Si(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(Si,"getMinRequiredSlippage");function gd(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(gd,"hasProperSlippage");function wd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:f,affiliateWallets:h,destination:g,contractCall:m}=t,d=a?.reduce((S,k)=>(S[k.chain]=k.address,S),{}),y=[];return r?.forEach(S=>{y.push({blockchain:S.chain,addresses:[S.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:f??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:y,selectedWallets:d??{},slippage:p.toString(),contractCall:m,...g&&{destination:g},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(wd,"createQuoteRequestBody");function bd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(bd,"getWalletsForNewSwap");function jn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(jn,"getUsdInputFrom");function yt(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1].to.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(yt,"getUsdOutputFrom");function xs(t,e){return new He(e).div(new He(t)).minus(1).multipliedBy(td).toNumber()}i(xs,"getPercentageChange");function hd(t,e){let o=jn(t),n=yt(t),r=yt(e);if(!o||!n||!r)return!1;let a=xs(n.toString(),r.toString());return ad.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(hd,"isOutputAmountChangedExcessively");function xd(t,e,o){let n=t.validationStatus,r=ko({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>ld(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=_(new He(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=_(new He(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=vt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=vt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=vt.t(" for input and network fee")),vt.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:c,reason:u,currentAmount:l,blockchain:ft(s.asset.blockchain,o)}})})}i(xd,"generateBalanceWarnings");function Xn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Ci.NetworkChanged}i(Xn,"isNetworkStatusInWarningState");function Ed(t,e,o){let n="bellow button or",r=t.extraMessage,a=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(n)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(n,"")),Xn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?ek(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case Ci.WaitingForConnectingWallet:r=u?vt.t("Connect {wallet}",{wallet:u}):r;break;case Ci.WaitingForQueue:r=r||vt.t("Waiting for other running tasks to be finished");break;case Ci.WaitingForNetworkChange:r=r||vt.t("Waiting for changing wallet network");break;default:r=r||"";break}}a=a||"",r=r||"";let c=r?.indexOf("code")!==-1&&r?.indexOf("reason")!==-1;return{shortMessage:r,detailedMessage:{content:a,long:c}}}i(Ed,"getSwapMessages");function Id(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(Id,"getLastConvertedTokenInFailedSwap");function Ad(t){return t.status==="failed"}i(Ad,"shouldRetrySwap");function Nd(t,e,o,n,r,a){if(!n||t)return!0;let s=ko({filter:"all",quote:n}),c=ko({filter:"required",quote:n}),l=s.every(f=>r.some(h=>h.chain===f)),p=c.every(f=>r.some(h=>h.chain===f)),u=o&&a?Qo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Nd,"isConfirmSwapDisabled");function Bd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Bd,"isTokensIdentical");var Ti=i((t,e)=>t?.usdPrice?new et(e||de).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=Zo(tk()(ok(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new et(0),outputUsdValue:new et(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=de,a=o.inputUsdValue;return Mn(o.inputAmount)?(e&&(n=e?.outputAmount?new et(e?.outputAmount):null,a=jn(e)??de,r=yt(e)??de),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new et(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new et(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new et(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:Ti(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 et(0)}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),sanitizeInputAmount:e=>{let o=Kp(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Gr(e)||(o=Op(o),o=Up(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new et(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ti(n.fromToken,o)}}))},retry:e=>{let{fromBlockchain:o,fromToken:n,toBlockchain:r,toToken:a,inputAmount:s}=e;t({fromBlockchain:o,fromToken:n,inputAmount:s,outputAmount:null,inputUsdValue:Ti(n??null,s),outputUsdValue:new et(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?Ti(e.toToken,e.outputAmount?.toString()||""):new et(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new et(0),inputUsdValue:new et(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new et(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})})))),Wd=O.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Te.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&&Te.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 Ld(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=O(),u=T().config,f=T().fetchStatus,h=T().blockchains(),{findToken:g}=T(),{setAffiliateRef:m,setAffiliatePercent:d,setAffiliateWallets:y}=T(),C=u?.from?.tokens,S=u?.from?.blockchains,k=u?.to?.tokens,v=u?.to?.blockchains,x=ki(void 0),I=ki(void 0),A=ki(void 0),E=ki(void 0);un(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),un(()=>{if(f==="success"){r();let b=h.find(P=>P.name===u?.from?.blockchain),w=u?.from?.token,B=w&&g(w);(b||!b&&A.current)&&n(b??null),B?a({token:B,meta:{blockchains:h}}):!B&&x.current&&a({token:null}),A.current=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,f]),un(()=>{Ja(s,C)&&a({token:null}),Ra(l,S)&&n(null)},[C,S]),un(()=>{Ja(c,k)&&a({token:null}),Ra(p,v)&&o(null)},[k,v]),un(()=>{if(f==="success"){r();let b=h.find(P=>P.name===u?.to?.blockchain),w=u?.to?.token,B=w&&g(w);(b||!b&&E.current)&&o(b??null),B?e({token:B,meta:{blockchains:h}}):!B&&I.current&&e({token:null}),E.current=u?.to?.blockchain,I.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,f]),un(()=>{m(u?.affiliate?.ref??null),d(u?.affiliate?.percent??null),y(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Ld,"useSyncStoresWithConfig");import{useEffect as Ws,useRef as nk}from"react";import{useInRouterContext as rk,useLocation as ik,useSearchParams as ak}from"react-router-dom";function Ns(t,e){let o=t.split("--");return{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}}i(Ns,"convertTokenSearchParamToAsset");function Bs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Bs,"tokenToSearchParam");function Ms(){let t=ik(),[e,o]=ak(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:f,setInputAmount:h}=O(),g=T().fetchStatus,m=T().blockchains(),d=rk(),{updateIframe:y,updateCampaignMode:C}=T(),S=T().isInCampaignMode(),k=nk(),{findToken:v}=T(),x=i(()=>{let A={};for(let[L,ae]of e.entries())L.startsWith("utm_")&&(A[L]=ae);let E=e.get("fromAmount"),b=e.get("fromBlockchain"),w=e.get("fromToken"),B=e.get("toBlockchain"),P=e.get("toToken"),$=e.get("autoConnect"),q=e.get("clientUrl"),R=e.get("liquiditySources"),K=e.get("blockchain");return{fromAmount:E,fromBlockchain:b,fromToken:w,toBlockchain:B,toToken:P,autoConnect:$,clientUrl:q,liquiditySources:R,utmQueryParams:A,blockchain:K}},"getUrlSearchParams"),I=i(A=>{for(let E in A)A[E]||delete A[E];o(A,{replace:!0})},"updateUrlSearchParams");Ws(()=>{let{autoConnect:A,clientUrl:E,utmQueryParams:b,blockchain:w}=x();d&&g==="success"&&I({fromBlockchain:n?.name,fromToken:Bs(a),toBlockchain:r?.name,toToken:Bs(s),fromAmount:c,autoConnect:A??void 0,clientUrl:E??void 0,blockchain:w??void 0,liquiditySources:S?k.current:void 0,...b})},[t.pathname,c,n,a,r,s,S,g]),Ws(()=>{if(!d)return;let A=x();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&h(A.fromAmount),g==="success"){let E=m.find(P=>P.name===A.fromBlockchain),b=A.fromToken&&E?v(Ns(A.fromToken,E)):void 0,w=m.find(P=>P.name===A.toBlockchain),B=A.toToken&&w?v(Ns(A.toToken,w)):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:m}})),w&&(p(w),B&&f({token:B,meta:{blockchains:m}}))}},[g]),Ws(()=>{let{clientUrl:A,liquiditySources:E}=x();y("clientUrl",A||void 0),C("liquiditySources",E?.split(",")??void 0)},[])}i(Ms,"useSyncUrlAndStore");import{i18n as hn}from"@lingui/core";import{Alert as Iv,Button as Av,darkTheme as Nv,Divider as pl,DoneIcon as Bv,styled as Wv,TextField as Lv,Typography as Mv}from"@rango-dev/ui";import Ve,{useState as Pv}from"react";import{useNavigate as _v,useSearchParams as Dv}from"react-router-dom";import{ChevronRightIcon as sk,Divider as $d,Image as lk,Typography as Fd}from"@rango-dev/ui";import wt from"react";import{darkTheme as Md,styled as Ps}from"@rango-dev/ui";var Pd=Ps("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Md} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Md} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),_d=Ps("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),Dd=Ps("div",{display:"flex"});function _s(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return wt.createElement(_d,null,wt.createElement(Fd,{size:"large",variant:"label"},n),wt.createElement($d,{size:10}),wt.createElement(Pd,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},wt.createElement(Dd,null,r&&wt.createElement(wt.Fragment,null,wt.createElement(lk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),wt.createElement($d,{size:4,direction:"horizontal"})),wt.createElement(Fd,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),wt.createElement(sk,{size:12,color:"black"})))}i(_s,"BlockchainSelectorButton");import{i18n as Us}from"@lingui/core";import{Button as dk,Divider as Qd,MessageBox as mk}from"@rango-dev/ui";import oo,{useEffect as qd,useState as zs}from"react";import{i18n as vi}from"@lingui/core";import{Divider as Io,ExternalLinkIcon as pk,Image as uk,Typography as mn}from"@rango-dev/ui";import ve from"react";var Od="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function Ud(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(Ud,"generateExplorerLink");import{Button as ck,darkTheme as dn,styled as Ds}from"@rango-dev/ui";var $s=Ds("a",{textDecoration:"none",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"},"& svg":{marginLeft:"$4",color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}},variants:{hasHover:{true:{"&:hover":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"},"& svg":{color:"$colors$secondary550",[`.${dn} &`]:{color:"$colors$secondary500"}}}},false:{}}}}),zd=Ds("div",{display:"flex",justifyContent:"center",flexDirection:"column",alignItems:"center",textAlign:"center","& ._blockchain-name, & ._coin-source":{color:"$colors$neutral600",[`.${dn} &`]:{color:"$colors$neutral800"}},"& ._coin-source-name, & ._custom-token-description":{color:"$colors$neutral700",[`.${dn} &`]:{color:"$colors$neutral900"}}}),Fs=Ds(ck,{minHeight:"$40"});function Os(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=Ud(n.address,s),l=i(()=>window.open(Od,"_blank"),"onClickLearnMore");return ve.createElement(J,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},ve.createElement(zd,null,ve.createElement(uk,{src:n.image===""?Ur:n.image,size:45,type:"circular"}),ve.createElement(Io,{size:4}),ve.createElement(mn,{variant:"title",size:"medium"},n.symbol),ve.createElement(mn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ve.createElement(Io,{size:4}),ve.createElement(mn,{variant:"body",size:"medium"},c?ve.createElement($s,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,ve.createElement(pk,{size:12,color:"gray"})):ve.createElement($s,null,n.address)),ve.createElement(Io,{size:4}),n.coinSource&&ve.createElement(mn,{className:"_coin-source",variant:"body",size:"xsmall"},vi.t("via")," ",ve.createElement(mn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ve.createElement(Io,{size:"32"}),ve.createElement(mn,{size:"medium",variant:"body",className:"_custom-token-description"},vi.t("This token is not part of our verified token list. please verify its source and make sure to understand all associated risks before proceeding."))),ve.createElement(Io,{size:40}),ve.createElement(Io,{size:10}),ve.createElement(Fs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},vi.t("Import Anyway")),ve.createElement(Io,{size:10}),ve.createElement(Fs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},vi.t("Learn More")))}i(Os,"CustomTokenModal");function Yn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=T(),[f,h]=zs(!1),[g,m]=zs(!1),[d,y]=zs(!1),C=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),h(!1)},"closeErrorModal"),k=i(()=>{y(!0),S()},"handleErrorModalButtonClick"),v=i(()=>{d&&n?.type==="network-error"&&(y(!1),C()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return qd(()=>{n&&h(!0)},[n]),qd(()=>{o&&e&&m(!0)},[o,e]),oo.createElement(oo.Fragment,null,oo.createElement(J,{open:f,dismissible:!0,id:"widget-add-custom-token-modal",onClose:S,onExit:v,container:N()},oo.createElement(mk,{title:n?.title??"",type:"error",description:n?.message||Us.t("Failed Network, Please retry.")},oo.createElement(Qd,{size:40}),oo.createElement(Qd,{size:10}),oo.createElement(dk,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:k},n?.type==="network-error"?Us.t("Retry"):Us.t("Add another custom token")))),o&&e&&oo.createElement(Os,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>m(!1),open:g,onExit:p}))}i(Yn,"ImportCustomToken");import{useManager as kv}from"@rango-dev/queue-manager-react";import{BottomLogo as vv,Divider as km,Header as wv}from"@rango-dev/ui";import Ne,{useEffect as Wi,useLayoutEffect as bv,useRef as vm,useState as wm}from"react";import{useRef as fk}from"react";function Zn(){return window.self!==window.top}i(Zn,"isAppLoadedIntoIframe");function Qs(){let t=fk(null),{iframe:e}=T(),o=Zn()&&e.clientUrl,n=i(s=>{o&&window.top?.postMessage(s,e.clientUrl)},"send");return{send:n,connectHeightObserver:i(s=>{t.current=new ResizeObserver(c=>{for(let l of c)n({type:"widget_height",data:{height:l.contentRect.height}})}),t.current.observe(s)},"connectHeightObserver"),disconnectHeightObserver:i(()=>{t.current&&(t.current.disconnect(),t.current=null)},"disconnectHeightObserver")}}i(Qs,"useIframe");import{useNavigate as gk}from"react-router-dom";function Ge(){let t=gk();return()=>t(-1)}i(Ge,"useNavigateBack");import{useLayoutEffect as hk,useState as Jn}from"react";var Hd=480,Gd=768,Vd=1024,Kd=1200,yk=i(()=>{let[t,e]=Jn(!1),[o,n]=Jn(!1),[r,a]=Jn(!1),[s,c]=Jn(!1),[l,p]=Jn(!1),u=i(()=>{e(window.innerWidth<=Hd),n(window.innerWidth>Hd&&window.innerWidth<=Gd),a(window.innerWidth>Gd&&window.innerWidth<=Vd),c(window.innerWidth>Vd&&window.innerWidth<=Kd),p(window.innerWidth>Kd)},"handleResize");return hk(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),fn=yk;import{createTheme as Xs,darkTheme as Bk,lightTheme as Wk}from"@rango-dev/ui";import{useEffect as Lk,useState as Mk}from"react";import{theme as Ak,darkColors as Nk}from"@rango-dev/ui";import Ks from"react";var wi=16,bi=255,jd=.11;function Sk(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(Sk,"expandShortHexColor");function Ck(t,e){return t.padStart(e,"0")}i(Ck,"pad");function qs(t){let e=Math.min(Math.max(Math.round(t),0),bi);return Ck(e.toString(wi),2)}i(qs,"intToHex");function Tk(t){return`#${qs(t.red)}${qs(t.green)}${qs(t.blue)}`}i(Tk,"rgbToHex");function kk(t){let e=parseInt(t.slice(1,3),wi),o=parseInt(t.slice(3,5),wi),n=parseInt(t.slice(5,7),wi);return{red:e,green:o,blue:n}}i(kk,"hexToRGB");function vk(t,e){let o=1-jd*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(vk,"generateShade");function wk(t,e){let o=jd*e;return{red:t.red+(bi-t.red)*o,green:t.green+(bi-t.green)*o,blue:t.blue+(bi-t.blue)*o}}i(wk,"generateTint");function bk(t){return Xd(t,vk)}i(bk,"calculateShades");function xk(t){return Xd(t,wk)}i(xk,"calculateTints");function Xd(t,e){let o=kk(t),n=[];for(let r=1;r<9;r++)n.push(Tk(e(o,r)));return n}i(Xd,"calculateColors");function Hs(t,e,o){let a=xk(t).reverse().concat(t),s=bk(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let f=100+(o?p-1-u:u)*50;l[`${e}${f}`]=c[u]}return l}i(Hs,"createTintsAndShades");function Gs(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)&&!Gp(r)){let l=Sk(a);Object.assign(n,Hs(l,r,s))}}return{...n,...e}}i(Gs,"expandToGenerateThemeColors");var Yd=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ek=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Yd(o%52)+e;return Yd(o%52)+e},"toAlphabeticName"),Ik=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Vs=i(t=>Ek(Ik(5381,JSON.stringify(t))>>>0),"toHash");function js(t){let e=Ak.colors,o={...e,...Nk},n,r;if(t?.light){let s={colors:Gs(e,t.light)};n={id:`${Za}-light-${Vs(s)}`,tokens:s}}if(t?.dark){let s={colors:Gs(o,t.dark,{reverseNeutralRange:!0})};r={id:`${Za}-dark-${Vs(s)}`,tokens:s}}return{light:n,dark:r}}i(js,"customizedThemeTokens");function Zd(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>Ks.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(Ks.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(Ks.cloneElement(e,{key:c}))}}),o}i(Zd,"joinList");function Jd(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Jd,"doesWindowPreferDarkColorScheme");function no(t){let{colors:e,fontFamily:o=Np,borderRadius:n=iu,secondaryBorderRadius:r=au}=t,[a,s]=Mk(Jd()?"dark":"light"),{theme:c}=T(),{dark:l,light:p}=js(e),u=Xs({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[u.className,Wk.className],h=[u.className,Bk.className];if(p){let m=Xs(p.id,p.tokens);f.push(m.className)}if(l){let m=Xs(l.id,l.tokens);h.push(m.className)}return Lk(()=>{let m=i(d=>{d.matches?s("dark"):s("light")},"switchThemeListener");return Jd()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",m),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",m)}},[]),{activeTheme:i(()=>{let m=f.join(" "),d=h.join(" ");return c==="auto"?a==="dark"?d:m:c==="dark"?d:m},"getActiveTheme"),mode:c==="auto"?a:c}}i(no,"useTheme");var St=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 Rd}from"@lingui/core";import{Alert as Pk,Button as _k}from"@rango-dev/ui";import em from"react";function Ys(t){return em.createElement(Pk,{action:em.createElement(_k,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Rd.t("Activate this tab")),type:"warning",variant:"alarm",title:Rd.t("Another tab is open and handles transactions.")})}i(Ys,"ActivateTabAlert");import{i18n as Zs}from"@lingui/core";import{Button as Dk,Divider as $k,MessageBox as Fk}from"@rango-dev/ui";import xi from"react";function Js(t){let{open:e,onClose:o,onConfirm:n}=t;return xi.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},xi.createElement(Fk,{title:Zs.t("Activate current tab"),type:"warning",description:Zs.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.")},xi.createElement($k,{size:20}),xi.createElement(Dk,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},Zs.t("Confirm"))))}i(Js,"ActivateTabModal");import{ChevronLeftIcon as zk}from"@rango-dev/ui";import lm from"react";import{css as Ok,darkTheme as tm,IconButton as Uk,styled as Ao}from"@rango-dev/ui";var Lt=Ao(Uk,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${tm} &`]:{backgroundColor:"$neutral"}}}),om=Ao("div",{position:"absolute",background:"$secondary500",[`.${tm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),ro=Ao("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),nm=Ao("div",{position:"absolute",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0",variants:{isSever:{true:{backgroundColor:"$error500"},false:{backgroundColor:"$secondary500"}}}}),rm=Ao("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),im=Ao("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),am=Ok({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),sm=Ao("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function Rs(t){return lm.createElement(Lt,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},lm.createElement(zk,{color:"black",size:16}))}i(Rs,"BackButton");import{i18n as Qk}from"@lingui/core";import{Button as qk,Typography as Hk}from"@rango-dev/ui";import el from"react";function tl(t){return el.createElement(ro,null,el.createElement(qk,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},el.createElement(Hk,{variant:"label",size:"medium",color:"error500"},Qk.t("Cancel"))))}i(tl,"CancelButton");import{i18n as Gk}from"@lingui/core";import{Image as Vk,Tooltip as Kk,WalletIcon as jk}from"@rango-dev/ui";import No from"react";function ol(t){let{list:e}=Tt(),o=e.filter(r=>r.state==="connected"),n=o.length?No.createElement("div",{className:am()},o.map(r=>No.createElement(sm,{key:r.title},No.createElement(Vk,{src:r.image,size:14})))):Gk.t("Connect Wallet");return No.createElement(Kk,{container:t.container,side:"bottom",content:n},No.createElement(Lt,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&No.createElement(om,null),No.createElement(jk,{size:18,color:"black"})))}i(ol,"WalletButton");import{i18n as Ii}from"@lingui/core";import{NotificationsIcon as pv,Popover as uv,SettingsIcon as dv,Tooltip as Ai,TransactionIcon as mv}from"@rango-dev/ui";import Pe from"react";import{Notifications as Jk}from"@rango-dev/ui";import Rk from"react";import{useNavigate as ev}from"react-router-dom";import{create as Xk}from"zustand";import{persist as Yk,subscribeWithSelector as Zk}from"zustand/middleware";var Ae=Zo(Xk()(Yk(Zk((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}}},c=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...c,s]}))},removeNotification:o=>{t(n=>({notifications:n.notifications.filter(r=>r.requestId!==o)}))},getNotifications:()=>{let{isSynced:o,notifications:n}=e();return o?n.sort((r,a)=>r.route.creationTime&&!a.route.creationTime?-1:!r.route.creationTime&&a.route.creationTime?1:!r.route.creationTime&&!a.route.creationTime?a.creationTime-r.creationTime:a.route.creationTime-r.route.creationTime):[]},syncNotifications:o=>{let{isSynced:n,notifications:r}=e();if(!n){let a=[];r.forEach(s=>{o.some(l=>l.swap.requestId===s.requestId)&&a.push(s)}),t({isSynced:!0,notifications:a})}},clearNotifications:()=>t({notifications:[]})})),{name:"notification",skipHydration:!0,partialize:({isSynced:t,...e})=>e,version:1,migrate:(t,e)=>{if(e===0){let o=t.notifications;t.notifications=o.filter(n=>!n.read).map(({read:n,...r})=>r)}return t}})));function nl(){let t=ev(),{getNotifications:e,clearNotifications:o}=Ae(),n=e(),r=T().blockchains(),{findToken:a}=T();return Rk.createElement(Jk,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>Tp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(nl,"NotificationContent");import{useManager as tv}from"@rango-dev/queue-manager-react";import{InProgressIcon as ov}from"@rango-dev/ui";import cm from"react";var nv=i(()=>{let{manager:t}=tv();return St(t).map(({swap:o})=>o).find(o=>o.status==="running")?cm.createElement(im,{id:"widget-header-history-badge-container"},cm.createElement(ov,{color:"info",size:6})):null},"InProgressTransactionBadge"),pm=nv;import{EventSeverity as rv}from"@rango-dev/queue-manager-rango-preset";import{Typography as iv}from"@rango-dev/ui";import um from"react";function dm(){let{getNotifications:t}=Ae(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===rv.WARNING);return o?um.createElement(nm,{isSever:n},um.createElement(iv,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(dm,"NotificationsBadge");import{RefreshProgressButton as av}from"@rango-dev/ui";import rl,{useEffect as sv,useState as mm}from"react";var lv=1e3,fm=60,cv=100;function Ei({onClick:t}){let[e,o]=mm(0),[n,r]=mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");sv(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===fm&&c()},lv):s(l),document.addEventListener("visibilitychange",()=>a(l)),()=>{document.removeEventListener("visibilitychange",()=>a(l)),l&&clearInterval(l)}},[e,t]);let s=i(l=>{l&&clearInterval(l),o(0)},"clearTimeout"),c=i(()=>{t?.(),o(0),r(!0)},"handleRefreshClick");return rl.createElement(Lt,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},rl.createElement(rm,{onTransitionEnd:()=>r(!1),isRefetched:n},rl.createElement(av,{size:22,color:t?"black":"gray",progress:e/fm*cv})))}i(Ei,"RefreshButton");function Bo(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=T(),c=Re("notification",s)||r.includes("notifications");return Pe.createElement(Pe.Fragment,null,!r.includes("refresh")&&Pe.createElement(Ai,{container:a||N(),side:"top",content:Ii.t("Refresh")},Pe.createElement(Ei,{onClick:e})),!c&&Pe.createElement(uv,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Pe.createElement(nl,null)},Pe.createElement("div",null,Pe.createElement(Ai,{container:N(),side:"top",content:Ii.t("Notifications")},Pe.createElement(Lt,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},Pe.createElement(pv,{size:18,color:"black"}),Pe.createElement(dm,null))))),!r.includes("settings")&&Pe.createElement(Ai,{container:N(),side:"top",content:Ii.t("Settings")},Pe.createElement(Lt,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},Pe.createElement(dv,{size:18,color:"black"}))),!r.includes("history")&&Pe.createElement(Ai,{container:N(),side:"top",content:Ii.t("History")},Pe.createElement(Lt,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},Pe.createElement(mv,{size:18,color:"black"}),Pe.createElement(pm,null))))}i(Bo,"HeaderButtons");import{i18n as il}from"@lingui/core";import{Divider as hm,MessageBox as hv,RefreshIcon as yv}from"@rango-dev/ui";import gn from"react";import{Button as fv,styled as gv}from"@rango-dev/ui";var gm=gv(fv,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function al(t){let{open:e,onClose:o}=t;return gn.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-refresh-modal",container:N()},gn.createElement(hv,{title:il.t("Something went wrong"),type:"error",description:il.t("Something went wrong. Please refresh the app.")},gn.createElement(hm,{size:30}),gn.createElement(gm,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},gn.createElement(yv,{size:20,color:"primary"}),gn.createElement(hm,{size:4,direction:"horizontal"}),il.t("Refresh"))))}i(al,"RefreshModal");function sl(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(sl,"onScrollContentAttachStatusToContainer");import{css as Cv,styled as Ni}from"@rango-dev/ui";var Bi=Cv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),ym=Ni("div",{position:"relative",width:"100vw",minWidth:"300px",maxWidth:"390px",backgroundColor:"$background",variants:{height:{auto:{height:"auto",maxHeight:700},fixed:{minHeight:425,maxHeight:700,height:700}},showBanner:{true:{overflow:"visible"}}}}),Sm=Ni("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Cm=Ni("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"}}}),Tm=Ni("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function ie(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=Qs(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=T(),[u,f]=wm(!1),{config:{features:h,theme:g}}=T(),{watermark:m,setShowCompactTokenSelector:d}=te(),y=m==="FULL",{activeTheme:C}=no(g||{}),[S,k]=wm(!1),v=Re("connectWalletButton",h),{isActiveTab:x,tabManagerInitiated:I,showActivateTabModal:A,setShowActivateTabModal:E,activateCurrentTab:b}=te(),w=Ge(),{manager:B}=kv(),{isTablet:P,isMobile:$}=fn(),R=St(B).map(({swap:ee})=>ee).some(ee=>ee.status==="running"),K=i(()=>b(wo.forceClaim,R),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),ae=typeof r.hasBackButton>"u"||r.hasBackButton,re=vm(null),Q=vm(null);return Wi(()=>{let ee=(p?.swapBoxBanner?.routes?.length??0)===0,le=!!p?.swapBoxBanner?.routes?.some(ue=>location.pathname.endsWith(ue));k(!!p?.swapBoxBanner&&(ee||le))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),Wi(()=>(Zn()&&Q.current&&e(Q.current),()=>{o()}),[]),Wi(()=>(re.current?.addEventListener("scroll",sl),()=>{re.current?.removeEventListener("scroll",sl)}),[]),Wi(()=>{f(c==="failed")},[c]),bv(()=>{let ee=s==="auto"||!Q.current||Zn(),le=$||P,ue=i(()=>{ee||(le?Q.current.style.height=`${window.innerHeight-Q.current.offsetTop}px`:Q.current.style.height=`${700}px`,d(parseFloat(Q.current.style.height)<640))},"handler");return ue(),window.addEventListener("resize",ue),()=>window.removeEventListener("resize",ue)},[s,$,P]),Ne.createElement(ym,{height:s,id:Qe.SWAP_BOX_ID,className:`${C()} ${Bi()}`,ref:Q,showBanner:S},Ne.createElement(wv,{prefix:ae?Ne.createElement(Rs,{onClick:()=>{w(),r.onBack?.()}}):null,title:r.title,suffix:Ne.createElement(Ne.Fragment,null,r.suffix,r.onWallet&&!v&&Ne.createElement(ol,{container:N(),onClick:L,isConnected:!!l?.length}),r.onCancel&&Ne.createElement(tl,{onClick:r.onCancel}))}),Ne.createElement(Sm,{ref:re},n),Ne.createElement(Js,{open:A,onClose:()=>E(!1),onConfirm:K}),Ne.createElement(Cm,null,Ne.createElement("div",{className:"footer__content"},I&&!x&&Ne.createElement("div",{className:"footer__alert"},Ne.createElement(Ys,{onActivateTab:K}),Ne.createElement(km,{size:10})),a),Ne.createElement(km,{size:12}),Ne.createElement("div",{className:`footer__logo ${y?"logo__show":"logo__hidden"}`},Ne.createElement(vv,null))),S&&Ne.createElement(Tm,null,p?.swapBoxBanner?.element),Ne.createElement(al,{open:u,onClose:()=>f(!1)}))}i(ie,"Layout");import{styled as xv}from"@rango-dev/ui";var bm="$20 $20 $10 $20",ll=xv("div",{padding:bm,overflowY:"auto",flexGrow:1});import{styled as Ev}from"@rango-dev/ui";var ce=Ev("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 io}from"@lingui/core";import{useState as cl}from"react";function xm(){let[t,e]=cl(!1),[o,n]=cl(null),[r,a]=cl(null),{findToken:s}=T(),c=T().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(f,h){switch(f){case"duplicated":return{type:f,title:io.t("Duplicate Token"),message:io.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:f,title:io.t("Token Already Exists"),message:io.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:f,title:io.t("Token Not Found"),message:io.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:h}})};case"network-error":return{type:f,title:io.t("Network error"),message:io.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:f,tokenAddress:h})=>{e(!0);try{if(c.some(C=>C.address?.toLowerCase()===h.toLowerCase())){let C=p("duplicated");n(C);return}let m=await at().getCustomToken({blockchain:f,address:h});if(!m||!m.token||m.error){let C=p("not-found",f);n(C);return}let d=m.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let C=p("token-exist");n(C);return}return a({...d,warning:!0})}catch(g){if(g.code==="ERR_BAD_REQUEST"){let m=p("not-found",f);n(m);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(xm,"useFetchCustomToken");var $v=Wv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Nv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Em(){let t=_v(),[e]=Dv(),o=Ge(),n=T().blockchains(),r=e.get("blockchain")||"",a=So(r,n),[s,c]=Pv(""),{fetchCustomToken:l,token:p,loading:u,error:f,resetState:h}=xm(),g=!!a&&Qo(a,s),m=!a||!s||!g,d=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return Ve.createElement(ie,{header:{title:hn.t("Add Custom Token")}},Ve.createElement(ce,null,Ve.createElement($v,null,Ve.createElement("div",null,Ve.createElement(_s,{onClick:()=>t(F.blockchains,{replace:!0}),hasLogo:!!a?.logo,value:a?{name:a.displayName,logo:a.logo}:void 0,title:hn.t("Select chain"),placeholder:hn.t("Select chain")}),Ve.createElement(pl,{size:"24"}),Ve.createElement(Mv,{size:"large",variant:"label"},hn.t("Enter Address")),Ve.createElement(pl,{size:10}),Ve.createElement(Lv,{fullWidth:!0,id:"widget-add-custom-token-token-address-input",disabled:!a,variant:"contained",placeholder:hn.t("Enter token address"),size:"large",value:s,suffix:!!s&&g&&Ve.createElement(Bv,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!g&&!!s&&Ve.createElement(Ve.Fragment,null,Ve.createElement(pl,{size:4}),Ve.createElement(Iv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ve.createElement(Av,{id:"widget-add-custom-token-import-btn",disabled:m,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},hn.t("Import"))),Ve.createElement(Yn,{token:p,blockchain:a??void 0,address:s,error:f??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{f?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:h,onExitImportModal:h})))}i(Em,"AddCustomTokenPage");import{i18n as zl}from"@lingui/core";import{useManager as kb}from"@rango-dev/queue-manager-react";import{Alert as vb,Button as wb,css as ql,Divider as Ql,IconButton as hg,styled as bb,Typography as xb,WalletIcon as Eb}from"@rango-dev/ui";import De,{useEffect as na,useLayoutEffect as Ib,useRef as Ab,useState as dr}from"react";import{useNavigate as Nb}from"react-router-dom";import{i18n as Wo}from"@lingui/core";import{Alert as cw,BalanceErrors as pw,Button as Jm,ChevronLeftIcon as uw,Divider as Sl,MessageBox as dw,Typography as Cl}from"@rango-dev/ui";import ne,{useCallback as mw,useEffect as Rm,useMemo as fw,useState as Cn}from"react";import{useNavigate as gw}from"react-router-dom";import{i18n as fl}from"@lingui/core";import{Alert as Qv,ChevronDownIcon as qv,CloseIcon as Hv,Divider as Mm,IconButton as Pm,PasteIcon as Gv,Typography as Vv,WalletIcon as Kv}from"@rango-dev/ui";import _e,{useEffect as jv,useRef as Xv}from"react";import _i,{useRef as Uv}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Im,styled as Li}from"@rango-dev/ui";var ul=300,Fv=Im({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ov=Im({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Am=Li(yn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),dl=Li(yn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Mi=Li(yn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Fv} ${ul}ms ease-out`},false:{animation:`${Ov} ${ul}ms ease-out`}}}}),Pi=Li("div",{transition:`all ${ul}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function Di(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=Uv(null);return _i.createElement(Am,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&_i.createElement(dl,{className:"collapsible_trigger",onClick:a},s),_i.createElement(Mi,{className:"collapsible_content",open:e},r),c==="bottom"&&_i.createElement(dl,{className:"collapsible_trigger",onClick:a},s))}i(Di,"CustomCollapsible");import{darkTheme as Nm,styled as ml,TextField as zv}from"@rango-dev/ui";var Bm=ml("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Wm=ml(zv,{backgroundColor:"$neutral100",padding:"$15"}),Lm=ml("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 _m(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=O(),{config:s}=T(),c=T().blockchains(),l=$r(e.name,c),p=Xv(null),u=s?.defaultCustomDestinations?.[e.name],f=navigator?.userAgent.includes("Firefox"),g=n&&!!r&&e&&!Qo(e,r),m=i(()=>{a("")},"handleClear"),d=i(async C=>{if(C.preventDefault(),navigator.clipboard!==void 0){let S=await navigator.clipboard.readText();a(S),p?.current?.focus()}},"handlePaste"),y=i(()=>r?_e.createElement(Pm,{id:"widget-custom-destination-close-icon-btn",onClick:m,variant:"ghost"},_e.createElement(Hv,{size:12,color:"gray"})):f?null:_e.createElement(Pm,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},_e.createElement(Gv,{size:16})),"renderSuffix");return jv(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),_e.createElement(Bm,null,_e.createElement(Di,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:_e.createElement(Lm,{id:"widget-custom-destination-collapsible-btn"},_e.createElement("div",{className:"button__content"},_e.createElement(Kv,{size:18,color:"info"}),_e.createElement(Mm,{size:4,direction:"horizontal"}),_e.createElement(Vv,{variant:"label",size:"medium",color:n?"$neutral600":void 0},fl.t("Send to a different address"))),_e.createElement(Pi,{orientation:n?"up":"down"},_e.createElement(qv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},_e.createElement(Wm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:fl.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:y(),onChange:C=>{let S=C.target.value;a(S)}})),g&&_e.createElement(_e.Fragment,null,_e.createElement(Mm,{size:4}),_e.createElement(Qv,{variant:"alarm",type:"error",title:fl.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(_m,"CustomDestination");import{css as Yv,IconButton as Zv,SelectableWalletButton as Jv,styled as ao}from"@rango-dev/ui";var Dm=ao("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),$m=ao("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Fm=ao(Jv,{justifyContent:"center"}),Om=ao("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Um=ao(Zv,{position:"absolute",left:"$20"}),zm=ao("div",{paddingTop:"$20"}),Qm=Yv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),qm=ao("div",{display:"flex"}),Hm=ao("div",{overflow:"visible",width:"100%"});import{i18n as hl}from"@lingui/core";import{warn as nw}from"@rango-dev/logging-core";import{Divider as rw,makeInfo as iw,SelectableWallet as aw,Typography as Ym,WalletState as $i}from"@rango-dev/ui";import tt,{useEffect as Zm,useState as tr}from"react";import{Image as tw,MessageBox as ow}from"@rango-dev/ui";import er from"react";import{keyframes as Rv,styled as gl}from"@rango-dev/ui";var Gm=gl("div",{position:"relative"}),ew=Rv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Vm=gl("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${ew} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Km=gl("div",{"& img":{borderRadius:"50%"}});import{i18n as Sn}from"@lingui/core";function jm(t,e){switch(t){case"in-progress":return{type:"loading",title:Sn.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),description:Sn.t({id:"Please approve the experimental chain pop-up in your wallet.",values:{blockchainDisplayName:e}})};case"completed":return{type:"success",title:Sn.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:e}}),description:Sn.t({id:"The {blockchainDisplayName} chain has been successfully added to your wallet.",values:{blockchainDisplayName:e}})};case"rejected":return{type:"error",title:Sn.t("Request Rejected"),description:Sn.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(jm,"generateMessageByStatus");function Xm(t){let{status:e,displayName:o,image:n}=t,r=jm(e,o),a=e=="in-progress";return er.createElement(ow,{type:r.type,title:r.title,description:r.description,icon:a?er.createElement(Gm,null,er.createElement(Km,null,er.createElement(tw,{src:n,size:45})),er.createElement(Vm,null)):void 0})}i(Xm,"ExperimentalChainStatus");var sw=7,lw=3e3;function yl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=te.use.isActiveTab(),{blockchains:l,connectedWallets:p}=T(),[u,f]=tr(),[h,g]=tr(null),[m,d]=tr(!1),[y,C]=tr(null),{suggestAndConnect:S}=Fi(),{list:k}=Tt({chain:e}),[v,x]=tr(k),I=k.length,A=a&&I-a>0,E=i(async w=>{d(!1),C("in-progress");try{await S(w.walletType,w.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");Zm(()=>{x(w=>{let B=k.findIndex(P=>n(P.type,e));return A&&B>1?[k[B]].concat(k.filter((P,$)=>$!==B)):w.map(P=>k.find($=>$.type===P.type)??P)})},[JSON.stringify(k)]);let b=document.getElementById(Qe.SWAP_BOX_ID);return Zm(()=>{let w=null;return(y==="completed"||y==="rejected")&&(w=setTimeout(()=>C(null),lw)),()=>{w&&clearTimeout(w)}},[y]),tt.createElement(tt.Fragment,null,v.slice(0,a).map(w=>{let B=Rp({connectedWallets:p,walletType:w.type,chain:e}),P=w.state===$i.CONNECTED,$=B?Go(B,sw):"",q=P&&!!w.needsNamespace&&!$,R=Xr(l(),e),K=!p.find(ue=>ue.walletType===w.type&&ue.chain===e),L=R&&K&&w.state===$i.CONNECTED,ae=i(async()=>{w.state===$i.DISCONNECTED||q?f(w):L?(g({walletType:w.type,chain:e,address:B??""}),d(!0)):r({walletType:w.type,chain:e,address:B??""})},"onSelectableWalletClick"),re=iw(w.state),Q=i(()=>L?hl.t({id:"Add {chain} chain",values:{chain:e}}):q?hl.t("Chain not connected"):$||re.description,"getWalletDescription"),ee=i(()=>w.state===$i.CONNECTED?q?"neutral600":"neutral700":re.color,"getWalletDescriptionColor"),le=h?.chain?$r(h.chain,l()):void 0;return tt.createElement(tt.Fragment,{key:`${w.title}_${le}`},!!h&&tt.createElement(J,{id:"widget-wallets-list-watermarked-modal",open:!!h&&m,container:b,onClose:()=>{g(null)}},tt.createElement(ks,{id:"widget-wallets-list-experimental-chain-container",displayName:le,onConfirm:()=>{E(h)}})),y&&tt.createElement(J,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!y,onClose:C.bind(null,null),container:b},tt.createElement(Xm,{status:y,displayName:le,image:w.image}),tt.createElement(rw,{direction:"vertical",size:32})),tt.createElement(aw,{key:w.type,id:"widget-wallets-list-selectable-wallet-btn",description:Q(),descriptionColor:ee(),onClick:ae,selected:n(w.type,e),disabled:!c,...w}))}),tt.createElement(xo,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{f(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):nw(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),A&&tt.createElement(Fm,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},tt.createElement(Ym,{variant:"label",size:"medium"},hl.t("Show more wallets"),tt.createElement(Ym,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(a??0)))))}i(yl,"WalletList");var hw=2;function ef(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=gw(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:f,customDestination:h,setCustomDestination:g}=O(),{config:m,connectedWallets:d,setWalletsAsSelected:y}=T(),[C,S]=Cn(""),[k,v]=Cn([]),[x,I]=Cn(""),[A,E]=Cn(!!h),b=fw(()=>ko({filter:"all",quote:l}),[l]),w=ko({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),P=i(W=>w.includes(W),"isWalletRequiredFor"),$=mw(()=>d.filter(W=>W.selected&&b.includes(W.chain)),[d,b]),[q,R]=Cn($()),[K,L]=Cn([]),ae=i((W,G)=>L(j=>j.concat({blockchain:W,walletType:G})),"addNextSelectedWallets"),re=k.length>0,Q=i((W,G)=>!!q.find(j=>j.walletType===W&&j.chain===G&&j.selected&&(P(G)||!P(G)&&!h)),"isSelected"),ee=i((W,G,j)=>{let X=!1;return W.map(fe=>{if(fe.chain===G){let Ue=fe.selected;return!X&&j?(X=!0,Ue=!0):j||(Ue=!1),{...fe,selected:Ue}}return fe})},"updateSelectableWallets"),le=i(W=>{E(W),W?P(B?.name??"")||R(G=>ee(G,B?.name||"",!1)):(g(""),R(G=>ee(G,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),ue=i(W=>{if(C&&S(""),Q(W.walletType,W.chain))return;let j=d.find(X=>X.walletType===W.walletType&&X.chain===W.chain);j&&(n(),W.chain===B?.name&&A&&!P(B.name)&&(E(!1),g(null)),R(X=>X.filter(fe=>fe.chain!==W.chain).concat({...j,selected:!0})))},"onChange"),se=i(()=>{let W=q.filter(G=>G.selected);y(W),p(W),f(!0),o()},"onConfirmBalance"),Ze=i(async()=>{v([]),I("");let W=await r?.({selectedWallets:q.filter(j=>j.selected),customDestination:h}),G=W.warnings;G?.balance?.messages&&v(G.balance.messages),W.error&&I(ed(W.error)),!W.error&&!G?.balance?.messages.length?se():v(G?.balance?.messages??[])},"onConfirmWallets");Rm(()=>{R(W=>{let G=[];return W.forEach(j=>{!d.some(fe=>fe.chain===j.chain&&fe.walletType===j.walletType&&fe.address===j.address)||G.push(j)}),G=G.concat(d.filter(j=>!!!G.find(fe=>fe.chain===j.chain)&&j.selected&&b.includes(j.chain))),G})},[d,b]),Rm(()=>{let W=[];K.length>0&&(K.forEach(G=>{let j=d.find(X=>X.chain===G.blockchain&&X.walletType===G.walletType);j?ue(j):W.push(G)}),L(W))},[d,K]);let H=document.getElementById(Qe.SWAP_BOX_ID);return ne.createElement(J,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!C,container:H,...!C&&{styles:{container:{height:"100%"}},footer:ne.createElement(qm,null,ne.createElement(Jm,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Nd(a,A,h,l,q,B),onClick:Ze,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Wo.t("Confirm")))},...C&&{styles:{container:{height:"100%",padding:"$0"}},header:ne.createElement(Om,null,ne.createElement(Um,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:S.bind(null,"")},ne.createElement(uw,{size:16})),ne.createElement(Cl,{variant:"headline",size:"small"},Wo.t({id:"Your {blockchainName} wallets",values:{blockchainName:ft(C,c)}})))},anchor:"center"},ne.createElement(J,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:re,onClose:v.bind(null,[]),container:H},ne.createElement(dw,{title:Wo.t("Insufficient account balance"),type:"error",description:ne.createElement(pw,{messages:k??[]})},ne.createElement(Jm,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:se},Wo.t("Proceed anyway")))),C&&ne.createElement(zm,null,ne.createElement("div",{className:Qm()},ne.createElement(yl,{chain:C,quoteChains:b,isSelected:Q,selectWallet:ue,onShowMore:()=>S(C),onConnect:W=>{ae(C,W)}}))),!C&&ne.createElement(ne.Fragment,null,x&&ne.createElement(ne.Fragment,null,ne.createElement(cw,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Wo.t(x)}),ne.createElement(Sl,{size:12})),ne.createElement(Hm,null,b.map((W,G)=>{let j=c.find(Je=>Je.name===W),X=`wallet-${G}`,fe=G===b.length-1,Ue=fe&&B&&m?.customDestination!==!1;return ne.createElement("div",{key:X},ne.createElement(Dm,null,ne.createElement(Cl,{variant:"title",size:"xmedium"},Wo.t({id:"Your {blockchainName} wallets",values:{blockchainName:j?.shortName}})),ne.createElement(Cl,{variant:"label",color:"$neutral700",size:"medium"},Wo.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:j?.shortName}}))),ne.createElement(Sl,{size:24}),ne.createElement($m,null,ne.createElement(yl,{chain:W,quoteChains:b,isSelected:Q,selectWallet:ue,limit:hw,onShowMore:()=>S(j?.name??""),onConnect:Je=>{ae(W,Je)}})),!fe&&ne.createElement(Sl,{size:32}),Ue&&ne.createElement(_m,{blockchain:B,open:A,handleOpenChange:le}))}))))}i(ef,"ConfirmWalletsModal");import{i18n as $w}from"@lingui/core";import{Alert as Fw,Button as Ow,Divider as Tf,InfoIcon as Uw}from"@rango-dev/ui";import Fe from"react";import{Alert as Cw,Button as Tw,Divider as vl,NoRouteIcon as kw,RefreshIcon as vw,Typography as lf}from"@rango-dev/ui";import lt from"react";import{i18n as tf}from"@lingui/core";var yw=24,Sw=60;function of(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:tf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:tf.t("Reset")}},description:oe().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:oe().noResultError.description}}i(of,"makeInfo");var Tl=(o=>(o[o.small=yw]="small",o[o.large=Sw]="large",o))(Tl||{}),kl=(o=>(o.small="small",o.large="medium",o))(kl||{});import{styled as Oi}from"@rango-dev/ui";var nf=Oi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),rf=Oi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),af=Oi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),sf=Oi("div",{padding:"$6 $0"});function or(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=T().getDisabledLiquiditySources(),s=T().toggleAllLiquiditySources,c=T().swappers(),l=of(o,a,()=>s(c,!0),e);return r&&(l.alert=null),lt.createElement(nf,{id:"widget-no-result-container"},lt.createElement(kw,{size:Tl[n],color:"gray"}),lt.createElement(vl,{size:4}),lt.createElement(lf,{variant:"title",size:kl[n]},oe().noResultError.title),n==="large"&&lt.createElement(vl,{size:4}),!!l.description&&lt.createElement(rf,{size:n},lt.createElement(lf,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),lt.createElement(vl,{size:n==="large"?"24":"4"}),!!l.alert&&lt.createElement(af,{size:n},lt.createElement(Cw,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&lt.createElement(Tw,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:lt.createElement(sf,null,lt.createElement(vw,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(or,"NoResult");import{i18n as rr}from"@lingui/core";import{Button as xw,Divider as Ew,MessageBox as Iw,Typography as Aw,WarningIcon as Nw}from"@rango-dev/ui";import qt from"react";import{Typography as mf}from"@rango-dev/ui";import bl from"react";import{Button as ww,darkTheme as bw,styled as nr}from"@rango-dev/ui";var cf=nr("div",{width:"100%"}),wl=nr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),pf=nr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${bw} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uf=nr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),df=nr(ww,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function ff(t){let{title:e,value:o,valueColor:n}=t;return bl.createElement(pf,null,bl.createElement(mf,{size:"medium",variant:"label",className:"_title"},e),bl.createElement(mf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(ff,"QuoteErrorsModalItem");function gf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:rr.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:rr.t("Gas cost"),value:_(r.totalFee,2,2)},{title:rr.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:rr.t("Price impact"),value:_(r.priceImpact,2,2),valueColor:`${s}500`}];return qt.createElement(J,{id:"widget-high-value-loss-warning-modal",footer:qt.createElement(xw,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:qt.createElement(Nw,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},qt.createElement(Iw,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),qt.createElement(wl,null,qt.createElement(Ew,{size:"4"}),qt.createElement(Aw,{size:"small",variant:"title"},rr.t("Details")),qt.createElement(wl,null,c.map((l,p)=>qt.createElement(ff,{key:p,...l})))))}i(gf,"HighValueLossWarningModal");import{i18n as Tn}from"@lingui/core";function hf(t,e){let o={alertType:"warning",title:"",action:null,actionButtonTitle:null};if(e)return o.alertType="error",e.type===3&&(o.title=e.recommendation),e.type===4&&(o.title=Tn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Tn.t("Increase")),o;if(t){switch(t.type){case 0:{Qt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title;break}case 4:{o.title=Tn.t({id:"Output amount changed by {percentageChange}% (${usdValueChange}).",values:{percentageChange:t.percentageChange,usdValueChange:t.usdValueChange}});break}case 1:{o.title=oe().unknownPriceError.title;break}case 2:{o.title=Tn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=Tn.t("Increase");break}case 3:{o.title=Tn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(hf,"makeAlerts");function yf(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i(yf,"getRequiredSlippage");import{i18n as kn}from"@lingui/core";import{Button as Bw,Divider as xl,MessageBox as Ww,WarningIcon as Lw}from"@rango-dev/ui";import co from"react";import{useNavigate as Mw}from"react-router-dom";function Sf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=Mw();return co.createElement(J,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},co.createElement(Ww,{type:"warning",title:r.type===3?kn.t("High slippage"):kn.t("Low slippage"),description:r.type===3?kn.t("Caution, your slippage is high. Your trade may be front run."):kn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},co.createElement(xl,{size:18}),co.createElement(xl,{size:32}),co.createElement(df,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},co.createElement(Lw,{color:"white",size:16}),kn.t("Swap anyway")),co.createElement(xl,{size:10}),co.createElement(Bw,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+F.settings)},kn.t("Change Slippage"))))}i(Sf,"SlippageWarningModal");import{Button as Pw,MessageBox as _w,WarningIcon as Dw}from"@rango-dev/ui";import Ui from"react";function Cf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ui.createElement(J,{id:"widget-unknown-price-warning-modal",footer:Ui.createElement(Pw,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Ui.createElement(Dw,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Ui.createElement(_w,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Cf,"UnknownPriceWarningModal");function ir(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:f,onChangeSlippage:h}=t,g={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},m=o?.type===0||o?.type===1,d=hf(e,o?.type===3||o?.type===4?o:null);d&&!n&&(d.action=null);let y=!!d&&!s,C=i(S=>{if(S==="change-slippage"){let k=o?.type===3||o?.type===4?o:null,v=yf(e,k);h?.(v)}else S==="change-settings"&&f()},"onclickActionButton");return Fe.createElement(Fe.Fragment,null,m&&Fe.createElement(Fe.Fragment,null,Fe.createElement(Tf,{size:10}),Fe.createElement(or,{skipAlerts:s,error:o,fetch:c})),y&&Fe.createElement(cf,null,Fe.createElement(Tf,{size:10}),Fe.createElement(Fw,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Fe.createElement(uf,{onClick:l},Fe.createElement(Uw,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Fe.createElement(Ow,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>C(d.action)},d.actionButtonTitle||$w.t("Change"))}})),e&&Fe.createElement(Fe.Fragment,null,e.type===0&&Fe.createElement(gf,{...g,warning:e}),(e.type===3||e.type===2)&&Fe.createElement(Sf,{...g,warning:e}),e.type===1&&Fe.createElement(Cf,{...g,warning:e})))}i(ir,"QuoteWarningsAndErrors");import gb from"bignumber.js";import Ri from"react";import{i18n as Lo}from"@lingui/core";import{Alert as ob,Divider as wn,FullExpandedQuote as nb,InfoIcon as rb,NumericTooltip as jf,QuoteTag as ib,StepDetails as ab,TokenAmount as sb,Typography as bn}from"@rango-dev/ui";import Pl from"bignumber.js";import U,{useRef as lb,useState as cb}from"react";import{styled as El}from"@rango-dev/ui";var Il=El("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),kf=El("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),vf=El("div",{width:"100%",display:"flex"});import*as zi from"@radix-ui/react-collapsible";import{Button as zw,css as ar,darkTheme as Be,Image as wf,styled as Ke,Typography as Qw}from"@rango-dev/ui";var qw=300,bf=Ke(zi.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),xf=ar({padding:"$10 $15"}),Ef=Ke(zw,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${Be} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${Be} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${Be} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),If=Ke("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",[`.${Be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${Be} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${Be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${Be} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${Be} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${Be} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${Be} &`]:{backgroundColor:"$neutral400"}}}}]}),Af=ar({width:"100%",padding:"$15 $15 $10 $15"}),Nf=ar({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),vn=ar({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Bf=ar({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Be} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wf=Ke(zi.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:{[`& ${wf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${wf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${Be} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${Be} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Lf=Ke("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"}}}}),Mf=Ke(Mi,{width:"100%",background:"inherit"}),Al=Ke("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${qw}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),aQ=Ke("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),Pf=Ke("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Be} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),_f=Ke("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Nl=Ke(Qw,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),Df=Ke("div",{display:"flex",flexWrap:"wrap"}),Bl=Ke("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"}}}}),$f=Ke("div",{display:"flex"}),Qi=Ke("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${Be} &`]:{borderTopColor:"$neutral800"}});import{i18n as Mt}from"@lingui/core";import{ChevronDownIcon as Gw,CloseIcon as Vw,Divider as Gi,IconButton as Kw,NumericTooltip as jw,QuoteCost as Xw,Typography as bt}from"@rango-dev/ui";import Y,{useState as zf}from"react";import{css as Hw,styled as qi}from"@rango-dev/ui";var Hi=qi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Wl=qi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),Ff=qi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),Of=qi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),Uf=Hw({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Yw=i(t=>t.fee.isZero()?null:Y.createElement(Hi,null,Y.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(bt,{variant:"label",size:"medium"},"$",_(t.fee,4,4))),"NonPayableFee");function Ll(t){let[e,o]=zf(!1),[n,r]=zf(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:f,fullExpandedMode:h=!1}=t,g=s?.swaps??[],m=h?To():N(),d=kd(g),y=_(c,2,2);return Y.createElement(Y.Fragment,null,Y.createElement(Xw,{onClickFee:f?C=>{C.stopPropagation(),o(!e)}:void 0,fee:y,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:f?Mt.t("View more info"):void 0,tooltipContainer:m}),Y.createElement(J,{id:"widget-quote-cost-explanation-modal",container:m,open:e,anchor:h?"center":"bottom",styles:{container:{maxWidth:h?"484px":"unset"}},header:Y.createElement(Of,{style:{textAlign:h?"left":"center"}},Y.createElement(bt,{variant:"title",size:"medium"},Mt.t("Gas & Fee Explanation")),Y.createElement(Kw,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(Vw,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(Ff,null,Y.createElement(bt,{variant:"title",size:"small"},Mt.t("Details")),Y.createElement(Gi,{size:10}),Object.entries(d.payable).flatMap(([C,S])=>S.map((k,v)=>{let x=`payable-fee-${v}`,I=As(k);return Y.createElement(Hi,{key:x},Y.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},ws(C,Mt.t)),Y.createElement(jw,{content:k.amount,container:m},Y.createElement(bt,{variant:"label",size:"medium"},_(k.amount,2,2),k.asset.symbol," ($",_(I,4,4),")")))})),Y.createElement(Hi,{className:"total_payable_fee"},Y.createElement(bt,{variant:"label",size:"medium"},Mt.t("Total Payable Fee")),Y.createElement(bt,{variant:"label",size:"medium"},"$",_(c,4,4))),Y.createElement(Wl,null),!!Object.keys(d.nonePayable).length&&Y.createElement(Di,{triggerAnchor:"bottom",onClickTrigger:()=>r(C=>!C),trigger:Y.createElement("div",{className:Uf()},Y.createElement(bt,{size:"small",variant:"body",color:"neutral700"},n?Mt.t("Hide non-payable fees"):Mt.t("Show non-payable fees")),Y.createElement(Gi,{size:4,direction:"horizontal"}),Y.createElement(Pi,{orientation:n?"up":"down"},Y.createElement(Gw,{size:12,color:"gray"}))),open:n},Y.createElement(bt,{size:"small",variant:"title"},Mt.t("Description")),Y.createElement(Gi,{size:4}),Y.createElement(bt,{size:"small",variant:"body",color:"neutral700"},Mt.t(`The following fees are considered in the transaction output and
2
+ you won\u2019t need to pay extra gas for them.`)),Y.createElement(Gi,{size:10}),Object.entries(d.nonePayable).map(([C,S],k)=>{let v=Td(S),x=ws(C,Mt.t),I=`non-payable-fee-${k}`;return Y.createElement(Yw,{key:I,fee:v,label:x})}),Y.createElement(Wl,null)))))}i(Ll,"QuoteCostDetails");import{i18n as Hf}from"@lingui/core";import{TokenAmount as Gf}from"@rango-dev/ui";import Vi from"react";import{css as Zw,styled as Jw}from"@rango-dev/ui";var Qf=Jw("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qf=Zw({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function sr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Vi.createElement(Qf,null,Vi.createElement(Gf,{direction:"horizontal",label:Hf.t("Swap input"),id:"widget-quote-summary-swap-input",type:"input",tooltipContainer:N(),price:{value:e.price.value,usdValue:e.price.usdValue,realValue:e.price.realValue,realUsdValue:e.price.realUsdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),Vi.createElement("div",{className:qf()}),Vi.createElement(Gf,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:Hf.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(sr,"QuoteSummary");import{i18n as Vf}from"@lingui/core";import{ChevronDownIcon as Rw,ChevronRightIcon as eb,Divider as Ml,Image as tb,Tooltip as Yi,Typography as Ki}from"@rango-dev/ui";import z from"react";var ji=4,Xi=6,lr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return z.createElement(Yi,{container:c,side:"bottom",sideOffset:4,open:r,content:e},z.createElement(Lf,{className:n,state:a},z.createElement(tb,{src:o,size:16})))},"ImageComponent");function Kf(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=pd(r),{isTablet:f,isMobile:h}=fn();return z.createElement(Wf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:g=>e.current=g,selected:o,onClick:g=>{g.stopPropagation(),n(m=>!m)}},z.createElement("div",{className:vn()},z.createElement(Ki,{variant:"body",size:"xsmall"},Vf.t("Via:")),z.createElement(Ml,{direction:"horizontal",size:4}),r.map((g,m)=>{let d=`item-${m}`,y=z.createElement(Al,null,z.createElement(eb,{size:12,color:"black"}));return h||f?z.createElement(z.Fragment,{key:d},z.createElement(lr,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),m!==p-1&&z.createElement(z.Fragment,null,y)):z.createElement(z.Fragment,{key:d},p<=ji||p>ji&&m<ji-1?z.createElement(z.Fragment,null,z.createElement(lr,{content:g.swapper.displayName,src:g.swapper.image??"",state:g.state,container:c}),m!==p-1&&z.createElement(z.Fragment,null,y)):m===ji-1&&z.createElement(Yi,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:vn()},y,r.map((C,S)=>{let k=`image-${S}`;return S>=m&&z.createElement(z.Fragment,{key:k},z.createElement(lr,{content:C.swapper.displayName,src:C.swapper.image??"",state:C.state,open:!1}),S!==p-1&&z.createElement(z.Fragment,null,y))}))},z.createElement(Bl,{state:r.find((C,S)=>S>=m&&(C.state==="error"||C.state==="warning"))?.state},z.createElement(Ki,{size:"xsmall",variant:"body"},"+",p-m))))})),z.createElement("div",{className:vn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:vn()},z.createElement(Ki,{variant:"body",size:"xsmall"},Vf.t("Chains:")),z.createElement(Ml,{direction:"horizontal",size:4}),u.map((g,m)=>z.createElement(z.Fragment,{key:g.displayName},u.length<=Xi||u.length>Xi&&m<Xi-1?z.createElement(Yi,{container:l,side:"bottom",content:g.displayName,sideOffset:4},z.createElement(lr,{content:"",src:g.image??"",open:!1,className:m!==0?"blockchainImage":""})):m===Xi-1&&z.createElement(Yi,{container:l,side:"bottom",align:"end",sideOffset:4,content:z.createElement("div",{className:vn()},u.map((d,y)=>y>=m&&z.createElement(lr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:y>m?"blockchainImage":"",container:c})))},z.createElement(Bl,{className:"blockchainImage"},z.createElement(Ki,{size:"xsmall",variant:"body"},"+",u.length-m))))),z.createElement(Ml,{direction:"horizontal",size:32}))),z.createElement(Al,{orientation:a?"up":"down"},z.createElement(Rw,{size:12,color:"black"}))))}i(Kf,"QuoteTrigger");function _l(t){let{quote:e,input:o,output:n,error:r,warning:a,type:s,selected:c=!1,tagHidden:l=!0,showModalFee:p=!0,onClickAllRoutes:u,fullExpandedMode:f=!1,container:h}=t,g=T().blockchains(),{findToken:m}=T(),d=T().swappers(),{customSlippage:y,slippage:C}=T(),S=y||C,[k,v]=cb(t.expanded),x=lb(null),I=_(o.value,6,6),A=_(n.value,6,6),E=n.usdValue?_(n.usdValue,4,4):"",b=zt(o.usdValue,n.usdValue??null),w=_(b,2,2),B=Qt(b??0),P=i((se,Ze)=>se.map((H,W)=>{let G,j=r?.type===3&&r.swap.swapperId===H.swapperId,X=r?.type===4&&r.recommendedSlippages?.has(W),fe=a?.type===2&&a.recommendedSlippages?.has(W),Ue=j||X,Je=fe;Ue?G="error":Je&&(G="warning");let be=Ue?Lo.t("Slippage Error"):Lo.t("Slippage Warning");return j&&(be=Lo.t("Bridge Limit Error")),{swapper:{displayName:Bn(H.swapperId,d)??"",image:H.swapperLogo},from:{token:{displayName:H.from.symbol,image:H.from.logo},chain:{displayName:ft(H.from.blockchain,g)??"",image:H.from.blockchainLogo},price:{value:W===0&&!Ze?_(o.value,6,6):_(H.fromAmount,6,6),usdValue:_((H.from.usdPrice??0)*parseFloat(H.fromAmount),4,4),realValue:W===0?o.value:H.fromAmount,realUsdValue:new Pl(H.from.usdPrice??0).multipliedBy(H.fromAmount).toString()}},to:{token:{displayName:H.to.symbol,image:H.to.logo},chain:{displayName:ft(H.to.blockchain,g)||"",image:H.to.blockchainLogo},price:{value:_(H.toAmount,6,6),usdValue:_((H.to.usdPrice??0)*parseFloat(H.toAmount),4,4),realValue:H.toAmount,realUsdValue:new Pl(H.to.usdPrice??0).multipliedBy(H.toAmount).toString()}},state:G,alerts:Ue||Je?U.createElement(kf,{dense:f},U.createElement(ob,{variant:"alarm",type:Ue?"error":"warning",title:be,id:"widget-quote-footer-step-alarm-alert",footer:U.createElement(vf,null,j&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(wn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Yours: {amount} {symbol}",values:{amount:_(H.fromAmount,6,6),symbol:H?.from.symbol}}))),(X||fe)&&!j&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(W)},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.get(W)}}})),U.createElement(wn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Ln(H.estimatedTimeInSeconds),fee:_(Is(H,m),2,2),internalSwaps:H.internalSwaps?P(H.internalSwaps):void 0}}),"getQuoteSteps"),$=P(e?.swaps??[]),q=$.length,R=h||N(),K=dd(t.quote.tags||[]),L=!!u,ae=Vr(e?.swaps),re=Ln(ae),Q=yi(e?.swaps??[],m),ee=_(Q,2,2),le=Q.gte(new Pl(od)),ue=ae/rd>=nd;return f?U.createElement(nb,{selected:c,fee:ee,time:re,tooltipContainer:To(),steps:$,tags:K,id:"widget-quote-full-expanded-quote-container",quoteCost:U.createElement(Ll,{quote:e,fullExpandedMode:!0,time:re,fee:Q,feeWarning:le,timeWarning:ue,showModalFee:p,steps:q}),percentageChange:w,warningLevel:B,outputPrice:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):U.createElement(If,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},U.createElement("div",{className:Af()},!l&&K.length?U.createElement(U.Fragment,null,U.createElement($f,null,K.map((se,Ze)=>{let H=`${se.value}_${Ze}`;return U.createElement(U.Fragment,{key:H},U.createElement(ib,{label:se.label,value:se.value}),U.createElement(wn,{size:4,direction:"horizontal"}))})),U.createElement(Qi,null),!L&&U.createElement(wn,{size:4})):null,U.createElement("div",{id:"portal-root",className:Nf()},U.createElement(Ll,{quote:e,time:re,fee:Q,feeWarning:le,timeWarning:ue,showModalFee:p,steps:q}),L&&U.createElement(Ef,{onClick:se=>{se.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},U.createElement(bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},Lo.t("See All Routes")))),s==="basic"&&U.createElement("div",{className:Bf()},U.createElement(_f,null,U.createElement(rb,{size:12,color:"gray"})),U.createElement(Df,null,U.createElement(Nl,{size:"small",variant:"body"},`${I} ${$[0].from.token.displayName} = `),U.createElement(jf,{content:n.value,container:R,open:n.value?void 0:!1},U.createElement(Nl,{size:"small",variant:"body"},"\xA0",`${A} ${$[$.length-1].to.token.displayName}`))),U.createElement(jf,{content:n.usdValue,container:R},U.createElement(wn,{size:2,direction:"horizontal"}),U.createElement(bn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&U.createElement(sb,{id:"widget-quote-token-amount-container",tooltipContainer:R,type:"output",direction:"vertical",price:{value:A,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:$[q-1].to.token.displayName,image:$[q-1].to.token.image},chain:{image:$[q-1].to.chain.image},percentageChange:w,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(sr,{from:$[0].from,to:$[q-1].to,percentageChange:w,warningLevel:B}),U.createElement(wn,{size:4}))),U.createElement(bf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:v},U.createElement(Kf,{type:s,quoteRef:x,selected:c,setExpanded:v,container:R,expanded:k,steps:$}),U.createElement(Mf,{open:k},U.createElement(Pf,null),U.createElement("div",{className:xf()},$.map((se,Ze)=>{let H=`item-${Ze}`;return U.createElement(ab,{type:"quote-details",className:"widget-quote-step-details-container",key:H,tooltipContainer:R,step:se,hasSeparator:Ze!==$.length-1,state:se.state})})))))}i(_l,"Quote");import{Divider as mb,Skeleton as fb}from"@rango-dev/ui";import Kt from"react";import{darkTheme as pb,styled as Zi}from"@rango-dev/ui";var Xf=Zi("div",{$$color:"$colors$neutral100",[`.${pb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),Yf=Zi("div",{paddingTop:"$2"}),Zf=Zi("div",{paddingLeft:"$8"}),Jf=Zi("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as lg,Divider as xt,Skeleton as ct}from"@rango-dev/ui";import V from"react";import{css as ub,styled as Vt}from"@rango-dev/ui";var Dl=Vt("div",{display:"flex"}),Rf=Vt("div",{padding:"$10 $0 $20"}),eg=Vt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),tg=Vt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),og=Vt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),ng=Vt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),rg=Vt("div",{width:"65%",display:"flex",justifyContent:"start"}),ig=Vt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),ag=Vt("div",{padding:"$15 $0 $15 $0"}),sg=ub({display:"flex",justifyContent:"space-between",alignItems:"center"});function cr(t){let{type:e,tagHidden:o=!0}=t,n=V.createElement(og,null,V.createElement(rg,null,V.createElement(lg,{loading:!0,size:"medium"}),V.createElement(xt,{size:8,direction:"horizontal"}),V.createElement(ig,null,V.createElement(ct,{height:10,width:60,variant:"rounded"}),V.createElement(xt,{size:4}),V.createElement(ct,{height:15,variant:"rounded"}))),V.createElement(ct,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return V.createElement("div",null,!o&&V.createElement(V.Fragment,null,V.createElement(Dl,null,V.createElement(ct,{width:65,height:20,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:65,height:20,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:65,height:20,variant:"rounded"})),V.createElement(Qi,null),!r&&V.createElement(xt,{size:4})),V.createElement("div",{className:sg()},V.createElement(Dl,null,V.createElement(ct,{width:60,height:10,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:60,height:10,variant:"rounded"}),V.createElement(xt,{size:4,direction:"horizontal"}),V.createElement(ct,{width:60,height:10,variant:"rounded"})),r&&V.createElement(ct,{width:85,height:24,variant:"rounded"})),e==="basic"&&V.createElement(Rf,null,V.createElement(ct,{height:15,width:148,variant:"rounded"})),e==="list-item"&&V.createElement(eg,null,V.createElement(tg,null,V.createElement(lg,{loading:!0,size:"medium"}),V.createElement(xt,{direction:"horizontal",size:4}),V.createElement(ct,{height:15,width:150,variant:"rounded"})),V.createElement(xt,{size:10}),V.createElement(ct,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&V.createElement(V.Fragment,null,V.createElement(xt,{size:4}),V.createElement(ag,null,n,V.createElement(ng,null),n),V.createElement(xt,{size:12})))}i(cr,"QuoteSummarySkeleton");import{ChainToken as mg,Divider as Fl,NextIcon as db,Skeleton as Ji}from"@rango-dev/ui";import We from"react";import{styled as pr}from"@rango-dev/ui";var cg=pr("div",{display:"flex",alignItems:"start"}),pg=pr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),$l=pr("div",{display:"flex",alignItems:"center",flexGrow:1}),ug=pr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),dg=pr("div",{display:"flex",alignItems:"center"});function Pt(t){let{separator:e=!0}=t;return We.createElement(We.Fragment,null,We.createElement(dg,null,We.createElement(Ji,{height:22,width:22,variant:"circular"}),We.createElement(Fl,{direction:"horizontal",size:8}),We.createElement(Ji,{height:15,width:148,variant:"rounded"})),We.createElement(cg,null,We.createElement(Jf,{hideSeparator:!e}),We.createElement(pg,{extraSpace:e},We.createElement($l,null,We.createElement(mg,{size:"small",loading:!0}),We.createElement(Fl,{direction:"horizontal",size:8}),We.createElement(Ji,{height:12,variant:"rounded"})),We.createElement(ug,null,We.createElement(db,{color:"gray",size:16})),We.createElement($l,null,We.createElement(mg,{size:"small",loading:!0}),We.createElement(Fl,{direction:"horizontal",size:8}),We.createElement(Ji,{height:12,variant:"rounded"})))))}i(Pt,"StepSkeleton");function ur(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Kt.createElement(Xf,{expanded:o,rounded:e!=="basic"},Kt.createElement(cr,{type:e,tagHidden:n}),Kt.createElement(Yf,null,Kt.createElement(fb,{height:15,variant:"rounded"})),o&&Kt.createElement(Zf,null,Kt.createElement(mb,{size:24}),Kt.createElement(Pt,null),Kt.createElement(Pt,null),Kt.createElement(Pt,{separator:!1})))}i(ur,"QuoteSkeleton");function Mo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:f,onClickAllRoutes:h,fullExpandedMode:g=!1,container:m}=t,{inputAmount:d,inputUsdValue:y}=O(),C=e?.outputAmount?new gb(e?.outputAmount):null,S=e?yt(e):null,v=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Ri.createElement(Il,null,Ri.createElement(ur,{tagHidden:c,type:o,expanded:s})):v?Ri.createElement(Il,{onClick:()=>l?.(e),id:f},Ri.createElement(_l,{quote:e,error:r,container:m,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:h,fullExpandedMode:g,input:{value:d,usdValue:y?.toString()??""},output:{value:C?.toString()??"",usdValue:S?.toString()??""}})):null}i(Mo,"QuoteInfo");import{calculatePendingSwap as Cb}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Tb}from"react";import{useRef as hb,useState as yb}from"react";var Sb=2e3;function ea({request:t}){let[e,o]=yb(!1),n=hb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Sb)),await s(c,!1)),"retryFetch"),s=i(async(c,l=!1)=>{r(),n.current=new AbortController,o(!0);try{let p=await t(c,{signal:n.current.signal});return n.current=null,p}catch(p){if(l)return await a(c);throw p}finally{o(!1)}},"fetch");return{fetch:s,loading:e,cancelFetch:r}}i(ea,"useFetch");function fg(){let{fetch:t,loading:e,cancelFetch:o}=ea({request:async(n,r)=>await at().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(fg,"useFetchConfirmQuote");function ta(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Ol(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ta,"throwErrorIfResponseIsNotValid");function Ol(t){if(yd(t)){let{swap:n,recommendation:r,fromAmountRangeError:a}=Sd(t);return{message:"bridge limit error",options:{type:3,swap:n,recommendation:r,fromAmountRangeError:a}}}let o=vd(t);if(o){let n=Si(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Ol,"getQuoteError");function gg(t){let{currentQuote:e,previousQuote:o,meta:n,selectedWallets:r,userSlippage:a,findToken:s}=t,c={quote:null,balance:null},l=pn({previousQuote:o,currentQuote:e,findToken:s,userSlippage:a});l&&(c.quote=l);let p=xd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(gg,"generateWarnings");function oa(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,diagnosisMessage:t.message},warnings:null}}i(oa,"handleQuoteErrors");function Ul(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=O(),{slippage:l,customSlippage:p}=T(),u=T().getDisabledLiquiditySources(),f=T().blockchains(),h=T().tokens(),{findToken:g}=T(),m=p||l,{fetch:d,cancelFetch:y,loading:C}=fg();return Tb(()=>y,[]),{loading:C,fetch:i(async k=>{let v=k.selectedWallets,x=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=v.reduce((E,b)=>(E[b.chain]=b.address,E),{}),A={requestId:a?.requestId||"",selectedWallets:I,destination:x||void 0};try{return await d(A,!0).then(E=>{let{result:b}=E;if(!b)throw new Error(E.error??"Error fetching updated quote");ta({diagnosisMessages:b.diagnosisMessages,requestId:b.requestId,swaps:b.result?.swaps});let w={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(w);let B={slippage:m.toString(),disabledSwappersGroups:u},P=gg({previousQuote:a??void 0,currentQuote:w,meta:{blockchains:f},selectedWallets:v,userSlippage:m,inputUsdValue:n,findToken:g});c();let $=!!P.balance,q=Cb(o.toString(),b,bd(v),B,!$,{blockchains:f,tokens:h});return{quote:w,swap:q,error:null,warnings:P}})}catch(E){return oa(E)}},"fetch"),cancelFetch:y}}i(Ul,"useConfirmSwap");var Bb=bb("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${hg}`]:{width:"$48",height:"$48"}}),Wb=ql({flexGrow:1,paddingRight:"$10"}),Lb=ql({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),Mb=ql({display:"flex",justifyContent:"space-between",alignItems:"center"});function yg(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=O(),s=Nb(),[c,l]=dr(""),p=!n,[u,f]=dr(!1),[h,g]=dr(!1),{isActiveTab:m}=te(),d=T().getDisabledLiquiditySources(),y=Ab(d),{manager:C}=kb(),{fetch:S,loading:k,cancelFetch:v}=Ul(),[x,I]=dr({swap:null,error:null,warnings:null}),[A,E]=dr(!1),b=i(async({selectedWallets:L,customDestination:ae})=>{let re=await S?.({selectedWallets:L,customDestination:ae});return I(re),re},"onConfirmSwap"),w=i(async()=>{if(x.swap&&n)try{await C?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let L=`../${F.swaps}/${x.swap.requestId}`;s(L,{replace:!0}),setTimeout(()=>{e("")},0)}catch(L){l("Error: "+L?.message)}},"addNewSwap"),B=i(async()=>{g(!0),await w(),g(!1)},"onConfirm"),P=i(async()=>{x.warnings?.quote&&cd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),$=i(async()=>{I({error:null,swap:null,warnings:null}),S({selectedWallets:o,customDestination:r}).then(L=>{I(L)}).catch(L=>console.error(L))},"onRefresh");na(()=>{!!y.current.length&&!d.length&&$(),y.current=d},[d.length]),na(()=>{p&&v()},[p]),na(()=>{p&&f(p)},[p]),na(()=>{p||S({selectedWallets:o,customDestination:r}).then(L=>I(L)).catch(L=>console.error(L))},[]),Ib(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,R=x.error,K=[];if(c&&K.push(De.createElement(vb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||R){let L=`../${F.settings}`;K.push(De.createElement(ir,{warning:q,error:R,couldChangeSettings:!1,refetchQuote:$,skipAlerts:R?.type===4||q?.type===2,showWarningModal:A,confirmationDisabled:!m,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await w()},onChangeSettings:()=>s(L)}))}return De.createElement(ie,{header:{title:zl.t("Confirm Swap"),onWallet:()=>{let L=`../${F.wallets}`;s(L)}},footer:De.createElement(Bb,null,De.createElement("div",{className:Wb()},De.createElement(wb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||h,disabled:!!x.error||!m,onClick:P},zl.t("Start Swap"))),De.createElement(hg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:k||h,disabled:!m,onClick:f.bind(null,!0)},De.createElement(Eb,{size:24})))},u&&De.createElement(ef,{open:u,onClose:()=>f(!1),onCancel:v,loading:k,onCheckBalance:b}),De.createElement(ce,null,De.createElement("div",{className:Mb()},De.createElement(xb,{variant:"title",size:"small"},zl.t("You get")),De.createElement("div",{className:Lb()},De.createElement(Ei,{onClick:!k&&!u&&!A?$:void 0}))),De.createElement(Ql,{size:"12"}),Zd(K.map((L,ae)=>({element:L,key:`alert-${ae}`})),De.createElement(Ql,{size:10})),K.length>0?De.createElement(Ql,{size:10}):null,De.createElement(Mo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:k,warning:x.warnings?.quote??null})))}i(yg,"ConfirmSwapPage");import{i18n as Xt}from"@lingui/core";import{Button as tc,CustomTokensZeroStateDarkIcon as ex,CustomTokensZeroStateIcon as tx,DeleteIcon as ox,Divider as Sr,IconButton as nx,MessageBox as rx,NotFound as ix,styled as nc}from"@rango-dev/ui";import ye,{useState as oc}from"react";import{useNavigate as ax}from"react-router-dom";import{CloseIcon as _b,IconButton as Db,SearchIcon as $b,TextField as Fb}from"@rango-dev/ui";import mr from"react";import{styled as Pb}from"@rango-dev/ui";var Sg=Pb("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Et(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...f}=t,h=s.length?mr.createElement(Db,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},mr.createElement(_b,{color:"gray",size:10})):null;return p&&(h=p),mr.createElement(Fb,{prefix:mr.createElement(Sg,null,mr.createElement($b,{color:"black"})),id:u,suffix:h,fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...f})}i(Et,"SearchInput");import{i18n as ec}from"@lingui/core";import{Button as Qb,CustomTokenWarning as qb,darkTheme as Bg,Divider as jt,ExternalLinkIcon as Hb,Image as Gb,ListItem as Vb,NotFound as Kb,PinIcon as jb,Skeleton as Po,Typography as hr,VirtualizedList as Xb}from"@rango-dev/ui";import M,{useState as Yb}from"react";import{useTranslation as Zb}from"react-i18next";import{Divider as Ag,ListItem as zb,Skeleton as gr}from"@rango-dev/ui";import It from"react";import{css as xn,darkTheme as Hl,ImageContainer as Ob,ListItemButton as Ub,styled as ot,Typography as Cg}from"@rango-dev/ui";var Gl=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Vl=xn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),Kl=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),jl=xn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${Hl} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Xl=xn({}),Yl=xn(),Tg=ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),Zl=ot("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),ra=ot("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Vl}`]:{[`& .${jl}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Xl}`]:{bottom:"-15px"},[`& .${Gl}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${Kl}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),kg=ot(Ub,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),Jl=ot("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),Rl=ot(Cg,{}),vg=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Yl}`]:{$$color:"$colors$neutral600",[`.${Hl} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),fr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),JH=ot("div",{display:"flex",alignItems:"center"}),wg=ot("div",{position:"relative",[`& ${Ob}`]:{borderRadius:"$xm",overflow:"hidden"}}),bg=ot("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),xg=ot(Cg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Eg=ot("a",{"& svg:hover":{color:"$colors$info"}}),Ig=ot("div",{paddingRight:"$5","& .widget-token-list-item-btn":{width:"100%",overflow:"hidden",height:"60px"},"& .widget-token-list-item-import-btn":{height:"$20",padding:"0 $10","& ._text":{display:"flex",justifyContent:"center",alignItems:"center"},"& ._typography":{[`.${Hl} &`]:{color:"$foreground"}}}});function Ng(t){return It.createElement(ra,null,Array.from(Array(t.size),e=>It.createElement(zb,{key:e,hasDivider:!0,start:It.createElement(gr,{variant:"circular",width:35,height:35}),end:It.createElement(fr,null,It.createElement(gr,{variant:"text",size:"large",width:70}),It.createElement(Ag,{size:4}),It.createElement(gr,{variant:"text",size:"medium",width:50})),title:It.createElement("div",null,It.createElement(gr,{variant:"text",size:"large",width:90}),It.createElement(Ag,{size:4}),It.createElement(gr,{variant:"text",size:"medium",width:90}))})))}i(Ng,"LoadingTokenList");var Jb=20,Rb=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return M.createElement("div",{className:Vl()},o?M.createElement("div",{className:Gl()},o):M.createElement(Zl,{className:Kl()},M.createElement(hr,{variant:"title",size:"xmedium"},r.symbol),M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(Jl,{css:a},M.createElement(Rl,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&M.createElement("div",{className:`${jl()} ${!o&&Xl()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",M.createElement(jt,{size:4,direction:"horizontal"}),M.createElement(Eg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},M.createElement(Hb,{size:12}))))},"renderDesc");function yr(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r,showTitle:a=!0,action:s,type:c,showWarning:l=!0}=t,p=T().fetchStatus,u=T().blockchains(),{getBalanceFor:f,fetchingWallets:h}=T(),{isTokenPinned:g}=T(),{setFromToken:m,setToToken:d}=O(),{t:y}=Zb(),C=Ge(),[S,k]=Yb(null),v=i(()=>{c==="source"?m({token:S,meta:{blockchains:u}}):d({token:S,meta:{blockchains:u}})},"updateToken"),x=i(()=>{v(),C()},"handleImportToken"),I=i(b=>{if(b.customToken){let{customToken:B,...P}=b;return M.createElement(Qb,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),k({...P,warning:!0})},"handleClick")},M.createElement(hr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let w=Yr(f(b));return s?s(b):h?M.createElement(fr,null,M.createElement(Po,{variant:"text",size:"large",width:70}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:50})):w&&M.createElement(vg,null,M.createElement(xg,{variant:"title",size:"small"},w.amount),M.createElement("div",null),w.usdValue&&M.createElement(hr,{variant:"body",className:Yl(),size:"xsmall"},`$${w.usdValue}`))},"endRenderer"),A=i(()=>M.createElement(Xb,{itemContent:b=>{let w=e[b];if(w==="skeleton")return M.createElement(Vb,{hasDivider:!0,start:M.createElement(Po,{variant:"circular",width:35,height:35}),end:M.createElement(fr,null,M.createElement(Po,{variant:"text",size:"large",width:70}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:50})),title:M.createElement("div",null,M.createElement(Po,{variant:"text",size:"large",width:90}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:90}))});let B=w.address||"",P=u.find(L=>L.name===w.blockchain);if(!P)return null;let $=Hs(P.color,"main"),q={$$color:$.main150,[`.${Bg} &`]:{$$color:$.main750},backgroundColor:"$$color"},R={$$color:$.main750,[`.${Bg} &`]:{$$color:$.main150},color:"$$color"},K=i(()=>{typeof w!="string"&&!w.customToken&&n?.(w)},"handleClick");return M.createElement(Ig,null,M.createElement(kg,{"tab-index":b,key:`${w.symbol}${w.address}`,id:`${w.symbol}${w.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:w.customToken,onClick:K,start:M.createElement(wg,null,M.createElement(Gb,{src:w.image===""?Ur:w.image,size:30}),t.type!=="custom-token"&&g(w,t.type)&&M.createElement(bg,null,M.createElement(jb,{size:12,color:"gray"}))),title:P?.type==="COSMOS"||w.name||!w.name&&!B?M.createElement(Zl,null,M.createElement(hr,{variant:"title",size:"xmedium"},w.symbol),M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(Jl,{css:q},M.createElement(Rl,{variant:"body",size:"xsmall",css:R},w.blockchain)),l&&w.warning&&M.createElement(M.Fragment,null,M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(qb,{container:N()}))):void 0,description:typeof w!="string"&&P?.info&&B&&P.type!=="COSMOS"?Rb({address:B,token:w,customCssForTag:q,customCssForTagTitle:R,name:w.name,url:P.info.addressUrl.split("{wallet}").join(B)}):w.name||void 0,end:I(w)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=S?So(S?.blockchain,u):null;return M.createElement(M.Fragment,null,a&&M.createElement(M.Fragment,null,M.createElement(hr,{variant:"label",size:"large"},ec.t("Select Token")),M.createElement(jt,{size:4})),M.createElement(Tg,null,M.createElement(jt,{size:4}),p==="loading"&&M.createElement(Ng,{size:Jb}),p==="success"&&(e.length?M.createElement(M.Fragment,null,M.createElement(Yn,{token:S,address:S?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>k(null),onExitImportModal:()=>k(null)}),M.createElement(ra,{as:"ul"},A())):!!o&&M.createElement(Kb,{title:ec.t("No results found"),description:ec.t("Try using different keywords")}))))}i(yr,"TokenList");var sx=nc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),lx=nc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),cx=nc(nx,{"&:hover":{"& svg":{color:"$secondary550"}}});function Wg(){let[t,e]=oc(""),{deleteCustomToken:o}=T(),n=T().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=O(),{mode:l}=no({}),p=ax(),[u,f]=oc(!1),[h,g]=oc(),m=i(S=>{let k=S.target.value;e(k)},"handleSearch"),d=l==="dark",y=n.filter(S=>rt(S.symbol,t)||rt(S.address||"",t)||rt(S.name||"",t)),C=i(()=>{if(h){let S=a?gt(a):null,k=r?gt(r):null,v=gt(h);S===v?c({token:null}):k===v&&s({token:null}),o(h)}f(!1)},"handleDeleteCustomToken");return ye.createElement(ie,{header:{title:Xt.t("Custom Tokens")}},ye.createElement(ce,null,ye.createElement(sx,null,n.length?ye.createElement(ye.Fragment,null,ye.createElement(Et,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:Xt.t("Search Token"),onChange:m}),ye.createElement(Sr,{size:16}),ye.createElement(yr,{list:y,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:S=>ye.createElement(cx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{f(!0),g(S)}},ye.createElement(ox,{size:12,color:"gray"}))})):ye.createElement(lx,null,ye.createElement(ix,{icon:d?ye.createElement(ex,{size:200}):ye.createElement(tx,{size:200}),title:Xt.t("No custom tokens"),description:Xt.t("press the button to add your custom token")})),ye.createElement(Sr,{size:20}),ye.createElement(tc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(F.addCustomTokens)},Xt.t("Add Custom Token"))),ye.createElement(J,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>f(!1),container:N()},ye.createElement(rx,{title:Xt.t("Delete Custom Token"),type:"error",description:Xt.t("Are you sure you want to Delete this Token?")},ye.createElement(Sr,{size:40}),ye.createElement(Sr,{size:10}),ye.createElement(tc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Xt.t("Yes, Delete it")),ye.createElement(Sr,{size:12}),ye.createElement(tc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>f(!1)},Xt.t("No, Continue"))))))}i(Wg,"CustomTokensPage");import{i18n as Xe}from"@lingui/core";import{useManager as Nx}from"@rango-dev/queue-manager-react";import{Button as pc,darkTheme as Bx,Divider as Do,MessageBox as Wx,NotFound as Lx,styled as uc,Typography as sa}from"@rango-dev/ui";import{TransactionStatus as kr}from"rango-types";import pe,{useMemo as Yg,useState as la}from"react";import{useNavigate as Mx}from"react-router-dom";import{FilterIcon as hx,Popover as yx}from"@rango-dev/ui";import _o from"react";import{css as px,darkTheme as ia,IconButton as ux,styled as Cr}from"@rango-dev/ui";var rc=Cr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ia} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Lg=Cr(ux,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ia} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ia} &`]:{backgroundColor:"$neutral"},[`& ${rc}::before`]:{backgroundColor:"$secondary100",[`.${ia} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Mg=Cr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Pg=Cr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),_g=px({display:"flex",justifyContent:"space-between",alignItems:"center"}),Dg=Cr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as $g}from"@lingui/core";import{Button as dx,Divider as Fg,ListItemButton as mx,Radio as fx,RadioRoot as gx,Typography as Og}from"@rango-dev/ui";import pt from"react";function Ug(t){let{filterBy:e,onClickItem:o}=t;return pt.createElement(Pg,null,pt.createElement("div",{className:_g()},pt.createElement(Og,{size:"small",variant:"body"},$g.t("Status")),pt.createElement(dx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},$g.t("Reset"))),pt.createElement(Fg,{size:10}),pt.createElement(gx,{value:e},pt.createElement(Dg,null,t.list.map((n,r)=>pt.createElement(mx,{key:n.id,className:"widget-filter-selector-list-item-btn",style:{height:"40px",width:"100%"},selected:!1,hasDivider:t.list.length-1!=r,id:n.id,title:pt.createElement(pt.Fragment,null,pt.createElement(Fg,{direction:"horizontal",size:4}),pt.createElement(Og,{size:"medium",variant:"body"},n.title)),start:pt.createElement(fx,{value:n.id}),onClick:o})))))}i(Ug,"FilterSelectorContent");function ic(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return _o.createElement("div",null,_o.createElement(yx,{open:a,align:"end",onOpenChange:o,container:N(),content:_o.createElement(Ug,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},_o.createElement(Lg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},_o.createElement(rc,{isSelect:!!n},_o.createElement(hx,{size:16,color:"black"}),!!n&&_o.createElement(Mg,null)))))}i(ic,"FilterSelector");import{i18n as Tx}from"@lingui/core";import{getCurrentStep as kx}from"@rango-dev/queue-manager-rango-preset";import{Divider as Gg,GroupedVirtualizedList as vx,Skeleton as wx,SwapListItem as Vg,Typography as bx}from"@rango-dev/ui";import je,{useCallback as Kg,useEffect as xx,useRef as Ex,useState as Ix}from"react";function zg(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(zg,"calculateGroupsSoFar");import{css as Sx,darkTheme as Cx,styled as Tr}from"@rango-dev/ui";var ac=Sx(),Qg=Tr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),sc=Tr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${ac}`]:{$$color:"$colors$neutral600",[`.${Cx} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),lc=Tr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),qg=Tr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Hg=Tr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var Ax=10;function cc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=Ix([]),c=Ex(0),{swaps:l,groupCounts:p,groups:u}=n(e),f=Kg(zg,[]),h=Kg(()=>{let g=e.length-c.current;g&&(c.current+=Math.min(g,Ax),s(f(p,c.current)))},[e.length]);if(xx(()=>{r||h()},[r,h]),r){let g=[1,2];return je.createElement(je.Fragment,null,[g,g].map((d,y)=>je.createElement(sc,{key:y},je.createElement(lc,null,je.createElement(wx,{variant:"text",width:60,size:"small"}),je.createElement(Gg,{size:16})),je.createElement(Gg,{size:4}),je.createElement(qg,null,d.map((S,k)=>je.createElement(Vg,{isLoading:!0,key:k}))))))}return je.createElement(vx,{endReached:()=>{c.current<e.length&&h()},groupCounts:a,groupContent:g=>je.createElement(sc,null,je.createElement(lc,null,je.createElement(bx,{variant:"label",size:"medium",className:ac()},u[g]))),itemContent:(g,m)=>{let d=l[g];if(!d)return null;let y=kx(d),C=d.steps[0],S=d.steps[d.steps.length-1];return je.createElement(Qg,{key:d.requestId},je.createElement(Vg,{className:"widget-history-group-list-swap-item-btn",requestId:d.requestId,creationTime:d.creationTime,status:d.status,onClick:o,currentStep:y,tooltipContainer:N(),onlyShowTime:u[m]===Tx.t("Today"),swapTokenData:{from:{token:{image:C.fromLogo,displayName:C.fromSymbol},blockchain:{image:C.fromBlockchainLogo||""},amount:_(d.inputAmount,6,6),realAmount:d.inputAmount},to:{token:{image:S.toLogo,displayName:S.toSymbol},blockchain:{image:S.toBlockchainLogo||""},amount:_(S.outputAmount||S.expectedOutputAmountHumanReadable||"",6,6),realAmount:S.outputAmount||S.expectedOutputAmountHumanReadable||""}}}))}})}i(cc,"HistoryGroupedList");import{i18n as aa}from"@lingui/core";import jg from"dayjs";var Xg=i(t=>{let e=new Map([["today",{title:aa.t("Today"),swaps:[]}],["week",{title:aa.t("This week"),swaps:[]}],["month",{title:aa.t("This month"),swaps:[]}],["year",{title:aa.t("This year"),swaps:[]}]]);function o(l,p){e.has(l)||e.set(l,{title:l,swaps:[]}),e.get(l)?.swaps.push(p)}i(o,"addYearsToOutput");let n=jg();t.forEach(l=>{let p=Number(l.creationTime),u=jg(p);if(n.isSame(u,"day"))e.get("today")?.swaps.push(l);else if(n.isSame(u,"week"))e.get("week")?.swaps.push(l);else if(n.isSame(u,"month"))e.get("month")?.swaps.push(l);else if(n.isSame(u,"year"))e.get("year")?.swaps.push(l);else{let f=new Date(p).getFullYear().toString();o(f,l)}});let r=Array.from(e.values()).filter(l=>l.swaps.length>0),a=r.flatMap(l=>l.swaps),s=r.map(l=>l.swaps.length),c=r.map(l=>l.title);return{swaps:a,groupCounts:s,groups:c}},"groupSwapsByDate");var Px=uc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),_x=uc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),Dx=uc("div",{"._typography":{color:"$neutral700",[`.${Bx}&`]:{color:"$neutral900"}}}),$x=[{id:kr.SUCCESS,title:Xe.t("Complete")},{id:kr.RUNNING,title:Xe.t("Running")},{id:kr.FAILED,title:Xe.t("Failed")}],Fx=i((t,e)=>t?.length?t.filter(o=>Nt(o.fromBlockchain,e)||Nt(o.toBlockchain,e)||Nt(o.toSymbol,e)||Nt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Zg(){let t=Mx(),{manager:e,state:o}=Nx(),n=St(e).map(({swap:k})=>k),[r,a]=la(""),[s,c]=la(!1),l=!o.loadedFromPersistor,[p,u]=la(""),[f,h]=la(!1),g=i(k=>{let v=k.target.value;a(v)},"handleSearch"),m=Yg(()=>!r&&!p?n:n.filter(k=>{let{inputAmount:v,status:x,steps:I,requestId:A}=k;return(!r||Nt(v,r)||Nt(x,r)||Fx(I,r)||Nt(A,r))&&(!p||p===x)}),[n,r,p]),d=!m?.length&&!l,y=i(()=>h(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),h(!1)}catch(k){console.log(k)}},"onClear"),S=Yg(()=>!n.some(k=>k.status===kr.SUCCESS||k.status===kr.FAILED),[n]);return pe.createElement(ie,{header:{title:Xe.t("History"),suffix:pe.createElement(ro,null,pe.createElement(pc,{id:"widget-history-clear-btn",disabled:S,variant:"ghost",size:"xsmall",onClick:()=>h(!0)},pe.createElement(sa,{size:"medium",variant:"label",color:"error"},Xe.t("Clear"))))}},pe.createElement(ce,null,pe.createElement(_x,null,pe.createElement(Et,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Xe.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:g,style:{height:36},value:r}),pe.createElement(Do,{size:10,direction:"horizontal"}),pe.createElement(ic,{filterBy:p,open:s,onOpenChange:k=>c(k),onClickItem:k=>u(k),list:$x})),pe.createElement(Do,{size:"16"}),pe.createElement(Px,null,d&&pe.createElement(Hg,null,pe.createElement(Do,{size:32}),pe.createElement(Lx,{title:r?Xe.t("No results found"):Xe.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Xe.t("Try using different keywords"):Xe.t("Your transaction history is stored locally and will appear here after you start a swap")})),!d&&pe.createElement(cc,{list:m,onSwapClick:t,groupBy:Xg,isLoading:l}))),pe.createElement(J,{open:f,onClose:y,id:"widget-history-clear-modal",container:N()},pe.createElement(Do,{size:20}),pe.createElement(Wx,{type:"warning",title:Xe.t("Clear Transaction History"),description:pe.createElement(Dx,null,pe.createElement(sa,{variant:"body",size:"medium"},Xe.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),pe.createElement(Do,{size:"24"}),pe.createElement(sa,{variant:"body",size:"small"},Xe.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),pe.createElement(Do,{size:30}),pe.createElement(pc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:C},Xe.t("Yes, Clear the history")),pe.createElement(Do,{size:10}),pe.createElement(pc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:y},pe.createElement(sa,{variant:"title",size:"medium",color:"primary"},Xe.t("No, Cancel")))))}i(Zg,"HistoryPage");import{i18n as CE}from"@lingui/core";import{Button as TE,Divider as xc,styled as kE,WarningIcon as vE}from"@rango-dev/ui";import wE from"bignumber.js";import Se,{useEffect as Ih,useState as Ah}from"react";import{useNavigate as bE}from"react-router-dom";import{i18n as Rg}from"@lingui/core";import{Alert as Ux,Divider as dc,NoRouteIcon as zx,Typography as Qx}from"@rango-dev/ui";import $o from"react";import{styled as Ox}from"@rango-dev/ui";var Jg=Ox("div",{display:"flex",flexDirection:"column",alignItems:"center"});function mc(){let{fromToken:t,toToken:e}=O();return!!t&&!!e&&Ft(t,e)?$o.createElement(Jg,null,$o.createElement(dc,{size:10}),$o.createElement(zx,{size:24,color:"gray"}),$o.createElement(dc,{size:4}),$o.createElement(Qx,{variant:"title",size:"small"},Rg.t("No Routes Found")),$o.createElement(dc,{size:4}),$o.createElement(Ux,{title:Rg.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(mc,"SameTokensWarning");import{Alert as qx,Button as Hx}from"@rango-dev/ui";import th from"react";import{i18n as ca}from"@lingui/core";function eh(t){let e=null;return t===ei?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ca.t("Reset"),title:ca.t("Slippage cannot be set lower than 0.01%.")},e):t>Vo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ca.t("Change"),title:ca.t("Caution, your slippage is high!")},e):null}i(eh,"makeAlerts");function oh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=T(),{onChangeSettings:a}=t,c=eh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(Rr),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?th.createElement(qx,{title:c.title,type:c.alertType,variant:"alarm",action:th.createElement(Hx,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(oh,"SlippageWarningsAndErrors");import{i18n as Xx}from"@lingui/core";import{IconButton as Yx,ReverseIcon as Zx,Skeleton as Jx,Tooltip as Rx,Typography as vr}from"@rango-dev/ui";import ut from"react";import pa from"bignumber.js";function rh(t){let{error:e,isDarkTheme:o,warning:n}=t,{quoteError:r,slippageError:a}=e,{quoteWarning:s,slippageWarning:c}=n,l=!!a||r?.type===4,p=!!c||s?.type===2;return l?"$error500":p?"$warning500":o?"$neutral600":"$neutral700"}i(rh,"getSlippageColor");function ih(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new pa(e),r=new pa(o),a=n.dividedBy(r),s;return a.isLessThan(1)?s=a.toFixed(14).replace(/\.?0+$/,""):a.toFixed(0).length>10?s=a.toFixed(0).slice(0,10):s=a.toFixed(2),{displayValue:s,rawValue:a.toFixed()}}i(ih,"getUsdExchangeRate");function ah(t,e){let o=new pa(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,pa.ROUND_DOWN).toFormat(2)}`}i(ah,"formatTokenValueInUsd");import{darkTheme as Kx,styled as gc,Typography as jx}from"@rango-dev/ui";var sh=gc("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),lh=gc("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${Kx} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),hc=gc(jx,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function yc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=T(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,f=o!==null?o:e,{mode:h}=no({}),g=Xo(f),m=h==="dark",d=n==="default",y={quoteError:a,slippageError:g?.type==="error"?g.message:null},C={quoteWarning:s,slippageWarning:g?.type==="warning"?g.message:null},S=p?.swaps[0].from||c,k=p?.swaps[p?.swaps.length-1].to||l,v=d?S:k,x=d?k:S,I=Number(d?p?.outputAmount:p?.requestAmount),A=Number(d?p?.requestAmount:p?.outputAmount),E=I||v.usdPrice,b=A||x.usdPrice,{rawValue:w,displayValue:B}=ih({toTokenUsdPrice:b,fromTokenUsdPrice:E});return ut.createElement(sh,null,ut.createElement(vr,{variant:y||C?"label":"body",size:y||C?"medium":"small",color:rh({error:y,warning:C,isDarkTheme:m})},Xx.t("Slippage:")," ",f,"%"),u?ut.createElement(Jx,{height:16,width:104,variant:"rounded"}):E&&b&&ut.createElement(lh,null,ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},"1"),ut.createElement(hc,{className:"rate-text",variant:"body",size:"small"},x.symbol),ut.createElement(Yx,{id:"widget-home-page-change-rate-button",onClick:r},ut.createElement(Zx,{size:14,color:"secondary"})),ut.createElement(Rx,{container:N(),side:"top",sideOffset:4,content:ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},w)},ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},B)),ut.createElement(hc,{className:"rate-text",variant:"body",size:"small"},v.symbol),v.usdPrice&&ut.createElement(vr,{color:"neutral600",variant:"body",size:"small"},"~",ah(Number(w),v.usdPrice))))}i(yc,"SwapMetrics");import{i18n as iE}from"@lingui/core";import{Header as aE}from"@rango-dev/ui";import po,{useEffect as sE,useState as lE}from"react";import{i18n as tE}from"@lingui/core";import{Divider as Cc,FullExpandedQuote as oE,Typography as nE}from"@rango-dev/ui";import we from"react";import{styled as Sc}from"@rango-dev/ui";var ch=Sc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),ph=Sc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),uh=Sc("div",{width:"146px"});import{i18n as wr}from"@lingui/core";import{Select as eE}from"@rango-dev/ui";import dh from"react";function ua(t){let{updateQuotePartialState:e,sortStrategy:o}=O(),n=[{value:"SMART",label:wr.t("Smart Routing")},{value:"FEE",label:wr.t("Lowest Fee")},{value:"SPEED",label:wr.t("Fastest Transfer")},{value:"NET_OUTPUT",label:wr.t("Maximum Return")},{value:"PRICE",label:wr.t("Maximum Output")}];return dh.createElement(uh,null,dh.createElement(eE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ua,"SelectStrategy");var mh=3;function br(t){let{loading:e,onClickOnQuote:o,fetch:n,showModalFee:r,hasSort:a=!0,fullExpandedMode:s=!1,container:c}=t,{selectedQuote:l,quotes:p,updateQuotePartialState:u,fromToken:f,toToken:h,sortStrategy:g,error:m}=O(),{slippage:d,customSlippage:y}=T(),{findToken:C}=T(),S=c||N(),k=!!p&&p.results.length,v=y??d,x=i(E=>{if(!f||!h||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...E};return pn({currentQuote:b,userSlippage:v,findToken:C})},"getQuoteWarning"),I=m?.type===0||m?.type===1,A=p?.results?hi(g,p?.results):[];return we.createElement(we.Fragment,null,a&&we.createElement(we.Fragment,null,we.createElement(ph,null,we.createElement(nE,{size:"xmedium",variant:"title"},tE.t("Sort by")),we.createElement(ua,{container:S})),we.createElement(Cc,{size:"10"})),e&&Array.from({length:mh},(E,b)=>we.createElement(we.Fragment,{key:b},s?we.createElement(oE,{loading:!0}):we.createElement(ur,{tagHidden:!1,type:"list-item",expanded:!1}),b!==mh-1&&we.createElement(Cc,{size:16}))),!e&&we.createElement(we.Fragment,null,k?A.map((E,b)=>{let w=x(E),B=Ol(E.swaps),P=A.length-1===b;return we.createElement(we.Fragment,{key:E.requestId},we.createElement(Mo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:S,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:w,fullExpandedMode:s,onClick:$=>{B||u("warning",w),u("error",B?.options||null),o($)},type:"list-item"}),!P&&we.createElement(Cc,{size:16}))}):I&&we.createElement(ch,null,we.createElement(or,{size:s?"large":"small",error:m,fetch:n}))))}i(br,"Quotes");import{darkTheme as rE,styled as fh}from"@rango-dev/ui";var gh=fh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${rE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),hh=fh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var cE=100;function Tc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=lE(!1),l=s?"":"is-hidden",{config:p}=T(),u=p?.variant==="full-expanded",f=To();return sE(()=>{let h=null;return a?h=setTimeout(()=>{c(!0)},cE):(c(!1),h&&clearTimeout(h)),()=>{h&&clearTimeout(h)}},[a]),po.createElement(gh,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Bi()} widget-expanded-quotes-container`,id:Qe.EXPANDED_BOX_ID},po.createElement(aE,{title:iE.t("Routes"),suffix:po.createElement(po.Fragment,null,po.createElement(ua,{container:f}),po.createElement(Bo,{container:f,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),po.createElement(hh,null,po.createElement(br,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:To(),onClickOnQuote:n,fullExpandedMode:u})))}i(Tc,"ExpandedQuotes");import{i18n as wh}from"@lingui/core";import{SwapInput as bh}from"@rango-dev/ui";import mE from"bignumber.js";import xr from"react";import{ReverseIcon as dE}from"@rango-dev/ui";import vc from"react";import{keyframes as pE,styled as yh}from"@rango-dev/ui";var kc=450,uE=pE({"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)"}}),Sh=yh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ch=yh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${uE} ${kc}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 wc(){let t=O.use.switchFromAndTo();return vc.createElement(Sh,null,vc.createElement(Ch,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},kc),t()}},vc.createElement(dE,{size:12})))}i(wc,"SwitchFromAndToButton");import{styled as Th}from"@rango-dev/ui";var kh=Th("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),vh=Th("div",{position:"relative"});function bc(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:f,inputUsdValue:h,outputAmount:g,outputUsdValue:m,selectedQuote:d}=O(),{connectedWallets:y,getBalanceFor:C}=T(),S=a?C(a):null,k=Yr(S)?.amount??"0",v=S?new mE(S.amount).shiftedBy(-S.decimals):de,x=!!s&&eu(y,s.name),I=!Es(d,f,h),A=!Es(d,f,m),E=!h||!m||!m.gt(0)?null:zt(h.toString(),m.toString());return xr.createElement(kh,null,xr.createElement(vh,null,xr.createElement(bh,{label:wh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:k,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:f,usdValue:I?void 0:_(h,4,4),realUsdValue:I?void 0:h?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let b=_(v,S?.decimals),w=S?.amount?b.split(",").join(""):"";p(w)},anyWalletConnected:y.length>0}),xr.createElement(wc,null)),xr.createElement(bh,{sharpBottomStyle:!r&&(!!d||e),label:wh.t("To"),mode:"To",id:"widget-swap-to-input",fetchingQuote:e,chain:{displayName:l?.displayName||"",image:l?.logo},token:{displayName:c?.symbol||"",image:c?.image,securityWarning:!!c?.warning},percentageChange:_(zt(h,m),2,2),warningLevel:Qt(E??0),price:{value:_(g,6,6),usdValue:A?void 0:_(m,4,4),realValue:g?.toString(),realUsdValue:A?void 0:m?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i(bc,"Inputs");import{useCallback as fE,useEffect as gE,useRef as hE,useState as yE}from"react";function xh(){let{fetch:t,loading:e,cancelFetch:o}=ea({request:async(n,r)=>await at().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(xh,"useFetchAllQuotes");var SE=600;function da({refetchQuote:t}){let{fetch:e,cancelFetch:o}=xh(),{excludeLiquiditySources:n,routing:r}=T().config,{connectedWallets:a}=T(),c=a.some(le=>le.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:f,selectedQuote:h,sortStrategy:g,resetQuote:m,error:d,warning:y,setSelectedQuote:C,updateQuotePartialState:S}=O(),{slippage:k,customSlippage:v,affiliatePercent:x,affiliateRef:I,affiliateWallets:A,fetchStatus:E}=T(),b=T().getLiquiditySources(),w=T().getDisabledLiquiditySources(),B=T().excludeLiquiditySources(),{findToken:P}=T(),[$,q]=yE(!0),R=hE(u),K=v??k,ae=!l||!p||Ft(l,p)||!Mn(u),re=i(le=>{q(le)},"resetState"),Q=i(le=>{let{fromToken:ue,toToken:se,inputAmount:Ze,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:G,slippage:j,affiliateRef:X,affiliatePercent:fe,affiliateWallets:Ue}=le;if($||re(!0),!ae&&ue&&se){m();let Je=wd({fromToken:ue,toToken:se,inputAmount:Ze,liquiditySources:H,excludeLiquiditySources:W,disabledLiquiditySources:G,wallets:a,slippage:j,affiliateRef:X,affiliatePercent:fe,affiliateWallets:Ue,contractCall:c});jo("experimental",r)&&(Je.experimental=!0),jo("avoidNativeFee",r)&&(Je.avoidNativeFee=!0),jo("enableCentralizedSwappers",r)&&(Je.enableCentralizedSwappers=!0),r?.maxLength&&(Je.maxLength=r.maxLength),e(Je).then(be=>{let ze=hi(g,be.results),Rt=ud(h,ze,be.requestAmount);q(!1),S("quotes",be),C(Rt),ta({diagnosisMessages:be.diagnosisMessages,requestId:Rt?.requestId||"",swaps:Rt?.swaps});let yo=Rt&&pn({currentQuote:Rt,userSlippage:K,findToken:P});S("warning",yo)}).catch(be=>{let{error:ze}=oa(be);(ze?.type===0||ze?.type===1)&&m(),ze?.type!==2&&(S("error",ze),q(!1))})}},"fetch"),ee=fE(qr(le=>{Q(le)},SE),[ae]);return gE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(ae){q(!1),(h||d||y)&&m();return}if(!Mn(u)&&f?.eq(0)){re(!1),o();return}m(),re(!0);let le=Q;return R.current&&R.current!=u&&(le=ee),R.current=u,le({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:K,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,ae,b?.length,n,w.length,K,I,x,c,JSON.stringify(A)]),{fetch:()=>Q({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:w,slippage:K,affiliateRef:I,affiliatePercent:x,affiliateWallets:A,contractCall:c}),loading:$}}i(da,"useSwapInput");function Eh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Te.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Eh,"emitPreventableEvent");var xE=kE("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),EE=300;function Nh(){let t=bE(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:f,updateQuotePartialState:h}=O(),[g,m]=Ah(!1),{isLargeScreen:d,isExtraLargeScreen:y}=fn(),{fetch:C,loading:S}=da({refetchQuote:a}),{config:k,fetchStatus:v,connectedWallets:x,customSlippage:I,slippage:A,setSlippage:E,setCustomSlippage:b}=T(),{isActiveTab:w}=te(),[B,P]=Ah(!1),q=Xo(I!==null?I:A),K=Cd({fetchMetaStatus:v,fetchingQuote:S,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),L=su(d,y,k?.variant),ae=!!n&&!!e&&!!o&&new wE(n).gt(0)&&!Bd(e,o),re=ae&&v==="success"&&S,Q=q?.quoteValidation||c,ue=(!L||L&&l?.results.length)&&(Q||s),se=!!e&&!!o,Ze=se&&!!q,H=(r||s)&&!B?C:void 0,W=i(X=>{L&&g?(m(!1),setTimeout(()=>{t(X)},EE)):t(X)},"onHandleNavigation"),G=i(X=>{r?.requestId!==X.requestId&&(P(!1),p(X))},"onClickOnQuote"),j=i(X=>{if(X){if(Jr.includes(X)){E(X),b(null);return}b(X)}},"onChangeSlippage");return Ih(()=>{u(),h("refetchQuote",!0)},[]),Ih(()=>{m(ae)},[ae]),Se.createElement(xE,null,Se.createElement(ie,{height:"auto",footer:Se.createElement(TE,{id:`widget-swap-${K.action}-btn`,type:"primary",size:"large",disabled:K.disabled||!w,prefix:K.action==="confirm-warning"&&Se.createElement(vE,null),fullWidth:!0,onClick:()=>{K.action==="connect-wallet"?Eh({type:"clickConnectWallet"},()=>W(F.wallets)):K.action==="confirm-warning"?P(!0):W(F.confirmSwap)}},K.title),header:{onWallet:()=>{W(F.wallets)},hasBackButton:!1,title:k.title||CE.t("Swap"),suffix:Se.createElement(Bo,{hidden:L?["refresh"]:void 0,onClickRefresh:H,onClickHistory:()=>W(F.swaps),onClickSettings:()=>{W(F.settings)}})}},Se.createElement(ce,null,Se.createElement(bc,{fetchingQuote:re,fetchMetaStatus:v,isExpandable:L,onClickToken:X=>{W(X==="from"?F.fromSwap:F.toSwap)}}),Se.createElement(xc,{size:"2"}),L?null:Se.createElement(Mo,{quote:r,loading:re,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:Q,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{h("refetchQuote",!1),W(F.routes)}:void 0}),se&&Se.createElement(Se.Fragment,null,Se.createElement(xc,{size:8}),Se.createElement(yc,{quoteError:s,quoteWarning:Q,fromToken:e,toToken:o,quote:r,loading:re})),ue?Se.createElement(Se.Fragment,null,Se.createElement(ir,{warning:Q,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:C,showWarningModal:B,confirmationDisabled:!w,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:j,onConfirmWarningModal:()=>{P(!1),f(!0),W(F.confirmSwap)},onChangeSettings:()=>W(F.settings)})):null,Ze&&Se.createElement(Se.Fragment,null,Se.createElement(xc,{size:"10"}),Se.createElement(oh,{onChangeSettings:()=>W(F.settings)})),Se.createElement(mc,null))),L?Se.createElement(Tc,{loading:re,onClickOnQuote:G,fetch:C,onClickRefresh:H,isVisible:g}):null)}i(Nh,"Home");import{i18n as Bh}from"@lingui/core";import{Alert as IE,Divider as AE,List as NE,ListItemButton as BE,Radio as WE,RadioRoot as LE,Typography as ME}from"@rango-dev/ui";import _t from"react";function uo(){let{setLanguage:t,language:e,config:o}=T(),n=fu,r=o?.language||Yo;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||Yo),resetLanguage:()=>t(null)}}i(uo,"useLanguage");function Wh(){let{activeLanguage:t,changeLanguage:e,languages:o}=uo(),n=Ge(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:_t.createElement(ME,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:_t.createElement(WE,{value:s}),start:_t.createElement(l,null)}});return _t.createElement(ie,{header:{title:Bh.t("Language")}},_t.createElement(ce,null,_t.createElement(IE,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),_t.createElement(AE,{size:"8"}),_t.createElement(LE,{value:t},_t.createElement(NE,{type:_t.createElement(BE,{title:Bh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Wh,"LanguagePage");import{i18n as Yt}from"@lingui/core";import{Button as FE,Checkbox as OE,Image as UE,ListItemButton as zE,NotFound as QE,Typography as qE}from"@rango-dev/ui";import Ye,{useState as HE}from"react";import{Checkbox as DE,Skeleton as Mh}from"@rango-dev/ui";import Ir from"react";import{styled as Ec}from"@rango-dev/ui";var Er=Ec("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Ic=Ec("div",{width:80,display:"flex",justifyContent:"flex-end"}),Ac=Ec("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as PE,styled as _E}from"@rango-dev/ui";var Lh=_E(PE,{height:61});var $E=30;function Nc(){return Ir.createElement(Er,null,Array.from(Array($E),(t,e)=>Ir.createElement(Lh,{hasDivider:!0,key:e,start:Ir.createElement(Mh,{variant:"circular",width:35,height:35}),title:Ir.createElement(Mh,{variant:"text",size:"large",width:90}),end:Ir.createElement(DE,{checked:!1})})))}i(Nc,"LoadingLiquiditySourceList");function Bc({sourceType:t}){let e=T().fetchStatus,o=T().swappers(),n=T().getDisabledLiquiditySources(),[r,a]=HE(""),s=T().toggleLiquiditySource,c=T().isInCampaignMode(),l=ti(o,n),p={Exchanges:Yt.t("Exchanges"),Bridges:Yt.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let f=l.filter(C=>u.includes(C.type)),h=f.length===f.filter(C=>C.selected).length,g=i(()=>{f.forEach(C=>{h?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),m=f.map(C=>{let{selected:S,groupTitle:k,logo:v,id:x,...I}=C;return{id:`widget-setting-liquidity-source-${Qp(x.toLowerCase())}-item-btn`,start:Ye.createElement(UE,{src:v,size:22,type:"circular"}),onClick:()=>{c||s(k)},end:Ye.createElement(OE,{checked:S,disabled:c}),title:Ye.createElement(qE,{variant:"title",size:"xmedium"},Yt.t(k)),selected:S,groupTitle:k,logo:v,...I}}),d=i(C=>{let S=C.target.value;a(S)},"handleSearch"),y=m;return r&&(y=m.filter(C=>Nt(C.groupTitle,r))),Ye.createElement(ie,{header:{title:Yt.t(t),suffix:Ye.createElement(Ic,null,Ye.createElement(FE,{id:`widget-liquidity-source-${h?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:g},h?Yt.t("Deselect all"):Yt.t("Select all")))}},Ye.createElement(ce,{view:!0},Ye.createElement(Et,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:Yt.t("Search {sourceType}",{sourceType:p[t]}),onChange:d}),e==="loading"&&Ye.createElement(Nc,null),!y.length&&r?Ye.createElement(Ac,null,Ye.createElement(QE,{title:Yt.t("No results found"),description:Yt.t("Try using different keywords")})):e==="success"&&Ye.createElement(Er,{disabled:c,className:"widget-liquidity-source-list"},y.map(C=>{let{groupTitle:S,...k}=C;return Ye.createElement(Ye.Fragment,{key:C.id},Ye.createElement(zE,{style:{height:"61px"},...k,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Bc,"LiquiditySourcePage");import{i18n as GE}from"@lingui/core";import ma from"react";import{useNavigate as VE}from"react-router-dom";function Ph(){let t=VE(),e=Ge(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=O(),{fetch:c,loading:l}=da({refetchQuote:n}),p=i(h=>{r(h),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${F.settings}`,f=`../${F.wallets}`;return ma.createElement(ie,{header:{onWallet:()=>{t(f),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:GE.t("Routes"),suffix:ma.createElement(Bo,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},ma.createElement(ce,null,ma.createElement(br,{fetch:c,loading:l,onClickOnQuote:p})))}i(Ph,"RoutesPage");import{i18n as zh}from"@lingui/core";import{Divider as Qh,getCategoriesCount as oI,SelectableCategoryList as nI}from"@rango-dev/ui";import Zt,{useState as qh}from"react";import{useNavigate as rI}from"react-router-dom";import{i18n as Wc}from"@lingui/core";import{Divider as YE,Image as ZE,ListItemButton as JE,NotFound as RE,Typography as Uh}from"@rango-dev/ui";import dt,{useEffect as eI,useState as tI}from"react";var _h=i((t,e,o)=>t.filter(n=>Hr(n.type,o)).filter(n=>rt(n.name,e)||rt(n.displayName,e)),"filterBlockchains");import{ImageContainer as KE,styled as Dh}from"@rango-dev/ui";var $h=Dh("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),fa=Dh(ll,{padding:0,margin:0,listStyle:"none",[`& ${KE}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as jE,Skeleton as Fh}from"@rango-dev/ui";import ga from"react";var XE=20;function Oh(){return ga.createElement(fa,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(XE),t=>ga.createElement(jE,{key:t,hasDivider:!0,start:ga.createElement(Fh,{variant:"circular",width:35,height:35}),title:ga.createElement(Fh,{variant:"text",size:"large",width:90})})))}i(Oh,"LoadingBlockchainList");function Lc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=tI(e),{fetchStatus:l}=T();eI(()=>{c([..._h(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?dt.createElement(RE,{title:Wc.t("No results found"),description:Wc.t("Try using different keywords")}):dt.createElement(fa,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>dt.createElement(JE,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:dt.createElement(ZE,{src:u.logo,size:30}),title:dt.createElement(Uh,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return dt.createElement(dt.Fragment,null,a&&dt.createElement(dt.Fragment,null,dt.createElement(Uh,{variant:"label",size:"large"},Wc.t("Select Chain")),dt.createElement(YE,{size:4})),dt.createElement($h,null,l==="loading"&&dt.createElement(Oh,null),l==="success"&&p()))}i(Lc,"BlockchainList");function ha(t){let{type:e}=t,o=Ge(),[n,r]=qh(""),[a,s]=qh("ALL"),c=O.use.setToBlockchain(),l=O.use.setFromBlockchain(),{fetchStatus:p}=T(),u=rI(),f=T().blockchains({type:e}),h=oI(f),g=!t.hideCategory&&h!==1;return Zt.createElement(ie,{header:{title:zh.t("Select Chain")}},Zt.createElement(ce,{view:!0},g&&Zt.createElement(Zt.Fragment,null,Zt.createElement(nI,{setCategory:s,category:a,blockchains:f,isLoading:p==="loading"}),Zt.createElement(Qh,{size:24})),Zt.createElement(Et,{value:n,autoFocus:!0,placeholder:zh.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:m=>r(m.target.value)}),Zt.createElement(Qh,{size:16}),Zt.createElement(Lc,{list:f,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:m=>{e==="custom-token"?u(`..?blockchain=${m.name}`,{replace:!0}):(e==="source"?l(m):c(m),o())}})))}i(ha,"SelectBlockchainPage");import{i18n as Ca}from"@lingui/core";import{Divider as Yh,Spinner as CI}from"@rango-dev/ui";import mo,{useEffect as TI,useState as kI}from"react";import{useNavigate as vI}from"react-router-dom";import{i18n as _c}from"@lingui/core";import{BlockchainsChip as ya,Divider as Kh,Image as jh,Skeleton as pI,Tooltip as uI,Typography as Dc}from"@rango-dev/ui";import xe from"react";import{useEffect as sI}from"react";var Hh=["ETH","COSMOS","OSMOSIS"];function Mc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(iI),o?.limit&&t.length>o.limit){let a=o.limit,s=e;if(e.length<=o.limit){let c=o.limit-e.length;for(let l=0;l<=c;l++){let p=n[l];s=s.filter(u=>p.name!==u)}}n.sort(aI(s)),r=n.splice(a)}return{list:n,more:r}}i(Mc,"prepare");function iI(t,e){let o=Hh,n=o.findIndex(c=>c===t.name),r=o.findIndex(c=>c===e.name),a=n>-1,s=r>-1;return a&&s?n>r?1:-1:a?-1:s?1:0}i(iI,"sortByMostUsedBlockchains");function aI(t){return i(function(o,n){let r=t.findIndex(l=>l===o.name),a=t.findIndex(l=>l===n.name),s=r>-1,c=a>-1;return s&&c?r>a?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(aI,"generateSortByPreferredBlockchainsFor");function Gh(t,e){return!!e.list.find(o=>o.name===t)}i(Gh,"isInVisibleList");function Pc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=T();sI(()=>{if(e?.selected){let a=Mc(t,o,e);Gh(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Mc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Pc,"usePrepareBlockchainList");import{styled as lI}from"@rango-dev/ui";var Vh=lI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var dI=6,mI=12;function $c(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=te(),c=Pc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=T(),p=O.use.resetToBlockchain(),u=O.use.resetFromBlockchain(),f=c.more.length>0,h=c.more.length===1,g=!h&&f;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(Kh,{size:12}),xe.createElement(Dc,{variant:"label",size:"large"},_c.t("Select Chain"))),xe.createElement(Kh,{size:12}),xe.createElement(Vh,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?dI:mI),(m,d)=>xe.createElement(pI,{key:d,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(ya,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Dc,{variant:"body",size:"xsmall",color:"secondary500"},_c.t("All"))),c.list.map(m=>xe.createElement(uI,{key:m.name,content:m.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(ya,{className:"widget-blockchains-section-item-btn",key:m.name,selected:!!n&&n.name===m.name,onClick:()=>r(m)},xe.createElement(jh,{src:m.logo,size:30})))),h?xe.createElement(ya,{className:"widget-blockchains-section-only-item-btn",key:c.more[0].name,selected:!!n&&n.name===c.more[0].name,onClick:()=>r(c.more[0])},xe.createElement(jh,{src:c.more[0].logo,size:30})):null,g?xe.createElement(ya,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Dc,{variant:"body",size:"xsmall",color:"secondary500"},_c._("More +{count}",{count:c.more.length}))):null)))}i($c,"BlockchainsSection");import{useCallback as gI,useRef as hI,useState as Fc}from"react";function Oc(){let t=T().blockchains(),e=hI(null),{customTokens:o}=T(),[n,r]=Fc(!1),[a,s]=Fc([]),[c,l]=Fc(null),p=i(async(h,g)=>{l(null),r(!0),s([]);try{let m=await at().searchCustomTokens({query:h,blockchain:g},{signal:e.current?.signal}),d=new Set(o().map(S=>Ut(S))),y=new Set(t.map(S=>S.name)),C=m.tokens.filter(S=>y.has(S.blockchain)&&!d.has(Ut(S)));s(C),r(!1)}catch(m){l(m instanceof Error?m.message:"something went wrong"),s([]),m?.name!=="CanceledError"&&r(!1)}},"fetch"),u=gI(qr((h,g)=>{e.current?.signal.aborted||p(h,g)},600),[t.length]);return{fetch:(h,g)=>{e.current=new AbortController,s([]),r(!0),u(h,g)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Oc,"useSearchCustomTokens");function Sa(t,e,o){return o&&t.length===1&&t[0].address===e?!1:t.length<20&&e.trim().length>=3}i(Sa,"shouldSearchForCustomTokens");function Xh(t,e,o,n,r){let a=[...t];return Sa(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(Xh,"prepareTokensList");function Ta(t){let{type:e}=t,o=vI(),n=Ge(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=O(),{getBalanceFor:u}=T(),{fetch:f,loading:h,tokens:g,cancel:m}=Oc(),[d,y]=kI(""),C=e==="source"?r:a,S=C?.name??"",k=T().blockchains({type:e}),v=T().tokens({type:e,blockchain:S,searchFor:d,getBalanceFor:u}),x=Xh(v,g,d,h,C?.name),I=i(b=>{e==="source"?l(b):p(b)},"updateBlockchain"),A=i(b=>{e==="source"?s({token:b,meta:{blockchains:k}}):c({token:b,meta:{blockchains:k}})},"updateToken"),E={source:Ca.t("Source"),destination:Ca.t("Destination")};return TI(()=>(Sa(v,d,C?.name)&&f(d,C?.name??void 0),()=>{m()}),[v.length,d,C?.name]),mo.createElement(ie,{header:{title:Ca.t("Swap {type}",{type:E[e]})}},mo.createElement(ce,null,mo.createElement($c,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(F.blockchains),onChange:b=>{I(b)}}),mo.createElement(Yh,{size:24}),mo.createElement(Et,{value:d,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:Ca.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:b=>y(b.target.value),suffix:Sa(v,d,C?.name)&&h?mo.createElement(CI,{size:12,color:"secondary"}):void 0}),mo.createElement(Yh,{size:16}),mo.createElement(yr,{list:x,selectedBlockchain:S,searchedFor:d,type:e,onChange:b=>{A(b);let w=k.find(B=>b.blockchain===B.name);w&&I(w),n()}})))}i(Ta,"SelectSwapItemsPage");import{i18n as qc}from"@lingui/core";import{Alert as XI,Button as YI,styled as ZI}from"@rango-dev/ui";import Fo from"react";import{useInRouterContext as JI,useSearchParams as RI}from"react-router-dom";import{i18n as ny}from"@lingui/core";import{Alert as EI,Divider as zc,InfoIcon as II,SlippageIcon as AI,TextField as NI,Tooltip as BI,Typography as ry}from"@rango-dev/ui";import $e from"react";import{Chip as wI,styled as En,TextField as bI}from"@rango-dev/ui";var Zh=En("div",{paddingTop:"$5",padding:"$10 $5"}),Jh=En("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${bI}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Rh=En("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),ka=En("div",{maxWidth:"280px",padding:"$10"}),ey=En(wI,{width:"61px",flexShrink:0}),ty=En("div",{outlineWidth:1,outlineStyle:"solid",borderRadius:"$xs",flex:1,variants:{status:{safe:{outlineColor:"$secondary500"},error:{outlineColor:"$error500"},warning:{outlineColor:"$warning500"},empty:{outlineWidth:0}}}});import{i18n as Uc}from"@lingui/core";import{Typography as xI}from"@rango-dev/ui";import Ar from"react";function oy(){return Ar.createElement(ka,null,Ar.createElement(xI,{variant:"label",size:"medium",color:"neutral700"},Uc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Ar.createElement("br",null),Ar.createElement("br",null),Ar.createElement("b",null,Uc.t("Warning")),":\xA0",Uc.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(oy,"SlippageTooltipContent");function Qc(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=T(),r=o!==null?Xo(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let f=u;u>$n&&(f=$n),n(f)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;Hp(u)||(p.value=u.slice(0,-1))},"onInput");return $e.createElement(Zh,null,$e.createElement(Rh,null,$e.createElement(AI,{size:16,color:"gray"}),$e.createElement(zc,{direction:"horizontal",size:4}),$e.createElement(ry,{variant:"title",size:"xmedium"},ny.t("Slippage tolerance per swap")),$e.createElement(zc,{direction:"horizontal",size:4}),$e.createElement(BI,{container:N(),side:"top",sideOffset:4,content:$e.createElement(oy,null)},$e.createElement(II,{color:"gray"}))),$e.createElement(Jh,null,Jr.map((l,p)=>{let u=`slippage-${p}`;return $e.createElement(ey,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),$e.createElement(ty,{status:r?.type||(o?"safe":"empty")},$e.createElement(NI,{type:"number",min:"0.01",max:"30",step:"0.01",id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&$e.createElement(ry,{variant:"body",size:"small"},"%"),placeholder:ny.t("Custom")}))),r&&$e.createElement($e.Fragment,null,$e.createElement(zc,{size:10}),$e.createElement(EI,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(Qc,"Slippage");import{i18n as Ct}from"@lingui/core";import{AutoThemeIcon as iy,BridgesIcon as WI,ChevronRightIcon as va,DarkModeIcon as ay,Divider as Nr,ExchangeIcon as LI,InfinityIcon as MI,InfoIcon as PI,LanguageIcon as _I,LightModeIcon as sy,List as DI,ListItem as $I,ListItemButton as FI,Skeleton as OI,styled as UI,Switch as zI,Tabs as QI,TargetIcon as qI,Tooltip as HI,Typography as nt}from"@rango-dev/ui";import D from"react";import{useNavigate as GI}from"react-router-dom";var VI=UI("div",{width:"202px",height:"$40"}),KI=[{id:"light",icon:D.createElement(sy,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Light"))},{id:"dark",icon:D.createElement(ay,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Dark"))},{id:"auto",icon:D.createElement(iy,{color:"black",size:24}),tooltip:D.createElement(nt,{size:"xsmall",variant:"body"},Ct.t("Auto"))}],jI=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return D.createElement(iy,{...e});case"dark":return D.createElement(ay,{...e});default:return D.createElement(sy,{...e})}},"getThemeIcon");function ly(){let t=GI(),{theme:e}=T().config,{setTheme:o,theme:n}=T(),{activeLanguage:r,languages:a}=uo(),s=a.find(L=>L.local===r)?.label,c=T().fetchStatus,l=T().swappers(),p=T().getDisabledLiquiditySources(),{config:{features:u}}=T(),f=T().customTokens(),h=Re("theme",u),g=Re("liquiditySource",u),m=Re("language",u),d=Re("customTokens",u),y=T().infiniteApprove,C=T().toggleInfiniteApprove,S=ti(l,p),k=S.filter(L=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(L.type)),v=k.length,x=k.filter(L=>L.selected).length,I=S.filter(L=>L.type==="DEX"),A=I.length,E=I.filter(L=>L.selected).length,b=i((L,ae)=>{switch(c){case"loading":return D.createElement(OI,{variant:"text",size:"medium",width:50});case"failed":return D.createElement(nt,{variant:"body",size:"medium",color:"$error500"},Ct.t("Loading failed"));default:return D.createElement(nt,{variant:"body",size:"medium"},`${L} / ${ae}`)}},"handleSwapperEndItem"),w={id:"widget-setting-bridge-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Bridges")),end:D.createElement(D.Fragment,null,b(x,v),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),onClick:()=>t(F.bridges),start:D.createElement(WI,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Exchanges")),end:D.createElement(D.Fragment,null,b(E,A),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),start:D.createElement(LI,{color:"gray",size:16}),onClick:()=>t(F.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Custom Tokens")),end:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"body",size:"medium"},`${f.length}`),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),start:D.createElement(qI,{color:"gray",size:16}),onClick:()=>t(F.customTokens)},$={id:"widget-setting-language-item-btn",title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Language")),start:D.createElement(_I,{color:"gray",size:16}),end:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"body",size:"medium"},s),D.createElement(Nr,{direction:"horizontal",size:8}),D.createElement(va,{color:"black"})),onClick:()=>t(F.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:D.createElement(D.Fragment,null,D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Infinite approval")),D.createElement(Nr,{direction:"horizontal",size:4}),D.createElement(HI,{side:"top",sideOffset:4,container:N(),content:D.createElement(ka,null,D.createElement(nt,{variant:"label",size:"medium",color:"neutral700"},D.createElement("b",null,Ct.t("Warning")),":\xA0",Ct.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},D.createElement(PI,{color:"gray"}))),start:D.createElement(MI,{color:"gray",size:16}),end:D.createElement(zI,{checked:y}),onClick:C},R={id:"widget-setting-theme-item-btn",type:D.createElement($I,null),title:D.createElement(nt,{variant:"title",size:"xmedium"},Ct.t("Theme")),end:D.createElement(VI,null,D.createElement(QI,{container:N(),items:KI,value:n,className:"widget-setting-theme-item-tabs-container",onChange:L=>o(L.id),type:"primary",borderRadius:"small"})),start:jI(n)},K=g?[]:[w,B];return d||K.push(P),m||K.push($),K.push(q),!e?.singleTheme&&!h&&K.push(R),D.createElement(DI,{type:D.createElement(FI,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:K})}i(ly,"SettingsLists");var eA=ZI("div",{paddingLeft:"$8"});function cy(){let{isInCampaignMode:t,updateCampaignMode:e}=T(),o=t(),[,n]=RI(),r=JI(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Fo.createElement(ie,{header:{title:qc.t("Settings")}},Fo.createElement(ce,null,o&&Fo.createElement(XI,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:qc.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:Fo.createElement(eA,null,Fo.createElement(YI,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},qc.t("Reset")))}),Fo.createElement(Qc,null),Fo.createElement(ly,null)))}i(cy,"SettingsPage");import{i18n as HA}from"@lingui/core";import{cancelSwap as GA}from"@rango-dev/queue-manager-rango-preset";import{useManager as VA}from"@rango-dev/queue-manager-react";import{Alert as KA}from"@rango-dev/ui";import rp from"react";import{useParams as jA}from"react-router-dom";import{i18n as mt}from"@lingui/core";import{getCurrentNamespaceOfOrNull as xA,getCurrentStep as EA,getRelatedWalletOrNull as IA}from"@rango-dev/queue-manager-rango-preset";import{Button as Gy,CopyIcon as AA,Divider as NA,DoneIcon as BA,IconButton as WA,QuoteCost as LA,RangoExplorerIcon as MA,StepDetails as PA,Tooltip as Vy,Typography as Oo,useCopyToClipboard as _A}from"@rango-dev/ui";import{useWallets as DA}from"@rango-dev/wallets-react";import Ky from"bignumber.js";import{PendingSwapNetworkStatus as Wa}from"rango-types";import Z,{useEffect as jy,useRef as $A,useState as Xy}from"react";import{useNavigate as FA}from"react-router-dom";import{i18n as fo}from"@lingui/core";var tA=[fo.t("Sunday"),fo.t("Monday"),fo.t("Tuesday"),fo.t("Wednesday"),fo.t("Thursday"),fo.t("Friday"),fo.t("Saturday")];function py(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?fo.t("Today"):`${tA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(py,"timeSince");function uy(t){return t.finishTime?py(parseInt(t.finishTime)):py(parseInt(t.creationTime))}i(uy,"getSwapDate");import{PendingSwapNetworkStatus as Ia}from"rango-types";import Aa from"react";import{i18n as wa}from"@lingui/core";import{Button as dy,Divider as Hc,MessageBox as oA}from"@rango-dev/ui";import go from"react";var my=i(({onCancel:t,onClose:e})=>go.createElement(go.Fragment,null,go.createElement(Hc,{size:20}),go.createElement(oA,{type:"error",title:wa.t("Cancel Swap"),description:wa.t("Are you sure you want to cancel this swap?")}),go.createElement(Hc,{size:32}),go.createElement(dy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},wa.t("Yes, Cancel it")),go.createElement(Hc,{size:12}),go.createElement(dy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},wa.t("No, Continue"))),"CancelContent");import{i18n as ba}from"@lingui/core";import{Button as fy,Divider as Gc,MessageBox as nA,Typography as rA}from"@rango-dev/ui";import Jt from"react";var gy=i(({onDelete:t,onClose:e})=>Jt.createElement(Jt.Fragment,null,Jt.createElement(Gc,{size:20}),Jt.createElement(nA,{type:"error",title:ba.t("Delete Transaction"),description:ba.t("Are you sure you want to delete this swap?")}),Jt.createElement(Gc,{size:32}),Jt.createElement(fy,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},ba.t("Yes, Delete it")),Jt.createElement(Gc,{size:12}),Jt.createElement(fy,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Jt.createElement(rA,{variant:"title",size:"medium",color:"primary"},ba.t("No, Cancel")))),"DeleteContent");import{i18n as xa}from"@lingui/core";import{PendingSwapNetworkStatus as Ea}from"rango-types";var Vc={[Ea.WaitingForNetworkChange]:{type:"loading",title:xa.t("Change Network")},[Ea.WaitingForConnectingWallet]:{type:"warning",title:xa.t("Connect Wallet")},[Ea.NetworkChanged]:{type:"success",title:xa.t("Network Changed")},[Ea.NetworkChangeFailed]:{type:"warning",title:xa.t("Network Change Failed")}};import{warn as iA}from"@rango-dev/logging-core";import{getCurrentStep as aA,getRelatedWalletOrNull as sA}from"@rango-dev/queue-manager-rango-preset";import{MessageBox as lA,Wallet as cA}from"@rango-dev/ui";import{useWallets as pA}from"@rango-dev/wallets-react";import In,{useState as uA}from"react";import{styled as Kc}from"@rango-dev/ui";var hy=Kc("div",{display:"flex",justifyContent:"center"}),Gj=Kc("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),yy=Kc("img",{width:"100%"});var Sy=i(t=>{let{type:e,title:o,swap:n,message:r,showWalletButton:a,walletButtonDisabled:s}=t,[c,l]=uA(),{getWalletInfo:p,state:u}=pA(),f=aA(n),h=f?sA(n,f):null,g=f?.fromBlockchain,m=h?.walletType,d=m?Pn(u(m)):null,y=m?p(m):null,C=a&&!!m&&!!d&&!!y,{list:S}=Tt(),k=i(()=>{if(m){let v=S.find(x=>x.type===m);v?l(v):iA(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${v}`))}},"handleWalletItemClick");return In.createElement(In.Fragment,null,In.createElement(lA,{type:e,title:o,description:r}),C&&In.createElement(hy,null,In.createElement(cA,{container:N(),title:y.name,image:y.img,type:m,state:d,link:y.installLink,disabled:s,onClick:k})),In.createElement(xo,{id:"widget-swap-details-modal",wallet:c,onClose:()=>{l(void 0)},options:{defaultSelectedChains:g?[g]:void 0}}))},"WalletStateContent");function jc(t){let{state:e,onClose:o,onDelete:n,onCancel:r,swap:a,message:s,walletButtonDisabled:c}=t,l=e===Ia.WaitingForNetworkChange||e===Ia.WaitingForConnectingWallet||e===Ia.NetworkChanged;return Aa.createElement(J,{id:"widget-swap-details-modal",open:!!e,onClose:o,container:document.getElementById(Qe.SWAP_BOX_ID)||document.body},l&&Aa.createElement(Sy,{type:Vc[e].type,title:Vc[e].title,swap:a,message:s,walletButtonDisabled:c,showWalletButton:e!==Ia.WaitingForNetworkChange}),e==="delete"&&Aa.createElement(gy,{onClose:o,onDelete:n}),e==="cancel"&&Aa.createElement(my,{onClose:o,onCancel:r}))}i(jc,"SwapDetailsModal");import{i18n as Br}from"@lingui/core";import{Button as Xc,Divider as Wr,MessageBox as ky,TokenAmount as dA,Typography as vy}from"@rango-dev/ui";import Ce from"react";import{Link as mA,useNavigate as fA}from"react-router-dom";var Cy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Ty="/profile";function Yc(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:f,diagnosisUrl:h}=t,g=fA(),{showProfileBanner:m}=te();return Ce.createElement(J,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(Qe.SWAP_BOX_ID)||document.body},n==="success"?Ce.createElement(ky,{type:"success",title:Br.t("Swap Successful")},Ce.createElement(dA,{direction:"vertical",tooltipContainer:N(),id:"widget-swap-details-complete-modal-success-token-amount-container",type:"output",centerAlign:!0,price:{value:r,usdValue:a,realUsdValue:s,realValue:c},token:l,chain:p,percentageChange:u}),Ce.createElement(Wr,{size:12}),Ce.createElement(vy,{variant:"body",size:"medium",color:"neutral700",align:"center"},f)):Ce.createElement(ky,{type:"error",title:Br.t("Transaction Failed"),description:f}),Ce.createElement(Wr,{size:30}),n==="success"&&Ce.createElement(Ce.Fragment,null,m&&Ce.createElement(Ce.Fragment,null,Ce.createElement(mA,{to:Ty},Ce.createElement(yy,{src:Cy,alt:"Profile Banner"})),Ce.createElement(Wr,{size:30})),Ce.createElement(Xc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{g("../../")}},Br.t("Done"))),Ce.createElement(Wr,{size:12}),h&&Ce.createElement(Ce.Fragment,null,Ce.createElement(Xc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(h,"_blank")},Br.t("Diagnosis")),Ce.createElement(Wr,{size:12})),Ce.createElement(Xc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(vy,{variant:"title",size:"medium",color:"primary"},Br.t("See Details"))))}i(Yc,"SwapDetailsCompleteModal");import bA from"react";import{i18n as TA}from"@lingui/core";import{Alert as zy,IconButton as kA,LinkIcon as vA}from"@rango-dev/ui";import ho,{Fragment as wA}from"react";import{Alert as hA,ChevronDownIcon as yA,IconButton as SA}from"@rango-dev/ui";import Nn,{useState as CA}from"react";import{css as Lr,darkTheme as wy,styled as Dt,Typography as gA}from"@rango-dev/ui";var by=Dt(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${wy} &`]:{color:"$secondary500"}}}}}),xy=Dt("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Ey=Dt("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Iy=Dt("div",{padding:"$0 $20 $20 $20"}),M3=Dt("div",{display:"flex",flexDirection:"column",gap:"$10"}),Ay=Dt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),P3=Dt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),An=Lr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${wy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Ny=Lr({padding:"$5 0"}),Na=Lr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),By=Lr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Wy=Lr({width:"100%",padding:"0 $20 $10"}),Ly=Dt("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),My=Dt("div",{display:"flex",flexDirection:"column",gap:"$5"}),Ba=Dt(gA,{wordBreak:"break-word"});import{styled as Zc}from"@rango-dev/ui";var Py=Zc("div",{display:"flex",flexDirection:"column",gap:"$10"}),_y=Zc("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),Dy=Zc("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function $y(t){let{message:e}=t,[o,n]=CA(!1);return Nn.createElement(hA,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&Nn.createElement(SA,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},Nn.createElement(_y,{rotated:o},Nn.createElement(yA,{size:12,color:"gray"}))),footer:Nn.createElement(Dy,{open:o},Nn.createElement(Ba,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i($y,"FailedAlert");import{i18n as Fy}from"@lingui/core";import{Alert as Jc,Button as Oy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Rc}from"rango-types";import Mr from"react";function Uy(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Mr.createElement(Jc,{type:"warning",id:"widget-swap-details-change-network-alert",title:n.shortMessage,action:Mr.createElement(Oy,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Rc.WaitingForNetworkChange),e().catch(a=>{console.log(a)})}},Fy.t("Change"))}):r===Rc.WaitingForConnectingWallet?Mr.createElement(Jc,{type:"warning",title:n.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Mr.createElement(Oy,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Rc.WaitingForConnectingWallet)}},Fy.t("Connect"))}):Mr.createElement(Jc,{id:"widget-swap-details-short-alert",type:"warning",title:n.shortMessage})}i(Uy,"WarningAlert");function ep(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:a,hasAlreadyProceededToSign:s}=t,c=Xn(a),l=a.status==="waitingForApproval"&&!c,p=a.status==="running"&&!c,u=p&&!s||l&&!a.explorerUrl?.length;return ho.createElement(Py,null,a.explorerUrl?.map((f,h,g)=>{let m=h+f.url,d=h===g.length-1,y=(d&&p||l)&&!u,C=d&&a.status==="failed";return ho.createElement(wA,{key:m},ho.createElement(zy,{id:"widget-swap-details-tx-alert",type:d&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:TA.t("View transaction"),action:f.url&&ho.createElement(kA,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},ho.createElement(vA,{size:12}))}))}),u&&ho.createElement(zy,{id:"widget-swap-details-loading-alert",type:"loading",title:r.shortMessage}),a.status!=="failed"&&c&&ho.createElement(Uy,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),a.status==="failed"&&ho.createElement($y,{message:r}))}i(ep,"SwapDetailsAlerts");var Qy=2e3;var qy=i(({swap:t,blockchains:e,swappers:o,...n})=>{let r=t.hasAlreadyProceededToSign!==!1;return t.steps.map((a,s)=>{let c=s===0?t.inputAmount:t.steps[s-1].outputAmount||t.steps[s-1].expectedOutputAmountHumanReadable;return{from:{token:{displayName:a.fromSymbol,image:a.fromLogo??""},chain:{displayName:ft(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:_(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:ft(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:_(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Bn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:ft(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:ft(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Bn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:bA.createElement(ep,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Hy(t){if(Xn(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(Hy,"getStepState");function tp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=DA(),l=T().blockchains(),p=T().swappers(),{findToken:u}=T(),f=O.use.retry(),h=te.use.isActiveTab(),g=FA(),[m,d]=_A(Qy),y=$A(null),[C,S]=Xy(null),[k,v]=Xy(null),x=i(()=>{r(),S(null)},"onCancel"),I=Ae.use.getNotifications(),A=Ae.use.removeNotification(),E=I(),b=EA(e),w=b?.networkStatus;jy(()=>{E.find(ze=>ze.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(v(e.status),A(e.requestId)):k&&v(null))},[e.status,e.requestId]),jy(()=>{L?S(Wa.WaitingForNetworkChange):w===Wa.WaitingForConnectingWallet||w===Wa.NetworkChanged?S(w):S(null)},[w]);let B=Id(e),P=b?xA(e,b):null,$=b?IA(e,b):null,q=uy(e),R=Ad(e),K=i(be=>!!c(be)?.mobileWallet,"isMobileWallet"),L=w===Wa.WaitingForNetworkChange&&!!P&&!!$?.walletType&&(K($.walletType)||a($.walletType,P.network)),ae=L?s.bind(null,$.walletType,[{namespace:P.namespace,network:P.network}]):void 0,re=Ed(e,b,c),Q=qy({swap:e,switchNetwork:ae,showNetworkModal:w,setNetworkModal:S,message:re,blockchains:l,swappers:p}),ee=Q.length,[le,ue]=[e.steps[0],e.steps[ee-1]],se=ue.outputAmount||ue.expectedOutputAmountHumanReadable,Ze=e.steps.reduce((be,ze)=>be+parseFloat(ze.feeInUsd||""),0),H=e.steps.find(be=>be.diagnosisUrl)?.diagnosisUrl,W=_(parseFloat(se||"0")*(ue.toUsdPrice||0),4,4),G=_(parseFloat(e.inputAmount)*(le.fromUsdPrice||0),4,4),j=se?new Ky(se).multipliedBy(ue.toUsdPrice||0).toString():"",X=new Ky(e.inputAmount).multipliedBy(le.fromUsdPrice||0).toString(),fe=zt(G,W),Ue=re.detailedMessage.content||re.shortMessage,Je=e.status==="success"?mt.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:_(se,6,6),token:Q[ee-1].to.token.displayName,conciseAddress:Go(e.wallets[Q[ee-1].to.chain.displayName]?.address||""),chain:Q[ee-1].to.chain.displayName}}):Z.createElement(My,null,Z.createElement(Oo,{variant:"body",size:"medium",color:"neutral700",align:"center"},Ue?"":mt.t("Transaction was not sent."),B?`${mt.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:B.outputAmount,symbol:B.symbol,blockchain:B.blockchain}})}`:""),Ue&&Z.createElement(Ba,{align:"center",variant:"body",size:"medium",color:"neutral700"},Z.createElement("b",null,"Reason:")," ",Ue));return Z.createElement(ie,{header:{title:mt.t("Swap Details"),onCancel:e.status==="running"?()=>S("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(ro,null,Z.createElement(Gy,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>S("delete")},Z.createElement(Oo,{size:"medium",variant:"label",color:"error"},mt.t("Delete"))))},footer:R&&!k&&Z.createElement(Gy,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let be=gi(e,l,u);f(be),setTimeout(()=>{g("../../")},0)}},mt.t("Try again"))},Z.createElement(by,{compact:!0,ref:y,id:"widget-swap-details-container"},Z.createElement(Ey,{className:An()},Z.createElement(Oo,{variant:"label",size:"large",color:"neutral700"},`${mt.t("Request ID")}`),Z.createElement("div",{className:Na()},Z.createElement(Oo,{variant:"label",size:"small",color:"neutral700"},o),Z.createElement(Vy,{container:N(),content:m?mt.t("Copied To Clipboard"):mt.t("Copy Request ID"),open:m||void 0,side:"bottom",alignOffset:-16,align:"end"},Z.createElement(WA,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:d.bind(null,o||"")},m?Z.createElement(BA,{size:16,color:"secondary"}):Z.createElement(AA,{size:16,color:"gray"}))),Z.createElement(Ly,{target:"_blank",href:`${Ip}/swap/${o}`},Z.createElement(Vy,{container:N(),content:mt.t("View on Rango Explorer"),side:"bottom"},Z.createElement(MA,{size:20}))))),Z.createElement("div",{className:An()},Z.createElement(Oo,{variant:"label",size:"large",color:"neutral700"},e.finishTime?mt.t("Finished at"):mt.t("Created at")),Z.createElement(Oo,{variant:"label",size:"small",color:"neutral700"},q)),Z.createElement("div",{className:By()},Z.createElement(LA,{fee:_(String(Ze),2,2),time:Ln(Vr(e.steps)),steps:ee}),Z.createElement(sr,{from:{price:{value:_(e.inputAmount,6,6),usdValue:G,realUsdValue:X,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:_(se,6,6),usdValue:W,realUsdValue:j,realValue:se||""},token:{displayName:Q[ee-1].to.token.displayName,image:Q[ee-1].to.token.image},chain:{image:Q[ee-1].to.chain.image,displayName:Q[ee-1].to.chain.displayName}},percentageChange:_(fe,2,2),warningLevel:Qt(fe??0)})),Z.createElement("div",{className:Wy()},Z.createElement(Oo,{variant:"title",size:"small"},mt.t("Swaps steps"))),Z.createElement(NA,{size:8}),Z.createElement(Iy,null,Q.map((be,ze)=>{let Rt=ze,yo=Hy(e.steps[ze]),wS=yo==="error"||yo==="in-progress"||yo==="warning"||yo==="completed"&&ze===Q.length-1;return Z.createElement(PA,{className:"widget-swap-details-step-item-container",key:Rt,step:be,type:"swap-progress",ref:y,state:yo,hasSeparator:ze!==0,tabIndex:Rt,isFocused:wS,tooltipContainer:N()})}))),Z.createElement(jc,{state:C,onClose:()=>S(null),onCancel:x,onDelete:n,message:re.detailedMessage.content,swap:e,walletButtonDisabled:!h}),Z.createElement(Yc,{open:!!k,diagnosisUrl:H,onClose:()=>v(null),status:e.status==="success"?"success":"failed",priceValue:_(se,6,6),usdValue:W,realUsdValue:j,realValue:se||"",percentageChange:_(fe,2,2),token:{displayName:Q[ee-1].to.token.displayName,image:Q[ee-1].to.token.image},chain:{image:Q[ee-1].to.chain.image},description:Je}))}i(tp,"SwapDetails");import{i18n as Ma}from"@lingui/core";import{Divider as Jy,NotFound as qA,Skeleton as _r,Typography as Pa}from"@rango-dev/ui";import Ie from"react";import{i18n as OA}from"@lingui/core";import{Divider as UA,Skeleton as zA,Typography as QA}from"@rango-dev/ui";import Ee from"react";import{css as At,styled as op}from"@rango-dev/ui";var Yy=op("div",{width:"100%",height:"100%",padding:"$10 $20"}),Pr=op("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),La=op("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),VX=At({display:"flex",justifyContent:"space-between",alignItems:"center"}),KX=At({display:"flex",justifyContent:"space-between",alignItems:"center"}),jX=At({paddingTop:"$15",display:"flex"}),XX=At({padding:"$15 $0"}),YX=At({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),ZX=At({paddingBottom:"$10"}),JX=At({display:"flex",justifyContent:"start",alignItems:"center"}),RX=At({paddingTop:"$5",display:"flex",alignItems:"center"}),eY=At({display:"flex",alignItems:"center"}),tY=At({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),Zy=At({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function np(){return Ee.createElement(Yy,null,Ee.createElement(cr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(QA,{variant:"title",size:"small"},OA.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1}),Ee.createElement("div",{className:Zy()},Ee.createElement(UA,{direction:"horizontal",size:20}),Ee.createElement(zA,{height:22,variant:"rectangular"}))),Ee.createElement(La,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1})),Ee.createElement(La,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1})),Ee.createElement(La,null),Ee.createElement(Pr,null,Ee.createElement(Pt,{separator:!1}))))}i(np,"LoadingSwapDetails");function Ry(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(ie,{header:{title:Ma.t("Swap Details"),suffix:Ie.createElement(ro,null)}},o&&Ie.createElement(xy,null,Ie.createElement("div",{className:An()},Ie.createElement(Pa,{variant:"label",size:"large",color:"neutral700"},`${Ma.t("Request ID")}`),Ie.createElement("div",{className:Na()},Ie.createElement(Pa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(Jy,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}),Ie.createElement(Jy,{direction:"horizontal",size:4}),Ie.createElement(_r,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:An()},Ie.createElement(Pa,{className:Ny(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"})),Ie.createElement(Pa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(_r,{width:60,height:10,variant:"rounded"}))),Ie.createElement(np,null)),!o&&Ie.createElement(Ay,null,Ie.createElement(qA,{title:Ma.t("Not found"),description:Ma.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(Ry,"SwapDetailsPlaceholder");function eS(){let{manager:t,state:e}=VA(),o=!e.loadedFromPersistor,n=St(t),{requestId:r}=jA(),a=Ge(),{fetchStatus:s}=T();if(!r)return rp.createElement(KA,{containerStyles:{margin:"20px"},type:"error",title:HA.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:h})=>h.requestId===r):void 0,p=i(()=>{if(l?.id){let h=t?.get(l.id);h&&GA(h)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(h){console.log(h)}},"onDelete"),f=l?.swap;return!f||c?rp.createElement(Ry,{requestId:r,showSkeleton:c}):rp.createElement(tp,{swap:f,requestId:r,onCancel:p,onDelete:u})}i(eS,"SwapDetailsPage");import{i18n as tS}from"@lingui/core";import{Divider as XA,getCategoriesCount as YA,SelectableCategoryList as ZA,styled as nS,Typography as JA,Wallet as RA,WalletState as e0}from"@rango-dev/ui";import{useWallets as t0}from"@rango-dev/wallets-react";import $t,{useState as oS}from"react";var o0=nS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),n0=nS(ce,{textAlign:"center"});function rS(){let{fetchStatus:t}=T(),[e,o]=oS("ALL"),n=T().blockchains(),{config:r}=T(),{state:a}=t0(),[s,c]=oS(),l=te.use.isActiveTab(),{list:p}=Tt(),u=ou(p,n),h=YA(u)!==1,g=nu(p,e),m=i(d=>{$p(p,r.multiWallets)||c(d)},"handleWalletItemClick");return $t.createElement(ie,{header:{title:tS.t("Connect Wallets")}},$t.createElement(n0,null,h&&$t.createElement($t.Fragment,null,$t.createElement(ZA,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),$t.createElement(XA,{size:24})),$t.createElement(JA,{variant:"title",size:"xmedium",align:"center"},tS.t("Choose a wallet to connect.")),$t.createElement(o0,null,g.map((d,y)=>{let S=a(d.type).namespaces,k=`wallet-${y}-${d.type}`,v=Xa(d,S);return $t.createElement(RA,{key:k,...d,state:v?e0.PARTIALLY_CONNECTED:d.state,container:N(),onClick:()=>m(d),isLoading:t==="loading",disabled:!l})}),$t.createElement(xo,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(rS,"WalletsPage");function iS(){return Ld(),Ms(),r0([{path:F.home,element:Oe.createElement(Nh,null)},{path:F.routes,element:Oe.createElement(Ph,null)},{path:F.fromSwap,children:[{index:!0,element:Oe.createElement(Ta,{type:"source"})},{path:F.blockchains,element:Oe.createElement(ha,{type:"source"})}]},{path:F.toSwap,children:[{index:!0,element:Oe.createElement(Ta,{type:"destination"})},{path:F.blockchains,element:Oe.createElement(ha,{type:"destination"})}]},{path:F.settings,children:[{index:!0,element:Oe.createElement(cy,null)},{path:F.languages,element:Oe.createElement(Wh,null)},{path:F.exchanges,element:Oe.createElement(Bc,{sourceType:"Exchanges"})},{path:F.bridges,element:Oe.createElement(Bc,{sourceType:"Bridges"})},{path:F.customTokens,children:[{index:!0,element:Oe.createElement(Wg,null)},{path:F.addCustomTokens,children:[{index:!0,element:Oe.createElement(Em,null)},{path:F.blockchains,element:Oe.createElement(ha,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:F.swaps,children:[{index:!0,element:Oe.createElement(Zg,null)},{path:F.swapDetails,element:Oe.createElement(eS,null)}]},{path:F.wallets,element:Oe.createElement(rS,null)},{path:F.confirmSwap,element:Oe.createElement(yg,null)}])}i(iS,"AppRoutes");import{useQueueManager as m0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as f0}from"rango-sdk";import{useContext as g0,useEffect as dS,useState as mS}from"react";import{globalCss as i0}from"@rango-dev/ui";var aS=i(()=>i0({"@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 sS(){let{setWatermark:t,setShowProfileBanner:e}=te();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Ot("BASE_URL")}/meta/dapp/config?apiKey=${Ot("API_KEY")}`);if(!n.ok)throw new Error(`Request failed with status: ${n.status} `);let r=await n.json();t(r.config.watermark),e(r.config.banners.profile)},"fetchApiConfig")}}i(sS,"useFetchApiConfig");import{useWallets as a0}from"@rango-dev/wallets-react";import{useEffect as s0,useRef as l0}from"react";function lS(){let{connect:t,state:e}=a0(),o=l0({}),{fetchStatus:n}=T(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);s0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(lS,"useForceAutoConnect");import{isApprovalTX as c0,RouteEventType as cS,StepEventType as pS,StepExecutionEventStatus as p0,WidgetEvents as _a}from"@rango-dev/queue-manager-rango-preset";import{useEffect as uS}from"react";function ip(){let t=Ae.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=T();uS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===pS.TX_EXECUTION&&s.status===p0.TX_SENT&&!c0(c)||s.type===pS.SUCCEEDED){let u=[],f=l.wallets[c?.fromBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.fromBlockchain);h&&u.push(h)}if(c?.fromBlockchain!==c?.toBlockchain){let h=l.wallets[c?.toBlockchain];if(h){let g=e.find(m=>m.address?.toLocaleLowerCase()===h.address?.toLocaleLowerCase()&&m.walletType===h.walletType&&m.chain===c?.toBlockchain);g&&u.push(g)}}if(u.length>0){let h=n(),m=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>h.some(y=>y.blockchain===d.blockchain&&y.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&y.symbol?.toLocaleLowerCase()===d.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:m,shouldFetchCustomTokens:m.length>0})}}t(s,l)},"handleStepEvent");return Te.on(_a.StepEvent,r),()=>Te.off(_a.StepEvent,r)},[Te,e]),uS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===cS.FAILED||s.type===cS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Te.on(_a.RouteEvent,r),()=>Te.off(_a.RouteEvent,r)},[Te])}i(ip,"useSubscribeToWidgetEvents");import{useManager as u0}from"@rango-dev/queue-manager-react";import{useEffect as d0}from"react";function ap(){let{isSynced:t,syncNotifications:e}=Ae(),{manager:o,state:n}=u0();d0(()=>{Ae.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(St(o))},[Ae.persist.hasHydrated(),n.loadedFromPersistor,t])}i(ap,"useSyncNotifications");function sp(){lS(),aS(),ip(),ap();let t=T().blockchains(),{canSwitchNetworkTo:e}=Fi(),[o,n]=mS(null),[r,a]=mS(),s=g0(di),c=t.filter(f0),{fetchApiConfig:l}=sS();dS(()=>()=>Wd(),[]),m0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),dS(()=>(wo.init(),Ae.persist.hasHydrated()||Ae.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let f={...u};return p.network&&(f.network=p.network),p.accounts&&(f.accounts=p.accounts),f})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),wo.destroy),[])}i(sp,"useBootstrap");import{styled as h0}from"@rango-dev/ui";var fS=h0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function Da(){sp();let{config:t}=T(),{activeTheme:e}=no(t?.theme||{}),{activeLanguage:o}=uo();return lp.createElement(y0,{language:o},lp.createElement(fS,{id:"swap-container",className:e()},lp.createElement(iS,null)))}i(Da,"Main");import{setSolanaSignerConfig as $0}from"@rango-dev/signer-solana";import pp,{useEffect as TS,useMemo as F0}from"react";import{useState as S0}from"react";var C0=i(()=>{let[t,e]=S0(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=Dp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),gS=C0;import{checkWaitingForNetworkChange as T0,makeQueueDefinition as k0}from"@rango-dev/queue-manager-rango-preset";import{Provider as v0}from"@rango-dev/queue-manager-react";import{useWallets as w0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as b0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as x0}from"rango-types";import E0,{useMemo as I0}from"react";function A0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=w0(),c=I0(()=>k0({API_KEY:t.apiKey||Ot("API_KEY"),BASE_URL:Ot("BASE_URL"),emitter:{emit:Te.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=T(),u=l(),f={blockchains:p.map(v=>({accounts:[v],name:v.chain}))},h=i(async(v,x)=>a(v,x.network)?await r(v,[x]):void 0,"switchNetwork"),g=i(v=>!!s(v).mobileWallet,"isMobileWallet"),m=u.filter(v=>v.enabled).reduce((v,x)=>(v[x.name]=x,v),{}),d=u.filter(x0),y=i(v=>{let{supportedChains:x}=s(v);return _n(x)},"getSupportedChainNames"),C=e(),S={meta:{blockchains:m,evmBasedChains:d,evmNetworkChainInfo:b0(d),getSupportedChainNames:y},getSigners:o,wallets:f,providers:C,switchNetwork:h,canSwitchNetworkTo:a,state:n,isMobileWallet:g},k=te.use.isActiveTab();return E0.createElement(v0,{queuesDefs:[c],context:S,onPersistedDataLoaded:v=>{T0(v)},isPaused:!k},t.children)}i(A0,"QueueManager");var hS=A0;import{useManager as M0}from"@rango-dev/queue-manager-react";import P0,{createContext as _0,useContext as D0}from"react";function yS(){let{findToken:t}=T(),e=T().blockchains(),o=T().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=O();return i(p=>{let{fromBlockchain:u,fromToken:f,toBlockchain:h,toToken:g,requestAmount:m}=p,d={blockchains:e,tokens:o};if(u!==void 0){let y=e.find(C=>C.name===u)??null;n(y)}if(f!==void 0){let y=f?t(f)??null:null;r({meta:d,token:y})}if(h!==void 0){let y=e.find(C=>C.name===h)??null;a(y)}if(g!==void 0){let y=g?t(g)??null:null;s({meta:d,token:y})}m!==void 0&&c(m)},"updateQuoteInputs")}i(yS,"useUpdateQuoteInputs");import{cancelSwap as N0,getCurrentNamespaceOfOrNull as B0,getCurrentStep as W0,getRelatedWalletOrNull as L0}from"@rango-dev/queue-manager-rango-preset";var $a=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return St(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=gi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&N0(o)}getCurrentStepInfo(e){let o=W0(e);return{step:o,wallet:o?L0(e,o):null,network:o?B0(e,o)?.network:null}}};var SS=_0(void 0);function cp(t){let{manager:e}=M0(),o=te.use.isActiveTab(),n=O.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=T(),l=new $a(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=T(),u=Yp(a()),f=T().blockchains(),h=T().tokens(),g=T().swappers(),m=T().fetchStatus,d=uo().resetLanguage,y=Ae().getNotifications(),C=Ae().clearNotifications,S=yS(),{fromBlockchain:k,toBlockchain:v,fromToken:x,toToken:I,inputAmount:A}=O(),E={isActiveTab:o,setCurrentTabAsActive:wo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async b=>c(b)},meta:{blockchains:f,tokens:h,swappers:g,loadingStatus:m,findToken:r},resetLanguage:d,notifications:{list:y,clearAll:C},quote:{quoteInputs:{fromBlockchain:k?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:v?.name??null,toToken:I?{symbol:I.symbol,blockchain:I.blockchain,address:I.address}:null,requestAmount:A},updateQuoteInputs:S}};return P0.createElement(SS.Provider,{value:E},t.children)}i(cp,"WidgetInfo");function CS(){let t=D0(SS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(CS,"useWidget");function Fa(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=gS();return TS(()=>{n&&r(n)},[n]),F0(()=>{ru({API_KEY:o?.apiKey||zr,BASE_URL:o?.apiUrl||Ep})},[o.apiKey,o.apiUrl]),TS(()=>{t.config?.signers?.customSolanaRPC&&$0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),pp.createElement(mi,{config:o,onUpdateState:e},pp.createElement(hS,{apiKey:o.apiKey},pp.createElement(cp,null,t.children)))}i(Fa,"WidgetProvider");function kS(t){let e=t.config?.externalWallets;return Oa.createElement(Ru,null,e?Oa.createElement(Da,null):Oa.createElement(Fa,{config:t.config??Or},Oa.createElement(Da,null)))}i(kS,"Widget");function vS(){let{on:t,off:e}=Te;return{on:t,off:e}}i(vS,"useWidgetEvents");var lJ={DerivationPath:Hn,Namespaces:zn,Detached:qn,isOnDerivationPath:Vn,isOnNamespace:Gn,isOnDetached:Kn};export{PZ as EventSeverity,Ko as MainEvents,HZ as Networks,KZ as PendingSwapNetworkStatus,es as QuoteEventTypes,_Z as RouteEventType,qa as SUPPORTED_FONTS,lJ as StatefulConnect,DZ as StepEventType,$Z as StepExecutionBlockedEventStatus,FZ as StepExecutionEventStatus,Qe as UI_ID,os as UiEventTypes,ts as WalletEventTypes,QZ as WalletEvents,GZ as WalletTypes,kS as Widget,Ko as WidgetEvents,Fa as WidgetProvider,mi as WidgetWallets,js as customizedThemeTokens,UZ as readAccountAddress,Uo as useStatefulConnect,Tt as useWalletList,Fi as useWallets,CS as useWidget,vS as useWidgetEvents,EC as widgetEventEmitter};
3
3
  //# sourceMappingURL=index.js.map