@rango-dev/widget-embedded 0.47.1-next.1 → 0.47.1-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CustomDestination/CustomDestination.styles.d.ts.map +1 -1
- package/dist/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/components/SearchInput/SearchInput.styles.d.ts +160 -0
- package/dist/components/SearchInput/SearchInput.styles.d.ts.map +1 -1
- package/dist/components/Slippage/Slippage.styles.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/dist/pages/AddCustomTokenPage.d.ts.map +1 -1
- package/dist/widget-embedded.build.json +1 -1
- package/package.json +11 -11
- package/src/components/CustomDestination/CustomDestination.styles.ts +3 -1
- package/src/components/SearchInput/SearchInput.styles.ts +12 -0
- package/src/components/SearchInput/SearchInput.tsx +24 -22
- package/src/components/Slippage/Slippage.styles.ts +1 -0
- package/src/pages/AddCustomTokenPage.tsx +4 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var RS=Object.defineProperty;var i=(t,e)=>RS(t,"name",{value:e,configurable:!0});import{EventSeverity as NR,RouteEventType as BR,StepEventType as WR,StepExecutionBlockedEventStatus as LR,StepExecutionEventStatus as MR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as _R}from"@rango-dev/wallets-core/legacy";import{useWallets as Hi,Events as $R}from"@rango-dev/wallets-react";import{Networks as OR,WalletTypes as UR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as qR}from"rango-types";import{Divider as gT}from"@rango-dev/ui";import ao,{useEffect as hT,useRef as yT,useState as dd}from"react";import{WalletState as eC}from"@rango-dev/ui";import{useWallets as tC}from"@rango-dev/wallets-react";import{useReducer as oC}from"react";function Ap(t){return!!t.derivationPath}i(Ap,"isStateOnDerivationPathStep");function Np(t){return!!t.namespace}i(Np,"isStateOnNamespace");var Ur={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Bp(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 Ur;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Ur;default:throw new Error("Action hasn't been defined.")}}i(Bp,"reducer");function Vo(){let{state:t,disconnect:e,connect:o}=tC(),[n,r]=oC(Bp,Ur),a=i(async(m,f,h)=>{r({type:"reset"});try{let g=f?.map(d=>({...d,network:void 0}));return await o(m,g),{status:"connected"}}catch(g){let d=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:g})}},"runConnect"),s=i(async(m,f)=>{if(m.state===eC.DISCONNECTED){let g=!!m.isHub,d=g?m.properties?.find(y=>y.name==="namespaces")?.value:m.needsNamespace,S=g?m.properties?.find(y=>y.name==="derivationPath")?.value:m.needsDerivationPath;if(!d?.data?.length)return await a(m.type,void 0,f);if(d?.data.length&&d.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:m,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(d?.data.length===1&&d.data[0]){if(S){let y=d.data[0];return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y.value}}),{status:"derivation-path"}}return await a(m.type,d?.data?.map(y=>({namespace:y.value})),f)}}if(m.isHub){let g=m.properties?.find(d=>d.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(m),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(m,f)=>{let h=!!m.isHub,g=h?m.properties?.find(T=>T.name==="namespaces")?.value:m.needsNamespace,d=h?m.properties?.find(T=>T.name==="derivationPath")?.value:m.needsDerivationPath,S=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(S&&d)return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y}}),{status:"derivation-path"};if(!Np(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:C?.map(T=>T.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async m=>{if(!m)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Ap(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:m}];return await a(f,g)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async m=>{let f=t(m.type);return f.connected||f.connecting?(await e(m.type),wo(p)?(r({type:"needsNamespace",payload:{targetWallet:m}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:m=>{r(m==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Vo,"useStatefulConnect");import{WalletState as Cs}from"@rango-dev/ui";import{useWallets as dk}from"@rango-dev/wallets-react";import{detectMobileScreens as mk,KEPLR_COMPATIBLE_WALLETS as fk,WalletTypes as On}from"@rango-dev/wallets-shared";import{useCallback as gk,useEffect as hk}from"react";import sk,{createContext as lk,useContext as ck,useEffect as pk,useRef as uk}from"react";import{create as ik}from"zustand";import{persist as ak}from"zustand/middleware";import{allProviders as nC}from"@rango-dev/provider-all";var Ya=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()}},Ko=new Ya;import{defineVersions as Lp,pickVersion as Mp,Provider as Za}from"@rango-dev/wallets-core";function Pp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=_p(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(Lp().version("1.0.0",n).build()):o.push(Lp().version("0.0.0",n).build())}),o}return t}i(Pp,"matchAndGenerateProviders");function _p(t){try{return Mp(t,"1.0.0")[1]}catch{return Mp(t,"0.0.0")[1]}}i(_p,"pickProviderVersionWithFallbackToLegacy");function Dp(t){return t.map(o=>_p(o)).map(o=>o instanceof Za?o.id:o.config.type)}i(Dp,"configWalletsToWalletName");function zr(t,e){return e.find(o=>o.name===t)?.displayName}i(zr,"getBlockchainDisplayNameFor");function gt(t,e){return e.find(o=>o.name===t)?.shortName}i(gt,"getBlockchainShortNameFor");function $p(t,e){return e.find(o=>o.name===t)?.logo}i($p,"getBlockchainImage");function Bn(t,e){return e.find(o=>o.id===t)?.title}i(Bn,"getSwapperDisplayName");function vo(t,e){return e.find(o=>o.name===t)??null}i(vo,"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 ht(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(ht,"createTokenHash");function jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jo,"isValidTokenAddress");function Wn(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=ht(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=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=ht(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Wn,"matchTokensFromConfigWithMeta");function qr(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(qr,"getSupportedBlockchainsFromConfig");function Op(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Op,"makeProvidersOptionsFromConfig");var Qr={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"}},rC={clientUrl:void 0},iC={liquiditySources:void 0};function Fp(t){let e=Op(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 nC(o).map(a=>a())}i(Fp,"generateProviders");var Up=i((t,e,o)=>{let n=Fp({...Qr,...t});return{config:{...Qr,...t},iframe:rC,campaignMode:iC,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}});Ko.set("supportedSourceTokens",l),Ko.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=Fp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Op(a);return Pp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as zp}from"rango-types";var qp=[zp.EVM,zp.SOLANA],Hr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as kC}from"rango-sdk";import{UI_ID as aC}from"@rango-dev/ui";var Gr="c6381a79-2817-4602-83bf-6a641a409e32",Qp="https://api.rango.exchange",Hp="https://explorer.rango.exchange",tt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...aC};import{BlockchainCategories as mC,WalletState as lt}from"@rango-dev/ui";import{legacyReadAccountAddress as fC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as gC,getCosmosExperimentalChainInfo as hC,isEvmAddress as yC,KEPLR_COMPATIBLE_WALLETS as JB,Networks as uu}from"@rango-dev/wallets-shared";import Yo from"bignumber.js";import{isCosmosBlockchain as SC}from"rango-types";import sC from"bignumber.js";var le=new sC(0);import{WalletTypes as lC}from"@rango-dev/wallets-shared";var bo="~",Gp=[lC.LEAP];import{BlockchainCategories as es,WalletState as dC}from"@rango-dev/ui";import{TransactionType as Vr}from"rango-sdk";var Vp="Roboto",Ra=[{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 Xo(t){return Array.from(new Set(t))}i(Xo,"removeDuplicateFrom");function Kr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Kr,"debounce");function st(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(st,"containsText");function Xp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Xp,"exactText");function Yp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Yp,"startWithText");var N=i(()=>document.getElementById(tt.SWAP_BOX_ID),"getContainer"),xo=i(()=>document.getElementById(tt.EXPANDED_BOX_ID),"getExpanded");function Zp(t,e,o){let n=!!e&&Xp(e,t),r=!!o&&Xp(o,t);return n!==r?n?-1:1:0}i(Zp,"compareExactMatchText");function ts(t,e,o){let n=!!e&&st(e,t),r=!!o&&st(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ts,"compareContainsText");function os(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(os,"compareStartWithText");function Jp(t,e,o){if(!o)return 0;let n=Zp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Zp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=os(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ts(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=os(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ts(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=os(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ts(o,t.address,e.address);if(r!==0)return r}return 0}i(Jp,"compareWithSearchFor");var jr=i((t,e)=>{switch(e){case es.ALL:return!0;case es.UTXO:return t===Vr.TRANSFER;case es.OTHER:return t!==Vr.TRANSFER&&t!==Vr.COSMOS&&t!==Vr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Rp=i(t=>Ra.find(o=>o.value===t)?.url,"getFontUrlByName");function eu(t,e){let o=!!t.find(n=>n.state===dC.CONNECTED);return e===!1&&o}i(eu,"isSingleWalletActive");function tu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(tu,"memoizedResult");import{BigNumber as cu}from"bignumber.js";function ou(t){return t.replace(/^0+(?=\d)/g,"")}i(ou,"removeLeadingZeros");function nu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(nu,"ensureLeadingZeroForDecimal");function ru(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(ru,"formatThousandsWithCommas");function iu(t){return t.replace(/\s+/g,"-")}i(iu,"replaceSpacesWithDash");function au(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(au,"stripTrailingZeros");function Xr(t){return/^0+(?:\.0+)?$/.test(t)}i(Xr,"isZeroValue");function su(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(su,"isValidCurrencyFormat");function lu(t){return/\d+$/.test(t)}i(lu,"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"),D=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new cu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new cu(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 Yr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Mt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Mn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pu(t){return Xr(t)?"0":au(t)}i(pu,"sanitizeInputAmount");function Pn(t){return t.connected?lt.CONNECTED:t.connecting?lt.CONNECTING:t.installed?lt.DISCONNECTED:lt.NOT_INSTALLED}i(Pn,"mapStatusToWalletState");function du(t,e,o,n){return o.filter(r=>!Gp.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:m,properties:f,isHub:h}=e(r),g=Xo(u.map(S=>S.type)),d=Pn(t(r));return{title:a,image:s,link:gC(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:m,properties:f,isHub:h}})}i(du,"mapWalletTypesToWalletInfo");function _n(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(_n,"walletAndSupportedChainsNames");function rs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=fC(l),m=c.length>0,f=c.includes(u),h=u===uu.Unknown;if(m&&!f&&!h)return;let d=u===uu.Unknown&&yC(p);if(h&&!d)return;o.includes(u)||d?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(rs,"prepareAccountsForWalletStore");function Eo(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 m=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Eo,"getQuoteChains");function Dn(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Dn,"isAccountAndWalletMatched");var mu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ns(n.usdValue,n.decimals):le.toFixed();return o.plus(r)},new Yo(le));return CC(e.toString())},"calculateWalletUsdValue");function CC(t){let e=t.toString().split(".");return e[0]&&(e[0]=ru(e[0])),e.join(".")}i(CC,"numberWithThousandSeparator");var Rr=i((t,e)=>{let o=hC(Object.entries(t).map(([,n])=>n).filter(SC));return o&&!!o[e]?.experimental},"isExperimentalChain");function ns(t,e){return new Yo(t).shiftedBy(-e).toFixed()}i(ns,"representAmountInNumber");function ei(t){if(!t)return null;let e=ns(t.amount,t.decimals),o=t.usdValue?ns(t.usdValue,t.decimals):null,n=D(e,8,8),r=o?D(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(ei,"formatBalance");function fu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Yo(t.usdValue).shiftedBy(-t.decimals):le,n=e&&e.usdValue?new Yo(e.usdValue).shiftedBy(-e.decimals):le;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Yo(t.amount).shiftedBy(-t.decimals):le,n=e&&e.amount?new Yo(e.amount).shiftedBy(-e.decimals):le;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(fu,"compareTokenBalance");function qt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(qt,"areTokensEqual");function gu(t,e){return t.map(o=>({isPartiallyConnected:is(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===lt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===lt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===lt.CONNECTED)-+(o.state===lt.CONNECTED)||+(n.state===lt.DISCONNECTED||n.state===lt.CONNECTING)-+(o.state===lt.DISCONNECTED||o.state===lt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(gu,"sortWalletsBasedOnConnectionState");function io(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(io,"getConciseAddress");function hu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(hu,"getAddress");var yu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Su(t){return t.map(e=>e.state).join("-")}i(Su,"hashWalletsState");function Cu(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(Cu,"filterBlockchainsByWalletTypes");function ku(t,e){return e===mC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(jr(n,e))return!0;return!1})}i(ku,"filterWalletsByCategory");function is(t,e){return!t.isHub||!t.needsNamespace||t.state!==lt.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(is,"checkIsWalletPartiallyConnected");var as={API_KEY:Gr};function Qt(t){return as[t]||""}i(Qt,"getConfig");function Tu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),as=e,as}i(Tu,"initConfig");var wu=20,vu=25,ss="theme-widget",ls=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>qt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>qt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),cs=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),bu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ti,ct=i(()=>ti||(ti=new kC(Qt("API_KEY"),Qt("BASE_URL")),ti),"httpService");import{i18n as Eu}from"@lingui/core";var oi=[.5,1,3],ni=1,Zo=5,$n=30,ri=0;var Xe=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Xe||{});import{WidgetEvents as xu}from"@rango-dev/queue-manager-rango-preset";var ps=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ps||{}),us=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(us||{}),ds=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ds||{}),Jo=(a=>(a[a.RouteEvent=xu.RouteEvent]="RouteEvent",a[a.StepEvent=xu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Jo||{});function ii(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Xo(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(ii,"getUniqueSwappersGroups");function Iu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Iu,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function Ro(t,e){return e?.[t]==="enabled"}i(Ro,"isRoutingEnabled");var Au=i((t,e,o)=>ot("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function en(t){return t==ri?{type:"error",message:Eu.t("Slippage must be greater than or equal to 0.01")}:t>Zo&&t<=$n?{type:"warning",message:Eu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(en,"getSlippageValidation");var Nu=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=qr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>qp.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",m=Ko.get(u);m?.length||(m=Wn({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Ko.set(u,m)),m=Au(m,s,a.features);let f=e().blockchains({type:o.type});return m.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(d=>d.name===g.blockchain)?!1:o.searchFor?!!(st(g.symbol,o.searchFor)||st(g.address||"",o.searchFor)||st(g.name||"",o.searchFor)):!0).sort((g,d)=>{let S=e().isTokenPinned(g,o.type),y=e().isTokenPinned(d,o.type);if(S!==y)return S?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(g),I=o.getBalanceFor(d),E=fu(A,I);if(E!==0)return E}let C=l.get(g.blockchain),T=l.get(d.blockchain),w=Ja(g,C),x=Ja(d,T);if(w!==x)return w?-1:1;if(g.isPopular!==d.isPopular)return g.isPopular?-1:1;if(o.searchFor){let A=Jp(g,d,o.searchFor);if(A)return A}return g.isSecondaryCoin!==d.isSecondaryCoin?g.isSecondaryCoin?1:-1:C&&T?C.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=ht(o),s=n.get(a);return s||(s=r.find(c=>ht(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>qt(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(Iu)},fetch:async()=>{try{let{routing:o}=e().config,n=Ro("enableCentralizedSwappers",o),r=await ct().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),m=new Set;r.tokens.forEach(h=>{m.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&m.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=ht(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(g,h),c[h.blockchain]?.push(g)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as TC,Catalonia as wC,Chinese as Bu,Denmark as vC,English as bC,Finland as xC,French as EC,German as IC,Greece as AC,Hungary as NC,India as BC,Indonesian as WC,Italian as LC,Japanese as MC,Korea as PC,Lithuania as _C,Malay as DC,Netherlands as $C,Pakistan as FC,Philippines as OC,Poland as UC,Portuguese as zC,Russian as qC,SaudiArabia as QC,Serbia as HC,Slovakia as GC,SouthAfrica as VC,Spanish as KC,Swahili as jC,Swedish as XC,Thai as YC,Turkish as ZC,Ukrainian as JC,Vietnamese as RC}from"@rango-dev/ui";var Wu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:VC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:QC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:TC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:wC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Bu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Bu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:vC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:$C},{title:"English",label:"English",local:"en",SVGFlag:bC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:OC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:xC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:EC},{title:"German",label:"Deutsch",local:"de",SVGFlag:IC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:AC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:BC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:NC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:WC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:LC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:MC},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:PC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:_C},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:DC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:UC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:zC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:qC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:HC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:GC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:KC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:jC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:XC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:YC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:ZC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:JC},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:FC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:RC}],tn="en";var Lu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ni,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=Xo(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=ot("theme",n),s=ot("language",n),c=ot("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||tn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||tn}})},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=qr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Ss from"bignumber.js";import ek from"mitt";var Ce=ek(),tk={on:Ce.on,off:Ce.off};var Mu=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 Pu from"bignumber.js";function Ht(t){return`${t.blockchain}${bo}${t.address}${bo}${t.symbol}`}i(Ht,"createAssetKey");function _u(t,e){return`${Ht(e)}${bo}${t}`}i(_u,"createBalanceKey");function Fn(t){let[e,o,n]=t.split(bo);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(Fn,"extractAssetFromBalanceKey");function fs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Ht(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Pu(r??le).multipliedBy(o[s].amount).toString():""})})}),o}i(fs,"computeNextBalancesWithNewPrices");function gs(t,e){let o={};return t.balances?.forEach(n=>{let r=_u(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Pu(c??le).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(gs,"createBalanceStateForNewAccount");function hs(t,e){for(let o in e){let n=Fn(o);if(n){let r=Ht(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(hs,"updateAggregatedBalanceStateForNewAccount");function ok(t,e){let o=Fn(e);if(!o)return t;let n=Ht(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(ok,"removeBalanceFromAggregatedBalance");function ys(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);if(!p)return;!!n.find(m=>_u(m.address,{address:p.address,blockchain:m.chain,symbol:p.symbol})===l)?a=ok(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(ys,"computeNextStateAfterWalletBalanceRemoval");function nk(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(nk,"matchWalletDetailsWithConnectedWallet");var rk=tu(),Du=Mu((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:nk(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,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>Dn(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(m=>m.walletType===u.walletType&&m.chain===u.chain)),...c]}))}},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 ct().getMultipleTokenBalance({assets:p.map(({symbol:m,address:f,blockchain:h})=>({symbol:m,address:f,blockchain:h})),walletAddress:l});if(u){let m=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};fs(d,g,m);let S=gs(g,e);f=hs(f,S),m={...m,...S}}),t(h=>({_balances:{...h._balances,...m},_aggregatedBalances:f}))}}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,r)=>{let a=o[0];a&&(Ce.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ys(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(Ce.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||!o[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 ct().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(m=>{if(m.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};fs(f,m,l);let{_balances:h,_aggregatedBalances:g}=ys(f,r,{chains:[m.blockChain]});if(p=g,l=h,!e().connectedWallets.find(S=>S.walletType===r&&S.address===m.address&&S.chain===m.blockChain))return;let d=gs(m,e);p=hs(p,d),l={...l,...d}}),t(m=>({_balances:{...m._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let m=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));m.length>0&&await e().fetchMainTokensBalances(m,{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=Ht(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let m=new Ss(u.amount),f=new Ss(l.amount);m.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(bo);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>rk(()=>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&&p.blockchain===n.chain&&l){let u=e().findToken(p),m=l?.amount?new Ss(l.amount).shiftedBy(-l.decimals):le;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:m.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function $u(t){return ik()(ak((...e)=>({...Du(...e),...Nu(...e),...Lu(...e),...Up(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($u,"createAppStore");var Fu=lk(null);function k(){let t=ck(Fu);if(pk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Ou(t){let e=uk();return e.current||(e.current=$u(t.config)),sk.createElement(Fu.Provider,{value:e.current},t.children)}i(Ou,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=dk(),s=k().blockchains(),{handleDisconnect:c}=Vo(),l=Dp(n()),p=du(r,a,l,e);p=mk()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=gu(p,r),m=i(d=>!o.find(S=>S.walletType===d&&S.chain===e),"isExperimentalChainNotAdded"),f=gk(()=>{let d=p?.filter(S=>S.state===Cs.CONNECTING)||[];for(let S of d)c(S)},[Su(p)]);hk(()=>()=>{f()},[]);let h=i(d=>{let S=d.find(C=>C.type===On.DEFAULT);return!S||S.state===Cs.NOT_INSTALLED?!1:d.filter(C=>C.state!=Cs.NOT_INSTALLED&&![On.DEFAULT,On.WALLET_CONNECT_2,On.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),g=i((d,S,y)=>Rr(y,S)&&m(d)&&!fk.includes(d)||d==On.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(d=>!g(d.type,e??"",s)),terminateConnectingWallets:f}}i(vt,"useWalletList");import{Modal as kk}from"@rango-dev/ui";import Tk from"react";import{create as Ck}from"zustand";var Uu="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(Uu),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 Sk=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"),on=Sk;var te=on(Ck()((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})}}))),Ao=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 Tk.createElement(kk,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as an}from"@lingui/core";import{Alert as _k,Button as Dk,Divider as mi,Image as $k,MessageBox as Fk,RadioRoot as Ok}from"@rango-dev/ui";import ce,{useEffect as Uk,useMemo as zk,useState as qk}from"react";import{i18n as xk}from"@lingui/core";import{Typography as ju}from"@rango-dev/ui";import nn from"react";function ai(t,e){return t.find(o=>o.name===e)?.logo}i(ai,"getBlockchainLogo");import{darkTheme as wk,Image as vk,styled as Gt,Typography as bk}from"@rango-dev/ui";var si=Gt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${wk} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),li=Gt("div",{display:"flex",gap:"$8",alignItems:"center"}),qu=Gt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Qu=Gt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Hu=Gt("div",{display:"flex",gap:"$6",alignItems:"center"}),Gu=Gt("div",{paddingLeft:"48px"}),Vu=Gt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ku=Gt(bk,{maxWidth:"100px"}),ci=Gt(vk,{variants:{disabled:{true:{opacity:"0.5"}}}});function pi(t){let{namespace:e}=t,o=k().blockchains();return nn.createElement(si,{unsupported:!0},nn.createElement(li,null,nn.createElement(ci,{src:ai(o,e.id),size:40,disabled:!0}),nn.createElement(Qu,null,nn.createElement(ju,{variant:"label",size:"large"},e.label),nn.createElement(ju,{variant:"body",size:"xsmall"},xk.t("(Currently not supported)")))))}i(pi,"NamespaceUnsupportedItem");import{Checkbox as Lk,Radio as Mk}from"@rango-dev/ui";import vs from"react";import{i18n as ws}from"@lingui/core";import{ChevronDownIcon as Ik,ChevronUpIcon as Ak,Divider as Nk,Typography as zn}from"@rango-dev/ui";import Ae,{useEffect as Bk,useState as Wk}from"react";import{Image as Yu,Tooltip as Zu,Typography as Ek}from"@rango-dev/ui";import Pt from"react";import{styled as Xu}from"@rango-dev/ui";var ks=Xu("div",{display:"flex",alignItems:"center",padding:0,margin:0}),ui=Xu("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 Ts=3;function Ju(t){let{chains:e}=t;return Pt.createElement(ks,{id:"widget-supported-chains-container"},e.slice(0,Ts).map((o,n)=>Pt.createElement(Zu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Pt.createElement(ui,{firstItem:n===0},Pt.createElement(Yu,{src:o.logo,size:15})))),e.length>Ts&&Pt.createElement(Zu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Pt.createElement(ks,null,e.map((o,n)=>Pt.createElement(ui,{key:o.name,firstItem:n===0},Pt.createElement(Yu,{src:o.logo,size:15}))))},Pt.createElement(ui,null,Pt.createElement(Ek,{variant:"body",size:"xsmall"},"+",e.length-Ts))))}i(Ju,"SupportedChainsList");function No(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=Wk(!1),p=k().blockchains();Bk(()=>l(!1),[o]);let u=e.getSupportedChains(p),m=!o&&!r&&u.length>1;return Ae.createElement(si,{hasError:!!o,clickable:!!s,onClick:s},Ae.createElement(li,null,Ae.createElement(ci,{src:ai(p,e.id),size:40}),Ae.createElement(qu,{showSupportedChains:m||r||!!o},Ae.createElement(Hu,null,Ae.createElement(zn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(zn,{variant:"body",size:"small",color:"success500"},ws.t("Connected")),!!o&&Ae.createElement(zn,{variant:"body",size:"small",color:"error500"},ws.t("Connection failed"))),m&&Ae.createElement(Ju,{chains:u}),r&&Ae.createElement(Ku,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Vu,{onClick:()=>l(f=>!f)},Ae.createElement(zn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},ws.t("See why")),c?Ae.createElement(Ak,{size:12,color:"gray"}):Ae.createElement(Ik,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(Nk,{size:4}),Ae.createElement(Gu,null,Ae.createElement(zn,{variant:"body",size:"small",color:"neutral700"},o))))}i(No,"NamespaceItem");function Ru(t){let{onClick:e,type:o,namespace:n}=t;return vs.createElement(No,{namespace:n,onClick:e,suffix:o==="radio"?vs.createElement(Mk,{value:n.value}):vs.createElement(Lk,{checked:t.value})})}i(Ru,"NamespaceListItem");import{Button as Pk,styled as ed}from"@rango-dev/ui";var di=ed("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),rn=ed(Pk,{minHeight:"$40"});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=k().blockchains(),[l,p]=qk([]),u=zk(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),m=i(d=>{p(r?[d]:S=>S.includes(d)?S.filter(y=>y!==d):S.concat(d))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(d=>d.value))},"onSelectAll"),g=i(d=>r?ce.createElement(Ok,{value:l?.[0]},d):ce.createElement(ce.Fragment,null,d),"wrapRadioRoot");return Uk(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let d=u.filter(S=>S.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(d.map(S=>S.value))}else p(u.map(d=>d.value))},[]),ce.createElement(ce.Fragment,null,ce.createElement(Fk,{type:"info",title:an.t("Connect {wallet}",{wallet:e.title}),description:an.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ce.createElement($k,{src:s,size:45})}),r?ce.createElement(ce.Fragment,null,ce.createElement(mi,{size:20}),ce.createElement(_k,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:an.t("This wallet can only connect to one chain at a time. ")})):ce.createElement(ce.Fragment,null,ce.createElement(mi,{size:30}),ce.createElement(Dk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?an.t("Deselect all"):an.t("Select all"))),ce.createElement(di,null,g(ce.createElement(ce.Fragment,null,a?.data.map((d,S,y)=>ce.createElement(ce.Fragment,{key:d.id},d.unsupported?ce.createElement(pi,{namespace:d}):ce.createElement(Ru,{value:l.includes(d.value),namespace:d,type:r?"radio":"checkbox",onClick:()=>m(d.value)}),S!==y.length-1&&ce.createElement(mi,{size:10})))))),ce.createElement(mi,{size:20}),ce.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},an.t("Connect")))}i(qn,"Namespaces");import{i18n as fi}from"@lingui/core";import{Button as Yk,Divider as Es,Image as Zk,MessageBox as Jk}from"@rango-dev/ui";import{useWallets as Rk}from"@rango-dev/wallets-react";import Ye from"react";import{styled as Qk}from"@rango-dev/ui";var td=Qk("div",{display:"flex",justifyContent:"end"});import{i18n as bs}from"@lingui/core";import{Button as Hk,Spinner as Gk}from"@rango-dev/ui";import{useWallets as Vk}from"@rango-dev/wallets-react";import xs,{useLayoutEffect as Kk,useRef as jk,useState as Xk}from"react";var od=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=Vk(),[l,p]=Xk(null),m=c(o).namespaces?.get(n.value),f=m.accounts?.[0]?.split(":"),h=jk(!1);Kk(()=>{r&&!h.current&&g(o,n.value)},[]);let g=i(async(y,C)=>{try{h.current=!0,await a(y,[{namespace:C,network:""}])}catch(T){p(T)}finally{h.current=!1}},"handleConnectNamespace"),d=i(async y=>{p(null),y.connected?await s(o,[n.value]):g(o,n.value)},"handleButtonClick"),S=i(()=>m.connected?bs.t("Disconnect"):l?bs.t("Try again"):bs.t("Connect"),"getButtonText");return xs.createElement(No,{namespace:n,connected:m.connected,error:l?.message,address:m.connected?io(f?.[f?.length-1]):"",suffix:m.connecting?xs.createElement(Gk,{color:"info"}):xs.createElement(Hk,{id:"widget-name-space-connect-btn",variant:"ghost",type:m.connected?"error":"primary",size:"xsmall",onClick:async()=>d(m)},S())})},"NamespaceDetachedItem");function Qn(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=Rk(),s=a(r.type);return Ye.createElement(Ye.Fragment,null,Ye.createElement(Jk,{type:"info",title:fi.t("Connect {wallet}",{wallet:r.type}),description:fi.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Ye.createElement(Zk,{src:r.image,size:45})}),Ye.createElement(Es,{size:30}),Ye.createElement(td,null,Ye.createElement(Yk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},fi.t("Disconnect wallet"))),Ye.createElement(di,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Ye.createElement(Ye.Fragment,{key:c.id},c.unsupported?Ye.createElement(pi,{namespace:c}):Ye.createElement(od,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Ye.createElement(Es,{size:10})))),Ye.createElement(Es,{size:20}),Ye.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},fi.t("Done")))}i(Qn,"Detached");import{i18n as sn}from"@lingui/core";import{Divider as rd,Image as nT,MessageBox as rT,Select as iT,TextField as aT}from"@rango-dev/ui";import yt,{useEffect as sT,useState as id}from"react";import{namespaces as eT}from"@rango-dev/wallets-shared";var gi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Is(t){let e=t?eT[t]?.derivationPaths:null;return e?[...e,gi]:[]}i(Is,"getDerivationPaths");import{Button as tT,styled as As,Typography as oT}from"@rango-dev/ui";var nd=As("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ns=As(oT,{paddingLeft:"$10"}),Bs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},xP=As(tT,{minHeight:"$40"});var ad="0";function Hn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=id(null),[c,l]=id(ad),p=a===gi.id,u=Is(o),m=i(({value:h})=>{let g=u?.find(d=>d.id===h);g&&(a===gi.id&&Number.isNaN(Number(c))&&l(ad),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return sT(()=>{s(Is(o)[0]?.id||null)},[o]),yt.createElement(yt.Fragment,null,yt.createElement(rd,{size:20}),yt.createElement(rT,{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:yt.createElement(nT,{src:n,size:45})}),yt.createElement(nd,null,yt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},sn.t("Choose Derivation Path Template")),yt.createElement(iT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:m,styles:{trigger:Bs}}),yt.createElement(rd,{size:20}),yt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},p?sn.t("Enter Path"):sn.t("Enter Index")),yt.createElement(aT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Bs})),yt.createElement(rn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},sn.t("Confirm")))}i(Hn,"DerivationPath");import{i18n as ln}from"@lingui/core";import{Image as pT,MessageBox as Ws,WalletState as uT}from"@rango-dev/ui";import{useWallets as dT}from"@rango-dev/wallets-react";import Bo from"react";import{keyframes as lT,styled as hi}from"@rango-dev/ui";var DP=hi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),sd=hi("div",{position:"relative"}),cT=lT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ld=hi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${cT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),cd=hi("div",{"& img":{borderRadius:"50%"}});function Ls(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=dT();return Pn(a(n))===uT.CONNECTED?Bo.createElement(Ws,{type:"success",title:ln.t("Wallet Connected"),description:ln.t("Your wallet is connected, you can use it to swap.")}):o?Bo.createElement(Ws,{type:"error",title:ln.t("Failed to Connect"),description:o||ln.t("Your wallet is not connected. Please try again.")}):Bo.createElement(Ws,{type:"loading",title:ln.t("Connecting to your wallet"),description:ln.t("Click connect in your wallet popup."),icon:Bo.createElement(sd,null,Bo.createElement(cd,null,Bo.createElement(pT,{src:r,size:45})),Bo.createElement(ld,null))})}i(Ls,"ConnectStatus");import{i18n as Ms}from"@lingui/core";import{Button as mT,Divider as pd,MessageBox as fT}from"@rango-dev/ui";import yi from"react";function Ps(t){let{displayName:e,onConfirm:o,id:n}=t;return yi.createElement(fT,{id:n,title:Ms.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ms.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},yi.createElement(pd,{size:18}),yi.createElement(pd,{size:32}),yi.createElement(mT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ms.t("Confirm")))}i(Ps,"ExperimentalChain");function ud(t,e){return t().status==="init"&&!!e}i(ud,"isOnStatus");function Gn(t){return t().status==="namespace"}i(Gn,"isOnNamespace");function Vn(t){return t().status==="derivationPath"}i(Vn,"isOnDerivationPath");function wo(t){return t().status==="detached"}i(wo,"isOnDetached");var ST=3e3,CT=300;function Kn(t){let e=yT(),[o,n]=dd(!1),[r,a]=dd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:m,resetState:f,handleDisconnect:h}=Vo(),g=i(w=>{u(t.wallet,w).then(T).catch(s)},"handleConfirmNamespaces"),d=i(()=>{y()},"handleDetachedConfirm"),S=i(w=>{if(!w)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(w).then(T).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((w,x)=>{let A=w.status==="connected",I=["disconnected","disconnected-unhandled"].includes(w.status);A?(t.onConnect?.(),x||(e.current=setTimeout(y,ST))):I&&y()},"afterConnected");return hT(()=>{if(t.wallet){C();let w=!1,x=!0;i(()=>{setTimeout(()=>{x=!1,w||n(!0)},CT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(w=!0),T(I,x)}).catch(s)}},[t.wallet]),ao.createElement(J,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},ud(m,t.wallet)&&ao.createElement(ao.Fragment,null,ao.createElement(Ls,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),ao.createElement(gT,{direction:"vertical",size:32})),Gn(m)&&ao.createElement(qn,{onConfirm:g,value:m().namespace}),Vn(m)&&ao.createElement(Hn,{onConfirm:S,value:m().derivationPath}),wo(m)&&ao.createElement(Qn,{onConfirm:d,onDisconnectWallet:()=>void h(m().namespace.targetWallet),value:m().namespace,selectedNamespaces:m().selectedNamespaces}))}i(Kn,"StatefulConnectModal");import{Provider as bT}from"@rango-dev/wallets-react";import Si,{createContext as xT,useEffect as yd,useMemo as ET,useRef as Sd}from"react";import{useEffect as kT}from"react";function md(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(md,"hashProviders");function _s(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return kT(()=>{o(),r()},[md(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(_s,"useWalletProviders");import{legacyFormatAddressWithNetwork as TT,legacyReadAccountAddress as fd}from"@rango-dev/wallets-core/legacy";import{Events as cn}from"@rango-dev/wallets-react";import{isEvmBlockchain as wT}from"rango-sdk";function gd(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(wT).map(d=>d.name),u=i((d,S)=>{let[y,,C,T,w]=d,x={walletType:y,network:T.network??void 0,accounts:C};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let A=rs(y,C,p,S.supportedChainNames,w.isContractWallet);A.length&&e(A,w.namespace,T.derivationPath)},"onAccountsEvent"),m=i((d,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=_n(T.supportedBlockchains);y&&u([d,S,y,C,T],{supportedChainNames:w})}S===cn.PROVIDER_DISCONNECTED&&(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===cn.NAMESPACE_DISCONNECTED&&n(d,y)},"handleUpdatesForHub"),f=i((d,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=_n(T.supportedBlockchains),x=[],A=[];if(y?.forEach(E=>{let{network:v}=fd(E);p.includes(v)?x.push(E):A.push(E)}),r.filter(E=>E.walletType===d).map(E=>TT(E.address,E.chain)).length>0){if(x.length>0){let E=rs(d,x,p,w,T.isContractWallet);a(d,{chains:E.map(v=>v.chain)})}A.length>0&&a(d,{chains:A.map(E=>{let{network:v}=fd(E);return v})})}y?u([d,S,y,C,T],{supportedChainNames:w}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((d,S,y,C,T)=>{if(S===cn.CONNECTED&&y){let w={walletType:d,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===cn.NETWORK&&y){let w={walletType:d,network:y,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((d,S,y,C,T)=>{T.isHub?m(d,S,y,C,T):f(d,S,y,C,T),h(d,S,y,C,T)},"handler")}}i(gd,"useUpdates");import{LegacyEvents as vT}from"@rango-dev/wallets-core/legacy";function hd(t,e){let[o,n,r,a,s]=e;n!==vT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(hd,"propagateEvents");var Ci=xT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function IT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=k(),a=k().blockchains(),s=k().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=_s(s.wallets,c),p=Sd(),u=Sd(),{handler:m}=gd({onConnectWalletHandler:p,onDisconnectWalletHandler:u});yd(()=>{n().catch(console.log)},[]),yd(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=te.use.isActiveTab(),h=ET(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Si.createElement(Ci.Provider,{value:h},Si.createElement(bT,{allBlockChains:a,providers:l,onUpdateState:(g,d,S,y,C)=>{let T=[g,d,S,y,C];m(...T),t.onUpdateState&&hd(t.onUpdateState,T)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(IT,"Main");function ki(t){let{config:e,...o}=t;return Si.createElement(Ou,{config:e},Si.createElement(IT,{...o,config:e}))}i(ki,"WidgetWallets");import Ga from"react";import AT,{Fragment as NT}from"react";import{MemoryRouter as BT,useInRouterContext as WT}from"react-router";function Cd({children:t}){let o=WT()?NT:BT;return AT.createElement(o,null,t)}i(Cd,"AppRouter");import{I18nManager as S0}from"@rango-dev/ui";import wp from"react";import qe from"react";import{useRoutes as i0}from"react-router-dom";var O={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 Ii}from"react";import nt from"bignumber.js";import{create as _T}from"zustand";import{subscribeWithSelector as DT}from"zustand/middleware";import{i18n as Ct}from"@lingui/core";import{getRelatedWalletOrNull as PT,RouteEventType as ED}from"@rango-dev/queue-manager-rango-preset";import Ve from"bignumber.js";import{PendingSwapNetworkStatus as Xn}from"rango-types";import{i18n as Ge}from"@lingui/core";var oe=i(()=>({genericServerError:Ge.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ge.t("Please reset your liquidity sources."),description:Ge.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Ge.t("No Routes Found."),description:Ge.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:Ge.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Ge.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Ge.t("High Price Impact"),title:Ge.t("Price impact is too high!"),description:Ge.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Ge.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Ge.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ge.t("USD Price Unknown"),title:Ge.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ge.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ge.t("Confirm USD Price Unknown")}}),"errorMessages");function kd(t){return t.type===0?t.diagnosisMessage??oe().noResultError.title:t.type===1?t.diagnosisMessage??oe().genericServerError:""}i(kd,"getQuoteErrorMessage");import{i18n as Ti}from"@lingui/core";var Wo=i(()=>({connectWallet:Ti.t("Connect Wallet"),swap:Ti.t("Swap"),swapAnyway:Ti.t("Swap anyway"),ethWarning:Ti.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ds(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(Ds,"getFeeLabel");var $s=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Td=100,wd=30,vd=15,bd=60;var xd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Ed=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as MT}from"@rango-dev/queue-manager-rango-preset";import dD from"bignumber.js";function Ad(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(Ad,"getRequiredBalanceOfWallet");function Kt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Kt,"getPriceImpactLevel");function wi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=MT(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=vo(a?a.toBlockchain:n.fromBlockchain,e),l=vo(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),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:m}}i(wi,"createRetryQuote");function pn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=jn(o),s=St(o);if(o&&a&&s){let p=Vt(a.toString(),s.toString());if(!!p&&Md(a,p)){let m=bi(o?.swaps,n),f=Kt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:m,warningLevel:f}}}if(e&&Dd(e,o))return{type:4,usdValueChange:D(St(o)?.minus(St(e)??0).toString()??"0",null,2),percentageChange:D(Vt(St(e)??"1",St(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=xi(o.swaps),l=r>Zo;if(_d(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Pd(o,r),minRequiredSlippage:c};return null}i(pn,"generateQuoteWarnings");function Nd(t){return![4].includes(t.type)}i(Nd,"isQuoteWarningConfirmationRequired");function Vt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Fs(t.toString(),e.toString());return n&&n<0?n:null}i(Vt,"getPriceImpact");var Bd=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"),vi=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"),Wd=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Ld=i(t=>{let e=i((o,n)=>{let r=$s.indexOf(o.value),a=$s.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 xd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ve(r)))}i(Md,"hasHighValueLoss");function $d(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(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($d,"hasLimitError");function Fd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ve(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ve(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=Ct.t({id:"Required: >= {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=Ct.t({id:"Required: > {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=Ct.t({id:"Required: <= {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=Ct.t({id:"Required: < {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Fd,"getLimitErrorMessage");function Od(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Wo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Wo().swap,action:"confirm-swap",disabled:!0}:s?{title:Wo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Wo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Wo().swap,action:"confirm-swap",disabled:!1}:{title:Wo().connectWallet,action:"connect-wallet",disabled:!1}}i(Od,"getSwapButtonState");function Os(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(le))&&e&&e!=="0"&&n!==0)}i(Os,"canComputePriceImpact");function Us(t,e){let o=le;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ve(r.amount).multipliedBy(a||0))}return o}i(Us,"getUsdFeeOfStep");function bi(t,e){return t.reduce((o,n)=>o.plus(Us(n,e)),le)}i(bi,"getTotalFeeInUsd");function zs(t){let e=le,o=new Ve(t.price||0);return e=e.plus(new Ve(t.amount).multipliedBy(o)),e}i(zs,"getUsdFee");function Ud(t){return t.reduce((e,o)=>e.plus(zs(o)),le)}i(Ud,"getTotalFeesInUsd");function zd(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(zd,"getFeesGroup");function qd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(qd,"checkSlippageErrors");function Pd(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?Object.fromEntries(o):null}i(Pd,"checkSlippageWarnings");function xi(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(xi,"getMinRequiredSlippage");function _d(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(_d,"hasProperSlippage");function Qd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:m,affiliateWallets:f,destination:h,contractCall:g}=t,d=a?.reduce((C,T)=>(C[T.chain]=T.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:d??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Qd,"createQuoteRequestBody");function Hd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Hd,"getWalletsForNewSwap");function jn(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Ve(e).multipliedBy(o)}i(jn,"getUsdInputFrom");function St(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new Ve(e).multipliedBy(o)}i(St,"getUsdOutputFrom");function Fs(t,e){return new Ve(e).div(new Ve(t)).minus(1).multipliedBy(Td).toNumber()}i(Fs,"getPercentageChange");function Dd(t,e){let o=jn(t),n=St(t),r=St(e);if(!o||!n||!r)return!1;let a=Fs(n.toString(),r.toString());return Ed.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Dd,"isOutputAmountChangedExcessively");function Gd(t,e,o){let n=t.validationStatus,r=Eo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Ad(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=D(new Ve(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=D(new Ve(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=Ct.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=Ct.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=Ct.t(" for input and network fee")),Ct.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:gt(s.asset.blockchain,o)}})})}i(Gd,"generateBalanceWarnings");function Yn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Xn.NetworkChanged}i(Yn,"isNetworkStatusInWarningState");function Vd(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?PT(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case Xn.WaitingForConnectingWallet:r=u?Ct.t("Connect {wallet}",{wallet:u}):r;break;case Xn.WaitingForQueue:r=r||Ct.t("Waiting for other running tasks to be finished");break;case Xn.WaitingForNetworkChange:r=r||Ct.t("Waiting for changing wallet network");break;case Xn.NetworkChangeFailed:r=r||Ct.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");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(Vd,"getSwapMessages");function Kd(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(Kd,"getLastConvertedTokenInFailedSwap");function jd(t){return t.status==="failed"}i(jd,"shouldRetrySwap");function Xd(t,e,o,n,r,a){if(!n||t)return!0;let s=Eo({filter:"all",quote:n}),c=Eo({filter:"required",quote:n}),l=s.every(m=>r.some(f=>f.chain===m)),p=c.every(m=>r.some(f=>f.chain===m)),u=o&&a?jo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Xd,"isConfirmSwapDisabled");function Yd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Yd,"isTokensIdentical");var Ei=i((t,e)=>t?.usdPrice?new nt(e||le).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=on(_T()(DT(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new nt(0),outputUsdValue:new nt(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=le,a=o.inputUsdValue;return Mn(o.inputAmount)?(e&&(n=e?.outputAmount?new nt(e?.outputAmount):null,a=jn(e)??le,r=St(e)??le),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new nt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new nt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new nt(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:Ei(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 nt(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=pu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Xr(e)||(o=ou(o),o=nu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ei(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:Ei(n??null,s),outputUsdValue:new nt(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?Ei(e.toToken,e.outputAmount?.toString()||""):new nt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new nt(0),inputUsdValue:new nt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new nt(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})})))),Zd=U.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Ce.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&&Ce.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 Jd(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=U(),u=k().config,m=k().fetchStatus,f=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:g,setAffiliatePercent:d,setAffiliateWallets:S}=k(),y=u?.from?.tokens,C=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,x=Ii(void 0),A=Ii(void 0),I=Ii(void 0),E=Ii(void 0);un(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),un(()=>{if(m==="success"){r();let v=f.find(P=>P.name===u?.from?.blockchain),b=u?.from?.token,B=b&&h(b);(v||!v&&I.current)&&n(v??null),B?a({token:B,meta:{blockchains:f}}):!B&&x.current&&a({token:null}),I.current=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),un(()=>{ls(s,y)&&a({token:null}),cs(l,C)&&n(null)},[y,C]),un(()=>{ls(c,T)&&a({token:null}),cs(p,w)&&o(null)},[T,w]),un(()=>{if(m==="success"){r();let v=f.find(P=>P.name===u?.to?.blockchain),b=u?.to?.token,B=b&&h(b);(v||!v&&E.current)&&o(v??null),B?e({token:B,meta:{blockchains:f}}):!B&&A.current&&e({token:null}),E.current=u?.to?.blockchain,A.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),un(()=>{g(u?.affiliate?.ref??null),d(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Jd,"useSyncStoresWithConfig");import{useEffect as Hs,useRef as $T}from"react";import{useInRouterContext as FT,useLocation as OT,useSearchParams as UT}from"react-router-dom";function qs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(qs,"convertTokenSearchParamToAsset");function Qs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Qs,"tokenToSearchParam");function Vs(){let t=OT(),[e,o]=UT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:m,setInputAmount:f}=U(),h=k().fetchStatus,g=k().blockchains(),d=FT(),{updateIframe:S,updateCampaignMode:y}=k(),C=k().isInCampaignMode(),T=$T(),{findToken:w}=k(),x=i(()=>{let I={};for(let[M,ee]of e.entries())M.startsWith("utm_")&&(I[M]=ee);let E=e.get("fromAmount"),v=e.get("fromBlockchain"),b=e.get("fromToken"),B=e.get("toBlockchain"),P=e.get("toToken"),F=e.get("autoConnect"),q=e.get("clientUrl"),Z=e.get("liquiditySources"),V=e.get("blockchain");return{fromAmount:E,fromBlockchain:v,fromToken:b,toBlockchain:B,toToken:P,autoConnect:F,clientUrl:q,liquiditySources:Z,utmQueryParams:I,blockchain:V}},"getUrlSearchParams"),A=i(I=>{for(let E in I)I[E]||delete I[E];o(I,{replace:!0})},"updateUrlSearchParams");Hs(()=>{let{autoConnect:I,clientUrl:E,utmQueryParams:v,blockchain:b}=x();d&&h==="success"&&A({fromBlockchain:n?.name,fromToken:Qs(a),toBlockchain:r?.name,toToken:Qs(s),fromAmount:c,autoConnect:I??void 0,clientUrl:E??void 0,blockchain:b??void 0,liquiditySources:C?T.current:void 0,...v})},[t.pathname,c,n,a,r,s,C,h]),Hs(()=>{if(!d)return;let I=x();if(!T.current&&I.liquiditySources&&(T.current=I.liquiditySources),I.fromAmount&&f(I.fromAmount),h==="success"){let E=g.find(q=>q.name===I.fromBlockchain),v=I.fromToken&&E&&qs(I.fromToken,E),b=v?w(v):void 0,B=g.find(q=>q.name===I.toBlockchain),P=I.toToken&&B&&qs(I.toToken,B),F=P?w(P):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:g}})),B&&(p(B),F&&m({token:F,meta:{blockchains:g}}))}},[h]),Hs(()=>{let{clientUrl:I,liquiditySources:E}=x();S("clientUrl",I||void 0),y("liquiditySources",E?.split(",")??void 0)},[])}i(Vs,"useSyncUrlAndStore");import{i18n as hn}from"@lingui/core";import{Alert as sv,Button as lv,darkTheme as cv,Divider as vl,DoneIcon as pv,styled as uv,TextField as dv,Typography as mv}from"@rango-dev/ui";import je,{useState as fv}from"react";import{useNavigate as gv,useSearchParams as hv}from"react-router-dom";import{ChevronRightIcon as zT,Divider as nm,Image as qT,Typography as rm}from"@rango-dev/ui";import bt from"react";import{darkTheme as Rd,styled as Ks}from"@rango-dev/ui";var em=Ks("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Rd} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Rd} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),tm=Ks("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),om=Ks("div",{display:"flex"});function js(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return bt.createElement(tm,null,bt.createElement(rm,{size:"large",variant:"label"},n),bt.createElement(nm,{size:10}),bt.createElement(em,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},bt.createElement(om,null,r&&bt.createElement(bt.Fragment,null,bt.createElement(qT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),bt.createElement(nm,{size:4,direction:"horizontal"})),bt.createElement(rm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),bt.createElement(zT,{size:12,color:"black"})))}i(js,"BlockchainSelectorButton");import{i18n as Rs}from"@lingui/core";import{Button as VT,Divider as lm,MessageBox as KT}from"@rango-dev/ui";import so,{useEffect as cm,useState as el}from"react";import{i18n as Ai}from"@lingui/core";import{Divider as Lo,ExternalLinkIcon as HT,Image as GT,Typography as mn}from"@rango-dev/ui";import ke from"react";var im="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function am(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(am,"generateExplorerLink");import{Button as QT,darkTheme as dn,styled as Xs}from"@rango-dev/ui";var Ys=Xs("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:{}}}}),sm=Xs("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"}}}),Zs=Xs(QT,{minHeight:"$40"});function Js(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=am(n.address,s),l=i(()=>window.open(im,"_blank"),"onClickLearnMore");return ke.createElement(J,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},ke.createElement(sm,null,ke.createElement(GT,{src:n.image===""?Hr:n.image,size:45,type:"circular"}),ke.createElement(Lo,{size:4}),ke.createElement(mn,{variant:"title",size:"medium"},n.symbol),ke.createElement(mn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ke.createElement(Lo,{size:4}),ke.createElement(mn,{variant:"body",size:"medium"},c?ke.createElement(Ys,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,ke.createElement(HT,{size:12,color:"gray"})):ke.createElement(Ys,null,n.address)),ke.createElement(Lo,{size:4}),n.coinSource&&ke.createElement(mn,{className:"_coin-source",variant:"body",size:"xsmall"},Ai.t("via")," ",ke.createElement(mn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ke.createElement(Lo,{size:"32"}),ke.createElement(mn,{size:"medium",variant:"body",className:"_custom-token-description"},Ai.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."))),ke.createElement(Lo,{size:40}),ke.createElement(Lo,{size:10}),ke.createElement(Zs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ai.t("Import Anyway")),ke.createElement(Lo,{size:10}),ke.createElement(Zs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ai.t("Learn More")))}i(Js,"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}=k(),[m,f]=el(!1),[h,g]=el(!1),[d,S]=el(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),T=i(()=>{S(!0),C()},"handleErrorModalButtonClick"),w=i(()=>{d&&n?.type==="network-error"&&(S(!1),y()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return cm(()=>{n&&f(!0)},[n]),cm(()=>{o&&e&&g(!0)},[o,e]),so.createElement(so.Fragment,null,so.createElement(J,{open:m,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:w,container:N()},so.createElement(KT,{title:n?.title??"",type:"error",description:n?.message||Rs.t("Failed Network, Please retry.")},so.createElement(lm,{size:40}),so.createElement(lm,{size:10}),so.createElement(VT,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:T},n?.type==="network-error"?Rs.t("Retry"):Rs.t("Add another custom token")))),o&&e&&so.createElement(Js,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>g(!1),open:h,onExit:p}))}i(Zn,"ImportCustomToken");import{useManager as tv}from"@rango-dev/queue-manager-react";import{BottomLogo as ov,Divider as zm,Header as nv}from"@rango-dev/ui";import Be,{useEffect as $i,useLayoutEffect as rv,useRef as qm,useState as Qm}from"react";import{useRef as jT}from"react";function Jn(){return window.self!==window.top}i(Jn,"isAppLoadedIntoIframe");function tl(){let t=jT(null),{iframe:e}=k(),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(tl,"useIframe");import{useNavigate as XT}from"react-router-dom";function Ke(){let t=XT();return()=>t(-1)}i(Ke,"useNavigateBack");import{useLayoutEffect as YT,useState as Rn}from"react";var pm=480,um=768,dm=1024,mm=1200,ZT=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<=pm),n(window.innerWidth>pm&&window.innerWidth<=um),a(window.innerWidth>um&&window.innerWidth<=dm),c(window.innerWidth>dm&&window.innerWidth<=mm),p(window.innerWidth>mm)},"handleResize");return YT(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),fn=ZT;import{createTheme as ll,darkTheme as pw,lightTheme as uw}from"@rango-dev/ui";import{useEffect as dw,useState as mw}from"react";import{theme as lw,darkColors as cw}from"@rango-dev/ui";import al from"react";var Ni=16,Bi=255,fm=.11;function JT(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(JT,"expandShortHexColor");function RT(t,e){return t.padStart(e,"0")}i(RT,"pad");function ol(t){let e=Math.min(Math.max(Math.round(t),0),Bi);return RT(e.toString(Ni),2)}i(ol,"intToHex");function ew(t){return`#${ol(t.red)}${ol(t.green)}${ol(t.blue)}`}i(ew,"rgbToHex");function tw(t){let e=parseInt(t.slice(1,3),Ni),o=parseInt(t.slice(3,5),Ni),n=parseInt(t.slice(5,7),Ni);return{red:e,green:o,blue:n}}i(tw,"hexToRGB");function ow(t,e){let o=1-fm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(ow,"generateShade");function nw(t,e){let o=fm*e;return{red:t.red+(Bi-t.red)*o,green:t.green+(Bi-t.green)*o,blue:t.blue+(Bi-t.blue)*o}}i(nw,"generateTint");function rw(t){return gm(t,ow)}i(rw,"calculateShades");function iw(t){return gm(t,nw)}i(iw,"calculateTints");function gm(t,e){let o=tw(t),n=[];for(let r=1;r<9;r++)n.push(ew(e(o,r)));return n}i(gm,"calculateColors");function nl(t,e,o){let a=iw(t).reverse().concat(t),s=rw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let m=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${m}`]=f)}return l}i(nl,"createTintsAndShades");function rl(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)&&!lu(r)){let l=JT(a);Object.assign(n,nl(l,r,s))}}return{...n,...e}}i(rl,"expandToGenerateThemeColors");var hm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),aw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=hm(o%52)+e;return hm(o%52)+e},"toAlphabeticName"),sw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),il=i(t=>aw(sw(5381,JSON.stringify(t))>>>0),"toHash");function sl(t){let e=lw.colors,o={...e,...cw},n,r;if(t?.light){let s={colors:rl(e,t.light)};n={id:`${ss}-light-${il(s)}`,tokens:s}}if(t?.dark){let s={colors:rl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ss}-dark-${il(s)}`,tokens:s}}return{light:n,dark:r}}i(sl,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>al.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(al.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(al.cloneElement(e,{key:c}))}}),o}i(ym,"joinList");function Sm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Sm,"doesWindowPreferDarkColorScheme");function lo(t){let{colors:e,fontFamily:o=Vp,borderRadius:n=wu,secondaryBorderRadius:r=vu}=t,[a,s]=mw(Sm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=sl(e),u=ll({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[u.className,uw.className],f=[u.className,pw.className];if(p){let g=ll(p.id,p.tokens);m.push(g.className)}if(l){let g=ll(l.id,l.tokens);f.push(g.className)}return dw(()=>{let g=i(d=>{d.matches?s("dark"):s("light")},"switchThemeListener");return Sm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),d=f.join(" ");return c==="auto"?a==="dark"?d:g:c==="dark"?d:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(lo,"useTheme");var kt=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 Cm}from"@lingui/core";import{Alert as fw,Button as gw}from"@rango-dev/ui";import km from"react";function cl(t){return km.createElement(fw,{action:km.createElement(gw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Cm.t("Activate this tab")),type:"warning",variant:"alarm",title:Cm.t("Another tab is open and handles transactions.")})}i(cl,"ActivateTabAlert");import{i18n as pl}from"@lingui/core";import{Button as hw,Divider as yw,MessageBox as Sw}from"@rango-dev/ui";import Wi from"react";function ul(t){let{open:e,onClose:o,onConfirm:n}=t;return Wi.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Wi.createElement(Sw,{title:pl.t("Activate current tab"),type:"warning",description:pl.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.")},Wi.createElement(yw,{size:20}),Wi.createElement(hw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},pl.t("Confirm"))))}i(ul,"ActivateTabModal");import{ChevronLeftIcon as Tw}from"@rango-dev/ui";import Am from"react";import{css as Cw,darkTheme as Tm,IconButton as kw,styled as Mo}from"@rango-dev/ui";var _t=Mo(kw,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Tm} &`]:{backgroundColor:"$neutral"}}}),wm=Mo("div",{position:"absolute",background:"$secondary500",[`.${Tm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),co=Mo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vm=Mo("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"}}}}),bm=Mo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xm=Mo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Em=Cw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Im=Mo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function dl(t){return Am.createElement(_t,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(Tw,{color:"black",size:16}))}i(dl,"BackButton");import{i18n as ww}from"@lingui/core";import{Button as vw,Typography as bw}from"@rango-dev/ui";import ml from"react";function fl(t){return ml.createElement(co,null,ml.createElement(vw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ml.createElement(bw,{variant:"label",size:"medium",color:"error500"},ww.t("Cancel"))))}i(fl,"CancelButton");import{i18n as xw}from"@lingui/core";import{Image as Ew,Tooltip as Iw,WalletIcon as Aw}from"@rango-dev/ui";import Po from"react";function gl(t){let{list:e}=vt(),o=e.filter(r=>r.state==="connected"),n=o.length?Po.createElement("div",{className:Em()},o.map(r=>Po.createElement(Im,{key:r.title},Po.createElement(Ew,{src:r.image,size:14})))):xw.t("Connect Wallet");return Po.createElement(Iw,{container:t.container,side:"bottom",content:n},Po.createElement(_t,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Po.createElement(wm,null),Po.createElement(Aw,{size:18,color:"black"})))}i(gl,"WalletButton");import{i18n as Mi}from"@lingui/core";import{NotificationsIcon as Hw,Popover as Gw,SettingsIcon as Vw,Tooltip as Pi,TransactionIcon as Kw}from"@rango-dev/ui";import De from"react";import{Notifications as Lw}from"@rango-dev/ui";import Mw from"react";import{useNavigate as Pw}from"react-router-dom";import{create as Nw}from"zustand";import{persist as Bw,subscribeWithSelector as Ww}from"zustand/middleware";var Ne=on(Nw()(Bw(Ww((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let 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 hl(){let t=Pw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=k().blockchains(),{findToken:a}=k();return Mw.createElement(Lw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>$p(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${O.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(hl,"NotificationContent");import{useManager as _w}from"@rango-dev/queue-manager-react";import{InProgressIcon as Dw}from"@rango-dev/ui";import Nm from"react";var $w=i(()=>{let{manager:t}=_w();return kt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Nm.createElement(xm,{id:"widget-header-history-badge-container"},Nm.createElement(Dw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Bm=$w;import{EventSeverity as Fw}from"@rango-dev/queue-manager-rango-preset";import{Typography as Ow}from"@rango-dev/ui";import Wm from"react";function Lm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Fw.WARNING);return o?Wm.createElement(vm,{isSever:n},Wm.createElement(Ow,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Lm,"NotificationsBadge");import{RefreshProgressButton as Uw}from"@rango-dev/ui";import yl,{useEffect as zw,useState as Mm}from"react";var qw=1e3,Pm=60,Qw=100;function Li({onClick:t}){let[e,o]=Mm(0),[n,r]=Mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");zw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===Pm&&c()},qw):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 yl.createElement(_t,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},yl.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},yl.createElement(Uw,{size:22,color:t?"black":"gray",progress:e/Pm*Qw})))}i(Li,"RefreshButton");function _o(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=ot("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Pi,{container:a||N(),side:"top",content:Mi.t("Refresh")},De.createElement(Li,{onClick:e})),!c&&De.createElement(Gw,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:De.createElement(hl,null)},De.createElement("div",null,De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Notifications")},De.createElement(_t,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(Hw,{size:18,color:"black"}),De.createElement(Lm,null))))),!r.includes("settings")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Settings")},De.createElement(_t,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement(Vw,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("History")},De.createElement(_t,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(Kw,{size:18,color:"black"}),De.createElement(Bm,null))))}i(_o,"HeaderButtons");import{i18n as Sl}from"@lingui/core";import{Divider as Dm,MessageBox as Yw,RefreshIcon as Zw}from"@rango-dev/ui";import gn from"react";import{Button as jw,styled as Xw}from"@rango-dev/ui";var _m=Xw(jw,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Cl(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(Yw,{title:Sl.t("Something went wrong"),type:"error",description:Sl.t("Something went wrong. Please refresh the app.")},gn.createElement(Dm,{size:30}),gn.createElement(_m,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},gn.createElement(Zw,{size:20,color:"primary"}),gn.createElement(Dm,{size:4,direction:"horizontal"}),Sl.t("Refresh"))))}i(Cl,"RefreshModal");function kl(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(kl,"onScrollContentAttachStatusToContainer");import{css as Rw,styled as _i}from"@rango-dev/ui";var Di=Rw({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),$m=_i("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"}}}}),Fm=_i("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Om=_i("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"}}}),Um=_i("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function re(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=tl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,m]=Qm(!1),{config:{features:f,theme:h}}=k(),{watermark:g,setShowCompactTokenSelector:d}=te(),S=g==="FULL",{activeTheme:y}=lo(h||{}),[C,T]=Qm(!1),w=ot("connectWalletButton",f),{isActiveTab:x,tabManagerInitiated:A,showActivateTabModal:I,setShowActivateTabModal:E,activateCurrentTab:v}=te(),b=Ke(),{manager:B}=tv(),{isTablet:P,isMobile:F}=fn(),Z=kt(B).map(({swap:we})=>we).some(we=>we.status==="running"),V=i(()=>v(Ao.forceClaim,Z),"onActivateTab"),M=i(()=>{r.onWallet?.()},"onConnectWallet"),ee=typeof r.hasBackButton>"u"||r.hasBackButton,R=qm(null),X=qm(null);return $i(()=>{let we=(p?.swapBoxBanner?.routes?.length??0)===0,se=!!p?.swapBoxBanner?.routes?.some(de=>location.pathname.endsWith(de));T(!!p?.swapBoxBanner&&(we||se))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),$i(()=>(Jn()&&X.current&&e(X.current),()=>{o()}),[]),$i(()=>(R.current?.addEventListener("scroll",kl),()=>{R.current?.removeEventListener("scroll",kl)}),[]),$i(()=>{m(c==="failed")},[c]),rv(()=>{let we=s==="auto"||!X.current||Jn(),se=F||P,de=i(()=>{we||(se?X.current.style.height=`${window.innerHeight-X.current.offsetTop}px`:X.current.style.height=`${700}px`,d(parseFloat(X.current.style.height)<640))},"handler");return de(),window.addEventListener("resize",de),()=>window.removeEventListener("resize",de)},[s,F,P]),Be.createElement($m,{height:s,id:tt.SWAP_BOX_ID,className:`${y()} ${Di()}`,ref:X,showBanner:C},Be.createElement(nv,{prefix:ee?Be.createElement(dl,{onClick:()=>{b(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!w&&Be.createElement(gl,{container:N(),onClick:M,isConnected:!!l?.length}),r.onCancel&&Be.createElement(fl,{onClick:r.onCancel}))}),Be.createElement(Fm,{ref:R},n),Be.createElement(ul,{open:I,onClose:()=>E(!1),onConfirm:V}),Be.createElement(Om,null,Be.createElement("div",{className:"footer__content"},A&&!x&&Be.createElement("div",{className:"footer__alert"},Be.createElement(cl,{onActivateTab:V}),Be.createElement(zm,{size:10})),a),Be.createElement(zm,{size:12}),Be.createElement("div",{className:`footer__logo ${S?"logo__show":"logo__hidden"}`},Be.createElement(ov,null))),C&&Be.createElement(Um,null,p?.swapBoxBanner?.element),Be.createElement(Cl,{open:u,onClose:()=>m(!1)}))}i(re,"Layout");import{styled as iv}from"@rango-dev/ui";var Hm="$20 $20 $10 $20",Tl=iv("div",{padding:Hm,overflowY:"auto",flexGrow:1});import{styled as av}from"@rango-dev/ui";var ie=av("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 po}from"@lingui/core";import{useState as wl}from"react";function Gm(){let[t,e]=wl(!1),[o,n]=wl(null),[r,a]=wl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(m,f){switch(m){case"duplicated":return{type:m,title:po.t("Duplicate Token"),message:po.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:po.t("Token Already Exists"),message:po.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:m,title:po.t("Token Not Found"),message:po.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:f}})};case"network-error":return{type:m,title:po.t("Network error"),message:po.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:m,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await ct().getCustomToken({blockchain:m,address:f});if(!g||!g.token||g.error){let y=p("not-found",m);n(y);return}let d=g.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let y=p("token-exist");n(y);return}return a({...d,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",m);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Gm,"useFetchCustomToken");var yv=uv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $10",backgroundColor:"$neutral300",[`.${cv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Vm(){let t=gv(),[e]=hv(),o=Ke(),n=k().blockchains(),r=e.get("blockchain")||"",a=vo(r,n),[s,c]=fv(""),{fetchCustomToken:l,token:p,loading:u,error:m,resetState:f}=Gm(),h=!!a&&jo(a,s),g=!a||!s||!h,d=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return je.createElement(re,{header:{title:hn.t("Add Custom Token")}},je.createElement(ie,null,je.createElement(yv,null,je.createElement("div",null,je.createElement(js,{onClick:()=>t(O.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")}),je.createElement(vl,{size:"24"}),je.createElement(mv,{size:"large",variant:"label"},hn.t("Enter Address")),je.createElement(vl,{size:10}),je.createElement(dv,{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&&je.createElement(pv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&je.createElement(je.Fragment,null,je.createElement(vl,{size:4}),je.createElement(sv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),je.createElement(lv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},hn.t("Import"))),je.createElement(Zn,{token:p,blockchain:a??void 0,address:s,error:m??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{m?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(Vm,"AddCustomTokenPage");import{i18n as ec}from"@lingui/core";import{useManager as ox}from"@rango-dev/queue-manager-react";import{Alert as nx,Button as rx,css as oc,Divider as tc,IconButton as Dg,styled as ix,Typography as ax,WalletIcon as sx}from"@rango-dev/ui";import Fe,{useEffect as ca,useLayoutEffect as lx,useRef as cx,useState as mr}from"react";import{useNavigate as px}from"react-router-dom";import{i18n as Do}from"@lingui/core";import{Alert as Qv,BalanceErrors as Hv,Button as Cf,ChevronLeftIcon as Gv,Divider as Wl,MessageBox as Vv,Typography as Ll}from"@rango-dev/ui";import ne,{useCallback as Kv,useEffect as kf,useMemo as jv,useState as Cn}from"react";import{useNavigate as Xv}from"react-router-dom";import{i18n as Il}from"@lingui/core";import{Alert as wv,ChevronDownIcon as vv,CloseIcon as bv,Divider as Rm,IconButton as ef,PasteIcon as xv,Typography as Ev,WalletIcon as Iv}from"@rango-dev/ui";import $e,{useEffect as Av,useRef as Nv}from"react";import zi,{useRef as kv}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Km,styled as Fi}from"@rango-dev/ui";var bl=300,Sv=Km({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Cv=Km({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),jm=Fi(yn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),xl=Fi(yn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Oi=Fi(yn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${Sv} ${bl}ms ease-out`},false:{animation:`${Cv} ${bl}ms ease-out`}}}}),Ui=Fi("div",{transition:`all ${bl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function qi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=kv(null);return zi.createElement(jm,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s),zi.createElement(Oi,{className:"collapsible_content",open:e},r),c==="bottom"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s))}i(qi,"CustomCollapsible");import{darkTheme as Xm,styled as El,TextField as Tv}from"@rango-dev/ui";var Ym=El("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"}}),Zm=El(Tv,{backgroundColor:"$neutral100",padding:"$15"}),Jm=El("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Xm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Xm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function tf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=U(),{config:s}=k(),c=k().blockchains(),l=zr(e.name,c),p=Nv(null),u=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!jo(e,r),g=i(()=>{a("")},"handleClear"),d=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),S=i(()=>r?$e.createElement(ef,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},$e.createElement(bv,{size:12,color:"gray"})):m?null:$e.createElement(ef,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},$e.createElement(xv,{size:16})),"renderSuffix");return Av(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(Ym,null,$e.createElement(qi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(Jm,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(Iv,{size:18,color:"info"}),$e.createElement(Rm,{size:4,direction:"horizontal"}),$e.createElement(Ev,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Il.t("Send to a different address"))),$e.createElement(Ui,{orientation:n?"up":"down"},$e.createElement(vv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(Zm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Il.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let C=y.target.value;a(C)}})),h&&$e.createElement($e.Fragment,null,$e.createElement(Rm,{size:4}),$e.createElement(wv,{variant:"alarm",type:"error",title:Il.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(tf,"CustomDestination");import{css as Bv,IconButton as Wv,SelectableWalletButton as Lv,styled as uo}from"@rango-dev/ui";var of=uo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),nf=uo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),rf=uo(Lv,{justifyContent:"center"}),af=uo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),sf=uo(Wv,{position:"absolute",left:"$20"}),lf=uo("div",{paddingTop:"$20"}),cf=Bv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),pf=uo("div",{display:"flex"}),uf=uo("div",{overflow:"visible",width:"100%"});import{i18n as Nl}from"@lingui/core";import{warn as $v}from"@rango-dev/logging-core";import{Divider as Fv,makeInfo as Ov,SelectableWallet as Uv,Typography as yf,WalletState as Qi}from"@rango-dev/ui";import rt,{useEffect as Sf,useState as or}from"react";import{Image as _v,MessageBox as Dv}from"@rango-dev/ui";import tr from"react";import{keyframes as Mv,styled as Al}from"@rango-dev/ui";var df=Al("div",{position:"relative"}),Pv=Mv({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),mf=Al("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Pv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),ff=Al("div",{"& img":{borderRadius:"50%"}});import{i18n as Sn}from"@lingui/core";function gf(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(gf,"generateMessageByStatus");function hf(t){let{status:e,displayName:o,image:n}=t,r=gf(e,o),a=e=="in-progress";return tr.createElement(Dv,{type:r.type,title:r.title,description:r.description,icon:a?tr.createElement(df,null,tr.createElement(ff,null,tr.createElement(_v,{src:n,size:45})),tr.createElement(mf,null)):void 0})}i(hf,"ExperimentalChainStatus");var zv=7,qv=3e3;function Bl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=te.use.isActiveTab(),{blockchains:l,connectedWallets:p}=k(),[u,m]=or(),[f,h]=or(null),[g,d]=or(!1),[S,y]=or(null),{suggestAndConnect:C}=Hi(),{list:T}=vt({chain:e}),[w,x]=or(T),A=T.length,I=a&&A-a>0,E=i(async b=>{d(!1),y("in-progress");try{await C(b.walletType,b.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Sf(()=>{x(b=>{let B=T.findIndex(P=>n(P.type,e));return I&&B>1?[T[B]].concat(T.filter((P,F)=>F!==B)):b.map(P=>T.find(F=>F.type===P.type)??P)})},[JSON.stringify(T)]);let v=document.getElementById(tt.SWAP_BOX_ID);return Sf(()=>{let b=null;return(S==="completed"||S==="rejected")&&(b=setTimeout(()=>y(null),qv)),()=>{b&&clearTimeout(b)}},[S]),rt.createElement(rt.Fragment,null,w.slice(0,a).map(b=>{let B=hu({connectedWallets:p,walletType:b.type,chain:e}),P=b.state===Qi.CONNECTED,F=B?io(B,zv):"",q=P&&!!b.needsNamespace&&!F,Z=Rr(l(),e),V=!p.find(de=>de.walletType===b.type&&de.chain===e),M=Z&&V&&b.state===Qi.CONNECTED,ee=i(async()=>{b.state===Qi.DISCONNECTED||q?m(b):M?(h({walletType:b.type,chain:e,address:B??""}),d(!0)):r({walletType:b.type,chain:e,address:B??""})},"onSelectableWalletClick"),R=Ov(b.state),X=i(()=>M?Nl.t({id:"Add {chain} chain",values:{chain:e}}):q?Nl.t("Chain not connected"):F||R.description,"getWalletDescription"),we=i(()=>b.state===Qi.CONNECTED?q?"neutral600":"neutral700":R.color,"getWalletDescriptionColor"),se=f?.chain?zr(f.chain,l()):void 0;return rt.createElement(rt.Fragment,{key:`${b.title}_${se}`},!!f&&rt.createElement(J,{id:"widget-wallets-list-watermarked-modal",open:!!f&&g,container:v,onClose:()=>{h(null)}},rt.createElement(Ps,{id:"widget-wallets-list-experimental-chain-container",displayName:se,onConfirm:()=>{E(f)}})),S&&rt.createElement(J,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:y.bind(null,null),container:v},rt.createElement(hf,{status:S,displayName:se,image:b.image}),rt.createElement(Fv,{direction:"vertical",size:32})),rt.createElement(Uv,{key:b.type,id:"widget-wallets-list-selectable-wallet-btn",description:X(),descriptionColor:we(),onClick:ee,selected:n(b.type,e),disabled:!c,...b}))}),rt.createElement(Kn,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{m(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):$v(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),I&&rt.createElement(rf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},rt.createElement(yf,{variant:"label",size:"medium"},Nl.t("Show more wallets"),rt.createElement(yf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(a??0)))))}i(Bl,"WalletList");var Yv=2;function Tf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Xv(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:f,setCustomDestination:h}=U(),{config:g,connectedWallets:d,setWalletsAsSelected:S}=k(),[y,C]=Cn(""),[T,w]=Cn([]),[x,A]=Cn(""),[I,E]=Cn(!!f),v=jv(()=>Eo({filter:"all",quote:l}),[l]),b=Eo({filter:"required",quote:l}),B=c.find(L=>L.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),P=i(L=>b.includes(L),"isWalletRequiredFor"),F=Kv(()=>d.filter(L=>L.selected&&v.includes(L.chain)),[d,v]),[q,Z]=Cn(F()),[V,M]=Cn([]),ee=i((L,W)=>M(H=>H.concat({blockchain:L,walletType:W})),"addNextSelectedWallets"),R=T.length>0,X=i((L,W)=>!!q.find(H=>H.walletType===L&&H.chain===W&&H.selected&&(P(W)||!P(W)&&!f)),"isSelected"),we=i((L,W,H)=>{let j=!1;return L.map(K=>{if(K.chain===W){let me=K.selected;return!j&&H?(j=!0,me=!0):H||(me=!1),{...K,selected:me}}return K})},"updateSelectableWallets"),se=i(L=>{E(L),L?P(B?.name??"")||Z(W=>we(W,B?.name||"",!1)):(h(""),Z(W=>we(W,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),de=i(L=>{if(y&&C(""),X(L.walletType,L.chain))return;let H=d.find(j=>j.walletType===L.walletType&&j.chain===L.chain);H&&(n(),L.chain===B?.name&&I&&!P(B.name)&&(E(!1),h(null)),Z(j=>j.filter(K=>K.chain!==L.chain).concat({...H,selected:!0})))},"onChange"),Oe=i(()=>{let L=q.filter(W=>W.selected);S(L),p(L),m(!0),o()},"onConfirmBalance"),wt=i(async()=>{w([]),A("");let L=await r?.({selectedWallets:q.filter(H=>H.selected),customDestination:f}),W=L.warnings;W?.balance?.messages&&w(W.balance.messages),L.error&&A(kd(L.error)),!L.error&&!W?.balance?.messages.length?Oe():w(W?.balance?.messages??[])},"onConfirmWallets");kf(()=>{Z(L=>{let W=[];return L.forEach(H=>{!d.some(K=>K.chain===H.chain&&K.walletType===H.walletType&&K.address===H.address)||W.push(H)}),W=W.concat(d.filter(H=>!!!W.find(K=>K.chain===H.chain)&&H.selected&&v.includes(H.chain))),W})},[d,v]),kf(()=>{let L=[];V.length>0&&(V.forEach(W=>{let H=d.find(j=>j.chain===W.blockchain&&j.walletType===W.walletType);H?de(H):L.push(W)}),M(L))},[d,V]);let ve=document.getElementById(tt.SWAP_BOX_ID);return ne.createElement(J,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:ve,...!y&&{styles:{container:{height:"100%"}},footer:ne.createElement(pf,null,ne.createElement(Cf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Xd(a,I,f,l,q,B),onClick:wt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Do.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:ne.createElement(af,null,ne.createElement(sf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ne.createElement(Gv,{size:16})),ne.createElement(Ll,{variant:"headline",size:"small"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:gt(y,c)}})))},anchor:"center"},ne.createElement(J,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:R,onClose:w.bind(null,[]),container:ve},ne.createElement(Vv,{title:Do.t("Insufficient account balance"),type:"error",description:ne.createElement(Hv,{messages:T??[]})},ne.createElement(Cf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Oe},Do.t("Proceed anyway")))),y&&ne.createElement(lf,null,ne.createElement("div",{className:cf()},ne.createElement(Bl,{chain:y,quoteChains:v,isSelected:X,selectWallet:de,onShowMore:()=>C(y),onConnect:L=>{ee(y,L)}}))),!y&&ne.createElement(ne.Fragment,null,x&&ne.createElement(ne.Fragment,null,ne.createElement(Qv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Do.t(x)}),ne.createElement(Wl,{size:12})),ne.createElement(uf,null,v.map((L,W)=>{let H=c.find(Qe=>Qe.name===L),j=`wallet-${W}`,K=W===v.length-1,me=K&&B&&g?.customDestination!==!1;return ne.createElement("div",{key:j},ne.createElement(of,null,ne.createElement(Ll,{variant:"title",size:"xmedium"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:H?.shortName}})),ne.createElement(Ll,{variant:"label",color:"$neutral700",size:"medium"},Do.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:H?.shortName}}))),ne.createElement(Wl,{size:24}),ne.createElement(nf,null,ne.createElement(Bl,{chain:L,quoteChains:v,isSelected:X,selectWallet:de,limit:Yv,onShowMore:()=>C(H?.name??""),onConnect:Qe=>{ee(L,Qe)}})),!K&&ne.createElement(Wl,{size:32}),me&&ne.createElement(tf,{blockchain:B,open:I,handleOpenChange:se}))}))))}i(Tf,"ConfirmWalletsModal");import{i18n as yb}from"@lingui/core";import{Alert as Sb,Button as Cb,Divider as Uf,InfoIcon as kb}from"@rango-dev/ui";import Ue from"react";import{Alert as Rv,Button as eb,Divider as _l,NoRouteIcon as tb,RefreshIcon as ob,Typography as Af}from"@rango-dev/ui";import pt from"react";import{i18n as wf}from"@lingui/core";var Zv=24,Jv=60;function vf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:wf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:wf.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(vf,"makeInfo");var Ml=(o=>(o[o.small=Zv]="small",o[o.large=Jv]="large",o))(Ml||{}),Pl=(o=>(o.small="small",o.large="medium",o))(Pl||{});import{styled as Gi}from"@rango-dev/ui";var bf=Gi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),xf=Gi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Ef=Gi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),If=Gi("div",{padding:"$6 $0"});function nr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=vf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),pt.createElement(bf,{id:"widget-no-result-container"},pt.createElement(tb,{size:Ml[n],color:"gray"}),pt.createElement(_l,{size:4}),pt.createElement(Af,{variant:"title",size:Pl[n]},oe().noResultError.title),n==="large"&&pt.createElement(_l,{size:4}),!!l.description&&pt.createElement(xf,{size:n},pt.createElement(Af,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),pt.createElement(_l,{size:n==="large"?"24":"4"}),!!l.alert&&pt.createElement(Ef,{size:n},pt.createElement(Rv,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&pt.createElement(eb,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:pt.createElement(If,null,pt.createElement(ob,{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 ib,Divider as ab,MessageBox as sb,Typography as lb,WarningIcon as cb}from"@rango-dev/ui";import jt from"react";import{Typography as Mf}from"@rango-dev/ui";import $l from"react";import{Button as nb,darkTheme as rb,styled as rr}from"@rango-dev/ui";var Nf=rr("div",{width:"100%"}),Dl=rr("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Bf=rr("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${rb} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wf=rr("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Lf=rr(nb,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function Pf(t){let{title:e,value:o,valueColor:n}=t;return $l.createElement(Bf,null,$l.createElement(Mf,{size:"medium",variant:"label",className:"_title"},e),$l.createElement(Mf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Pf,"QuoteErrorsModalItem");function _f(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:D(r.inputUsdValue,4,4)},{title:ir.t("Gas cost"),value:D(r.totalFee,2,2)},{title:ir.t("Receiving"),value:D(r.outputUsdValue,4,4)},{title:ir.t("Price impact"),value:D(r.priceImpact,2,2),valueColor:`${s}500`}];return jt.createElement(J,{id:"widget-high-value-loss-warning-modal",footer:jt.createElement(ib,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:jt.createElement(cb,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},jt.createElement(sb,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),jt.createElement(Dl,null,jt.createElement(ab,{size:"4"}),jt.createElement(lb,{size:"small",variant:"title"},ir.t("Details")),jt.createElement(Dl,null,c.map((l,p)=>jt.createElement(Pf,{key:p,...l})))))}i(_f,"HighValueLossWarningModal");import{i18n as kn}from"@lingui/core";function Df(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=kn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=kn.t("Increase")),o;if(t){switch(t.type){case 0:{Kt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title;break}case 4:{o.title=kn.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=kn.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=kn.t("Increase");break}case 3:{o.title=kn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Df,"makeAlerts");function $f(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i($f,"getRequiredSlippage");import{i18n as Tn}from"@lingui/core";import{Button as pb,Divider as Fl,MessageBox as ub,WarningIcon as db}from"@rango-dev/ui";import go from"react";import{useNavigate as mb}from"react-router-dom";function Ff(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=mb();return go.createElement(J,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},go.createElement(ub,{type:"warning",title:r.type===3?Tn.t("High slippage"):Tn.t("Low slippage"),description:r.type===3?Tn.t("Caution, your slippage is high. Your trade may be front run."):Tn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},go.createElement(Fl,{size:18}),go.createElement(Fl,{size:32}),go.createElement(Lf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},go.createElement(db,{color:"white",size:16}),Tn.t("Swap anyway")),go.createElement(Fl,{size:10}),go.createElement(pb,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+O.settings)},Tn.t("Change Slippage"))))}i(Ff,"SlippageWarningModal");import{Button as fb,MessageBox as gb,WarningIcon as hb}from"@rango-dev/ui";import Vi from"react";function Of(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Vi.createElement(J,{id:"widget-unknown-price-warning-modal",footer:Vi.createElement(fb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Vi.createElement(hb,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Vi.createElement(gb,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Of,"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:m,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,d=Df(e,o?.type===3||o?.type===4?o:null);d&&!n&&(d.action=null);let S=!!d&&!s,y=i(C=>{if(C==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,w=$f(e,T);f?.(w)}else C==="change-settings"&&m()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,g&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Uf,{size:10}),Ue.createElement(nr,{skipAlerts:s,error:o,fetch:c})),S&&Ue.createElement(Nf,null,Ue.createElement(Uf,{size:10}),Ue.createElement(Sb,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Ue.createElement(Wf,{onClick:l},Ue.createElement(kb,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Ue.createElement(Cb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>y(d.action)},d.actionButtonTitle||yb.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(_f,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(Ff,{...h,warning:e}),e.type===1&&Ue.createElement(Of,{...h,warning:e})))}i(ar,"QuoteWarningsAndErrors");import Xb from"bignumber.js";import ia from"react";import{i18n as $o}from"@lingui/core";import{Alert as Db,Divider as vn,FullExpandedQuote as $b,InfoIcon as Fb,NumericTooltip as fg,QuoteTag as Ob,StepDetails as Ub,TokenAmount as zb,Typography as bn}from"@rango-dev/ui";import Kl from"bignumber.js";import z,{useRef as qb,useState as Qb}from"react";import{styled as Ol}from"@rango-dev/ui";var Ul=Ol("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),zf=Ol("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),qf=Ol("div",{width:"100%",display:"flex"});import*as Ki from"@radix-ui/react-collapsible";import{Button as Tb,css as sr,darkTheme as We,Image as Qf,styled as Ze,Typography as wb}from"@rango-dev/ui";var vb=300,Hf=Ze(Ki.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Gf=sr({padding:"$10 $15"}),Vf=Ze(Tb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${We} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${We} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${We} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Kf=Ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${We} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}}}}]}),jf=sr({width:"100%",padding:"$15 $15 $10 $15"}),Xf=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"}}),Yf=sr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${We} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zf=Ze(Ki.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:{[`& ${Qf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Qf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Jf=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Rf=Ze(Oi,{width:"100%",background:"inherit"}),zl=Ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${vb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),CQ=Ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),eg=Ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${We} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),tg=Ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ql=Ze(wb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),og=Ze("div",{display:"flex",flexWrap:"wrap"}),Ql=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ng=Ze("div",{display:"flex"}),ji=Ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${We} &`]:{borderTopColor:"$neutral800"}});import{i18n as Dt}from"@lingui/core";import{ChevronDownIcon as xb,CloseIcon as Eb,Divider as Zi,IconButton as Ib,NumericTooltip as Ab,QuoteCost as Nb,Typography as xt}from"@rango-dev/ui";import Y,{useState as sg}from"react";import{css as bb,styled as Xi}from"@rango-dev/ui";var Yi=Xi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Hl=Xi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),rg=Xi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),ig=Xi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),ag=bb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Bb=i(t=>t.fee.isZero()?null:Y.createElement(Yi,null,Y.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(xt,{variant:"label",size:"medium"},"$",D(t.fee,4,4))),"NonPayableFee");function Gl(t){let[e,o]=sg(!1),[n,r]=sg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:m,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?xo():N(),d=zd(h),S=D(c,2,2);return Y.createElement(Y.Fragment,null,Y.createElement(Nb,{onClickFee:m?y=>{y.stopPropagation(),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:m?Dt.t("View more info"):void 0,tooltipContainer:g}),Y.createElement(J,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:Y.createElement(ig,{style:{textAlign:f?"left":"center"}},Y.createElement(xt,{variant:"title",size:"medium"},Dt.t("Gas & Fee Explanation")),Y.createElement(Ib,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(Eb,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(rg,null,Y.createElement(xt,{variant:"title",size:"small"},Dt.t("Details")),Y.createElement(Zi,{size:10}),Object.entries(d.payable).flatMap(([y,C])=>C.map((T,w)=>{let x=`payable-fee-${w}`,A=zs(T);return Y.createElement(Yi,{key:x},Y.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},Ds(y,Dt.t)),Y.createElement(Ab,{content:T.amount,container:g},Y.createElement(xt,{variant:"label",size:"medium"},D(T.amount,2,2),T.asset.symbol," ($",D(A,4,4),")")))})),Y.createElement(Yi,{className:"total_payable_fee"},Y.createElement(xt,{variant:"label",size:"medium"},Dt.t("Total Payable Fee")),Y.createElement(xt,{variant:"label",size:"medium"},"$",D(c,4,4))),Y.createElement(Hl,null),!!Object.keys(d.nonePayable).length&&Y.createElement(qi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Y.createElement("div",{className:ag()},Y.createElement(xt,{size:"small",variant:"body",color:"neutral700"},n?Dt.t("Hide non-payable fees"):Dt.t("Show non-payable fees")),Y.createElement(Zi,{size:4,direction:"horizontal"}),Y.createElement(Ui,{orientation:n?"up":"down"},Y.createElement(xb,{size:12,color:"gray"}))),open:n},Y.createElement(xt,{size:"small",variant:"title"},Dt.t("Description")),Y.createElement(Zi,{size:4}),Y.createElement(xt,{size:"small",variant:"body",color:"neutral700"},Dt.t(`The following fees are considered in the transaction output and
|
|
2
|
-
you won\u2019t need to pay extra gas for them.`)),Y.createElement(Zi,{size:10}),Object.entries(d.nonePayable).map(([y,C],T)=>{let w=Ud(C),x=Ds(y,Dt.t),A=`non-payable-fee-${T}`;return Y.createElement(Bb,{key:A,fee:w,label:x})}),Y.createElement(Hl,null)))))}i(Gl,"QuoteCostDetails");import{i18n as pg}from"@lingui/core";import{TokenAmount as ug}from"@rango-dev/ui";import Ji from"react";import{css as Wb,styled as Lb}from"@rango-dev/ui";var lg=Lb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),cg=Wb({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 Ji.createElement(lg,null,Ji.createElement(ug,{direction:"horizontal",label:pg.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}}),Ji.createElement("div",{className:cg()}),Ji.createElement(ug,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:pg.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 dg}from"@lingui/core";import{ChevronDownIcon as Mb,ChevronRightIcon as Pb,Divider as Vl,Image as _b,Tooltip as oa,Typography as Ri}from"@rango-dev/ui";import Q from"react";var ea=4,ta=6,cr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return Q.createElement(oa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},Q.createElement(Jf,{className:n,state:a},Q.createElement(_b,{src:o,size:16})))},"ImageComponent");function mg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=Bd(r),{isTablet:m,isMobile:f}=fn();return Q.createElement(Zf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},Q.createElement("div",{className:wn()},Q.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Via:")),Q.createElement(Vl,{direction:"horizontal",size:4}),r.map((h,g)=>{let d=`item-${g}`,S=Q.createElement(zl,null,Q.createElement(Pb,{size:12,color:"black"}));return f||m?Q.createElement(Q.Fragment,{key:d},Q.createElement(cr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,S)):Q.createElement(Q.Fragment,{key:d},p<=ea||p>ea&&g<ea-1?Q.createElement(Q.Fragment,null,Q.createElement(cr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,S)):g===ea-1&&Q.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:wn()},S,r.map((y,C)=>{let T=`image-${C}`;return C>=g&&Q.createElement(Q.Fragment,{key:T},Q.createElement(cr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&Q.createElement(Q.Fragment,null,S))}))},Q.createElement(Ql,{state:r.find((y,C)=>C>=g&&(y.state==="error"||y.state==="warning"))?.state},Q.createElement(Ri,{size:"xsmall",variant:"body"},"+",p-g))))})),Q.createElement("div",{className:wn()},Q.createElement("div",{className:"blockchains_section"},Q.createElement("div",{className:wn()},Q.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Chains:")),Q.createElement(Vl,{direction:"horizontal",size:4}),u.map((h,g)=>Q.createElement(Q.Fragment,{key:h.displayName},u.length<=ta||u.length>ta&&g<ta-1?Q.createElement(oa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},Q.createElement(cr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ta-1&&Q.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:wn()},u.map((d,S)=>S>=g&&Q.createElement(cr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:S>g?"blockchainImage":"",container:c})))},Q.createElement(Ql,{className:"blockchainImage"},Q.createElement(Ri,{size:"xsmall",variant:"body"},"+",u.length-g))))),Q.createElement(Vl,{direction:"horizontal",size:32}))),Q.createElement(zl,{orientation:a?"up":"down"},Q.createElement(Mb,{size:12,color:"black"}))))}i(mg,"QuoteTrigger");function jl(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:m=!1,container:f}=t,h=k().blockchains(),{findToken:g}=k(),d=k().swappers(),{customSlippage:S,slippage:y}=k(),C=S||y,[T,w]=Qb(t.expanded),x=qb(null),A=D(o.value,6,6),I=D(n.value,6,6),E=n.usdValue?D(n.usdValue,4,4):"",v=Vt(o.usdValue,n.usdValue??null),b=D(v,2,2),B=Kt(v??0),P=i((ve,L)=>ve.map((W,H)=>{let j,K=r?.type===3&&r.swap.swapperId===W.swapperId,me=r?.type===4&&!!r.recommendedSlippages?.[H],Qe=a?.type===2&&!!a.recommendedSlippages?.[H],He=K||me,be=Qe;He?j="error":be&&(j="warning");let Wt=He?$o.t("Slippage Error"):$o.t("Slippage Warning");return K&&(Wt=$o.t("Bridge Limit Error")),{swapper:{displayName:Bn(W.swapperId,d)??"",image:W.swapperLogo},from:{token:{displayName:W.from.symbol,image:W.from.logo},chain:{displayName:gt(W.from.blockchain,h)??"",image:W.from.blockchainLogo},price:{value:H===0&&!L?D(o.value,6,6):D(W.fromAmount,6,6),usdValue:D((W.from.usdPrice??0)*parseFloat(W.fromAmount),4,4),realValue:H===0?o.value:W.fromAmount,realUsdValue:new Kl(W.from.usdPrice??0).multipliedBy(W.fromAmount).toString()}},to:{token:{displayName:W.to.symbol,image:W.to.logo},chain:{displayName:gt(W.to.blockchain,h)||"",image:W.to.blockchainLogo},price:{value:D(W.toAmount,6,6),usdValue:D((W.to.usdPrice??0)*parseFloat(W.toAmount),4,4),realValue:W.toAmount,realUsdValue:new Kl(W.to.usdPrice??0).multipliedBy(W.toAmount).toString()}},state:j,alerts:He||be?z.createElement(zf,{dense:m},z.createElement(Db,{variant:"alarm",type:He?"error":"warning",title:Wt,id:"widget-quote-footer-step-alarm-alert",footer:z.createElement(qf,null,K&&z.createElement("div",null,z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),z.createElement(vn,{direction:"vertical",size:2}),z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {amount} {symbol}",values:{amount:D(W.fromAmount,6,6),symbol:W?.from.symbol}}))),(me||Qe)&&!K&&z.createElement("div",null,z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[H]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[H]}}})),z.createElement(vn,{direction:"vertical",size:2}),z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Ln(W.estimatedTimeInSeconds),fee:D(Us(W,g),2,2),internalSwaps:W.internalSwaps?P(W.internalSwaps):void 0}}),"getQuoteSteps"),F=P(e?.swaps??[]),q=F.length,Z=f||N(),V=Ld(t.quote.tags||[]),M=!!u,ee=Yr(e?.swaps),R=Ln(ee),X=bi(e?.swaps??[],g),we=D(X,2,2),se=X.gte(new Kl(wd)),de=ee/bd>=vd,Oe=F[q-1],wt=F[0];return!wt||!Oe?null:m?z.createElement($b,{selected:c,fee:we,time:R,tooltipContainer:xo(),steps:F,tags:V,id:"widget-quote-full-expanded-quote-container",quoteCost:z.createElement(Gl,{quote:e,fullExpandedMode:!0,time:R,fee:X,feeWarning:se,timeWarning:de,showModalFee:p,steps:q}),percentageChange:b,warningLevel:B,outputPrice:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):z.createElement(Kf,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},z.createElement("div",{className:jf()},!l&&V.length?z.createElement(z.Fragment,null,z.createElement(ng,null,V.map((ve,L)=>{let W=`${ve.value}_${L}`;return z.createElement(z.Fragment,{key:W},z.createElement(Ob,{label:ve.label,value:ve.value}),z.createElement(vn,{size:4,direction:"horizontal"}))})),z.createElement(ji,null),!M&&z.createElement(vn,{size:4})):null,z.createElement("div",{id:"portal-root",className:Xf()},z.createElement(Gl,{quote:e,time:R,fee:X,feeWarning:se,timeWarning:de,showModalFee:p,steps:q}),M&&z.createElement(Vf,{onClick:ve=>{ve.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},z.createElement(bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},$o.t("See All Routes")))),s==="basic"&&z.createElement("div",{className:Yf()},z.createElement(tg,null,z.createElement(Fb,{size:12,color:"gray"})),z.createElement(og,null,z.createElement(ql,{size:"small",variant:"body"},`${A} ${wt.from.token.displayName} = `),z.createElement(fg,{content:n.value,container:Z,open:n.value?void 0:!1},z.createElement(ql,{size:"small",variant:"body"},"\xA0",`${I} ${Oe.to.token.displayName}`))),z.createElement(fg,{content:n.usdValue,container:Z},z.createElement(vn,{size:2,direction:"horizontal"}),z.createElement(bn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&z.createElement(zb,{id:"widget-quote-token-amount-container",tooltipContainer:Z,type:"output",direction:"vertical",price:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:Oe.to.token.displayName,image:Oe.to.token.image},chain:{image:Oe.to.chain.image},percentageChange:b,warningLevel:B}),s==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(lr,{from:wt.from,to:Oe.to,percentageChange:b,warningLevel:B}),z.createElement(vn,{size:4}))),z.createElement(Hf,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},z.createElement(mg,{type:s,quoteRef:x,selected:c,setExpanded:w,container:Z,expanded:T,steps:F}),z.createElement(Rf,{open:T},z.createElement(eg,null),z.createElement("div",{className:Gf()},F.map((ve,L)=>{let W=`item-${L}`;return z.createElement(Ub,{type:"quote-details",className:"widget-quote-step-details-container",key:W,tooltipContainer:Z,step:ve,hasSeparator:L!==F.length-1,state:ve.state})})))))}i(jl,"Quote");import{Divider as Kb,Skeleton as jb}from"@rango-dev/ui";import Jt from"react";import{darkTheme as Hb,styled as na}from"@rango-dev/ui";var gg=na("div",{$$color:"$colors$neutral100",[`.${Hb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),hg=na("div",{paddingTop:"$2"}),yg=na("div",{paddingLeft:"$8"}),Sg=na("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ag,Divider as Et,Skeleton as ut}from"@rango-dev/ui";import G from"react";import{css as Gb,styled as Zt}from"@rango-dev/ui";var Xl=Zt("div",{display:"flex"}),Cg=Zt("div",{padding:"$10 $0 $20"}),kg=Zt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Tg=Zt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),wg=Zt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),vg=Zt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),bg=Zt("div",{width:"65%",display:"flex",justifyContent:"start"}),xg=Zt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Eg=Zt("div",{padding:"$15 $0 $15 $0"}),Ig=Gb({display:"flex",justifyContent:"space-between",alignItems:"center"});function pr(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(wg,null,G.createElement(bg,null,G.createElement(Ag,{loading:!0,size:"medium"}),G.createElement(Et,{size:8,direction:"horizontal"}),G.createElement(xg,null,G.createElement(ut,{height:10,width:60,variant:"rounded"}),G.createElement(Et,{size:4}),G.createElement(ut,{height:15,variant:"rounded"}))),G.createElement(ut,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(Xl,null,G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"})),G.createElement(ji,null),!r&&G.createElement(Et,{size:4})),G.createElement("div",{className:Ig()},G.createElement(Xl,null,G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"})),r&&G.createElement(ut,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(Cg,null,G.createElement(ut,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(kg,null,G.createElement(Tg,null,G.createElement(Ag,{loading:!0,size:"medium"}),G.createElement(Et,{direction:"horizontal",size:4}),G.createElement(ut,{height:15,width:150,variant:"rounded"})),G.createElement(Et,{size:10}),G.createElement(ut,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Et,{size:4}),G.createElement(Eg,null,n,G.createElement(vg,null),n),G.createElement(Et,{size:12})))}i(pr,"QuoteSummarySkeleton");import{ChainToken as Mg,Divider as Zl,NextIcon as Vb,Skeleton as ra}from"@rango-dev/ui";import Le from"react";import{styled as ur}from"@rango-dev/ui";var Ng=ur("div",{display:"flex",alignItems:"start"}),Bg=ur("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Yl=ur("div",{display:"flex",alignItems:"center",flexGrow:1}),Wg=ur("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Lg=ur("div",{display:"flex",alignItems:"center"});function $t(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Lg,null,Le.createElement(ra,{height:22,width:22,variant:"circular"}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:15,width:148,variant:"rounded"})),Le.createElement(Ng,null,Le.createElement(Sg,{hideSeparator:!e}),Le.createElement(Bg,{extraSpace:e},Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})),Le.createElement(Wg,null,Le.createElement(Vb,{color:"gray",size:16})),Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})))))}i($t,"StepSkeleton");function dr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Jt.createElement(gg,{expanded:o,rounded:e!=="basic"},Jt.createElement(pr,{type:e,tagHidden:n}),Jt.createElement(hg,null,Jt.createElement(jb,{height:15,variant:"rounded"})),o&&Jt.createElement(yg,null,Jt.createElement(Kb,{size:24}),Jt.createElement($t,null),Jt.createElement($t,null),Jt.createElement($t,{separator:!1})))}i(dr,"QuoteSkeleton");function Fo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:m,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:d,inputUsdValue:S}=U(),y=e?.outputAmount?new Xb(e?.outputAmount):null,C=e?St(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ia.createElement(Ul,null,ia.createElement(dr,{tagHidden:c,type:o,expanded:s})):w?ia.createElement(Ul,{onClick:()=>l?.(e),id:m},ia.createElement(jl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:d,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(Fo,"QuoteInfo");import{warn as Rb}from"@rango-dev/logging-core";import{calculatePendingSwap as ex}from"@rango-dev/queue-manager-rango-preset";import{useEffect as tx}from"react";import{useRef as Yb,useState as Zb}from"react";var Jb=2e3;function aa({request:t}){let[e,o]=Zb(!1),n=Yb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,Jb)),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(aa,"useFetch");function Pg(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await ct().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Pg,"useFetchConfirmQuote");function sa(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Jl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(sa,"throwErrorIfResponseIsNotValid");function Jl(t){if($d(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Fd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=qd(t);if(o){let n=xi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Jl,"getQuoteError");function _g(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=Gd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(_g,"generateWarnings");function la(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}i(la,"handleQuoteErrors");function Rl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=U(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),m=k().blockchains(),f=k().tokens(),{findToken:h}=k(),g=p||l,{fetch:d,cancelFetch:S,loading:y}=Pg();return tx(()=>S,[]),{loading:y,fetch:i(async T=>{let w=T.selectedWallets,x=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=w.reduce((E,v)=>(E[v.chain]=v.address,E),{}),I={requestId:a?.requestId||"",selectedWallets:A,destination:x||void 0};try{return await d(I,!0).then(E=>{let{result:v}=E;if(!v)throw new Error(E.error??"Error fetching updated quote");sa({diagnosisMessages:v.diagnosisMessages,requestId:v.requestId,swaps:v.result?.swaps});let b={outputAmount:v.result?.outputAmount,requestId:v.requestId,resultType:v.result?.resultType,swaps:v.result?.swaps||[],validationStatus:v.validationStatus,requestAmount:v.requestAmount};r(b);let B={slippage:g.toString(),disabledSwappersGroups:u},P=_g({previousQuote:a??void 0,currentQuote:b,meta:{blockchains:m},selectedWallets:w,userSlippage:g,inputUsdValue:n,findToken:h});c();let F=!!P.balance,q=ex(o.toString(),v,Hd(w),B,!F,{blockchains:m,tokens:f});return{quote:b,swap:q,error:null,warnings:P}})}catch(E){let v=la(E);return v.type!==2&&Rb(new Error("confirm swap error"),{tags:{...v,type:Xe[v.type],initialQuote:a,requestBody:I}}),{swap:null,error:v,warnings:null}}},"fetch"),cancelFetch:S}}i(Rl,"useConfirmSwap");var ux=ix("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Dg}`]:{width:"$48",height:"$48"}}),dx=oc({flexGrow:1,paddingRight:"$10"}),mx=oc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),fx=oc({display:"flex",justifyContent:"space-between",alignItems:"center"});function $g(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=U(),s=px(),[c,l]=mr(""),p=!n,[u,m]=mr(!1),[f,h]=mr(!1),{isActiveTab:g}=te(),d=k().getDisabledLiquiditySources(),S=cx(d),{manager:y}=ox(),{fetch:C,loading:T,cancelFetch:w}=Rl(),[x,A]=mr({swap:null,error:null,warnings:null}),[I,E]=mr(!1),v=i(async({selectedWallets:M,customDestination:ee})=>{let R=await C?.({selectedWallets:M,customDestination:ee});return A(R),R},"onConfirmSwap"),b=i(async()=>{if(x.swap&&n)try{await y?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let M=`../${O.swaps}/${x.swap.requestId}`;s(M,{replace:!0}),setTimeout(()=>{e("")},0)}catch(M){l("Error: "+M?.message)}},"addNewSwap"),B=i(async()=>{h(!0),await b(),h(!1)},"onConfirm"),P=i(async()=>{x.warnings?.quote&&Nd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),F=i(async()=>{A({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(M=>{A(M)}).catch(M=>console.error(M))},"onRefresh");ca(()=>{!!S.current.length&&!d.length&&F(),S.current=d},[d.length]),ca(()=>{p&&w()},[p]),ca(()=>{p&&m(p)},[p]),ca(()=>{p||C({selectedWallets:o,customDestination:r}).then(M=>A(M)).catch(M=>console.error(M))},[]),lx(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,Z=x.error,V=[];if(c&&V.push(Fe.createElement(nx,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||Z){let M=`../${O.settings}`;V.push(Fe.createElement(ar,{warning:q,error:Z,couldChangeSettings:!1,refetchQuote:F,skipAlerts:Z?.type===4||q?.type===2,showWarningModal:I,confirmationDisabled:!g,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await b()},onChangeSettings:()=>s(M)}))}return Fe.createElement(re,{header:{title:ec.t("Confirm Swap"),onWallet:()=>{let M=`../${O.wallets}`;s(M)}},footer:Fe.createElement(ux,null,Fe.createElement("div",{className:dx()},Fe.createElement(rx,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||f,disabled:!!x.error||!g,onClick:P},ec.t("Start Swap"))),Fe.createElement(Dg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||f,disabled:!g,onClick:m.bind(null,!0)},Fe.createElement(sx,{size:24})))},u&&Fe.createElement(Tf,{open:u,onClose:()=>m(!1),onCancel:w,loading:T,onCheckBalance:v}),Fe.createElement(ie,null,Fe.createElement("div",{className:fx()},Fe.createElement(ax,{variant:"title",size:"small"},ec.t("You get")),Fe.createElement("div",{className:mx()},Fe.createElement(Li,{onClick:!T&&!u&&!I?F:void 0}))),Fe.createElement(tc,{size:"12"}),ym(V.map((M,ee)=>({element:M,key:`alert-${ee}`})),Fe.createElement(tc,{size:10})),V.length>0?Fe.createElement(tc,{size:10}):null,Fe.createElement(Fo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:T,warning:x.warnings?.quote??null})))}i($g,"ConfirmSwapPage");import{i18n as eo}from"@lingui/core";import{Button as fc,CustomTokensZeroStateDarkIcon as _x,CustomTokensZeroStateIcon as Dx,DeleteIcon as $x,Divider as Cr,IconButton as Fx,MessageBox as Ox,NotFound as Ux,styled as hc}from"@rango-dev/ui";import fe,{useState as gc}from"react";import{useNavigate as zx}from"react-router-dom";import{CloseIcon as hx,IconButton as yx,SearchIcon as Sx,TextField as Cx}from"@rango-dev/ui";import fr from"react";import{styled as gx}from"@rango-dev/ui";var Fg=gx("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function It(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...m}=t,f=s.length?fr.createElement(yx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},fr.createElement(hx,{color:"gray",size:10})):null;return p&&(f=p),fr.createElement(Cx,{prefix:fr.createElement(Fg,null,fr.createElement(Sx,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...m})}i(It,"SearchInput");import{i18n as mc}from"@lingui/core";import{Button as vx,CustomTokenWarning as bx,darkTheme as Yg,Divider as Rt,ExternalLinkIcon as xx,Image as Ex,ListItem as Ix,NotFound as Ax,PinIcon as Nx,Skeleton as Oo,Typography as yr,VirtualizedList as Bx}from"@rango-dev/ui";import _,{useState as Wx}from"react";import{useTranslation as Lx}from"react-i18next";import{Divider as jg,ListItem as wx,Skeleton as hr}from"@rango-dev/ui";import At from"react";import{css as xn,darkTheme as nc,ImageContainer as kx,ListItemButton as Tx,styled as it,Typography as Og}from"@rango-dev/ui";var rc=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),ic=xn({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ac=xn({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),sc=xn({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),lc=xn({}),cc=xn(),Ug=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),pc=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),pa=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${ic}`]:{[`& .${sc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${lc}`]:{bottom:"-15px"},[`& .${rc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ac}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),zg=it(Tx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),uc=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),dc=it(Og,{}),qg=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${cc}`]:{$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),gr=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),mV=it("div",{display:"flex",alignItems:"center"}),Qg=it("div",{position:"relative",[`& ${kx}`]:{borderRadius:"$xm",overflow:"hidden"}}),Hg=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Gg=it(Og,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),Vg=it("a",{"& svg:hover":{color:"$colors$info"}}),Kg=it("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":{[`.${nc} &`]:{color:"$foreground"}}}});function Xg(t){return At.createElement(pa,null,Array.from(Array(t.size),e=>At.createElement(wx,{key:e,hasDivider:!0,start:At.createElement(hr,{variant:"circular",width:35,height:35}),end:At.createElement(gr,null,At.createElement(hr,{variant:"text",size:"large",width:70}),At.createElement(jg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:50})),title:At.createElement("div",null,At.createElement(hr,{variant:"text",size:"large",width:90}),At.createElement(jg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:90}))})))}i(Xg,"LoadingTokenList");var Mx=20,Px=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return _.createElement("div",{className:ic()},o?_.createElement("div",{className:rc()},o):_.createElement(pc,{className:ac()},_.createElement(yr,{variant:"title",size:"xmedium"},r.symbol),_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(uc,{css:a},_.createElement(dc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&_.createElement("div",{className:`${sc()} ${!o&&lc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",_.createElement(Rt,{size:4,direction:"horizontal"}),_.createElement(Vg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},_.createElement(xx,{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=k().fetchStatus,u=k().blockchains(),{getBalanceFor:m,fetchingWallets:f}=k(),{isTokenPinned:h}=k(),{setFromToken:g,setToToken:d}=U(),{t:S}=Lx(),y=Ke(),[C,T]=Wx(null),w=i(()=>{c==="source"?g({token:C,meta:{blockchains:u}}):d({token:C,meta:{blockchains:u}})},"updateToken"),x=i(()=>{w(),y()},"handleImportToken"),A=i(v=>{if(v.customToken){let{customToken:B,...P}=v;return _.createElement(vx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),T({...P,warning:!0})},"handleClick")},_.createElement(yr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let b=ei(m(v));return s?s(v):f?_.createElement(gr,null,_.createElement(Oo,{variant:"text",size:"large",width:70}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:50})):b&&_.createElement(qg,null,_.createElement(Gg,{variant:"title",size:"small"},b.amount),_.createElement("div",null),b.usdValue&&_.createElement(yr,{variant:"body",className:cc(),size:"xsmall"},`$${b.usdValue}`))},"endRenderer"),I=i(()=>_.createElement(Bx,{itemContent:v=>{let b=e[v];if(b==="skeleton")return _.createElement(Ix,{hasDivider:!0,start:_.createElement(Oo,{variant:"circular",width:35,height:35}),end:_.createElement(gr,null,_.createElement(Oo,{variant:"text",size:"large",width:70}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:50})),title:_.createElement("div",null,_.createElement(Oo,{variant:"text",size:"large",width:90}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:90}))});let B=u.find(M=>M.name===b?.blockchain);if(!B||!b)return null;let P=b.address,F=nl(B.color,"main"),q={$$color:F.main150,[`.${Yg} &`]:{$$color:F.main750},backgroundColor:"$$color"},Z={$$color:F.main750,[`.${Yg} &`]:{$$color:F.main150},color:"$$color"},V=i(()=>{typeof b!="string"&&!b.customToken&&n?.(b)},"handleClick");return _.createElement(Kg,null,_.createElement(zg,{"tab-index":v,key:`${b.symbol}${P}`,id:`${b.symbol}${P}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:b?.customToken,onClick:V,start:_.createElement(Qg,null,_.createElement(Ex,{src:b.image===""?Hr:b.image,size:30}),t.type!=="custom-token"&&b&&h(b,t.type)&&_.createElement(Hg,null,_.createElement(Nx,{size:12,color:"gray"}))),title:B.type==="COSMOS"||b.name||!b.name&&!P?_.createElement(pc,null,_.createElement(yr,{variant:"title",size:"xmedium"},b.symbol),_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(uc,{css:q},_.createElement(dc,{variant:"body",size:"xsmall",css:Z},b.blockchain)),l&&b.warning&&_.createElement(_.Fragment,null,_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(bx,{container:N()}))):void 0,description:typeof b!="string"&&B.info&&P&&B.type!=="COSMOS"?Px({address:P,token:b,customCssForTag:q,customCssForTagTitle:Z,name:b.name,url:B.info.addressUrl.split("{wallet}").join(P)}):b.name||void 0,end:A(b)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=C?vo(C?.blockchain,u):null;return _.createElement(_.Fragment,null,a&&_.createElement(_.Fragment,null,_.createElement(yr,{variant:"label",size:"large"},mc.t("Select Token")),_.createElement(Rt,{size:4})),_.createElement(Ug,null,_.createElement(Rt,{size:4}),p==="loading"&&_.createElement(Xg,{size:Mx}),p==="success"&&(e.length?_.createElement(_.Fragment,null,_.createElement(Zn,{token:C,address:C?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),_.createElement(pa,{as:"ul"},I())):!!o&&_.createElement(Ax,{title:mc.t("No results found"),description:mc.t("Try using different keywords")}))))}i(Sr,"TokenList");var qx=hc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Qx=hc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Hx=hc(Fx,{"&:hover":{"& svg":{color:"$secondary550"}}});function Zg(){let[t,e]=gc(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=U(),{mode:l}=lo({}),p=zx(),[u,m]=gc(!1),[f,h]=gc(),g=i(C=>{let T=C.target.value;e(T)},"handleSearch"),d=l==="dark",S=n.filter(C=>st(C.symbol,t)||st(C.address||"",t)||st(C.name||"",t)),y=i(()=>{if(f){let C=a?ht(a):null,T=r?ht(r):null,w=ht(f);C===w?c({token:null}):T===w&&s({token:null}),o(f)}m(!1)},"handleDeleteCustomToken");return fe.createElement(re,{header:{title:eo.t("Custom Tokens")}},fe.createElement(ie,null,fe.createElement(qx,null,n.length?fe.createElement(fe.Fragment,null,fe.createElement(It,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:eo.t("Search Token"),onChange:g}),fe.createElement(Cr,{size:16}),fe.createElement(Sr,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>fe.createElement(Hx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),h(C)}},fe.createElement($x,{size:12,color:"gray"}))})):fe.createElement(Qx,null,fe.createElement(Ux,{icon:d?fe.createElement(_x,{size:200}):fe.createElement(Dx,{size:200}),title:eo.t("No custom tokens"),description:eo.t("press the button to add your custom token")})),fe.createElement(Cr,{size:20}),fe.createElement(fc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(O.addCustomTokens)},eo.t("Add Custom Token"))),fe.createElement(J,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>m(!1),container:N()},fe.createElement(Ox,{title:eo.t("Delete Custom Token"),type:"error",description:eo.t("Are you sure you want to Delete this Token?")},fe.createElement(Cr,{size:40}),fe.createElement(Cr,{size:10}),fe.createElement(fc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},eo.t("Yes, Delete it")),fe.createElement(Cr,{size:12}),fe.createElement(fc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},eo.t("No, Continue"))))))}i(Zg,"CustomTokensPage");import{i18n as Re}from"@lingui/core";import{useManager as pE}from"@rango-dev/queue-manager-react";import{Button as vc,darkTheme as uE,Divider as zo,MessageBox as dE,NotFound as mE,styled as bc,Typography as ma}from"@rango-dev/ui";import{TransactionStatus as wr}from"rango-types";import ae,{useMemo as hh,useState as fa}from"react";import{useNavigate as fE}from"react-router-dom";import{FilterIcon as Zx,Popover as Jx}from"@rango-dev/ui";import Uo from"react";import{css as Gx,darkTheme as ua,IconButton as Vx,styled as kr}from"@rango-dev/ui";var yc=kr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),Jg=kr(Vx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"},[`& ${yc}::before`]:{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),Rg=kr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),eh=kr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),th=Gx({display:"flex",justifyContent:"space-between",alignItems:"center"}),oh=kr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as nh}from"@lingui/core";import{Button as Kx,Divider as rh,ListItemButton as jx,Radio as Xx,RadioRoot as Yx,Typography as ih}from"@rango-dev/ui";import dt from"react";function ah(t){let{filterBy:e,onClickItem:o}=t;return dt.createElement(eh,null,dt.createElement("div",{className:th()},dt.createElement(ih,{size:"small",variant:"body"},nh.t("Status")),dt.createElement(Kx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},nh.t("Reset"))),dt.createElement(rh,{size:10}),dt.createElement(Yx,{value:e},dt.createElement(oh,null,t.list.map((n,r)=>dt.createElement(jx,{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:dt.createElement(dt.Fragment,null,dt.createElement(rh,{direction:"horizontal",size:4}),dt.createElement(ih,{size:"medium",variant:"body"},n.title)),start:dt.createElement(Xx,{value:n.id}),onClick:o})))))}i(ah,"FilterSelectorContent");function Sc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Uo.createElement("div",null,Uo.createElement(Jx,{open:a,align:"end",onOpenChange:o,container:N(),content:Uo.createElement(ah,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Uo.createElement(Jg,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Uo.createElement(yc,{isSelect:!!n},Uo.createElement(Zx,{size:16,color:"black"}),!!n&&Uo.createElement(Rg,null)))))}i(Sc,"FilterSelector");import{i18n as tE}from"@lingui/core";import{getCurrentStep as oE}from"@rango-dev/queue-manager-rango-preset";import{Divider as uh,GroupedVirtualizedList as nE,Skeleton as rE,SwapListItem as dh,Typography as iE}from"@rango-dev/ui";import Je,{useCallback as mh,useEffect as aE,useRef as sE,useState as lE}from"react";function sh(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(sh,"calculateGroupsSoFar");import{css as Rx,darkTheme as eE,styled as Tr}from"@rango-dev/ui";var Cc=Rx(),lh=Tr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),kc=Tr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Cc}`]:{$$color:"$colors$neutral600",[`.${eE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Tc=Tr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),ch=Tr("div",{gap:"$10",display:"flex",flexDirection:"column"}),ph=Tr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var cE=10;function wc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=lE([]),c=sE(0),{swaps:l,groupCounts:p,groups:u}=n(e),m=mh(sh,[]),f=mh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,cE),s(m(p,c.current)))},[e.length]);if(aE(()=>{r||f()},[r,f]),r){let h=[1,2];return Je.createElement(Je.Fragment,null,[h,h].map((d,S)=>Je.createElement(kc,{key:S},Je.createElement(Tc,null,Je.createElement(rE,{variant:"text",width:60,size:"small"}),Je.createElement(uh,{size:16})),Je.createElement(uh,{size:4}),Je.createElement(ch,null,d.map((C,T)=>Je.createElement(dh,{isLoading:!0,key:T}))))))}return Je.createElement(nE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Je.createElement(kc,null,Je.createElement(Tc,null,Je.createElement(iE,{variant:"label",size:"medium",className:Cc()},u[h]))),itemContent:(h,g)=>{let d=l[h];if(!d)return null;let S=oE(d),y=d.steps[0],C=d.steps[d.steps.length-1];return!y||!C?null:Je.createElement(lh,{key:d.requestId},Je.createElement(dh,{className:"widget-history-group-list-swap-item-btn",requestId:d.requestId,creationTime:d.creationTime,status:d.status,onClick:o,currentStep:S,tooltipContainer:N(),onlyShowTime:u[g]===tE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:D(d.inputAmount,6,6),realAmount:d.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:D(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(wc,"HistoryGroupedList");import{i18n as da}from"@lingui/core";import fh from"dayjs";var gh=i(t=>{let e=new Map([["today",{title:da.t("Today"),swaps:[]}],["week",{title:da.t("This week"),swaps:[]}],["month",{title:da.t("This month"),swaps:[]}],["year",{title:da.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=fh();t.forEach(l=>{let p=Number(l.creationTime),u=fh(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 m=new Date(p).getFullYear().toString();o(m,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 gE=bc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),hE=bc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),yE=bc("div",{"._typography":{color:"$neutral700",[`.${uE}&`]:{color:"$neutral900"}}}),SE=[{id:wr.SUCCESS,title:Re.t("Complete")},{id:wr.RUNNING,title:Re.t("Running")},{id:wr.FAILED,title:Re.t("Failed")}],CE=i((t,e)=>t?.length?t.filter(o=>Mt(o.fromBlockchain,e)||Mt(o.toBlockchain,e)||Mt(o.toSymbol,e)||Mt(o.fromSymbol,e)).length:!1,"isStepContainsText");function yh(){let t=fE(),{manager:e,state:o}=pE(),n=kt(e).map(({swap:T})=>T),[r,a]=fa(""),[s,c]=fa(!1),l=!o.loadedFromPersistor,[p,u]=fa(""),[m,f]=fa(!1),h=i(T=>{let w=T.target.value;a(w)},"handleSearch"),g=hh(()=>!r&&!p?n:n.filter(T=>{let{inputAmount:w,status:x,steps:A,requestId:I}=T;return(!r||Mt(w,r)||Mt(x,r)||CE(A,r)||Mt(I,r))&&(!p||p===x)}),[n,r,p]),d=!g?.length&&!l,S=i(()=>f(!1),"onCloseModal"),y=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(T){console.log(T)}},"onClear"),C=hh(()=>!n.some(T=>T.status===wr.SUCCESS||T.status===wr.FAILED),[n]);return ae.createElement(re,{header:{title:Re.t("History"),suffix:ae.createElement(co,null,ae.createElement(vc,{id:"widget-history-clear-btn",disabled:C,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},ae.createElement(ma,{size:"medium",variant:"label",color:"error"},Re.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(hE,null,ae.createElement(It,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Re.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:h,style:{height:36},value:r}),ae.createElement(zo,{size:10,direction:"horizontal"}),ae.createElement(Sc,{filterBy:p,open:s,onOpenChange:T=>c(T),onClickItem:T=>u(T),list:SE})),ae.createElement(zo,{size:"16"}),ae.createElement(gE,null,d&&ae.createElement(ph,null,ae.createElement(zo,{size:32}),ae.createElement(mE,{title:r?Re.t("No results found"):Re.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Re.t("Try using different keywords"):Re.t("Your transaction history is stored locally and will appear here after you start a swap")})),!d&&ae.createElement(wc,{list:g,onSwapClick:t,groupBy:gh,isLoading:l}))),ae.createElement(J,{open:m,onClose:S,id:"widget-history-clear-modal",container:N()},ae.createElement(zo,{size:20}),ae.createElement(dE,{type:"warning",title:Re.t("Clear Transaction History"),description:ae.createElement(yE,null,ae.createElement(ma,{variant:"body",size:"medium"},Re.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(zo,{size:"24"}),ae.createElement(ma,{variant:"body",size:"small"},Re.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(zo,{size:30}),ae.createElement(vc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Re.t("Yes, Clear the history")),ae.createElement(zo,{size:10}),ae.createElement(vc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:S},ae.createElement(ma,{variant:"title",size:"medium",color:"primary"},Re.t("No, Cancel")))))}i(yh,"HistoryPage");import{i18n as tI}from"@lingui/core";import{Button as oI,Divider as Fc,styled as nI,WarningIcon as rI}from"@rango-dev/ui";import iI from"bignumber.js";import he,{useEffect as Kh,useState as jh}from"react";import{useNavigate as aI}from"react-router-dom";import{i18n as Ch}from"@lingui/core";import{Alert as TE,Divider as xc,NoRouteIcon as wE,Typography as vE}from"@rango-dev/ui";import qo from"react";import{styled as kE}from"@rango-dev/ui";var Sh=kE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Ec(){let{fromToken:t,toToken:e}=U();return!!t&&!!e&&qt(t,e)?qo.createElement(Sh,null,qo.createElement(xc,{size:10}),qo.createElement(wE,{size:24,color:"gray"}),qo.createElement(xc,{size:4}),qo.createElement(vE,{variant:"title",size:"small"},Ch.t("No Routes Found")),qo.createElement(xc,{size:4}),qo.createElement(TE,{title:Ch.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Ec,"SameTokensWarning");import{Alert as bE,Button as xE}from"@rango-dev/ui";import Th from"react";import{i18n as ga}from"@lingui/core";function kh(t){let e=null;return t===ri?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ga.t("Reset"),title:ga.t("Slippage cannot be set lower than 0.01%.")},e):t>Zo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ga.t("Change"),title:ga.t("Caution, your slippage is high!")},e):null}i(kh,"makeAlerts");function wh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=kh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(ni),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?Th.createElement(bE,{title:c.title,type:c.alertType,variant:"alarm",action:Th.createElement(xE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(wh,"SlippageWarningsAndErrors");import{i18n as BE}from"@lingui/core";import{IconButton as WE,ReverseIcon as LE,Skeleton as ME,Tooltip as PE,Typography as vr}from"@rango-dev/ui";import mt from"react";import ha from"bignumber.js";function bh(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(bh,"getSlippageColor");function xh(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ha(e),r=new ha(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(xh,"getUsdExchangeRate");function Eh(t,e){let o=new ha(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ha.ROUND_DOWN).toFormat(2)}`}i(Eh,"formatTokenValueInUsd");import{darkTheme as AE,styled as Ac,Typography as NE}from"@rango-dev/ui";var Ih=Ac("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Ah=Ac("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${AE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Nc=Ac(NE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Bc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,m=o!==null?o:e,{mode:f}=lo({}),h=en(m),g=f==="dark",d=n==="default",S={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,w=d?C:T,x=d?T:C,A=Number(d?p?.outputAmount:p?.requestAmount),I=Number(d?p?.requestAmount:p?.outputAmount),E=A||w.usdPrice,v=I||x.usdPrice,{rawValue:b,displayValue:B}=xh({toTokenUsdPrice:v,fromTokenUsdPrice:E});return mt.createElement(Ih,null,mt.createElement(vr,{variant:S||y?"label":"body",size:S||y?"medium":"small",color:bh({error:S,warning:y,isDarkTheme:g})},BE.t("Slippage:")," ",m,"%"),u?mt.createElement(ME,{height:16,width:104,variant:"rounded"}):E&&v&&mt.createElement(Ah,null,mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},"1"),mt.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},x.symbol),mt.createElement(WE,{id:"widget-home-page-change-rate-button",onClick:r},mt.createElement(LE,{size:14,color:"secondary"})),mt.createElement(PE,{container:N(),side:"top",sideOffset:4,content:mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},b)},mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},B)),mt.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&mt.createElement(vr,{color:"neutral600",variant:"body",size:"small"},"~",Eh(Number(b),w.usdPrice))))}i(Bc,"SwapMetrics");import{i18n as UE}from"@lingui/core";import{Header as zE}from"@rango-dev/ui";import ho,{useEffect as qE,useState as QE}from"react";import{i18n as DE}from"@lingui/core";import{Divider as Lc,FullExpandedQuote as $E,Typography as FE}from"@rango-dev/ui";import Te from"react";import{styled as Wc}from"@rango-dev/ui";var Nh=Wc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Bh=Wc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Wh=Wc("div",{width:"146px"});import{i18n as br}from"@lingui/core";import{Select as _E}from"@rango-dev/ui";import Lh from"react";function ya(t){let{updateQuotePartialState:e,sortStrategy:o}=U(),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 Lh.createElement(Wh,null,Lh.createElement(_E,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ya,"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:m,toToken:f,sortStrategy:h,error:g}=U(),{slippage:d,customSlippage:S}=k(),{findToken:y}=k(),C=c||N(),T=!!p&&p.results.length,w=S??d,x=i(E=>{if(!m||!f||!p)return null;let v={requestAmount:p.requestAmount,validationStatus:null,...E};return pn({currentQuote:v,userSlippage:w,findToken:y})},"getQuoteWarning"),A=g?.type===0||g?.type===1,I=p?.results?vi(h,p?.results):[];return Te.createElement(Te.Fragment,null,a&&Te.createElement(Te.Fragment,null,Te.createElement(Bh,null,Te.createElement(FE,{size:"xmedium",variant:"title"},DE.t("Sort by")),Te.createElement(ya,{container:C})),Te.createElement(Lc,{size:"10"})),e&&Array.from({length:Mh},(E,v)=>Te.createElement(Te.Fragment,{key:v},s?Te.createElement($E,{loading:!0}):Te.createElement(dr,{tagHidden:!1,type:"list-item",expanded:!1}),v!==Mh-1&&Te.createElement(Lc,{size:16}))),!e&&Te.createElement(Te.Fragment,null,T?I.map((E,v)=>{let b=x(E),B=Jl(E.swaps),P=I.length-1===v;return Te.createElement(Te.Fragment,{key:E.requestId},Te.createElement(Fo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:b,fullExpandedMode:s,onClick:F=>{B||u("warning",b),u("error",B?.options||null),o(F)},type:"list-item"}),!P&&Te.createElement(Lc,{size:16}))}):A&&Te.createElement(Nh,null,Te.createElement(nr,{size:s?"large":"small",error:g,fetch:n}))))}i(xr,"Quotes");import{darkTheme as OE,styled as Ph}from"@rango-dev/ui";var _h=Ph("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${OE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Dh=Ph("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var HE=100;function Mc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=QE(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",m=xo();return qE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},HE):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),ho.createElement(_h,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Di()} widget-expanded-quotes-container`,id:tt.EXPANDED_BOX_ID},ho.createElement(zE,{title:UE.t("Routes"),suffix:ho.createElement(ho.Fragment,null,ho.createElement(ya,{container:m}),ho.createElement(_o,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),ho.createElement(Dh,null,ho.createElement(xr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:xo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Mc,"ExpandedQuotes");import{i18n as Qh}from"@lingui/core";import{SwapInput as Hh}from"@rango-dev/ui";import jE from"bignumber.js";import Er from"react";import{ReverseIcon as KE}from"@rango-dev/ui";import _c from"react";import{keyframes as GE,styled as $h}from"@rango-dev/ui";var Pc=450,VE=GE({"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)"}}),Fh=$h("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Oh=$h("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${VE} ${Pc}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 Dc(){let t=U.use.switchFromAndTo();return _c.createElement(Fh,null,_c.createElement(Oh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Pc),t()}},_c.createElement(KE,{size:12})))}i(Dc,"SwitchFromAndToButton");import{styled as Uh}from"@rango-dev/ui";var zh=Uh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),qh=Uh("div",{position:"relative"});function $c(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:m,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:d}=U(),{connectedWallets:S,getBalanceFor:y}=k(),C=a?y(a):null,T=ei(C)?.amount??"0",w=C?new jE(C.amount).shiftedBy(-C.decimals):le,x=!!s&&yu(S,s.name),A=!Os(d,m,f),I=!Os(d,m,g),E=!f||!g||!g.gt(0)?null:Vt(f.toString(),g.toString());return Er.createElement(zh,null,Er.createElement(qh,null,Er.createElement(Hh,{label:Qh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:m,usdValue:A?void 0:D(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let v=D(w,C?.decimals),b=C?.amount?v.split(",").join(""):"";p(b)},anyWalletConnected:S.length>0}),Er.createElement(Dc,null)),Er.createElement(Hh,{sharpBottomStyle:!r&&(!!d||e),label:Qh.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:D(Vt(f,g),2,2),warningLevel:Kt(E??0),price:{value:D(h,6,6),usdValue:I?void 0:D(g,4,4),realValue:h?.toString(),realUsdValue:I?void 0:g?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i($c,"Inputs");import{warn as XE}from"@rango-dev/logging-core";import{useCallback as YE,useEffect as ZE,useRef as JE,useState as RE}from"react";function Gh(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await ct().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Gh,"useFetchAllQuotes");var eI=600;function Sa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Gh(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(se=>se.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:m,selectedQuote:f,sortStrategy:h,resetQuote:g,error:d,warning:S,setSelectedQuote:y,updateQuotePartialState:C}=U(),{slippage:T,customSlippage:w,affiliatePercent:x,affiliateRef:A,affiliateWallets:I,fetchStatus:E}=k(),v=k().getLiquiditySources(),b=k().getDisabledLiquiditySources(),B=k().excludeLiquiditySources(),{findToken:P}=k(),[F,q]=RE(!0),Z=JE(u),V=w??T,ee=!l||!p||qt(l,p)||!Mn(u),R=i(se=>{q(se)},"resetState"),X=i(se=>{let{fromToken:de,toToken:Oe,inputAmount:wt,liquiditySources:ve,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:H,affiliateRef:j,affiliatePercent:K,affiliateWallets:me}=se;if(F||R(!0),!ee&&de&&Oe){g();let Qe=Qd({fromToken:de,toToken:Oe,inputAmount:wt,liquiditySources:ve,excludeLiquiditySources:L,disabledLiquiditySources:W,wallets:a,slippage:H,affiliateRef:j,affiliatePercent:K,affiliateWallets:me,contractCall:c});Ro("experimental",r)&&(Qe.experimental=!0),Ro("avoidNativeFee",r)&&(Qe.avoidNativeFee=!0),Ro("enableCentralizedSwappers",r)&&(Qe.enableCentralizedSwappers=!0),r?.maxLength&&(Qe.maxLength=r.maxLength),e(Qe).then(He=>{let be=vi(h,He.results),Wt=Wd(f,be,He.requestAmount);q(!1),C("quotes",He),y(Wt),sa({diagnosisMessages:He.diagnosisMessages,requestId:Wt?.requestId||"",swaps:Wt?.swaps});let Va=Wt&&pn({currentQuote:Wt,userSlippage:V,findToken:P});C("warning",Va)}).catch(He=>{let be=la(He);(be.type===0||be.type===1)&&g(),be.type!==2&&(C("error",be),q(!1),XE(new Error("quote error"),{tags:{...be,type:Xe[be.type],requestBody:Qe}}))})}},"fetch"),we=YE(Kr(se=>{X(se)},eI),[ee]);return ZE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(ee){q(!1),(f||d||S)&&g();return}if(!Mn(u)&&m?.eq(0)){R(!1),o();return}g(),R(!0);let se=X;return Z.current&&Z.current!=u&&(se=we),Z.current=u,se({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,ee,v?.length,n,b.length,V,A,x,c,JSON.stringify(I)]),{fetch:()=>X({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),loading:F}}i(Sa,"useSwapInput");function Vh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Ce.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(Vh,"emitPreventableEvent");var sI=nI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),lI=300;function Xh(){let t=aI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=U(),[h,g]=jh(!1),{isLargeScreen:d,isExtraLargeScreen:S}=fn(),{fetch:y,loading:C}=Sa({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:x,customSlippage:A,slippage:I,setSlippage:E,setCustomSlippage:v}=k(),{isActiveTab:b}=te(),[B,P]=jh(!1),q=en(A!==null?A:I),V=Od({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),M=bu(d,S,T?.variant),ee=!!n&&!!e&&!!o&&new iI(n).gt(0)&&!Yd(e,o),R=ee&&w==="success"&&C,X=q?.quoteValidation||c,de=(!M||M&&l?.results.length)&&(X||s),Oe=!!e&&!!o,wt=Oe&&!!q,ve=(r||s)&&!B?y:void 0,L=i(j=>{M&&h?(g(!1),setTimeout(()=>{t(j)},lI)):t(j)},"onHandleNavigation"),W=i(j=>{r?.requestId!==j.requestId&&(P(!1),p(j))},"onClickOnQuote"),H=i(j=>{if(j){if(oi.includes(j)){E(j),v(null);return}v(j)}},"onChangeSlippage");return Kh(()=>{u(),f("refetchQuote",!0)},[]),Kh(()=>{g(ee)},[ee]),he.createElement(sI,null,he.createElement(re,{height:"auto",footer:he.createElement(oI,{id:`widget-swap-${V.action}-btn`,type:"primary",size:"large",disabled:V.disabled||!b,prefix:V.action==="confirm-warning"&&he.createElement(rI,null),fullWidth:!0,onClick:()=>{V.action==="connect-wallet"?Vh({type:"clickConnectWallet"},()=>L(O.wallets)):V.action==="confirm-warning"?P(!0):L(O.confirmSwap)}},V.title),header:{onWallet:()=>{L(O.wallets)},hasBackButton:!1,title:T.title||tI.t("Swap"),suffix:he.createElement(_o,{hidden:M?["refresh"]:void 0,onClickRefresh:ve,onClickHistory:()=>L(O.swaps),onClickSettings:()=>{L(O.settings)}})}},he.createElement(ie,null,he.createElement($c,{fetchingQuote:R,fetchMetaStatus:w,isExpandable:M,onClickToken:j=>{L(j==="from"?O.fromSwap:O.toSwap)}}),he.createElement(Fc,{size:"2"}),M?null:he.createElement(Fo,{quote:r,loading:R,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:X,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),L(O.routes)}:void 0}),Oe&&he.createElement(he.Fragment,null,he.createElement(Fc,{size:8}),he.createElement(Bc,{quoteError:s,quoteWarning:X,fromToken:e,toToken:o,quote:r,loading:R})),de?he.createElement(he.Fragment,null,he.createElement(ar,{warning:X,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:y,showWarningModal:B,confirmationDisabled:!b,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:H,onConfirmWarningModal:()=>{P(!1),m(!0),L(O.confirmSwap)},onChangeSettings:()=>L(O.settings)})):null,wt&&he.createElement(he.Fragment,null,he.createElement(Fc,{size:"10"}),he.createElement(wh,{onChangeSettings:()=>L(O.settings)})),he.createElement(Ec,null))),M?he.createElement(Mc,{loading:R,onClickOnQuote:W,fetch:y,onClickRefresh:ve,isVisible:h}):null)}i(Xh,"Home");import{i18n as Yh}from"@lingui/core";import{Alert as cI,Divider as pI,List as uI,ListItemButton as dI,Radio as mI,RadioRoot as fI,Typography as gI}from"@rango-dev/ui";import Ft from"react";function yo(){let{setLanguage:t,language:e,config:o}=k(),n=Wu,r=o?.language||tn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||tn),resetLanguage:()=>t(null)}}i(yo,"useLanguage");function Zh(){let{activeLanguage:t,changeLanguage:e,languages:o}=yo(),n=Ke(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ft.createElement(gI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ft.createElement(mI,{value:s}),start:Ft.createElement(l,null)}});return Ft.createElement(re,{header:{title:Yh.t("Language")}},Ft.createElement(ie,null,Ft.createElement(cI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ft.createElement(pI,{size:"8"}),Ft.createElement(fI,{value:t},Ft.createElement(uI,{type:Ft.createElement(dI,{title:Yh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Zh,"LanguagePage");import{i18n as to}from"@lingui/core";import{Button as kI,Checkbox as TI,Image as wI,ListItemButton as vI,NotFound as bI,Typography as xI}from"@rango-dev/ui";import et,{useState as EI}from"react";import{Checkbox as SI,Skeleton as Rh}from"@rango-dev/ui";import Ar from"react";import{styled as Oc}from"@rango-dev/ui";var Ir=Oc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Uc=Oc("div",{width:80,display:"flex",justifyContent:"flex-end"}),zc=Oc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as hI,styled as yI}from"@rango-dev/ui";var Jh=yI(hI,{height:61});var CI=30;function qc(){return Ar.createElement(Ir,null,Array.from(Array(CI),(t,e)=>Ar.createElement(Jh,{hasDivider:!0,key:e,start:Ar.createElement(Rh,{variant:"circular",width:35,height:35}),title:Ar.createElement(Rh,{variant:"text",size:"large",width:90}),end:Ar.createElement(SI,{checked:!1})})))}i(qc,"LoadingLiquiditySourceList");function Qc({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=EI(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=ii(o,n),p={Exchanges:to.t("Exchanges"),Bridges:to.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=l.filter(y=>u.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,h=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:C,groupTitle:T,logo:w,id:x,...A}=y;return{id:`widget-setting-liquidity-source-${iu(x.toLowerCase())}-item-btn`,start:et.createElement(wI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:et.createElement(TI,{checked:C,disabled:c}),title:et.createElement(xI,{variant:"title",size:"xmedium"},to.t(T)),selected:C,groupTitle:T,logo:w,...A}}),d=i(y=>{let C=y.target.value;a(C)},"handleSearch"),S=g;return r&&(S=g.filter(y=>Mt(y.groupTitle,r))),et.createElement(re,{header:{title:to.t(t),suffix:et.createElement(Uc,null,et.createElement(kI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?to.t("Deselect all"):to.t("Select all")))}},et.createElement(ie,{view:!0},et.createElement(It,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search {sourceType}",{sourceType:p[t]}),onChange:d}),e==="loading"&&et.createElement(qc,null),!S.length&&r?et.createElement(zc,null,et.createElement(bI,{title:to.t("No results found"),description:to.t("Try using different keywords")})):e==="success"&&et.createElement(Ir,{disabled:c,className:"widget-liquidity-source-list"},S.map(y=>{let{groupTitle:C,...T}=y;return et.createElement(et.Fragment,{key:y.id},et.createElement(vI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Qc,"LiquiditySourcePage");import{i18n as II}from"@lingui/core";import Ca from"react";import{useNavigate as AI}from"react-router-dom";function ey(){let t=AI(),e=Ke(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=U(),{fetch:c,loading:l}=Sa({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${O.settings}`,m=`../${O.wallets}`;return Ca.createElement(re,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:II.t("Routes"),suffix:Ca.createElement(_o,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ca.createElement(ie,null,Ca.createElement(xr,{fetch:c,loading:l,onClickOnQuote:p})))}i(ey,"RoutesPage");import{i18n as sy}from"@lingui/core";import{Divider as ly,getCategoriesCount as FI,SelectableCategoryList as OI}from"@rango-dev/ui";import oo,{useState as cy}from"react";import{useNavigate as UI}from"react-router-dom";import{i18n as Hc}from"@lingui/core";import{Divider as LI,Image as MI,ListItemButton as PI,NotFound as _I,Typography as ay}from"@rango-dev/ui";import ft,{useEffect as DI,useState as $I}from"react";var ty=i((t,e,o)=>t.filter(n=>jr(n.type,o)).filter(n=>st(n.name,e)||st(n.displayName,e)),"filterBlockchains");import{ImageContainer as NI,styled as oy}from"@rango-dev/ui";var ny=oy("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ka=oy(Tl,{padding:0,margin:0,listStyle:"none",[`& ${NI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as BI,Skeleton as ry}from"@rango-dev/ui";import Ta from"react";var WI=20;function iy(){return Ta.createElement(ka,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(WI),t=>Ta.createElement(BI,{key:t,hasDivider:!0,start:Ta.createElement(ry,{variant:"circular",width:35,height:35}),title:Ta.createElement(ry,{variant:"text",size:"large",width:90})})))}i(iy,"LoadingBlockchainList");function Gc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=$I(e),{fetchStatus:l}=k();DI(()=>{c([...ty(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ft.createElement(_I,{title:Hc.t("No results found"),description:Hc.t("Try using different keywords")}):ft.createElement(ka,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ft.createElement(PI,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ft.createElement(MI,{src:u.logo,size:30}),title:ft.createElement(ay,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ft.createElement(ft.Fragment,null,a&&ft.createElement(ft.Fragment,null,ft.createElement(ay,{variant:"label",size:"large"},Hc.t("Select Chain")),ft.createElement(LI,{size:4})),ft.createElement(ny,null,l==="loading"&&ft.createElement(iy,null),l==="success"&&p()))}i(Gc,"BlockchainList");function wa(t){let{type:e}=t,o=Ke(),[n,r]=cy(""),[a,s]=cy("ALL"),c=U.use.setToBlockchain(),l=U.use.setFromBlockchain(),{fetchStatus:p}=k(),u=UI(),m=k().blockchains({type:e}),f=FI(m),h=!t.hideCategory&&f!==1;return oo.createElement(re,{header:{title:sy.t("Select Chain")}},oo.createElement(ie,{view:!0},h&&oo.createElement(oo.Fragment,null,oo.createElement(OI,{setCategory:s,category:a,blockchains:m,isLoading:p==="loading"}),oo.createElement(ly,{size:24})),oo.createElement(It,{value:n,autoFocus:!0,placeholder:sy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:g=>r(g.target.value)}),oo.createElement(ly,{size:16}),oo.createElement(Gc,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:g=>{e==="custom-token"?u(`..?blockchain=${g.name}`,{replace:!0}):(e==="source"?l(g):c(g),o())}})))}i(wa,"SelectBlockchainPage");import{i18n as xa}from"@lingui/core";import{Divider as hy,Spinner as tA}from"@rango-dev/ui";import So,{useEffect as oA,useState as nA}from"react";import{useNavigate as rA}from"react-router-dom";import{i18n as jc}from"@lingui/core";import{BlockchainsChip as va,Divider as my,Image as fy,Skeleton as VI,Tooltip as KI,Typography as Xc}from"@rango-dev/ui";import xe from"react";import{useEffect as QI}from"react";var py=["ETH","COSMOS","OSMOSIS"];function Vc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(zI),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(qI(s)),r=n.splice(a)}return{list:n,more:r}}i(Vc,"prepare");function zI(t,e){let o=py,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(zI,"sortByMostUsedBlockchains");function qI(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(qI,"generateSortByPreferredBlockchainsFor");function uy(t,e){return!!e.list.find(o=>o.name===t)}i(uy,"isInVisibleList");function Kc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();QI(()=>{if(e?.selected){let a=Vc(t,o,e);uy(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Vc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Kc,"usePrepareBlockchainList");import{styled as HI}from"@rango-dev/ui";var dy=HI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var jI=6,XI=12;function Yc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=te(),c=Kc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=U.use.resetToBlockchain(),u=U.use.resetFromBlockchain(),m=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&m;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(my,{size:12}),xe.createElement(Xc,{variant:"label",size:"large"},jc.t("Select Chain"))),xe.createElement(my,{size:12}),xe.createElement(dy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?jI:XI),(d,S)=>xe.createElement(VI,{key:S,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(va,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Xc,{variant:"body",size:"xsmall",color:"secondary500"},jc.t("All"))),c.list.map(d=>xe.createElement(KI,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(va,{className:"widget-blockchains-section-item-btn",key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},xe.createElement(fy,{src:d.logo,size:30})))),h?xe.createElement(va,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(fy,{src:f.logo,size:30})):null,g?xe.createElement(va,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Xc,{variant:"body",size:"xsmall",color:"secondary500"},jc._("More +{count}",{count:c.more.length}))):null)))}i(Yc,"BlockchainsSection");import{useCallback as ZI,useRef as JI,useState as Zc}from"react";function Jc(){let t=k().blockchains(),e=JI(null),{customTokens:o}=k(),[n,r]=Zc(!1),[a,s]=Zc([]),[c,l]=Zc(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await ct().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),d=new Set(o().map(C=>Ht(C))),S=new Set(t.map(C=>C.name)),y=g.tokens.filter(C=>S.has(C.blockchain)&&!d.has(Ht(C)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=ZI(Kr((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Jc,"useSearchCustomTokens");function ba(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(ba,"shouldSearchForCustomTokens");function gy(t,e,o,n,r){let a=[...t];return ba(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(gy,"prepareTokensList");function Ea(t){let{type:e}=t,o=rA(),n=Ke(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=U(),{getBalanceFor:u}=k(),{fetch:m,loading:f,tokens:h,cancel:g}=Jc(),[d,S]=nA(""),y=e==="source"?r:a,C=y?.name??"",T=k().blockchains({type:e}),w=k().tokens({type:e,blockchain:C,searchFor:d,getBalanceFor:u}),x=gy(w,h,d,f,y?.name),A=i(v=>{e==="source"?l(v):p(v)},"updateBlockchain"),I=i(v=>{e==="source"?s({token:v,meta:{blockchains:T}}):c({token:v,meta:{blockchains:T}})},"updateToken"),E={source:xa.t("Source"),destination:xa.t("Destination")};return oA(()=>(ba(w,d,y?.name)&&m(d,y?.name??void 0),()=>{g()}),[w.length,d,y?.name]),So.createElement(re,{header:{title:xa.t("Swap {type}",{type:E[e]})}},So.createElement(ie,null,So.createElement(Yc,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(O.blockchains),onChange:v=>{A(v)}}),So.createElement(hy,{size:24}),So.createElement(It,{value:d,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:xa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:v=>S(v.target.value),suffix:ba(w,d,y?.name)&&f?So.createElement(tA,{size:12,color:"secondary"}):void 0}),So.createElement(hy,{size:16}),So.createElement(Sr,{list:x,selectedBlockchain:C,searchedFor:d,type:e,onChange:v=>{I(v);let b=T.find(B=>v.blockchain===B.name);b&&A(b),n()}})))}i(Ea,"SelectSwapItemsPage");import{i18n as op}from"@lingui/core";import{Alert as WA,Button as LA,styled as MA}from"@rango-dev/ui";import Qo from"react";import{useInRouterContext as PA,useSearchParams as _A}from"react-router-dom";import{i18n as wy}from"@lingui/core";import{Alert as lA,Divider as ep,InfoIcon as cA,SlippageIcon as pA,TextField as uA,Tooltip as dA,Typography as vy}from"@rango-dev/ui";import ze from"react";import{Chip as iA,styled as Nr,TextField as aA}from"@rango-dev/ui";var yy=Nr("div",{paddingTop:"$5",padding:"$10 $5"}),Sy=Nr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${aA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),Cy=Nr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ia=Nr("div",{maxWidth:"280px",padding:"$10"}),ky=Nr(iA,{width:"61px",flexShrink:0});import{i18n as Rc}from"@lingui/core";import{Typography as sA}from"@rango-dev/ui";import Br from"react";function Ty(){return Br.createElement(Ia,null,Br.createElement(sA,{variant:"label",size:"medium",color:"neutral700"},Rc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Br.createElement("br",null),Br.createElement("br",null),Br.createElement("b",null,Rc.t("Warning")),":\xA0",Rc.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(Ty,"SlippageTooltipContent");function tp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?en(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let m=u;u>$n&&(m=$n),n(m)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;su(u)||(p.value=u.slice(0,-1))},"onInput");return ze.createElement(yy,null,ze.createElement(Cy,null,ze.createElement(pA,{size:16,color:"gray"}),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(vy,{variant:"title",size:"xmedium"},wy.t("Slippage tolerance per swap")),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(dA,{container:N(),side:"top",sideOffset:4,content:ze.createElement(Ty,null)},ze.createElement(cA,{color:"gray"}))),ze.createElement(Sy,null,oi.map((l,p)=>{let u=`slippage-${p}`;return ze.createElement(ky,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),ze.createElement(uA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&ze.createElement(vy,{variant:"body",size:"small"},"%"),placeholder:wy.t("Custom")})),r&&ze.createElement(ze.Fragment,null,ze.createElement(ep,{size:10}),ze.createElement(lA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(tp,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as by,BridgesIcon as mA,ChevronRightIcon as Aa,DarkModeIcon as xy,Divider as Wr,ExchangeIcon as fA,InfinityIcon as gA,InfoIcon as hA,LanguageIcon as yA,LightModeIcon as Ey,List as SA,ListItem as CA,ListItemButton as kA,Skeleton as TA,styled as wA,Switch as vA,Tabs as bA,TargetIcon as xA,Tooltip as EA,Typography as at}from"@rango-dev/ui";import $ from"react";import{useNavigate as IA}from"react-router-dom";var AA=wA("div",{width:"202px",height:"$40"}),NA=[{id:"light",icon:$.createElement(Ey,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Light"))},{id:"dark",icon:$.createElement(xy,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:$.createElement(by,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Auto"))}],BA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return $.createElement(by,{...e});case"dark":return $.createElement(xy,{...e});default:return $.createElement(Ey,{...e})}},"getThemeIcon");function Iy(){let t=IA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=yo(),s=a.find(M=>M.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),m=k().customTokens(),f=ot("theme",u),h=ot("liquiditySource",u),g=ot("language",u),d=ot("customTokens",u),S=k().infiniteApprove,y=k().toggleInfiniteApprove,C=ii(l,p),T=C.filter(M=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(M.type)),w=T.length,x=T.filter(M=>M.selected).length,A=C.filter(M=>M.type==="DEX"),I=A.length,E=A.filter(M=>M.selected).length,v=i((M,ee)=>{switch(c){case"loading":return $.createElement(TA,{variant:"text",size:"medium",width:50});case"failed":return $.createElement(at,{variant:"body",size:"medium",color:"$error500"},Tt.t("Loading failed"));default:return $.createElement(at,{variant:"body",size:"medium"},`${M} / ${ee}`)}},"handleSwapperEndItem"),b={id:"widget-setting-bridge-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Bridges")),end:$.createElement($.Fragment,null,v(x,w),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(O.bridges),start:$.createElement(mA,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Exchanges")),end:$.createElement($.Fragment,null,v(E,I),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(fA,{color:"gray",size:16}),onClick:()=>t(O.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Custom Tokens")),end:$.createElement($.Fragment,null,$.createElement(at,{variant:"body",size:"medium"},`${m.length}`),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(xA,{color:"gray",size:16}),onClick:()=>t(O.customTokens)},F={id:"widget-setting-language-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Language")),start:$.createElement(yA,{color:"gray",size:16}),end:$.createElement($.Fragment,null,$.createElement(at,{variant:"body",size:"medium"},s),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(O.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:$.createElement($.Fragment,null,$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Infinite approval")),$.createElement(Wr,{direction:"horizontal",size:4}),$.createElement(EA,{side:"top",sideOffset:4,container:N(),content:$.createElement(Ia,null,$.createElement(at,{variant:"label",size:"medium",color:"neutral700"},$.createElement("b",null,Tt.t("Warning")),":\xA0",Tt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},$.createElement(hA,{color:"gray"}))),start:$.createElement(gA,{color:"gray",size:16}),end:$.createElement(vA,{checked:S}),onClick:y},Z={id:"widget-setting-theme-item-btn",type:$.createElement(CA,null),title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:$.createElement(AA,null,$.createElement(bA,{container:N(),items:NA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:M=>o(M.id),type:"primary",borderRadius:"small"})),start:BA(n)},V=h?[]:[b,B];return d||V.push(P),g||V.push(F),V.push(q),!e?.singleTheme&&!f&&V.push(Z),$.createElement(SA,{type:$.createElement(kA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:V})}i(Iy,"SettingsLists");var DA=MA("div",{paddingLeft:"$8"});function Ay(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=_A(),r=PA(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Qo.createElement(re,{header:{title:op.t("Settings")}},Qo.createElement(ie,null,o&&Qo.createElement(WA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:op.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:Qo.createElement(DA,null,Qo.createElement(LA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},op.t("Reset")))}),Qo.createElement(tp,null),Qo.createElement(Iy,null)))}i(Ay,"SettingsPage");import{i18n as GN}from"@lingui/core";import{cancelSwap as VN}from"@rango-dev/queue-manager-rango-preset";import{useManager as KN}from"@rango-dev/queue-manager-react";import{Alert as jN}from"@rango-dev/ui";import Sp from"react";import{useParams as XN}from"react-router-dom";import{i18n as Ut}from"@lingui/core";import{getCurrentNamespaceOfOrNull as WN,getCurrentStep as LN,getRelatedWalletOrNull as MN}from"@rango-dev/queue-manager-rango-preset";import{Button as TS,Divider as PN,QuoteCost as _N,StepDetails as DN,Typography as dp}from"@rango-dev/ui";import{useWallets as $N}from"@rango-dev/wallets-react";import wS from"bignumber.js";import{PendingSwapNetworkStatus as An}from"rango-types";import Se,{useEffect as mp,useRef as fp,useState as $a}from"react";import{useNavigate as FN}from"react-router-dom";import{i18n as Co}from"@lingui/core";var $A=[Co.t("Sunday"),Co.t("Monday"),Co.t("Tuesday"),Co.t("Wednesday"),Co.t("Thursday"),Co.t("Friday"),Co.t("Saturday")];function Ny(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Co.t("Today"):`${$A[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Ny,"timeSince");function By(t){return t.finishTime?Ny(parseInt(t.finishTime)):Ny(parseInt(t.creationTime))}i(By,"getSwapDate");import Mr from"react";import{i18n as Na}from"@lingui/core";import{Button as Wy,Divider as np,MessageBox as FA}from"@rango-dev/ui";import ko from"react";var Ly=i(({onCancel:t,onClose:e})=>ko.createElement(ko.Fragment,null,ko.createElement(np,{size:20}),ko.createElement(FA,{type:"error",title:Na.t("Cancel Swap"),description:Na.t("Are you sure you want to cancel this swap?")}),ko.createElement(np,{size:32}),ko.createElement(Wy,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Na.t("Yes, Cancel it")),ko.createElement(np,{size:12}),ko.createElement(Wy,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Na.t("No, Continue"))),"CancelContent");import{i18n as Ba}from"@lingui/core";import{Button as My,Divider as rp,MessageBox as OA,Typography as UA}from"@rango-dev/ui";import no from"react";var Py=i(({onDelete:t,onClose:e})=>no.createElement(no.Fragment,null,no.createElement(rp,{size:20}),no.createElement(OA,{type:"error",title:Ba.t("Delete Transaction"),description:Ba.t("Are you sure you want to delete this swap?")}),no.createElement(rp,{size:32}),no.createElement(My,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ba.t("Yes, Delete it")),no.createElement(rp,{size:12}),no.createElement(My,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},no.createElement(UA,{variant:"title",size:"medium",color:"primary"},Ba.t("No, Cancel")))),"DeleteContent");import{i18n as zA}from"@lingui/core";import{Button as qA,Divider as QA,MessageBox as HA}from"@rango-dev/ui";import Ho from"react";var _y=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Ho.createElement(Ho.Fragment,null,Ho.createElement(HA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Ho.createElement(Ho.Fragment,null,Ho.createElement(QA,{size:"30"}),Ho.createElement(qA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},zA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as sN,getCurrentStep as lN,getRelatedWalletOrNull as cN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as pN}from"@rango-dev/ui";import{useWallets as uN}from"@rango-dev/wallets-react";import zy from"react";import{i18n as En}from"@lingui/core";import{Alert as $y,Button as VA,Checkbox as KA,Divider as Ma,Image as jA,MessageBox as XA,Spinner as YA,WarningIcon as ZA}from"@rango-dev/ui";import{useWallets as JA}from"@rango-dev/wallets-react";import ge,{useState as RA}from"react";import{darkTheme as GA,styled as Lr}from"@rango-dev/ui";var cX=Lr("div",{display:"flex",justifyContent:"center"}),pX=Lr("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Dy=Lr("img",{width:"100%"}),Wa=Lr("div",{position:"relative"}),La=Lr("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${GA} &`]:{$$color:"$warning600"}});var Fy=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=RA(null),{list:s}=vt(),c=te.use.isActiveTab(),{state:l,connect:p}=JA(),u=s.find(x=>x.type===e.walletType),m=u?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,d=u.isHub?h?.connected:f.connected,S=i(()=>d?En.t("Done"):r?En.t("Try again"):En.t("Connect"),"getButtonTitle"),y=i(()=>g?ge.createElement(YA,{color:"info"}):r||d?null:ge.createElement(KA,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(x){a(x)}},"handleConnect"),T=i(async()=>{if(d){n();return}C()},"handleClickButton"),w=i(()=>{if(!d)return null;let x=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),A=x?.[x?.length-1];return A?io(A):null},"getAddress");return ge.createElement(ge.Fragment,null,ge.createElement(XA,{type:"warning",title:En.t("Connect {wallet}",{wallet:u.title}),description:En.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:ge.createElement(Wa,null,ge.createElement(jA,{src:u.image,size:45}),ge.createElement(La,null,ge.createElement(ZA,{color:"warning",size:10})))}),d&&!m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:10}),ge.createElement($y,{type:"success",variant:"alarm",title:En.t("Wallet connected successfully.")})),r&&!m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:10}),ge.createElement($y,{type:"error",title:r?.message,variant:"alarm"})),m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:30}),ge.createElement(No,{namespace:m,suffix:y(),error:r?.message,connected:d,address:w()})),ge.createElement(Ma,{size:"40"}),ge.createElement(VA,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},S()))},"ConnectWalletContent");import{i18n as Oy}from"@lingui/core";import{Button as eN,Divider as tN,Image as oN,MessageBox as nN,WarningIcon as rN}from"@rango-dev/ui";import{useWallets as iN}from"@rango-dev/wallets-react";import{detectInstallLink as aN}from"@rango-dev/wallets-shared";import ro from"react";var Uy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=iN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(aN(n.installLink),"_blank"),"handleButtonClick");return ro.createElement(ro.Fragment,null,ro.createElement(nN,{type:"warning",title:Oy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:ro.createElement(Wa,null,ro.createElement(oN,{src:n.img,size:45}),ro.createElement(La,null,ro.createElement(rN,{color:"warning",size:10})))}),ro.createElement(tN,{size:"40"}),ro.createElement(eN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},Oy.t("Install")))},"InstallWalletContent");var qy=i(t=>{let{swap:e,onClose:o}=t,{state:n}=uN(),r=lN(e),a=r?cN(e,r):null,s=a?.walletType,c=s?Pn(n(s)):null,l=r?sN(e,r):null;return s?c===pN.NOT_INSTALLED?zy.createElement(Uy,{walletType:s}):zy.createElement(Fy,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function ip(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Mr.createElement(J,{open:e,onClose:r,container:N()},o==="connectWallet"&&Mr.createElement(qy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Mr.createElement(_y,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Mr.createElement(Py,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Mr.createElement(Ly,{onClose:r,onCancel:()=>{r(),s()}}))}i(ip,"SwapDetailsModal");import{i18n as Pr}from"@lingui/core";import{Button as ap,Divider as _r,MessageBox as Gy,TokenAmount as dN,Typography as Vy}from"@rango-dev/ui";import ye from"react";import{Link as mN,useNavigate as fN}from"react-router-dom";var Qy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Hy="/profile";function sp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:m,diagnosisUrl:f}=t,h=fN(),{showProfileBanner:g}=te();return ye.createElement(J,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(tt.SWAP_BOX_ID)||document.body},n==="success"?ye.createElement(Gy,{type:"success",title:Pr.t("Swap Successful")},ye.createElement(dN,{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}),ye.createElement(_r,{size:12}),ye.createElement(Vy,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):ye.createElement(Gy,{type:"error",title:Pr.t("Transaction Failed"),description:m}),ye.createElement(_r,{size:30}),n==="success"&&ye.createElement(ye.Fragment,null,g&&ye.createElement(ye.Fragment,null,ye.createElement(mN,{to:Hy},ye.createElement(Dy,{src:Qy,alt:"Profile Banner"})),ye.createElement(_r,{size:30})),ye.createElement(ap,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Pr.t("Done"))),ye.createElement(_r,{size:12}),f&&ye.createElement(ye.Fragment,null,ye.createElement(ap,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Pr.t("Diagnosis")),ye.createElement(_r,{size:12})),ye.createElement(ap,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ye.createElement(Vy,{variant:"title",size:"medium",color:"primary"},Pr.t("See Details"))))}i(sp,"SwapDetailsCompleteModal");import{i18n as Da}from"@lingui/core";import{CopyIcon as EN,DoneIcon as IN,IconButton as AN,RangoExplorerIcon as NN,Tooltip as gS,Typography as hS,useCopyToClipboard as BN}from"@rango-dev/ui";import Nt from"react";import xN from"react";import{i18n as TN}from"@lingui/core";import{Alert as uS,IconButton as wN,LinkIcon as vN}from"@rango-dev/ui";import To,{Fragment as bN}from"react";import{Alert as hN,ChevronDownIcon as yN,IconButton as SN}from"@rango-dev/ui";import In,{useState as CN}from"react";import{css as Dr,darkTheme as Ky,styled as Ot,Typography as gN}from"@rango-dev/ui";var jy=Ot(ie,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Ky} &`]:{color:"$secondary500"}}}}}),Xy=Ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Yy=Ot("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Zy=Ot("div",{padding:"$0 $20 $20 $20"}),mY=Ot("div",{display:"flex",flexDirection:"column",gap:"$10"}),Jy=Ot("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),fY=Ot("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Go=Dr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Ky} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),Ry=Dr({padding:"$5 0"}),Pa=Dr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),eS=Dr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),tS=Dr({width:"100%",padding:"0 $20 $10"}),oS=Ot("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),nS=Ot("div",{display:"flex",flexDirection:"column",gap:"$5"}),_a=Ot(gN,{wordBreak:"break-word"});import{styled as lp}from"@rango-dev/ui";var rS=lp("div",{display:"flex",flexDirection:"column",gap:"$10"}),iS=lp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),aS=lp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function sS(t){let{message:e}=t,[o,n]=CN(!1);return In.createElement(hN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&In.createElement(SN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},In.createElement(iS,{rotated:o},In.createElement(yN,{size:12,color:"gray"}))),footer:In.createElement(aS,{open:o},In.createElement(_a,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(sS,"FailedAlert");import{i18n as lS}from"@lingui/core";import{Alert as cp,Button as cS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as kN}from"rango-types";import $r from"react";function pS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?$r.createElement(cp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:$r.createElement(cS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},lS.t("Change"))}):a===kN.WaitingForConnectingWallet?$r.createElement(cp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:$r.createElement(cS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},lS.t("Connect"))}):$r.createElement(cp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(pS,"WarningAlert");function pp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=Yn(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,m=u&&!c||p&&!s.explorerUrl?.length;return To.createElement(rS,null,s.explorerUrl?.map((f,h,g)=>{let d=h+f.url,S=h===g.length-1,y=(S&&u||p)&&!m,C=S&&s.status==="failed";return To.createElement(bN,{key:d},To.createElement(uS,{id:"widget-swap-details-tx-alert",type:S&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:TN.t("View transaction"),action:f.url&&To.createElement(wN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},To.createElement(vN,{size:12}))}))}),m&&To.createElement(uS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&To.createElement(pS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&To.createElement(sS,{message:a}))}i(pp,"SwapDetailsAlerts");var dS=2e3;var mS=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:gt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:D(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:gt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:D(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:gt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:gt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Bn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:xN.createElement(pp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function fS(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(fS,"getStepState");function yS(t){let{requestId:e}=t,[o,n]=BN(dS);return Nt.createElement(Yy,{className:Go()},Nt.createElement(hS,{variant:"label",size:"large",color:"neutral700"},Da.t("Request ID")),Nt.createElement("div",{className:Pa()},Nt.createElement(hS,{variant:"label",size:"small",color:"neutral700"},e),Nt.createElement(gS,{container:N(),content:o?Da.t("Copied To Clipboard"):Da.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Nt.createElement(AN,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Nt.createElement(IN,{size:16,color:"secondary"}):Nt.createElement(EN,{size:16,color:"gray"}))),Nt.createElement(oS,{target:"_blank",href:`${Hp}/swap/${e}`},Nt.createElement(gS,{container:N(),content:Da.t("View on Rango Explorer"),side:"bottom"},Nt.createElement(NN,{size:20})))))}i(yS,"RequestIdRow");import{i18n as SS}from"@lingui/core";import{Typography as CS}from"@rango-dev/ui";import up from"react";function kS(t){let{date:e,isFinished:o}=t;return up.createElement("div",{className:Go()},up.createElement(CS,{variant:"label",size:"large",color:"neutral700"},o?SS.t("Finished at"):SS.t("Created at")),up.createElement(CS,{variant:"label",size:"small",color:"neutral700"},e))}i(kS,"SwapDateRow");var ON=3e3;function gp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=$N(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),m=U.use.retry(),f=FN(),h=fp(null),[g,d]=$a(!1),[S,y]=$a(null),[C,T]=$a(null),[w,x]=$a(null),A=fp(S),I=fp(C),E=Ne.use.getNotifications(),v=Ne.use.removeNotification(),b=E(),B=LN(e),P=B?.networkStatus,F=i(Me=>{d(!0),y(Me)},"handleChangeModalState"),q=i(()=>{d(!1)},"handleCloseModal"),Z=i(()=>{T({type:"loading",title:Ut.t("Change Network"),description:`We\u2019re switching the connected network to ${R?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),V=i(()=>{T({type:"success",title:Ut.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),M=i(Me=>{T({type:"error",title:Ut.t("Network Switch Failed"),description:Me?.message||j.detailedMessage.content})},"handleShowSwitchNetworkFailed"),ee=Kd(e),R=B?WN(e,B):null,X=B?MN(e,B):null,we=By(e),se=jd(e),de=i(Me=>!!c(Me)?.mobileWallet,"checkIsMobileWallet"),Oe=!!P&&[An.WaitingForNetworkChange,An.NetworkChangeFailed].includes(P),wt=!!X?.walletType&&de(X.walletType),ve=!!X&&!!R&&a(X.walletType,R.network,R),L=!!R&&Oe&&(wt||ve),W=i(()=>{L&&(Z(),s(X.walletType,[{namespace:R.namespace,network:R.network}]).then(()=>{V()}).catch(Me=>{M(Me)}))},"handleSwitchNetwork"),H=i(()=>{F("switchNetwork"),W()},"handleSwitchNetworkClick"),j=Vd(e,B,c),K=mS({swap:e,switchNetworkIsAvailable:L,handleSwitchNetworkClick:H,showNetworkModal:P,setNetworkModal:F,message:j,blockchains:l,swappers:p}),me=K.length,[Qe,He]=[e.steps[0],e.steps[me-1]],be=He?.outputAmount||He?.expectedOutputAmountHumanReadable,Wt=e.steps.reduce((Me,Lt)=>Me+parseFloat(Lt.feeInUsd||""),0),Va=e.steps.find(Me=>Me.diagnosisUrl)?.diagnosisUrl,Ka=D(parseFloat(be||"0")*(He?.toUsdPrice||0),4,4),xp=D(parseFloat(e.inputAmount)*(Qe?.fromUsdPrice||0),4,4),Ep=be?new wS(be).multipliedBy(He.toUsdPrice||0).toString():"",YS=new wS(e.inputAmount).multipliedBy(Qe?.fromUsdPrice||0).toString(),ja=Vt(xp,Ka),Xa=j.detailedMessage.content||j.shortMessage,ZS=e.status==="success"?Ut.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:D(be,6,6),token:K[me-1]?.to.token.displayName,conciseAddress:io(e.wallets[K[me-1]?.to.chain.displayName||""]?.address||""),chain:K[me-1]?.to.chain.displayName}}):Se.createElement(nS,null,Se.createElement(dp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Xa?"":Ut.t("Transaction was not sent."),ee?`${Ut.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:ee.outputAmount,symbol:ee.symbol,blockchain:ee.blockchain}})}`:""),Xa&&Se.createElement(_a,{align:"center",variant:"body",size:"medium",color:"neutral700"},Se.createElement("b",null,"Reason:")," ",Xa));return mp(()=>{b.find(Lt=>Lt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),v(e.requestId),q()):w&&x(null))},[e.status,e.requestId]),mp(()=>{if(L){if(F("switchNetwork"),P===An.WaitingForNetworkChange){Z();return}if(P===An.NetworkChangeFailed){M();return}return}if(P===An.WaitingForConnectingWallet){F("connectWallet");return}if(P===An.NetworkChanged){F("switchNetwork"),V();return}S&&["connectWallet","switchNetwork"].includes(S)&&q()},[P]),mp(()=>{if(A.current=S,I.current=C,S==="switchNetwork"&&C?.type==="success"){let Me=setTimeout(()=>{A.current==="switchNetwork"&&I.current?.type==="success"&&q()},ON);return()=>clearTimeout(Me)}},[S,C]),Se.createElement(re,{header:{title:Ut.t("Swap Details"),onCancel:e.status==="running"?()=>F("cancel"):void 0,suffix:e.status!=="running"&&Se.createElement(co,null,Se.createElement(TS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>F("delete")},Se.createElement(dp,{size:"medium",variant:"label",color:"error"},Ut.t("Delete"))))},footer:se&&!w&&Se.createElement(TS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Me=wi(e,l,u);m(Me),setTimeout(()=>{f("../../")},0)}},Ut.t("Try again"))},Se.createElement(jy,{compact:!0,ref:h},Se.createElement(yS,{requestId:o}),Se.createElement(kS,{date:we,isFinished:!!e.finishTime}),Se.createElement("div",{className:eS()},Se.createElement(_N,{fee:D(String(Wt),2,2),time:Ln(Yr(e.steps)),steps:me}),Se.createElement(lr,{from:{price:{value:D(e.inputAmount,6,6),usdValue:xp,realUsdValue:YS,realValue:e.inputAmount},token:{displayName:K[0]?.from.token.displayName||"",image:K[0]?.from.token.image},chain:{image:K[0]?.from.chain.image,displayName:K[0]?.from.chain.displayName||""}},to:{price:{value:D(be,6,6),usdValue:Ka,realUsdValue:Ep,realValue:be||""},token:{displayName:K[me-1]?.to.token.displayName||"",image:K[me-1]?.to.token.image},chain:{image:K[me-1]?.to.chain.image,displayName:K[me-1]?.to.chain.displayName||""}},percentageChange:D(ja,2,2),warningLevel:Kt(ja??0)})),Se.createElement("div",{className:tS()},Se.createElement(dp,{variant:"title",size:"small"},Ut.t("Swaps steps"))),Se.createElement(PN,{size:8}),Se.createElement(Zy,null,K.map((Me,Lt)=>{let Ip=Lt,Nn=e.steps[Lt]&&fS(e.steps[Lt]),JS=Nn==="error"||Nn==="in-progress"||Nn==="warning"||Nn==="completed"&&Lt===K.length-1;return Se.createElement(DN,{className:"widget-swap-details-step-item-container",key:Ip,step:Me,type:"swap-progress",ref:h,state:Nn,hasSeparator:Lt!==0,tabIndex:Ip,isFocused:JS,tooltipContainer:N()})}))),Se.createElement(ip,{isOpen:g,state:S,switchNetworkModalState:C,onClose:q,onCancel:r,onDelete:n,message:j.detailedMessage.content,swap:e,handleSwitchNetwork:H}),Se.createElement(sp,{open:!!w,diagnosisUrl:Va,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:D(be,6,6),usdValue:Ka,realUsdValue:Ep,realValue:be||"",percentageChange:D(ja,2,2),token:{displayName:K[me-1]?.to.token.displayName||"",image:K[me-1]?.to.token.image},chain:{image:K[me-1]?.to.chain.image},description:ZS}))}i(gp,"SwapDetails");import{i18n as Oa}from"@lingui/core";import{Divider as xS,NotFound as HN,Skeleton as Or,Typography as Ua}from"@rango-dev/ui";import Ie from"react";import{i18n as UN}from"@lingui/core";import{Divider as zN,Skeleton as qN,Typography as QN}from"@rango-dev/ui";import Ee from"react";import{css as Bt,styled as hp}from"@rango-dev/ui";var vS=hp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Fr=hp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Fa=hp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),z7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),q7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Q7=Bt({paddingTop:"$15",display:"flex"}),H7=Bt({padding:"$15 $0"}),G7=Bt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),V7=Bt({paddingBottom:"$10"}),K7=Bt({display:"flex",justifyContent:"start",alignItems:"center"}),j7=Bt({paddingTop:"$5",display:"flex",alignItems:"center"}),X7=Bt({display:"flex",alignItems:"center"}),Y7=Bt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),bS=Bt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function yp(){return Ee.createElement(vS,null,Ee.createElement(pr,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(QN,{variant:"title",size:"small"},UN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1}),Ee.createElement("div",{className:bS()},Ee.createElement(zN,{direction:"horizontal",size:20}),Ee.createElement(qN,{height:22,variant:"rectangular"}))),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1}))))}i(yp,"LoadingSwapDetails");function ES(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(re,{header:{title:Oa.t("Swap Details"),suffix:Ie.createElement(co,null)}},o&&Ie.createElement(Xy,null,Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{variant:"label",size:"large",color:"neutral700"},`${Oa.t("Request ID")}`),Ie.createElement("div",{className:Pa()},Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(xS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}),Ie.createElement(xS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{className:Ry(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"}))),Ie.createElement(yp,null)),!o&&Ie.createElement(Jy,null,Ie.createElement(HN,{title:Oa.t("Not found"),description:Oa.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(ES,"SwapDetailsPlaceholder");function IS(){let{manager:t,state:e}=KN(),o=!e.loadedFromPersistor,n=kt(t),{requestId:r}=XN(),a=Ke(),{fetchStatus:s}=k();if(!r)return Sp.createElement(jN,{containerStyles:{margin:"20px"},type:"error",title:GN.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&VN(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),m=l?.swap;return!m||c?Sp.createElement(ES,{requestId:r,showSkeleton:c}):Sp.createElement(gp,{swap:m,requestId:r,onCancel:p,onDelete:u})}i(IS,"SwapDetailsPage");import{i18n as AS}from"@lingui/core";import{Divider as YN,getCategoriesCount as ZN,SelectableCategoryList as JN,styled as BS,Typography as RN,Wallet as e0,WalletState as t0}from"@rango-dev/ui";import{useWallets as o0}from"@rango-dev/wallets-react";import zt,{useState as NS}from"react";var n0=BS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),r0=BS(ie,{textAlign:"center"});function WS(){let{fetchStatus:t}=k(),[e,o]=NS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=o0(),[s,c]=NS(),l=te.use.isActiveTab(),{list:p}=vt(),u=Cu(p,n),f=ZN(u)!==1,h=ku(p,e),g=i(d=>{eu(p,r.multiWallets)||c(d)},"handleWalletItemClick");return zt.createElement(re,{header:{title:AS.t("Connect Wallets")}},zt.createElement(r0,null,f&&zt.createElement(zt.Fragment,null,zt.createElement(JN,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),zt.createElement(YN,{size:24})),zt.createElement(RN,{variant:"title",size:"xmedium",align:"center"},AS.t("Choose a wallet to connect.")),zt.createElement(n0,null,h.map((d,S)=>{let C=a(d.type).namespaces,T=`wallet-${S}-${d.type}`,w=is(d,C);return zt.createElement(e0,{key:T,...d,state:w?t0.PARTIALLY_CONNECTED:d.state,container:N(),onClick:()=>g(d),isLoading:t==="loading",disabled:!l})}),zt.createElement(Kn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(WS,"WalletsPage");function LS(){return Jd(),Vs(),i0([{path:O.home,element:qe.createElement(Xh,null)},{path:O.routes,element:qe.createElement(ey,null)},{path:O.fromSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"source"})},{path:O.blockchains,element:qe.createElement(wa,{type:"source"})}]},{path:O.toSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"destination"})},{path:O.blockchains,element:qe.createElement(wa,{type:"destination"})}]},{path:O.settings,children:[{index:!0,element:qe.createElement(Ay,null)},{path:O.languages,element:qe.createElement(Zh,null)},{path:O.exchanges,element:qe.createElement(Qc,{sourceType:"Exchanges"})},{path:O.bridges,element:qe.createElement(Qc,{sourceType:"Bridges"})},{path:O.customTokens,children:[{index:!0,element:qe.createElement(Zg,null)},{path:O.addCustomTokens,children:[{index:!0,element:qe.createElement(Vm,null)},{path:O.blockchains,element:qe.createElement(wa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:O.swaps,children:[{index:!0,element:qe.createElement(yh,null)},{path:O.swapDetails,element:qe.createElement(IS,null)}]},{path:O.wallets,element:qe.createElement(WS,null)},{path:O.confirmSwap,element:qe.createElement($g,null)}])}i(LS,"AppRoutes");import{useQueueManager as f0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as g0}from"rango-sdk";import{useContext as h0,useEffect as OS,useState as US}from"react";import{globalCss as a0}from"@rango-dev/ui";var MS=i(()=>a0({"@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 PS(){let{setWatermark:t,setShowProfileBanner:e}=te();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Qt("BASE_URL")}/meta/dapp/config?apiKey=${Qt("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(PS,"useFetchApiConfig");import{useWallets as s0}from"@rango-dev/wallets-react";import{useEffect as l0,useRef as c0}from"react";function _S(){let{connect:t,state:e}=s0(),o=c0({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);l0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i(_S,"useForceAutoConnect");import{isApprovalTX as p0,RouteEventType as DS,StepEventType as $S,StepExecutionEventStatus as u0,WidgetEvents as za}from"@rango-dev/queue-manager-rango-preset";import{useEffect as FS}from"react";function Cp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();FS(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===$S.TX_EXECUTION&&s.status===u0.TX_SENT&&!p0(c)||s.type===$S.SUCCEEDED){let u=[],m=l.wallets[c?.fromBlockchain];if(m){let f=e.find(h=>h.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&h.walletType===m.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>f.some(S=>S.blockchain===d.blockchain&&S.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===d.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return Ce.on(za.StepEvent,r),()=>Ce.off(za.StepEvent,r)},[Ce,e]),FS(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===DS.FAILED||s.type===DS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Ce.on(za.RouteEvent,r),()=>Ce.off(za.RouteEvent,r)},[Ce])}i(Cp,"useSubscribeToWidgetEvents");import{useManager as d0}from"@rango-dev/queue-manager-react";import{useEffect as m0}from"react";function kp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=d0();m0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(kt(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(kp,"useSyncNotifications");function Tp(){_S(),MS(),Cp(),kp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Hi(),[o,n]=US(null),[r,a]=US(),s=h0(Ci),c=t.filter(g0),{fetchApiConfig:l}=PS();OS(()=>()=>Zd(),[]),f0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),OS(()=>(Ao.init(),Ne.persist.hasHydrated()||Ne.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let m={...u};return p.network&&(m.network=p.network),p.accounts&&(m.accounts=p.accounts),m})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),Ao.destroy),[])}i(Tp,"useBootstrap");import{styled as y0}from"@rango-dev/ui";var zS=y0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function qa(){Tp();let{config:t}=k(),{activeTheme:e}=lo(t?.theme||{}),{activeLanguage:o}=yo();return wp.createElement(S0,{language:o},wp.createElement(zS,{id:"swap-container",className:e()},wp.createElement(LS,null)))}i(qa,"Main");import{setSolanaSignerConfig as F0}from"@rango-dev/signer-solana";import bp,{useEffect as KS,useMemo as O0}from"react";import{useState as C0}from"react";var k0=i(()=>{let[t,e]=C0(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=Rp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),qS=k0;import{checkWaitingForNetworkChange as T0,makeQueueDefinition as w0}from"@rango-dev/queue-manager-rango-preset";import{Provider as v0}from"@rango-dev/queue-manager-react";import{useWallets as b0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as x0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as E0}from"rango-types";import I0,{useMemo as A0}from"react";function N0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=b0(),c=A0(()=>w0({API_KEY:t.apiKey||Qt("API_KEY"),BASE_URL:Qt("BASE_URL"),emitter:{emit:Ce.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=k(),u=l(),m={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},f=i(async(w,x)=>a(w,x.network,x)?await r(w,[x]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),g=u.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),d=u.filter(E0),S=i(w=>{let{supportedChains:x}=s(w);return _n(x)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:g,evmBasedChains:d,evmNetworkChainInfo:x0(d),getSupportedChainNames:S},getSigners:o,wallets:m,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=te.use.isActiveTab();return I0.createElement(v0,{queuesDefs:[c],context:C,onPersistedDataLoaded:w=>{T0(w)},isPaused:!T},t.children)}i(N0,"QueueManager");var QS=N0;import{useManager as P0}from"@rango-dev/queue-manager-react";import _0,{createContext as D0,useContext as $0}from"react";function HS(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=U();return i(p=>{let{fromBlockchain:u,fromToken:m,toBlockchain:f,toToken:h,requestAmount:g}=p,d={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(m!==void 0){let S=m?t(m)??null:null;r({meta:d,token:S})}if(f!==void 0){let S=e.find(y=>y.name===f)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:d,token:S})}g!==void 0&&c(g)},"updateQuoteInputs")}i(HS,"useUpdateQuoteInputs");import{cancelSwap as B0,getCurrentNamespaceOfOrNull as W0,getCurrentStep as L0,getRelatedWalletOrNull as M0}from"@rango-dev/queue-manager-rango-preset";var Qa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return kt(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=wi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&B0(o)}getCurrentStepInfo(e){let o=L0(e);return{step:o,wallet:o?M0(e,o):null,network:o?W0(e,o)?.network:null}}};var GS=D0(void 0);function vp(t){let{manager:e}=P0(),o=te.use.isActiveTab(),n=U.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new Qa(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=mu(a()),m=k().blockchains(),f=k().tokens(),h=k().swappers(),g=k().fetchStatus,d=yo().resetLanguage,S=Ne().getNotifications(),y=Ne().clearNotifications,C=HS(),{fromBlockchain:T,toBlockchain:w,fromToken:x,toToken:A,inputAmount:I}=U(),E={isActiveTab:o,setCurrentTabAsActive:Ao.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async v=>c(v)},meta:{blockchains:m,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:d,notifications:{list:S,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:w?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:I},updateQuoteInputs:C}};return _0.createElement(GS.Provider,{value:E},t.children)}i(vp,"WidgetInfo");function VS(){let t=$0(GS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(VS,"useWidget");function Ha(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=qS();return KS(()=>{n&&r(n)},[n]),O0(()=>{Tu({API_KEY:o?.apiKey||Gr,BASE_URL:o?.apiUrl||Qp})},[o.apiKey,o.apiUrl]),KS(()=>{t.config?.signers?.customSolanaRPC&&F0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),bp.createElement(ki,{config:o,onUpdateState:e},bp.createElement(QS,{apiKey:o.apiKey},bp.createElement(vp,null,t.children)))}i(Ha,"WidgetProvider");function jS(t){let e=t.config?.externalWallets;return Ga.createElement(Cd,null,e?Ga.createElement(qa,null):Ga.createElement(Ha,{config:t.config??Qr},Ga.createElement(qa,null)))}i(jS,"Widget");function XS(){let{on:t,off:e}=Ce;return{on:t,off:e}}i(XS,"useWidgetEvents");var nee={DerivationPath:Hn,Namespaces:qn,Detached:Qn,isOnDerivationPath:Vn,isOnNamespace:Gn,isOnDetached:wo};export{NR as EventSeverity,Jo as MainEvents,OR as Networks,qR as PendingSwapNetworkStatus,ps as QuoteEventTypes,BR as RouteEventType,Ra as SUPPORTED_FONTS,nee as StatefulConnect,WR as StepEventType,LR as StepExecutionBlockedEventStatus,MR as StepExecutionEventStatus,tt as UI_ID,ds as UiEventTypes,us as WalletEventTypes,$R as WalletEvents,UR as WalletTypes,jS as Widget,Jo as WidgetEvents,Ha as WidgetProvider,ki as WidgetWallets,sl as customizedThemeTokens,_R as readAccountAddress,Vo as useStatefulConnect,vt as useWalletList,Hi as useWallets,VS as useWidget,XS as useWidgetEvents,tk as widgetEventEmitter};
|
|
1
|
+
var tC=Object.defineProperty;var i=(t,e)=>tC(t,"name",{value:e,configurable:!0});import{EventSeverity as BR,RouteEventType as WR,StepEventType as LR,StepExecutionBlockedEventStatus as MR,StepExecutionEventStatus as PR}from"@rango-dev/queue-manager-rango-preset";import{legacyReadAccountAddress as DR}from"@rango-dev/wallets-core/legacy";import{useWallets as Hi,Events as FR}from"@rango-dev/wallets-react";import{Networks as UR,WalletTypes as zR}from"@rango-dev/wallets-shared";import{PendingSwapNetworkStatus as QR}from"rango-types";import{Divider as yT}from"@rango-dev/ui";import ao,{useEffect as ST,useRef as CT,useState as dd}from"react";import{WalletState as oC}from"@rango-dev/ui";import{useWallets as nC}from"@rango-dev/wallets-react";import{useReducer as rC}from"react";function Ap(t){return!!t.derivationPath}i(Ap,"isStateOnDerivationPathStep");function Np(t){return!!t.namespace}i(Np,"isStateOnNamespace");var Ur={status:"init",namespace:null,derivationPath:null,selectedNamespaces:null};function Bp(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 Ur;case"resetDerivation":return t.namespace?{...t,derivationPath:null,status:"namespace"}:Ur;default:throw new Error("Action hasn't been defined.")}}i(Bp,"reducer");function Vo(){let{state:t,disconnect:e,connect:o}=nC(),[n,r]=rC(Bp,Ur),a=i(async(m,f,h)=>{r({type:"reset"});try{let g=f?.map(d=>({...d,network:void 0}));return await o(m,g),{status:"connected"}}catch(g){let d=g?.message?`Error: ${g.message}`:"An unknown error happened during connecting wallet.";throw new Error(d,{cause:g})}},"runConnect"),s=i(async(m,f)=>{if(m.state===oC.DISCONNECTED){let g=!!m.isHub,d=g?m.properties?.find(y=>y.name==="namespaces")?.value:m.needsNamespace,S=g?m.properties?.find(y=>y.name==="derivationPath")?.value:m.needsDerivationPath;if(!d?.data?.length)return await a(m.type,void 0,f);if(d?.data.length&&d.data.length>1)return r({type:"needsNamespace",payload:{targetWallet:m,defaultSelectedChains:f?.defaultSelectedChains}}),{status:"namespace"};if(d?.data.length===1&&d.data[0]){if(S){let y=d.data[0];return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y.value}}),{status:"derivation-path"}}return await a(m.type,d?.data?.map(y=>({namespace:y.value})),f)}}if(m.isHub){let g=m.properties?.find(d=>d.name==="namespaces")?.value;if(g?.data.length&&g.data.length>1)return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:null}}),{status:"Detached"}}return f?.disconnectIfConnected?(await u(m),{status:"disconnected"}):{status:"disconnected-unhandled"}},"handleConnect"),c=i(async(m,f)=>{let h=!!m.isHub,g=h?m.properties?.find(T=>T.name==="namespaces")?.value:m.needsNamespace,d=h?m.properties?.find(T=>T.name==="derivationPath")?.value:m.needsDerivationPath,S=g?.selection==="single",y=f[0];if(!y)throw new Error("To confirm a namespace, you should select at least one namespace.");if(S&&d)return r({type:"needsDerivationPath",payload:{providerType:m.type,providerImage:m.image,namespace:y}}),{status:"derivation-path"};if(!Np(n))throw new Error("Something went wrong on handling namespace. Please retry.");let C=f.map(T=>({namespace:T}));return r({type:"detached",payload:{targetWallet:m,selectedNamespaces:C?.map(T=>T.namespace)||null}}),{status:"Detached"}},"handleNamespace"),l=i(async m=>{if(!m)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");if(!Ap(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:m}];return await a(f,g)},"handleDerivationPath"),p=i(()=>n,"getState"),u=i(async m=>{let f=t(m.type);return f.connected||f.connecting?(await e(m.type),wo(p)?(r({type:"needsNamespace",payload:{targetWallet:m}}),{status:"namespace"}):{status:"disconnected"}):{status:"noop"}},"handleDisconnect");return{handleConnect:s,handleDisconnect:u,handleNamespace:c,handleDerivationPath:l,getState:p,resetState:m=>{r(m==="derivation"?{type:"resetDerivation"}:{type:"reset"})}}}i(Vo,"useStatefulConnect");import{WalletState as Cs}from"@rango-dev/ui";import{useWallets as fk}from"@rango-dev/wallets-react";import{detectMobileScreens as gk,KEPLR_COMPATIBLE_WALLETS as hk,WalletTypes as Un}from"@rango-dev/wallets-shared";import{useCallback as yk,useEffect as Sk}from"react";import ck,{createContext as pk,useContext as uk,useEffect as dk,useRef as mk}from"react";import{create as sk}from"zustand";import{persist as lk}from"zustand/middleware";import{allProviders as iC}from"@rango-dev/provider-all";var Ya=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()}},Ko=new Ya;import{defineVersions as Lp,pickVersion as Mp,Provider as Za}from"@rango-dev/wallets-core";function Pp({allProviders:t,configWallets:e}){if(e){let o=[];return e.forEach(n=>{if(typeof n=="string"){let r=t.find(a=>{let s=_p(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(Lp().version("1.0.0",n).build()):o.push(Lp().version("0.0.0",n).build())}),o}return t}i(Pp,"matchAndGenerateProviders");function _p(t){try{return Mp(t,"1.0.0")[1]}catch{return Mp(t,"0.0.0")[1]}}i(_p,"pickProviderVersionWithFallbackToLegacy");function Dp(t){return t.map(o=>_p(o)).map(o=>o instanceof Za?o.id:o.config.type)}i(Dp,"configWalletsToWalletName");function zr(t,e){return e.find(o=>o.name===t)?.displayName}i(zr,"getBlockchainDisplayNameFor");function gt(t,e){return e.find(o=>o.name===t)?.shortName}i(gt,"getBlockchainShortNameFor");function $p(t,e){return e.find(o=>o.name===t)?.logo}i($p,"getBlockchainImage");function Wn(t,e){return e.find(o=>o.id===t)?.title}i(Wn,"getSwapperDisplayName");function vo(t,e){return e.find(o=>o.name===t)??null}i(vo,"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 ht(t){return`${t.blockchain.toLowerCase()}-${t.symbol.toLowerCase()}-${(t.address??"").toLowerCase()}`}i(ht,"createTokenHash");function jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jo,"isValidTokenAddress");function Ln(t){let{config:e,meta:o}=t,n={},r=e.tokens,a=i(c=>{c.forEach(l=>{typeof l!="string"&&(l=ht(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=>{let p=o.tokensMapByBlockchainName[l];!c.has(l)&&p&&a(p)})}return s.forEach(c=>{let l=r[c];if(!l&&o.tokensMapByBlockchainName?.[c]){a(o.tokensMapByBlockchainName[c]);return}l&&(l.isExcluded&&o.tokensMapByBlockchainName[c]?(a(o.tokensMapByBlockchainName[c]),l.tokens.forEach(p=>{let u=ht(p);delete n[u]})):a(l.tokens))}),Object.values(n)}i(Ln,"matchTokensFromConfigWithMeta");function qr(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(qr,"getSupportedBlockchainsFromConfig");function Op(t){return{walletConnectProjectId:t?.walletConnectProjectId,trezorManifest:t?.trezorManifest,tonConnect:t?.tonConnect,walletConnectListedDesktopWalletLink:t.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink}}i(Op,"makeProvidersOptionsFromConfig");var Qr={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"}},aC={clientUrl:void 0},sC={liquiditySources:void 0};function Fp(t){let e=Op(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 iC(o).map(a=>a())}i(Fp,"generateProviders");var Up=i((t,e,o)=>{let n=Fp({...Qr,...t});return{config:{...Qr,...t},iframe:aC,campaignMode:sC,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=Ln({type:"source",config:{blockchains:r.from?.blockchains,tokens:r.from?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}}),p=Ln({type:"destination",config:{blockchains:r.to?.blockchains,tokens:r.to?.tokens},meta:{tokensMapByBlockchainName:c,tokensMapByTokenHash:s}});Ko.set("supportedSourceTokens",l),Ko.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=Fp(r);e({allProviders:a})},getAvailableProviders:()=>{let{allProviders:r,config:a}=o(),s=Op(a);return Pp({allProviders:r,configWallets:a.wallets,options:s})}}},"createConfigSlice");import{TransactionType as zp}from"rango-types";var qp=[zp.EVM,zp.SOLANA],Hr="https://raw.githubusercontent.com/rango-exchange/assets/refs/heads/main/common/unknown-image.png";import{RangoClient as wC}from"rango-sdk";import{UI_ID as lC}from"@rango-dev/ui";var Gr="c6381a79-2817-4602-83bf-6a641a409e32",Qp="https://api.rango.exchange",Hp="https://explorer.rango.exchange",tt={SWAP_BOX_ID:"rango-swap-box",EXPANDED_BOX_ID:"rango-expanded-box",...lC};import{BlockchainCategories as gC,WalletState as lt}from"@rango-dev/ui";import{legacyReadAccountAddress as hC}from"@rango-dev/wallets-core/legacy";import{detectInstallLink as yC,getCosmosExperimentalChainInfo as SC,isEvmAddress as CC,KEPLR_COMPATIBLE_WALLETS as RB,Networks as uu}from"@rango-dev/wallets-shared";import Yo from"bignumber.js";import{isCosmosBlockchain as kC}from"rango-types";import cC from"bignumber.js";var le=new cC(0);import{WalletTypes as pC}from"@rango-dev/wallets-shared";var bo="~",Gp=[pC.LEAP];import{BlockchainCategories as es,WalletState as fC}from"@rango-dev/ui";import{TransactionType as Vr}from"rango-sdk";var Vp="Roboto",Ra=[{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 Xo(t){return Array.from(new Set(t))}i(Xo,"removeDuplicateFrom");function Kr(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(Kr,"debounce");function st(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(st,"containsText");function Xp(t,e){return t.toLowerCase()===e.toLowerCase()}i(Xp,"exactText");function Yp(t,e){return t.toLowerCase().startsWith(e.toLowerCase())}i(Yp,"startWithText");var N=i(()=>document.getElementById(tt.SWAP_BOX_ID),"getContainer"),xo=i(()=>document.getElementById(tt.EXPANDED_BOX_ID),"getExpanded");function Zp(t,e,o){let n=!!e&&Xp(e,t),r=!!o&&Xp(o,t);return n!==r?n?-1:1:0}i(Zp,"compareExactMatchText");function ts(t,e,o){let n=!!e&&st(e,t),r=!!o&&st(o,t);return n!==r?n?-1:1:n&&r&&e?.length!==o?.length?e?.length-o?.length:0}i(ts,"compareContainsText");function os(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(os,"compareStartWithText");function Jp(t,e,o){if(!o)return 0;let n=Zp(o,t.symbol,e.symbol);if(n)return n;if(o.length>=3){let r=Zp(o,t.name,e.name);if(r)return r}if(o.length>=2){let r=os(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=ts(o,t.symbol,e.symbol);if(r)return r}if(o.length>=3){let r=os(o,t.name,e.name);if(r)return r}if(o.length>=3){let r=ts(o,t.name,e.name);if(r!==0)return r}if(o.length>=4){let r=os(o,t.address,e.address);if(r)return r}if(o.length>=4){let r=ts(o,t.address,e.address);if(r!==0)return r}return 0}i(Jp,"compareWithSearchFor");var jr=i((t,e)=>{switch(e){case es.ALL:return!0;case es.UTXO:return t===Vr.TRANSFER;case es.OTHER:return t!==Vr.TRANSFER&&t!==Vr.COSMOS&&t!==Vr.EVM;default:return t===e}},"isBlockchainTypeInCategory"),Rp=i(t=>Ra.find(o=>o.value===t)?.url,"getFontUrlByName");function eu(t,e){let o=!!t.find(n=>n.state===fC.CONNECTED);return e===!1&&o}i(eu,"isSingleWalletActive");function tu(){let t,e;return(o,n)=>((!e||!t||t!==n)&&(t=n,e=o()),e)}i(tu,"memoizedResult");import{BigNumber as cu}from"bignumber.js";function ou(t){return t.replace(/^0+(?=\d)/g,"")}i(ou,"removeLeadingZeros");function nu(t){return t.replace(/^\.(\d+)/,"0.$1")}i(nu,"ensureLeadingZeroForDecimal");function ru(t){return t.replace(/\B(?=(\d{3})+(?!\d))/g,",")}i(ru,"formatThousandsWithCommas");function iu(t){return t.replace(/\s+/g,"-")}i(iu,"replaceSpacesWithDash");function au(t){return t.replace(/(\.\d*?[1-9])0+$/,"$1").replace(/\.0+$/,"")}i(au,"stripTrailingZeros");function Xr(t){return/^0+(?:\.0+)?$/.test(t)}i(Xr,"isZeroValue");function su(t,e=2){let o=`^(?:0|[1-9]\\d*)(?:\\.\\d{1,${e}})?$`;return new RegExp(o).test(t)}i(su,"isValidCurrencyFormat");function lu(t){return/\d+$/.test(t)}i(lu,"isColorKeyOverridden");var Mn=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"),D=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new cu(t),r=1,a=1e3;for(let s=0;s<60;s++)if(new cu(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 Yr=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Mt=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Pn=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function pu(t){return Xr(t)?"0":au(t)}i(pu,"sanitizeInputAmount");function _n(t){return t.connected?lt.CONNECTED:t.connecting?lt.CONNECTING:t.installed?lt.DISCONNECTED:lt.NOT_INSTALLED}i(_n,"mapStatusToWalletState");function du(t,e,o,n){return o.filter(r=>!Gp.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:m,properties:f,isHub:h}=e(r),g=Xo(u.map(S=>S.type)),d=_n(t(r));return{title:a,image:s,link:yC(c),state:d,type:r,showOnMobile:l,needsNamespace:p,blockchainTypes:g,needsDerivationPath:m,properties:f,isHub:h}})}i(du,"mapWalletTypesToWalletInfo");function Dn(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Dn,"walletAndSupportedChainsNames");function rs(t,e,o,n,r){let a=[];function s(l,p,u){if(!!!a.find(f=>f.chain===l)){let f={address:p,chain:l,walletType:t,isContractWallet:u??!1};a.push(f)}}i(s,"addAccount");let c=n||[];return e.forEach(l=>{let{address:p,network:u}=hC(l),m=c.length>0,f=c.includes(u),h=u===uu.Unknown;if(m&&!f&&!h)return;let d=u===uu.Unknown&&CC(p);if(h&&!d)return;o.includes(u)||d?r?s(u,p.toLowerCase(),r):c.filter(C=>o.includes(C)).forEach(C=>{s(C,p.toLowerCase())}):s(u,p)}),a}i(rs,"prepareAccountsForWalletStore");function Eo(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 m=p.from.blockchain,f=p.to.blockchain,h=a===o.swaps.length-1,g=u===l.length-1;(!h&&!g||h&&c!==m||e==="all")&&n.add(m),e==="all"&&n.add(f)})}e==="all"&&n.add(c)}),Array.from(n)}i(Eo,"getQuoteChains");function $n(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i($n,"isAccountAndWalletMatched");var mu=i(t=>{let e=Object.values(t).reduce((o,n)=>{let r=n.usdValue?ns(n.usdValue,n.decimals):le.toFixed();return o.plus(r)},new Yo(le));return TC(e.toString())},"calculateWalletUsdValue");function TC(t){let e=t.toString().split(".");return e[0]&&(e[0]=ru(e[0])),e.join(".")}i(TC,"numberWithThousandSeparator");var Rr=i((t,e)=>{let o=SC(Object.entries(t).map(([,n])=>n).filter(kC));return o&&!!o[e]?.experimental},"isExperimentalChain");function ns(t,e){return new Yo(t).shiftedBy(-e).toFixed()}i(ns,"representAmountInNumber");function ei(t){if(!t)return null;let e=ns(t.amount,t.decimals),o=t.usdValue?ns(t.usdValue,t.decimals):null,n=D(e,8,8),r=o?D(o,4,4):null;return t?{...t,amount:n,usdValue:r}:null}i(ei,"formatBalance");function fu(t,e){if(t?.usdValue||e?.usdValue){let o=t&&t.usdValue?new Yo(t.usdValue).shiftedBy(-t.decimals):le,n=e&&e.usdValue?new Yo(e.usdValue).shiftedBy(-e.decimals):le;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}if(t?.amount||e?.amount){let o=t&&t.amount?new Yo(t.amount).shiftedBy(-t.decimals):le,n=e&&e.amount?new Yo(e.amount).shiftedBy(-e.decimals):le;return o.isEqualTo(n)?0:o.isGreaterThan(n)?-1:1}return 0}i(fu,"compareTokenBalance");function qt(t,e){return t?.blockchain===e?.blockchain&&t?.symbol.toLowerCase()===e?.symbol.toLowerCase()&&t?.address?.toLowerCase()===e?.address?.toLowerCase()}i(qt,"areTokensEqual");function gu(t,e){return t.map(o=>({isPartiallyConnected:is(o,e(o.type).namespaces),...o})).sort((o,n)=>+(n.state===lt.CONNECTED&&!n.isPartiallyConnected)-+(o.state===lt.CONNECTED&&!o.isPartiallyConnected)||+(n.state===lt.CONNECTED)-+(o.state===lt.CONNECTED)||+(n.state===lt.DISCONNECTED||n.state===lt.CONNECTING)-+(o.state===lt.DISCONNECTED||o.state===lt.CONNECTING)).map(({isPartiallyConnected:o,...n})=>n)}i(gu,"sortWalletsBasedOnConnectionState");function io(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(io,"getConciseAddress");function hu({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(hu,"getAddress");var yu=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");function Su(t){return t.map(e=>e.state).join("-")}i(Su,"hashWalletsState");function Cu(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(Cu,"filterBlockchainsByWalletTypes");function ku(t,e){return e===gC.ALL?t:t.filter(o=>{for(let n of o.blockchainTypes)if(jr(n,e))return!0;return!1})}i(ku,"filterWalletsByCategory");function is(t,e){return!t.isHub||!t.needsNamespace||t.state!==lt.CONNECTED?!1:t.needsNamespace.data.filter(r=>!r.unsupported).some(r=>!e?.get(r.value)?.connected)}i(is,"checkIsWalletPartiallyConnected");var as={API_KEY:Gr};function Qt(t){return as[t]||""}i(Qt,"getConfig");function Tu(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),as=e,as}i(Tu,"initConfig");var wu=20,vu=25,ss="theme-widget",ls=i((t,e)=>{let o=!1;if(e&&t){if(Array.isArray(e))o=!e.some(n=>qt(n,t));else if(!Array.isArray(e)){let n=e[t.blockchain];if(n){o=!!n.tokens.some(a=>qt(a,t));let r=n.isExcluded;return!r&&!o||r&&o}}}return o},"isTokenExcludedInConfig"),cs=i((t,e)=>t&&e&&!e.includes(t.name),"isBlockchainExcludedInConfig"),bu=i((t,e,o)=>o==="expanded"&&(t||e)||o==="full-expanded"&&e,"isVariantExpandable");var ti,ct=i(()=>ti||(ti=new wC(Qt("API_KEY"),Qt("BASE_URL")),ti),"httpService");import{i18n as Eu}from"@lingui/core";var oi=[.5,1,3],ni=1,Zo=5,Fn=30,ri=0;var Xe=(a=>(a[a.NO_RESULT=0]="NO_RESULT",a[a.REQUEST_FAILED=1]="REQUEST_FAILED",a[a.REQUEST_CANCELED=2]="REQUEST_CANCELED",a[a.BRIDGE_LIMIT=3]="BRIDGE_LIMIT",a[a.INSUFFICIENT_SLIPPAGE=4]="INSUFFICIENT_SLIPPAGE",a))(Xe||{});import{WidgetEvents as xu}from"@rango-dev/queue-manager-rango-preset";var ps=(o=>(o.QUOTE_INPUT_UPDATE="quoteInputUpdate",o.QUOTE_OUTPUT_UPDATE="quoteOutputUpdate",o))(ps||{}),us=(o=>(o.CONNECT="connect",o.DISCONNECT="disconnect",o))(us||{}),ds=(e=>(e.CLICK_CONNECT_WALLET="clickConnectWallet",e))(ds||{}),Jo=(a=>(a[a.RouteEvent=xu.RouteEvent]="RouteEvent",a[a.StepEvent=xu.StepEvent]="StepEvent",a.QuoteEvent="quoteEvent",a.WalletEvent="walletEvent",a.UiEvent="uiEvent",a))(Jo||{});function ii(t,e){let o=t.map(a=>a.swapperGroup),n=[];return Xo(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(ii,"getUniqueSwappersGroups");function Iu(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(Iu,"sortLiquiditySourcesByGroupTitle");function ot(t,e){return e?.[t]==="hidden"}i(ot,"isFeatureHidden");function Ro(t,e){return e?.[t]==="enabled"}i(Ro,"isRoutingEnabled");var Au=i((t,e,o)=>ot("customTokens",o)?t:t.concat(e),"addCustomTokensToSupportedTokens");function en(t){return t==ri?{type:"error",message:Eu.t("Slippage must be greater than or equal to 0.01")}:t>Zo&&t<=Fn?{type:"warning",message:Eu.t("Your transaction is at risk of being frontrun due to high slippage tolerance."),quoteValidation:{type:3,slippage:t.toString()}}:null}i(en,"getSlippageValidation");var Nu=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=qr({config:a}),p=r;return l.length>0&&(p=p.filter(u=>l.includes(u.name))),p.filter(u=>qp.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",m=Ko.get(u);m?.length||(m=Ln({type:o.type,config:{blockchains:a[p]?.blockchains,tokens:a[p]?.tokens},meta:{tokensMapByTokenHash:n,tokensMapByBlockchainName:r}}),Ko.set(u,m)),m=Au(m,s,a.features);let f=e().blockchains({type:o.type});return m.filter(g=>o.blockchain&&g.blockchain!==o.blockchain||!f.some(d=>d.name===g.blockchain)?!1:o.searchFor?!!(st(g.symbol,o.searchFor)||st(g.address||"",o.searchFor)||st(g.name||"",o.searchFor)):!0).sort((g,d)=>{let S=e().isTokenPinned(g,o.type),y=e().isTokenPinned(d,o.type);if(S!==y)return S?-1:1;if(o.getBalanceFor){let A=o.getBalanceFor(g),I=o.getBalanceFor(d),E=fu(A,I);if(E!==0)return E}let C=l.get(g.blockchain),T=l.get(d.blockchain),w=Ja(g,C),x=Ja(d,T);if(w!==x)return w?-1:1;if(g.isPopular!==d.isPopular)return g.isPopular?-1:1;if(o.searchFor){let A=Jp(g,d,o.searchFor);if(A)return A}return g.isSecondaryCoin!==d.isSecondaryCoin?g.isSecondaryCoin?1:-1:C&&T?C.sort-T.sort:0})},findToken:o=>{let n=e()._tokensMapByTokenHash,r=e().customTokens(),a=ht(o),s=n.get(a);return s||(s=r.find(c=>ht(c)===a)),s},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(s=>qt(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(Iu)},fetch:async()=>{try{let{routing:o}=e().config,n=Ro("enableCentralizedSwappers",o),r=await ct().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),m=new Set;r.tokens.forEach(h=>{m.add(h.blockchain),l.push(h)}),r.blockchains.sort((h,g)=>h.sort-g.sort).forEach(h=>{h.enabled&&m.has(h.name)&&a.set(h.name,h)}),l.forEach(h=>{let g=ht(h);c[h.blockchain]||(c[h.blockchain]=[]),s.set(g,h),c[h.blockchain]?.push(g)}),t({_blockchainsMapByName:a,_tokensMapByTokenHash:s,_tokensMapByBlockchainName:c,_popularTokens:p,_swappers:u})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{Bengali as vC,Catalonia as bC,Chinese as Bu,Denmark as xC,English as EC,Finland as IC,French as AC,German as NC,Greece as BC,Hungary as WC,India as LC,Indonesian as MC,Italian as PC,Japanese as _C,Korea as DC,Lithuania as $C,Malay as FC,Netherlands as OC,Pakistan as UC,Philippines as zC,Poland as qC,Portuguese as QC,Russian as HC,SaudiArabia as GC,Serbia as VC,Slovakia as KC,SouthAfrica as jC,Spanish as XC,Swahili as YC,Swedish as ZC,Thai as JC,Turkish as RC,Ukrainian as ek,Vietnamese as tk}from"@rango-dev/ui";var Wu=[{title:"Afrikaans",label:"Afrikaans",local:"af",SVGFlag:jC},{title:"Arabic",label:"\u0639\u0631\u0628\u064A",local:"ar",SVGFlag:GC},{title:"Bengali",label:"\u09AC\u09BE\u0982\u09B2\u09BE",local:"bn",SVGFlag:vC},{title:"Catalan",label:"Catal\xE0",local:"ca",SVGFlag:bC},{title:"Chinese (Simplified)",label:"\u7B80\u4F53\u4E2D\u6587",local:"zh-CN",SVGFlag:Bu},{title:"Chinese (Traditional)",label:"\u4E2D\u6587\uFF08\u7E41\u9AD4)",local:"zh-TW",SVGFlag:Bu},{title:"Danish",label:"Dansk",local:"da",SVGFlag:xC},{title:"Dutch",label:"Nederlands",local:"nl",SVGFlag:OC},{title:"English",label:"English",local:"en",SVGFlag:EC},{title:"Filipino",label:"Filipino",local:"fil",SVGFlag:zC},{title:"Finnish",label:"Suomalainen",local:"fi",SVGFlag:IC},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:AC},{title:"German",label:"Deutsch",local:"de",SVGFlag:NC},{title:"Greek",label:"\u03B5\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",local:"el",SVGFlag:BC},{title:"Hindi",label:"\u0939\u093F\u0902\u0926\u0940",local:"hi",SVGFlag:LC},{title:"Hungarian",label:"Magyar",local:"hu",SVGFlag:WC},{title:"Indonesian",label:"Indonesia",local:"id",SVGFlag:MC},{title:"Italian",label:"Italiana",local:"it",SVGFlag:PC},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:_C},{title:"Korean",label:"\uD55C\uAD6D\uC778",local:"ko",SVGFlag:DC},{title:"Lithuanian",label:"Lietuvi\u0173",local:"lt",SVGFlag:$C},{title:"Malay",label:"Melayu",local:"ms",SVGFlag:FC},{title:"Polish",label:"Polski",local:"pl",SVGFlag:qC},{title:"Portuguese",label:"Portugu\xEAs",local:"pt",SVGFlag:QC},{title:"Russian",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",local:"ru",SVGFlag:HC},{title:"Serbian",label:"C\u0440\u043F\u0441\u043A\u0438",local:"sr",SVGFlag:VC},{title:"Slovak",label:"Slovensk\xFD",local:"sk",SVGFlag:KC},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:XC},{title:"Swahili",label:"Kiswahili",local:"sw",SVGFlag:YC},{title:"Swedish",label:"Svenska",local:"sv",SVGFlag:ZC},{title:"Thai",label:"\u0E41\u0E1A\u0E1A\u0E44\u0E17\u0E22",local:"th",SVGFlag:JC},{title:"Turkish",label:"T\xFCrk\xE7e",local:"tr",SVGFlag:RC},{title:"Ukrainian",label:"Y\u043A\u0440\u0430\u0457\u043D\u0456",local:"uk",SVGFlag:ek},{title:"Urdu",label:"\u0627\u0631\u062F\u0648",local:"ur",SVGFlag:UC},{title:"Vietnamese",label:"Ti\u1EBFng Vi\u1EC7t",local:"vi",SVGFlag:tk}],tn="en";var Lu=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:null,preferredBlockchains:[],slippage:ni,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=Xo(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=ot("theme",n),s=ot("language",n),c=ot("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||tn},...c&&{disabledLiquiditySources:o.liquiditySources||[]},...p&&{language:o.language||tn}})},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=qr({config:o});return r.length?n.filter(a=>r.includes(a.blockchain)):n}}),"createSettingsSlice");import Ss from"bignumber.js";import ok from"mitt";var Ce=ok(),nk={on:Ce.on,off:Ce.off};var Mu=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 Pu from"bignumber.js";function Ht(t){return`${t.blockchain}${bo}${t.address}${bo}${t.symbol}`}i(Ht,"createAssetKey");function _u(t,e){return`${Ht(e)}${bo}${t}`}i(_u,"createBalanceKey");function On(t){let[e,o,n]=t.split(bo);return!e||!o||!n?null:{address:o==="null"?null:o,blockchain:e,symbol:n}}i(On,"extractAssetFromBalanceKey");function fs(t,e,o){return e.balances?.forEach(n=>{let r=n.price??t.findToken(n.asset)?.usdPrice;t._aggregatedBalances[Ht(n.asset)]?.forEach(s=>{o[s]&&(o[s]={...o[s],usdValue:r?new Pu(r??le).multipliedBy(o[s].amount).toString():""})})}),o}i(fs,"computeNextBalancesWithNewPrices");function gs(t,e){let o={};return t.balances?.forEach(n=>{let r=_u(t.address,n.asset),a=n.amount.amount,s=n.amount.decimals,c=n.price??e().findToken(n.asset)?.usdPrice,l=c?new Pu(c??le).multipliedBy(a).toString():"",p={amount:a,decimals:s,usdValue:l};o[r]=p}),o}i(gs,"createBalanceStateForNewAccount");function hs(t,e){for(let o in e){let n=On(o);if(n){let r=Ht(n);t[r]||(t[r]=[]),t[r].includes(o)||(t[r]=[...t[r],o])}}return t}i(hs,"updateAggregatedBalanceStateForNewAccount");function rk(t,e){let o=On(e);if(!o)return t;let n=Ht(o);return t[n]&&(t[n]=t[n].filter(r=>r!==e)),t}i(rk,"removeBalanceFromAggregatedBalance");function ys(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);if(!p)return;!!n.find(m=>_u(m.address,{address:p.address,blockchain:m.chain,symbol:p.symbol})===l)?a=rk(a,l):s[l]&&(r[l]=s[l])}),{_balances:r,_aggregatedBalances:a}}i(ys,"computeNextStateAfterWalletBalanceRemoval");function ik(t,e){return e.find(o=>t.address===o.address&&t.chain===o.blockChain)}i(ik,"matchWalletDetailsWithConnectedWallet");var ak=tu(),Du=Mu((t,e)=>({_balances:{},_aggregatedBalances:{},connectedWallets:[],fetchingWallets:!1,lastUpdatedAt:+new Date,setConnectedWalletAsRefetching:o=>{t(n=>({fetchingWallets:!0,connectedWallets:n.connectedWallets.map(r=>o.find(a=>$n(a,r))?{...r,loading:!0,error:!1}:r)}))},setConnectedWalletRetrievedData:(o,n)=>{t(r=>({fetchingWallets:!1,connectedWallets:r.connectedWallets.map(a=>o.find(s=>$n(s,a))?{...a,loading:!1,error:!1,explorerUrl:ik(a,n)?.explorerUrl||a.explorerUrl}:a)}))},setConnectedWalletHasError:o=>{t(n=>({fetchingWallets:!1,connectedWallets:n.connectedWallets.map(r=>o.find(a=>$n(a,r))?{...r,loading:!1,error:!0}:r)}))},addConnectedWallet:(o,n,r)=>{let a=e().connectedWallets,s=o.filter(c=>!a.some(l=>$n(c,l)));if(s.length>0){let c=s.map(l=>{let p=!a.some(u=>u.chain===l.chain&&u.selected&&u.walletType!==l.walletType);return{address:l.address,chain:l.chain,isContractWallet:l.isContractWallet,explorerUrl:null,walletType:l.walletType,selected:p,namespace:n,derivationPath:r,loading:!1,error:!1}});t(l=>({connectedWallets:[...l.connectedWallets.filter(u=>!c.some(m=>m.walletType===u.walletType&&m.chain===u.chain)),...c]}))}},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 ct().getMultipleTokenBalance({assets:p.map(({symbol:m,address:f,blockchain:h})=>({symbol:m,address:f,blockchain:h})),walletAddress:l});if(u){let m=e()._balances,f=e()._aggregatedBalances;u.forEach(h=>{if(parseFloat(h.amount.amount)===0)return;let g={blockChain:h.asset.blockchain,balances:[h],address:l},d={_aggregatedBalances:e()._aggregatedBalances,findToken:e().findToken};fs(d,g,m);let S=gs(g,e);f=hs(f,S),m={...m,...S}}),t(h=>({_balances:{...h._balances,...m},_aggregatedBalances:f}))}}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,r)=>{let a=o[0];a&&(Ce.emit("walletEvent",{type:"connect",payload:{walletType:a.walletType,accounts:o}}),e().addConnectedWallet(o,n,r),e().fetchBalances(o))},removeBalancesForWallet:(o,n)=>{let r={_balances:e()._balances,_aggregatedBalances:e()._aggregatedBalances,connectedWallets:e().connectedWallets},{_balances:a,_aggregatedBalances:s}=ys(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(Ce.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||!o[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 ct().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(m=>{if(m.failed)return;let f={_balances:l,_aggregatedBalances:p,connectedWallets:e().connectedWallets,findToken:e().findToken};fs(f,m,l);let{_balances:h,_aggregatedBalances:g}=ys(f,r,{chains:[m.blockChain]});if(p=g,l=h,!e().connectedWallets.find(S=>S.walletType===r&&S.address===m.address&&S.chain===m.blockChain))return;let d=gs(m,e);p=hs(p,d),l={...l,...d}}),t(m=>({_balances:{...m._balances,...l},_aggregatedBalances:p})),e().setConnectedWalletRetrievedData(o,c);let{retryOnFailedBalances:u=!0}=n||{};if(u){let m=c.filter(f=>f.failed).map(f=>({chain:f.blockChain,walletType:r,address:f.address}));m.length>0&&await e().fetchMainTokensBalances(m,{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=Ht(o),a=e()._aggregatedBalances[r]||[];if(a.length===0||!a[0])return null;let s=a[0];if(a.length===1&&n[s])return n[s];let c=n[a[0]];if(!c)return null;let l=c;return a.forEach(p=>{let u=n[p];if(!u)return;let m=new Ss(u.amount),f=new Ss(l.amount);m.isGreaterThan(f)&&(l=u)}),l},getBalancesForWalletAddress:o=>{let n=e().getBalances();return Object.keys(n).reduce((s,c)=>{let l=n[c],[,,,p]=c.split(bo);return l&&p===o&&(s[c]=l),s},{})},getConnectedWalletsDetails:()=>ak(()=>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&&p.blockchain===n.chain&&l){let u=e().findToken(p),m=l?.amount?new Ss(l.amount).shiftedBy(-l.decimals):le;s.push({chain:n.chain,symbol:p.symbol,ticker:p.symbol,address:p.address,rawAmount:l.amount,decimal:l.decimals,amount:m.toString(),isSupported:!!u,logo:u?.image||null,usdPrice:u?.usdPrice||null})}return s},[])}}),e().lastUpdatedAt)}));function $u(t){return sk()(lk((...e)=>({...Du(...e),...Nu(...e),...Lu(...e),...Up(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($u,"createAppStore");var Fu=pk(null);function k(){let t=uk(Fu);if(dk(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(k,"useAppStore");function Ou(t){let e=mk();return e.current||(e.current=$u(t.config)),ck.createElement(Fu.Provider,{value:e.current},t.children)}i(Ou,"AppStoreProvider");function vt(t){let{chain:e}=t||{},{connectedWallets:o,getAvailableProviders:n}=k(),{state:r,getWalletInfo:a}=fk(),s=k().blockchains(),{handleDisconnect:c}=Vo(),l=Dp(n()),p=du(r,a,l,e);p=gk()?p.filter(d=>d.showOnMobile!==!1&&r(d.type).installed):p;let u=gu(p,r),m=i(d=>!o.find(S=>S.walletType===d&&S.chain===e),"isExperimentalChainNotAdded"),f=yk(()=>{let d=p?.filter(S=>S.state===Cs.CONNECTING)||[];for(let S of d)c(S)},[Su(p)]);Sk(()=>()=>{f()},[]);let h=i(d=>{let S=d.find(C=>C.type===Un.DEFAULT);return!S||S.state===Cs.NOT_INSTALLED?!1:d.filter(C=>C.state!=Cs.NOT_INSTALLED&&![Un.DEFAULT,Un.WALLET_CONNECT_2,Un.LEDGER].includes(C.type)&&a(C.type).supportedChains.filter(T=>T.type=="EVM").length>0).length==0},"shouldShowDefaultInjectedWallet"),g=i((d,S,y)=>Rr(y,S)&&m(d)&&!hk.includes(d)||d==Un.DEFAULT&&!h(p),"shouldExcludeWallet");return{list:u.filter(d=>!g(d.type,e??"",s)),terminateConnectingWallets:f}}i(vt,"useWalletList");import{Modal as wk}from"@rango-dev/ui";import vk from"react";import{create as Tk}from"zustand";var Uu="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(Uu),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 kk=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"),on=kk;var te=on(Tk()((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})}}))),Ao=new zn({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 vk.createElement(wk,{hasWatermark:e==="FULL",...t},t.children)}i(J,"WatermarkedModal");import{i18n as an}from"@lingui/core";import{Alert as $k,Button as Fk,Divider as mi,Image as Ok,MessageBox as Uk,RadioRoot as zk}from"@rango-dev/ui";import ce,{useEffect as qk,useMemo as Qk,useState as Hk}from"react";import{i18n as Ik}from"@lingui/core";import{Typography as ju}from"@rango-dev/ui";import nn from"react";function ai(t,e){return t.find(o=>o.name===e)?.logo}i(ai,"getBlockchainLogo");import{darkTheme as bk,Image as xk,styled as Gt,Typography as Ek}from"@rango-dev/ui";var si=Gt("li",{backgroundColor:"$neutral200",padding:"$16",borderRadius:"$sm",variants:{clickable:{true:{cursor:"pointer"}},hasError:{true:{background:"$error100",[`.${bk} &`]:{backgroundColor:"$error700"}}},unsupported:{true:{cursor:"not-allowed",paddingTop:"$8",paddingBottom:"$8"}}}}),li=Gt("div",{display:"flex",gap:"$8",alignItems:"center"}),qu=Gt("div",{flex:"1",display:"flex",flexDirection:"column",justifyContent:"space-between",height:"$40",variants:{showSupportedChains:{true:{justifyContent:"space-between"},false:{justifyContent:"center"}}}}),Qu=Gt("div",{flex:"1",display:"flex",alignItems:"center",gap:"$4",opacity:"0.5"}),Hu=Gt("div",{display:"flex",gap:"$6",alignItems:"center"}),Gu=Gt("div",{paddingLeft:"48px"}),Vu=Gt("div",{display:"flex",gap:"$2",cursor:"pointer",alignItems:"center",width:"fit-content"}),Ku=Gt(Ek,{maxWidth:"100px"}),ci=Gt(xk,{variants:{disabled:{true:{opacity:"0.5"}}}});function pi(t){let{namespace:e}=t,o=k().blockchains();return nn.createElement(si,{unsupported:!0},nn.createElement(li,null,nn.createElement(ci,{src:ai(o,e.id),size:40,disabled:!0}),nn.createElement(Qu,null,nn.createElement(ju,{variant:"label",size:"large"},e.label),nn.createElement(ju,{variant:"body",size:"xsmall"},Ik.t("(Currently not supported)")))))}i(pi,"NamespaceUnsupportedItem");import{Checkbox as Pk,Radio as _k}from"@rango-dev/ui";import vs from"react";import{i18n as ws}from"@lingui/core";import{ChevronDownIcon as Nk,ChevronUpIcon as Bk,Divider as Wk,Typography as qn}from"@rango-dev/ui";import Ae,{useEffect as Lk,useState as Mk}from"react";import{Image as Yu,Tooltip as Zu,Typography as Ak}from"@rango-dev/ui";import Pt from"react";import{styled as Xu}from"@rango-dev/ui";var ks=Xu("div",{display:"flex",alignItems:"center",padding:0,margin:0}),ui=Xu("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 Ts=3;function Ju(t){let{chains:e}=t;return Pt.createElement(ks,{id:"widget-supported-chains-container"},e.slice(0,Ts).map((o,n)=>Pt.createElement(Zu,{key:o.name,container:N(),side:"bottom",align:"start",content:o.name,sideOffset:4},Pt.createElement(ui,{firstItem:n===0},Pt.createElement(Yu,{src:o.logo,size:15})))),e.length>Ts&&Pt.createElement(Zu,{container:N(),side:"bottom",align:"start",sideOffset:4,content:Pt.createElement(ks,null,e.map((o,n)=>Pt.createElement(ui,{key:o.name,firstItem:n===0},Pt.createElement(Yu,{src:o.logo,size:15}))))},Pt.createElement(ui,null,Pt.createElement(Ak,{variant:"body",size:"xsmall"},"+",e.length-Ts))))}i(Ju,"SupportedChainsList");function No(t){let{namespace:e,error:o,suffix:n,connected:r,address:a,onClick:s}=t,[c,l]=Mk(!1),p=k().blockchains();Lk(()=>l(!1),[o]);let u=e.getSupportedChains(p),m=!o&&!r&&u.length>1;return Ae.createElement(si,{hasError:!!o,clickable:!!s,onClick:s},Ae.createElement(li,null,Ae.createElement(ci,{src:ai(p,e.id),size:40}),Ae.createElement(qu,{showSupportedChains:m||r||!!o},Ae.createElement(Hu,null,Ae.createElement(qn,{variant:"label",size:"large"},e.label),r&&Ae.createElement(qn,{variant:"body",size:"small",color:"success500"},ws.t("Connected")),!!o&&Ae.createElement(qn,{variant:"body",size:"small",color:"error500"},ws.t("Connection failed"))),m&&Ae.createElement(Ju,{chains:u}),r&&Ae.createElement(Ku,{variant:"body",size:"small",color:"neutral700"},a),o&&Ae.createElement(Vu,{onClick:()=>l(f=>!f)},Ae.createElement(qn,{variant:"body",size:"small",color:"neutral700",style:{textDecoration:"underline",userSelect:"none",textDecorationSkipInk:"none"}},ws.t("See why")),c?Ae.createElement(Bk,{size:12,color:"gray"}):Ae.createElement(Nk,{size:12,color:"gray"}))),n),!!o&&c&&Ae.createElement(Ae.Fragment,null,Ae.createElement(Wk,{size:4}),Ae.createElement(Gu,null,Ae.createElement(qn,{variant:"body",size:"small",color:"neutral700"},o))))}i(No,"NamespaceItem");function Ru(t){let{onClick:e,type:o,namespace:n}=t;return vs.createElement(No,{namespace:n,onClick:e,suffix:o==="radio"?vs.createElement(_k,{value:n.value}):vs.createElement(Pk,{checked:t.value})})}i(Ru,"NamespaceListItem");import{Button as Dk,styled as ed}from"@rango-dev/ui";var di=ed("ul",{padding:0,paddingTop:"$16",paddingBottom:"$20",margin:0}),rn=ed(Dk,{minHeight:"$40"});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=k().blockchains(),[l,p]=Hk([]),u=Qk(()=>a?.data.filter(d=>!d.unsupported),[e?.type]),m=i(d=>{p(r?[d]:S=>S.includes(d)?S.filter(y=>y!==d):S.concat(d))},"onSelect"),f=u?.length===l.length,h=i(()=>{if(r)throw new Error("onSelectAll should not be called on single selection mode.");f?p([]):u&&p(u.map(d=>d.value))},"onSelectAll"),g=i(d=>r?ce.createElement(zk,{value:l?.[0]},d):ce.createElement(ce.Fragment,null,d),"wrapRadioRoot");return qk(()=>{if(!r&&u)if(t.value.defaultSelectedChains?.length){let d=u.filter(S=>S.getSupportedChains(c).some(y=>t.value.defaultSelectedChains?.includes(y.name)));p(d.map(S=>S.value))}else p(u.map(d=>d.value))},[]),ce.createElement(ce.Fragment,null,ce.createElement(Uk,{type:"info",title:an.t("Connect {wallet}",{wallet:e.title}),description:an.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect."),icon:ce.createElement(Ok,{src:s,size:45})}),r?ce.createElement(ce.Fragment,null,ce.createElement(mi,{size:20}),ce.createElement($k,{id:"widget-wallet-stateful-connect-alert",variant:"alarm",type:"info",title:an.t("This wallet can only connect to one chain at a time. ")})):ce.createElement(ce.Fragment,null,ce.createElement(mi,{size:30}),ce.createElement(Fk,{style:{marginLeft:"auto"},id:"widget-name-space-select-all-btn",size:"xsmall",variant:"ghost",type:"primary",onClick:h},f?an.t("Deselect all"):an.t("Select all"))),ce.createElement(di,null,g(ce.createElement(ce.Fragment,null,a?.data.map((d,S,y)=>ce.createElement(ce.Fragment,{key:d.id},d.unsupported?ce.createElement(pi,{namespace:d}):ce.createElement(Ru,{value:l.includes(d.value),namespace:d,type:r?"radio":"checkbox",onClick:()=>m(d.value)}),S!==y.length-1&&ce.createElement(mi,{size:10})))))),ce.createElement(mi,{size:20}),ce.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",disabled:!l.length,onClick:()=>t.onConfirm(l)},an.t("Connect")))}i(Qn,"Namespaces");import{i18n as fi}from"@lingui/core";import{Button as Jk,Divider as Es,Image as Rk,MessageBox as eT}from"@rango-dev/ui";import{useWallets as tT}from"@rango-dev/wallets-react";import Ye from"react";import{styled as Gk}from"@rango-dev/ui";var td=Gk("div",{display:"flex",justifyContent:"end"});import{i18n as bs}from"@lingui/core";import{Button as Vk,Spinner as Kk}from"@rango-dev/ui";import{useWallets as jk}from"@rango-dev/wallets-react";import xs,{useLayoutEffect as Xk,useRef as Yk,useState as Zk}from"react";var od=i(function(e){let{walletType:o,namespace:n,initialConnect:r}=e,{connect:a,disconnect:s,state:c}=jk(),[l,p]=Zk(null),m=c(o).namespaces?.get(n.value),f=m.accounts?.[0]?.split(":"),h=Yk(!1);Xk(()=>{r&&!h.current&&g(o,n.value)},[]);let g=i(async(y,C)=>{try{h.current=!0,await a(y,[{namespace:C,network:""}])}catch(T){p(T)}finally{h.current=!1}},"handleConnectNamespace"),d=i(async y=>{p(null),y.connected?await s(o,[n.value]):g(o,n.value)},"handleButtonClick"),S=i(()=>m.connected?bs.t("Disconnect"):l?bs.t("Try again"):bs.t("Connect"),"getButtonText");return xs.createElement(No,{namespace:n,connected:m.connected,error:l?.message,address:m.connected?io(f?.[f?.length-1]):"",suffix:m.connecting?xs.createElement(Kk,{color:"info"}):xs.createElement(Vk,{id:"widget-name-space-connect-btn",variant:"ghost",type:m.connected?"error":"primary",size:"xsmall",onClick:async()=>d(m)},S())})},"NamespaceDetachedItem");function Hn(t){let{selectedNamespaces:e,value:o,onDisconnectWallet:n}=t,{targetWallet:r}=o,{state:a}=tT(),s=a(r.type);return Ye.createElement(Ye.Fragment,null,Ye.createElement(eT,{type:"info",title:fi.t("Connect {wallet}",{wallet:r.type}),description:fi.t("This wallet supports multiple chains. Choose which chains you\u2019d like to connect or disconnect."),icon:Ye.createElement(Rk,{src:r.image,size:45})}),Ye.createElement(Es,{size:30}),Ye.createElement(td,null,Ye.createElement(Jk,{id:"widget-detached-disconnect-wallet-btn",variant:"ghost",type:"error",size:"xsmall",disabled:s.connecting||!s.connected,onClick:n},fi.t("Disconnect wallet"))),Ye.createElement(di,{id:"widget-detached-namespace-list",as:"ul"},r.needsNamespace?.data.map((c,l,p)=>Ye.createElement(Ye.Fragment,{key:c.id},c.unsupported?Ye.createElement(pi,{namespace:c}):Ye.createElement(od,{walletType:r.type,namespace:c,initialConnect:e?.includes(c.value)}),l!==p.length-1&&Ye.createElement(Es,{size:10})))),Ye.createElement(Es,{size:20}),Ye.createElement(rn,{id:"widget-name-space-confirm-btn",type:"primary",onClick:t.onConfirm},fi.t("Done")))}i(Hn,"Detached");import{i18n as sn}from"@lingui/core";import{Divider as rd,Image as iT,MessageBox as aT,Select as sT,TextField as lT}from"@rango-dev/ui";import yt,{useEffect as cT,useState as id}from"react";import{namespaces as oT}from"@rango-dev/wallets-shared";var gi={id:"custom",label:"Custom",generateDerivationPath:t=>t};function Is(t){let e=t?oT[t]?.derivationPaths:null;return e?[...e,gi]:[]}i(Is,"getDerivationPaths");import{Button as nT,styled as As,Typography as rT}from"@rango-dev/ui";var nd=As("div",{paddingTop:"$30",paddingBottom:"$30",zIndex:10}),Ns=As(rT,{paddingLeft:"$10"}),Bs={height:"$40",backgroundColor:"$neutral200",borderRadius:"$sm"},EP=As(nT,{minHeight:"$40"});var ad="0";function Gn(t){let{onConfirm:e}=t,{namespace:o,providerImage:n,providerType:r}=t.value,[a,s]=id(null),[c,l]=id(ad),p=a===gi.id,u=Is(o),m=i(({value:h})=>{let g=u?.find(d=>d.id===h);g&&(a===gi.id&&Number.isNaN(Number(c))&&l(ad),s(g.id))},"handleDerivationPathItemClick"),f=i(()=>{let h=u.find(g=>g.id===a);if(h)e(h.generateDerivationPath(c));else throw new Error("selectedDerivationPath can not be undefined")},"handleConfirm");return cT(()=>{s(Is(o)[0]?.id||null)},[o]),yt.createElement(yt.Fragment,null,yt.createElement(rd,{size:20}),yt.createElement(aT,{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:yt.createElement(iT,{src:n,size:45})}),yt.createElement(nd,null,yt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},sn.t("Choose Derivation Path Template")),yt.createElement(sT,{id:"widget-derivation-path-template-select",value:a||"",options:u.map(h=>({value:h.id,label:h.label})),variant:"filled",handleItemClick:m,styles:{trigger:Bs}}),yt.createElement(rd,{size:20}),yt.createElement(Ns,{variant:"body",size:"xsmall",color:"$neutral600"},p?sn.t("Enter Path"):sn.t("Enter Index")),yt.createElement(lT,{id:"widget-derivation-path-template-input",type:p?"text":"number",variant:"contained",value:c,onChange:h=>l(h.target.value),style:Bs})),yt.createElement(rn,{id:"widget-derivation-path-confirm-btn",type:"primary",onClick:f,disabled:!u||!a||!c},sn.t("Confirm")))}i(Gn,"DerivationPath");import{i18n as ln}from"@lingui/core";import{Image as dT,MessageBox as Ws,WalletState as mT}from"@rango-dev/ui";import{useWallets as fT}from"@rango-dev/wallets-react";import Bo from"react";import{keyframes as pT,styled as hi}from"@rango-dev/ui";var $P=hi("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),sd=hi("div",{position:"relative"}),uT=pT({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ld=hi("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${uT} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),cd=hi("div",{"& img":{borderRadius:"50%"}});function Ls(t){let{wallet:e,error:o}=t,{type:n,image:r}=e,{state:a}=fT();return _n(a(n))===mT.CONNECTED?Bo.createElement(Ws,{type:"success",title:ln.t("Wallet Connected"),description:ln.t("Your wallet is connected, you can use it to swap.")}):o?Bo.createElement(Ws,{type:"error",title:ln.t("Failed to Connect"),description:o||ln.t("Your wallet is not connected. Please try again.")}):Bo.createElement(Ws,{type:"loading",title:ln.t("Connecting to your wallet"),description:ln.t("Click connect in your wallet popup."),icon:Bo.createElement(sd,null,Bo.createElement(cd,null,Bo.createElement(dT,{src:r,size:45})),Bo.createElement(ld,null))})}i(Ls,"ConnectStatus");import{i18n as Ms}from"@lingui/core";import{Button as gT,Divider as pd,MessageBox as hT}from"@rango-dev/ui";import yi from"react";function Ps(t){let{displayName:e,onConfirm:o,id:n}=t;return yi.createElement(hT,{id:n,title:Ms.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:e}}),type:"warning",description:Ms.t({id:"Would you like to add the {blockchainDisplayName} experimental chain to your wallet?",values:{blockchainDisplayName:e}})},yi.createElement(pd,{size:18}),yi.createElement(pd,{size:32}),yi.createElement(gT,{id:"widget-experimental-chain-confirm-btn",onClick:o,variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ms.t("Confirm")))}i(Ps,"ExperimentalChain");function ud(t,e){return t().status==="init"&&!!e}i(ud,"isOnStatus");function Vn(t){return t().status==="namespace"}i(Vn,"isOnNamespace");function Kn(t){return t().status==="derivationPath"}i(Kn,"isOnDerivationPath");function wo(t){return t().status==="detached"}i(wo,"isOnDetached");var kT=3e3,TT=300;function jn(t){let e=CT(),[o,n]=dd(!1),[r,a]=dd(),s=i(w=>{a(w.message)},"catchErrorOnHandle"),{terminateConnectingWallets:c}=vt(),{handleConnect:l,handleDerivationPath:p,handleNamespace:u,getState:m,resetState:f,handleDisconnect:h}=Vo(),g=i(w=>{u(t.wallet,w).then(T).catch(s)},"handleConfirmNamespaces"),d=i(()=>{y()},"handleDetachedConfirm"),S=i(w=>{if(!w)throw new Error("Derivation path is empty. Please make sure you've filled the field correctly.");p(w).then(T).catch(s)},"handleDerivationPathConfirm"),y=i(()=>{n(!1)},"handleClosingModal"),C=i(()=>{a(void 0),f(),n(!1),e.current&&clearTimeout(e.current)},"resetModalState"),T=i((w,x)=>{let A=w.status==="connected",I=["disconnected","disconnected-unhandled"].includes(w.status);A?(t.onConnect?.(),x||(e.current=setTimeout(y,kT))):I&&y()},"afterConnected");return ST(()=>{if(t.wallet){C();let w=!1,x=!0;i(()=>{setTimeout(()=>{x=!1,w||n(!0)},TT)},"beforeConnecting")(),l(t.wallet,{disconnectIfConnected:!0,defaultSelectedChains:t.options?.defaultSelectedChains}).then(I=>{["namespace","Detached","derivation-path"].includes(I.status)||(w=!0),T(I,x)}).catch(s)}},[t.wallet]),ao.createElement(J,{id:t.id,open:o,onClose:y,onExit:()=>{C(),c(),t.onClose&&t.onClose()},container:N()},ud(m,t.wallet)&&ao.createElement(ao.Fragment,null,ao.createElement(Ls,{wallet:{type:t.wallet.type,image:t.wallet.image},error:r}),ao.createElement(yT,{direction:"vertical",size:32})),Vn(m)&&ao.createElement(Qn,{onConfirm:g,value:m().namespace}),Kn(m)&&ao.createElement(Gn,{onConfirm:S,value:m().derivationPath}),wo(m)&&ao.createElement(Hn,{onConfirm:d,onDisconnectWallet:()=>void h(m().namespace.targetWallet),value:m().namespace,selectedNamespaces:m().selectedNamespaces}))}i(jn,"StatefulConnectModal");import{Provider as ET}from"@rango-dev/wallets-react";import Si,{createContext as IT,useEffect as yd,useMemo as AT,useRef as Sd}from"react";import{useEffect as wT}from"react";function md(t){return t.map(e=>typeof e=="string"?e:e.config.type).join("-")}i(md,"hashProviders");function _s(t,e){let{clearConnectedWallet:o,getAvailableProviders:n,buildAndSetProviders:r}=k(),a=n();return wT(()=>{o(),r()},[md(t??[]),e?.walletConnectProjectId,e?.walletConnectListedDesktopWalletLink]),{providers:a}}i(_s,"useWalletProviders");import{legacyFormatAddressWithNetwork as vT,legacyReadAccountAddress as fd}from"@rango-dev/wallets-core/legacy";import{Events as cn}from"@rango-dev/wallets-react";import{isEvmBlockchain as bT}from"rango-sdk";function gd(t){let{newWalletConnected:e,disconnectWallet:o,disconnectNamespaces:n,connectedWallets:r,removeBalancesForWallet:a,blockchains:s}=k(),{onConnectWalletHandler:c,onDisconnectWalletHandler:l}=t,p=s().filter(bT).map(d=>d.name),u=i((d,S)=>{let[y,,C,T,w]=d,x={walletType:y,network:T.network??void 0,accounts:C};c.current?c.current(x):console.warn("onConnectWallet handler hasn't been set. Are you sure?");let A=rs(y,C,p,S.supportedChainNames,w.isContractWallet);A.length&&e(A,w.namespace,T.derivationPath)},"onAccountsEvent"),m=i((d,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=Dn(T.supportedBlockchains);y&&u([d,S,y,C,T],{supportedChainNames:w})}S===cn.PROVIDER_DISCONNECTED&&(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?")),S===cn.NAMESPACE_DISCONNECTED&&n(d,y)},"handleUpdatesForHub"),f=i((d,S,y,C,T)=>{if(S===cn.ACCOUNTS){let w=Dn(T.supportedBlockchains),x=[],A=[];if(y?.forEach(E=>{let{network:v}=fd(E);p.includes(v)?x.push(E):A.push(E)}),r.filter(E=>E.walletType===d).map(E=>vT(E.address,E.chain)).length>0){if(x.length>0){let E=rs(d,x,p,w,T.isContractWallet);a(d,{chains:E.map(v=>v.chain)})}A.length>0&&a(d,{chains:A.map(E=>{let{network:v}=fd(E);return v})})}y?u([d,S,y,C,T],{supportedChainNames:w}):(o(d),l.current?l.current(d):console.warn("onDisconnectWallet handler hasn't been set. Are you sure?"))}},"handleUpdatesForLegacy"),h=i((d,S,y,C,T)=>{if(S===cn.CONNECTED&&y){let w={walletType:d,network:C.network??void 0,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}if(S===cn.NETWORK&&y){let w={walletType:d,network:y,accounts:C.accounts??void 0};c.current?c.current(w):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}},"handleUpdatesForBoth");return{handler:i((d,S,y,C,T)=>{T.isHub?m(d,S,y,C,T):f(d,S,y,C,T),h(d,S,y,C,T)},"handler")}}i(gd,"useUpdates");import{LegacyEvents as xT}from"@rango-dev/wallets-core/legacy";function hd(t,e){let[o,n,r,a,s]=e;n!==xT.PROVIDER_DISCONNECTED&&t(o,n,r,a,s)}i(hd,"propagateEvents");var Ci=IT({onConnectWallet:()=>{},onDisconnectWallet:()=>{}});function NT(t){let{updateConfig:e,updateSettings:o,fetch:n,fetchStatus:r}=k(),a=k().blockchains(),s=k().config,c={walletConnectProjectId:s?.walletConnectProjectId,trezorManifest:s?.trezorManifest,tonConnect:s.tonConnect,walletConnectListedDesktopWalletLink:t.config.__UNSTABLE_OR_INTERNAL__?.walletConnectListedDesktopWalletLink},{providers:l}=_s(s.wallets,c),p=Sd(),u=Sd(),{handler:m}=gd({onConnectWalletHandler:p,onDisconnectWalletHandler:u});yd(()=>{n().catch(console.log)},[]),yd(()=>{t.config&&(e(t.config),o(t.config),window.__rango={config:s,dappConfig:t.config})},[t.config,r]);let f=te.use.isActiveTab(),h=AT(()=>({onConnectWallet:g=>{p.current=g},onDisconnectWallet:g=>{u.current=g}}),[]);return Si.createElement(Ci.Provider,{value:h},Si.createElement(ET,{allBlockChains:a,providers:l,onUpdateState:(g,d,S,y,C)=>{let T=[g,d,S,y,C];m(...T),t.onUpdateState&&hd(t.onUpdateState,T)},autoConnect:!!f,configs:{wallets:s.wallets}},t.children))}i(NT,"Main");function ki(t){let{config:e,...o}=t;return Si.createElement(Ou,{config:e},Si.createElement(NT,{...o,config:e}))}i(ki,"WidgetWallets");import Ga from"react";import BT,{Fragment as WT}from"react";import{MemoryRouter as LT,useInRouterContext as MT}from"react-router";function Cd({children:t}){let o=MT()?WT:LT;return BT.createElement(o,null,t)}i(Cd,"AppRouter");import{I18nManager as C0}from"@rango-dev/ui";import wp from"react";import qe from"react";import{useRoutes as a0}from"react-router-dom";var O={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 Ii}from"react";import nt from"bignumber.js";import{create as $T}from"zustand";import{subscribeWithSelector as FT}from"zustand/middleware";import{i18n as Ct}from"@lingui/core";import{getRelatedWalletOrNull as DT,RouteEventType as ID}from"@rango-dev/queue-manager-rango-preset";import Ve from"bignumber.js";import{PendingSwapNetworkStatus as Yn}from"rango-types";import{i18n as Ge}from"@lingui/core";var oe=i(()=>({genericServerError:Ge.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ge.t("Please reset your liquidity sources."),description:Ge.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:Ge.t("No Routes Found."),description:Ge.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:Ge.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:Ge.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:Ge.t("High Price Impact"),title:Ge.t("Price impact is too high!"),description:Ge.t("The price impact is significantly higher than the allowed amount."),confirmMessage:Ge.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:Ge.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ge.t("USD Price Unknown"),title:Ge.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ge.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ge.t("Confirm USD Price Unknown")}}),"errorMessages");function kd(t){return t.type===0?t.diagnosisMessage??oe().noResultError.title:t.type===1?t.diagnosisMessage??oe().genericServerError:""}i(kd,"getQuoteErrorMessage");import{i18n as Ti}from"@lingui/core";var Wo=i(()=>({connectWallet:Ti.t("Connect Wallet"),swap:Ti.t("Swap"),swapAnyway:Ti.t("Swap anyway"),ethWarning:Ti.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Ds(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(Ds,"getFeeLabel");var $s=["RECOMMENDED","CENTRALIZED","LOWEST_FEE","FASTEST","HIGH_IMPACT"],Td=100,wd=30,vd=15,bd=60;var xd=[{threshold:-10,minInput:400},{threshold:-5,minInput:1e3}],Ed=[{threshold:-1,minInput:1e3},{threshold:-2,minInput:500}];import{getLastSuccessfulStep as _T}from"@rango-dev/queue-manager-rango-preset";import mD from"bignumber.js";function Ad(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(Ad,"getRequiredBalanceOfWallet");function Kt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Kt,"getPriceImpactLevel");function wi(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],a=_T(t.steps);if(!r||!n)return{fromBlockchain:null,fromToken:void 0,toBlockchain:null,toToken:void 0,inputAmount:""};let s={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},c=vo(a?a.toBlockchain:n.fromBlockchain,e),l=vo(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),m=a?a.outputAmount??"":t.inputAmount;return{fromBlockchain:c,fromToken:p,toBlockchain:l,toToken:u,inputAmount:m}}i(wi,"createRetryQuote");function pn(t){let{previousQuote:e,currentQuote:o,findToken:n,userSlippage:r}=t,a=Xn(o),s=St(o);if(o&&a&&s){let p=Vt(a.toString(),s.toString());if(!!p&&Md(a,p)){let m=bi(o?.swaps,n),f=Kt(p);return{type:0,inputUsdValue:a,outputUsdValue:s,priceImpact:p,totalFee:m,warningLevel:f}}}if(e&&Dd(e,o))return{type:4,usdValueChange:D(St(o)?.minus(St(e)??0).toString()??"0",null,2),percentageChange:D(Vt(St(e)??"1",St(o)??"1"),null,2)};if(o&&(!a||!s))return{type:1};let c=xi(o.swaps),l=r>Zo;if(_d(t.userSlippage.toString(),c)){if(l&&parseFloat(c??"0")<r)return{type:3,slippage:r.toString()}}else return{type:2,recommendedSlippages:Pd(o,r),minRequiredSlippage:c};return null}i(pn,"generateQuoteWarnings");function Nd(t){return![4].includes(t.type)}i(Nd,"isQuoteWarningConfirmationRequired");function Vt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:Fs(t.toString(),e.toString());return n&&n<0?n:null}i(Vt,"getPriceImpact");var Bd=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"),vi=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"),Wd=i((t,e,o)=>{let n=e[0];if(!e.length||!n)return null;if(!t)return{requestAmount:o,validationStatus:null,...n};let r=new Set(t.swaps.map(s=>s.swapperId)),a=e.find(s=>{let c=new Set(s.swaps.map(l=>l.swapperId));return Array.from(r).every(l=>c.has(l))});return{requestAmount:o,validationStatus:null,...a||n}},"getDefaultQuote"),Ld=i(t=>{let e=i((o,n)=>{let r=$s.indexOf(o.value),a=$s.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 xd.some(({threshold:n,minInput:r})=>o<=n&&t.gte(new Ve(r)))}i(Md,"hasHighValueLoss");function $d(t){return(t||[]).filter(e=>{let o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(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($d,"hasLimitError");function Fd(t){let e=(t||[]).filter(c=>{let l=c.fromAmountMinValue?new Ve(c.fromAmountMinValue):null,p=c.fromAmountMaxValue?new Ve(c.fromAmountMaxValue):null;return c.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(c.fromAmount)||p?.lte(c.fromAmount):l?.gt(c.fromAmount)||p?.lt(c.fromAmount)})[0];if(!e)return{swap:void 0,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new Ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new Ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",a="",s="";return!r&&o&&o.gt(e.fromAmount)?(a=Ct.t({id:"Required: >= {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(a=Ct.t({id:"Required: > {min} {symbol}",values:{min:D(o,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(a=Ct.t({id:"Required: <= {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(a=Ct.t({id:"Required: < {max} {symbol}",values:{max:D(n,6,6),symbol:e.from.symbol}}),s=oe().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:a,recommendation:s}}i(Fd,"getLimitErrorMessage");function Od(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:a,warning:s,error:c,needsToWarnEthOnPath:l}=t;return e!=="success"?{title:Wo().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!a||c||!r||r==="0"?{title:Wo().swap,action:"confirm-swap",disabled:!0}:s?{title:Wo().swapAnyway,action:"confirm-warning",disabled:!1}:l?{title:Wo().ethWarning,action:"confirm-warning",disabled:!1}:{title:Wo().swap,action:"confirm-swap",disabled:!1}:{title:Wo().connectWallet,action:"connect-wallet",disabled:!1}}i(Od,"getSwapButtonState");function Os(t,e,o){let n=parseFloat(e||"0");return!(t&&(!o||o.lte(le))&&e&&e!=="0"&&n!==0)}i(Os,"canComputePriceImpact");function Us(t,e){let o=le;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(!r||r.expenseType==="DECREASE_FROM_OUTPUT")continue;let a=e(r.asset)?.usdPrice||null;o=o.plus(new Ve(r.amount).multipliedBy(a||0))}return o}i(Us,"getUsdFeeOfStep");function bi(t,e){return t.reduce((o,n)=>o.plus(Us(n,e)),le)}i(bi,"getTotalFeeInUsd");function zs(t){let e=le,o=new Ve(t.price||0);return e=e.plus(new Ve(t.amount).multipliedBy(o)),e}i(zs,"getUsdFee");function Ud(t){return t.reduce((e,o)=>e.plus(zs(o)),le)}i(Ud,"getTotalFeesInUsd");function zd(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(zd,"getFeesGroup");function qd(t){let e=new Map;return t.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?Object.fromEntries(e):null}i(qd,"checkSlippageErrors");function Pd(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?Object.fromEntries(o):null}i(Pd,"checkSlippageWarnings");function xi(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(xi,"getMinRequiredSlippage");function _d(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(_d,"hasProperSlippage");function Qd(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:a,disabledLiquiditySources:s,liquiditySources:c,excludeLiquiditySources:l,slippage:p,affiliateRef:u,affiliatePercent:m,affiliateWallets:f,destination:h,contractCall:g}=t,d=a?.reduce((C,T)=>(C[T.chain]=T.address,C),{}),S=[];return r?.forEach(C=>{S.push({blockchain:C.chain,addresses:[C.address]})}),{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:m??void 0,affiliateWallets:f??void 0,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:S,selectedWallets:d??{},slippage:p.toString(),contractCall:g,...h&&{destination:h},...l&&{swapperGroups:s.concat(c??[]),swappersGroupsExclude:!0},...!l&&{swapperGroups:c?.filter(C=>!s.includes(C)),swappersGroupsExclude:!1}}}i(Qd,"createQuoteRequestBody");function Hd(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType,derivationPath:n.derivationPath},o),{})}i(Hd,"getWalletsForNewSwap");function Xn(t){let e=t.requestAmount,o=t.swaps[0]?.from.usdPrice;if(!(!e||!o))return new Ve(e).multipliedBy(o)}i(Xn,"getUsdInputFrom");function St(t){let e=t?.outputAmount||null,o=t.swaps[t.swaps.length-1]?.to.usdPrice;if(!(!e||!o))return new Ve(e).multipliedBy(o)}i(St,"getUsdOutputFrom");function Fs(t,e){return new Ve(e).div(new Ve(t)).minus(1).multipliedBy(Td).toNumber()}i(Fs,"getPercentageChange");function Dd(t,e){let o=Xn(t),n=St(t),r=St(e);if(!o||!n||!r)return!1;let a=Fs(n.toString(),r.toString());return Ed.some(({threshold:s,minInput:c})=>a<=s&&o.isGreaterThanOrEqualTo(c))}i(Dd,"isOutputAmountChangedExcessively");function Gd(t,e,o){let n=t.validationStatus,r=Eo({filter:"required",quote:t});return e.sort((s,c)=>r.indexOf(s.chain)-r.indexOf(c.chain)).flatMap(s=>Ad(s,n)||[]).filter(s=>!s.ok).map(s=>{let c=s.asset.symbol,l=D(new Ve(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),p=D(new Ve(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=Ct.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=Ct.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=Ct.t(" for input and network fee")),Ct.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:gt(s.asset.blockchain,o)}})})}i(Gd,"generateBalanceWarnings");function Zn(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Yn.NetworkChanged}i(Zn,"isNetworkStatusInWarningState");function Vd(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,"")),Zn(e)){r=t.networkStatusExtraMessage||"",a=t.networkStatusExtraMessageDetail||"";let p=(e?DT(t,e):null)?.walletType,u=p?o?.(p)?.name:null;switch(e?.networkStatus){case Yn.WaitingForConnectingWallet:r=u?Ct.t("Connect {wallet}",{wallet:u}):r;break;case Yn.WaitingForQueue:r=r||Ct.t("Waiting for other running tasks to be finished");break;case Yn.WaitingForNetworkChange:r=r||Ct.t("Waiting for changing wallet network");break;case Yn.NetworkChangeFailed:r=r||Ct.t("The network switch could not be completed. Please try again, or switch the network manually in your wallet.");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(Vd,"getSwapMessages");function Kd(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(Kd,"getLastConvertedTokenInFailedSwap");function jd(t){return t.status==="failed"}i(jd,"shouldRetrySwap");function Xd(t,e,o,n,r,a){if(!n||t)return!0;let s=Eo({filter:"all",quote:n}),c=Eo({filter:"required",quote:n}),l=s.every(m=>r.some(f=>f.chain===m)),p=c.every(m=>r.some(f=>f.chain===m)),u=o&&a?jo(a,o):!1;return!e&&!l||e&&!o||e&&!!o&&(!u||!p)}i(Xd,"isConfirmSwapDisabled");function Yd(t,e){return t.blockchain===e.blockchain&&t.symbol===e.symbol&&t.address===e.address}i(Yd,"isTokensIdentical");var Ei=i((t,e)=>t?.usdPrice?new nt(e||le).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),U=on($T()(FT(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new nt(0),outputUsdValue:new nt(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=le,a=o.inputUsdValue;return Pn(o.inputAmount)?(e&&(n=e?.outputAmount?new nt(e?.outputAmount):null,a=Xn(e)??le,r=St(e)??le),{selectedQuote:e,...!!e&&{outputAmount:n,outputUsdValue:r,inputUsdValue:a}}):{}}),resetAlerts:()=>t(()=>({error:null,warning:null})),resetQuote:()=>t(()=>({selectedQuote:null,outputAmount:null,outputUsdValue:new nt(0),quotes:null,refetchQuote:!0,error:null,warning:null})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,inputUsdValue:new nt(0),...o.fromToken&&{selectedQuote:null,fromToken:null,outputAmount:null,outputUsdValue:new nt(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:Ei(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 nt(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=pu(e);t(()=>({inputAmount:o}))},setInputAmount:e=>{let o=e;Xr(e)||(o=ou(o),o=nu(o)),t(n=>({inputAmount:o,...!o&&{outputAmount:null,outputUsdValue:new nt(0),selectedQuote:null},...!!n.fromToken&&{inputUsdValue:Ei(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:Ei(n??null,s),outputUsdValue:new nt(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?Ei(e.toToken,e.outputAmount?.toString()||""):new nt(0)})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputUsdValue:new nt(0),inputUsdValue:new nt(0),inputAmount:"",outputAmount:null,selectedQuote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:new nt(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})})))),Zd=U.subscribe((t,e)=>{(t.fromBlockchain!==e.fromBlockchain||t.fromToken!==e.fromToken||t.toBlockchain!==e.toBlockchain||t.toToken!==e.toToken||t.inputAmount!==e.inputAmount)&&Ce.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&&Ce.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 Jd(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,resetQuote:r,setFromToken:a,fromToken:s,toToken:c,fromBlockchain:l,toBlockchain:p}=U(),u=k().config,m=k().fetchStatus,f=k().blockchains(),{findToken:h}=k(),{setAffiliateRef:g,setAffiliatePercent:d,setAffiliateWallets:S}=k(),y=u?.from?.tokens,C=u?.from?.blockchains,T=u?.to?.tokens,w=u?.to?.blockchains,x=Ii(void 0),A=Ii(void 0),I=Ii(void 0),E=Ii(void 0);un(()=>{typeof u.amount<"u"&&t(u.amount.toString())},[u?.amount]),un(()=>{if(m==="success"){r();let v=f.find(P=>P.name===u?.from?.blockchain),b=u?.from?.token,B=b&&h(b);(v||!v&&I.current)&&n(v??null),B?a({token:B,meta:{blockchains:f}}):!B&&x.current&&a({token:null}),I.current=u?.from?.blockchain,x.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,m]),un(()=>{ls(s,y)&&a({token:null}),cs(l,C)&&n(null)},[y,C]),un(()=>{ls(c,T)&&a({token:null}),cs(p,w)&&o(null)},[T,w]),un(()=>{if(m==="success"){r();let v=f.find(P=>P.name===u?.to?.blockchain),b=u?.to?.token,B=b&&h(b);(v||!v&&E.current)&&o(v??null),B?e({token:B,meta:{blockchains:f}}):!B&&A.current&&e({token:null}),E.current=u?.to?.blockchain,A.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,m]),un(()=>{g(u?.affiliate?.ref??null),d(u?.affiliate?.percent??null),S(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}i(Jd,"useSyncStoresWithConfig");import{useEffect as Hs,useRef as OT}from"react";import{useInRouterContext as UT,useLocation as zT,useSearchParams as qT}from"react-router-dom";function qs(t,e){let o=t.split("--");return o[0]?{blockchain:e.name,address:o?.[1]||null,symbol:o[0]}:null}i(qs,"convertTokenSearchParamToAsset");function Qs(t){if(t)return`${t.symbol}${t.address?`--${t.address}`:""}`}i(Qs,"tokenToSearchParam");function Vs(){let t=zT(),[e,o]=qT(),{fromBlockchain:n,toBlockchain:r,fromToken:a,toToken:s,inputAmount:c,setFromBlockchain:l,setToBlockchain:p,setFromToken:u,setToToken:m,setInputAmount:f}=U(),h=k().fetchStatus,g=k().blockchains(),d=UT(),{updateIframe:S,updateCampaignMode:y}=k(),C=k().isInCampaignMode(),T=OT(),{findToken:w}=k(),x=i(()=>{let I={};for(let[M,ee]of e.entries())M.startsWith("utm_")&&(I[M]=ee);let E=e.get("fromAmount"),v=e.get("fromBlockchain"),b=e.get("fromToken"),B=e.get("toBlockchain"),P=e.get("toToken"),F=e.get("autoConnect"),q=e.get("clientUrl"),Z=e.get("liquiditySources"),V=e.get("blockchain");return{fromAmount:E,fromBlockchain:v,fromToken:b,toBlockchain:B,toToken:P,autoConnect:F,clientUrl:q,liquiditySources:Z,utmQueryParams:I,blockchain:V}},"getUrlSearchParams"),A=i(I=>{for(let E in I)I[E]||delete I[E];o(I,{replace:!0})},"updateUrlSearchParams");Hs(()=>{let{autoConnect:I,clientUrl:E,utmQueryParams:v,blockchain:b}=x();d&&h==="success"&&A({fromBlockchain:n?.name,fromToken:Qs(a),toBlockchain:r?.name,toToken:Qs(s),fromAmount:c,autoConnect:I??void 0,clientUrl:E??void 0,blockchain:b??void 0,liquiditySources:C?T.current:void 0,...v})},[t.pathname,c,n,a,r,s,C,h]),Hs(()=>{if(!d)return;let I=x();if(!T.current&&I.liquiditySources&&(T.current=I.liquiditySources),I.fromAmount&&f(I.fromAmount),h==="success"){let E=g.find(q=>q.name===I.fromBlockchain),v=I.fromToken&&E&&qs(I.fromToken,E),b=v?w(v):void 0,B=g.find(q=>q.name===I.toBlockchain),P=I.toToken&&B&&qs(I.toToken,B),F=P?w(P):void 0;E&&(l(E),b&&u({token:b,meta:{blockchains:g}})),B&&(p(B),F&&m({token:F,meta:{blockchains:g}}))}},[h]),Hs(()=>{let{clientUrl:I,liquiditySources:E}=x();S("clientUrl",I||void 0),y("liquiditySources",E?.split(",")??void 0)},[])}i(Vs,"useSyncUrlAndStore");import{i18n as hn}from"@lingui/core";import{Alert as cv,Button as pv,darkTheme as uv,Divider as vl,DoneIcon as dv,styled as mv,TextField as fv,Typography as gv}from"@rango-dev/ui";import je,{useState as hv}from"react";import{useNavigate as yv,useSearchParams as Sv}from"react-router-dom";import{ChevronRightIcon as QT,Divider as nm,Image as HT,Typography as rm}from"@rango-dev/ui";import bt from"react";import{darkTheme as Rd,styled as Ks}from"@rango-dev/ui";var em=Ks("div",{display:"flex",justifyContent:"space-between",width:"100%",height:"$40",padding:"$4 $10",borderRadius:"$sm",cursor:"pointer",alignItems:"center",backgroundColor:"$neutral300",[`.${Rd} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${Rd} &`]:{backgroundColor:"$neutral500"}},variants:{disabled:{true:{cursor:"default","&:hover":{borderColor:"$neutral300","& svg":{color:"$neutral700"}}}}}}),tm=Ks("div",{display:"flex",flexDirection:"column",width:"100%",".title_typography":{textTransform:"capitalize"}}),om=Ks("div",{display:"flex"});function js(t){let{onClick:e,value:o,title:n,hasLogo:r,placeholder:a,disabled:s}=t;return bt.createElement(tm,null,bt.createElement(rm,{size:"large",variant:"label"},n),bt.createElement(nm,{size:10}),bt.createElement(em,{onClick:s?void 0:e,disabled:s,id:"widget-blockchain-selector-container"},bt.createElement(om,null,r&&bt.createElement(bt.Fragment,null,bt.createElement(HT,{src:o?.logo,size:16,useAsPlaceholder:!o?.logo,type:"circular"}),bt.createElement(nm,{size:4,direction:"horizontal"})),bt.createElement(rm,{className:"title_typography",size:"medium",variant:"label"},o?.name||a)),bt.createElement(QT,{size:12,color:"black"})))}i(js,"BlockchainSelectorButton");import{i18n as Rs}from"@lingui/core";import{Button as jT,Divider as lm,MessageBox as XT}from"@rango-dev/ui";import so,{useEffect as cm,useState as el}from"react";import{i18n as Ai}from"@lingui/core";import{Divider as Lo,ExternalLinkIcon as VT,Image as KT,Typography as mn}from"@rango-dev/ui";import ke from"react";var im="https://blog.rango.exchange/understanding-the-risks-of-using-custom-token-contract-addresses-96022308eca4";function am(t,e){if(e.type==="COSMOS")return"";let o=e.info?.addressUrl;return!o||!t?"":o.replace("{wallet}",t)}i(am,"generateExplorerLink");import{Button as GT,darkTheme as dn,styled as Xs}from"@rango-dev/ui";var Ys=Xs("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:{}}}}),sm=Xs("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"}}}),Zs=Xs(GT,{minHeight:"$40"});function Js(t){let{open:e,onClose:o,token:n,onExit:r,onSubmitClick:a,blockchain:s}=t,c=am(n.address,s),l=i(()=>window.open(im,"_blank"),"onClickLearnMore");return ke.createElement(J,{open:e,id:"widget-custom-token-watermarked-modal",dismissible:!0,onClose:o,onExit:r,container:N()},ke.createElement(sm,null,ke.createElement(KT,{src:n.image===""?Hr:n.image,size:45,type:"circular"}),ke.createElement(Lo,{size:4}),ke.createElement(mn,{variant:"title",size:"medium"},n.symbol),ke.createElement(mn,{variant:"body",size:"small",className:"_blockchain-name"},s.displayName),ke.createElement(Lo,{size:4}),ke.createElement(mn,{variant:"body",size:"medium"},c?ke.createElement(Ys,{hasHover:!0,href:c,target:"_blank",rel:"nofollow noreferrer"},n.address,ke.createElement(VT,{size:12,color:"gray"})):ke.createElement(Ys,null,n.address)),ke.createElement(Lo,{size:4}),n.coinSource&&ke.createElement(mn,{className:"_coin-source",variant:"body",size:"xsmall"},Ai.t("via")," ",ke.createElement(mn,{className:"_coin-source-name",variant:"body",size:"xsmall"},n.coinSource)),ke.createElement(Lo,{size:"32"}),ke.createElement(mn,{size:"medium",variant:"body",className:"_custom-token-description"},Ai.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."))),ke.createElement(Lo,{size:40}),ke.createElement(Lo,{size:10}),ke.createElement(Zs,{id:"widget-custom-token-modal-import-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:a},Ai.t("Import Anyway")),ke.createElement(Lo,{size:10}),ke.createElement(Zs,{id:"widget-custom-token-modal-learn-more-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:l},Ai.t("Learn More")))}i(Js,"CustomTokenModal");function Jn(t){let{token:e,blockchain:o,error:n,address:r,fetchCustomToken:a,onCloseErrorModal:s,onImport:c,onExitErrorModal:l,onExitImportModal:p}=t,{setCustomToken:u}=k(),[m,f]=el(!1),[h,g]=el(!1),[d,S]=el(!1),y=i(()=>{o&&a?.({blockchain:o.name,tokenAddress:r})},"getCustomToken"),C=i(()=>{n?.type!=="network-error"&&s?.(),f(!1)},"closeErrorModal"),T=i(()=>{S(!0),C()},"handleErrorModalButtonClick"),w=i(()=>{d&&n?.type==="network-error"&&(S(!1),y()),l()},"handleExit"),x=i(()=>{e&&(u(e),c())},"handleSubmit");return cm(()=>{n&&f(!0)},[n]),cm(()=>{o&&e&&g(!0)},[o,e]),so.createElement(so.Fragment,null,so.createElement(J,{open:m,dismissible:!0,id:"widget-add-custom-token-modal",onClose:C,onExit:w,container:N()},so.createElement(XT,{title:n?.title??"",type:"error",description:n?.message||Rs.t("Failed Network, Please retry.")},so.createElement(lm,{size:40}),so.createElement(lm,{size:10}),so.createElement(jT,{id:`widget-add-custom-token-${n?.type==="network-error"?"retry":"add-another"}-btn`,variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:T},n?.type==="network-error"?Rs.t("Retry"):Rs.t("Add another custom token")))),o&&e&&so.createElement(Js,{blockchain:o,token:e,onSubmitClick:x,onClose:()=>g(!1),open:h,onExit:p}))}i(Jn,"ImportCustomToken");import{useManager as nv}from"@rango-dev/queue-manager-react";import{BottomLogo as rv,Divider as zm,Header as iv}from"@rango-dev/ui";import Be,{useEffect as $i,useLayoutEffect as av,useRef as qm,useState as Qm}from"react";import{useRef as YT}from"react";function Rn(){return window.self!==window.top}i(Rn,"isAppLoadedIntoIframe");function tl(){let t=YT(null),{iframe:e}=k(),o=Rn()&&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(tl,"useIframe");import{useNavigate as ZT}from"react-router-dom";function Ke(){let t=ZT();return()=>t(-1)}i(Ke,"useNavigateBack");import{useLayoutEffect as JT,useState as er}from"react";var pm=480,um=768,dm=1024,mm=1200,RT=i(()=>{let[t,e]=er(!1),[o,n]=er(!1),[r,a]=er(!1),[s,c]=er(!1),[l,p]=er(!1),u=i(()=>{e(window.innerWidth<=pm),n(window.innerWidth>pm&&window.innerWidth<=um),a(window.innerWidth>um&&window.innerWidth<=dm),c(window.innerWidth>dm&&window.innerWidth<=mm),p(window.innerWidth>mm)},"handleResize");return JT(()=>(u(),window.addEventListener("resize",u),()=>window.removeEventListener("resize",u)),[]),{isMobile:t,isTablet:o,isNotebook:r,isLargeScreen:s,isExtraLargeScreen:l}},"useScreenDetect"),fn=RT;import{createTheme as ll,darkTheme as dw,lightTheme as mw}from"@rango-dev/ui";import{useEffect as fw,useState as gw}from"react";import{theme as pw,darkColors as uw}from"@rango-dev/ui";import al from"react";var Ni=16,Bi=255,fm=.11;function ew(t){return t.startsWith("#")&&(t=t.slice(1)),t.length===3?`#${t.split("").reduce(function(n,r){return n+r+r},"")}`:`#${t}`}i(ew,"expandShortHexColor");function tw(t,e){return t.padStart(e,"0")}i(tw,"pad");function ol(t){let e=Math.min(Math.max(Math.round(t),0),Bi);return tw(e.toString(Ni),2)}i(ol,"intToHex");function ow(t){return`#${ol(t.red)}${ol(t.green)}${ol(t.blue)}`}i(ow,"rgbToHex");function nw(t){let e=parseInt(t.slice(1,3),Ni),o=parseInt(t.slice(3,5),Ni),n=parseInt(t.slice(5,7),Ni);return{red:e,green:o,blue:n}}i(nw,"hexToRGB");function rw(t,e){let o=1-fm*e;return{red:t.red*o,green:t.green*o,blue:t.blue*o}}i(rw,"generateShade");function iw(t,e){let o=fm*e;return{red:t.red+(Bi-t.red)*o,green:t.green+(Bi-t.green)*o,blue:t.blue+(Bi-t.blue)*o}}i(iw,"generateTint");function aw(t){return gm(t,rw)}i(aw,"calculateShades");function sw(t){return gm(t,iw)}i(sw,"calculateTints");function gm(t,e){let o=nw(t),n=[];for(let r=1;r<9;r++)n.push(ow(e(o,r)));return n}i(gm,"calculateColors");function nl(t,e,o){let a=sw(t).reverse().concat(t),s=aw(t),c=a.concat(s),l={},p=c.length;for(let u=0;u<p;u++){let m=100+(o?p-1-u:u)*50,f=c[u];f&&(l[`${e}${m}`]=f)}return l}i(nl,"createTintsAndShades");function rl(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)&&!lu(r)){let l=ew(a);Object.assign(n,nl(l,r,s))}}return{...n,...e}}i(rl,"expandToGenerateThemeColors");var hm=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),lw=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=hm(o%52)+e;return hm(o%52)+e},"toAlphabeticName"),cw=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),il=i(t=>lw(cw(5381,JSON.stringify(t))>>>0),"toHash");function sl(t){let e=pw.colors,o={...e,...uw},n,r;if(t?.light){let s={colors:rl(e,t.light)};n={id:`${ss}-light-${il(s)}`,tokens:s}}if(t?.dark){let s={colors:rl(o,t.dark,{reverseNeutralRange:!0})};r={id:`${ss}-dark-${il(s)}`,tokens:s}}return{light:n,dark:r}}i(sl,"customizedThemeTokens");function ym(t,e){if(t.length<=1)return t.map(({element:n,key:r})=>al.cloneElement(n,{key:r}));let o=[];return t.forEach((n,r)=>{let{element:a,key:s}=n;if(o.push(al.cloneElement(a,{key:s})),r<t.length-1){let c=`divider-${r}`;o.push(al.cloneElement(e,{key:c}))}}),o}i(ym,"joinList");function Sm(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}i(Sm,"doesWindowPreferDarkColorScheme");function lo(t){let{colors:e,fontFamily:o=Vp,borderRadius:n=wu,secondaryBorderRadius:r=vu}=t,[a,s]=gw(Sm()?"dark":"light"),{theme:c}=k(),{dark:l,light:p}=sl(e),u=ll({shadows:t.shadows||{},radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),m=[u.className,mw.className],f=[u.className,dw.className];if(p){let g=ll(p.id,p.tokens);m.push(g.className)}if(l){let g=ll(l.id,l.tokens);f.push(g.className)}return fw(()=>{let g=i(d=>{d.matches?s("dark"):s("light")},"switchThemeListener");return Sm()&&s("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",g),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",g)}},[]),{activeTheme:i(()=>{let g=m.join(" "),d=f.join(" ");return c==="auto"?a==="dark"?d:g:c==="dark"?d:g},"getActiveTheme"),mode:c==="auto"?a:c}}i(lo,"useTheme");var kt=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 Cm}from"@lingui/core";import{Alert as hw,Button as yw}from"@rango-dev/ui";import km from"react";function cl(t){return km.createElement(hw,{action:km.createElement(yw,{id:"widget-active-tab-btn",onClick:t.onActivateTab,variant:"contained",size:"xxsmall",type:"warning"},Cm.t("Activate this tab")),type:"warning",variant:"alarm",title:Cm.t("Another tab is open and handles transactions.")})}i(cl,"ActivateTabAlert");import{i18n as pl}from"@lingui/core";import{Button as Sw,Divider as Cw,MessageBox as kw}from"@rango-dev/ui";import Wi from"react";function ul(t){let{open:e,onClose:o,onConfirm:n}=t;return Wi.createElement(J,{open:e,dismissible:!0,onClose:o,id:"widget-active-tab-modal",container:N()},Wi.createElement(kw,{title:pl.t("Activate current tab"),type:"warning",description:pl.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.")},Wi.createElement(Cw,{size:20}),Wi.createElement(Sw,{id:"widget-modal-confirm-activate-tab-btn",variant:"contained",size:"large",type:"primary",fullWidth:!0,onClick:n},pl.t("Confirm"))))}i(ul,"ActivateTabModal");import{ChevronLeftIcon as vw}from"@rango-dev/ui";import Am from"react";import{css as Tw,darkTheme as Tm,IconButton as ww,styled as Mo}from"@rango-dev/ui";var _t=Mo(ww,{width:"$24",position:"relative",padding:"0",overflow:"unset","&:hover":{backgroundColor:"$secondary100",[`.${Tm} &`]:{backgroundColor:"$neutral"}}}),wm=Mo("div",{position:"absolute",background:"$secondary500",[`.${Tm} &`]:{$$color:"$colors$secondary250"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),co=Mo("div",{display:"flex",justifyContent:"flex-end",minWidth:"$40",button:{padding:0}}),vm=Mo("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"}}}}),bm=Mo("div",{padding:"$2",variants:{isRefetched:{true:{transform:"rotate(360deg)",transition:"transform 1s ease-in-out"}}}}),xm=Mo("div",{position:"absolute",right:"$4",top:"$4",backgroundColor:"$background",borderRadius:"100%"}),Em=Tw({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center"}),Im=Mo("div",{borderRadius:"100%",border:"1.5px transparent solid","&:not(:first-child)":{marginLeft:"-$6"},img:{borderRadius:"100%"}});function dl(t){return Am.createElement(_t,{id:"widget-header-back-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},Am.createElement(vw,{color:"black",size:16}))}i(dl,"BackButton");import{i18n as bw}from"@lingui/core";import{Button as xw,Typography as Ew}from"@rango-dev/ui";import ml from"react";function fl(t){return ml.createElement(co,null,ml.createElement(xw,{id:"widget-header-cancel-btn",variant:"ghost",onClick:t.onClick,size:"xsmall"},ml.createElement(Ew,{variant:"label",size:"medium",color:"error500"},bw.t("Cancel"))))}i(fl,"CancelButton");import{i18n as Iw}from"@lingui/core";import{Image as Aw,Tooltip as Nw,WalletIcon as Bw}from"@rango-dev/ui";import Po from"react";function gl(t){let{list:e}=vt(),o=e.filter(r=>r.state==="connected"),n=o.length?Po.createElement("div",{className:Em()},o.map(r=>Po.createElement(Im,{key:r.title},Po.createElement(Aw,{src:r.image,size:14})))):Iw.t("Connect Wallet");return Po.createElement(Nw,{container:t.container,side:"bottom",content:n},Po.createElement(_t,{id:"widget-header-wallet-icon-btn",variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Po.createElement(wm,null),Po.createElement(Bw,{size:18,color:"black"})))}i(gl,"WalletButton");import{i18n as Mi}from"@lingui/core";import{NotificationsIcon as Vw,Popover as Kw,SettingsIcon as jw,Tooltip as Pi,TransactionIcon as Xw}from"@rango-dev/ui";import De from"react";import{Notifications as Pw}from"@rango-dev/ui";import _w from"react";import{useNavigate as Dw}from"react-router-dom";import{create as Ww}from"zustand";import{persist as Lw,subscribeWithSelector as Mw}from"zustand/middleware";var Ne=on(Ww()(Lw(Mw((t,e)=>({isSynced:!1,notifications:[],setNotification:(o,n)=>{let r=n.steps[0],a=n.steps[n.steps.length-1];if(!r||!a)return;let 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 hl(){let t=Dw(),{getNotifications:e,clearNotifications:o}=Ne(),n=e(),r=k().blockchains(),{findToken:a}=k();return _w.createElement(Pw,{id:"widget-notifications-container",list:n,getBlockchainImage:c=>$p(c,r),getTokenImage:c=>a(c)?.image,onClickItem:i(c=>{t(`${O.swaps}/${c}`)},"onClickItem"),onClearAll:o})}i(hl,"NotificationContent");import{useManager as $w}from"@rango-dev/queue-manager-react";import{InProgressIcon as Fw}from"@rango-dev/ui";import Nm from"react";var Ow=i(()=>{let{manager:t}=$w();return kt(t).map(({swap:o})=>o).find(o=>o.status==="running")?Nm.createElement(xm,{id:"widget-header-history-badge-container"},Nm.createElement(Fw,{color:"info",size:6})):null},"InProgressTransactionBadge"),Bm=Ow;import{EventSeverity as Uw}from"@rango-dev/queue-manager-rango-preset";import{Typography as zw}from"@rango-dev/ui";import Wm from"react";function Lm(){let{getNotifications:t}=Ne(),e=t(),o=e.length,n=!!e.find(r=>r.event.messageSeverity===Uw.WARNING);return o?Wm.createElement(vm,{isSever:n},Wm.createElement(zw,{variant:"body",size:"xsmall",color:"$background",id:"widget-header-notifications-badge-container"},o)):null}i(Lm,"NotificationsBadge");import{RefreshProgressButton as qw}from"@rango-dev/ui";import yl,{useEffect as Qw,useState as Mm}from"react";var Hw=1e3,Pm=60,Gw=100;function Li({onClick:t}){let[e,o]=Mm(0),[n,r]=Mm(!1),a=i(l=>{document.hidden&&l&&s(l)},"handleVisibilityChange");Qw(()=>{let l;return t?l=window.setInterval(()=>{o(p=>p+1),e===Pm&&c()},Hw):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 yl.createElement(_t,{id:"widget-header-refresh-icon-btn",variant:"ghost",size:"small",style:{paddingTop:0,paddingBottom:0},onClick:c,disabled:!t},yl.createElement(bm,{onTransitionEnd:()=>r(!1),isRefetched:n},yl.createElement(qw,{size:22,color:t?"black":"gray",progress:e/Pm*Gw})))}i(Li,"RefreshButton");function _o(t){let{onClickRefresh:e,onClickHistory:o,onClickSettings:n,hidden:r=[],container:a}=t,{config:{features:s}}=k(),c=ot("notification",s)||r.includes("notifications");return De.createElement(De.Fragment,null,!r.includes("refresh")&&De.createElement(Pi,{container:a||N(),side:"top",content:Mi.t("Refresh")},De.createElement(Li,{onClick:e})),!c&&De.createElement(Kw,{align:"end",alignOffset:-88,sideOffset:15,collisionPadding:{right:20,left:20},container:N(),content:De.createElement(hl,null)},De.createElement("div",null,De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Notifications")},De.createElement(_t,{id:"widget-header-notification-icon-btn",size:"small",variant:"ghost"},De.createElement(Vw,{size:18,color:"black"}),De.createElement(Lm,null))))),!r.includes("settings")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("Settings")},De.createElement(_t,{id:"widget-header-setting-icon-btn",size:"small",variant:"ghost",onClick:n},De.createElement(jw,{size:18,color:"black"}))),!r.includes("history")&&De.createElement(Pi,{container:N(),side:"top",content:Mi.t("History")},De.createElement(_t,{id:"widget-header-history-icon-btn",size:"small",variant:"ghost",onClick:o},De.createElement(Xw,{size:18,color:"black"}),De.createElement(Bm,null))))}i(_o,"HeaderButtons");import{i18n as Sl}from"@lingui/core";import{Divider as Dm,MessageBox as Jw,RefreshIcon as Rw}from"@rango-dev/ui";import gn from"react";import{Button as Yw,styled as Zw}from"@rango-dev/ui";var _m=Zw(Yw,{"& span":{display:"flex",justifyContent:"center",alignItems:"center"}});function Cl(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(Jw,{title:Sl.t("Something went wrong"),type:"error",description:Sl.t("Something went wrong. Please refresh the app.")},gn.createElement(Dm,{size:30}),gn.createElement(_m,{variant:"outlined",id:"widget-refresh-modal-refresh-btn",size:"large",type:"primary",fullWidth:!0,onClick:()=>location.reload()},gn.createElement(Rw,{size:20,color:"primary"}),gn.createElement(Dm,{size:4,direction:"horizontal"}),Sl.t("Refresh"))))}i(Cl,"RefreshModal");function kl(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(kl,"onScrollContentAttachStatusToContainer");import{css as tv,styled as _i}from"@rango-dev/ui";var Di=tv({borderRadius:"$primary",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"$mainContainer"}),$m=_i("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"}}}}),Fm=_i("div",{position:"relative",overflow:"hidden",flexGrow:1,display:"flex",flexDirection:"column",padding:0,overflowY:"auto"}),Om=_i("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"}}}),Um=_i("div",{width:"100%",position:"absolute",bottom:"-$10",transform:"translateY(100%)",overflow:"hidden"});function re(t){let{connectHeightObserver:e,disconnectHeightObserver:o}=tl(),{children:n,header:r,footer:a,height:s="fixed"}=t,{fetchStatus:c,connectedWallets:l,config:{__UNSTABLE_OR_INTERNAL__:p}}=k(),[u,m]=Qm(!1),{config:{features:f,theme:h}}=k(),{watermark:g,setShowCompactTokenSelector:d}=te(),S=g==="FULL",{activeTheme:y}=lo(h||{}),[C,T]=Qm(!1),w=ot("connectWalletButton",f),{isActiveTab:x,tabManagerInitiated:A,showActivateTabModal:I,setShowActivateTabModal:E,activateCurrentTab:v}=te(),b=Ke(),{manager:B}=nv(),{isTablet:P,isMobile:F}=fn(),Z=kt(B).map(({swap:we})=>we).some(we=>we.status==="running"),V=i(()=>v(Ao.forceClaim,Z),"onActivateTab"),M=i(()=>{r.onWallet?.()},"onConnectWallet"),ee=typeof r.hasBackButton>"u"||r.hasBackButton,R=qm(null),X=qm(null);return $i(()=>{let we=(p?.swapBoxBanner?.routes?.length??0)===0,se=!!p?.swapBoxBanner?.routes?.some(de=>location.pathname.endsWith(de));T(!!p?.swapBoxBanner&&(we||se))},[p?.swapBoxBanner?.routes?.toString(),location.pathname]),$i(()=>(Rn()&&X.current&&e(X.current),()=>{o()}),[]),$i(()=>(R.current?.addEventListener("scroll",kl),()=>{R.current?.removeEventListener("scroll",kl)}),[]),$i(()=>{m(c==="failed")},[c]),av(()=>{let we=s==="auto"||!X.current||Rn(),se=F||P,de=i(()=>{we||(se?X.current.style.height=`${window.innerHeight-X.current.offsetTop}px`:X.current.style.height=`${700}px`,d(parseFloat(X.current.style.height)<640))},"handler");return de(),window.addEventListener("resize",de),()=>window.removeEventListener("resize",de)},[s,F,P]),Be.createElement($m,{height:s,id:tt.SWAP_BOX_ID,className:`${y()} ${Di()}`,ref:X,showBanner:C},Be.createElement(iv,{prefix:ee?Be.createElement(dl,{onClick:()=>{b(),r.onBack?.()}}):null,title:r.title,suffix:Be.createElement(Be.Fragment,null,r.suffix,r.onWallet&&!w&&Be.createElement(gl,{container:N(),onClick:M,isConnected:!!l?.length}),r.onCancel&&Be.createElement(fl,{onClick:r.onCancel}))}),Be.createElement(Fm,{ref:R},n),Be.createElement(ul,{open:I,onClose:()=>E(!1),onConfirm:V}),Be.createElement(Om,null,Be.createElement("div",{className:"footer__content"},A&&!x&&Be.createElement("div",{className:"footer__alert"},Be.createElement(cl,{onActivateTab:V}),Be.createElement(zm,{size:10})),a),Be.createElement(zm,{size:12}),Be.createElement("div",{className:`footer__logo ${S?"logo__show":"logo__hidden"}`},Be.createElement(rv,null))),C&&Be.createElement(Um,null,p?.swapBoxBanner?.element),Be.createElement(Cl,{open:u,onClose:()=>m(!1)}))}i(re,"Layout");import{styled as sv}from"@rango-dev/ui";var Hm="$20 $20 $10 $20",Tl=sv("div",{padding:Hm,overflowY:"auto",flexGrow:1});import{styled as lv}from"@rango-dev/ui";var ie=lv("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 po}from"@lingui/core";import{useState as wl}from"react";function Gm(){let[t,e]=wl(!1),[o,n]=wl(null),[r,a]=wl(null),{findToken:s}=k(),c=k().customTokens(),l=i(()=>{a(null),e(!1),n(null)},"resetState");function p(m,f){switch(m){case"duplicated":return{type:m,title:po.t("Duplicate Token"),message:po.t("The address you entered is duplicate, please enter a new address.")};case"token-exist":return{type:m,title:po.t("Token Already Exists"),message:po.t("There's no need to add this token again because it already exists and is supported by us.")};case"not-found":return{type:m,title:po.t("Token Not Found"),message:po.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:f}})};case"network-error":return{type:m,title:po.t("Network error"),message:po.t("An error occurred while retrieving token data.")}}}return i(p,"produceErrorMessage"),{fetchCustomToken:i(async({blockchain:m,tokenAddress:f})=>{e(!0);try{if(c.some(y=>y.address?.toLowerCase()===f.toLowerCase())){let y=p("duplicated");n(y);return}let g=await ct().getCustomToken({blockchain:m,address:f});if(!g||!g.token||g.error){let y=p("not-found",m);n(y);return}let d=g.token;if(s({blockchain:d.blockchain,address:d.address,symbol:d.symbol})){let y=p("token-exist");n(y);return}return a({...d,warning:!0})}catch(h){if(h.code==="ERR_BAD_REQUEST"){let g=p("not-found",m);n(g);return}n(p("network-error"));return}finally{e(!1)}},"fetchCustomToken"),token:r,loading:t,error:o,resetState:l}}i(Gm,"useFetchCustomToken");var Cv=mv("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1,"& ._text-field":{padding:"$4 $12",backgroundColor:"$neutral300","& input":{padding:"0"},[`.${uv} &`]:{backgroundColor:"$neutral400"},borderRadius:"$sm",height:"$40"}});function Vm(){let t=yv(),[e]=Sv(),o=Ke(),n=k().blockchains(),r=e.get("blockchain")||"",a=vo(r,n),[s,c]=hv(""),{fetchCustomToken:l,token:p,loading:u,error:m,resetState:f}=Gm(),h=!!a&&jo(a,s),g=!a||!s||!h,d=i(()=>{a&&l({blockchain:r,tokenAddress:s})},"getCustomToken");return je.createElement(re,{header:{title:hn.t("Add Custom Token")}},je.createElement(ie,null,je.createElement(Cv,null,je.createElement("div",null,je.createElement(js,{onClick:()=>t(O.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")}),je.createElement(vl,{size:"24"}),je.createElement(gv,{size:"large",variant:"label"},hn.t("Enter Address")),je.createElement(vl,{size:10}),je.createElement(fv,{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&&je.createElement(dv,{color:"success",size:12}),onChange:S=>c(S.target.value)}),!h&&!!s&&je.createElement(je.Fragment,null,je.createElement(vl,{size:4}),je.createElement(cv,{id:"widget-add-custom-token-invalid-address-alert",type:"error",variant:"alarm",title:"Invalid Address"}))),je.createElement(pv,{id:"widget-add-custom-token-import-btn",disabled:g,type:"primary",variant:"contained",loading:u,size:"large",onClick:d},hn.t("Import"))),je.createElement(Jn,{token:p,blockchain:a??void 0,address:s,error:m??void 0,fetchCustomToken:l,onCloseErrorModal:()=>{m?.type!=="network-error"&&c("")},onImport:o,onExitErrorModal:f,onExitImportModal:f})))}i(Vm,"AddCustomTokenPage");import{i18n as ec}from"@lingui/core";import{useManager as rx}from"@rango-dev/queue-manager-react";import{Alert as ix,Button as ax,css as oc,Divider as tc,IconButton as Dg,styled as sx,Typography as lx,WalletIcon as cx}from"@rango-dev/ui";import Fe,{useEffect as ca,useLayoutEffect as px,useRef as ux,useState as fr}from"react";import{useNavigate as dx}from"react-router-dom";import{i18n as Do}from"@lingui/core";import{Alert as Gv,BalanceErrors as Vv,Button as Cf,ChevronLeftIcon as Kv,Divider as Wl,MessageBox as jv,Typography as Ll}from"@rango-dev/ui";import ne,{useCallback as Xv,useEffect as kf,useMemo as Yv,useState as Cn}from"react";import{useNavigate as Zv}from"react-router-dom";import{i18n as Il}from"@lingui/core";import{Alert as bv,ChevronDownIcon as xv,CloseIcon as Ev,Divider as Rm,IconButton as ef,PasteIcon as Iv,Typography as Av,WalletIcon as Nv}from"@rango-dev/ui";import $e,{useEffect as Bv,useRef as Wv}from"react";import zi,{useRef as wv}from"react";import*as yn from"@radix-ui/react-collapsible";import{keyframes as Km,styled as Fi}from"@rango-dev/ui";var bl=300,kv=Km({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Tv=Km({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),jm=Fi(yn.Root,{borderRadius:"$sm",overflow:"hidden",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),xl=Fi(yn.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit",cursor:"pointer"}),Oi=Fi(yn.Content,{overflow:"hidden",variants:{open:{true:{animation:`${kv} ${bl}ms ease-out`},false:{animation:`${Tv} ${bl}ms ease-out`}}}}),Ui=Fi("div",{transition:`all ${bl}ms ease`,display:"flex",alignItems:"center",variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}});function qi(t){let{open:e,hasSelected:o,onOpenChange:n,children:r,onClickTrigger:a,trigger:s,triggerAnchor:c}=t,l=wv(null);return zi.createElement(jm,{ref:l,className:"collapsible_root",selected:o&&e,open:e,onOpenChange:n},c==="top"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s),zi.createElement(Oi,{className:"collapsible_content",open:e},r),c==="bottom"&&zi.createElement(xl,{className:"collapsible_trigger",onClick:a},s))}i(qi,"CustomCollapsible");import{darkTheme as Xm,styled as El,TextField as vv}from"@rango-dev/ui";var Ym=El("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"$5"},"& .collapsible_content":{backgroundColor:"$neutral100"},"& .collapsible_root":{backgroundColor:"$neutral100"},"& input":{padding:"$15"}}),Zm=El(vv,{backgroundColor:"$neutral100"}),Jm=El("div",{width:"100%",borderRadius:"$sm",display:"flex",padding:"$15",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Xm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomRightRadius:"0",borderBottomLeftRadius:"0","&:focus-visible":{$$background:"$colors$secondary100",[`.${Xm} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}});function tf(t){let{blockchain:e,handleOpenChange:o,open:n}=t,{customDestination:r,setCustomDestination:a}=U(),{config:s}=k(),c=k().blockchains(),l=zr(e.name,c),p=Wv(null),u=s?.defaultCustomDestinations?.[e.name],m=navigator?.userAgent.includes("Firefox"),h=n&&!!r&&e&&!jo(e,r),g=i(()=>{a("")},"handleClear"),d=i(async y=>{if(y.preventDefault(),navigator.clipboard!==void 0){let C=await navigator.clipboard.readText();a(C),p?.current?.focus()}},"handlePaste"),S=i(()=>r?$e.createElement(ef,{id:"widget-custom-destination-close-icon-btn",onClick:g,variant:"ghost"},$e.createElement(Ev,{size:12,color:"gray"})):m?null:$e.createElement(ef,{id:"widget-custom-destination-paste-icon-btn",onClick:d,variant:"ghost"},$e.createElement(Iv,{size:16})),"renderSuffix");return Bv(()=>{!!u&&r===null&&(a(u),o(!0))},[u]),$e.createElement(Ym,null,$e.createElement(qi,{onOpenChange:o,hasSelected:!0,open:n,triggerAnchor:"top",trigger:$e.createElement(Jm,{id:"widget-custom-destination-collapsible-btn"},$e.createElement("div",{className:"button__content"},$e.createElement(Nv,{size:18,color:"info"}),$e.createElement(Rm,{size:4,direction:"horizontal"}),$e.createElement(Av,{variant:"label",size:"medium",color:n?"$neutral600":void 0},Il.t("Send to a different address"))),$e.createElement(Ui,{orientation:n?"up":"down"},$e.createElement(xv,{size:10,color:"secondary"}))),onClickTrigger:()=>o(!n)},$e.createElement(Zm,{id:"widget-custom-destination-blockchain-address-input",ref:p,style:{padding:0,paddingRight:r?"8px":"5px"},autoFocus:!r,placeholder:Il.t("Enter {blockchainName} address",{blockchainName:l}),value:r||"",suffix:S(),onChange:y=>{let C=y.target.value;a(C)}})),h&&$e.createElement($e.Fragment,null,$e.createElement(Rm,{size:4}),$e.createElement(bv,{variant:"alarm",type:"error",title:Il.t({values:{destination:r},id:"Address {destination} doesn't match the blockchain address pattern."})})))}i(tf,"CustomDestination");import{css as Lv,IconButton as Mv,SelectableWalletButton as Pv,styled as uo}from"@rango-dev/ui";var of=uo("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),nf=uo("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),rf=uo(Pv,{justifyContent:"center"}),af=uo("div",{padding:"$20 $20 $15 $20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),sf=uo(Mv,{position:"absolute",left:"$20"}),lf=uo("div",{paddingTop:"$20"}),cf=Lv({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),pf=uo("div",{display:"flex"}),uf=uo("div",{overflow:"visible",width:"100%"});import{i18n as Nl}from"@lingui/core";import{warn as Ov}from"@rango-dev/logging-core";import{Divider as Uv,makeInfo as zv,SelectableWallet as qv,Typography as yf,WalletState as Qi}from"@rango-dev/ui";import rt,{useEffect as Sf,useState as nr}from"react";import{Image as $v,MessageBox as Fv}from"@rango-dev/ui";import or from"react";import{keyframes as _v,styled as Al}from"@rango-dev/ui";var df=Al("div",{position:"relative"}),Dv=_v({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),mf=Al("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Dv} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),ff=Al("div",{"& img":{borderRadius:"50%"}});import{i18n as Sn}from"@lingui/core";function gf(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(gf,"generateMessageByStatus");function hf(t){let{status:e,displayName:o,image:n}=t,r=gf(e,o),a=e=="in-progress";return or.createElement(Fv,{type:r.type,title:r.title,description:r.description,icon:a?or.createElement(df,null,or.createElement(ff,null,or.createElement($v,{src:n,size:45})),or.createElement(mf,null)):void 0})}i(hf,"ExperimentalChainStatus");var Qv=7,Hv=3e3;function Bl(t){let{chain:e,quoteChains:o,isSelected:n,selectWallet:r,limit:a,onShowMore:s}=t,c=te.use.isActiveTab(),{blockchains:l,connectedWallets:p}=k(),[u,m]=nr(),[f,h]=nr(null),[g,d]=nr(!1),[S,y]=nr(null),{suggestAndConnect:C}=Hi(),{list:T}=vt({chain:e}),[w,x]=nr(T),A=T.length,I=a&&A-a>0,E=i(async b=>{d(!1),y("in-progress");try{await C(b.walletType,b.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");Sf(()=>{x(b=>{let B=T.findIndex(P=>n(P.type,e));return I&&B>1?[T[B]].concat(T.filter((P,F)=>F!==B)):b.map(P=>T.find(F=>F.type===P.type)??P)})},[JSON.stringify(T)]);let v=document.getElementById(tt.SWAP_BOX_ID);return Sf(()=>{let b=null;return(S==="completed"||S==="rejected")&&(b=setTimeout(()=>y(null),Hv)),()=>{b&&clearTimeout(b)}},[S]),rt.createElement(rt.Fragment,null,w.slice(0,a).map(b=>{let B=hu({connectedWallets:p,walletType:b.type,chain:e}),P=b.state===Qi.CONNECTED,F=B?io(B,Qv):"",q=P&&!!b.needsNamespace&&!F,Z=Rr(l(),e),V=!p.find(de=>de.walletType===b.type&&de.chain===e),M=Z&&V&&b.state===Qi.CONNECTED,ee=i(async()=>{b.state===Qi.DISCONNECTED||q?m(b):M?(h({walletType:b.type,chain:e,address:B??""}),d(!0)):r({walletType:b.type,chain:e,address:B??""})},"onSelectableWalletClick"),R=zv(b.state),X=i(()=>M?Nl.t({id:"Add {chain} chain",values:{chain:e}}):q?Nl.t("Chain not connected"):F||R.description,"getWalletDescription"),we=i(()=>b.state===Qi.CONNECTED?q?"neutral600":"neutral700":R.color,"getWalletDescriptionColor"),se=f?.chain?zr(f.chain,l()):void 0;return rt.createElement(rt.Fragment,{key:`${b.title}_${se}`},!!f&&rt.createElement(J,{id:"widget-wallets-list-watermarked-modal",open:!!f&&g,container:v,onClose:()=>{h(null)}},rt.createElement(Ps,{id:"widget-wallets-list-experimental-chain-container",displayName:se,onConfirm:()=>{E(f)}})),S&&rt.createElement(J,{id:"widget-wallets-list-experimental-chain-watermarked-modal",open:!!S,onClose:y.bind(null,null),container:v},rt.createElement(hf,{status:S,displayName:se,image:b.image}),rt.createElement(Uv,{direction:"vertical",size:32})),rt.createElement(qv,{key:b.type,id:"widget-wallets-list-selectable-wallet-btn",description:X(),descriptionColor:we(),onClick:ee,selected:n(b.type,e),disabled:!c,...b}))}),rt.createElement(jn,{id:"widget-wallets-list-stateful-connect-modal",wallet:u,options:{defaultSelectedChains:o||[e]},onClose:()=>{m(void 0)},onConnect:()=>{t.onConnect&&(u?.type?t.onConnect(u.type):Ov(new Error("The selected wallet hasn't been detected after the connection process finished. It usually shouldn't happen.")))}}),I&&rt.createElement(rf,{selected:!1,onClick:s,id:"widget-wallets-list-show-more-wallets-btn"},rt.createElement(yf,{variant:"label",size:"medium"},Nl.t("Show more wallets"),rt.createElement(yf,{variant:"label",size:"medium",color:"$primary"},"\xA0+",A-(a??0)))))}i(Bl,"WalletList");var Jv=2;function Tf(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:a}=t,s=Zv(),c=k().blockchains(),{selectedQuote:l,setSelectedWallets:p,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:f,setCustomDestination:h}=U(),{config:g,connectedWallets:d,setWalletsAsSelected:S}=k(),[y,C]=Cn(""),[T,w]=Cn([]),[x,A]=Cn(""),[I,E]=Cn(!!f),v=Yv(()=>Eo({filter:"all",quote:l}),[l]),b=Eo({filter:"required",quote:l}),B=c.find(L=>L.name===l?.swaps[l?.swaps.length-1]?.to.blockchain),P=i(L=>b.includes(L),"isWalletRequiredFor"),F=Xv(()=>d.filter(L=>L.selected&&v.includes(L.chain)),[d,v]),[q,Z]=Cn(F()),[V,M]=Cn([]),ee=i((L,W)=>M(H=>H.concat({blockchain:L,walletType:W})),"addNextSelectedWallets"),R=T.length>0,X=i((L,W)=>!!q.find(H=>H.walletType===L&&H.chain===W&&H.selected&&(P(W)||!P(W)&&!f)),"isSelected"),we=i((L,W,H)=>{let j=!1;return L.map(K=>{if(K.chain===W){let me=K.selected;return!j&&H?(j=!0,me=!0):H||(me=!1),{...K,selected:me}}return K})},"updateSelectableWallets"),se=i(L=>{E(L),L?P(B?.name??"")||Z(W=>we(W,B?.name||"",!1)):(h(""),Z(W=>we(W,B?.name||"",!0)))},"handleCustomDestinationCollapsibleOpenChange"),de=i(L=>{if(y&&C(""),X(L.walletType,L.chain))return;let H=d.find(j=>j.walletType===L.walletType&&j.chain===L.chain);H&&(n(),L.chain===B?.name&&I&&!P(B.name)&&(E(!1),h(null)),Z(j=>j.filter(K=>K.chain!==L.chain).concat({...H,selected:!0})))},"onChange"),Oe=i(()=>{let L=q.filter(W=>W.selected);S(L),p(L),m(!0),o()},"onConfirmBalance"),wt=i(async()=>{w([]),A("");let L=await r?.({selectedWallets:q.filter(H=>H.selected),customDestination:f}),W=L.warnings;W?.balance?.messages&&w(W.balance.messages),L.error&&A(kd(L.error)),!L.error&&!W?.balance?.messages.length?Oe():w(W?.balance?.messages??[])},"onConfirmWallets");kf(()=>{Z(L=>{let W=[];return L.forEach(H=>{!d.some(K=>K.chain===H.chain&&K.walletType===H.walletType&&K.address===H.address)||W.push(H)}),W=W.concat(d.filter(H=>!!!W.find(K=>K.chain===H.chain)&&H.selected&&v.includes(H.chain))),W})},[d,v]),kf(()=>{let L=[];V.length>0&&(V.forEach(W=>{let H=d.find(j=>j.chain===W.blockchain&&j.walletType===W.walletType);H?de(H):L.push(W)}),M(L))},[d,V]);let ve=document.getElementById(tt.SWAP_BOX_ID);return ne.createElement(J,{id:"widget-confirm-wallets-modal",open:e,onClose:()=>{u||s("../",{replace:!0}),o()},dismissible:!y,container:ve,...!y&&{styles:{container:{height:"100%"}},footer:ne.createElement(pf,null,ne.createElement(Cf,{id:"widget-confirm-wallet-modal-confirm-btn",loading:a,disabled:Xd(a,I,f,l,q,B),onClick:wt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},Do.t("Confirm")))},...y&&{styles:{container:{height:"100%",padding:"$0"}},header:ne.createElement(af,null,ne.createElement(sf,{id:"widget-confirm-wallet-modal-navigate-back-icon-btn",variant:"ghost",onClick:C.bind(null,"")},ne.createElement(Kv,{size:16})),ne.createElement(Ll,{variant:"headline",size:"small"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:gt(y,c)}})))},anchor:"center"},ne.createElement(J,{id:'"widget-confirm-wallets-insufficient-account-balance-modal',open:R,onClose:w.bind(null,[]),container:ve},ne.createElement(jv,{title:Do.t("Insufficient account balance"),type:"error",description:ne.createElement(Vv,{messages:T??[]})},ne.createElement(Cf,{id:"widget-confirm-wallet-modal-proceed-anyway-btn",variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Oe},Do.t("Proceed anyway")))),y&&ne.createElement(lf,null,ne.createElement("div",{className:cf()},ne.createElement(Bl,{chain:y,quoteChains:v,isSelected:X,selectWallet:de,onShowMore:()=>C(y),onConnect:L=>{ee(y,L)}}))),!y&&ne.createElement(ne.Fragment,null,x&&ne.createElement(ne.Fragment,null,ne.createElement(Gv,{id:"widget-confirm-wallet-modal-error-alert",variant:"alarm",type:"error",title:Do.t(x)}),ne.createElement(Wl,{size:12})),ne.createElement(uf,null,v.map((L,W)=>{let H=c.find(Qe=>Qe.name===L),j=`wallet-${W}`,K=W===v.length-1,me=K&&B&&g?.customDestination!==!1;return ne.createElement("div",{key:j},ne.createElement(of,null,ne.createElement(Ll,{variant:"title",size:"xmedium"},Do.t({id:"Your {blockchainName} wallets",values:{blockchainName:H?.shortName}})),ne.createElement(Ll,{variant:"label",color:"$neutral700",size:"medium"},Do.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:H?.shortName}}))),ne.createElement(Wl,{size:24}),ne.createElement(nf,null,ne.createElement(Bl,{chain:L,quoteChains:v,isSelected:X,selectWallet:de,limit:Jv,onShowMore:()=>C(H?.name??""),onConnect:Qe=>{ee(L,Qe)}})),!K&&ne.createElement(Wl,{size:32}),me&&ne.createElement(tf,{blockchain:B,open:I,handleOpenChange:se}))}))))}i(Tf,"ConfirmWalletsModal");import{i18n as Cb}from"@lingui/core";import{Alert as kb,Button as Tb,Divider as Uf,InfoIcon as wb}from"@rango-dev/ui";import Ue from"react";import{Alert as tb,Button as ob,Divider as _l,NoRouteIcon as nb,RefreshIcon as rb,Typography as Af}from"@rango-dev/ui";import pt from"react";import{i18n as wf}from"@lingui/core";var Rv=24,eb=60;function vf(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:oe().genericServerError,action:{onClick:n,title:wf.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:oe().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:wf.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(vf,"makeInfo");var Ml=(o=>(o[o.small=Rv]="small",o[o.large=eb]="large",o))(Ml||{}),Pl=(o=>(o.small="small",o.large="medium",o))(Pl||{});import{styled as Gi}from"@rango-dev/ui";var bf=Gi("div",{display:"flex",flexDirection:"column",alignItems:"center"}),xf=Gi("div",{variants:{size:{small:{},large:{maxWidth:"316px"}}}}),Ef=Gi("div",{variants:{size:{small:{width:"100%"},large:{}}}}),If=Gi("div",{padding:"$6 $0"});function rr(t){let{fetch:e,error:o,size:n="small",skipAlerts:r}=t,a=k().getDisabledLiquiditySources(),s=k().toggleAllLiquiditySources,c=k().swappers(),l=vf(o,a,()=>s(c,!0),e);return r&&(l.alert=null),pt.createElement(bf,{id:"widget-no-result-container"},pt.createElement(nb,{size:Ml[n],color:"gray"}),pt.createElement(_l,{size:4}),pt.createElement(Af,{variant:"title",size:Pl[n]},oe().noResultError.title),n==="large"&&pt.createElement(_l,{size:4}),!!l.description&&pt.createElement(xf,{size:n},pt.createElement(Af,{variant:"body",size:"small",align:"center",color:"neutral700"},l.description)),pt.createElement(_l,{size:n==="large"?"24":"4"}),!!l.alert&&pt.createElement(Ef,{size:n},pt.createElement(tb,{id:"widget-no-result-alert",type:l.alert.type,title:l.alert.text,titleAlign:"left",action:l.alert.action&&pt.createElement(ob,{size:"xsmall",id:"widget-no-result-alert-btn",type:l.alert.type,prefix:pt.createElement(If,null,pt.createElement(rb,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(rr,"NoResult");import{i18n as ar}from"@lingui/core";import{Button as sb,Divider as lb,MessageBox as cb,Typography as pb,WarningIcon as ub}from"@rango-dev/ui";import jt from"react";import{Typography as Mf}from"@rango-dev/ui";import $l from"react";import{Button as ib,darkTheme as ab,styled as ir}from"@rango-dev/ui";var Nf=ir("div",{width:"100%"}),Dl=ir("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"$5",width:"100%"}),Bf=ir("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${ab} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Wf=ir("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"}),Lf=ir(ib,{"& ._text":{gap:"$5",display:"flex",alignItems:"center",justifyContent:"center"}});function Pf(t){let{title:e,value:o,valueColor:n}=t;return $l.createElement(Bf,null,$l.createElement(Mf,{size:"medium",variant:"label",className:"_title"},e),$l.createElement(Mf,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(Pf,"QuoteErrorsModalItem");function _f(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=r.warningLevel==="high"?"error":"warning",c=[{title:ar.t("Swapping"),value:D(r.inputUsdValue,4,4)},{title:ar.t("Gas cost"),value:D(r.totalFee,2,2)},{title:ar.t("Receiving"),value:D(r.outputUsdValue,4,4)},{title:ar.t("Price impact"),value:D(r.priceImpact,2,2),valueColor:`${s}500`}];return jt.createElement(J,{id:"widget-high-value-loss-warning-modal",footer:jt.createElement(sb,{id:"widget-high-value-loss-warning-modal-confirm-btn",type:"primary",size:"large",prefix:jt.createElement(ub,null),fullWidth:!0,disabled:a,onClick:n},oe().highValueLossError.confirmMessage),open:e,onClose:o,container:N()},jt.createElement(cb,{type:s,title:oe().highValueLossError.impactTitle,description:oe().highValueLossError.description}),jt.createElement(Dl,null,jt.createElement(lb,{size:"4"}),jt.createElement(pb,{size:"small",variant:"title"},ar.t("Details")),jt.createElement(Dl,null,c.map((l,p)=>jt.createElement(Pf,{key:p,...l})))))}i(_f,"HighValueLossWarningModal");import{i18n as kn}from"@lingui/core";function Df(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=kn.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-slippage",o.actionButtonTitle=kn.t("Increase")),o;if(t){switch(t.type){case 0:{Kt(t.priceImpact)==="high"&&(o.alertType="error"),o.action="show-info",o.title=oe().highValueLossError.title;break}case 4:{o.title=kn.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=kn.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=kn.t("Increase");break}case 3:{o.title=kn.t("Caution, your slippage is high."),o.action="change-settings";break}default:break}return o}return null}i(Df,"makeAlerts");function $f(t,e){return e?.type===4?Number(e.minRequiredSlippage):t?.type===2?Number(t.minRequiredSlippage):null}i($f,"getRequiredSlippage");import{i18n as Tn}from"@lingui/core";import{Button as db,Divider as Fl,MessageBox as mb,WarningIcon as fb}from"@rango-dev/ui";import go from"react";import{useNavigate as gb}from"react-router-dom";function Ff(t){let{open:e,onClose:o,onConfirm:n,warning:r,confirmationDisabled:a}=t,s=gb();return go.createElement(J,{id:"widget-slippage-warning-modal",anchor:"bottom",open:e,container:N(),onClose:o},go.createElement(mb,{type:"warning",title:r.type===3?Tn.t("High slippage"):Tn.t("Low slippage"),description:r.type===3?Tn.t("Caution, your slippage is high. Your trade may be front run."):Tn.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:r.minRequiredSlippage}})},go.createElement(Fl,{size:18}),go.createElement(Fl,{size:32}),go.createElement(Lf,{id:"widget-slippage-warning-modal-confirm-anyway-btn",size:"large",type:"primary",variant:"contained",fullWidth:!0,disabled:a,onClick:n},go.createElement(fb,{color:"white",size:16}),Tn.t("Swap anyway")),go.createElement(Fl,{size:10}),go.createElement(db,{id:"widget-slippage-warning-modal-change-slippage-btn",size:"large",type:"primary",variant:"outlined",fullWidth:!0,disabled:a,onClick:()=>s("../"+O.settings)},Tn.t("Change Slippage"))))}i(Ff,"SlippageWarningModal");import{Button as hb,MessageBox as yb,WarningIcon as Sb}from"@rango-dev/ui";import Vi from"react";function Of(t){let{open:e,onClose:o,onConfirm:n,confirmationDisabled:r}=t;return Vi.createElement(J,{id:"widget-unknown-price-warning-modal",footer:Vi.createElement(hb,{id:"widget-unknown-price-warning-modal-confirm-btn",type:"primary",size:"large",prefix:Vi.createElement(Sb,null),fullWidth:!0,disabled:r,onClick:n},oe().unknownPriceError.confirmMessage),open:e,onClose:o,container:N()},Vi.createElement(yb,{type:"warning",title:oe().unknownPriceError.impactTitle,description:oe().unknownPriceError.description}))}i(Of,"UnknownPriceWarningModal");function sr(t){let{warning:e,error:o,couldChangeSettings:n,showWarningModal:r,confirmationDisabled:a,skipAlerts:s,refetchQuote:c,onOpenWarningModal:l,onCloseWarningModal:p,onConfirmWarningModal:u,onChangeSettings:m,onChangeSlippage:f}=t,h={confirmationDisabled:a,open:r,onClose:p,onConfirm:u},g=o?.type===0||o?.type===1,d=Df(e,o?.type===3||o?.type===4?o:null);d&&!n&&(d.action=null);let S=!!d&&!s,y=i(C=>{if(C==="change-slippage"){let T=o?.type===3||o?.type===4?o:null,w=$f(e,T);f?.(w)}else C==="change-settings"&&m()},"onclickActionButton");return Ue.createElement(Ue.Fragment,null,g&&Ue.createElement(Ue.Fragment,null,Ue.createElement(Uf,{size:10}),Ue.createElement(rr,{skipAlerts:s,error:o,fetch:c})),S&&Ue.createElement(Nf,null,Ue.createElement(Uf,{size:10}),Ue.createElement(kb,{id:"widget-quote-warning-and-errors-alert",title:d.title,type:d.alertType,variant:"alarm",...d.action==="show-info"&&{action:Ue.createElement(Wf,{onClick:l},Ue.createElement(wb,{size:12,color:"gray"}))},...(d.action==="change-settings"||d.action==="change-slippage")&&{action:Ue.createElement(Tb,{id:"widget-quote-warning-error-change-settings-btn",size:"xxsmall",type:d.alertType,onClick:()=>y(d.action)},d.actionButtonTitle||Cb.t("Change"))}})),e&&Ue.createElement(Ue.Fragment,null,e.type===0&&Ue.createElement(_f,{...h,warning:e}),(e.type===3||e.type===2)&&Ue.createElement(Ff,{...h,warning:e}),e.type===1&&Ue.createElement(Of,{...h,warning:e})))}i(sr,"QuoteWarningsAndErrors");import Zb from"bignumber.js";import ia from"react";import{i18n as $o}from"@lingui/core";import{Alert as Fb,Divider as vn,FullExpandedQuote as Ob,InfoIcon as Ub,NumericTooltip as fg,QuoteTag as zb,StepDetails as qb,TokenAmount as Qb,Typography as bn}from"@rango-dev/ui";import Kl from"bignumber.js";import z,{useRef as Hb,useState as Gb}from"react";import{styled as Ol}from"@rango-dev/ui";var Ul=Ol("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),zf=Ol("div",{paddingBottom:"$15",variants:{dense:{true:{paddingBottom:0}}}}),qf=Ol("div",{width:"100%",display:"flex"});import*as Ki from"@radix-ui/react-collapsible";import{Button as vb,css as lr,darkTheme as We,Image as Qf,styled as Ze,Typography as bb}from"@rango-dev/ui";var xb=300,Hf=Ze(Ki.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}]}),Gf=lr({padding:"$10 $15"}),Vf=Ze(vb,{backgroundColor:"transparent",border:"1px solid $secondary550",[`.${We} &`]:{border:"1px solid $secondary"},transition:"background-color 0.3s ease","&:hover":{backgroundColor:"$secondary550",[`.${We} &`]:{backgroundColor:"$secondary"},".allRoutesLabel":{$$color:"$colors$background",[`.${We} &`]:{$$color:"$colors$foreground"},color:"$$color",transition:"color 0.3s ease"}}}),Kf=Ze("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",boxSizing:"border-box",position:"relative",variants:{selected:{true:{},false:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color"}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{$$color:"$colors$neutral200",[`.${We} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{"& .quote_container":{"& button":{backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral500",[`.${We} &`]:{backgroundColor:"$neutral200"}},backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}},cursor:"pointer"},false:{}}},compoundVariants:[{listItem:!0,selected:!0,css:{outline:"1px solid $secondary"}},{listItem:!1,selected:!0,css:{$$color:"$colors$secondary100",[`.${We} &`]:{$$color:"$colors$secondary550"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},{listItem:!0,selected:!1,css:{cursor:"pointer","&:hover":{backgroundColor:"$neutral300",[`.${We} &`]:{backgroundColor:"$neutral400"}}}}]}),jf=lr({width:"100%",padding:"$15 $15 $10 $15"}),Xf=lr({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10",position:"relative"}),wn=lr({display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",".blockchainImage":{marginLeft:"-$8"}}),Yf=lr({display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${We} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Zf=Ze(Ki.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:{[`& ${Qf}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Qf}`]:{border:"1px transparent solid",borderRadius:"100%"}}},selected:{true:{},false:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}},listItem:{true:{$$color:"$colors$neutral400",[`.${We} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"},false:{}}},compoundVariants:[{listItem:!1,selected:!0,css:{$$color:"$colors$secondary200",[`.${We} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"}}],".blockchains_section":{display:"none"},"@xs":{".blockchains_section":{display:"block"}}}),Jf=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",img:{borderRadius:"100%"},variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Rf=Ze(Oi,{width:"100%",background:"inherit"}),zl=Ze("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${xb}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),kQ=Ze("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),eg=Ze("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${We} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),tg=Ze("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),ql=Ze(bb,{overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4}),og=Ze("div",{display:"flex",flexWrap:"wrap"}),Ql=Ze("div",{width:"18px",height:"18px",borderRadius:"100%",backgroundColor:"$background",cursor:"default",display:"flex",justifyContent:"center",alignItems:"center",border:"1.5px transparent solid",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),ng=Ze("div",{display:"flex"}),ji=Ze("div",{width:"100%",borderTopWidth:"1px",borderTopStyle:"solid",borderTopColor:"$neutral",margin:"$5 0",[`.${We} &`]:{borderTopColor:"$neutral800"}});import{i18n as Dt}from"@lingui/core";import{ChevronDownIcon as Ib,CloseIcon as Ab,Divider as Zi,IconButton as Nb,NumericTooltip as Bb,QuoteCost as Wb,Typography as xt}from"@rango-dev/ui";import Y,{useState as sg}from"react";import{css as Eb,styled as Xi}from"@rango-dev/ui";var Yi=Xi("div",{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"$5 0","&.total_payable_fee":{padding:"$12 0"}}),Hl=Xi("div",{width:"100%",borderTop:"1px solid $neutral300",margin:"$10 0"}),rg=Xi("div",{padding:"$20 0",display:"flex",flexDirection:"column","& .collapsible_trigger":{display:"flex",alignItems:"center"}}),ig=Xi("div",{padding:"$20 $20 $10",position:"relative","._icon-button":{position:"absolute",zIndex:10,top:"$16",right:"$16"}}),ag=Eb({display:"flex",flexDirection:"row",alignItems:"center",padding:"$5","&:hover":{"& ._typography, & svg":{color:"$secondary"}}});var Lb=i(t=>t.fee.isZero()?null:Y.createElement(Yi,null,Y.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},t.label),Y.createElement(xt,{variant:"label",size:"medium"},"$",D(t.fee,4,4))),"NonPayableFee");function Gl(t){let[e,o]=sg(!1),[n,r]=sg(!1),{steps:a,quote:s,fee:c,time:l,feeWarning:p,timeWarning:u,showModalFee:m,fullExpandedMode:f=!1}=t,h=s?.swaps??[],g=f?xo():N(),d=zd(h),S=D(c,2,2);return Y.createElement(Y.Fragment,null,Y.createElement(Wb,{onClickFee:m?y=>{y.stopPropagation(),o(!e)}:void 0,fee:S,feeWarning:p,timeWarning:u,time:l,steps:a,tooltipGas:m?Dt.t("View more info"):void 0,tooltipContainer:g}),Y.createElement(J,{id:"widget-quote-cost-explanation-modal",container:g,open:e,anchor:f?"center":"bottom",styles:{container:{maxWidth:f?"484px":"unset"}},header:Y.createElement(ig,{style:{textAlign:f?"left":"center"}},Y.createElement(xt,{variant:"title",size:"medium"},Dt.t("Gas & Fee Explanation")),Y.createElement(Nb,{id:"widget-quote-cost-details-modal-close-icon-btn",onClick:()=>o(!1),variant:"ghost"},Y.createElement(Ab,{color:"gray",size:14}))),onClose:()=>{o(!1)}},Y.createElement(rg,null,Y.createElement(xt,{variant:"title",size:"small"},Dt.t("Details")),Y.createElement(Zi,{size:10}),Object.entries(d.payable).flatMap(([y,C])=>C.map((T,w)=>{let x=`payable-fee-${w}`,A=zs(T);return Y.createElement(Yi,{key:x},Y.createElement(xt,{variant:"label",size:"medium",color:"neutral600"},Ds(y,Dt.t)),Y.createElement(Bb,{content:T.amount,container:g},Y.createElement(xt,{variant:"label",size:"medium"},D(T.amount,2,2),T.asset.symbol," ($",D(A,4,4),")")))})),Y.createElement(Yi,{className:"total_payable_fee"},Y.createElement(xt,{variant:"label",size:"medium"},Dt.t("Total Payable Fee")),Y.createElement(xt,{variant:"label",size:"medium"},"$",D(c,4,4))),Y.createElement(Hl,null),!!Object.keys(d.nonePayable).length&&Y.createElement(qi,{triggerAnchor:"bottom",onClickTrigger:()=>r(y=>!y),trigger:Y.createElement("div",{className:ag()},Y.createElement(xt,{size:"small",variant:"body",color:"neutral700"},n?Dt.t("Hide non-payable fees"):Dt.t("Show non-payable fees")),Y.createElement(Zi,{size:4,direction:"horizontal"}),Y.createElement(Ui,{orientation:n?"up":"down"},Y.createElement(Ib,{size:12,color:"gray"}))),open:n},Y.createElement(xt,{size:"small",variant:"title"},Dt.t("Description")),Y.createElement(Zi,{size:4}),Y.createElement(xt,{size:"small",variant:"body",color:"neutral700"},Dt.t(`The following fees are considered in the transaction output and
|
|
2
|
+
you won\u2019t need to pay extra gas for them.`)),Y.createElement(Zi,{size:10}),Object.entries(d.nonePayable).map(([y,C],T)=>{let w=Ud(C),x=Ds(y,Dt.t),A=`non-payable-fee-${T}`;return Y.createElement(Lb,{key:A,fee:w,label:x})}),Y.createElement(Hl,null)))))}i(Gl,"QuoteCostDetails");import{i18n as pg}from"@lingui/core";import{TokenAmount as ug}from"@rango-dev/ui";import Ji from"react";import{css as Mb,styled as Pb}from"@rango-dev/ui";var lg=Pb("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),cg=Mb({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function cr(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return Ji.createElement(lg,null,Ji.createElement(ug,{direction:"horizontal",label:pg.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}}),Ji.createElement("div",{className:cg()}),Ji.createElement(ug,{id:"widget-quote-summary-estimated-input",direction:"horizontal",tooltipContainer:N(),label:pg.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(cr,"QuoteSummary");import{i18n as dg}from"@lingui/core";import{ChevronDownIcon as _b,ChevronRightIcon as Db,Divider as Vl,Image as $b,Tooltip as oa,Typography as Ri}from"@rango-dev/ui";import Q from"react";var ea=4,ta=6,pr=i(t=>{let{content:e,src:o,className:n,open:r,state:a,container:s}=t,c=s||N();return Q.createElement(oa,{container:c,side:"bottom",sideOffset:4,open:r,content:e},Q.createElement(Jf,{className:n,state:a},Q.createElement($b,{src:o,size:16})))},"ImageComponent");function mg(t){let{quoteRef:e,selected:o,setExpanded:n,steps:r,expanded:a,type:s,container:c}=t,l=c||N(),p=r.length,u=Bd(r),{isTablet:m,isMobile:f}=fn();return Q.createElement(Zf,{className:"widget-quote-trigger-btn",listItem:s==="list-item",ref:h=>e.current=h,selected:o,onClick:h=>{h.stopPropagation(),n(g=>!g)}},Q.createElement("div",{className:wn()},Q.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Via:")),Q.createElement(Vl,{direction:"horizontal",size:4}),r.map((h,g)=>{let d=`item-${g}`,S=Q.createElement(zl,null,Q.createElement(Db,{size:12,color:"black"}));return f||m?Q.createElement(Q.Fragment,{key:d},Q.createElement(pr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,S)):Q.createElement(Q.Fragment,{key:d},p<=ea||p>ea&&g<ea-1?Q.createElement(Q.Fragment,null,Q.createElement(pr,{content:h.swapper.displayName,src:h.swapper.image??"",state:h.state,container:c}),g!==p-1&&Q.createElement(Q.Fragment,null,S)):g===ea-1&&Q.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:wn()},S,r.map((y,C)=>{let T=`image-${C}`;return C>=g&&Q.createElement(Q.Fragment,{key:T},Q.createElement(pr,{content:y.swapper.displayName,src:y.swapper.image??"",state:y.state,open:!1}),C!==p-1&&Q.createElement(Q.Fragment,null,S))}))},Q.createElement(Ql,{state:r.find((y,C)=>C>=g&&(y.state==="error"||y.state==="warning"))?.state},Q.createElement(Ri,{size:"xsmall",variant:"body"},"+",p-g))))})),Q.createElement("div",{className:wn()},Q.createElement("div",{className:"blockchains_section"},Q.createElement("div",{className:wn()},Q.createElement(Ri,{variant:"body",size:"xsmall"},dg.t("Chains:")),Q.createElement(Vl,{direction:"horizontal",size:4}),u.map((h,g)=>Q.createElement(Q.Fragment,{key:h.displayName},u.length<=ta||u.length>ta&&g<ta-1?Q.createElement(oa,{container:l,side:"bottom",content:h.displayName,sideOffset:4},Q.createElement(pr,{content:"",src:h.image??"",open:!1,className:g!==0?"blockchainImage":""})):g===ta-1&&Q.createElement(oa,{container:l,side:"bottom",align:"end",sideOffset:4,content:Q.createElement("div",{className:wn()},u.map((d,S)=>S>=g&&Q.createElement(pr,{key:d.displayName,content:"",src:d.image??"",open:!1,className:S>g?"blockchainImage":"",container:c})))},Q.createElement(Ql,{className:"blockchainImage"},Q.createElement(Ri,{size:"xsmall",variant:"body"},"+",u.length-g))))),Q.createElement(Vl,{direction:"horizontal",size:32}))),Q.createElement(zl,{orientation:a?"up":"down"},Q.createElement(_b,{size:12,color:"black"}))))}i(mg,"QuoteTrigger");function jl(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:m=!1,container:f}=t,h=k().blockchains(),{findToken:g}=k(),d=k().swappers(),{customSlippage:S,slippage:y}=k(),C=S||y,[T,w]=Gb(t.expanded),x=Hb(null),A=D(o.value,6,6),I=D(n.value,6,6),E=n.usdValue?D(n.usdValue,4,4):"",v=Vt(o.usdValue,n.usdValue??null),b=D(v,2,2),B=Kt(v??0),P=i((ve,L)=>ve.map((W,H)=>{let j,K=r?.type===3&&r.swap.swapperId===W.swapperId,me=r?.type===4&&!!r.recommendedSlippages?.[H],Qe=a?.type===2&&!!a.recommendedSlippages?.[H],He=K||me,be=Qe;He?j="error":be&&(j="warning");let Wt=He?$o.t("Slippage Error"):$o.t("Slippage Warning");return K&&(Wt=$o.t("Bridge Limit Error")),{swapper:{displayName:Wn(W.swapperId,d)??"",image:W.swapperLogo},from:{token:{displayName:W.from.symbol,image:W.from.logo},chain:{displayName:gt(W.from.blockchain,h)??"",image:W.from.blockchainLogo},price:{value:H===0&&!L?D(o.value,6,6):D(W.fromAmount,6,6),usdValue:D((W.from.usdPrice??0)*parseFloat(W.fromAmount),4,4),realValue:H===0?o.value:W.fromAmount,realUsdValue:new Kl(W.from.usdPrice??0).multipliedBy(W.fromAmount).toString()}},to:{token:{displayName:W.to.symbol,image:W.to.logo},chain:{displayName:gt(W.to.blockchain,h)||"",image:W.to.blockchainLogo},price:{value:D(W.toAmount,6,6),usdValue:D((W.to.usdPrice??0)*parseFloat(W.toAmount),4,4),realValue:W.toAmount,realUsdValue:new Kl(W.to.usdPrice??0).multipliedBy(W.toAmount).toString()}},state:j,alerts:He||be?z.createElement(zf,{dense:m},z.createElement(Fb,{variant:"alarm",type:He?"error":"warning",title:Wt,id:"widget-quote-footer-step-alarm-alert",footer:z.createElement(qf,null,K&&z.createElement("div",null,z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),z.createElement(vn,{direction:"vertical",size:2}),z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {amount} {symbol}",values:{amount:D(W.fromAmount,6,6),symbol:W?.from.symbol}}))),(me||Qe)&&!K&&z.createElement("div",null,z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Minimum suggested slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.[H]},...a?.type===2&&{minRequiredSlippage:a.recommendedSlippages?.[H]}}})),z.createElement(vn,{direction:"vertical",size:2}),z.createElement(bn,{size:"xsmall",variant:"body",color:"neutral900"},$o.t({id:"Yours: {userSlippage}",values:{userSlippage:C}}))))})):void 0,time:Mn(W.estimatedTimeInSeconds),fee:D(Us(W,g),2,2),internalSwaps:W.internalSwaps?P(W.internalSwaps):void 0}}),"getQuoteSteps"),F=P(e?.swaps??[]),q=F.length,Z=f||N(),V=Ld(t.quote.tags||[]),M=!!u,ee=Yr(e?.swaps),R=Mn(ee),X=bi(e?.swaps??[],g),we=D(X,2,2),se=X.gte(new Kl(wd)),de=ee/bd>=vd,Oe=F[q-1],wt=F[0];return!wt||!Oe?null:m?z.createElement(Ob,{selected:c,fee:we,time:R,tooltipContainer:xo(),steps:F,tags:V,id:"widget-quote-full-expanded-quote-container",quoteCost:z.createElement(Gl,{quote:e,fullExpandedMode:!0,time:R,fee:X,feeWarning:se,timeWarning:de,showModalFee:p,steps:q}),percentageChange:b,warningLevel:B,outputPrice:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue}}):z.createElement(Kf,{id:"widget-quote-summary-container",selected:c,listItem:s==="list-item",basic:s==="basic"},z.createElement("div",{className:jf()},!l&&V.length?z.createElement(z.Fragment,null,z.createElement(ng,null,V.map((ve,L)=>{let W=`${ve.value}_${L}`;return z.createElement(z.Fragment,{key:W},z.createElement(zb,{label:ve.label,value:ve.value}),z.createElement(vn,{size:4,direction:"horizontal"}))})),z.createElement(ji,null),!M&&z.createElement(vn,{size:4})):null,z.createElement("div",{id:"portal-root",className:Xf()},z.createElement(Gl,{quote:e,time:R,fee:X,feeWarning:se,timeWarning:de,showModalFee:p,steps:q}),M&&z.createElement(Vf,{onClick:ve=>{ve.stopPropagation(),u()},id:"widget-quote-all-routes-btn",size:"xxsmall",type:"secondary",variant:"default",css:{paddingLeft:"$10",paddingRight:"$10",paddingTop:"$5",paddingBottom:"$5"}},z.createElement(bn,{color:"secondary",variant:"body",size:"xsmall",className:"allRoutesLabel"},$o.t("See All Routes")))),s==="basic"&&z.createElement("div",{className:Yf()},z.createElement(tg,null,z.createElement(Ub,{size:12,color:"gray"})),z.createElement(og,null,z.createElement(ql,{size:"small",variant:"body"},`${A} ${wt.from.token.displayName} = `),z.createElement(fg,{content:n.value,container:Z,open:n.value?void 0:!1},z.createElement(ql,{size:"small",variant:"body"},"\xA0",`${I} ${Oe.to.token.displayName}`))),z.createElement(fg,{content:n.usdValue,container:Z},z.createElement(vn,{size:2,direction:"horizontal"}),z.createElement(bn,{color:"$neutral600",size:"xsmall",variant:"body"},`($${E})`))),s==="list-item"&&z.createElement(Qb,{id:"widget-quote-token-amount-container",tooltipContainer:Z,type:"output",direction:"vertical",price:{value:I,usdValue:E,realValue:n.value,realUsdValue:n.usdValue},token:{displayName:Oe.to.token.displayName,image:Oe.to.token.image},chain:{image:Oe.to.chain.image},percentageChange:b,warningLevel:B}),s==="swap-preview"&&z.createElement(z.Fragment,null,z.createElement(cr,{from:wt.from,to:Oe.to,percentageChange:b,warningLevel:B}),z.createElement(vn,{size:4}))),z.createElement(Hf,{selected:c,listItem:s==="list-item",open:T,className:"quote_container",onOpenChange:w},z.createElement(mg,{type:s,quoteRef:x,selected:c,setExpanded:w,container:Z,expanded:T,steps:F}),z.createElement(Rf,{open:T},z.createElement(eg,null),z.createElement("div",{className:Gf()},F.map((ve,L)=>{let W=`item-${L}`;return z.createElement(qb,{type:"quote-details",className:"widget-quote-step-details-container",key:W,tooltipContainer:Z,step:ve,hasSeparator:L!==F.length-1,state:ve.state})})))))}i(jl,"Quote");import{Divider as Xb,Skeleton as Yb}from"@rango-dev/ui";import Jt from"react";import{darkTheme as Vb,styled as na}from"@rango-dev/ui";var gg=na("div",{$$color:"$colors$neutral100",[`.${Vb} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15",variants:{rounded:{true:{borderRadius:"$xm"}},expanded:{true:{paddingBottom:"3px"},false:{paddingBottom:"$12"}}}}),hg=na("div",{paddingTop:"$2"}),yg=na("div",{paddingLeft:"$8"}),Sg=na("div",{borderLeft:"1px dashed $foreground",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as Ag,Divider as Et,Skeleton as ut}from"@rango-dev/ui";import G from"react";import{css as Kb,styled as Zt}from"@rango-dev/ui";var Xl=Zt("div",{display:"flex"}),Cg=Zt("div",{padding:"$10 $0 $20"}),kg=Zt("div",{padding:"14px $0 $20 $0",display:"flex",flexDirection:"column"}),Tg=Zt("div",{display:"flex",justifyContent:"start",alignItems:"center"}),wg=Zt("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),vg=Zt("div",{height:"$24",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),bg=Zt("div",{width:"65%",display:"flex",justifyContent:"start"}),xg=Zt("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),Eg=Zt("div",{padding:"$15 $0 $15 $0"}),Ig=Kb({display:"flex",justifyContent:"space-between",alignItems:"center"});function ur(t){let{type:e,tagHidden:o=!0}=t,n=G.createElement(wg,null,G.createElement(bg,null,G.createElement(Ag,{loading:!0,size:"medium"}),G.createElement(Et,{size:8,direction:"horizontal"}),G.createElement(xg,null,G.createElement(ut,{height:10,width:60,variant:"rounded"}),G.createElement(Et,{size:4}),G.createElement(ut,{height:15,variant:"rounded"}))),G.createElement(ut,{height:12,width:64,variant:"rounded"})),r=e==="basic"&&!o;return G.createElement("div",null,!o&&G.createElement(G.Fragment,null,G.createElement(Xl,null,G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:65,height:20,variant:"rounded"})),G.createElement(ji,null),!r&&G.createElement(Et,{size:4})),G.createElement("div",{className:Ig()},G.createElement(Xl,null,G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"}),G.createElement(Et,{size:4,direction:"horizontal"}),G.createElement(ut,{width:60,height:10,variant:"rounded"})),r&&G.createElement(ut,{width:85,height:24,variant:"rounded"})),e==="basic"&&G.createElement(Cg,null,G.createElement(ut,{height:15,width:148,variant:"rounded"})),e==="list-item"&&G.createElement(kg,null,G.createElement(Tg,null,G.createElement(Ag,{loading:!0,size:"medium"}),G.createElement(Et,{direction:"horizontal",size:4}),G.createElement(ut,{height:15,width:150,variant:"rounded"})),G.createElement(Et,{size:10}),G.createElement(ut,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&G.createElement(G.Fragment,null,G.createElement(Et,{size:4}),G.createElement(Eg,null,n,G.createElement(vg,null),n),G.createElement(Et,{size:12})))}i(ur,"QuoteSummarySkeleton");import{ChainToken as Mg,Divider as Zl,NextIcon as jb,Skeleton as ra}from"@rango-dev/ui";import Le from"react";import{styled as dr}from"@rango-dev/ui";var Ng=dr("div",{display:"flex",alignItems:"start"}),Bg=dr("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center",variants:{extraSpace:{true:{paddingBottom:"$40"}}}}),Yl=dr("div",{display:"flex",alignItems:"center",flexGrow:1}),Wg=dr("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),Lg=dr("div",{display:"flex",alignItems:"center"});function $t(t){let{separator:e=!0}=t;return Le.createElement(Le.Fragment,null,Le.createElement(Lg,null,Le.createElement(ra,{height:22,width:22,variant:"circular"}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:15,width:148,variant:"rounded"})),Le.createElement(Ng,null,Le.createElement(Sg,{hideSeparator:!e}),Le.createElement(Bg,{extraSpace:e},Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})),Le.createElement(Wg,null,Le.createElement(jb,{color:"gray",size:16})),Le.createElement(Yl,null,Le.createElement(Mg,{size:"small",loading:!0}),Le.createElement(Zl,{direction:"horizontal",size:8}),Le.createElement(ra,{height:12,variant:"rounded"})))))}i($t,"StepSkeleton");function mr(t){let{type:e,expanded:o,tagHidden:n=!1}=t;return Jt.createElement(gg,{expanded:o,rounded:e!=="basic"},Jt.createElement(ur,{type:e,tagHidden:n}),Jt.createElement(hg,null,Jt.createElement(Yb,{height:15,variant:"rounded"})),o&&Jt.createElement(yg,null,Jt.createElement(Xb,{size:24}),Jt.createElement($t,null),Jt.createElement($t,null),Jt.createElement($t,{separator:!1})))}i(mr,"QuoteSkeleton");function Fo(t){let{quote:e,type:o,loading:n,error:r,warning:a,expanded:s=!1,tagHidden:c,onClick:l,showModalFee:p,selected:u,id:m,onClickAllRoutes:f,fullExpandedMode:h=!1,container:g}=t,{inputAmount:d,inputUsdValue:S}=U(),y=e?.outputAmount?new Zb(e?.outputAmount):null,C=e?St(e):null,w=!(r&&(r.type===0||r.type===1))&&e&&!n;return n?ia.createElement(Ul,null,ia.createElement(mr,{tagHidden:c,type:o,expanded:s})):w?ia.createElement(Ul,{onClick:()=>l?.(e),id:m},ia.createElement(jl,{quote:e,error:r,container:g,showModalFee:p,warning:a,tagHidden:c,selected:u,type:o,expanded:s,onClickAllRoutes:f,fullExpandedMode:h,input:{value:d,usdValue:S?.toString()??""},output:{value:y?.toString()??"",usdValue:C?.toString()??""}})):null}i(Fo,"QuoteInfo");import{warn as tx}from"@rango-dev/logging-core";import{calculatePendingSwap as ox}from"@rango-dev/queue-manager-rango-preset";import{useEffect as nx}from"react";import{useRef as Jb,useState as Rb}from"react";var ex=2e3;function aa({request:t}){let[e,o]=Rb(!1),n=Jb(null),r=i(()=>n.current?.abort(),"cancelFetch"),a=i(async c=>(await new Promise(l=>setTimeout(l,ex)),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(aa,"useFetch");function Pg(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await ct().confirmRoute(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Pg,"useFetchConfirmQuote");function sa(t){if(!t.swaps)throw new Error(oe().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let e=Jl(t.swaps);if(e)throw new Error(e.message,{cause:e.options})}i(sa,"throwErrorIfResponseIsNotValid");function Jl(t){if($d(t)){let{swap:n,fromAmountRangeError:r,recommendation:a}=Fd(t);return n?{message:"bridge limit error",options:{type:3,swap:n,recommendation:a,fromAmountRangeError:r}}:null}let o=qd(t);if(o){let n=xi(t);return{message:"",options:{type:4,recommendedSlippages:o,minRequiredSlippage:n}}}return null}i(Jl,"getQuoteError");function _g(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=Gd(e,r,n.blockchains);return p.length===0||(c.balance={messages:p}),c}i(_g,"generateWarnings");function la(t){return t?.code==="ERR_CANCELED"?{type:2}:t.cause?t.cause:t?.code==="ERR_BAD_REQUEST"?{type:0,diagnosisMessage:t.response.data.error}:{type:1,diagnosisMessage:t.message}}i(la,"handleQuoteErrors");function Rl(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setSelectedQuote:r,selectedQuote:a,customDestination:s,resetAlerts:c}=U(),{slippage:l,customSlippage:p}=k(),u=k().getDisabledLiquiditySources(),m=k().blockchains(),f=k().tokens(),{findToken:h}=k(),g=p||l,{fetch:d,cancelFetch:S,loading:y}=Pg();return nx(()=>S,[]),{loading:y,fetch:i(async T=>{let w=T.selectedWallets,x=T?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let A=w.reduce((E,v)=>(E[v.chain]=v.address,E),{}),I={requestId:a?.requestId||"",selectedWallets:A,destination:x||void 0};try{return await d(I,!0).then(E=>{let{result:v}=E;if(!v)throw new Error(E.error??"Error fetching updated quote");sa({diagnosisMessages:v.diagnosisMessages,requestId:v.requestId,swaps:v.result?.swaps});let b={outputAmount:v.result?.outputAmount,requestId:v.requestId,resultType:v.result?.resultType,swaps:v.result?.swaps||[],validationStatus:v.validationStatus,requestAmount:v.requestAmount};r(b);let B={slippage:g.toString(),disabledSwappersGroups:u},P=_g({previousQuote:a??void 0,currentQuote:b,meta:{blockchains:m},selectedWallets:w,userSlippage:g,inputUsdValue:n,findToken:h});c();let F=!!P.balance,q=ox(o.toString(),v,Hd(w),B,!F,{blockchains:m,tokens:f});return{quote:b,swap:q,error:null,warnings:P}})}catch(E){let v=la(E);return v.type!==2&&tx(new Error("confirm swap error"),{tags:{...v,type:Xe[v.type],initialQuote:a,requestBody:I}}),{swap:null,error:v,warnings:null}}},"fetch"),cancelFetch:S}}i(Rl,"useConfirmSwap");var mx=sx("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Dg}`]:{width:"$48",height:"$48"}}),fx=oc({flexGrow:1,paddingRight:"$10"}),gx=oc({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),hx=oc({display:"flex",justifyContent:"space-between",alignItems:"center"});function $g(){let{selectedQuote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,customDestination:r,quoteWarningsConfirmed:a}=U(),s=dx(),[c,l]=fr(""),p=!n,[u,m]=fr(!1),[f,h]=fr(!1),{isActiveTab:g}=te(),d=k().getDisabledLiquiditySources(),S=ux(d),{manager:y}=rx(),{fetch:C,loading:T,cancelFetch:w}=Rl(),[x,A]=fr({swap:null,error:null,warnings:null}),[I,E]=fr(!1),v=i(async({selectedWallets:M,customDestination:ee})=>{let R=await C?.({selectedWallets:M,customDestination:ee});return A(R),R},"onConfirmSwap"),b=i(async()=>{if(x.swap&&n)try{await y?.create("swap",{swapDetails:x.swap},{id:x.swap.requestId});let M=`../${O.swaps}/${x.swap.requestId}`;s(M,{replace:!0}),setTimeout(()=>{e("")},0)}catch(M){l("Error: "+M?.message)}},"addNewSwap"),B=i(async()=>{h(!0),await b(),h(!1)},"onConfirm"),P=i(async()=>{x.warnings?.quote&&Nd(x.warnings.quote)&&!a?E(!0):await B()},"onStartConfirmSwap"),F=i(async()=>{A({error:null,swap:null,warnings:null}),C({selectedWallets:o,customDestination:r}).then(M=>{A(M)}).catch(M=>console.error(M))},"onRefresh");ca(()=>{!!S.current.length&&!d.length&&F(),S.current=d},[d.length]),ca(()=>{p&&w()},[p]),ca(()=>{p&&m(p)},[p]),ca(()=>{p||C({selectedWallets:o,customDestination:r}).then(M=>A(M)).catch(M=>console.error(M))},[]),px(()=>{t?.requestId||s(`../${location.search}`)},[t?.requestId]);let q=x.warnings?.quote??null,Z=x.error,V=[];if(c&&V.push(Fe.createElement(ix,{id:"widget-confirm-swap-db-error-alert",type:"error",variant:"alarm",title:c})),q||Z){let M=`../${O.settings}`;V.push(Fe.createElement(sr,{warning:q,error:Z,couldChangeSettings:!1,refetchQuote:F,skipAlerts:Z?.type===4||q?.type===2,showWarningModal:I,confirmationDisabled:!g,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await b()},onChangeSettings:()=>s(M)}))}return Fe.createElement(re,{header:{title:ec.t("Confirm Swap"),onWallet:()=>{let M=`../${O.wallets}`;s(M)}},footer:Fe.createElement(mx,null,Fe.createElement("div",{className:fx()},Fe.createElement(ax,{id:"widget-confirm-swap-start-btn",variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T||f,disabled:!!x.error||!g,onClick:P},ec.t("Start Swap"))),Fe.createElement(Dg,{id:"widget-confirm-swap-wallet-icon-btn",variant:"contained",type:"primary",size:"large",loading:T||f,disabled:!g,onClick:m.bind(null,!0)},Fe.createElement(cx,{size:24})))},u&&Fe.createElement(Tf,{open:u,onClose:()=>m(!1),onCancel:w,loading:T,onCheckBalance:v}),Fe.createElement(ie,null,Fe.createElement("div",{className:hx()},Fe.createElement(lx,{variant:"title",size:"small"},ec.t("You get")),Fe.createElement("div",{className:gx()},Fe.createElement(Li,{onClick:!T&&!u&&!I?F:void 0}))),Fe.createElement(tc,{size:"12"}),ym(V.map((M,ee)=>({element:M,key:`alert-${ee}`})),Fe.createElement(tc,{size:10})),V.length>0?Fe.createElement(tc,{size:10}):null,Fe.createElement(Fo,{quote:t,type:"swap-preview",id:"widget-confirm-swap-quote-container",expanded:!0,tagHidden:!0,error:x.error,loading:T,warning:x.warnings?.quote??null})))}i($g,"ConfirmSwapPage");import{i18n as eo}from"@lingui/core";import{Button as fc,CustomTokensZeroStateDarkIcon as Dx,CustomTokensZeroStateIcon as $x,DeleteIcon as Fx,Divider as Cr,IconButton as Ox,MessageBox as Ux,NotFound as zx,styled as hc}from"@rango-dev/ui";import fe,{useState as gc}from"react";import{useNavigate as qx}from"react-router-dom";import{CloseIcon as yx,IconButton as Sx,SearchIcon as Cx,TextField as kx}from"@rango-dev/ui";import xn from"react";import{styled as Fg}from"@rango-dev/ui";var Og=Fg("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"}),Ug=Fg("div",{width:"100%","& ._text-field":{paddingLeft:"$10","& input":{paddingLeft:"$2",paddingTop:"$12",paddingBottom:"$12"}}});function It(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:a,value:s,style:c,setValue:l,suffix:p,id:u,...m}=t,f=s.length?xn.createElement(Sx,{id:`${u}\u06F0icon-btn`,variant:"ghost",onClick:()=>l?.(""),size:"small"},xn.createElement(yx,{color:"gray",size:10})):null;return p&&(f=p),xn.createElement(Ug,null,xn.createElement(kx,{prefix:xn.createElement(Og,null,xn.createElement(Cx,{color:"black"})),id:u,suffix:f,fullWidth:o,color:n,variant:e,style:{borderRadius:25,alignItems:"center",...c},size:r,value:s,onChange:a,...m}))}i(It,"SearchInput");import{i18n as mc}from"@lingui/core";import{Button as bx,CustomTokenWarning as xx,darkTheme as Jg,Divider as Rt,ExternalLinkIcon as Ex,Image as Ix,ListItem as Ax,NotFound as Nx,PinIcon as Bx,Skeleton as Oo,Typography as yr,VirtualizedList as Wx}from"@rango-dev/ui";import _,{useState as Lx}from"react";import{useTranslation as Mx}from"react-i18next";import{Divider as Yg,ListItem as vx,Skeleton as hr}from"@rango-dev/ui";import At from"react";import{css as En,darkTheme as nc,ImageContainer as Tx,ListItemButton as wx,styled as it,Typography as zg}from"@rango-dev/ui";var rc=En({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),ic=En({position:"relative",height:12,width:"30%",maxWidth:"150px"}),ac=En({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),sc=En({transform:"translateY(12px)",visibility:"hidden",display:"flex","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),lc=En({}),cc=En(),qg=it("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",justifyContent:"center"}),pc=it("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),pa=it("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${ic}`]:{[`& .${sc}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${lc}`]:{bottom:"-15px"},[`& .${rc}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${ac}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),Qg=it(wx,{variants:{customToken:{true:{"&:hover":{cursor:"unset"}}}}}),uc=it("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),dc=it(zg,{}),Hg=it("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${cc}`]:{$$color:"$colors$neutral600",[`.${nc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),gr=it("div",{display:"flex",alignItems:"end",flexDirection:"column"}),fV=it("div",{display:"flex",alignItems:"center"}),Gg=it("div",{position:"relative",[`& ${Tx}`]:{borderRadius:"$xm",overflow:"hidden"}}),Vg=it("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),Kg=it(zg,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),jg=it("a",{"& svg:hover":{color:"$colors$info"}}),Xg=it("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":{[`.${nc} &`]:{color:"$foreground"}}}});function Zg(t){return At.createElement(pa,null,Array.from(Array(t.size),e=>At.createElement(vx,{key:e,hasDivider:!0,start:At.createElement(hr,{variant:"circular",width:35,height:35}),end:At.createElement(gr,null,At.createElement(hr,{variant:"text",size:"large",width:70}),At.createElement(Yg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:50})),title:At.createElement("div",null,At.createElement(hr,{variant:"text",size:"large",width:90}),At.createElement(Yg,{size:4}),At.createElement(hr,{variant:"text",size:"medium",width:90}))})))}i(Zg,"LoadingTokenList");var Px=20,_x=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:a,customCssForTagTitle:s}=t,c=e.length;return _.createElement("div",{className:ic()},o?_.createElement("div",{className:rc()},o):_.createElement(pc,{className:ac()},_.createElement(yr,{variant:"title",size:"xmedium"},r.symbol),_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(uc,{css:a},_.createElement(dc,{variant:"body",size:"xsmall",css:s},r.blockchain))),!!e&&_.createElement("div",{className:`${sc()} ${!o&&lc()}`},c>10?`${e.slice(0,5)}...${e.slice(c-6,c)}`:e," ",_.createElement(Rt,{size:4,direction:"horizontal"}),_.createElement(jg,{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},_.createElement(Ex,{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=k().fetchStatus,u=k().blockchains(),{getBalanceFor:m,fetchingWallets:f}=k(),{isTokenPinned:h}=k(),{setFromToken:g,setToToken:d}=U(),{t:S}=Mx(),y=Ke(),[C,T]=Lx(null),w=i(()=>{c==="source"?g({token:C,meta:{blockchains:u}}):d({token:C,meta:{blockchains:u}})},"updateToken"),x=i(()=>{w(),y()},"handleImportToken"),A=i(v=>{if(v.customToken){let{customToken:B,...P}=v;return _.createElement(bx,{variant:"contained",type:"primary",size:"small",className:"widget-token-list-item-import-btn",onClick:i(q=>{q.stopPropagation(),T({...P,warning:!0})},"handleClick")},_.createElement(yr,{variant:"body",size:"xsmall",color:"background"},S("import")))}let b=ei(m(v));return s?s(v):f?_.createElement(gr,null,_.createElement(Oo,{variant:"text",size:"large",width:70}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:50})):b&&_.createElement(Hg,null,_.createElement(Kg,{variant:"title",size:"small"},b.amount),_.createElement("div",null),b.usdValue&&_.createElement(yr,{variant:"body",className:cc(),size:"xsmall"},`$${b.usdValue}`))},"endRenderer"),I=i(()=>_.createElement(Wx,{itemContent:v=>{let b=e[v];if(b==="skeleton")return _.createElement(Ax,{hasDivider:!0,start:_.createElement(Oo,{variant:"circular",width:35,height:35}),end:_.createElement(gr,null,_.createElement(Oo,{variant:"text",size:"large",width:70}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:50})),title:_.createElement("div",null,_.createElement(Oo,{variant:"text",size:"large",width:90}),_.createElement(Rt,{size:4}),_.createElement(Oo,{variant:"text",size:"medium",width:90}))});let B=u.find(M=>M.name===b?.blockchain);if(!B||!b)return null;let P=b.address,F=nl(B.color,"main"),q={$$color:F.main150,[`.${Jg} &`]:{$$color:F.main750},backgroundColor:"$$color"},Z={$$color:F.main750,[`.${Jg} &`]:{$$color:F.main150},color:"$$color"},V=i(()=>{typeof b!="string"&&!b.customToken&&n?.(b)},"handleClick");return _.createElement(Xg,null,_.createElement(Qg,{"tab-index":v,key:`${b.symbol}${P}`,id:`${b.symbol}${P}`,className:"widget-token-list-item-btn",hasDivider:!0,customToken:b?.customToken,onClick:V,start:_.createElement(Gg,null,_.createElement(Ix,{src:b.image===""?Hr:b.image,size:30}),t.type!=="custom-token"&&b&&h(b,t.type)&&_.createElement(Vg,null,_.createElement(Bx,{size:12,color:"gray"}))),title:B.type==="COSMOS"||b.name||!b.name&&!P?_.createElement(pc,null,_.createElement(yr,{variant:"title",size:"xmedium"},b.symbol),_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(uc,{css:q},_.createElement(dc,{variant:"body",size:"xsmall",css:Z},b.blockchain)),l&&b.warning&&_.createElement(_.Fragment,null,_.createElement(Rt,{direction:"horizontal",size:4}),_.createElement(xx,{container:N()}))):void 0,description:typeof b!="string"&&B.info&&P&&B.type!=="COSMOS"?_x({address:P,token:b,customCssForTag:q,customCssForTagTitle:Z,name:b.name,url:B.info.addressUrl.split("{wallet}").join(P)}):b.name||void 0,end:A(b)}))},totalCount:e.length,key:`${r}-${o}`}),"renderList"),E=C?vo(C?.blockchain,u):null;return _.createElement(_.Fragment,null,a&&_.createElement(_.Fragment,null,_.createElement(yr,{variant:"label",size:"large"},mc.t("Select Token")),_.createElement(Rt,{size:4})),_.createElement(qg,null,_.createElement(Rt,{size:4}),p==="loading"&&_.createElement(Zg,{size:Px}),p==="success"&&(e.length?_.createElement(_.Fragment,null,_.createElement(Jn,{token:C,address:C?.address??"",blockchain:E??void 0,onImport:x,onExitErrorModal:()=>T(null),onExitImportModal:()=>T(null)}),_.createElement(pa,{as:"ul"},I())):!!o&&_.createElement(Nx,{title:mc.t("No results found"),description:mc.t("Try using different keywords")}))))}i(Sr,"TokenList");var Qx=hc("div",{display:"flex",justifyContent:"space-between",flexDirection:"column",flex:1}),Hx=hc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"0.75"}),Gx=hc(Ox,{"&:hover":{"& svg":{color:"$secondary550"}}});function Rg(){let[t,e]=gc(""),{deleteCustomToken:o}=k(),n=k().customTokens(),{fromToken:r,toToken:a,setFromToken:s,setToToken:c}=U(),{mode:l}=lo({}),p=qx(),[u,m]=gc(!1),[f,h]=gc(),g=i(C=>{let T=C.target.value;e(T)},"handleSearch"),d=l==="dark",S=n.filter(C=>st(C.symbol,t)||st(C.address||"",t)||st(C.name||"",t)),y=i(()=>{if(f){let C=a?ht(a):null,T=r?ht(r):null,w=ht(f);C===w?c({token:null}):T===w&&s({token:null}),o(f)}m(!1)},"handleDeleteCustomToken");return fe.createElement(re,{header:{title:eo.t("Custom Tokens")}},fe.createElement(ie,null,fe.createElement(Qx,null,n.length?fe.createElement(fe.Fragment,null,fe.createElement(It,{id:"widget-custom-tokens-search-token-input",value:t,setValue:e,fullWidth:!0,color:"light",variant:"contained",placeholder:eo.t("Search Token"),onChange:g}),fe.createElement(Cr,{size:16}),fe.createElement(Sr,{list:S,type:"custom-token",searchedFor:t,showTitle:!1,showWarning:!1,action:C=>fe.createElement(Gx,{id:"widget-custom-token-delete-icon-btn",variant:"ghost",onClick:()=>{m(!0),h(C)}},fe.createElement(Fx,{size:12,color:"gray"}))})):fe.createElement(Hx,null,fe.createElement(zx,{icon:d?fe.createElement(Dx,{size:200}):fe.createElement($x,{size:200}),title:eo.t("No custom tokens"),description:eo.t("press the button to add your custom token")})),fe.createElement(Cr,{size:20}),fe.createElement(fc,{id:"widget-custom-token-add-btn",type:"primary",variant:"contained",size:"large",onClick:()=>p(O.addCustomTokens)},eo.t("Add Custom Token"))),fe.createElement(J,{open:u,id:"widget-custom-tokens-delete-modal",dismissible:!0,onClose:()=>m(!1),container:N()},fe.createElement(Ux,{title:eo.t("Delete Custom Token"),type:"error",description:eo.t("Are you sure you want to Delete this Token?")},fe.createElement(Cr,{size:40}),fe.createElement(Cr,{size:10}),fe.createElement(fc,{fullWidth:!0,id:"widget-custom-token-delete-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},eo.t("Yes, Delete it")),fe.createElement(Cr,{size:12}),fe.createElement(fc,{id:"widget-custom-token-delete-modal-no-btn",fullWidth:!0,variant:"outlined",type:"primary",size:"large",onClick:()=>m(!1)},eo.t("No, Continue"))))))}i(Rg,"CustomTokensPage");import{i18n as Re}from"@lingui/core";import{useManager as uE}from"@rango-dev/queue-manager-react";import{Button as vc,darkTheme as dE,Divider as zo,MessageBox as mE,NotFound as fE,styled as bc,Typography as ma}from"@rango-dev/ui";import{TransactionStatus as wr}from"rango-types";import ae,{useMemo as Sh,useState as fa}from"react";import{useNavigate as gE}from"react-router-dom";import{FilterIcon as Jx,Popover as Rx}from"@rango-dev/ui";import Uo from"react";import{css as Vx,darkTheme as ua,IconButton as Kx,styled as kr}from"@rango-dev/ui";var yc=kr("div",{position:"relative","&::before":{position:"absolute",right:"1px",top:"-1px",width:"$8",height:"$8",borderRadius:"100%",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},padding:"$2"},variants:{isSelect:{true:{"&::before":{content:""}}}}}),eh=kr(Kx,{width:"$36",height:"$36",position:"relative",padding:"0",overflow:"unset",backgroundColor:"$neutral300",[`.${ua} &`]:{backgroundColor:"$neutral400"},"&:hover":{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"},[`& ${yc}::before`]:{backgroundColor:"$secondary100",[`.${ua} &`]:{backgroundColor:"$neutral"}}},variants:{isSelect:{true:{border:"1px solid $secondary"}}}}),th=kr("div",{position:"absolute",width:"$6",height:"$6",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"3px",top:"$0",right:"1px",backgroundColor:"$secondary500"}),oh=kr("div",{padding:"$15",borderRadius:"$sm",width:"248px",backgroundColor:"$background",zIndex:10}),nh=Vx({display:"flex",justifyContent:"space-between",alignItems:"center"}),rh=kr("ul",{margin:0,listStyle:"none",height:"100%",padding:0,".item-start-container":{paddingRight:"0 !important"}});import{i18n as ih}from"@lingui/core";import{Button as jx,Divider as ah,ListItemButton as Xx,Radio as Yx,RadioRoot as Zx,Typography as sh}from"@rango-dev/ui";import dt from"react";function lh(t){let{filterBy:e,onClickItem:o}=t;return dt.createElement(oh,null,dt.createElement("div",{className:nh()},dt.createElement(sh,{size:"small",variant:"body"},ih.t("Status")),dt.createElement(jx,{id:"widget-filter-selector-reset-btn",variant:"ghost",size:"xxsmall",onClick:()=>o("")},ih.t("Reset"))),dt.createElement(ah,{size:10}),dt.createElement(Zx,{value:e},dt.createElement(rh,null,t.list.map((n,r)=>dt.createElement(Xx,{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:dt.createElement(dt.Fragment,null,dt.createElement(ah,{direction:"horizontal",size:4}),dt.createElement(sh,{size:"medium",variant:"body"},n.title)),start:dt.createElement(Yx,{value:n.id}),onClick:o})))))}i(lh,"FilterSelectorContent");function Sc(t){let{onClickItem:e,onOpenChange:o,filterBy:n,list:r,open:a}=t;return Uo.createElement("div",null,Uo.createElement(Rx,{open:a,align:"end",onOpenChange:o,container:N(),content:Uo.createElement(lh,{list:r,filterBy:n,onClickItem:s=>{e(s),o(!1)}})},Uo.createElement(eh,{id:"widget-filter-selector-filter-icon-btn",variant:"default",isSelect:!!n,onClick:()=>o(!t.open)},Uo.createElement(yc,{isSelect:!!n},Uo.createElement(Jx,{size:16,color:"black"}),!!n&&Uo.createElement(th,null)))))}i(Sc,"FilterSelector");import{i18n as oE}from"@lingui/core";import{getCurrentStep as nE}from"@rango-dev/queue-manager-rango-preset";import{Divider as mh,GroupedVirtualizedList as rE,Skeleton as iE,SwapListItem as fh,Typography as aE}from"@rango-dev/ui";import Je,{useCallback as gh,useEffect as sE,useRef as lE,useState as cE}from"react";function ch(t,e){let o=[],n=0;do{let r=t[n];r&&(o.push(Math.min(r,e)),e-=r),n++}while(e>0&&n<=t.length);return o}i(ch,"calculateGroupsSoFar");import{css as eE,darkTheme as tE,styled as Tr}from"@rango-dev/ui";var Cc=eE(),ph=Tr("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$5"}),kc=Tr("div",{width:"100%",display:"flex",flexDirection:"column",backgroundColor:"$background",padding:"$10 $5 0 $5",[`& .${Cc}`]:{$$color:"$colors$neutral600",[`.${tE} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Tc=Tr("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),uh=Tr("div",{gap:"$10",display:"flex",flexDirection:"column"}),dh=Tr("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});var pE=10;function wc(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,[a,s]=cE([]),c=lE(0),{swaps:l,groupCounts:p,groups:u}=n(e),m=gh(ch,[]),f=gh(()=>{let h=e.length-c.current;h&&(c.current+=Math.min(h,pE),s(m(p,c.current)))},[e.length]);if(sE(()=>{r||f()},[r,f]),r){let h=[1,2];return Je.createElement(Je.Fragment,null,[h,h].map((d,S)=>Je.createElement(kc,{key:S},Je.createElement(Tc,null,Je.createElement(iE,{variant:"text",width:60,size:"small"}),Je.createElement(mh,{size:16})),Je.createElement(mh,{size:4}),Je.createElement(uh,null,d.map((C,T)=>Je.createElement(fh,{isLoading:!0,key:T}))))))}return Je.createElement(rE,{endReached:()=>{c.current<e.length&&f()},groupCounts:a,groupContent:h=>Je.createElement(kc,null,Je.createElement(Tc,null,Je.createElement(aE,{variant:"label",size:"medium",className:Cc()},u[h]))),itemContent:(h,g)=>{let d=l[h];if(!d)return null;let S=nE(d),y=d.steps[0],C=d.steps[d.steps.length-1];return!y||!C?null:Je.createElement(ph,{key:d.requestId},Je.createElement(fh,{className:"widget-history-group-list-swap-item-btn",requestId:d.requestId,creationTime:d.creationTime,status:d.status,onClick:o,currentStep:S,tooltipContainer:N(),onlyShowTime:u[g]===oE.t("Today"),swapTokenData:{from:{token:{image:y.fromLogo,displayName:y.fromSymbol},blockchain:{image:y.fromBlockchainLogo||""},amount:D(d.inputAmount,6,6),realAmount:d.inputAmount},to:{token:{image:C.toLogo,displayName:C.toSymbol},blockchain:{image:C.toBlockchainLogo||""},amount:D(C.outputAmount||C.expectedOutputAmountHumanReadable||"",6,6),realAmount:C.outputAmount||C.expectedOutputAmountHumanReadable||""}}}))}})}i(wc,"HistoryGroupedList");import{i18n as da}from"@lingui/core";import hh from"dayjs";var yh=i(t=>{let e=new Map([["today",{title:da.t("Today"),swaps:[]}],["week",{title:da.t("This week"),swaps:[]}],["month",{title:da.t("This month"),swaps:[]}],["year",{title:da.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=hh();t.forEach(l=>{let p=Number(l.creationTime),u=hh(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 m=new Date(p).getFullYear().toString();o(m,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 hE=bc("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),yE=bc("div",{display:"flex",justifyContent:"center",alignItems:"center"}),SE=bc("div",{"._typography":{color:"$neutral700",[`.${dE}&`]:{color:"$neutral900"}}}),CE=[{id:wr.SUCCESS,title:Re.t("Complete")},{id:wr.RUNNING,title:Re.t("Running")},{id:wr.FAILED,title:Re.t("Failed")}],kE=i((t,e)=>t?.length?t.filter(o=>Mt(o.fromBlockchain,e)||Mt(o.toBlockchain,e)||Mt(o.toSymbol,e)||Mt(o.fromSymbol,e)).length:!1,"isStepContainsText");function Ch(){let t=gE(),{manager:e,state:o}=uE(),n=kt(e).map(({swap:T})=>T),[r,a]=fa(""),[s,c]=fa(!1),l=!o.loadedFromPersistor,[p,u]=fa(""),[m,f]=fa(!1),h=i(T=>{let w=T.target.value;a(w)},"handleSearch"),g=Sh(()=>!r&&!p?n:n.filter(T=>{let{inputAmount:w,status:x,steps:A,requestId:I}=T;return(!r||Mt(w,r)||Mt(x,r)||kE(A,r)||Mt(I,r))&&(!p||p===x)}),[n,r,p]),d=!g?.length&&!l,S=i(()=>f(!1),"onCloseModal"),y=i(async()=>{try{await e?.clearQueue(),f(!1)}catch(T){console.log(T)}},"onClear"),C=Sh(()=>!n.some(T=>T.status===wr.SUCCESS||T.status===wr.FAILED),[n]);return ae.createElement(re,{header:{title:Re.t("History"),suffix:ae.createElement(co,null,ae.createElement(vc,{id:"widget-history-clear-btn",disabled:C,variant:"ghost",size:"xsmall",onClick:()=>f(!0)},ae.createElement(ma,{size:"medium",variant:"label",color:"error"},Re.t("Clear"))))}},ae.createElement(ie,null,ae.createElement(yE,null,ae.createElement(It,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Re.t("Search Transaction"),id:"widget-history-search-transaction-input",autoFocus:!0,onChange:h,style:{height:36},value:r}),ae.createElement(zo,{size:10,direction:"horizontal"}),ae.createElement(Sc,{filterBy:p,open:s,onOpenChange:T=>c(T),onClickItem:T=>u(T),list:CE})),ae.createElement(zo,{size:"16"}),ae.createElement(hE,null,d&&ae.createElement(dh,null,ae.createElement(zo,{size:32}),ae.createElement(fE,{title:r?Re.t("No results found"):Re.t("No transactions"),titleColor:r?void 0:"$info",hasIcon:!!r,description:r?Re.t("Try using different keywords"):Re.t("Your transaction history is stored locally and will appear here after you start a swap")})),!d&&ae.createElement(wc,{list:g,onSwapClick:t,groupBy:yh,isLoading:l}))),ae.createElement(J,{open:m,onClose:S,id:"widget-history-clear-modal",container:N()},ae.createElement(zo,{size:20}),ae.createElement(mE,{type:"warning",title:Re.t("Clear Transaction History"),description:ae.createElement(SE,null,ae.createElement(ma,{variant:"body",size:"medium"},Re.t("Proceeding will remove all successful and failed transactions from the widget. Do you want to continue?")),ae.createElement(zo,{size:"24"}),ae.createElement(ma,{variant:"body",size:"small"},Re.t("Note: This does not erase your transaction history on the chain; it only removes them here.")))}),ae.createElement(zo,{size:30}),ae.createElement(vc,{id:"widget-history-clear-modal-yes-btn",variant:"contained",type:"primary",size:"large",onClick:y},Re.t("Yes, Clear the history")),ae.createElement(zo,{size:10}),ae.createElement(vc,{id:"widget-history-clear-modal-no-btn",variant:"outlined",type:"primary",size:"large",onClick:S},ae.createElement(ma,{variant:"title",size:"medium",color:"primary"},Re.t("No, Cancel")))))}i(Ch,"HistoryPage");import{i18n as oI}from"@lingui/core";import{Button as nI,Divider as Fc,styled as rI,WarningIcon as iI}from"@rango-dev/ui";import aI from"bignumber.js";import he,{useEffect as Xh,useState as Yh}from"react";import{useNavigate as sI}from"react-router-dom";import{i18n as Th}from"@lingui/core";import{Alert as wE,Divider as xc,NoRouteIcon as vE,Typography as bE}from"@rango-dev/ui";import qo from"react";import{styled as TE}from"@rango-dev/ui";var kh=TE("div",{display:"flex",flexDirection:"column",alignItems:"center"});function Ec(){let{fromToken:t,toToken:e}=U();return!!t&&!!e&&qt(t,e)?qo.createElement(kh,null,qo.createElement(xc,{size:10}),qo.createElement(vE,{size:24,color:"gray"}),qo.createElement(xc,{size:4}),qo.createElement(bE,{variant:"title",size:"small"},Th.t("No Routes Found")),qo.createElement(xc,{size:4}),qo.createElement(wE,{title:Th.t("You cannot use the same token for From and To."),type:"warning",variant:"alarm"})):null}i(Ec,"SameTokensWarning");import{Alert as xE,Button as EE}from"@rango-dev/ui";import vh from"react";import{i18n as ga}from"@lingui/core";function wh(t){let e=null;return t===ri?(e={alertType:"error",action:"reset-slippage",actionButtonTitle:ga.t("Reset"),title:ga.t("Slippage cannot be set lower than 0.01%.")},e):t>Zo?(e={alertType:"warning",action:"change-settings",actionButtonTitle:ga.t("Change"),title:ga.t("Caution, your slippage is high!")},e):null}i(wh,"makeAlerts");function bh(t){let{slippage:e,customSlippage:o,setSlippage:n,setCustomSlippage:r}=k(),{onChangeSettings:a}=t,c=wh(o!==null?o:e),l=i(p=>{p==="reset-slippage"?(n(ni),r(null)):p==="change-settings"&&a()},"onClickActionButton");return c?vh.createElement(xE,{title:c.title,type:c.alertType,variant:"alarm",action:vh.createElement(EE,{id:"widget-slippage-warning-error-change-settings-or-reset-slippage-btn",size:"xxsmall",type:c.alertType,onClick:()=>l(c.action)},c.actionButtonTitle)}):null}i(bh,"SlippageWarningsAndErrors");import{i18n as WE}from"@lingui/core";import{IconButton as LE,ReverseIcon as ME,Skeleton as PE,Tooltip as _E,Typography as vr}from"@rango-dev/ui";import mt from"react";import ha from"bignumber.js";function Eh(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(Eh,"getSlippageColor");function Ih(t){let{toTokenUsdPrice:e,fromTokenUsdPrice:o}=t;if(!e||!o)return{rawValue:"0",displayValue:"0"};let n=new ha(e),r=new ha(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 ha(t).multipliedBy(e);return o.isLessThan(.001)?"$0":`$${o.decimalPlaces(2,ha.ROUND_DOWN).toFormat(2)}`}i(Ah,"formatTokenValueInUsd");import{darkTheme as NE,styled as Ac,Typography as BE}from"@rango-dev/ui";var Nh=Ac("div",{display:"flex",padding:"$4",justifyContent:"space-between",alignItems:"center"}),Bh=Ac("div",{display:"flex",alignItems:"center",gap:"$2","& .rate-text":{color:"$neutral700",[`.${NE} &`]:{color:"$neutral700"}},"& ._icon-button":{transform:"rotate(90deg)",width:"$16",height:"$16"}}),Nc=Ac(BE,{maxWidth:"$32",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function Bc(t){let{slippage:e,customSlippage:o,quoteTokensRate:n,changeQuoteTokensRate:r}=k(),{quoteError:a,quoteWarning:s,fromToken:c,toToken:l,quote:p,loading:u}=t,m=o!==null?o:e,{mode:f}=lo({}),h=en(m),g=f==="dark",d=n==="default",S={quoteError:a,slippageError:h?.type==="error"?h.message:null},y={quoteWarning:s,slippageWarning:h?.type==="warning"?h.message:null},C=p?.swaps[0]?.from||c,T=p?.swaps[p?.swaps.length-1]?.to||l,w=d?C:T,x=d?T:C,A=Number(d?p?.outputAmount:p?.requestAmount),I=Number(d?p?.requestAmount:p?.outputAmount),E=A||w.usdPrice,v=I||x.usdPrice,{rawValue:b,displayValue:B}=Ih({toTokenUsdPrice:v,fromTokenUsdPrice:E});return mt.createElement(Nh,null,mt.createElement(vr,{variant:S||y?"label":"body",size:S||y?"medium":"small",color:Eh({error:S,warning:y,isDarkTheme:g})},WE.t("Slippage:")," ",m,"%"),u?mt.createElement(PE,{height:16,width:104,variant:"rounded"}):E&&v&&mt.createElement(Bh,null,mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},"1"),mt.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},x.symbol),mt.createElement(LE,{id:"widget-home-page-change-rate-button",onClick:r},mt.createElement(ME,{size:14,color:"secondary"})),mt.createElement(_E,{container:N(),side:"top",sideOffset:4,content:mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},b)},mt.createElement(vr,{className:"rate-text",variant:"body",size:"small"},B)),mt.createElement(Nc,{className:"rate-text",variant:"body",size:"small"},w.symbol),w.usdPrice&&mt.createElement(vr,{color:"neutral600",variant:"body",size:"small"},"~",Ah(Number(b),w.usdPrice))))}i(Bc,"SwapMetrics");import{i18n as zE}from"@lingui/core";import{Header as qE}from"@rango-dev/ui";import ho,{useEffect as QE,useState as HE}from"react";import{i18n as $E}from"@lingui/core";import{Divider as Lc,FullExpandedQuote as FE,Typography as OE}from"@rango-dev/ui";import Te from"react";import{styled as Wc}from"@rango-dev/ui";var Wh=Wc("div",{display:"flex",justifyContent:"center",flexDirection:"column",height:"100%"}),Lh=Wc("div",{display:"flex",justifyContent:"space-between",alignItems:"center"}),Mh=Wc("div",{width:"146px"});import{i18n as br}from"@lingui/core";import{Select as DE}from"@rango-dev/ui";import Ph from"react";function ya(t){let{updateQuotePartialState:e,sortStrategy:o}=U(),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 Ph.createElement(Mh,null,Ph.createElement(DE,{id:"widget-quotes-strategy-select",container:t.container,options:n,value:o,handleItemClick:r=>{e("sortStrategy",r.value)},variant:"filled"}))}i(ya,"SelectStrategy");var _h=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:m,toToken:f,sortStrategy:h,error:g}=U(),{slippage:d,customSlippage:S}=k(),{findToken:y}=k(),C=c||N(),T=!!p&&p.results.length,w=S??d,x=i(E=>{if(!m||!f||!p)return null;let v={requestAmount:p.requestAmount,validationStatus:null,...E};return pn({currentQuote:v,userSlippage:w,findToken:y})},"getQuoteWarning"),A=g?.type===0||g?.type===1,I=p?.results?vi(h,p?.results):[];return Te.createElement(Te.Fragment,null,a&&Te.createElement(Te.Fragment,null,Te.createElement(Lh,null,Te.createElement(OE,{size:"xmedium",variant:"title"},$E.t("Sort by")),Te.createElement(ya,{container:C})),Te.createElement(Lc,{size:"10"})),e&&Array.from({length:_h},(E,v)=>Te.createElement(Te.Fragment,{key:v},s?Te.createElement(FE,{loading:!0}):Te.createElement(mr,{tagHidden:!1,type:"list-item",expanded:!1}),v!==_h-1&&Te.createElement(Lc,{size:16}))),!e&&Te.createElement(Te.Fragment,null,T?I.map((E,v)=>{let b=x(E),B=Jl(E.swaps),P=I.length-1===v;return Te.createElement(Te.Fragment,{key:E.requestId},Te.createElement(Fo,{id:"widget-quotes-quote-info-container",showModalFee:r,container:C,selected:l?.requestId===E.requestId,tagHidden:!1,quote:{...E,requestAmount:p.requestAmount,validationStatus:null},loading:e,error:B?.options||null,warning:b,fullExpandedMode:s,onClick:F=>{B||u("warning",b),u("error",B?.options||null),o(F)},type:"list-item"}),!P&&Te.createElement(Lc,{size:16}))}):A&&Te.createElement(Wh,null,Te.createElement(rr,{size:s?"large":"small",error:g,fetch:n}))))}i(xr,"Quotes");import{darkTheme as UE,styled as Dh}from"@rango-dev/ui";var $h=Dh("div",{transition:"width 0.2s, opacity 0.2s, margin-left 0.2s",height:"700px",width:"390px",position:"relative",opacity:1,marginLeft:"$16",backgroundColor:"$neutral100",[`.${UE} &`]:{backgroundColor:"$neutral300"},variants:{expandMode:{default:{width:"390px"},full:{width:"719px"}}},"&.is-hidden":{width:0,height:0,opacity:0,marginLeft:0}}),Fh=Dh("div",{position:"relative",overflow:"hidden",padding:"$20",flexGrow:1,display:"flex",flexDirection:"column",overflowY:"auto",borderRadius:"$primary",backgroundColor:"$background"});var GE=100;function Mc(t){let{fetch:e,loading:o,onClickOnQuote:n,onClickRefresh:r,isVisible:a}=t,[s,c]=HE(!1),l=s?"":"is-hidden",{config:p}=k(),u=p?.variant==="full-expanded",m=xo();return QE(()=>{let f=null;return a?f=setTimeout(()=>{c(!0)},GE):(c(!1),f&&clearTimeout(f)),()=>{f&&clearTimeout(f)}},[a]),ho.createElement($h,{expandMode:p?.variant==="full-expanded"?"full":"default",className:`${l} ${Di()} widget-expanded-quotes-container`,id:tt.EXPANDED_BOX_ID},ho.createElement(qE,{title:zE.t("Routes"),suffix:ho.createElement(ho.Fragment,null,ho.createElement(ya,{container:m}),ho.createElement(_o,{container:m,onClickRefresh:r,hidden:["history","notifications","settings"]}))}),ho.createElement(Fh,null,ho.createElement(xr,{showModalFee:!0,fetch:e,hasSort:!1,loading:o,container:xo(),onClickOnQuote:n,fullExpandedMode:u})))}i(Mc,"ExpandedQuotes");import{i18n as Gh}from"@lingui/core";import{SwapInput as Vh}from"@rango-dev/ui";import XE from"bignumber.js";import Er from"react";import{ReverseIcon as jE}from"@rango-dev/ui";import _c from"react";import{keyframes as VE,styled as Oh}from"@rango-dev/ui";var Pc=450,KE=VE({"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)"}}),Uh=Oh("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),zh=Oh("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&.rotate":{"& svg":{animation:`${KE} ${Pc}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 Dc(){let t=U.use.switchFromAndTo();return _c.createElement(Uh,null,_c.createElement(zh,{id:"widget-switch-from-and-to-btn",onClick:e=>{let o=e.currentTarget;o.classList.add("rotate"),setTimeout(()=>{o.classList.remove("rotate")},Pc),t()}},_c.createElement(jE,{size:12})))}i(Dc,"SwitchFromAndToButton");import{styled as qh}from"@rango-dev/ui";var Qh=qh("div",{display:"flex",flexDirection:"column",gap:"$5",alignSelf:"stretch"}),Hh=qh("div",{position:"relative"});function $c(t){let{fetchingQuote:e,fetchMetaStatus:o,onClickToken:n,isExpandable:r}=t,{fromToken:a,fromBlockchain:s,toToken:c,toBlockchain:l,setInputAmount:p,sanitizeInputAmount:u,inputAmount:m,inputUsdValue:f,outputAmount:h,outputUsdValue:g,selectedQuote:d}=U(),{connectedWallets:S,getBalanceFor:y}=k(),C=a?y(a):null,T=ei(C)?.amount??"0",w=C?new XE(C.amount).shiftedBy(-C.decimals):le,x=!!s&&yu(S,s.name),A=!Os(d,m,f),I=!Os(d,m,g),E=!f||!g||!g.gt(0)?null:Vt(f.toString(),g.toString());return Er.createElement(Qh,null,Er.createElement(Hh,null,Er.createElement(Vh,{label:Gh.t("From"),id:"widget-swap-from",mode:"From",onInputChange:p,onInputBlur:u,balance:T,chain:{displayName:s?.displayName||"",image:s?.logo},token:{displayName:a?.symbol||"",image:a?.image,securityWarning:!!a?.warning},onClickToken:()=>n("from"),price:{value:m,usdValue:A?void 0:D(f,4,4),realUsdValue:A?void 0:f?.toString(),error:A?oe().unknownPriceError.impactTitle:void 0},disabled:o==="failed",loading:o==="loading",loadingBalance:x,tooltipContainer:N(),onSelectMaxBalance:()=>{let v=D(w,C?.decimals),b=C?.amount?v.split(",").join(""):"";p(b)},anyWalletConnected:S.length>0}),Er.createElement(Dc,null)),Er.createElement(Vh,{sharpBottomStyle:!r&&(!!d||e),label:Gh.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:D(Vt(f,g),2,2),warningLevel:Kt(E??0),price:{value:D(h,6,6),usdValue:I?void 0:D(g,4,4),realValue:h?.toString(),realUsdValue:I?void 0:g?.toString(),error:I?oe().unknownPriceError.impactTitle:void 0},onClickToken:()=>n("to"),disabled:o==="failed",loading:o==="loading",tooltipContainer:N()}))}i($c,"Inputs");import{warn as YE}from"@rango-dev/logging-core";import{useCallback as ZE,useEffect as JE,useRef as RE,useState as eI}from"react";function Kh(){let{fetch:t,loading:e,cancelFetch:o}=aa({request:async(n,r)=>await ct().getAllRoutes(n,r)});return{fetch:t,loading:e,cancelFetch:o}}i(Kh,"useFetchAllQuotes");var tI=600;function Sa({refetchQuote:t}){let{fetch:e,cancelFetch:o}=Kh(),{excludeLiquiditySources:n,routing:r}=k().config,{connectedWallets:a}=k(),c=a.some(se=>se.isContractWallet),{fromToken:l,toToken:p,inputAmount:u,inputUsdValue:m,selectedQuote:f,sortStrategy:h,resetQuote:g,error:d,warning:S,setSelectedQuote:y,updateQuotePartialState:C}=U(),{slippage:T,customSlippage:w,affiliatePercent:x,affiliateRef:A,affiliateWallets:I,fetchStatus:E}=k(),v=k().getLiquiditySources(),b=k().getDisabledLiquiditySources(),B=k().excludeLiquiditySources(),{findToken:P}=k(),[F,q]=eI(!0),Z=RE(u),V=w??T,ee=!l||!p||qt(l,p)||!Pn(u),R=i(se=>{q(se)},"resetState"),X=i(se=>{let{fromToken:de,toToken:Oe,inputAmount:wt,liquiditySources:ve,excludeLiquiditySources:L,disabledLiquiditySources:W,slippage:H,affiliateRef:j,affiliatePercent:K,affiliateWallets:me}=se;if(F||R(!0),!ee&&de&&Oe){g();let Qe=Qd({fromToken:de,toToken:Oe,inputAmount:wt,liquiditySources:ve,excludeLiquiditySources:L,disabledLiquiditySources:W,wallets:a,slippage:H,affiliateRef:j,affiliatePercent:K,affiliateWallets:me,contractCall:c});Ro("experimental",r)&&(Qe.experimental=!0),Ro("avoidNativeFee",r)&&(Qe.avoidNativeFee=!0),Ro("enableCentralizedSwappers",r)&&(Qe.enableCentralizedSwappers=!0),r?.maxLength&&(Qe.maxLength=r.maxLength),e(Qe).then(He=>{let be=vi(h,He.results),Wt=Wd(f,be,He.requestAmount);q(!1),C("quotes",He),y(Wt),sa({diagnosisMessages:He.diagnosisMessages,requestId:Wt?.requestId||"",swaps:Wt?.swaps});let Va=Wt&&pn({currentQuote:Wt,userSlippage:V,findToken:P});C("warning",Va)}).catch(He=>{let be=la(He);(be.type===0||be.type===1)&&g(),be.type!==2&&(C("error",be),q(!1),YE(new Error("quote error"),{tags:{...be,type:Xe[be.type],requestBody:Qe}}))})}},"fetch"),we=ZE(Kr(se=>{X(se)},tI),[ee]);return JE(()=>{if(!t){q(!1);return}if(E!=="success")return;if(ee){q(!1),(f||d||S)&&g();return}if(!Pn(u)&&m?.eq(0)){R(!1),o();return}g(),R(!0);let se=X;return Z.current&&Z.current!=u&&(se=we),Z.current=u,se({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),o},[E,u,l?.symbol,l?.address,l?.blockchain,p?.symbol,p?.address,p?.blockchain,ee,v?.length,n,b.length,V,A,x,c,JSON.stringify(I)]),{fetch:()=>X({inputAmount:u,fromToken:l,toToken:p,liquiditySources:v,excludeLiquiditySources:B,disabledLiquiditySources:b,slippage:V,affiliateRef:A,affiliatePercent:x,affiliateWallets:I,contractCall:c}),loading:F}}i(Sa,"useSwapInput");function jh(t,e){let o=!1,n={preventDefault(){o=!0},...t.payload===void 0&&{payload:t.payload}};Ce.emit("uiEvent",{type:t.type,payload:n}),o||e()}i(jh,"emitPreventableEvent");var lI=rI("div",{display:"flex",alignItems:"flex-start",maxHeight:700,"& .footer__alert":{paddingTop:"0 !important"}}),cI=300;function Zh(){let t=sI(),{fromToken:e,toToken:o,inputAmount:n,selectedQuote:r,refetchQuote:a,error:s,warning:c,quotes:l,setSelectedQuote:p,resetQuoteWallets:u,setQuoteWarningsConfirmed:m,updateQuotePartialState:f}=U(),[h,g]=Yh(!1),{isLargeScreen:d,isExtraLargeScreen:S}=fn(),{fetch:y,loading:C}=Sa({refetchQuote:a}),{config:T,fetchStatus:w,connectedWallets:x,customSlippage:A,slippage:I,setSlippage:E,setCustomSlippage:v}=k(),{isActiveTab:b}=te(),[B,P]=Yh(!1),q=en(A!==null?A:I),V=Od({fetchMetaStatus:w,fetchingQuote:C,inputAmount:n,quote:r,anyWalletConnected:x.length>0,error:s,warning:c,needsToWarnEthOnPath:!1}),M=bu(d,S,T?.variant),ee=!!n&&!!e&&!!o&&new aI(n).gt(0)&&!Yd(e,o),R=ee&&w==="success"&&C,X=q?.quoteValidation||c,de=(!M||M&&l?.results.length)&&(X||s),Oe=!!e&&!!o,wt=Oe&&!!q,ve=(r||s)&&!B?y:void 0,L=i(j=>{M&&h?(g(!1),setTimeout(()=>{t(j)},cI)):t(j)},"onHandleNavigation"),W=i(j=>{r?.requestId!==j.requestId&&(P(!1),p(j))},"onClickOnQuote"),H=i(j=>{if(j){if(oi.includes(j)){E(j),v(null);return}v(j)}},"onChangeSlippage");return Xh(()=>{u(),f("refetchQuote",!0)},[]),Xh(()=>{g(ee)},[ee]),he.createElement(lI,null,he.createElement(re,{height:"auto",footer:he.createElement(nI,{id:`widget-swap-${V.action}-btn`,type:"primary",size:"large",disabled:V.disabled||!b,prefix:V.action==="confirm-warning"&&he.createElement(iI,null),fullWidth:!0,onClick:()=>{V.action==="connect-wallet"?jh({type:"clickConnectWallet"},()=>L(O.wallets)):V.action==="confirm-warning"?P(!0):L(O.confirmSwap)}},V.title),header:{onWallet:()=>{L(O.wallets)},hasBackButton:!1,title:T.title||oI.t("Swap"),suffix:he.createElement(_o,{hidden:M?["refresh"]:void 0,onClickRefresh:ve,onClickHistory:()=>L(O.swaps),onClickSettings:()=>{L(O.settings)}})}},he.createElement(ie,null,he.createElement($c,{fetchingQuote:R,fetchMetaStatus:w,isExpandable:M,onClickToken:j=>{L(j==="from"?O.fromSwap:O.toSwap)}}),he.createElement(Fc,{size:"2"}),M?null:he.createElement(Fo,{quote:r,loading:R,error:s,id:"widget-home-expandable-quote-container",tagHidden:!1,warning:X,type:"basic",onClickAllRoutes:l&&l.results.length>1?()=>{f("refetchQuote",!1),L(O.routes)}:void 0}),Oe&&he.createElement(he.Fragment,null,he.createElement(Fc,{size:8}),he.createElement(Bc,{quoteError:s,quoteWarning:X,fromToken:e,toToken:o,quote:r,loading:R})),de?he.createElement(he.Fragment,null,he.createElement(sr,{warning:X,error:s,skipAlerts:!!q,couldChangeSettings:!0,refetchQuote:y,showWarningModal:B,confirmationDisabled:!b,onOpenWarningModal:()=>P(!0),onCloseWarningModal:()=>P(!1),onChangeSlippage:H,onConfirmWarningModal:()=>{P(!1),m(!0),L(O.confirmSwap)},onChangeSettings:()=>L(O.settings)})):null,wt&&he.createElement(he.Fragment,null,he.createElement(Fc,{size:"10"}),he.createElement(bh,{onChangeSettings:()=>L(O.settings)})),he.createElement(Ec,null))),M?he.createElement(Mc,{loading:R,onClickOnQuote:W,fetch:y,onClickRefresh:ve,isVisible:h}):null)}i(Zh,"Home");import{i18n as Jh}from"@lingui/core";import{Alert as pI,Divider as uI,List as dI,ListItemButton as mI,Radio as fI,RadioRoot as gI,Typography as hI}from"@rango-dev/ui";import Ft from"react";function yo(){let{setLanguage:t,language:e,config:o}=k(),n=Wu,r=o?.language||tn;return{activeLanguage:e||r,languages:n,defaultLanguage:r,changeLanguage:a=>t(a||tn),resetLanguage:()=>t(null)}}i(yo,"useLanguage");function Rh(){let{activeLanguage:t,changeLanguage:e,languages:o}=yo(),n=Ke(),r=o.map(a=>{let{local:s,label:c,SVGFlag:l}=a;return{id:`widget-setting-languages-${s}-item-btn`,value:s,title:Ft.createElement(hI,{variant:"title",size:"xmedium"},c),onClick:()=>{e(a.local),n()},end:Ft.createElement(fI,{value:s}),start:Ft.createElement(l,null)}});return Ft.createElement(re,{header:{title:Jh.t("Language")}},Ft.createElement(ie,null,Ft.createElement(pI,{type:"warning",id:"widget-language-machine-translation-alarm-alert",variant:"alarm",title:"Warning: We are using machine translation, so the translations may be inaccurate."}),Ft.createElement(uI,{size:"8"}),Ft.createElement(gI,{value:t},Ft.createElement(dI,{type:Ft.createElement(mI,{title:Jh.t("language"),className:"widget-language-list-item-btn",id:"_",onClick:()=>console.log()}),items:r}))))}i(Rh,"LanguagePage");import{i18n as to}from"@lingui/core";import{Button as TI,Checkbox as wI,Image as vI,ListItemButton as bI,NotFound as xI,Typography as EI}from"@rango-dev/ui";import et,{useState as II}from"react";import{Checkbox as CI,Skeleton as ty}from"@rango-dev/ui";import Ar from"react";import{styled as Oc}from"@rango-dev/ui";var Ir=Oc("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto",variants:{disabled:{true:{pointerEvents:"none"}}}}),Uc=Oc("div",{width:80,display:"flex",justifyContent:"flex-end"}),zc=Oc("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});import{ListItem as yI,styled as SI}from"@rango-dev/ui";var ey=SI(yI,{height:61});var kI=30;function qc(){return Ar.createElement(Ir,null,Array.from(Array(kI),(t,e)=>Ar.createElement(ey,{hasDivider:!0,key:e,start:Ar.createElement(ty,{variant:"circular",width:35,height:35}),title:Ar.createElement(ty,{variant:"text",size:"large",width:90}),end:Ar.createElement(CI,{checked:!1})})))}i(qc,"LoadingLiquiditySourceList");function Qc({sourceType:t}){let e=k().fetchStatus,o=k().swappers(),n=k().getDisabledLiquiditySources(),[r,a]=II(""),s=k().toggleLiquiditySource,c=k().isInCampaignMode(),l=ii(o,n),p={Exchanges:to.t("Exchanges"),Bridges:to.t("Bridges")},u=[];t==="Exchanges"&&u.push("DEX"),t==="Bridges"&&u.push("BRIDGE","AGGREGATOR","OFF_CHAIN");let m=l.filter(y=>u.includes(y.type)),f=m.length===m.filter(y=>y.selected).length,h=i(()=>{m.forEach(y=>{f?s(y.groupTitle):y.selected||s(y.groupTitle)})},"toggleAllSources"),g=m.map(y=>{let{selected:C,groupTitle:T,logo:w,id:x,...A}=y;return{id:`widget-setting-liquidity-source-${iu(x.toLowerCase())}-item-btn`,start:et.createElement(vI,{src:w,size:22,type:"circular"}),onClick:()=>{c||s(T)},end:et.createElement(wI,{checked:C,disabled:c}),title:et.createElement(EI,{variant:"title",size:"xmedium"},to.t(T)),selected:C,groupTitle:T,logo:w,...A}}),d=i(y=>{let C=y.target.value;a(C)},"handleSearch"),S=g;return r&&(S=g.filter(y=>Mt(y.groupTitle,r))),et.createElement(re,{header:{title:to.t(t),suffix:et.createElement(Uc,null,et.createElement(TI,{id:`widget-liquidity-source-${f?"deselect-all":"select-all"}-btn`,variant:"ghost",size:"xsmall",onClick:h},f?to.t("Deselect all"):to.t("Select all")))}},et.createElement(ie,{view:!0},et.createElement(It,{value:r,setValue:a,id:"widget-liquidity-source-search-input",fullWidth:!0,color:"light",variant:"contained",placeholder:to.t("Search {sourceType}",{sourceType:p[t]}),onChange:d}),e==="loading"&&et.createElement(qc,null),!S.length&&r?et.createElement(zc,null,et.createElement(xI,{title:to.t("No results found"),description:to.t("Try using different keywords")})):e==="success"&&et.createElement(Ir,{disabled:c,className:"widget-liquidity-source-list"},S.map(y=>{let{groupTitle:C,...T}=y;return et.createElement(et.Fragment,{key:y.id},et.createElement(bI,{style:{height:"61px"},...T,selected:!1,className:"widget-liquidity-source-list-item-btn",hasDivider:!0}))}))))}i(Qc,"LiquiditySourcePage");import{i18n as AI}from"@lingui/core";import Ca from"react";import{useNavigate as NI}from"react-router-dom";function oy(){let t=NI(),e=Ke(),{selectedQuote:o,refetchQuote:n,setSelectedQuote:r,updateQuotePartialState:a,error:s}=U(),{fetch:c,loading:l}=Sa({refetchQuote:n}),p=i(f=>{r(f),a("refetchQuote",!1),e()},"onClickOnQuote"),u=`../${O.settings}`,m=`../${O.wallets}`;return Ca.createElement(re,{header:{onWallet:()=>{t(m),a("refetchQuote",!0)},onBack:()=>{a("refetchQuote",!1)},title:AI.t("Routes"),suffix:Ca.createElement(_o,{onClickRefresh:o||s?c:void 0,hidden:["notifications","history"],onClickSettings:()=>{t(u),a("refetchQuote",!0)}})}},Ca.createElement(ie,null,Ca.createElement(xr,{fetch:c,loading:l,onClickOnQuote:p})))}i(oy,"RoutesPage");import{i18n as cy}from"@lingui/core";import{Divider as py,getCategoriesCount as OI,SelectableCategoryList as UI}from"@rango-dev/ui";import oo,{useState as uy}from"react";import{useNavigate as zI}from"react-router-dom";import{i18n as Hc}from"@lingui/core";import{Divider as MI,Image as PI,ListItemButton as _I,NotFound as DI,Typography as ly}from"@rango-dev/ui";import ft,{useEffect as $I,useState as FI}from"react";var ny=i((t,e,o)=>t.filter(n=>jr(n.type,o)).filter(n=>st(n.name,e)||st(n.displayName,e)),"filterBlockchains");import{ImageContainer as BI,styled as ry}from"@rango-dev/ui";var iy=ry("div",{display:"flex",flexDirection:"column",overflow:"hidden",height:"100%",justifyContent:"center"}),ka=ry(Tl,{padding:0,margin:0,listStyle:"none",[`& ${BI}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as WI,Skeleton as ay}from"@rango-dev/ui";import Ta from"react";var LI=20;function sy(){return Ta.createElement(ka,{id:"widget-blockchain-loading-list",as:"ul"},Array.from(Array(LI),t=>Ta.createElement(WI,{key:t,hasDivider:!0,start:Ta.createElement(ay,{variant:"circular",width:35,height:35}),title:Ta.createElement(ay,{variant:"text",size:"large",width:90})})))}i(sy,"LoadingBlockchainList");function Gc(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r,showTitle:a=!0}=t,[s,c]=FI(e),{fetchStatus:l}=k();$I(()=>{c([...ny(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?ft.createElement(DI,{title:Hc.t("No results found"),description:Hc.t("Try using different keywords")}):ft.createElement(ka,{as:"ul",key:`${r}-${o}`,id:"widget-blockchain-list"},s.map(u=>ft.createElement(_I,{key:`${u.name}-${u.chainId}`,className:"widget-blockchain-list-item-btn",hasDivider:!0,onClick:()=>n(u),start:ft.createElement(PI,{src:u.logo,size:30}),title:ft.createElement(ly,{variant:"title",size:"medium"},u.displayName),id:u.name}))),"renderList");return ft.createElement(ft.Fragment,null,a&&ft.createElement(ft.Fragment,null,ft.createElement(ly,{variant:"label",size:"large"},Hc.t("Select Chain")),ft.createElement(MI,{size:4})),ft.createElement(iy,null,l==="loading"&&ft.createElement(sy,null),l==="success"&&p()))}i(Gc,"BlockchainList");function wa(t){let{type:e}=t,o=Ke(),[n,r]=uy(""),[a,s]=uy("ALL"),c=U.use.setToBlockchain(),l=U.use.setFromBlockchain(),{fetchStatus:p}=k(),u=zI(),m=k().blockchains({type:e}),f=OI(m),h=!t.hideCategory&&f!==1;return oo.createElement(re,{header:{title:cy.t("Select Chain")}},oo.createElement(ie,{view:!0},h&&oo.createElement(oo.Fragment,null,oo.createElement(UI,{setCategory:s,category:a,blockchains:m,isLoading:p==="loading"}),oo.createElement(py,{size:24})),oo.createElement(It,{value:n,autoFocus:!0,placeholder:cy.t("Search Chain"),id:"widget-select-blockchain-search-input",color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:g=>r(g.target.value)}),oo.createElement(py,{size:16}),oo.createElement(Gc,{list:m,showTitle:e!=="custom-token",searchedFor:n,blockchainCategory:a,onChange:g=>{e==="custom-token"?u(`..?blockchain=${g.name}`,{replace:!0}):(e==="source"?l(g):c(g),o())}})))}i(wa,"SelectBlockchainPage");import{i18n as xa}from"@lingui/core";import{Divider as Sy,Spinner as oA}from"@rango-dev/ui";import So,{useEffect as nA,useState as rA}from"react";import{useNavigate as iA}from"react-router-dom";import{i18n as jc}from"@lingui/core";import{BlockchainsChip as va,Divider as gy,Image as hy,Skeleton as KI,Tooltip as jI,Typography as Xc}from"@rango-dev/ui";import xe from"react";import{useEffect as HI}from"react";var dy=["ETH","COSMOS","OSMOSIS"];function Vc(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(qI),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(QI(s)),r=n.splice(a)}return{list:n,more:r}}i(Vc,"prepare");function qI(t,e){let o=dy,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(qI,"sortByMostUsedBlockchains");function QI(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(QI,"generateSortByPreferredBlockchainsFor");function my(t,e){return!!e.list.find(o=>o.name===t)}i(my,"isInVisibleList");function Kc(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=k();HI(()=>{if(e?.selected){let a=Vc(t,o,e);my(e.selected,a)||n(e?.selected)}},[e?.selected]);let r=Vc(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Kc,"usePrepareBlockchainList");import{styled as GI}from"@rango-dev/ui";var fy=GI("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var XI=6,YI=12;function Yc(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:a}=t,{showCompactTokenSelector:s}=te(),c=Kc(e,{limit:s?4:10,selected:n?.name}),{fetchStatus:l}=k(),p=U.use.resetToBlockchain(),u=U.use.resetFromBlockchain(),m=c.more.length>0,f=c.more[0],h=c.more.length===1&&f,g=!h&&m;return xe.createElement(xe.Fragment,null,!s&&xe.createElement(xe.Fragment,null,xe.createElement(gy,{size:12}),xe.createElement(Xc,{variant:"label",size:"large"},jc.t("Select Chain"))),xe.createElement(gy,{size:12}),xe.createElement(fy,{id:"widget-blockchains-section-container"},l==="loading"&&Array.from(Array(s?XI:YI),(d,S)=>xe.createElement(KI,{key:S,variant:"rounded",height:50})),l==="success"&&xe.createElement(xe.Fragment,null,xe.createElement(va,{className:"widget-blockchains-section-all-btn",selected:!n,onClick:()=>{o==="from"?u():p()}},xe.createElement(Xc,{variant:"body",size:"xsmall",color:"secondary500"},jc.t("All"))),c.list.map(d=>xe.createElement(jI,{key:d.name,content:d.shortName,side:"bottom",sideOffset:2,container:N()},xe.createElement(va,{className:"widget-blockchains-section-item-btn",key:d.name,selected:!!n&&n.name===d.name,onClick:()=>r(d)},xe.createElement(hy,{src:d.logo,size:30})))),h?xe.createElement(va,{className:"widget-blockchains-section-only-item-btn",key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},xe.createElement(hy,{src:f.logo,size:30})):null,g?xe.createElement(va,{onClick:a,key:"more-blockchains",className:"widget-blockchains-section-more-items-btn"},xe.createElement(Xc,{variant:"body",size:"xsmall",color:"secondary500"},jc._("More +{count}",{count:c.more.length}))):null)))}i(Yc,"BlockchainsSection");import{useCallback as JI,useRef as RI,useState as Zc}from"react";function Jc(){let t=k().blockchains(),e=RI(null),{customTokens:o}=k(),[n,r]=Zc(!1),[a,s]=Zc([]),[c,l]=Zc(null),p=i(async(f,h)=>{l(null),r(!0),s([]);try{let g=await ct().searchCustomTokens({query:f,blockchain:h},{signal:e.current?.signal}),d=new Set(o().map(C=>Ht(C))),S=new Set(t.map(C=>C.name)),y=g.tokens.filter(C=>S.has(C.blockchain)&&!d.has(Ht(C)));s(y),r(!1)}catch(g){l(g instanceof Error?g.message:"something went wrong"),s([]),g?.name!=="CanceledError"&&r(!1)}},"fetch"),u=JI(Kr((f,h)=>{e.current?.signal.aborted||p(f,h)},600),[t.length]);return{fetch:(f,h)=>{e.current=new AbortController,s([]),r(!0),u(f,h)},cancel:i(()=>{e.current?.abort()},"cancel"),loading:n,tokens:a,error:c}}i(Jc,"useSearchCustomTokens");function ba(t,e,o){return o&&t.length===1&&t[0]?.address===e?!1:t.length<20&&e.trim().length>=3}i(ba,"shouldSearchForCustomTokens");function yy(t,e,o,n,r){let a=[...t];return ba(t,o,r)&&(a=n?[...a,"skeleton","skeleton","skeleton"]:[...a,...e.map(s=>({...s,customToken:!0,warning:!0}))]),a}i(yy,"prepareTokensList");function Ea(t){let{type:e}=t,o=iA(),n=Ke(),{fromBlockchain:r,toBlockchain:a,setFromToken:s,setToToken:c,setFromBlockchain:l,setToBlockchain:p}=U(),{getBalanceFor:u}=k(),{fetch:m,loading:f,tokens:h,cancel:g}=Jc(),[d,S]=rA(""),y=e==="source"?r:a,C=y?.name??"",T=k().blockchains({type:e}),w=k().tokens({type:e,blockchain:C,searchFor:d,getBalanceFor:u}),x=yy(w,h,d,f,y?.name),A=i(v=>{e==="source"?l(v):p(v)},"updateBlockchain"),I=i(v=>{e==="source"?s({token:v,meta:{blockchains:T}}):c({token:v,meta:{blockchains:T}})},"updateToken"),E={source:xa.t("Source"),destination:xa.t("Destination")};return nA(()=>(ba(w,d,y?.name)&&m(d,y?.name??void 0),()=>{g()}),[w.length,d,y?.name]),So.createElement(re,{header:{title:xa.t("Swap {type}",{type:E[e]})}},So.createElement(ie,null,So.createElement(Yc,{blockchains:T,type:e=="source"?"from":"to",blockchain:e==="source"?r:a,onMoreClick:()=>o(O.blockchains),onChange:v=>{A(v)}}),So.createElement(Sy,{size:24}),So.createElement(It,{value:d,id:"widget-select-swap-item-search-input",autoFocus:!0,placeholder:xa.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>S(""),onChange:v=>S(v.target.value),suffix:ba(w,d,y?.name)&&f?So.createElement(oA,{size:12,color:"secondary"}):void 0}),So.createElement(Sy,{size:16}),So.createElement(Sr,{list:x,selectedBlockchain:C,searchedFor:d,type:e,onChange:v=>{I(v);let b=T.find(B=>v.blockchain===B.name);b&&A(b),n()}})))}i(Ea,"SelectSwapItemsPage");import{i18n as op}from"@lingui/core";import{Alert as LA,Button as MA,styled as PA}from"@rango-dev/ui";import Qo from"react";import{useInRouterContext as _A,useSearchParams as DA}from"react-router-dom";import{i18n as by}from"@lingui/core";import{Alert as cA,Divider as ep,InfoIcon as pA,SlippageIcon as uA,TextField as dA,Tooltip as mA,Typography as xy}from"@rango-dev/ui";import ze from"react";import{Chip as aA,styled as Nr,TextField as sA}from"@rango-dev/ui";var Cy=Nr("div",{paddingTop:"$5",padding:"$10 $5"}),ky=Nr("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${sA}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px",paddingLeft:"$2"}}),Ty=Nr("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Ia=Nr("div",{maxWidth:"280px",padding:"$10"}),wy=Nr(aA,{width:"61px",flexShrink:0});import{i18n as Rc}from"@lingui/core";import{Typography as lA}from"@rango-dev/ui";import Br from"react";function vy(){return Br.createElement(Ia,null,Br.createElement(lA,{variant:"label",size:"medium",color:"neutral700"},Rc.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage."),Br.createElement("br",null),Br.createElement("br",null),Br.createElement("b",null,Rc.t("Warning")),":\xA0",Rc.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(vy,"SlippageTooltipContent");function tp(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=k(),r=o!==null?en(o):null,a=i(l=>{let p=l.target.value,u=parseFloat(p);if(isNaN(u))return n(null);let m=u;u>Fn&&(m=Fn),n(m)},"onSlippageValueChange"),s=i(l=>{o!==null&&n(null),e(l)},"onClickSlippageChip"),c=i(l=>{let p=l.target,u=p.value;su(u)||(p.value=u.slice(0,-1))},"onInput");return ze.createElement(Cy,null,ze.createElement(Ty,null,ze.createElement(uA,{size:16,color:"gray"}),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(xy,{variant:"title",size:"xmedium"},by.t("Slippage tolerance per swap")),ze.createElement(ep,{direction:"horizontal",size:4}),ze.createElement(mA,{container:N(),side:"top",sideOffset:4,content:ze.createElement(vy,null)},ze.createElement(pA,{color:"gray"}))),ze.createElement(ky,null,oi.map((l,p)=>{let u=`slippage-${p}`;return ze.createElement(wy,{id:`widget-slippage-chip-${l.toString()}%-btn`,key:u,onClick:()=>s(l),selected:o===null&&l===t,label:`${l.toString()}%`})}),ze.createElement(dA,{type:"number",min:"0.01",max:"30",step:"0.01",status:r?.type||(o?"success":"default"),id:"widget-slippage-chip-text-input",onInput:c,fullWidth:!0,variant:"contained",value:o===null?"":o,color:"dark",onChange:a,suffix:o&&ze.createElement(xy,{variant:"body",size:"small"},"%"),placeholder:by.t("Custom")})),r&&ze.createElement(ze.Fragment,null,ze.createElement(ep,{size:10}),ze.createElement(cA,{id:"widget-slippage-alert",variant:"alarm",type:r.type,title:r.message})))}i(tp,"Slippage");import{i18n as Tt}from"@lingui/core";import{AutoThemeIcon as Ey,BridgesIcon as fA,ChevronRightIcon as Aa,DarkModeIcon as Iy,Divider as Wr,ExchangeIcon as gA,InfinityIcon as hA,InfoIcon as yA,LanguageIcon as SA,LightModeIcon as Ay,List as CA,ListItem as kA,ListItemButton as TA,Skeleton as wA,styled as vA,Switch as bA,Tabs as xA,TargetIcon as EA,Tooltip as IA,Typography as at}from"@rango-dev/ui";import $ from"react";import{useNavigate as AA}from"react-router-dom";var NA=vA("div",{width:"202px",height:"$40"}),BA=[{id:"light",icon:$.createElement(Ay,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Light"))},{id:"dark",icon:$.createElement(Iy,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Dark"))},{id:"auto",icon:$.createElement(Ey,{color:"black",size:24}),tooltip:$.createElement(at,{size:"xsmall",variant:"body"},Tt.t("Auto"))}],WA=i(t=>{let e={color:"gray",size:16};switch(t){case"auto":return $.createElement(Ey,{...e});case"dark":return $.createElement(Iy,{...e});default:return $.createElement(Ay,{...e})}},"getThemeIcon");function Ny(){let t=AA(),{theme:e}=k().config,{setTheme:o,theme:n}=k(),{activeLanguage:r,languages:a}=yo(),s=a.find(M=>M.local===r)?.label,c=k().fetchStatus,l=k().swappers(),p=k().getDisabledLiquiditySources(),{config:{features:u}}=k(),m=k().customTokens(),f=ot("theme",u),h=ot("liquiditySource",u),g=ot("language",u),d=ot("customTokens",u),S=k().infiniteApprove,y=k().toggleInfiniteApprove,C=ii(l,p),T=C.filter(M=>["BRIDGE","AGGREGATOR","OFF_CHAIN"].includes(M.type)),w=T.length,x=T.filter(M=>M.selected).length,A=C.filter(M=>M.type==="DEX"),I=A.length,E=A.filter(M=>M.selected).length,v=i((M,ee)=>{switch(c){case"loading":return $.createElement(wA,{variant:"text",size:"medium",width:50});case"failed":return $.createElement(at,{variant:"body",size:"medium",color:"$error500"},Tt.t("Loading failed"));default:return $.createElement(at,{variant:"body",size:"medium"},`${M} / ${ee}`)}},"handleSwapperEndItem"),b={id:"widget-setting-bridge-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Bridges")),end:$.createElement($.Fragment,null,v(x,w),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(O.bridges),start:$.createElement(fA,{color:"gray",size:16})},B={id:"widget-setting-exchange-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Exchanges")),end:$.createElement($.Fragment,null,v(E,I),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(gA,{color:"gray",size:16}),onClick:()=>t(O.exchanges)},P={id:"widget-setting-custom-tokens-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Custom Tokens")),end:$.createElement($.Fragment,null,$.createElement(at,{variant:"body",size:"medium"},`${m.length}`),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),start:$.createElement(EA,{color:"gray",size:16}),onClick:()=>t(O.customTokens)},F={id:"widget-setting-language-item-btn",title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Language")),start:$.createElement(SA,{color:"gray",size:16}),end:$.createElement($.Fragment,null,$.createElement(at,{variant:"body",size:"medium"},s),$.createElement(Wr,{direction:"horizontal",size:8}),$.createElement(Aa,{color:"black"})),onClick:()=>t(O.languages)},q={id:"widget-setting-infinite-approval-item-btn",title:$.createElement($.Fragment,null,$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Infinite approval")),$.createElement(Wr,{direction:"horizontal",size:4}),$.createElement(IA,{side:"top",sideOffset:4,container:N(),content:$.createElement(Ia,null,$.createElement(at,{variant:"label",size:"medium",color:"neutral700"},$.createElement("b",null,Tt.t("Warning")),":\xA0",Tt.t("Enabling the 'Infinite approval' mode grants unrestricted access to underlying smart contracts, allowing them to utilize the approved token amount without limitations.")))},$.createElement(yA,{color:"gray"}))),start:$.createElement(hA,{color:"gray",size:16}),end:$.createElement(bA,{checked:S}),onClick:y},Z={id:"widget-setting-theme-item-btn",type:$.createElement(kA,null),title:$.createElement(at,{variant:"title",size:"xmedium"},Tt.t("Theme")),end:$.createElement(NA,null,$.createElement(xA,{container:N(),items:BA,value:n,className:"widget-setting-theme-item-tabs-container",onChange:M=>o(M.id),type:"primary",borderRadius:"small"})),start:WA(n)},V=h?[]:[b,B];return d||V.push(P),g||V.push(F),V.push(q),!e?.singleTheme&&!f&&V.push(Z),$.createElement(CA,{type:$.createElement(TA,{className:"widget-settings-list-item-btn",hasDivider:!0,id:"_",onClick:()=>console.log()}),items:V})}i(Ny,"SettingsLists");var $A=PA("div",{paddingLeft:"$8"});function By(){let{isInCampaignMode:t,updateCampaignMode:e}=k(),o=t(),[,n]=DA(),r=_A(),a=i(()=>{r&&o&&(n(s=>(s.delete("liquiditySources"),s),{replace:!0}),e("liquiditySources",void 0))},"onClick");return Qo.createElement(re,{header:{title:op.t("Settings")}},Qo.createElement(ie,null,o&&Qo.createElement(LA,{type:"info",variant:"alarm",id:"widget-settings-campaign-mode-alert",title:op.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:Qo.createElement($A,null,Qo.createElement(MA,{id:"widget-setting-exit-campaign-mode-btn",type:"secondary",size:"small",onClick:a},op.t("Reset")))}),Qo.createElement(tp,null),Qo.createElement(Ny,null)))}i(By,"SettingsPage");import{i18n as VN}from"@lingui/core";import{cancelSwap as KN}from"@rango-dev/queue-manager-rango-preset";import{useManager as jN}from"@rango-dev/queue-manager-react";import{Alert as XN}from"@rango-dev/ui";import Sp from"react";import{useParams as YN}from"react-router-dom";import{i18n as Ut}from"@lingui/core";import{getCurrentNamespaceOfOrNull as LN,getCurrentStep as MN,getRelatedWalletOrNull as PN}from"@rango-dev/queue-manager-rango-preset";import{Button as vS,Divider as _N,QuoteCost as DN,StepDetails as $N,Typography as dp}from"@rango-dev/ui";import{useWallets as FN}from"@rango-dev/wallets-react";import bS from"bignumber.js";import{PendingSwapNetworkStatus as Nn}from"rango-types";import Se,{useEffect as mp,useRef as fp,useState as $a}from"react";import{useNavigate as ON}from"react-router-dom";import{i18n as Co}from"@lingui/core";var FA=[Co.t("Sunday"),Co.t("Monday"),Co.t("Tuesday"),Co.t("Wednesday"),Co.t("Thursday"),Co.t("Friday"),Co.t("Saturday")];function Wy(t){let e=new Date(t),o=e.getDate(),n=e.toLocaleString("default",{month:"long"}),r=e.getFullYear();return`${e.getDay()===new Date().getDay()?Co.t("Today"):`${FA[e.getDay()]} ${o} ${n} ${r}`}, ${new Date(t).toLocaleTimeString()}`}i(Wy,"timeSince");function Ly(t){return t.finishTime?Wy(parseInt(t.finishTime)):Wy(parseInt(t.creationTime))}i(Ly,"getSwapDate");import Mr from"react";import{i18n as Na}from"@lingui/core";import{Button as My,Divider as np,MessageBox as OA}from"@rango-dev/ui";import ko from"react";var Py=i(({onCancel:t,onClose:e})=>ko.createElement(ko.Fragment,null,ko.createElement(np,{size:20}),ko.createElement(OA,{type:"error",title:Na.t("Cancel Swap"),description:Na.t("Are you sure you want to cancel this swap?")}),ko.createElement(np,{size:32}),ko.createElement(My,{variant:"contained",id:"widget-swap-details-modal-cancel-swap-yes-btn",type:"primary",size:"large",onClick:t},Na.t("Yes, Cancel it")),ko.createElement(np,{size:12}),ko.createElement(My,{id:"widget-swap-details-modal-cancel-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},Na.t("No, Continue"))),"CancelContent");import{i18n as Ba}from"@lingui/core";import{Button as _y,Divider as rp,MessageBox as UA,Typography as zA}from"@rango-dev/ui";import no from"react";var Dy=i(({onDelete:t,onClose:e})=>no.createElement(no.Fragment,null,no.createElement(rp,{size:20}),no.createElement(UA,{type:"error",title:Ba.t("Delete Transaction"),description:Ba.t("Are you sure you want to delete this swap?")}),no.createElement(rp,{size:32}),no.createElement(_y,{id:"widget-swap-details-modal-delete-swap-yes-btn",variant:"contained",type:"primary",size:"large",onClick:t},Ba.t("Yes, Delete it")),no.createElement(rp,{size:12}),no.createElement(_y,{id:"widget-swap-details-modal-delete-swap-no-btn",variant:"outlined",type:"primary",size:"large",onClick:e},no.createElement(zA,{variant:"title",size:"medium",color:"primary"},Ba.t("No, Cancel")))),"DeleteContent");import{i18n as qA}from"@lingui/core";import{Button as QA,Divider as HA,MessageBox as GA}from"@rango-dev/ui";import Ho from"react";var $y=i(t=>{let{switchNetworkModalState:e,handleSwitchNetwork:o}=t;return Ho.createElement(Ho.Fragment,null,Ho.createElement(GA,{type:e.type,title:e.title,description:e.description}),e.type==="error"&&Ho.createElement(Ho.Fragment,null,Ho.createElement(HA,{size:"30"}),Ho.createElement(QA,{id:"widget-switch-network-try-again",type:"primary",size:"large",onClick:o},qA.t("Try Again"))))},"NetworkStateContent");import{getCurrentNamespaceOfOrNull as lN,getCurrentStep as cN,getRelatedWalletOrNull as pN}from"@rango-dev/queue-manager-rango-preset";import{WalletState as uN}from"@rango-dev/ui";import{useWallets as dN}from"@rango-dev/wallets-react";import Qy from"react";import{i18n as In}from"@lingui/core";import{Alert as Oy,Button as KA,Checkbox as jA,Divider as Ma,Image as XA,MessageBox as YA,Spinner as ZA,WarningIcon as JA}from"@rango-dev/ui";import{useWallets as RA}from"@rango-dev/wallets-react";import ge,{useState as eN}from"react";import{darkTheme as VA,styled as Lr}from"@rango-dev/ui";var pX=Lr("div",{display:"flex",justifyContent:"center"}),uX=Lr("div",{maxWidth:280,"& ._typography":{wordWrap:"break-word",display:"block"}}),Fy=Lr("img",{width:"100%"}),Wa=Lr("div",{position:"relative"}),La=Lr("span",{position:"absolute",top:0,right:0,borderRadius:"50%",width:"14px",height:"14px",display:"flex",padding:"$2",backgroundColor:"$warning300",[`.${VA} &`]:{$$color:"$warning600"}});var Uy=i(t=>{let{wallet:e,namespace:o,onClose:n}=t,[r,a]=eN(null),{list:s}=vt(),c=te.use.isActiveTab(),{state:l,connect:p}=RA(),u=s.find(x=>x.type===e.walletType),m=u?.needsNamespace?.data.find(x=>x.value===o?.namespace);if(!u)return null;let f=l(e.walletType),h=u.isHub&&o?.namespace?f.namespaces?.get(o.namespace):null,g=f.connecting||h?.connecting,d=u.isHub?h?.connected:f.connected,S=i(()=>d?In.t("Done"):r?In.t("Try again"):In.t("Connect"),"getButtonTitle"),y=i(()=>g?ge.createElement(ZA,{color:"info"}):r||d?null:ge.createElement(jA,{checked:!0,disabled:!0}),"getNamespaceSuffix"),C=i(async()=>{try{a(null),await p(u.type,o?.namespace?[{namespace:o?.namespace,network:void 0,derivationPath:e.derivationPath}]:void 0)}catch(x){a(x)}},"handleConnect"),T=i(async()=>{if(d){n();return}C()},"handleClickButton"),w=i(()=>{if(!d)return null;let x=u?.isHub?h?.accounts?.[0]?.split(":"):f?.accounts?.[0]?.split(":"),A=x?.[x?.length-1];return A?io(A):null},"getAddress");return ge.createElement(ge.Fragment,null,ge.createElement(YA,{type:"warning",title:In.t("Connect {wallet}",{wallet:u.title}),description:In.t("The connection of your wallet or some networks has been disconnected. Connect to continue the swap"),icon:ge.createElement(Wa,null,ge.createElement(XA,{src:u.image,size:45}),ge.createElement(La,null,ge.createElement(JA,{color:"warning",size:10})))}),d&&!m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:10}),ge.createElement(Oy,{type:"success",variant:"alarm",title:In.t("Wallet connected successfully.")})),r&&!m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:10}),ge.createElement(Oy,{type:"error",title:r?.message,variant:"alarm"})),m&&ge.createElement(ge.Fragment,null,ge.createElement(Ma,{size:30}),ge.createElement(No,{namespace:m,suffix:y(),error:r?.message,connected:d,address:w()})),ge.createElement(Ma,{size:"40"}),ge.createElement(KA,{loading:g,type:"primary",id:"widget-connect-wallet-btn",onClick:T,disabled:!c},S()))},"ConnectWalletContent");import{i18n as zy}from"@lingui/core";import{Button as tN,Divider as oN,Image as nN,MessageBox as rN,WarningIcon as iN}from"@rango-dev/ui";import{useWallets as aN}from"@rango-dev/wallets-react";import{detectInstallLink as sN}from"@rango-dev/wallets-shared";import ro from"react";var qy=i(t=>{let{walletType:e}=t,{getWalletInfo:o}=aN(),n=e?o(e):null;if(!n)return null;let r=i(()=>window.open(sN(n.installLink),"_blank"),"handleButtonClick");return ro.createElement(ro.Fragment,null,ro.createElement(rN,{type:"warning",title:zy.t("Install {wallet}",{wallet:n.name}),description:"Your wallet is not installed. Please install it to continue the swap. ",icon:ro.createElement(Wa,null,ro.createElement(nN,{src:n.img,size:45}),ro.createElement(La,null,ro.createElement(iN,{color:"warning",size:10})))}),ro.createElement(oN,{size:"40"}),ro.createElement(tN,{type:"primary",id:"widget-install-wallet-btn",onClick:r},zy.t("Install")))},"InstallWalletContent");var Hy=i(t=>{let{swap:e,onClose:o}=t,{state:n}=dN(),r=cN(e),a=r?pN(e,r):null,s=a?.walletType,c=s?_n(n(s)):null,l=r?lN(e,r):null;return s?c===uN.NOT_INSTALLED?Qy.createElement(qy,{walletType:s}):Qy.createElement(Uy,{wallet:a,namespace:l,onClose:o}):null},"WalletStateContent");function ip(t){let{isOpen:e,state:o,switchNetworkModalState:n,onClose:r,onDelete:a,onCancel:s,swap:c,message:l,handleSwitchNetwork:p}=t;return Mr.createElement(J,{open:e,onClose:r,container:N()},o==="connectWallet"&&Mr.createElement(Hy,{swap:c,message:l,onClose:r}),o==="switchNetwork"&&n&&Mr.createElement($y,{message:l,switchNetworkModalState:n,handleSwitchNetwork:p}),o==="delete"&&Mr.createElement(Dy,{onClose:r,onDelete:()=>{r(),a()}}),o==="cancel"&&Mr.createElement(Py,{onClose:r,onCancel:()=>{r(),s()}}))}i(ip,"SwapDetailsModal");import{i18n as Pr}from"@lingui/core";import{Button as ap,Divider as _r,MessageBox as Ky,TokenAmount as mN,Typography as jy}from"@rango-dev/ui";import ye from"react";import{Link as fN,useNavigate as gN}from"react-router-dom";var Gy="https://raw.githubusercontent.com/rango-exchange/assets/main/banners/widget/profile.jpg",Vy="/profile";function sp(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:a,realUsdValue:s,realValue:c,token:l,chain:p,percentageChange:u,description:m,diagnosisUrl:f}=t,h=gN(),{showProfileBanner:g}=te();return ye.createElement(J,{open:e,onClose:o,id:"widget-swap-details-complete-modal",container:document.getElementById(tt.SWAP_BOX_ID)||document.body},n==="success"?ye.createElement(Ky,{type:"success",title:Pr.t("Swap Successful")},ye.createElement(mN,{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}),ye.createElement(_r,{size:12}),ye.createElement(jy,{variant:"body",size:"medium",color:"neutral700",align:"center"},m)):ye.createElement(Ky,{type:"error",title:Pr.t("Transaction Failed"),description:m}),ye.createElement(_r,{size:30}),n==="success"&&ye.createElement(ye.Fragment,null,g&&ye.createElement(ye.Fragment,null,ye.createElement(fN,{to:Vy},ye.createElement(Fy,{src:Gy,alt:"Profile Banner"})),ye.createElement(_r,{size:30})),ye.createElement(ap,{id:"widget-swap-details-modal-done-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{h("../../")}},Pr.t("Done"))),ye.createElement(_r,{size:12}),f&&ye.createElement(ye.Fragment,null,ye.createElement(ap,{variant:"contained",id:"widget-swap-detail-modal-diagnosis-btn",type:"primary",size:"large",onClick:()=>window.open(f,"_blank")},Pr.t("Diagnosis")),ye.createElement(_r,{size:12})),ye.createElement(ap,{id:"widget-swap-details-modal-see-details-btn",variant:"outlined",type:"primary",size:"large",onClick:o},ye.createElement(jy,{variant:"title",size:"medium",color:"primary"},Pr.t("See Details"))))}i(sp,"SwapDetailsCompleteModal");import{i18n as Da}from"@lingui/core";import{CopyIcon as IN,DoneIcon as AN,IconButton as NN,RangoExplorerIcon as BN,Tooltip as yS,Typography as SS,useCopyToClipboard as WN}from"@rango-dev/ui";import Nt from"react";import EN from"react";import{i18n as wN}from"@lingui/core";import{Alert as mS,IconButton as vN,LinkIcon as bN}from"@rango-dev/ui";import To,{Fragment as xN}from"react";import{Alert as yN,ChevronDownIcon as SN,IconButton as CN}from"@rango-dev/ui";import An,{useState as kN}from"react";import{css as Dr,darkTheme as Xy,styled as Ot,Typography as hN}from"@rango-dev/ui";var Yy=Ot(ie,{overflowY:"auto","& ._icon-button":{"&:hover":{"& svg":{color:"$secondary550",[`.${Xy} &`]:{color:"$secondary500"}}}}}),Zy=Ot("div",{display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden"}),Jy=Ot("div",{position:"sticky",top:0,zIndex:10,backgroundColor:"$background"}),Ry=Ot("div",{padding:"$0 $20 $20 $20"}),fY=Ot("div",{display:"flex",flexDirection:"column",gap:"$10"}),eS=Ot("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),gY=Ot("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Go=Dr({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Xy} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),tS=Dr({padding:"$5 0"}),Pa=Dr({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),oS=Dr({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),nS=Dr({width:"100%",padding:"0 $20 $10"}),rS=Ot("a",{fontSize:"$16",fontWeight:"$400",color:"$neutral700",display:"flex",alignItems:"center",justifyContent:"center"}),iS=Ot("div",{display:"flex",flexDirection:"column",gap:"$5"}),_a=Ot(hN,{wordBreak:"break-word"});import{styled as lp}from"@rango-dev/ui";var aS=lp("div",{display:"flex",flexDirection:"column",gap:"$10"}),sS=lp("div",{transition:"transform 0.3s ease-in-out",variants:{rotated:{true:{transform:"rotate(180deg)"}}}}),lS=lp("div",{transition:"max-height 0.3s ease-in-out",maxHeight:"0px",overflow:"hidden",variants:{open:{true:{maxHeight:"200px"}}}});function cS(t){let{message:e}=t,[o,n]=kN(!1);return An.createElement(yN,{id:"widget-failed-swap-details-alert",type:"error",title:e.shortMessage,containerStyles:{"& .footer":{paddingTop:"$0"}},action:e.detailedMessage.content&&An.createElement(CN,{id:"widget-swap-details-failed-btn",onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},An.createElement(sS,{rotated:o},An.createElement(SN,{size:12,color:"gray"}))),footer:An.createElement(lS,{open:o},An.createElement(_a,{variant:"body",size:"xsmall",color:"neutral700"},e.detailedMessage.content))})}i(cS,"FailedAlert");import{i18n as pS}from"@lingui/core";import{Alert as cp,Button as uS}from"@rango-dev/ui";import{PendingSwapNetworkStatus as TN}from"rango-types";import $r from"react";function dS(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,setNetworkModal:n,message:r,showNetworkModal:a}=t;return e?$r.createElement(cp,{type:"warning",id:"widget-swap-details-change-network-alert",title:r.shortMessage,action:$r.createElement(uS,{id:"widget-swap-details-warning-alert-change-network-btn",size:"xxsmall",type:"warning",onClick:()=>{n("switchNetwork"),o()}},pS.t("Change"))}):a===TN.WaitingForConnectingWallet?$r.createElement(cp,{type:"warning",title:r.shortMessage,id:"widget-swap-details-warning-alert-connect-wallet-alert",action:$r.createElement(uS,{id:"widget-swap-details-warning-alert-connect-wallet-btn",size:"xxsmall",type:"warning",onClick:()=>{n("connectWallet")}},pS.t("Connect"))}):$r.createElement(cp,{id:"widget-swap-details-short-alert",type:"warning",title:r.shortMessage})}i(dS,"WarningAlert");function pp(t){let{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a,step:s,hasAlreadyProceededToSign:c}=t,l=Zn(s),p=s.status==="waitingForApproval"&&!l,u=s.status==="running"&&!l,m=u&&!c||p&&!s.explorerUrl?.length;return To.createElement(aS,null,s.explorerUrl?.map((f,h,g)=>{let d=h+f.url,S=h===g.length-1,y=(S&&u||p)&&!m,C=S&&s.status==="failed";return To.createElement(xN,{key:d},To.createElement(mS,{id:"widget-swap-details-tx-alert",type:S&&(y&&"loading"||C&&"error")||"success",title:f.description?`${f.description} Tx`:wN.t("View transaction"),action:f.url&&To.createElement(vN,{id:"widget-swap-details-tx-link-icon-btn",variant:"ghost",size:"xsmall",onClick:()=>window.open(f.url,"_blank")},To.createElement(bN,{size:12}))}))}),m&&To.createElement(mS,{id:"widget-swap-details-loading-alert",type:"loading",title:a.shortMessage}),s.status!=="failed"&&l&&To.createElement(dS,{switchNetworkIsAvailable:e,handleSwitchNetworkClick:o,showNetworkModal:n,setNetworkModal:r,message:a}),s.status==="failed"&&To.createElement(cS,{message:a}))}i(pp,"SwapDetailsAlerts");var fS=2e3;var gS=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:gt(a.fromBlockchain,e)??"",image:a.fromBlockchainLogo??""},price:{value:D(c,6,6),realValue:c??""}},to:{token:{displayName:a.toSymbol,image:a.toLogo},chain:{displayName:gt(a.toBlockchain,e)??"",image:a.toBlockchainLogo??""},price:{value:D(a.outputAmount||a.expectedOutputAmountHumanReadable,6,6),realValue:a.outputAmount||a.expectedOutputAmountHumanReadable||""}},swapper:{displayName:Wn(a.swapperId,o)??"",image:a.swapperLogo??"",type:a.swapperType},internalSwaps:a.internalSwaps?a.internalSwaps.map(l=>({from:{chain:{displayName:gt(l.fromBlockchain,e)??"",image:l.fromBlockchainLogo??""}},to:{chain:{displayName:gt(l.toBlockchain,e)??"",image:l.toBlockchainLogo??""}},swapper:{displayName:Wn(l.swapperId,o)??"",image:l.swapperLogo??"",type:l.swapperType}})):[],alerts:EN.createElement(pp,{step:a,hasAlreadyProceededToSign:r,...n})}})},"getSteps");function hS(t){if(Zn(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(hS,"getStepState");function CS(t){let{requestId:e}=t,[o,n]=WN(fS);return Nt.createElement(Jy,{className:Go()},Nt.createElement(SS,{variant:"label",size:"large",color:"neutral700"},Da.t("Request ID")),Nt.createElement("div",{className:Pa()},Nt.createElement(SS,{variant:"label",size:"small",color:"neutral700"},e),Nt.createElement(yS,{container:N(),content:o?Da.t("Copied To Clipboard"):Da.t("Copy Request ID"),open:o||void 0,side:"bottom",alignOffset:-16,align:"end"},Nt.createElement(NN,{id:"widget-swap-details-done-copy-icon-btn",variant:"ghost",onClick:n.bind(null,e||"")},o?Nt.createElement(AN,{size:16,color:"secondary"}):Nt.createElement(IN,{size:16,color:"gray"}))),Nt.createElement(rS,{target:"_blank",href:`${Hp}/swap/${e}`},Nt.createElement(yS,{container:N(),content:Da.t("View on Rango Explorer"),side:"bottom"},Nt.createElement(BN,{size:20})))))}i(CS,"RequestIdRow");import{i18n as kS}from"@lingui/core";import{Typography as TS}from"@rango-dev/ui";import up from"react";function wS(t){let{date:e,isFinished:o}=t;return up.createElement("div",{className:Go()},up.createElement(TS,{variant:"label",size:"large",color:"neutral700"},o?kS.t("Finished at"):kS.t("Created at")),up.createElement(TS,{variant:"label",size:"small",color:"neutral700"},e))}i(wS,"SwapDateRow");var UN=3e3;function gp(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:a,connect:s,getWalletInfo:c}=FN(),l=k().blockchains(),p=k().swappers(),{findToken:u}=k(),m=U.use.retry(),f=ON(),h=fp(null),[g,d]=$a(!1),[S,y]=$a(null),[C,T]=$a(null),[w,x]=$a(null),A=fp(S),I=fp(C),E=Ne.use.getNotifications(),v=Ne.use.removeNotification(),b=E(),B=MN(e),P=B?.networkStatus,F=i(Me=>{d(!0),y(Me)},"handleChangeModalState"),q=i(()=>{d(!1)},"handleCloseModal"),Z=i(()=>{T({type:"loading",title:Ut.t("Change Network"),description:`We\u2019re switching the connected network to ${R?.network}. Please check your wallet.`})},"handleShowSwitchNetworkLoading"),V=i(()=>{T({type:"success",title:Ut.t("Network Changed"),description:"The network has been successfully changed."})},"handleShowSwitchNetworkSucceeded"),M=i(Me=>{T({type:"error",title:Ut.t("Network Switch Failed"),description:Me?.message||j.detailedMessage.content})},"handleShowSwitchNetworkFailed"),ee=Kd(e),R=B?LN(e,B):null,X=B?PN(e,B):null,we=Ly(e),se=jd(e),de=i(Me=>!!c(Me)?.mobileWallet,"checkIsMobileWallet"),Oe=!!P&&[Nn.WaitingForNetworkChange,Nn.NetworkChangeFailed].includes(P),wt=!!X?.walletType&&de(X.walletType),ve=!!X&&!!R&&a(X.walletType,R.network,R),L=!!R&&Oe&&(wt||ve),W=i(()=>{L&&(Z(),s(X.walletType,[{namespace:R.namespace,network:R.network}]).then(()=>{V()}).catch(Me=>{M(Me)}))},"handleSwitchNetwork"),H=i(()=>{F("switchNetwork"),W()},"handleSwitchNetworkClick"),j=Vd(e,B,c),K=gS({swap:e,switchNetworkIsAvailable:L,handleSwitchNetworkClick:H,showNetworkModal:P,setNetworkModal:F,message:j,blockchains:l,swappers:p}),me=K.length,[Qe,He]=[e.steps[0],e.steps[me-1]],be=He?.outputAmount||He?.expectedOutputAmountHumanReadable,Wt=e.steps.reduce((Me,Lt)=>Me+parseFloat(Lt.feeInUsd||""),0),Va=e.steps.find(Me=>Me.diagnosisUrl)?.diagnosisUrl,Ka=D(parseFloat(be||"0")*(He?.toUsdPrice||0),4,4),xp=D(parseFloat(e.inputAmount)*(Qe?.fromUsdPrice||0),4,4),Ep=be?new bS(be).multipliedBy(He.toUsdPrice||0).toString():"",JS=new bS(e.inputAmount).multipliedBy(Qe?.fromUsdPrice||0).toString(),ja=Vt(xp,Ka),Xa=j.detailedMessage.content||j.shortMessage,RS=e.status==="success"?Ut.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:D(be,6,6),token:K[me-1]?.to.token.displayName,conciseAddress:io(e.wallets[K[me-1]?.to.chain.displayName||""]?.address||""),chain:K[me-1]?.to.chain.displayName}}):Se.createElement(iS,null,Se.createElement(dp,{variant:"body",size:"medium",color:"neutral700",align:"center"},Xa?"":Ut.t("Transaction was not sent."),ee?`${Ut.t({id:"{amount} {symbol} on {blockchain} remains in your wallet.",values:{amount:ee.outputAmount,symbol:ee.symbol,blockchain:ee.blockchain}})}`:""),Xa&&Se.createElement(_a,{align:"center",variant:"body",size:"medium",color:"neutral700"},Se.createElement("b",null,"Reason:")," ",Xa));return mp(()=>{b.find(Lt=>Lt.requestId===e.requestId)&&(e.status==="success"||e.status==="failed"?(x(e.status),v(e.requestId),q()):w&&x(null))},[e.status,e.requestId]),mp(()=>{if(L){if(F("switchNetwork"),P===Nn.WaitingForNetworkChange){Z();return}if(P===Nn.NetworkChangeFailed){M();return}return}if(P===Nn.WaitingForConnectingWallet){F("connectWallet");return}if(P===Nn.NetworkChanged){F("switchNetwork"),V();return}S&&["connectWallet","switchNetwork"].includes(S)&&q()},[P]),mp(()=>{if(A.current=S,I.current=C,S==="switchNetwork"&&C?.type==="success"){let Me=setTimeout(()=>{A.current==="switchNetwork"&&I.current?.type==="success"&&q()},UN);return()=>clearTimeout(Me)}},[S,C]),Se.createElement(re,{header:{title:Ut.t("Swap Details"),onCancel:e.status==="running"?()=>F("cancel"):void 0,suffix:e.status!=="running"&&Se.createElement(co,null,Se.createElement(vS,{id:"widget-swap-details-delete-btn",variant:"ghost",type:"error",size:"xsmall",onClick:()=>F("delete")},Se.createElement(dp,{size:"medium",variant:"label",color:"error"},Ut.t("Delete"))))},footer:se&&!w&&Se.createElement(vS,{fullWidth:!0,id:"widget-swap-details-try-again-btn",variant:"contained",type:"primary",size:"large",onClick:()=>{let Me=wi(e,l,u);m(Me),setTimeout(()=>{f("../../")},0)}},Ut.t("Try again"))},Se.createElement(Yy,{compact:!0,ref:h},Se.createElement(CS,{requestId:o}),Se.createElement(wS,{date:we,isFinished:!!e.finishTime}),Se.createElement("div",{className:oS()},Se.createElement(DN,{fee:D(String(Wt),2,2),time:Mn(Yr(e.steps)),steps:me}),Se.createElement(cr,{from:{price:{value:D(e.inputAmount,6,6),usdValue:xp,realUsdValue:JS,realValue:e.inputAmount},token:{displayName:K[0]?.from.token.displayName||"",image:K[0]?.from.token.image},chain:{image:K[0]?.from.chain.image,displayName:K[0]?.from.chain.displayName||""}},to:{price:{value:D(be,6,6),usdValue:Ka,realUsdValue:Ep,realValue:be||""},token:{displayName:K[me-1]?.to.token.displayName||"",image:K[me-1]?.to.token.image},chain:{image:K[me-1]?.to.chain.image,displayName:K[me-1]?.to.chain.displayName||""}},percentageChange:D(ja,2,2),warningLevel:Kt(ja??0)})),Se.createElement("div",{className:nS()},Se.createElement(dp,{variant:"title",size:"small"},Ut.t("Swaps steps"))),Se.createElement(_N,{size:8}),Se.createElement(Ry,null,K.map((Me,Lt)=>{let Ip=Lt,Bn=e.steps[Lt]&&hS(e.steps[Lt]),eC=Bn==="error"||Bn==="in-progress"||Bn==="warning"||Bn==="completed"&&Lt===K.length-1;return Se.createElement($N,{className:"widget-swap-details-step-item-container",key:Ip,step:Me,type:"swap-progress",ref:h,state:Bn,hasSeparator:Lt!==0,tabIndex:Ip,isFocused:eC,tooltipContainer:N()})}))),Se.createElement(ip,{isOpen:g,state:S,switchNetworkModalState:C,onClose:q,onCancel:r,onDelete:n,message:j.detailedMessage.content,swap:e,handleSwitchNetwork:H}),Se.createElement(sp,{open:!!w,diagnosisUrl:Va,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:D(be,6,6),usdValue:Ka,realUsdValue:Ep,realValue:be||"",percentageChange:D(ja,2,2),token:{displayName:K[me-1]?.to.token.displayName||"",image:K[me-1]?.to.token.image},chain:{image:K[me-1]?.to.chain.image},description:RS}))}i(gp,"SwapDetails");import{i18n as Oa}from"@lingui/core";import{Divider as IS,NotFound as GN,Skeleton as Or,Typography as Ua}from"@rango-dev/ui";import Ie from"react";import{i18n as zN}from"@lingui/core";import{Divider as qN,Skeleton as QN,Typography as HN}from"@rango-dev/ui";import Ee from"react";import{css as Bt,styled as hp}from"@rango-dev/ui";var xS=hp("div",{width:"100%",height:"100%",padding:"$10 $20"}),Fr=hp("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),Fa=hp("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),q7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),Q7=Bt({display:"flex",justifyContent:"space-between",alignItems:"center"}),H7=Bt({paddingTop:"$15",display:"flex"}),G7=Bt({padding:"$15 $0"}),V7=Bt({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),K7=Bt({paddingBottom:"$10"}),j7=Bt({display:"flex",justifyContent:"start",alignItems:"center"}),X7=Bt({paddingTop:"$5",display:"flex",alignItems:"center"}),Y7=Bt({display:"flex",alignItems:"center"}),Z7=Bt({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),ES=Bt({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function yp(){return Ee.createElement(xS,null,Ee.createElement(ur,{type:"swap-preview"}),Ee.createElement("div",{className:"swaps-steps"},Ee.createElement(HN,{variant:"title",size:"small"},zN.t("Swaps steps"))),Ee.createElement(Ee.Fragment,null,Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1}),Ee.createElement("div",{className:ES()},Ee.createElement(qN,{direction:"horizontal",size:20}),Ee.createElement(QN,{height:22,variant:"rectangular"}))),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1})),Ee.createElement(Fa,null),Ee.createElement(Fr,null,Ee.createElement($t,{separator:!1}))))}i(yp,"LoadingSwapDetails");function AS(t){let{requestId:e,showSkeleton:o}=t;return Ie.createElement(re,{header:{title:Oa.t("Swap Details"),suffix:Ie.createElement(co,null)}},o&&Ie.createElement(Zy,null,Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{variant:"label",size:"large",color:"neutral700"},`${Oa.t("Request ID")}`),Ie.createElement("div",{className:Pa()},Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(IS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}),Ie.createElement(IS,{direction:"horizontal",size:4}),Ie.createElement(Or,{width:16,height:16,variant:"rectangular"}))),Ie.createElement("div",{className:Go()},Ie.createElement(Ua,{className:tS(),variant:"label",size:"large",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"})),Ie.createElement(Ua,{variant:"label",size:"small",color:"neutral700"},Ie.createElement(Or,{width:60,height:10,variant:"rounded"}))),Ie.createElement(yp,null)),!o&&Ie.createElement(eS,null,Ie.createElement(GN,{title:Oa.t("Not found"),description:Oa.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(AS,"SwapDetailsPlaceholder");function NS(){let{manager:t,state:e}=jN(),o=!e.loadedFromPersistor,n=kt(t),{requestId:r}=YN(),a=Ke(),{fetchStatus:s}=k();if(!r)return Sp.createElement(XN,{containerStyles:{margin:"20px"},type:"error",title:VN.t("The request ID is necessary to display the swap details.")});let c=o||s==="loading",l=r?n.find(({swap:f})=>f.requestId===r):void 0,p=i(()=>{if(l?.id){let f=t?.get(l.id);f&&KN(f)}},"onCancel"),u=i(async()=>{if(l?.id)try{t?.deleteQueue(l.id),a()}catch(f){console.log(f)}},"onDelete"),m=l?.swap;return!m||c?Sp.createElement(AS,{requestId:r,showSkeleton:c}):Sp.createElement(gp,{swap:m,requestId:r,onCancel:p,onDelete:u})}i(NS,"SwapDetailsPage");import{i18n as BS}from"@lingui/core";import{Divider as ZN,getCategoriesCount as JN,SelectableCategoryList as RN,styled as LS,Typography as e0,Wallet as t0,WalletState as o0}from"@rango-dev/ui";import{useWallets as n0}from"@rango-dev/wallets-react";import zt,{useState as WS}from"react";var r0=LS("div",{display:"flex",justifyContent:"center",alignItems:"center",columnGap:"$5",rowGap:"$10",flexWrap:"wrap",paddingTop:"$5"}),i0=LS(ie,{textAlign:"center"});function MS(){let{fetchStatus:t}=k(),[e,o]=WS("ALL"),n=k().blockchains(),{config:r}=k(),{state:a}=n0(),[s,c]=WS(),l=te.use.isActiveTab(),{list:p}=vt(),u=Cu(p,n),f=JN(u)!==1,h=ku(p,e),g=i(d=>{eu(p,r.multiWallets)||c(d)},"handleWalletItemClick");return zt.createElement(re,{header:{title:BS.t("Connect Wallets")}},zt.createElement(i0,null,f&&zt.createElement(zt.Fragment,null,zt.createElement(RN,{setCategory:o,category:e,blockchains:u,isLoading:t==="loading"}),zt.createElement(ZN,{size:24})),zt.createElement(e0,{variant:"title",size:"xmedium",align:"center"},BS.t("Choose a wallet to connect.")),zt.createElement(r0,null,h.map((d,S)=>{let C=a(d.type).namespaces,T=`wallet-${S}-${d.type}`,w=is(d,C);return zt.createElement(t0,{key:T,...d,state:w?o0.PARTIALLY_CONNECTED:d.state,container:N(),onClick:()=>g(d),isLoading:t==="loading",disabled:!l})}),zt.createElement(jn,{id:"widget-state-full-connect-modal",wallet:s,onClose:()=>{c(void 0)}}))))}i(MS,"WalletsPage");function PS(){return Jd(),Vs(),a0([{path:O.home,element:qe.createElement(Zh,null)},{path:O.routes,element:qe.createElement(oy,null)},{path:O.fromSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"source"})},{path:O.blockchains,element:qe.createElement(wa,{type:"source"})}]},{path:O.toSwap,children:[{index:!0,element:qe.createElement(Ea,{type:"destination"})},{path:O.blockchains,element:qe.createElement(wa,{type:"destination"})}]},{path:O.settings,children:[{index:!0,element:qe.createElement(By,null)},{path:O.languages,element:qe.createElement(Rh,null)},{path:O.exchanges,element:qe.createElement(Qc,{sourceType:"Exchanges"})},{path:O.bridges,element:qe.createElement(Qc,{sourceType:"Bridges"})},{path:O.customTokens,children:[{index:!0,element:qe.createElement(Rg,null)},{path:O.addCustomTokens,children:[{index:!0,element:qe.createElement(Vm,null)},{path:O.blockchains,element:qe.createElement(wa,{hideCategory:!0,type:"custom-token"})}]}]}]},{path:O.swaps,children:[{index:!0,element:qe.createElement(Ch,null)},{path:O.swapDetails,element:qe.createElement(NS,null)}]},{path:O.wallets,element:qe.createElement(MS,null)},{path:O.confirmSwap,element:qe.createElement($g,null)}])}i(PS,"AppRoutes");import{useQueueManager as g0}from"@rango-dev/queue-manager-rango-preset";import{isEvmBlockchain as h0}from"rango-sdk";import{useContext as y0,useEffect as zS,useState as qS}from"react";import{globalCss as s0}from"@rango-dev/ui";var _S=i(()=>s0({"@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 DS(){let{setWatermark:t,setShowProfileBanner:e}=te();return{fetchApiConfig:i(async()=>{let n=await fetch(`${Qt("BASE_URL")}/meta/dapp/config?apiKey=${Qt("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(DS,"useFetchApiConfig");import{useWallets as l0}from"@rango-dev/wallets-react";import{useEffect as c0,useRef as p0}from"react";function $S(){let{connect:t,state:e}=l0(),o=p0({}),{fetchStatus:n}=k(),r=new URLSearchParams(location.search).get("autoConnect")||"",a=e(r);c0(()=>{n==="success"&&r&&a.installed&&!a.connecting&&!a.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[a,n])}i($S,"useForceAutoConnect");import{isApprovalTX as u0,RouteEventType as FS,StepEventType as OS,StepExecutionEventStatus as d0,WidgetEvents as za}from"@rango-dev/queue-manager-rango-preset";import{useEffect as US}from"react";function Cp(){let t=Ne.use.setNotification(),{connectedWallets:e,fetchBalances:o,customTokens:n}=k();US(()=>{let r=i(a=>{let{event:s,step:c,route:l}=a;if(s.type===OS.TX_EXECUTION&&s.status===d0.TX_SENT&&!u0(c)||s.type===OS.SUCCEEDED){let u=[],m=l.wallets[c?.fromBlockchain];if(m){let f=e.find(h=>h.address?.toLocaleLowerCase()===m.address?.toLocaleLowerCase()&&h.walletType===m.walletType&&h.chain===c?.fromBlockchain);f&&u.push(f)}if(c?.fromBlockchain!==c?.toBlockchain){let f=l.wallets[c?.toBlockchain];if(f){let h=e.find(g=>g.address?.toLocaleLowerCase()===f.address?.toLocaleLowerCase()&&g.walletType===f.walletType&&g.chain===c?.toBlockchain);h&&u.push(h)}}if(u.length>0){let f=n(),g=[{blockchain:c.fromBlockchain,address:c.fromSymbolAddress,symbol:c.fromSymbol},{blockchain:c.toBlockchain,address:c.toSymbolAddress,symbol:c.toSymbol}].filter(d=>f.some(S=>S.blockchain===d.blockchain&&S.address?.toLocaleLowerCase()===d.address?.toLocaleLowerCase()&&S.symbol?.toLocaleLowerCase()===d.symbol?.toLocaleLowerCase()));o(u,{selectedCustomTokens:g,shouldFetchCustomTokens:g.length>0})}}t(s,l)},"handleStepEvent");return Ce.on(za.StepEvent,r),()=>Ce.off(za.StepEvent,r)},[Ce,e]),US(()=>{let r=i(a=>{let{event:s,route:c}=a;(s.type===FS.FAILED||s.type===FS.SUCCEEDED)&&t(s,c)},"handleRouteEvent");return Ce.on(za.RouteEvent,r),()=>Ce.off(za.RouteEvent,r)},[Ce])}i(Cp,"useSubscribeToWidgetEvents");import{useManager as m0}from"@rango-dev/queue-manager-react";import{useEffect as f0}from"react";function kp(){let{isSynced:t,syncNotifications:e}=Ne(),{manager:o,state:n}=m0();f0(()=>{Ne.persist.hasHydrated()&&n.loadedFromPersistor&&!t&&e(kt(o))},[Ne.persist.hasHydrated(),n.loadedFromPersistor,t])}i(kp,"useSyncNotifications");function Tp(){$S(),_S(),Cp(),kp();let t=k().blockchains(),{canSwitchNetworkTo:e}=Hi(),[o,n]=qS(null),[r,a]=qS(),s=y0(Ci),c=t.filter(h0),{fetchApiConfig:l}=DS();zS(()=>()=>Zd(),[]),g0({lastConnectedWallet:o,clearDisconnectedWallet:()=>{a(void 0)},disconnectedWallet:r,evmChains:c,canSwitchNetworkTo:e}),zS(()=>(Ao.init(),Ne.persist.hasHydrated()||Ne.persist.rehydrate(),s.onConnectWallet(p=>{n(u=>{if(!u||u.walletType!==p.walletType)return p;let m={...u};return p.network&&(m.network=p.network),p.accounts&&(m.accounts=p.accounts),m})}),s.onDisconnectWallet(p=>{a(p),n(u=>p===u?.walletType?null:u)}),l().catch(console.log),Ao.destroy),[])}i(Tp,"useBootstrap");import{styled as S0}from"@rango-dev/ui";var QS=S0("div",{fontFamily:"$widget",boxSizing:"border-box",textAlign:"left","& *, *::before, *::after":{boxSizing:"inherit"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"},"& ul, ol, li":{listStyleType:"none"}});function qa(){Tp();let{config:t}=k(),{activeTheme:e}=lo(t?.theme||{}),{activeLanguage:o}=yo();return wp.createElement(C0,{language:o},wp.createElement(QS,{id:"swap-container",className:e()},wp.createElement(PS,null)))}i(qa,"Main");import{setSolanaSignerConfig as O0}from"@rango-dev/signer-solana";import bp,{useEffect as XS,useMemo as U0}from"react";import{useState as k0}from"react";var T0=i(()=>{let[t,e]=k0(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=Rp(a);if(s){let c=o(s);e(c)}},"handleLoadCustomFont")}},"useFontLoader"),HS=T0;import{checkWaitingForNetworkChange as w0,makeQueueDefinition as v0}from"@rango-dev/queue-manager-rango-preset";import{Provider as b0}from"@rango-dev/queue-manager-react";import{useWallets as x0}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as E0}from"@rango-dev/wallets-shared";import{isEvmBlockchain as I0}from"rango-types";import A0,{useMemo as N0}from"react";function B0(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:a,getWalletInfo:s}=x0(),c=N0(()=>v0({API_KEY:t.apiKey||Qt("API_KEY"),BASE_URL:Qt("BASE_URL"),emitter:{emit:Ce.emit}}),[t.apiKey]),{blockchains:l,connectedWallets:p}=k(),u=l(),m={blockchains:p.map(w=>({accounts:[w],name:w.chain}))},f=i(async(w,x)=>a(w,x.network,x)?await r(w,[x]):void 0,"switchNetwork"),h=i(w=>!!s(w).mobileWallet,"isMobileWallet"),g=u.filter(w=>w.enabled).reduce((w,x)=>(w[x.name]=x,w),{}),d=u.filter(I0),S=i(w=>{let{supportedChains:x}=s(w);return Dn(x)},"getSupportedChainNames"),y=e(),C={meta:{blockchains:g,evmBasedChains:d,evmNetworkChainInfo:E0(d),getSupportedChainNames:S},getSigners:o,wallets:m,providers:y,switchNetwork:f,canSwitchNetworkTo:a,state:n,isMobileWallet:h},T=te.use.isActiveTab();return A0.createElement(b0,{queuesDefs:[c],context:C,onPersistedDataLoaded:w=>{w0(w)},isPaused:!T},t.children)}i(B0,"QueueManager");var GS=B0;import{useManager as _0}from"@rango-dev/queue-manager-react";import D0,{createContext as $0,useContext as F0}from"react";function VS(){let{findToken:t}=k(),e=k().blockchains(),o=k().tokens(),{setFromBlockchain:n,setFromToken:r,setToBlockchain:a,setToToken:s,setInputAmount:c}=U();return i(p=>{let{fromBlockchain:u,fromToken:m,toBlockchain:f,toToken:h,requestAmount:g}=p,d={blockchains:e,tokens:o};if(u!==void 0){let S=e.find(y=>y.name===u)??null;n(S)}if(m!==void 0){let S=m?t(m)??null:null;r({meta:d,token:S})}if(f!==void 0){let S=e.find(y=>y.name===f)??null;a(S)}if(h!==void 0){let S=h?t(h)??null:null;s({meta:d,token:S})}g!==void 0&&c(g)},"updateQuoteInputs")}i(VS,"useUpdateQuoteInputs");import{cancelSwap as W0,getCurrentNamespaceOfOrNull as L0,getCurrentStep as M0,getRelatedWalletOrNull as P0}from"@rango-dev/queue-manager-rango-preset";var Qa=class{static{i(this,"WidgetHistory")}constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return kt(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=wi(e,o.blockchains,this.actions.findToken);return this.actions.retrySwap(n)}cancel(e){let o=this.manager?.get(e);o&&W0(o)}getCurrentStepInfo(e){let o=M0(e);return{step:o,wallet:o?P0(e,o):null,network:o?L0(e,o)?.network:null}}};var KS=$0(void 0);function vp(t){let{manager:e}=_0(),o=te.use.isActiveTab(),n=U.use.retry(),{findToken:r,getBalances:a,getConnectedWalletsDetails:s,fetchBalances:c}=k(),l=new Qa(e,{retrySwap:n,findToken:r}),{fetchingWallets:p}=k(),u=mu(a()),m=k().blockchains(),f=k().tokens(),h=k().swappers(),g=k().fetchStatus,d=yo().resetLanguage,S=Ne().getNotifications(),y=Ne().clearNotifications,C=VS(),{fromBlockchain:T,toBlockchain:w,fromToken:x,toToken:A,inputAmount:I}=U(),E={isActiveTab:o,setCurrentTabAsActive:Ao.forceClaim,history:l,wallets:{isLoading:p,details:s(),totalBalance:u,refetch:async v=>c(v)},meta:{blockchains:m,tokens:f,swappers:h,loadingStatus:g,findToken:r},resetLanguage:d,notifications:{list:S,clearAll:y},quote:{quoteInputs:{fromBlockchain:T?.name??null,fromToken:x?{symbol:x.symbol,blockchain:x.blockchain,address:x.address}:null,toBlockchain:w?.name??null,toToken:A?{symbol:A.symbol,blockchain:A.blockchain,address:A.address}:null,requestAmount:I},updateQuoteInputs:C}};return D0.createElement(KS.Provider,{value:E},t.children)}i(vp,"WidgetInfo");function jS(){let t=F0(KS);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(jS,"useWidget");function Ha(t){let{onUpdateState:e,config:o}=t,n=t.config?.theme?.fontFamily,{handleLoadCustomFont:r}=HS();return XS(()=>{n&&r(n)},[n]),U0(()=>{Tu({API_KEY:o?.apiKey||Gr,BASE_URL:o?.apiUrl||Qp})},[o.apiKey,o.apiUrl]),XS(()=>{t.config?.signers?.customSolanaRPC&&O0("customRPC",t.config.signers.customSolanaRPC)},[t.config?.signers?.customSolanaRPC]),bp.createElement(ki,{config:o,onUpdateState:e},bp.createElement(GS,{apiKey:o.apiKey},bp.createElement(vp,null,t.children)))}i(Ha,"WidgetProvider");function YS(t){let e=t.config?.externalWallets;return Ga.createElement(Cd,null,e?Ga.createElement(qa,null):Ga.createElement(Ha,{config:t.config??Qr},Ga.createElement(qa,null)))}i(YS,"Widget");function ZS(){let{on:t,off:e}=Ce;return{on:t,off:e}}i(ZS,"useWidgetEvents");var ree={DerivationPath:Gn,Namespaces:Qn,Detached:Hn,isOnDerivationPath:Kn,isOnNamespace:Vn,isOnDetached:wo};export{BR as EventSeverity,Jo as MainEvents,UR as Networks,QR as PendingSwapNetworkStatus,ps as QuoteEventTypes,WR as RouteEventType,Ra as SUPPORTED_FONTS,ree as StatefulConnect,LR as StepEventType,MR as StepExecutionBlockedEventStatus,PR as StepExecutionEventStatus,tt as UI_ID,ds as UiEventTypes,us as WalletEventTypes,FR as WalletEvents,zR as WalletTypes,YS as Widget,Jo as WidgetEvents,Ha as WidgetProvider,ki as WidgetWallets,sl as customizedThemeTokens,DR as readAccountAddress,Vo as useStatefulConnect,vt as useWalletList,Hi as useWallets,jS as useWidget,ZS as useWidgetEvents,nk as widgetEventEmitter};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|