@rango-dev/widget-embedded 0.44.2-next.0 → 0.44.2-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/useStatefulConnect/useStatefulConnect.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/dist/pages/Home.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +2 -2
- package/src/hooks/useStatefulConnect/useStatefulConnect.ts +6 -11
- package/src/pages/Home.tsx +7 -1
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 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 OS}from"@rango-dev/ui";import{useWallets as US}from"@rango-dev/wallets-react";import{useReducer as zS}from"react";import{BlockchainCategories as LS,WalletState as it}from"@rango-dev/ui";import{legacyReadAccountAddress as MS}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as PS,getCosmosExperimentalChainInfo as _S,isEvmAddress as DS,KEPLR_COMPATIBLE_WALLETS as fN,Networks as Lp}from"@rango-dev/wallets-shared";import zo from"bignumber.js";import{isCosmosBlockchain as $S}from"rango-types";import xS from"bignumber.js";var de=new xS(0);import{WalletTypes as ES}from"@rango-dev/wallets-shared";var So="~",pp=[ES.LEAP];import{BlockchainCategories as za,WalletState as WS}from"@rango-dev/ui";import{TransactionType as Fr}from"rango-sdk";import{UI_ID as IS}from"@rango-dev/ui";var $r="c6381a79-2817-4602-83bf-6a641a409e32",up="https://api.rango.exchange",dp="https://explorer.rango.exchange",Qe={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...IS};var mp="Roboto",Ua=[{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 Uo(t){return Array.from(new Set(t))}i(Uo,"removeDuplicateFrom");function Or(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Or,"debounce");function rt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(rt,"containsText");function hp(t,e){return t.toLowerCase()===e.toLowerCase()}i(hp,"exactText");function yp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(yp,"startWithText");var N=i(()=>document.getElementById(Qe.SWAP_BOX_ID),"getContainer"),Co=i(()=>document.getElementById(Qe.EXPANDED_BOX_ID),"getExpanded");function Sp(t,e,o){let n=!!e&&hp(e,t),r=!!o&&hp(o,t);return n!==r?n?-1:1:0}i(Sp,"compareExactMatchText");function Qa(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(Qa,"compareContainsText");function qa(t,e,o){let n=!!e&&yp(e,t),r=!!o&&yp(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(qa,"compareStartWithText");function Cp(t,e,o){if(!o)return 0;let n=Sp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Sp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=qa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=Qa(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=qa(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=Qa(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=qa(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=Qa(o,t.address,e.address);if(r!==0)return r}return 0}i(Cp,"compareWithSearchFor");var Ur=i((t,e)=>{switch(e){case za.ALL:return!0;case za.UTXO:return t===Fr.TRANSFER;case za.OTHER:return t!==Fr.TRANSFER&&t!==Fr.COSMOS&&t!==Fr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Tp=i(t=>Ua.find(o=>o.value===t)?.url,"getFontUrlByName");function kp(t,e){let o=!!t.find(n=>n.state===WS.CONNECTED);return e===!1&&o}i(kp,"isSingleWalletActive");function wp(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(wp,"memoizedResult");import{BigNumber as Bp}from"bignumber.js";function vp(t){return t.replace(/^0+(?=\d)/g,"")}i(vp,"removeLeadingZeros");function bp(t){return t.replace(/^\.(\d+)/,"0.$1")}i(bp,"ensureLeadingZeroForDecimal");function xp(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(xp,"formatThousandsWithCommas");function Ep(t){return t.replace(/\s+/g,"-")}i(Ep,"replaceSpacesWithDash");function Ip(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(Ip,"stripTrailingZeros");function zr(t){return/^0+(?:\.0+)?$/.test(t)}i(zr,"isZeroValue");function Ap(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(Ap,"isValidCurrencyFormat");function Np(t){return/\d+$/.test(t)}i(Np,"isColorKeyOverridden");var Bn=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 Bp(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new Bp(n.toFixed(s,r)).eq(n)){a=s;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,4))),r);for(let s=e||4;s<17;s++)if(n.gte(Math.pow(10,-s)))return n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,s))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(a,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Qr=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"),Wn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Wp(t){return zr(t)?"0":Ip(t)}i(Wp,"sanitizeInputAmount");function Ln(t){return t.connected?it.CONNECTED:t.connecting?it.CONNECTING:t.installed?it.DISCONNECTED:it.NOT_INSTALLED}i(Ln,"mapStatusToWalletState");function Mp(t,e,o,n){return o.filter(r=>!pp.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:g,isHub:h}=e(r),m=Uo(u.map(y=>y.type)),d=Ln(t(r));return{title:a,image:s,link:PS(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:m,needsDerivationPath:f,properties:g,isHub:h}})}i(Mp,"mapWalletTypesToWalletInfo");function Mn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Mn,"walletAndSupportedChainsNames");function Ga(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(g=>g.chain===l)){let g={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(g)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=MS(l),f=c.length>0,g=c.includes(u),h=u===Lp.Unknown;if(f&&!g&&!h)return;let d=u===Lp.Unknown&&DS(p);if(h&&!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(Ga,"prepareAccountsForWalletStore");function To(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,g=p.to.blockchain,h=a===o.swaps.length-1,m=u===l.length-1;(!h&&!m||h&&c!==f||e==="all")&&n.add(f),e==="all"&&n.add(g)})}e==="all"&&n.add(c)}),Array.from(n)}i(To,"getQuoteChains");function Pn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Pn,"isAccountAndWalletMatched");var Pp=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?Ha(n.usdValue,n.decimals):de.toFixed();return o.plus(r)},new zo(de));return FS(e.toString())},"calculateWalletUsdValue");function FS(t){let e=t.toString().split(".");return e[0]=xp(e[0]),e.join(".")}i(FS,"numberWithThousandSeparator");var Gr=i((t,e)=>{let o=_S(Object.entries(t).map(([,n])=>n).filter($S));return o&&o[e]?.experimental},"isExperimentalChain");function Ha(t,e){return new zo(t).shiftedBy(-e).toFixed()}i(Ha,"representAmountInNumber");function Vr(t){if(!t)return null;let e=Ha(t.amount,t.decimals),o=t.usdValue?Ha(t.usdValue,t.decimals):null,n=_(e,8,8),r=o?_(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(Vr,"formatBalance");function _p(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new zo(t.usdValue).shiftedBy(-t.decimals):de,n=e&&e.usdValue?new zo(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 zo(t.amount).shiftedBy(-t.decimals):de,n=e&&e.amount?new zo(e.amount).shiftedBy(-e.decimals):de;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(_p,"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 Dp(t,e){return t.map(o=>({isPartiallyConnected:_n(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(Dp,"sortWalletsBasedOnConnectionState");function Qo(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(Qo,"getConciseAddress");function $p({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i($p,"getAddress");var Fp=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Op(t){return t.map(e=>e.state).join("-")}i(Op,"hashWalletsState");function Up(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(Up,"filterBlockchainsByWalletTypes");function zp(t,e){return e===LS.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(Ur(n,e))return!0;return!1})}i(zp,"filterWalletsByCategory");function _n(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(_n,"checkIsWalletPartiallyConnected");function Qp(t){return!!t.derivationPath}i(Qp,"isStateOnDerivationPathStep");function qp(t){return!!t.namespace}i(qp,"isStateOnNamespace");var Kr={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Hp(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 Kr;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Kr;default:throw new Error("Action hasn't been defined.")}}i(Hp,"reducer");function qo(){let{state:t,disconnect:e,connect:o}=US(),[n,r]=zS(Hp,Kr),a=i(async(u,f,g)=>{r({type:"reset"});try{let h=f?.map(m=>({...m,network:void 0}));return await o(u,h),{status:"connected"}}catch(h){let m=h?.message?`Error: ${h.message}`:"An unknown error happened during connecting wallet.";throw new Error(m,{cause:h})}},"runConnect"),s=i(async(u,f)=>{if(u.state===OS.DISCONNECTED){let h=!!u.isHub,m=h?u.properties?.find(y=>y.name==="namespaces")?.value:u.needsNamespace,d=h?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 m=t(u.type).namespaces;if(_n(u,m))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 g=!!u.isHub,h=g?u.properties?.find(S=>S.name==="namespaces")?.value:u.needsNamespace,m=g?u.properties?.find(S=>S.name==="derivationPath")?.value:u.needsDerivationPath,d=h?.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(!qp(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(!Qp(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,h=[{namespace:n.derivationPath.namespace,derivationPath:u}];return await a(f,h)},"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(qo,"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 Un}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 QS}from"@rango-dev/provider-all";var Va=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()}},Ho=new Va;import{defineVersions as Vp,pickVersion as Kp,Provider as Ka}from"@rango-dev/wallets-core";function jp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=Xp(a);return s instanceof Ka?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 Ka?o.push(Vp().version("1.0.0",n).build()):o.push(Vp().version("0.0.0",n).build())}),o}return t}i(jp,"matchAndGenerateProviders");function Xp(t){try{return Kp(t,"1.0.0")[1]}catch{return Kp(t,"0.0.0")[1]}}i(Xp,"pickProviderVersionWithFallbackToLegacy");function Yp(t){return t.map(o=>Xp(o)).map(o=>o instanceof Ka?o.id:o.config.type)}i(Yp,"configWalletsToWalletName");function jr(t,e){return e.find(o=>o.name===t)?.displayName}i(jr,"getBlockchainDisplayNameFor");function ft(t,e){return e.find(o=>o.name===t)?.shortName}i(ft,"getBlockchainShortNameFor");function Zp(t,e){return e.find(o=>o.name===t)?.logo}i(Zp,"getBlockchainImage");function Dn(t,e){return e.find(o=>o.id===t)?.title}i(Dn,"getSwapperDisplayName");function ko(t,e){return e.find(o=>o.name===t)??null}i(ko,"findBlockchain");function ja(t,e){if(!e||!t)return!1;for(let o of e.feeAssets)if(t?.blockchain===o?.blockchain&&t?.symbol===o?.symbol&&t?.address===o?.address)return!0;return!1}i(ja,"isTokenNative");function gt(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(gt,"createTokenHash");function Go(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Go,"isValidTokenAddress");function $n(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($n,"matchTokensFromConfigWithMeta");function Xr(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(Xr,"getSupportedBlockchainsFromConfig");function Rp(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Rp,"makeProvidersOptionsFromConfig");var Yr={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"}},qS={clientUrl:void 0},HS={liquiditySources:void 0};function Jp(t){let e=Rp(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 QS(o).map(a=>a())}i(Jp,"generateProviders");var eu=i((t,e,o)=>{let n=Jp({...Yr,...t});return{config:{...Yr,...t},iframe:qS,campaignMode:HS,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=$n({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=$n({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Ho.set("supportedSourceTokens",l),Ho.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=Jp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Rp(a);return jp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as tu}from"rango-types";var ou=[tu.EVM,tu.SOLANA],Zr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as GS}from"rango-sdk";var Xa={API_KEY:$r};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 Jr,at=i(()=>Jr||(Jr=new GS(Ot("API_KEY"),Ot("BASE_URL")),Jr),"httpService");import{i18n as cu}from"@lingui/core";var su=[.5,1,3],Rr=1,Vo=5,Fn=30,ei=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 ti(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Uo(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<=Fn?{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=Xr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>ou.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=Ho.get(u);f?.length||(f=$n({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Ho.set(u,f)),f=uu(f,s,a.features);let g=e().blockchains({type:o.type});return f.filter(m=>o.blockchain&&m.blockchain!==o.blockchain||!g.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=_p(I,A);if(E!==0)return E}let S=l.get(m.blockchain),k=l.get(d.blockchain),w=ja(m,S),x=ja(d,k);if(w!==x)return w?-1:1;if(m.isPopular!==d.isPopular)return m.isPopular?-1:1;if(o.searchFor){let I=Cp(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(h=>h.enabled),f=new Set;r.tokens.forEach(h=>{f.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,m)=>h.sort-m.sort).forEach(h=>{h.enabled&&f.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let m=gt(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(m,h),c[h.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 wC,Ukrainian as vC,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:wC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:vC},{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=Uo(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=Xr({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}${So}${t.address}${So}${t.symbol}`}i(Ut,"createAssetKey");function Su(t,e){return`${Ut(e)}${So}${t}`}i(Su,"createBalanceKey");function On(t){let[e,o,n]=t.split(So);return{address:o==="null"?null:o,blockchain:e,symbol:n}}i(On,"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=On(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=On(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=On(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=wp(),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=>Pn(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>Pn(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=>Pn(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n)=>{let r=e().connectedWallets,a=o.filter(s=>!r.some(c=>Pn(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:g,blockchain:h})=>({symbol:f,address:g,blockchain:h})),walletAddress:l});if(u){let f=e()._balances,g=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let m={blockChain:h.asset.blockchain,balances:[h],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};ns(d,m,f);let y=rs(m,e);g=is(g,y),f={...f,...y}}),t(h=>({_balances:{...h._balances,...f},_aggregatedBalances:g}))}}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 g={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};ns(g,f,l);let{_balances:h,_aggregatedBalances:m}=as(g,r,{chains:[f.blockChain]});if(p=m,l=h,!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(g=>g.failed).map(g=>({chain:g.blockChain,walletType:r,address:g.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(So);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=On(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),...eu(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 wu(t){let e=DC();return e.current||(e.current=Tu(t.config)),LC.createElement(ku.Provider,{value:e.current},t.children)}i(wu,"AppStoreProvider");function Tt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=T(),{state:r,getWalletInfo:a}=$C(),s=T().blockchains(),{handleDisconnect:c}=qo(),l=Yp(n()),p=Mp(r,a,l,e);p=FC()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=Dp(p,r),f=i(d=>!o.find(y=>y.walletType===d&&y.chain===e),"isExperimentalChainNotAdded"),g=UC(()=>{let d=p?.filter(y=>y.state===ls.CONNECTING)||[];for(let y of d)c(y.type)},[Op(p)]);zC(()=>()=>{g()},[]);let h=i(d=>{let y=d.find(S=>S.type===Un.DEFAULT);return!y||y.state===ls.NOT_INSTALLED?!1:d.filter(S=>S.state!=ls.NOT_INSTALLED&&![Un.DEFAULT,Un.WALLET_CONNECT_2,Un.LEDGER].includes(S.type)&&a(S.type).supportedChains.filter(k=>k.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),m=i((d,y,C)=>Gr(C,y)&&f(d)&&!OC.includes(d)||d==Un.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(d=>!m(d.type,e??"",s)),terminateConnectingWallets:g}}i(Tt,"useWalletList");import{Modal as GC}from"@rango-dev/ui";import VC from"react";import{create as HC}from"zustand";var vu="rango-widget";var zn=class{constructor(e){this.state="not-initiated";this.events={};this.init=()=>{this.initEvents(),this.tryClaim()};this.forceClaim=()=>{if(!this.isClaimed()){let e={name:"force-claim",candidateId:this.tabId};this.channel.postMessage(e),setTimeout(()=>{this.isClaimed()||this.claim()},300)}};this.isClaimed=()=>this.state==="claimed";this.destroy=()=>{this.channel.removeEventListener("message",this.handleMessageEvent),document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("resume",this.handleResume)};this.handleMessageEvent=e=>{let o=e.data.name;switch(o){case"ping":this.claimedByCurrentTab(e.data.pingAt);break;case"pong":this.alreadyClaimedByAnotherTab();break;case"force-claim":this.forceRelease(e.data.candidateId);break;case"force-release":this.tabId===e.data.candidateId&&this.claim();break;default:throw new Error(`${o} is not supported.`)}};this.handleVisibilityChange=async()=>{document.visibilityState==="visible"&&await this.tryClaim()};this.handleResume=async()=>{this.isClaimed()&&(await this.tryClaim(),this.isClaimed()||this.events.onRelease?.())};this.channel=new BroadcastChannel(vu),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})}}))),vo=new zn({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 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 cs=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 ps=3;function ii(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(ri,{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(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-ps))))}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 Qn(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"),g=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");g?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:h},g?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(Qn,"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,g]=_u(!1),m=l(o).namespaces?.get(n.value),d=m.accounts?.[0]?.split(":"),y=n.getSupportedChains(a);hT(()=>g(!1),[p]),yT(()=>{r&&C(o,n.value)},[]);let C=i(async(w,x)=>{try{await s(w,[{namespace:x,network:""}])}catch(I){u(I)}},"handleConnectNamespace"),S=i(async w=>{u(null),w.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"},Qo(d?.[d?.length-1])),!m.connected&&p&&ke.createElement(Au,{className:"widget-namespace-detached-item-error-toggle-btn",onClick:()=>g(w=>!w)},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 Hn(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(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(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(Hn,"Detached");import{i18n as sn}from"@lingui/core";import{Divider as Fu,Image as vT,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 ms(t){let e=t?TT[t].derivationPaths:null;return e?[...e,li]:[]}i(ms,"getDerivationPaths");import{Button as kT,styled as fs,Typography as wT}from"@rango-dev/ui";var $u=fs("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),gs=fs(wT,{paddingLeft:"$10"}),hs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},mM=fs(kT,{minHeight:"$40"});var Uu="0";function Gn(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=ms(o),f=i(({value:h})=>{let m=u?.find(d=>d.id===h);m&&(a===li.id&&Number.isNaN(Number(c))&&l(Uu),s(m.id))},"handleDerivationPathItemClick"),g=i(()=>{let h=u.find(m=>m.id===a);if(h)e(h.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(vT,{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(h=>({value:h.id,label:h.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:h=>l(h.target.value),style:hs})),ht.createElement(on,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:g,disabled:!u||!a||!c},sn.t("Confirm")))}i(Gn,"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 ci}from"@rango-dev/ui";var bM=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 Ss(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=LT();return Ln(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 pi from"react";function Ts(t){let{displayName:e,onConfirm:o,id:n}=t;return pi.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}})},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"},Cs.t("Confirm")))}i(Ts,"ExperimentalChain");function Gu(t,e){return t().status==="init"&&!!e}i(Gu,"isOnStatus");function Vn(t){return t().status==="namespace"}i(Vn,"isOnNamespace");function Kn(t){return t().status==="derivationPath"}i(Kn,"isOnDerivationPath");function jn(t){return t().status==="detached"}i(jn,"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:g}=qo(),h=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),g(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),S=i((k,w)=>{let x=k.status==="connected",I=["disconnected","disconnected-unhandled"].includes(k.status);x?(t.onConnect?.(),w||(e.current=setTimeout(y,FT))):I&&y()},"afterConnected");return DT(()=>{if(t.wallet){C();let k=!1,w=!0;i(()=>{setTimeout(()=>{w=!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,w)}).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})),Vn(f)&&to.createElement(Qn,{onConfirm:h,value:f().namespace}),Kn(f)&&to.createElement(Gn,{onConfirm:d,value:f().derivationPath}),jn(f)&&to.createElement(Hn,{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 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,w]=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=Ga(C,S,p,y.supportedChainNames,w.isContractWallet);I.length&&e(I,w.namespace)},"onAccountsEvent"),f=i((d,y,C,S,k)=>{if(y===cn.ACCOUNTS){let w=Mn(k.supportedBlockchains);C&&u([d,y,C,S,k],{supportedChainNames:w})}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"),g=i((d,y,C,S,k)=>{if(y===cn.ACCOUNTS){let w=Mn(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=Ga(d,x,p,w,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:w}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((d,y,C,S,k)=>{if(y===cn.CONNECTED&&C){let w={walletType:d,network:S.network??void 0,accounts:S.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(y===cn.NETWORK&&C){let w={walletType:d,network:C,accounts:S.accounts??void 0};c.current?c.current(w):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):g(d,y,C,S,k),h(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}=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 g=te.use.isActiveTab(),h=VT(()=>({onConnectWallet:m=>{p.current=m},onDisconnectWallet:m=>{u.current=m}}),[]);return ui.createElement(di.Provider,{value:h},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:!!g,configs:{wallets:s.wallets}},t.children))}i(KT,"Main");function mi(t){let{config:e,...o}=t;return ui.createElement(wu,{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 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 ki}from"react";import et from"bignumber.js";import{create as tk}from"zustand";import{subscribeWithSelector as ok}from"zustand/middleware";import{i18n as wt}from"@lingui/core";import{getRelatedWalletOrNull as ek,RouteEventType as f_}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 vs=["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 e_ 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=ko(a?a.toBlockchain:n.fromBlockchain,e),l=ko(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=Xn(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),g=Qt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:f,warningLevel:g}}}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: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"),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=vs.indexOf(o.value),a=vs.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=wt.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=wt.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=wt.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=wt.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 yi(t,e){return t.reduce((o,n)=>o.plus(Es(n,e)),de)}i(yi,"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 wd(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(wd,"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 vd(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:g,destination:h,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:g??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,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(S=>!s.includes(S)),swappersGroupsExclude:!1}}}i(vd,"createQuoteRequestBody");function bd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(bd,"getWalletsForNewSwap");function Xn(t){let e=t.requestAmount,o=t.swaps[0].from.usdPrice;if(!(!e||!o))return new He(e).multipliedBy(o)}i(Xn,"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=Xn(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=To({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=wt.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=wt.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=wt.t(" for input and network fee")),wt.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 Yn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Ci.NetworkChanged}i(Yn,"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,"")),Yn(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?wt.t("Connect {wallet}",{wallet:u}):r;break;case Ci.WaitingForQueue:r=r||wt.t("Waiting for other running tasks to be finished");break;case Ci.WaitingForNetworkChange:r=r||wt.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=To({filter:"all",quote:n}),c=To({filter:"required",quote:n}),l=s.every(f=>r.some(g=>g.chain===f)),p=c.every(f=>r.some(g=>g.chain===f)),u=o&&a?Go(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 Wn(o.inputAmount)?(e&&(n=e?.outputAmount?new et(e?.outputAmount):null,a=Xn(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=Wp(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;zr(e)||(o=vp(o),o=bp(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,g=T().blockchains(),{findToken:h}=T(),{setAffiliateRef:m,setAffiliatePercent:d,setAffiliateWallets:y}=T(),C=u?.from?.tokens,S=u?.from?.blockchains,k=u?.to?.tokens,w=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=g.find(P=>P.name===u?.from?.blockchain),v=u?.from?.token,B=v&&h(v);(b||!b&&A.current)&&n(b??null),B?a({token:B,meta:{blockchains:g}}):!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,w)&&o(null)},[k,w]),un(()=>{if(f==="success"){r();let b=g.find(P=>P.name===u?.to?.blockchain),v=u?.to?.token,B=v&&h(v);(b||!b&&E.current)&&o(b??null),B?e({token:B,meta:{blockchains:g}}):!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:g}=O(),h=T().fetchStatus,m=T().blockchains(),d=rk(),{updateIframe:y,updateCampaignMode:C}=T(),S=T().isInCampaignMode(),k=nk(),{findToken:w}=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"),v=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:v,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:v}=x();d&&h==="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:v??void 0,liquiditySources:S?k.current:void 0,...b})},[t.pathname,c,n,a,r,s,S,h]),Bs(()=>{if(!d)return;let A=x();if(!k.current&&A.liquiditySources&&(k.current=A.liquiditySources),A.fromAmount&&g(A.fromAmount),h==="success"){let E=m.find(P=>P.name===A.fromBlockchain),b=A.fromToken&&E?w(As(A.fromToken,E)):void 0,v=m.find(P=>P.name===A.toBlockchain),B=A.toToken&&v?w(As(A.toToken,v)):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:m}})),v&&(p(v),B&&f({token:B,meta:{blockchains:m}}))}},[h]),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 Iw,Button as Aw,darkTheme as Nw,Divider as cl,DoneIcon as Bw,styled as Ww,TextField as Lw,Typography as Mw}from"@rango-dev/ui";import Ve,{useState as Pw}from"react";import{useNavigate as _w,useSearchParams as Dw}from"react-router-dom";import{ChevronRightIcon as sk,Divider as $d,Image as lk,Typography as Fd}from"@rango-dev/ui";import vt 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 vt.createElement(_d,null,vt.createElement(Fd,{size:"large",variant:"label"},n),vt.createElement($d,{size:10}),vt.createElement(Pd,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},vt.createElement(Dd,null,r&&vt.createElement(vt.Fragment,null,vt.createElement(lk,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),vt.createElement($d,{size:4,direction:"horizontal"})),vt.createElement(Fd,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),vt.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 wi}from"@lingui/core";import{Divider as Io,ExternalLinkIcon as pk,Image as uk,Typography as mn}from"@rango-dev/ui";import we 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 we.createElement(Z,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},we.createElement(zd,null,we.createElement(uk,{src:n.image===""?Zr:n.image,size:45,type:"circular"}),we.createElement(Io,{size:4}),we.createElement(mn,{variant:"title",size:"medium"},n.symbol),we.createElement(mn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),we.createElement(Io,{size:4}),we.createElement(mn,{variant:"body",size:"medium"},c?we.createElement(Ds,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,we.createElement(pk,{size:12,color:"gray"})):we.createElement(Ds,null,n.address)),we.createElement(Io,{size:4}),n.coinSource&&we.createElement(mn,{className:"_coin-source",variant:"body",size:"xsmall"},wi.t("via")," ",we.createElement(mn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),we.createElement(Io,{size:"32"}),we.createElement(mn,{size:"medium",variant:"body",className:"_custom-token-description"},wi.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."))),we.createElement(Io,{size:40}),we.createElement(Io,{size:10}),we.createElement($s,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},wi.t("Import Anyway")),we.createElement(Io,{size:10}),we.createElement($s,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},wi.t("Learn More")))}i(Fs,"CustomTokenModal");function Zn(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,g]=Us(!1),[h,m]=Us(!1),[d,y]=Us(!1),C=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),S=i(()=>{n?.type!=="network-error"&&s?.(),g(!1)},"closeErrorModal"),k=i(()=>{y(!0),S()},"handleErrorModalButtonClick"),w=i(()=>{d&&n?.type==="network-error"&&(y(!1),C()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return qd(()=>{n&&g(!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:w,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:h,onExit:p}))}i(Zn,"ImportCustomToken");import{useManager as kw}from"@rango-dev/queue-manager-react";import{BottomLogo as ww,Divider as km,Header as vw}from"@rango-dev/ui";import Ne,{useEffect as Wi,useLayoutEffect as bw,useRef as wm,useState as vm}from"react";import{useRef as fk}from"react";function Jn(){return window.self!==window.top}i(Jn,"isAppLoadedIntoIframe");function zs(){let t=fk(null),{iframe:e}=T(),o=Jn()&&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 Rn}from"react";var Hd=480,Gd=768,Vd=1024,Kd=1200,yk=i(()=>{let[t,e]=Rn(!1),[o,n]=Rn(!1),[r,a]=Rn(!1),[s,c]=Rn(!1),[l,p]=Rn(!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,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(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 wk(t,e){let o=1-jd*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(wk,"generateShade");function vk(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(vk,"generateTint");function bk(t){return Xd(t,wk)}i(bk,"calculateShades");function xk(t){return Xd(t,vk)}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)&&!Np(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=mp,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],g=[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);g.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=g.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 xi from"react";function Zs(t){let{open:e,onClose:o,onConfirm:n}=t;return xi.createElement(Z,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},xi.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.")},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},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 Ii}from"@lingui/core";import{NotificationsIcon as pw,Popover as uw,SettingsIcon as dw,Tooltip as Ai,TransactionIcon as mw}from"@rango-dev/ui";import Pe from"react";import{Notifications as Jk}from"@rango-dev/ui";import Rk from"react";import{useNavigate as ew}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=ew(),{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=>Zp(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${F.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(ol,"NotificationContent");import{useManager as tw}from"@rango-dev/queue-manager-react";import{InProgressIcon as ow}from"@rango-dev/ui";import cm from"react";var nw=i(()=>{let{manager:t}=tw();return St(t).map(({swap:o})=>o).find(o=>o.status==="running")?cm.createElement(im,{id:"widget-header-history-badge-container"},cm.createElement(ow,{color:"info",size:6})):null},"InProgressTransactionBadge"),pm=nw;import{EventSeverity as rw}from"@rango-dev/queue-manager-rango-preset";import{Typography as iw}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===rw.WARNING);return o?um.createElement(nm,{isSever:n},um.createElement(iw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(dm,"NotificationsBadge");import{RefreshProgressButton as aw}from"@rango-dev/ui";import nl,{useEffect as sw,useState as mm}from"react";var lw=1e3,fm=60,cw=100;function Ei({onClick:t}){let[e,o]=mm(0),[n,r]=mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");sw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===fm&&c()},lw):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(aw,{size:22,color:t?"black":"gray",progress:e/fm*cw})))}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(uw,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:Pe.createElement(ol,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(pw,{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(dw,{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(mw,{size:18,color:"black"}),Pe.createElement(pm,null))))}i(Bo,"HeaderButtons");import{i18n as rl}from"@lingui/core";import{Divider as hm,MessageBox as hw,RefreshIcon as yw}from"@rango-dev/ui";import gn from"react";import{Button as fw,styled as gw}from"@rango-dev/ui";var gm=gw(fw,{"& 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(hw,{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(yw,{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 Cw,styled as Ni}from"@rango-dev/ui";var Bi=Cw({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}=zs(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=T(),[u,f]=vm(!1),{config:{features:g,theme:h}}=T(),{watermark:m,setShowCompactTokenSelector:d}=te(),y=m==="FULL",{activeTheme:C}=no(h||{}),[S,k]=vm(!1),w=Re("connectWalletButton",g),{isActiveTab:x,tabManagerInitiated:I,showActivateTabModal:A,setShowActivateTabModal:E,activateCurrentTab:b}=te(),v=Ge(),{manager:B}=kw(),{isTablet:P,isMobile:$}=fn(),J=St(B).map(({swap:ee})=>ee).some(ee=>ee.status==="running"),K=i(()=>b(vo.forceClaim,J),"onActivateTab"),L=i(()=>{r.onWallet?.()},"onConnectWallet"),ae=typeof r.hasBackButton>"u"||r.hasBackButton,re=wm(null),Q=wm(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(()=>(Jn()&&Q.current&&e(Q.current),()=>{o()}),[]),Wi(()=>(re.current?.addEventListener("scroll",al),()=>{re.current?.removeEventListener("scroll",al)}),[]),Wi(()=>{f(c==="failed")},[c]),bw(()=>{let ee=s==="auto"||!Q.current||Jn(),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(vw,{prefix:ae?Ne.createElement(Js,{onClick:()=>{v(),r.onBack?.()}}):null,title:r.title,suffix:Ne.createElement(Ne.Fragment,null,r.suffix,r.onWallet&&!w&&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(ww,null))),S&&Ne.createElement(Tm,null,p?.swapBoxBanner?.element),Ne.createElement(il,{open:u,onClose:()=>f(!1)}))}i(ie,"Layout");import{styled as xw}from"@rango-dev/ui";var bm="$20 $20 $10 $20",sl=xw("div",{padding:bm,overflowY:"auto",flexGrow:1});import{styled as Ew}from"@rango-dev/ui";var ce=Ew("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,g){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:g}})};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:g})=>{e(!0);try{if(c.some(C=>C.address?.toLowerCase()===g.toLowerCase())){let C=p("duplicated");n(C);return}let m=await at().getCustomToken({blockchain:f,address:g});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(h){if(h.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 $w=Ww("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${Nw} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Em(){let t=_w(),[e]=Dw(),o=Ge(),n=T().blockchains(),r=e.get("blockchain")||"",a=ko(r,n),[s,c]=Pw(""),{fetchCustomToken:l,token:p,loading:u,error:f,resetState:g}=xm(),h=!!a&&Go(a,s),m=!a||!s||!h,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($w,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(Mw,{size:"large",variant:"label"},hn.t("Enter Address")),Ve.createElement(cl,{size:10}),Ve.createElement(Lw,{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&&h&&Ve.createElement(Bw,{color:"success",size:12}),onChange:y=>c(y.target.value)}),!h&&!!s&&Ve.createElement(Ve.Fragment,null,Ve.createElement(cl,{size:4}),Ve.createElement(Iw,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),Ve.createElement(Aw,{id:"widget-add-custom-token-import-btn",disabled:m,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},hn.t("Import"))),Ve.createElement(Zn,{token:p,blockchain:a??void 0,address:s,error:f??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{f?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:g,onExitImportModal:g})))}i(Em,"AddCustomTokenPage");import{i18n as Ul}from"@lingui/core";import{useManager as kb}from"@rango-dev/queue-manager-react";import{Alert as wb,Button as vb,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 na,useLayoutEffect as Ib,useRef as Ab,useState as mr}from"react";import{useNavigate as Nb}from"react-router-dom";import{i18n as Wo}from"@lingui/core";import{Alert as cv,BalanceErrors as pv,Button as Jm,ChevronLeftIcon as uv,Divider as yl,MessageBox as dv,Typography as Sl}from"@rango-dev/ui";import ne,{useCallback as mv,useEffect as Rm,useMemo as fv,useState as Cn}from"react";import{useNavigate as gv}from"react-router-dom";import{i18n as ml}from"@lingui/core";import{Alert as Qw,ChevronDownIcon as qw,CloseIcon as Hw,Divider as Mm,IconButton as Pm,PasteIcon as Gw,Typography as Vw,WalletIcon as Kw}from"@rango-dev/ui";import _e,{useEffect as jw,useRef as Xw}from"react";import _i,{useRef as Uw}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Im,styled as Li}from"@rango-dev/ui";var pl=300,Fw=Im({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Ow=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"}}}}),ul=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:`${Fw} ${pl}ms ease-out`},false:{animation:`${Ow} ${pl}ms ease-out`}}}}),Pi=Li("div",{transition:`all ${pl}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=Uw(null);return _i.createElement(Am,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&_i.createElement(ul,{className:"collapsible_trigger",onClick:a},s),_i.createElement(Mi,{className:"collapsible_content",open:e},r),c==="bottom"&&_i.createElement(ul,{className:"collapsible_trigger",onClick:a},s))}i(Di,"CustomCollapsible");import{darkTheme as Nm,styled as dl,TextField as zw}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(zw,{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=jr(e.name,c),p=Xw(null),u=s?.defaultCustomDestinations?.[e.name],f=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!Go(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(Hw,{size:12,color:"gray"})):f?null:_e.createElement(Pm,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},_e.createElement(Gw,{size:16})),"renderSuffix");return jw(()=>{!!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(Kw,{size:18,color:"info"}),_e.createElement(Mm,{size:4,direction:"horizontal"}),_e.createElement(Vw,{variant:"label",size:"medium",color:n?"$neutral600":void 0},ml.t("Send to a different address"))),_e.createElement(Pi,{orientation:n?"up":"down"},_e.createElement(qw,{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)}})),h&&_e.createElement(_e.Fragment,null,_e.createElement(Mm,{size:4}),_e.createElement(Qw,{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 Yw,IconButton as Zw,SelectableWalletButton as Jw,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(Jw,{justifyContent:"center"}),Om=ao("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Um=ao(Zw,{position:"absolute",left:"$20"}),zm=ao("div",{paddingTop:"$20"}),Qm=Yw({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 nv}from"@rango-dev/logging-core";import{Divider as rv,makeInfo as iv,SelectableWallet as av,Typography as Ym,WalletState as $i}from"@rango-dev/ui";import tt,{useEffect as Zm,useState as or}from"react";import{Image as tv,MessageBox as ov}from"@rango-dev/ui";import tr from"react";import{keyframes as Rw,styled as fl}from"@rango-dev/ui";var Gm=fl("div",{position:"relative"}),ev=Rw({"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:`${ev} 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 tr.createElement(ov,{type:r.type,title:r.title,description:r.description,icon:a?tr.createElement(Gm,null,tr.createElement(Km,null,tr.createElement(tv,{src:n,size:45})),tr.createElement(Vm,null)):void 0})}i(Xm,"ExperimentalChainStatus");var sv=7,lv=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]=or(),[g,h]=or(null),[m,d]=or(!1),[y,C]=or(null),{suggestAndConnect:S}=Fi(),{list:k}=Tt({chain:e}),[w,x]=or(k),I=k.length,A=a&&I-a>0,E=i(async v=>{d(!1),C("in-progress");try{await S(v.walletType,v.chain),C("completed")}catch{C("rejected")}},"addExperimentalChain");Zm(()=>{x(v=>{let B=k.findIndex(P=>n(P.type,e));return A&&B>1?[k[B]].concat(k.filter((P,$)=>$!==B)):v.map(P=>k.find($=>$.type===P.type)??P)})},[JSON.stringify(k)]);let b=document.getElementById(Qe.SWAP_BOX_ID);return Zm(()=>{let v=null;return(y==="completed"||y==="rejected")&&(v=setTimeout(()=>C(null),lv)),()=>{v&&clearTimeout(v)}},[y]),tt.createElement(tt.Fragment,null,w.slice(0,a).map(v=>{let B=$p({connectedWallets:p,walletType:v.type,chain:e}),P=v.state===$i.CONNECTED,$=B?Qo(B,sv):"",q=P&&!!v.needsNamespace&&!$,J=Gr(l(),e),K=!p.find(ue=>ue.walletType===v.type&&ue.chain===e),L=J&&K&&v.state===$i.CONNECTED,ae=i(async()=>{v.state===$i.DISCONNECTED||q?f(v):L?(h({walletType:v.type,chain:e,address:B??""}),d(!0)):r({walletType:v.type,chain:e,address:B??""})},"onSelectableWalletClick"),re=iv(v.state),Q=i(()=>L?gl.t({id:"Add {chain} chain",values:{chain:e}}):q?gl.t("Chain not connected"):$||re.description,"getWalletDescription"),ee=i(()=>v.state===$i.CONNECTED?q?"neutral600":"neutral700":re.color,"getWalletDescriptionColor"),le=g?.chain?jr(g.chain,l()):void 0;return tt.createElement(tt.Fragment,{key:`${v.title}_${le}`},!!g&&tt.createElement(Z,{id:"widget-wallets-list-watermarked-modal",open:!!g&&m,container:b,onClose:()=>{h(null)}},tt.createElement(Ts,{id:"widget-wallets-list-experimental-chain-container",displayName:le,onConfirm:()=>{E(g)}})),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:v.image}),tt.createElement(rv,{direction:"vertical",size:32})),tt.createElement(av,{key:v.type,id:"widget-wallets-list-selectable-wallet-btn",description:Q(),descriptionColor:ee(),onClick:ae,selected:n(v.type,e),disabled:!c,...v}))}),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):nv(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 hv=2;function ef(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=gv(),c=T().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:f,customDestination:g,setCustomDestination:h}=O(),{config:m,connectedWallets:d,setWalletsAsSelected:y}=T(),[C,S]=Cn(""),[k,w]=Cn([]),[x,I]=Cn(""),[A,E]=Cn(!!g),b=fv(()=>To({filter:"all",quote:l}),[l]),v=To({filter:"required",quote:l}),B=c.find(W=>W.name===l?.swaps[l?.swaps.length-1].to.blockchain),P=i(W=>v.includes(W),"isWalletRequiredFor"),$=mv(()=>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)&&!g)),"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)):(h(""),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),h(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()=>{w([]),I("");let W=await r?.({selectedWallets:q.filter(j=>j.selected),customDestination:g}),G=W.warnings;G?.balance?.messages&&w(G.balance.messages),W.error&&I(ed(W.error)),!W.error&&!G?.balance?.messages.length?se():w(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,g,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(uv,{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:w.bind(null,[]),container:H},ne.createElement(dv,{title:Wo.t("Insufficient account balance"),type:"error",description:ne.createElement(pv,{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(cv,{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:hv,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 $v}from"@lingui/core";import{Alert as Fv,Button as Ov,Divider as Tf,InfoIcon as Uv}from"@rango-dev/ui";import Fe from"react";import{Alert as Cv,Button as Tv,Divider as kl,NoRouteIcon as kv,RefreshIcon as wv,Typography as lf}from"@rango-dev/ui";import lt from"react";import{i18n as tf}from"@lingui/core";var yv=24,Sv=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=yv]="small",o[o.large=Sv]="large",o))(Cl||{}),Tl=(o=>(o.small="small",o.large="medium",o))(Tl||{});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 nr(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(kv,{size:Cl[n],color:"gray"}),lt.createElement(kl,{size:4}),lt.createElement(lf,{variant:"title",size:Tl[n]},oe().noResultError.title),n==="large"&<.createElement(kl,{size:4}),!!l.description&<.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&<.createElement(af,{size:n},lt.createElement(Cv,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&<.createElement(Tv,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:lt.createElement(sf,null,lt.createElement(wv,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(nr,"NoResult");import{i18n as ir}from"@lingui/core";import{Button as xv,Divider as Ev,MessageBox as Iv,Typography as Av,WarningIcon as Nv}from"@rango-dev/ui";import qt from"react";import{Typography as mf}from"@rango-dev/ui";import vl from"react";import{Button as vv,darkTheme as bv,styled as rr}from"@rango-dev/ui";var cf=rr("div",{width:"100%"}),wl=rr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),pf=rr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${bv} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),uf=rr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),df=rr(vv,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function ff(t){let{title:e,value:o,valueColor:n}=t;return vl.createElement(pf,null,vl.createElement(mf,{size:"medium",variant:"label",className:"_title"},e),vl.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:ir.t("Swapping"),value:_(r.inputUsdValue,4,4)},{title:ir.t("Gas cost"),value:_(r.totalFee,2,2)},{title:ir.t("Receiving"),value:_(r.outputUsdValue,4,4)},{title:ir.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(xv,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:qt.createElement(Nv,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},qt.createElement(Iv,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),qt.createElement(wl,null,qt.createElement(Ev,{size:"4"}),qt.createElement(Av,{size:"small",variant:"title"},ir.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 Bv,Divider as bl,MessageBox as Wv,WarningIcon as Lv}from"@rango-dev/ui";import co from"react";import{useNavigate as Mv}from"react-router-dom";function Sf(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=Mv();return co.createElement(Z,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},co.createElement(Wv,{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(Lv,{color:"white",size:16}),kn.t("Swap anyway")),co.createElement(bl,{size:10}),co.createElement(Bv,{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 Pv,MessageBox as _v,WarningIcon as Dv}from"@rango-dev/ui";import Ui from"react";function Cf(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Ui.createElement(Z,{id:"widget-unknown-price-warning-modal",footer:Ui.createElement(Pv,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Ui.createElement(Dv,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Ui.createElement(_v,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Cf,"UnknownPriceWarningModal");function ar(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:g}=t,h={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,w=yf(e,k);g?.(w)}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(nr,{skipAlerts:s,error:o,fetch:c})),y&&Fe.createElement(cf,null,Fe.createElement(Tf,{size:10}),Fe.createElement(Fv,{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(Uv,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Fe.createElement(Ov,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>C(d.action)},d.actionButtonTitle||$v.t("Change"))}})),e&&Fe.createElement(Fe.Fragment,null,e.type===0&&Fe.createElement(gf,{...h,warning:e}),(e.type===3||e.type===2)&&Fe.createElement(Sf,{...h,warning:e}),e.type===1&&Fe.createElement(Cf,{...h,warning:e})))}i(ar,"QuoteWarningsAndErrors");import gb from"bignumber.js";import Ri from"react";import{i18n as Lo}from"@lingui/core";import{Alert as ob,Divider as vn,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}}}}),wf=xl("div",{width:"100%",display:"flex"});import*as zi from"@radix-ui/react-collapsible";import{Button as zv,css as sr,darkTheme as Be,Image as vf,styled as Ke,Typography as Qv}from"@rango-dev/ui";var qv=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=sr({padding:"$10 $15"}),Ef=Ke(zv,{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=sr({width:"100%",padding:"$15 $15 $10 $15"}),Nf=sr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),wn=sr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Bf=sr({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:{[`& ${vf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${vf}`]:{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"}),Il=Ke("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${qv}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),sQ=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(Qv,{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"}),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 Gv,CloseIcon as Vv,Divider as Gi,IconButton as Kv,NumericTooltip as jv,QuoteCost as Xv,Typography as bt}from"@rango-dev/ui";import X,{useState as zf}from"react";import{css as Hv,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"}}),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=Hv({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Yv=i(t=>t.fee.isZero()?null:X.createElement(Hi,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:g=!1}=t,h=s?.swaps??[],m=g?Co():N(),d=kd(h),y=_(c,2,2);return X.createElement(X.Fragment,null,X.createElement(Xv,{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:g?"center":"bottom",styles:{container:{maxWidth:g?"484px":"unset"}},header:X.createElement(Of,{style:{textAlign:g?"left":"center"}},X.createElement(bt,{variant:"title",size:"medium"},Mt.t("Gas & Fee Explanation")),X.createElement(Kv,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},X.createElement(Vv,{color:"gray",size:14}))),onClose:()=>{o(!1)}},X.createElement(Ff,null,X.createElement(bt,{variant:"title",size:"small"},Mt.t("Details")),X.createElement(Gi,{size:10}),Object.entries(d.payable).flatMap(([C,S])=>S.map((k,w)=>{let x=`payable-fee-${w}`,I=Is(k);return X.createElement(Hi,{key:x},X.createElement(bt,{variant:"label",size:"medium",color:"neutral600"},ws(C,Mt.t)),X.createElement(jv,{content:k.amount,container:m},X.createElement(bt,{variant:"label",size:"medium"},_(k.amount,2,2),k.asset.symbol," ($",_(I,4,4),")")))})),X.createElement(Hi,{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(Di,{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(Gi,{size:4,direction:"horizontal"}),X.createElement(Pi,{orientation:n?"up":"down"},X.createElement(Gv,{size:12,color:"gray"}))),open:n},X.createElement(bt,{size:"small",variant:"title"},Mt.t("Description")),X.createElement(Gi,{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(Gi,{size:10}),Object.entries(d.nonePayable).map(([C,S],k)=>{let w=Td(S),x=ws(C,Mt.t),I=`non-payable-fee-${k}`;return X.createElement(Yv,{key:I,fee:w,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 Vi from"react";import{css as Zv,styled as Jv}from"@rango-dev/ui";var Qf=Jv("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),qf=Zv({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function lr(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(lr,"QuoteSummary");import{i18n as Vf}from"@lingui/core";import{ChevronDownIcon as Rv,ChevronRightIcon as eb,Divider as Ll,Image as tb,Tooltip as Yi,Typography as Ki}from"@rango-dev/ui";import z from"react";var ji=4,Xi=6,cr=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:g}=fn();return z.createElement(Wf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(m=>!m)}},z.createElement("div",{className:wn()},z.createElement(Ki,{variant:"body",size:"xsmall"},Vf.t("Via:")),z.createElement(Ll,{direction:"horizontal",size:4}),r.map((h,m)=>{let d=`item-${m}`,y=z.createElement(Il,null,z.createElement(eb,{size:12,color:"black"}));return g||f?z.createElement(z.Fragment,{key:d},z.createElement(cr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.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(cr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.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:wn()},y,r.map((C,S)=>{let k=`image-${S}`;return S>=m&&z.createElement(z.Fragment,{key:k},z.createElement(cr,{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(Ki,{size:"xsmall",variant:"body"},"+",p-m))))})),z.createElement("div",{className:wn()},z.createElement("div",{className:"blockchains_section"},z.createElement("div",{className:wn()},z.createElement(Ki,{variant:"body",size:"xsmall"},Vf.t("Chains:")),z.createElement(Ll,{direction:"horizontal",size:4}),u.map((h,m)=>z.createElement(z.Fragment,{key:h.displayName},u.length<=Xi||u.length>Xi&&m<Xi-1?z.createElement(Yi,{container:l,side:"bottom",content:h.displayName,sideOffset:4},z.createElement(cr,{content:"",src:h.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:wn()},u.map((d,y)=>y>=m&&z.createElement(cr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:y>m?"blockchainImage":"",container:c})))},z.createElement(Nl,{className:"blockchainImage"},z.createElement(Ki,{size:"xsmall",variant:"body"},"+",u.length-m))))),z.createElement(Ll,{direction:"horizontal",size:32}))),z.createElement(Il,{orientation:a?"up":"down"},z.createElement(Rv,{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:g}=t,h=T().blockchains(),{findToken:m}=T(),d=T().swappers(),{customSlippage:y,slippage:C}=T(),S=y||C,[k,w]=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),v=_(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:Dn(H.swapperId,d)??"",image:H.swapperLogo},from:{token:{displayName:H.from.symbol,image:H.from.logo},chain:{displayName:ft(H.from.blockchain,h)??"",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,h)||"",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(wf,null,j&&U.createElement("div",null,U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),U.createElement(vn,{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(vn,{direction:"vertical",size:2}),U.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},Lo.t({id:"Yours: {userSlippage}",values:{userSlippage:S}}))))})):void 0,time:Bn(H.estimatedTimeInSeconds),fee:_(Es(H,m),2,2),internalSwaps:H.internalSwaps?P(H.internalSwaps):void 0}}),"getQuoteSteps"),$=P(e?.swaps??[]),q=$.length,J=g||N(),K=dd(t.quote.tags||[]),L=!!u,ae=Qr(e?.swaps),re=Bn(ae),Q=yi(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:Co(),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:v,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(vn,{size:4,direction:"horizontal"}))})),U.createElement(Qi,null),!L&&U.createElement(vn,{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(vn,{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:v,warningLevel:B}),s==="swap-preview"&&U.createElement(U.Fragment,null,U.createElement(lr,{from:$[0].from,to:$[q-1].to,percentageChange:v,warningLevel:B}),U.createElement(vn,{size:4}))),U.createElement(bf,{selected:c,listItem:s==="list-item",open:k,className:"quote_container",onOpenChange:w},U.createElement(Kf,{type:s,quoteRef:x,selected:c,setExpanded:w,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 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 _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 pr(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(Qi,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(pr,"QuoteSummarySkeleton");import{ChainToken as mg,Divider as $l,NextIcon as db,Skeleton as Ji}from"@rango-dev/ui";import We from"react";import{styled as ur}from"@rango-dev/ui";var cg=ur("div",{display:"flex",alignItems:"start"}),pg=ur("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Dl=ur("div",{display:"flex",alignItems:"center",flexGrow:1}),ug=ur("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),dg=ur("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($l,{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(Dl,null,We.createElement(mg,{size:"small",loading:!0}),We.createElement($l,{direction:"horizontal",size:8}),We.createElement(Ji,{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(Ji,{height:12,variant:"rounded"})))))}i(Pt,"StepSkeleton");function dr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Kt.createElement(Xf,{expanded:o,rounded:e!=="basic"},Kt.createElement(pr,{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(dr,"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:g,fullExpandedMode:h=!1,container:m}=t,{inputAmount:d,inputUsdValue:y}=O(),C=e?.outputAmount?new gb(e?.outputAmount):null,S=e?yt(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?Ri.createElement(El,null,Ri.createElement(dr,{tagHidden:c,type:o,expanded:s})):w?Ri.createElement(El,{onClick:()=>l?.(e),id:f},Ri.createElement(Pl,{quote:e,error:r,container:m,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:g,fullExpandedMode:h,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=Fl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(ta,"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=wd(t);if(o){let n=Si(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 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 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(),g=T().tokens(),{findToken:h}=T(),m=p||l,{fetch:d,cancelFetch:y,loading:C}=fg();return Tb(()=>y,[]),{loading:C,fetch:i(async k=>{let w=k.selectedWallets,x=k?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let I=w.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 v={outputAmount:b.result?.outputAmount,requestId:b.requestId,resultType:b.result?.resultType,swaps:b.result?.swaps||[],validationStatus:b.validationStatus,requestAmount:b.requestAmount};r(v);let B={slippage:m.toString(),disabledSwappersGroups:u},P=gg({previousQuote:a??void 0,currentQuote:v,meta:{blockchains:f},selectedWallets:w,userSlippage:m,inputUsdValue:n,findToken:h});c();let $=!!P.balance,q=Cb(o.toString(),b,bd(w),B,!$,{blockchains:f,tokens:g});return{quote:v,swap:q,error:null,warnings:P}})}catch(E){return oa(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]=mr(""),p=!n,[u,f]=mr(!1),[g,h]=mr(!1),{isActiveTab:m}=te(),d=T().getDisabledLiquiditySources(),y=Ab(d),{manager:C}=kb(),{fetch:S,loading:k,cancelFetch:w}=Ol(),[x,I]=mr({swap:null,error:null,warnings:null}),[A,E]=mr(!1),b=i(async({selectedWallets:L,customDestination:ae})=>{let re=await S?.({selectedWallets:L,customDestination:ae});return I(re),re},"onConfirmSwap"),v=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()=>{h(!0),await v(),h(!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&&w()},[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,J=x.error,K=[];if(c&&K.push(De.createElement(wb,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||J){let L=`../${F.settings}`;K.push(De.createElement(ar,{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 v()},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(vb,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:k||g,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||g,disabled:!m,onClick:f.bind(null,!0)},De.createElement(Eb,{size:24})))},u&&De.createElement(ef,{open:u,onClose:()=>f(!1),onCancel:w,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(Ei,{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 Cr,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 fr 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,g=s.length?fr.createElement(Db,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},fr.createElement(_b,{color:"gray",size:10})):null;return p&&(g=p),fr.createElement(Fb,{prefix:fr.createElement(Sg,null,fr.createElement($b,{color:"black"})),id:u,suffix:g,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 yr,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 hr}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"}}),ra=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,{}),wg=ot("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Xl}`]:{$$color:"$colors$neutral600",[`.${ql} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),gr=ot("div",{display:"flex",alignItems:"end",flexDirection:"column"}),RH=ot("div",{display:"flex",alignItems:"center"}),vg=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(ra,null,Array.from(Array(t.size),e=>It.createElement(zb,{key:e,hasDivider:!0,start:It.createElement(hr,{variant:"circular",width:35,height:35}),end:It.createElement(gr,null,It.createElement(hr,{variant:"text",size:"large",width:70}),It.createElement(Ag,{size:4}),It.createElement(hr,{variant:"text",size:"medium",width:50})),title:It.createElement("div",null,It.createElement(hr,{variant:"text",size:"large",width:90}),It.createElement(Ag,{size:4}),It.createElement(hr,{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(yr,{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 Sr(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:g}=T(),{isTokenPinned:h}=T(),{setFromToken:m,setToToken:d}=O(),{t:y}=Zb(),C=Ge(),[S,k]=Yb(null),w=i(()=>{c==="source"?m({token:S,meta:{blockchains:u}}):d({token:S,meta:{blockchains:u}})},"updateToken"),x=i(()=>{w(),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(yr,{variant:"body",size:"xsmall",color:"background"},y("import")))}let v=Vr(f(b));return s?s(b):g?M.createElement(gr,null,M.createElement(Po,{variant:"text",size:"large",width:70}),M.createElement(jt,{size:4}),M.createElement(Po,{variant:"text",size:"medium",width:50})):v&&M.createElement(wg,null,M.createElement(xg,{variant:"title",size:"small"},v.amount),M.createElement("div",null),v.usdValue&&M.createElement(yr,{variant:"body",className:Xl(),size:"xsmall"},`$${v.usdValue}`))},"endRenderer"),A=i(()=>M.createElement(Xb,{itemContent:b=>{let v=e[b];if(v==="skeleton")return M.createElement(Vb,{hasDivider:!0,start:M.createElement(Po,{variant:"circular",width:35,height:35}),end:M.createElement(gr,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=v.address||"",P=u.find(L=>L.name===v.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 v!="string"&&!v.customToken&&n?.(v)},"handleClick");return M.createElement(Ig,null,M.createElement(kg,{"tab-index":b,key:`${v.symbol}${v.address}`,id:`${v.symbol}${v.address}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:v.customToken,onClick:K,start:M.createElement(vg,null,M.createElement(Gb,{src:v.image===""?Zr:v.image,size:30}),t.type!=="custom-token"&&h(v,t.type)&&M.createElement(bg,null,M.createElement(jb,{size:12,color:"gray"}))),title:P?.type==="COSMOS"||v.name||!v.name&&!B?M.createElement(Yl,null,M.createElement(yr,{variant:"title",size:"xmedium"},v.symbol),M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(Zl,{css:q},M.createElement(Jl,{variant:"body",size:"xsmall",css:J},v.blockchain)),l&&v.warning&&M.createElement(M.Fragment,null,M.createElement(jt,{direction:"horizontal",size:4}),M.createElement(qb,{container:N()}))):void 0,description:typeof v!="string"&&P?.info&&B&&P.type!=="COSMOS"?Rb({address:B,token:v,customCssForTag:q,customCssForTagTitle:J,name:v.name,url:P.info.addressUrl.split("{wallet}").join(B)}):v.name||void 0,end:I(v)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=S?ko(S?.blockchain,u):null;return M.createElement(M.Fragment,null,a&&M.createElement(M.Fragment,null,M.createElement(yr,{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(Zn,{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:Rl.t("No results found"),description:Rl.t("Try using different keywords")}))))}i(Sr,"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),[g,h]=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(g){let S=a?gt(a):null,k=r?gt(r):null,w=gt(g);S===w?c({token:null}):k===w&&s({token:null}),o(g)}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(Cr,{size:16}),ye.createElement(Sr,{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),h(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(Cr,{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(Cr,{size:40}),ye.createElement(Cr,{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(Cr,{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 sa}from"@rango-dev/ui";import{TransactionStatus as wr}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 Tr}from"@rango-dev/ui";var nc=Tr("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=Tr(ux,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ia} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ia} &`]:{backgroundColor:"$neutral"},[`& ${nc}::before`]:{backgroundColor:"$secondary100",[`.${ia} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Mg=Tr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),Pg=Tr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),_g=px({display:"flex",justifyContent:"space-between",alignItems:"center"}),Dg=Tr("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 wx,Skeleton as vx,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 kr}from"@rango-dev/ui";var ic=Sx(),Qg=kr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),ac=kr("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=kr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),qg=kr("div",{gap:"$10",display:"flex",flexDirection:"column"}),Hg=kr("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,[]),g=Kg(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,Ax),s(f(p,c.current)))},[e.length]);if(xx(()=>{r||g()},[r,g]),r){let h=[1,2];return je.createElement(je.Fragment,null,[h,h].map((d,y)=>je.createElement(ac,{key:y},je.createElement(sc,null,je.createElement(vx,{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(wx,{endReached:()=>{c.current<e.length&&g()},groupCounts:a,groupContent:h=>je.createElement(ac,null,je.createElement(sc,null,je.createElement(bx,{variant:"label",size:"medium",className:ic()},u[h]))),itemContent:(h,m)=>{let d=l[h];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 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=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:wr.SUCCESS,title:Xe.t("Complete")},{id:wr.RUNNING,title:Xe.t("Running")},{id:wr.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,g]=la(!1),h=i(k=>{let w=k.target.value;a(w)},"handleSearch"),m=Yg(()=>!r&&!p?n:n.filter(k=>{let{inputAmount:w,status:x,steps:I,requestId:A}=k;return(!r||Nt(w,r)||Nt(x,r)||Fx(I,r)||Nt(A,r))&&(!p||p===x)}),[n,r,p]),d=!m?.length&&!l,y=i(()=>g(!1),"onCloseModal"),C=i(async()=>{try{await e?.clearQueue(),g(!1)}catch(k){console.log(k)}},"onClear"),S=Yg(()=>!n.some(k=>k.status===wr.SUCCESS||k.status===wr.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:()=>g(!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:h,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(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(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(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 bc,styled as kE,WarningIcon as wE}from"@rango-dev/ui";import vE 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 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 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:g}=no({}),h=Xo(f),m=g==="dark",d=n==="default",y={quoteError:a,slippageError:h?.type==="error"?h.message:null},C={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},S=p?.swaps[0].from||c,k=p?.swaps[p?.swaps.length-1].to||l,w=d?S:k,x=d?k:S,I=Number(d?p?.outputAmount:p?.requestAmount),A=Number(d?p?.requestAmount:p?.outputAmount),E=I||w.usdPrice,b=A||x.usdPrice,{rawValue:v,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"},v)},ut.createElement(vr,{className:"rate-text",variant:"body",size:"small"},B)),ut.createElement(gc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&ut.createElement(vr,{color:"neutral600",variant:"body",size:"small"},"~",ah(Number(v),w.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 ve 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 br}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:br.t("Smart Routing")},{value:"FEE",label:br.t("Lowest Fee")},{value:"SPEED",label:br.t("Fastest Transfer")},{value:"NET_OUTPUT",label:br.t("Maximum Return")},{value:"PRICE",label:br.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 xr(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:g,sortStrategy:h,error:m}=O(),{slippage:d,customSlippage:y}=T(),{findToken:C}=T(),S=c||N(),k=!!p&&p.results.length,w=y??d,x=i(E=>{if(!f||!g||!p)return null;let b={requestAmount:p.requestAmount,validationStatus:null,...E};return pn({currentQuote:b,userSlippage:w,findToken:C})},"getQuoteWarning"),I=m?.type===0||m?.type===1,A=p?.results?hi(h,p?.results):[];return ve.createElement(ve.Fragment,null,a&&ve.createElement(ve.Fragment,null,ve.createElement(ph,null,ve.createElement(nE,{size:"xmedium",variant:"title"},tE.t("Sort by")),ve.createElement(ua,{container:S})),ve.createElement(Sc,{size:"10"})),e&&Array.from({length:mh},(E,b)=>ve.createElement(ve.Fragment,{key:b},s?ve.createElement(oE,{loading:!0}):ve.createElement(dr,{tagHidden:!1,type:"list-item",expanded:!1}),b!==mh-1&&ve.createElement(Sc,{size:16}))),!e&&ve.createElement(ve.Fragment,null,k?A.map((E,b)=>{let v=x(E),B=Fl(E.swaps),P=A.length-1===b;return ve.createElement(ve.Fragment,{key:E.requestId},ve.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:v,fullExpandedMode:s,onClick:$=>{B||u("warning",v),u("error",B?.options||null),o($)},type:"list-item"}),!P&&ve.createElement(Sc,{size:16}))}):I&&ve.createElement(ch,null,ve.createElement(nr,{size:s?"large":"small",error:m,fetch:n}))))}i(xr,"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=Co();return sE(()=>{let g=null;return a?g=setTimeout(()=>{c(!0)},cE):(c(!1),g&&clearTimeout(g)),()=>{g&&clearTimeout(g)}},[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(xr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:Co(),onClickOnQuote:n,fullExpandedMode:u})))}i(Cc,"ExpandedQuotes");import{i18n as vh}from"@lingui/core";import{SwapInput as bh}from"@rango-dev/ui";import mE from"bignumber.js";import Er 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 wc(){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(wc,"SwitchFromAndToButton");import{styled as Th}from"@rango-dev/ui";var kh=Th("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),wh=Th("div",{position:"relative"});function vc(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:g,outputAmount:h,outputUsdValue:m,selectedQuote:d}=O(),{connectedWallets:y,getBalanceFor:C}=T(),S=a?C(a):null,k=Vr(S)?.amount??"0",w=S?new mE(S.amount).shiftedBy(-S.decimals):de,x=!!s&&Fp(y,s.name),I=!xs(d,f,g),A=!xs(d,f,m),E=!g||!m||!m.gt(0)?null:zt(g.toString(),m.toString());return Er.createElement(kh,null,Er.createElement(wh,null,Er.createElement(bh,{label:vh.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:_(g,4,4),realUsdValue:I?void 0:g?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let b=_(w,S?.decimals),v=S?.amount?b.split(",").join(""):"";p(v)},anyWalletConnected:y.length>0}),Er.createElement(wc,null)),Er.createElement(bh,{sharpBottomStyle:!r&&(!!d||e),label:vh.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(g,m),2,2),warningLevel:Qt(E??0),price:{value:_(h,6,6),usdValue:A?void 0:_(m,4,4),realValue:h?.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(vc,"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:g,sortStrategy:h,resetQuote:m,error:d,warning:y,setSelectedQuote:C,updateQuotePartialState:S}=O(),{slippage:k,customSlippage:w,affiliatePercent:x,affiliateRef:I,affiliateWallets:A,fetchStatus:E}=T(),b=T().getLiquiditySources(),v=T().getDisabledLiquiditySources(),B=T().excludeLiquiditySources(),{findToken:P}=T(),[$,q]=yE(!0),J=hE(u),K=w??k,ae=!l||!p||Ft(l,p)||!Wn(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=vd({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=hi(h,be.results),Rt=ud(g,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(Or(le=>{Q(le)},SE),[ae]);return gE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(ae){q(!1),(g||d||y)&&m();return}if(!Wn(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:v,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,v.length,K,I,x,c,JSON.stringify(A)]),{fetch:()=>Q({inputAmount:u,fromToken:l,toToken:p,liquiditySources:b,excludeLiquiditySources:B,disabledLiquiditySources:v,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:g}=O(),[h,m]=Ah(!1),{isLargeScreen:d,isExtraLargeScreen:y}=fn(),{fetch:C,loading:S}=da({refetchQuote:a}),{config:k,fetchStatus:w,connectedWallets:x,customSlippage:I,slippage:A,setSlippage:E,setCustomSlippage:b}=T(),{isActiveTab:v}=te(),[B,P]=Ah(!1),q=Xo(I!==null?I:A),K=Cd({fetchMetaStatus:w,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 vE(n).gt(0)&&!Bd(e,o),re=ae&&w==="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&&h?(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(),g("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||!v,prefix:K.action==="confirm-warning"&&Se.createElement(wE,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(vc,{fetchingQuote:re,fetchMetaStatus:w,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?()=>{g("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(ar,{warning:Q,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:C,showWarningModal:B,confirmationDisabled:!v,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:h}):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 Ar from"react";import{styled as xc}from"@rango-dev/ui";var Ir=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 Ar.createElement(Ir,null,Array.from(Array($E),(t,e)=>Ar.createElement(Lh,{hasDivider:!0,key:e,start:Ar.createElement(Mh,{variant:"circular",width:35,height:35}),title:Ar.createElement(Mh,{variant:"text",size:"large",width:90}),end:Ar.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=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)),g=f.length===f.filter(C=>C.selected).length,h=i(()=>{f.forEach(C=>{g?s(C.groupTitle):C.selected||s(C.groupTitle)})},"toggleAllSources"),m=f.map(C=>{let{selected:S,groupTitle:k,logo:w,id:x,...I}=C;return{id:`widget-setting-liquidity-source-${Ep(x.toLowerCase())}-item-btn`,start:Ye.createElement(UE,{src:w,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:w,...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-${g?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},g?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(Ir,{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 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(g=>{r(g),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(xr,{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=>Ur(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(sl,{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 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(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"},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 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}),g=oI(f),h=!t.hideCategory&&g!==1;return Zt.createElement(ie,{header:{title:zh.t("Select Chain")}},Zt.createElement(ce,{view:!0},h&&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(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 wI}from"react-router-dom";import{i18n as Pc}from"@lingui/core";import{BlockchainsChip as ya,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,g=c.more.length===1,h=!g&&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(ya,{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(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})))),g?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,h?xe.createElement(ya,{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(g,h)=>{l(null),r(!0),s([]);try{let m=await at().searchCustomTokens({query:g,blockchain:h},{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(Or((g,h)=>{e.current?.signal.aborted||p(g,h)},600),[t.length]);return{fetch:(g,h)=>{e.current=new AbortController,s([]),r(!0),u(g,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Fc,"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=wI(),n=Ge(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=O(),{getBalanceFor:u}=T(),{fetch:f,loading:g,tokens:h,cancel:m}=Fc(),[d,y]=kI(""),C=e==="source"?r:a,S=C?.name??"",k=T().blockchains({type:e}),w=T().tokens({type:e,blockchain:S,searchFor:d,getBalanceFor:u}),x=Xh(w,h,d,g,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(w,d,C?.name)&&f(d,C?.name??void 0),()=>{m()}),[w.length,d,C?.name]),mo.createElement(ie,{header:{title:Ca.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:Ca.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>y(""),onChange:b=>y(b.target.value),suffix:Sa(w,d,C?.name)&&g?mo.createElement(CI,{size:12,color:"secondary"}):void 0}),mo.createElement(Yh,{size:16}),mo.createElement(Sr,{list:x,selectedBlockchain:S,searchedFor:d,type:e,onChange:b=>{A(b);let v=k.find(B=>b.blockchain===B.name);v&&I(v),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 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 vI,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(vI,{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 Nr from"react";function oy(){return Nr.createElement(ka,null,Nr.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."),Nr.createElement("br",null),Nr.createElement("br",null),Nr.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>Fn&&(f=Fn),n(f)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;Ap(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 wa,DarkModeIcon as ay,Divider as Br,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(),g=Re("theme",u),h=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)),w=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"),v={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,w),D.createElement(Br,{direction:"horizontal",size:8}),D.createElement(wa,{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(Br,{direction:"horizontal",size:8}),D.createElement(wa,{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(Br,{direction:"horizontal",size:8}),D.createElement(wa,{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(Br,{direction:"horizontal",size:8}),D.createElement(wa,{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(Br,{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},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=h?[]:[v,B];return d||K.push(P),m||K.push($),K.push(q),!e?.singleTheme&&!g&&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 Wa}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 Ia}from"rango-types";import Aa 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 ba}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:ba.t("Delete Transaction"),description:ba.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},ba.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"},ba.t("No, Cancel")))),"DeleteContent");import{i18n as xa}from"@lingui/core";import{PendingSwapNetworkStatus as Ea}from"rango-types";var Gc={[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 Vc}from"@rango-dev/ui";var hy=Vc("div",{display:"flex",justifyContent:"center"}),Gj=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),g=f?sA(n,f):null,h=f?.fromBlockchain,m=g?.walletType,d=m?Ln(u(m)):null,y=m?p(m):null,C=a&&!!m&&!!d&&!!y,{list:S}=Tt(),k=i(()=>{if(m){let w=S.find(x=>x.type===m);w?l(w):iA(new Error(`It seems requested wallet to be connected is not available in the list. requested wallet: ${w}`))}},"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:h?[h]:void 0}}))},"WalletStateContent");function Kc(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(Z,{id:"widget-swap-details-modal",open:!!e,onClose:o,container:document.getElementById(Qe.SWAP_BOX_ID)||document.body},l&&Aa.createElement(Sy,{type:Gc[e].type,title:Gc[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(Kc,"SwapDetailsModal");import{i18n as Wr}from"@lingui/core";import{Button as jc,Divider as Lr,MessageBox as ky,TokenAmount as dA,Typography as wy}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:g}=t,h=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:Wr.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(Lr,{size:12}),Ce.createElement(wy,{variant:"body",size:"medium",color:"neutral700",align:"center"},f)):Ce.createElement(ky,{type:"error",title:Wr.t("Transaction Failed"),description:f}),Ce.createElement(Lr,{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(Lr,{size:30})),Ce.createElement(jc,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Wr.t("Done"))),Ce.createElement(Lr,{size:12}),g&&Ce.createElement(Ce.Fragment,null,Ce.createElement(jc,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(g,"_blank")},Wr.t("Diagnosis")),Ce.createElement(Lr,{size:12})),Ce.createElement(jc,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},Ce.createElement(wy,{variant:"title",size:"medium",color:"primary"},Wr.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 wA}from"@rango-dev/ui";import ho,{Fragment as vA}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 Mr,darkTheme as vy,styled as Dt,Typography as gA}from"@rango-dev/ui";var by=Dt(ce,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${vy} &`]:{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=Mr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${vy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Ny=Mr({padding:"$5 0"}),Na=Mr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),By=Mr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),Wy=Mr({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 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(Ba,{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 Pr from"react";function Uy(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?Pr.createElement(Zc,{type:"warning",id:"widget-swap-details-change-network-alert",title:n.shortMessage,action:Pr.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?Pr.createElement(Zc,{type:"warning",title:n.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:Pr.createElement(Oy,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{o(Jc.WaitingForConnectingWallet)}},Fy.t("Connect"))}):Pr.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=Yn(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,g,h)=>{let m=g+f.url,d=g===h.length-1,y=(d&&p||l)&&!u,C=d&&a.status==="failed";return ho.createElement(vA,{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(wA,{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:Dn(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:Dn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:bA.createElement(Rc,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function Hy(t){if(Yn(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(),g=te.use.isActiveTab(),h=FA(),[m,d]=_A(Qy),y=$A(null),[C,S]=Xy(null),[k,w]=Xy(null),x=i(()=>{r(),S(null)},"onCancel"),I=Ae.use.getNotifications(),A=Ae.use.removeNotification(),E=I(),b=EA(e),v=b?.networkStatus;jy(()=>{E.find(ze=>ze.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(w(e.status),A(e.requestId)):k&&w(null))},[e.status,e.requestId]),jy(()=>{L?S(Wa.WaitingForNetworkChange):v===Wa.WaitingForConnectingWallet||v===Wa.NetworkChanged?S(v):S(null)},[v]);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=v===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:v,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:Qo(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(Ba,{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=gi(e,l,u);f(be),setTimeout(()=>{h("../../")},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:Na()},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:`${dp}/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:Bn(Qr(e.steps)),steps:ee}),Y.createElement(lr,{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]),vS=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:vS,tooltipContainer:N()})}))),Y.createElement(Kc,{state:C,onClose:()=>S(null),onCancel:x,onDelete:n,message:re.detailedMessage.content,swap:e,walletButtonDisabled:!g}),Y.createElement(Xc,{open:!!k,diagnosisUrl:H,onClose:()=>w(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 Ma}from"@lingui/core";import{Divider as Jy,NotFound as qA,Skeleton as Dr,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 tp}from"@rango-dev/ui";var Yy=tp("div",{width:"100%",height:"100%",padding:"$10 $20"}),_r=tp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),La=tp("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 op(){return Ee.createElement(Yy,null,Ee.createElement(pr,{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(_r,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(_r,null,Ee.createElement(Pt,{separator:!1})),Ee.createElement(La,null),Ee.createElement(_r,null,Ee.createElement(Pt,{separator:!1})),Ee.createElement(La,null),Ee.createElement(_r,null,Ee.createElement(Pt,{separator:!1}))))}i(op,"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(Dr,{width:60,height:10,variant:"rounded"})),Ie.createElement(Jy,{direction:"horizontal",size:4}),Ie.createElement(Dr,{width:16,height:16,variant:"rectangular"}),Ie.createElement(Jy,{direction:"horizontal",size:4}),Ie.createElement(Dr,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:An()},Ie.createElement(Pa,{className:Ny(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Dr,{width:60,height:10,variant:"rounded"})),Ie.createElement(Pa,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Dr,{width:60,height:10,variant:"rounded"}))),Ie.createElement(op,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 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:g})=>g.requestId===r):void 0,p=i(()=>{if(l?.id){let g=t?.get(l.id);g&&GA(g)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(g){console.log(g)}},"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=Up(p,n),g=YA(u)!==1,h=zp(p,e),m=i(d=>{kp(p,r.multiWallets)||c(d)},"handleWalletItemClick");return $t.createElement(ie,{header:{title:tS.t("Connect Wallets")}},$t.createElement(n0,null,g&&$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,h.map((d,y)=>{let S=a(d.type).namespaces,k=`wallet-${y}-${d.type}`,w=_n(d,S);return $t.createElement(RA,{key:k,...d,state:w?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(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(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(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 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 g=e.find(h=>h.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&h.walletType===f.walletType&&h.chain===c?.fromBlockchain);g&&u.push(g)}if(c?.fromBlockchain!==c?.toBlockchain){let g=l.wallets[c?.toBlockchain];if(g){let h=e.find(m=>m.address?.toLocaleLowerCase()===g.address?.toLocaleLowerCase()&&m.walletType===g.walletType&&m.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let g=n(),m=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>g.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(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}=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(()=>(vo.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),vo.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 Da(){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(Da,"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=Tp(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 w0}from"@rango-dev/queue-manager-react";import{useWallets as v0}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}=v0(),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(w=>({accounts:[w],name:w.chain}))},g=i(async(w,x)=>a(w,x.network)?await r(w,[x]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),m=u.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),d=u.filter(x0),y=i(w=>{let{supportedChains:x}=s(w);return Mn(x)},"getSupportedChainNames"),C=e(),S={meta:{blockchains:m,evmBasedChains:d,evmNetworkChainInfo:b0(d),getSupportedChainNames:y},getSigners:o,wallets:f,providers:C,switchNetwork:g,canSwitchNetworkTo:a,state:n,isMobileWallet:h},k=te.use.isActiveTab();return E0.createElement(w0,{queuesDefs:[c],context:S,onPersistedDataLoaded:w=>{T0(w)},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:g,toToken:h,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(g!==void 0){let y=e.find(C=>C.name===g)??null;a(y)}if(h!==void 0){let y=h?t(h)??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 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 $a(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=T(),u=Pp(a()),f=T().blockchains(),g=T().tokens(),h=T().swappers(),m=T().fetchStatus,d=uo().resetLanguage,y=Ae().getNotifications(),C=Ae().clearNotifications,S=yS(),{fromBlockchain:k,toBlockchain:w,fromToken:x,toToken:I,inputAmount:A}=O(),E={isActiveTab:o,setCurrentTabAsActive:vo.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async b=>c(b)},meta:{blockchains:f,tokens:g,swappers:h,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:w?.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 Fa(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||$r,BASE_URL:o?.apiUrl||up})},[o.apiKey,o.apiUrl]),TS(()=>{t.config?.signers?.customSolanaRPC&&$0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),cp.createElement(mi,{config:o,onUpdateState:e},cp.createElement(hS,{apiKey:o.apiKey},cp.createElement(lp,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??Yr},Oa.createElement(Da,null)))}i(kS,"Widget");function wS(){let{on:t,off:e}=Te;return{on:t,off:e}}i(wS,"useWidgetEvents");var lJ={DerivationPath:Gn,Namespaces:Qn,Detached:Hn,isOnDerivationPath:Kn,isOnNamespace:Vn,isOnDetached:jn};export{PZ as EventSeverity,Ko as MainEvents,HZ as Networks,KZ as PendingSwapNetworkStatus,Ra as QuoteEventTypes,_Z as RouteEventType,Ua as SUPPORTED_FONTS,lJ as StatefulConnect,DZ as StepEventType,$Z as StepExecutionBlockedEventStatus,FZ as StepExecutionEventStatus,Qe as UI_ID,ts as UiEventTypes,es as WalletEventTypes,QZ as WalletEvents,GZ as WalletTypes,kS as Widget,Ko as WidgetEvents,Fa as WidgetProvider,mi as WidgetWallets,Ks as customizedThemeTokens,UZ as readAccountAddress,qo as useStatefulConnect,Tt as useWalletList,Fi as useWallets,CS as useWidget,wS 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"&<.createElement(vl,{size:4}),!!l.description&<.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&<.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&<.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
|